> ## Documentation Index
> Fetch the complete documentation index at: https://docs.synctera.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Statements

> A statement is a disclosure of the state of an account, and its activity, over a billing period.

Synctera will generate a statement payload for any account that requires periodic statements to be provided to the customer, through the [Statements API](/v1/reference/liststatements). These payloads are made available at the end of every billing period, which is usually from the first to the last day of a calendar month.

At this time, Synctera does not generate a printable version of a statement.

### Currently supported account types

<CardGroup>
  <Card title="Checking and Saving accounts" href="/v1/docs/checking-savings-statements-guide" icon="angle-right" iconType="solid" horizontal={true} />

  <Card title="Line of Credit accounts" href="/v1/docs/line-of-credit-statements-guide" icon="angle-right" iconType="solid" horizontal={true} />

  <Card title="Secured Charge accounts" href="/v1/docs/charge-secured-statements-guide" icon="angle-right" iconType="solid" horizontal={true} />
</CardGroup>

### Prerequisites

This guide assumes that you are already familiar with the customer and account APIs, and have one or more accounts created.

If this is not the case, refer to the following guides:

<CardGroup>
  <Card title="Customers" href="/v1/docs/create-a-personal-customer" icon="angle-right" iconType="solid" horizontal={true} />

  <Card title="Business Customers" href="/v1/docs/create-a-business" icon="angle-right" iconType="solid" horizontal={true} />

  <Card title="KYC/KYB Verification" href="/v1/docs/kyc-kyb-verification" icon="angle-right" iconType="solid" horizontal={true} />

  <Card title="Accounts" href="/v1/docs/create-accounts-guide" icon="angle-right" iconType="solid" horizontal={true} />
</CardGroup>

## Statement generation

A statement is generated automatically at the end of an account's billing period. At this time, billing frequency is monthly, meaning that at the end of every calendar month a bank statement will be generated for every eligible account.

| Account type     | Eligibility                                                              |
| ---------------- | ------------------------------------------------------------------------ |
| `CHECKING`       | Eligible, but only if the account was active during the statement period |
| `SAVING`         | Eligible                                                                 |
| `LINE_OF_CREDIT` | Eligible                                                                 |
| `CHARGE_SECURED` | Eligible                                                                 |

Once a statement is generated, a notification will be sent via webhook. Please refer to the [Webhook Events](#webhook-events) section for details.

### Webhook Events

<Info>
  This section assumes you are familiar with our webhook API. If not, please see the [webhooks guide](/docs/webhooks-guide) for more context.
</Info>

When a statement is generated, a webhook notification will be sent to subscribers of event type `STATEMENT.CREATED`. The event will contain a full version of the statement payload, following the spec outlined in the [Statements API specification](/v1/reference/getstatement).

Please note that if a statement contains an excessive number of transactions, the system may opt to return an empty list in the webhook notification to the subscriber due to technical limitations. This will be reflected in the payload with `transactions_omitted` set to `"true"` and an empty `transactions` attribute.

## API Workflow

<Steps>
  <Step title="List the statements for a given account">
    If statements are available for an account, you can retrieve a summarized list by calling [`GET /v1/statements`](/v1/reference/liststatements), with an `account_id` query parameter:

    <CodeGroup>
      ```bash Shell theme={"system"}
      curl --request GET \
         --url https://api.synctera.com/v1/statements?account_id=37083b2c-d3f9-4a7f-b781-7342285c368e \
         -H 'Accept: application/json' \
         -H "Authorization: Bearer $apikey"
      ```
    </CodeGroup>

    This route only gives high-level details about each statement. Once you know the ID of the statement you're looking for, you can retrieve details about that statement.
  </Step>

  <Step title="Retrieve the details for a given statement">
    With a statement ID, you'll be able to pull detailed information about the statement:

    <CodeGroup>
      ```bash Shell theme={"system"}
      curl --request GET \
         --url https://api.synctera.com/v1/statements/a4554821-22c2-4053-8b50-768365b98c83 \
         -H 'Accept: application/json' \
         -H "Authorization: Bearer $apikey"
      ```
    </CodeGroup>
  </Step>

  <Step title="List the transactions for a statement">
    With a statement ID, you'll be able to pull the list of transactions that pertain to that statement:

    <CodeGroup>
      ```bash Shell theme={"system"}
      curl --request GET \
         --url https://api.synctera.com/v1/statements/a4554821-22c2-4053-8b50-768365b98c83/transactions \
         -H 'Accept: application/json' \
         -H "Authorization: Bearer $apikey"
      ```
    </CodeGroup>

    This list will only include posted transactions at the time of statement generation. These are also only returned to you in descending order of posted date.
  </Step>
</Steps>
