Adyen provides account statements in the industry-standard CAMT.053 format, which is part of the ISO 20022 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. If your balance account is linked to an Adyen-issued card, transactions processed with that card also appear in the statement.
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. |
| API credentials | Generate an API key for Report user for the balance platform. Your API credential must have the following role:
|
| Webhooks | Your server must be able to receive and accept webhooks. You must subscribe to the balancePlatform.report.created webhook. |
| Setup steps | Reach out to your Adyen contact to:
|
Account statement settings
When you contact Adyen to enable the feature, you can customize the following statement configurations:
| Feature | Required | Description | Options |
|---|---|---|---|
| Timeframe | Sets the reporting frequency. | Daily, monthly, or both | |
| BAI codes | Enables Bank Administration Institute (BAI) codes for standardized transaction classification. | Enabled or disabled | |
| Summary | Includes a transaction summary block for an overview of totals, grouped by bank transaction code. | Included by default | |
| Date format | Defines which date is used for transactions in the statement. | Value date or booking date | |
| Summarized file | Generates an additional daily CAMT.053 file where individual transaction entries are replaced by aggregated totals. These totals are grouped by BAI codes. | Enabled or disabled |
Download an account statement
Adyen automatically generates account statements. When a statement is ready:
-
Adyen sends a balancePlatform.report.created webhook message to your configured endpoint in the Customer Area. 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.
-
Download the account statement by making a GET request to the URL included in the
downloadUrlfield. In the request, you can use the-oflag to specify a custom name for the downloaded file.
Account statement elements
All CAMT.053 statements provided by Adyen have the same XML structure. The high-level structure is:
- BankToCustomerStatement (BkToCstmrStmt)
- GroupHeader (GrpHdr)
- Statement (Stmt)
- Account (Acct)
- Balance (Bal)
- Entry (Ntry)
- Transaction summary (TxsSummry)
- EntryDetails (NtryDtls)
- TransactionDetails (TxDtls)
- EntryDetails (NtryDtls)
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)
This block contains metadata for the entire statement message, including general information about the statement and its 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)
This block 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 |
<ElctrncSeqNb> |
Electronic Sequence Number | The sequential number of the statement that corresponds to the batch sequence number reflected in the <Id> field |
<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)
This block identifies the account that the statement applies to.
| 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)
This block reports balances at specific points in time. An account statement can contain multiple <Bal> elements. Depending on the configuration, Adyen reports either booked balances (OPBD, CLBD) or available balances (OPAV, CLAV).
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:
|
<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 date. The <Dt> element uses the date-only format (YYYY-MM-DD). |
<Avlbty> |
Availability | Information about the availability of the balance. |
Entries (Stmt/Ntry)
This block lists the booked debit and credit entries that affect 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 | 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)
This block provides aggregated totals for the reporting period. The <TtlNtries> element summarizes entries by Bank Transaction Code (ISO 20022), showing:
- The number of entries.
- The total amount (
<Sum>) per code.
Each Bank Transaction Code can also be mapped to a corresponding BAI code.
| 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. |
Transaction details (Stmt/Ntry/NtryDtls/TxDtls)
This block contains information about the 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.
ISO 20022 Bank Transaction Code
Each transaction entry in a CAMT.053 statement includes a Bank Transaction Code (<BkTxCd>) element, which classifies it using the ISO 20022 structure and helps you identify its type and direction.
ISO 20022 uses a three-tier classification system to define Bank Transaction Codes. This hierarchy moves from broad business areas to granular transaction details:
-
Domain: The broad functional area. Most transactions on Adyen's balance platform use the PMNT (Payments) domain. The PMNT domain also includes additional families, such as CCRD (Customer Card Transactions) for issuing-related transactions. Adyen uses additional domains for specific transaction types:
- ACMT (Account Management) for interest payouts
- CAMT (Cash Management) for top-ups
-
Family: The category of transaction, for example, RCDT for Received Credit/Inbound.
-
SubFamily: The specific outcome or method, for example, ACDT for Account Deposit.
The following table explains the codes:
| Category | Code | Transfer name | Direction | Used for |
|---|---|---|---|---|
| Domain | PMNT | Payment | N/A | All payment-related transaction types |
| ACMT | Account Management | N/A | Interest payouts | |
| CAMT | Cash Management | N/A | Top-ups and account balancing | |
| Family | RRCT | Received Real-Time | Credit | Instant or real-time inbound transfers |
| RCDT | Received Credit | Credit | Inbound ACH, wire, same-day, cross-border, and internal transfers | |
| IRCT | Initiated Real-Time | Debit | Instant or real-time outbound transfers | |
| ICDT | Initiated Credit | Debit | Outbound ACH, wire, same-day, cross-border, and internal transfers | |
| MCOP | Miscellaneous Credit Operations | Credit | Interest payouts | |
| ACCB | Account Balancing | Credit | Top-ups | |
| RDDT | Received Direct Debits | Debit | Received direct debits | |
| CCRD | Customer Card Transactions | N/A | Card-based issuing transactions (refunds, captures, chargebacks, ATM withdrawals) | |
| Sub-family | ACDT | Account Deposit | N/A | Standard deposits, such as instant or ACH |
| SDVA | Same-Day Value | N/A | Fast or same-day transfers | |
| PRCT | Priority Credit | N/A | Urgent or wire transfers | |
| XBCT | Cross-border Credit | N/A | Transfers through correspondent banks | |
| BOOK | Booked Transfer | N/A | Internal (book) transfers | |
| OTHR | Other | N/A | General or uncategorised transfers | |
| RRTN | Return | N/A | Returns or rejections | |
| INTR | Interest | Credit | Interest payouts | |
| TOPG | Topping | Credit | Account top-ups | |
| PMDD | Pre-Mandated Direct Debit | Debit | Received direct debits | |
| OTHR | Other | N/A | Issuing card transactions not covered by a more specific code |
The following example shows how ISO 20022 represents an inbound wire transfer. The <BkTxCd> element combines the Domain, Family, and SubFamily codes to classify the transaction:
Transfers API fields and Bank Transaction Codes
The following table shows how the category, type, and priority fields in the Transfers API map to the ISO 20022 Bank Transaction Code used in the statement. Use this table to correlate transactions between the Transfers API and the CAMT.053 statement.
| Transfer API category | Transfer API type | Transfer API priority | Direction | Bank Transaction Code |
|---|---|---|---|---|
bank |
bankTransfer |
regular |
Credit | PMNT/RCDT/ACDT |
bank |
bankTransfer |
regular |
Debit | PMNT/ICDT/ACDT |
bank |
bankTransfer |
fast |
Credit | PMNT/RCDT/SDVA |
bank |
bankTransfer |
fast |
Debit | PMNT/ICDT/SDVA |
bank |
bankTransfer |
wire |
Credit | PMNT/RCDT/PRCT |
bank |
bankTransfer |
wire |
Debit | PMNT/ICDT/PRCT |
bank |
bankTransfer |
instant |
Credit | PMNT/RRCT/ACDT |
bank |
bankTransfer |
instant |
Debit | PMNT/IRCT/ACDT |
bank |
bankTransfer |
crossBorder |
Credit | PMNT/RCDT/XBCT |
bank |
bankTransfer |
crossBorder |
Debit | PMNT/ICDT/XBCT |
bank |
bankTransfer |
internal |
Credit | PMNT/RCDT/BOOK |
bank |
bankTransfer |
internal |
Debit | PMNT/ICDT/BOOK |
internal |
internalTransfer |
N/A | Credit | PMNT/RCDT/BOOK |
internal |
internalTransfer |
N/A | Debit | PMNT/ICDT/BOOK |
internal |
internalDirectDebit |
N/A | Debit | PMNT/ICDT/BOOK |
internal |
interestPayout |
N/A | Credit | ACMT/MCOP/INTR |
topUp |
capture |
N/A | Credit | CAMT/ACCB/TOPG |
issuedCard |
payment |
N/A | Credit | PMNT/CCRD/OTHR |
issuedCard |
payment |
N/A | Debit | PMNT/CCRD/OTHR |
bank |
bankTransfer |
N/A | Debit | PMNT/RDDT/PMDD |
(Optional) Codes from the Bank Administration Institute
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. Financial institutions use these codes in the BAI file format to categorize transactions.
When enabled, Adyen includes BAI codes in the CAMT.053 statement to provide additional transaction classification alongside ISO 20022 codes. The following tables cover the codes for active payment and transfer methods.
Credits
These transactions deposit funds 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 or rejected transaction | BAI - booked transaction | BAI - returned or rejected 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 |
| Interest | ACMT/MCOP/INTR | N/A | 354 | N/A |
| Top-up | CAMT/ACCB/TOPG | N/A | 275 | N/A |
Debits
These transactions send or withdraw funds 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 or rejected transaction | BAI - booked transaction | BAI - returned or rejected 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 |
| Received direct debit | PMNT/RDDT/PMDD | N/A | 455 | N/A |
Transactions with Adyen-issued cards
A business account and an Adyen-issued card can be linked to the same balance account. In this case, transactions processed with this Adyen-issued card also appear in the CAMT.053 statement.
| Issuing transfer type | Bank Transaction Code - booked transaction | BAI - booked transaction |
|---|---|---|
| Incoming transfer | PMNT/CCRD/OTHR | 399 |
| Outgoing transfer | PMNT/CCRD/OTHR | 699 |
| Capture | PMNT/CCRD/OTHR | 699 |
| Capture reversal | PMNT/CCRD/OTHR | 252 |
| ATM withdrawal | PMNT/CCRD/OTHR | 595 |
| ATM withdrawal reversal | PMNT/CCRD/OTHR | 252 |
| Chargeback | PMNT/CCRD/OTHR | 399 |
| Chargeback reversal | PMNT/CCRD/OTHR | 552 |
| Refund | PMNT/CCRD/OTHR | 399 |
| Refund reversal | PMNT/CCRD/OTHR | 552 |
| Second presentment | PMNT/CCRD/OTHR | 699 |
| Second chargeback | PMNT/CCRD/OTHR | 399 |
(Optional) Summarized account statement
In addition to the standard account statement, Adyen can generate a daily summarized account statement. Financial institutions commonly use this format, which makes reconciliation easier when you process transactions with multiple institutions.
The following table shows the differences between the standard and summarized account statements.
| Feature | Standard statement | Summarized statement |
|---|---|---|
| Entries | One <Ntry> for each transaction. |
One <Ntry> for each BAI code group. |
| Bank Transaction Code | <Domn> or <Prtry>, not both. |
Both <Domn> and <Prtry>. |
| Date format | <DtTm> (date and time) |
<Dt> (date only) |
| Transaction summary | <TxsSummry> included when configured. |
<TxsSummry> always included, with totals for each BAI code. |
Adyen groups transactions that share a BAI code into one <Ntry> and totals their amounts. For example, 69,493 outbound ACH transactions on the same day all share BAI code 466 and appear as one <Ntry>:
The following table describes the fields in each summarized entry.
| Tag | Element name | Description |
|---|---|---|
<NtryRef> |
Entry Reference | Adyen-generated reference that identifies the BAI code group and statement date (for example, SUMMARY-BAI466-20260108). Use the shared <ElctrncSeqNb> to cross-reference entries with the detailed file. |
<Amt> |
Amount | The total amount for all transactions with this BAI code. |
<CdtDbtInd> |
Credit Debit Indicator | Indicates the net credit (CRDT) or debit (DBIT) direction of the group. |
<Sts> |
Status | The status of the entry. Always BOOK. |
<BookgDt><Dt> |
Booking Date | The booking date in date-only format (YYYY-MM-DD). |
<ValDt><Dt> |
Value Date | The value date in date-only format (YYYY-MM-DD). |
<BkTxCd><Domn> |
ISO Domain Code | The ISO 20022 domain, family, and sub-family codes for the transaction type. Unlike the standard statement, both <Domn> and <Prtry> appear in the same entry. |
<BkTxCd><Prtry> |
BAI Proprietary Code | The BAI code and issuer identifier for the transaction type. |
<NtryDtls><TxDtls><RmtInf><Ustrd> |
Remark | The description of the transaction group, with the count and type name, for example, REMARK=69493 REGULAR OR ACH DEBITS. |