---
title: "Account statements for business accounts"
description: "Automate reconciliation and provide your users with transaction reports."
url: "https://docs.adyen.com/business-accounts/business-account-statement"
source_url: "https://docs.adyen.com/business-accounts/business-account-statement.md"
canonical: "https://docs.adyen.com/business-accounts/business-account-statement"
last_modified: "2026-06-01T15:33:15+02:00"
language: "en"
---

# Account statements for business accounts

Automate reconciliation and provide your users with transaction reports.

[View source](/business-accounts/business-account-statement.md)

Adyen provides account statements in the industry-standard CAMT.053 format, which is part of the [ISO 20022](https://www.iso20022.org/) financial messaging standard. CAMT.053 uses structured codes to classify the type and status of each transaction. This ensures consistency and interoperability across financial institutions.

Account statements summarize the financial activity in a business account for a specific period, such as a day or a month. You can use these auditable statements to reconcile balances and provide detailed transaction reports to your users.

## Requirements

Before you begin, take into account the following requirements and preparations.

| Requirement                                                    | Description                                                                                                                                                                                                                  |
| -------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Integration type**                                           | You must have an Adyen for Platforms integration that supports [business accounts](/business-accounts/).                                                                                                                     |
| **[API credentials](/development-resources/api-credentials/)** | Generate an API key for **Report user** for the balance platform. Your API credential must have the following role:- **Bank\_Download ReportsRole**                                                                          |
| **[Webhooks](/development-resources/webhooks)**                | Your server must be able to receive and accept webhooks. You must subscribe to the [balancePlatform.report.created](https://docs.adyen.com/api-explorer/report-webhooks/latest/post/balancePlatform.report.created) webhook. |
| **Setup steps**                                                | Reach out to your Adyen contact to:- Enable the feature on your balance platform.
- Configure your [account statement settings](#account-statement-settings).                                                                |

### Account statement settings

When you contact Adyen to enable the feature, you can customize the following statement configurations:

| Feature                     | Required                                                                                                      | Description                                                                                           | Options                    |
| --------------------------- | ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | -------------------------- |
| **Timeframe**               | ![Required](/user/pages/reuse/image-library/01.icons/required/required.svg?decoding=auto\&fetchpriority=auto) | Sets the reporting frequency.                                                                         | Daily, monthly, or both    |
| **[BAI codes](#bai-codes)** |                                                                                                               | Enables Bank Administration Institute codes for standardized transaction classification.              | Enabled or disabled        |
| **Summary**                 |                                                                                                               | Includes a [transaction summary](#transaction-summary-stmttxssummry) block for an overview of totals. | Included or excluded       |
| **Date format**             | ![Required](/user/pages/reuse/image-library/01.icons/required/required.svg?decoding=auto\&fetchpriority=auto) | Defines which date is used for transactions in the statement.                                         | Value date or booking date |

## Download an account statement

Adyen automatically generates account statements. When a statement is ready:

1. Adyen sends a [balancePlatform.report.created](https://docs.adyen.com/api-explorer/report-webhooks/latest/post/balancePlatform.report.created) webhook message to your configured endpoint in the [Customer Area](https://ca-test.adyen.com/). In the body of the webhook, note the following fields:

   * `balanceAccount`: An object that contains information about the balance account that the account statement is for.
   * `fileName`: The name of the file that corresponds to this account statement.
   * `downloadUrl`: The URL from where you must download the account statement.

   **Example of an account statement webhook**

   ```json
   {
       "type": "balancePlatform.report.created",
       "environment": "live",
       "data": {
           "balancePlatform": "YOUR_BALANCE_PLATFORM",
           "id": "CAMT053_BA00000000000000000000001_20260101000000_20260101235959_EUR.xml",
           "creationDate": "2026-01-02T00:59:59+01:00",
           "fileName": "CAMT053_BA00000000000000000000001_20260101000000_20260101235959_EUR.xml",
           "downloadUrl": "https://balanceplatform-live.adyen.com/balanceplatform/reportDownload/statements/v1/balanceaccount/BA00000000000000000000001/CAMT053_BA00000000000000000000001_20260101000000_20260101235959_EUR.xml",
           "accountHolder": {
               "id": "AH00000000000000000000001",
               "description": "Your description for the account holder"
           },
           "balanceAccount": {
               "id": "BA00000000000000000000001",
               "description": "Your description for the balance account"
           }
       },
       "timestamp": "2026-01-02T00:59:59+01:00"
   }
   ```

2. Download the account statement by making a GET request to the URL included in the `downloadUrl` field. In the request, you can use the `-o` flag to specify a custom name for the downloaded file.

   **Example request to download an account statement**

   ```bash
   curl -X GET "https://balanceplatform-api-test.adyen.com/balanceplatform/reportDownload/statements/v1/balanceaccount/BA00000000000000000000001/statement-2026-03-01.xml" \
     -H "X-API-Key: REPORT_USER_API_KEY" \
     -H "Content-Type: application/xml" \
     -o {LOCAL_FILE_NAME}.xml
   ```

***

## Account statement elements

Adyen provides account statements in ISO 20022 CAMT.053 format. All CAMT.053 statements have the same XML hierarchical structure. The high-level hierarchy structure is the following:

* BankToCustomerStatement (BkToCstmrStmt)

  * GroupHeader (GrpHdr)

  * Statement (Stmt)

    * Account (Acct)
    * Balance (Bal)
    * Entry (Ntry)
    * Transaction summary (TxsSummry)
      * EntryDetails (NtryDtls)
        * TransactionDetails (TxDtls)

Each element in the hierarchy contains nested child elements. The following sections explain the most relevant child elements within each parent element.

**

#### Group header block (GrpHdr)

Metadata for the entire statement message. Includes general information about the statement and its intended recipient.

| Tag             | Element name           | Description                                                                    |
| --------------- | ---------------------- | ------------------------------------------------------------------------------ |
| `<GrpHdr>`      | Group Header           | Container for metadata regarding the statement message and recipient.          |
| `<MsgId>`       | Message Identification | Adyen-generated unique ID of the statement message.                            |
| `<CreDtTm>`     | Creation Date Time     | The date and time the statement was generated.                                 |
| `<MsgRcpt>`     | Message Recipient      | Contains information regarding the legal entity of the balance platform owner. |
| `<Nm>`          | Name                   | The name of the legal entity receiving the statement.                          |
| `<PstlAdr>`     | Postal Address         | The mailing address of the message recipient.                                  |
| `<PstCd>`       | Post Code              | The postal code of the recipient.                                              |
| `<TwnNm>`       | Town Name              | The city or town of the recipient.                                             |
| `<CtrySubDvsn>` | Country Sub Division   | The state, province, or region of the recipient.                               |
| `<Ctry>`        | Country                | The ISO country code of the recipient.                                         |
| `<AdrLine>`     | Address Line           | Up to 7 lines of additional address information.                               |
| `<MsgPgntn>`    | Message Pagination     | Used if the statement is split across multiple files.                          |
| `<PgNb>`        | Page Number            | The current page number of the message.                                        |
| `<LastPgInd>`   | Last Page Indicator    | Indicates whether this is the final page of the statement.                     |
| `<AddtlInf>`    | Additional Information | General additional information regarding the message.                          |

**

#### Statement block (Stmt)

Each `Stmt` represents one account and one currency. A file can contain multiple statements.

| Tag              | Element name                     | Description                                            |
| ---------------- | -------------------------------- | ------------------------------------------------------ |
| `<Stmt>`         | Statement                        | Main container for a specific account statement        |
| `<Id>`           | Identification                   | Unique identifier for the statement                    |
| `<CreDtTm>`      | Creation Date Time               | The date and time this statement block was created     |
| `<FrToDt>`       | From To Date                     | Container for the reporting period of the statement    |
| `<FrDtTm>`       | From Date Time                   | The start date and time of the reporting period        |
| `<ToDtTm>`       | To Date Time                     | The end date and time of the reporting period          |
| `<CpyDplctInd>`  | Copy Duplicate Indicator         | Indicates whether the statement is a copy or duplicate |
| `<RptgSrc>`      | Reporting Source                 | Identifies the reporting source                        |
| `<AddtlStmtInf>` | Additional Statement Information | Additional details about the statement                 |

**

#### Account details (Stmt/Acct)

Identifies the account the statement applies to. The `<Acct>` element contains details about the business account for which the statement was generated.

| Tag          | Element name   | Description                                                                                       |
| ------------ | -------------- | ------------------------------------------------------------------------------------------------- |
| `<Acct>`     | Account        | Container for account details.                                                                    |
| `<Id>`       | Identification | Unique identifier for the account.                                                                |
| `<IBAN>`     | IBAN           | Adyen-issued IBAN, used if the account is a SEPA bank account.                                    |
| `<Othr>`     | Other          | Container for non-IBAN identifiers.                                                               |
| `<Othr><Id>` | Identification | Account number for US or UK bank accounts, or the Adyen business account ID for generic accounts. |
| `<Ccy>`      | Currency       | The three-letter ISO currency code of the account.                                                |

**

#### Balances (Stmt/Bal)

Reports balances at specific points in time. Multiple `<Bal>` elements can appear within an account statement. Depending on the configuration, either booked balances (`OPBD`, `CLBD`) or value balances (`OPAV`, `CLAV`) are reported.

The statement reports balances as either booked or available:

* **Booked** balances show transactions that have been fully processed and recorded on the account.
* **Available** balances show the funds you can use, after taking into account pending debits or credits.

| Tag           | Element name           | Description                                                                                                                                                                            |
| ------------- | ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `<Bal>`       | Balance                | Container for opening and closing balance data.                                                                                                                                        |
| `<Tp>`        | Type                   | Container for the balance type.                                                                                                                                                        |
| `<CdOrPrtry>` | Code Or Proprietary    | Indicates whether a standard ISO code or a proprietary code is used.                                                                                                                   |
| `<Cd>`        | Code                   | Balance type code. Common values include:* `OPBD` – Opening booked balance
* `OPAV` – Opening available balance
* `CLBD` – Closing booked balance
* `CLAV` – Closing available balance |
| `<Amt>`       | Amount                 | The balance amount, including the currency as an attribute, for example, `Ccy="EUR"`.                                                                                                  |
| `<CdtDbtInd>` | Credit Debit Indicator | Indicates whether the balance is credit (`CRDT`) or debit (`DBIT`).                                                                                                                    |
| `<Dt>`        | Date                   | Container for the balance timestamp.                                                                                                                                                   |
| `<DtTm>`      | Date Time              | The date and time the balance was recorded.                                                                                                                                            |
| `<Avlbty>`    | Availability           | Information about the availability of the balance.                                                                                                                                     |

**

#### Entries (Stmt/Ntry)

Each `<Ntry>` represents a booked debit or credit that affects the account balance. Multiple entries can appear in a statement.

| Tag                          | Element name                                    | Description                                                                                |
| ---------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------ |
| `<Ntry>`                     | Entry                                           | Container for a single transaction booked on the account.                                  |
| `<NtryRef>`                  | Entry Reference                                 | Adyen-generated unique identifier for the transaction.                                     |
| `<Amt>`                      | Amount                                          | The transaction amount, including the currency as an attribute (for example, `Ccy="EUR"`). |
| `<CdtDbtInd>`                | Credit Debit Indicator                          | Indicates whether the entry is credit (`CRDT`) or debit (`DBIT`).                          |
| `<Sts>`                      | Status                                          | The status of the entry, typically `BOOK` (Booked).                                        |
| `<BookgDt>`                  | Booking Date                                    | Container for the date the transaction was booked.                                         |
| `<DtTm>` (under `<BookgDt>`) | Date Time                                       | The date and time the transaction was booked.                                              |
| `<ValDt>`                    | Value Date                                      | Container for the date the funds become available or are debited.                          |
| `<DtTm>` (under `<ValDt>`)   | Date Time                                       | The date and time of the value date.                                                       |
| `<AcctSvcrRef>`              | Account Servicer Reference                      | Adyen-generated identifier for the transaction.                                            |
| `<BkTxCd>`                   | [Bank Transaction Code](#bank-transaction-code) | Structured classification (domain, family, sub-family) for the transaction.                |
| `<Domn>`                     | Domain                                          | The broad business area, such as `PMNT` (Payments).                                        |
| `<Fmly>`                     | Family                                          | Defines the transaction type within a domain, such as `ICDT` (Issued Credit Transfer).     |
| `<SubFmlyCd>`                | Sub Family Code                                 | Granular classification, such as `BOOK` (Internal book transfer).                          |
| `<NtryDtls>`                 | Entry Details                                   | Container for detailed transaction information.                                            |

**

#### Transaction summary (Stmt/TxsSummry)

Provides aggregated totals for the reporting period. The `<TtlNtries>` element summarizes entries by [Bank Transaction Code (ISO 20022)](#bank-transaction-code), showing:

* The number of entries.
* The total amount (`<Sum>`) per code.

Each Bank Transaction Code can also be mapped to a corresponding [BAI2 code](#bai-codes-optional).

| Tag                    | Element name                            | Description                                                                                                            |
| ---------------------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| `<TxsSummry>`          | Transaction summary                     | Container for transaction totals.                                                                                      |
| `<TtlNtries>`          | Total entries                           | Total number and amount of entries.                                                                                    |
| `<TtlCdtNtries>`       | Total credit entries                    | Total number and amount of credit entries.                                                                             |
| `<TtlDbtNtries>`       | Total debit entries                     | Total number and amount of debit entries.                                                                              |
| `<TtlNtriesPerBkTxCd>` | Total entries per bank transaction code | Totals grouped by bank transaction code.                                                                               |
| `<NbOfNtries>`         | Number of entries                       | Number of entries.                                                                                                     |
| `<Sum>`                | Sum                                     | Total gross amount.                                                                                                    |
| `<TtlNetNtryAmt>`      | Net total entry amount                  | Net total amount.                                                                                                      |
| `<CdtDbtInd>`          | Credit/debit indicator                  | Indicates whether totals represent credits or debits.                                                                  |
| `<BkTxCd>`             | Bank transaction code                   | Structured transaction classification (domain, family, and sub-family) defined by [ISO 20022](#bank-transaction-code). |

**

#### Transaction details (Stmt/Ntry/NtryDtls/TxDtls)

The `<TxDtls>` element contains information about a transfer associated with the transaction, including:

* Your transfer reference.
* The Adyen-generated transfer ID.

These identifiers help you reconcile activity on the business account.

| Tag             | Element name               | Description                                                                             |
| --------------- | -------------------------- | --------------------------------------------------------------------------------------- |
| `<TxDtls>`      | Transaction Details        | Container for detailed information about the transfer related to the transaction.       |
| `<Refs>`        | References                 | Container for identifiers associated with the transfer.                                 |
| `<AcctSvcrRef>` | Account Servicer Reference | Adyen-generated identifier for the transfer (corresponds to the `id` field in the API). |
| `<InstrId>`     | Instruction Identification | Your reference for the transfer.                                                        |
| `<EndToEndId>`  | End To End Identification  | Reference intended for the beneficiary.                                                 |
| `<TxId>`        | Transaction Identification | Adyen-generated internal reference used for tracing and debugging.                      |
| `<RmtInf>`      | Remittance Information     | Container for remittance-related data.                                                  |
| `<Ustrd>`       | Unstructured               | Description, memo, or remittance information for the transfer.                          |

### Example account statement

The following example shows a CAMT.053 account statement file. It includes the group header, account details, an opening booked balance (`OPBD`), and an entry with its corresponding transaction details.

**Example account statement**

```xml
<BkToCstmrStmt>
    <GrpHdr>
        <MsgId>CAMT05300000000000000000001</MsgId>
        <CreDtTm>2026-03-02T08:15:00+01:00</CreDtTm>
    </GrpHdr>
    <Stmt>
        <Id>0-EUR</Id>
        <Acct>
            <Id>
                <IBAN>NL02ABNA0123456789</IBAN>
            </Id>
            <Ccy>EUR</Ccy>
            <Svcr>
                <FinInstnId>
                    <BIC>ADYXNL2AXXX</BIC>
                </FinInstnId>
            </Svcr>
        </Acct>
        <Bal>
            <Tp>
                <CdOrPrtry>
                    <Cd>OPBD</Cd>
                </CdOrPrtry>
            </Tp>
            <Amt Ccy="EUR">00.10</Amt>
            <CdtDbtInd>CRDT</CdtDbtInd>
            <Dt>
                <DtTm>2026-03-01T00:00:00+01:00</DtTm>
            </Dt>
        </Bal>
        <Ntry>
            <NtryRef>EVJN422XC22422295HQCGFZ2QX3X3QEUR</NtryRef>
            <Amt Ccy="EUR">1.00</Amt>
            <Sts>BOOK</Sts>
            <BookgDt>
                <DtTm>2026-03-01T10:23:09+01:00</DtTm>
            </BookgDt>
            <NtryDtls>
                <TxDtls>
                    <Refs>
                        <InstrId>Fund - AdyenCA-CAD-XXXXX - Fmyc</InstrId>
                        <AcctSvcrRef>4IZQR05YMKIOIQP0</AcctSvcrRef>
                    </Refs>
                </TxDtls>
            </NtryDtls>
        </Ntry>
    </Stmt>
</BkToCstmrStmt>
```

### ISO 20022 Bank Transaction Code

In a CAMT.053 account statement, each transaction entry includes a Bank Transaction Code (`<BkTxCd>`) element. This element classifies the transaction using the ISO 20022 Bank Transaction Code structure. This structure helps you identify the type and direction of the transaction.

ISO 20022 uses a three-tier classification system to define Bank Transaction Codes. This hierarchy moves from broad business areas to granular transaction details:

1. **Domain**: The broad functional area. On Adyen's balance platform, this is always **PMNT** (Payments).
2. **Family**: The category of transaction, for example, **RCDT** for Received Credit/Inbound.
3. **SubFamily**: The specific outcome or method, for example, **ACDT** for Account Deposit.

The following table explains the codes:

| Category       | Code     | Transfer name       | Direction | Transfer outcome | Used for                                                           |
| -------------- | -------- | ------------------- | --------- | ---------------- | ------------------------------------------------------------------ |
| **Domain**     | **PMNT** | Payment             | N/A       | N/A              | All payment-related transaction types                              |
| **Family**     | **RRCT** | Received Real-Time  | Inbound   | N/A              | Instant or real-time inbound transfers                             |
|                | **RCDT** | Received Credit     | Inbound   | N/A              | Inbound ACH, wire, same-day, cross-border, and internal transfers  |
|                | **IRCT** | Initiated Real-Time | Outbound  | N/A              | Instant or real-time outbound transfers                            |
|                | **ICDT** | Initiated Credit    | Outbound  | N/A              | Outbound ACH, wire, same-day, cross-border, and internal transfers |
| **Sub-family** | **ACDT** | Account Deposit     | N/A       | Success          | Standard deposits, such as instant or ACH                          |
|                | **SDVA** | Same-Day Value      | N/A       | Success          | Fast or same-day transfers                                         |
|                | **PRCT** | Priority Credit     | N/A       | Success          | Urgent or wire transfers                                           |
|                | **XBCT** | Cross-border Credit | N/A       | Success          | Transfers via correspondent banks                                  |
|                | **BOOK** | Booked Transfer     | N/A       | Success          | Internal (book) transfers                                          |
|                | **OTHR** | Other               | N/A       | Success          | General or uncategorised transfers                                 |
| **Any**        | **RRTN** | Return              | N/A       | Reversal         | Returns, reversals, or rejections                                  |

The following example shows how an inbound wire transfer is represented in ISO 20022. The `<BkTxCd>` element combines the **Domain**, **Family**, and **SubFamily** codes to classify the transaction:

**Example of an ISO 20022 Bank Transaction Code**

```xml
<BkTxCd>
    <Domn>
        <Cd>PMNT</Cd>
        <Fmly>
            <Cd>RCDT</Cd>
            <SubFmlyCd>PRCT</SubFmlyCd>
        </Fmly>
    </Domn>
</BkTxCd>
```

### (Optional) Codes from the Bank Administration Institute (BAI)

To enable BAI codes for your account statements, reach out to your Adyen contact.

BAI codes are a set of classification codes defined by the [Bank Administration Institute](https://www.bai.org). These codes are used in the BAI2 file format and are common across banking systems for categorizing transactions.

When enabled, BAI codes are included in the CAMT.053 statement to provide additional transaction classification alongside ISO 20022 codes. This mapping focuses on the series used for active payment and transfer methods:

* **100 to 200 series**: Successful inbound deposits and credit returns.
* **400 to 500 series**: Successful outbound disbursements and debit reversals.

#### Credits (inbound)

Transactions where funds are deposited into the business account.

All returned credit transactions use the same ISO 20022 return code (`RRTN`) per transfer family.

| Transfer type            | Bank Transaction Code—booked transaction | Bank Transaction Code—returned transaction | BAI2—booked transaction | BAI2—returned transaction |
| ------------------------ | ---------------------------------------- | ------------------------------------------ | ----------------------- | ------------------------- |
| **Instant or real-time** | **PMNT/RRCT/ACDT**                       | **PMNT/RRCT/RRTN**                         | **158**                 | **496**                   |
| **ACH**                  | **PMNT/RCDT/ACDT**                       | **PMNT/RCDT/RRTN**                         | **165**                 | **557**                   |
| **Fast or same-day**     | **PMNT/RCDT/SDVA**                       | **PMNT/RCDT/RRTN**                         | **165**                 | **557**                   |
| **Urgent or wire**       | **PMNT/RCDT/PRCT**                       | **PMNT/RCDT/RRTN**                         | **195**                 | **496**                   |
| **Cross-border**         | **PMNT/RCDT/XBCT**                       | **PMNT/RCDT/RRTN**                         | **208**                 | **496**                   |
| **Internal or book**     | **PMNT/RCDT/BOOK**                       | **PMNT/RCDT/RRTN**                         | **206**                 | **496**                   |
| **Other**                | **PMNT/RCDT/OTHR**                       | **PMNT/RCDT/RRTN**                         | **195**                 | **496**                   |

#### Debits (outbound)

Transactions where funds are sent or withdrawn from the business account.

All returned debit transactions use the same ISO 20022 return code (`RRTN`) per transfer family.

| Transfer type            | Bank Transaction Code—booked transaction | Bank Transaction Code—returned transaction | BAI2—booked transaction | BAI2—returned transaction |
| ------------------------ | ---------------------------------------- | ------------------------------------------ | ----------------------- | ------------------------- |
| **Instant or real-time** | **PMNT/IRCT/ACDT**                       | **PMNT/IRCT/RRTN**                         | **458**                 | **196**                   |
| **Regular or ACH**       | **PMNT/ICDT/ACDT**                       | **PMNT/ICDT/RRTN**                         | **466**                 | **168**                   |
| **Fast or same-day**     | **PMNT/ICDT/SDVA**                       | **PMNT/ICDT/RRTN**                         | **466**                 | **168**                   |
| **Urgent or wire**       | **PMNT/ICDT/PRCT**                       | **PMNT/ICDT/RRTN**                         | **495**                 | **196**                   |
| **Cross-border**         | **PMNT/ICDT/XBCT**                       | **PMNT/ICDT/RRTN**                         | **508**                 | **196**                   |
| **Internal or book**     | **PMNT/ICDT/BOOK**                       | **PMNT/ICDT/RRTN**                         | **506**                 | **196**                   |
| **General or other**     | **PMNT/ICDT/OTHR**                       | **PMNT/ICDT/RRTN**                         | **495**                 | **266**                   |

## See also

* [Reports and fee types](/platforms/reports-and-fees/)
* [Compliance requirements for account statements](/platforms/compliance-financial-products/account-statements/)
