Statements
Automating daily CAMT.053 statements
Last updated 14 September 2026
CAMT.053 is the ISO 20022 end-of-day bank statement. Most ERPs and treasury systems import it natively, which makes it the easiest way to get a clean daily control into a system that does not want to talk to an API.
The endpoint
GET /v1/{xaid}/statements/camt053/{date}
Authorization: Bearer YOUR_ACCESS_TOKENxaid: the account.date:YYYY-MM-DD, the statement day.
The response is application/xml. Store it as received; auditors like the original.
When to run
Run once per account, early in the morning, for the previous day. If the statement is not yet available you will get an error; retry every 30 minutes until it is, then stop. Do not run for today; the day is not closed.
const day = yesterdayIso();
for (const account of activeAccounts) {
const res = await fetch(
`https://customer-api.prod.xace.io/v1/${account.xaid}/statements/camt053/${day}`,
{ headers: { Authorization: `Bearer ${token}` } },
);
if (!res.ok) { scheduleRetry(account.xaid, day); continue; }
await store.put(`statements/${account.xaid}/${day}.xml`, await res.text());
}What to parse
Inside BkToCstmrStmt/Stmt:
| Element | Meaning |
|---|---|
| Bal with Tp/CdOrPrtry/Cd = OPBD | Opening booked balance |
| Bal with Tp/CdOrPrtry/Cd = CLBD | Closing booked balance |
| Ntry (repeated) | One entry per transaction, with Amt, CdtDbtInd (CRDT or DBIT), BookgDt, and references under NtryDtls |
| TxsSummry | Totals of credits and debits |
Using it as a control
Each morning, for each account:
- Opening balance on today's statement equals closing balance on yesterday's. If not, a statement is missing.
- Closing balance equals the ledger balance you hold for that account at end of day.
- Number and sum of entries equals the transactions your sync job posted for that day. See Syncing transactions for reconciliation.
Any mismatch goes to an exceptions queue with the account, the day and the two numbers. That is the whole daily reconciliation, and it is automatic.
Monthly statements
Monthly PDF statements for people are available in the web app from the first day of the following month. See [How can I download my Xace statements](https://support.xace.io/en/articles/8711919-how-can-i-download-my-xace-statements).