Format library
Every bank statement format says the same things. Only the spelling changes.
An account, the balance it opened on, every movement the bank booked against it, and the balance it closed on. MT940 writes that in tags, CAMT.053 in XML elements, BAI2 in numbered records, CSB43 in eighty fixed characters. Below is one account’s day in each of them.
One account, one day
EURES21 0049 0001 5323 4567 8901
Closing balance
EUR 2,990,901.67
What the bank printed at the close of Aug 14, 2026
- Opening balance Aug 13, 2026
- EUR 2,864,112.47
- Customer collection Value Aug 15, 2026
- EUR +182,046.55
- Direct debit Value Aug 14, 2026
- EUR -42,318.90
- Account charges Value Aug 14, 2026
- EUR -12,938.45
Booked movementEUR +126,789.20
Anatomy
What is in a bank statement file?
Every format on this page carries the same facts. What differs is where each one sits, and what it is called when you get there.
A bank statement file is one account over one period: the balance it opened on, every movement the bank booked against it in order, and the balance it closed on. Each movement carries an amount, a direction, the day it was booked, the day the money is actually yours, whatever reference the payer attached, and a line of free text the bank writes about it.
Where each fact sits
- Which account it is
- MT940:25:CAMT.053<Acct><Id><IBAN>BAI203 · 2CSB4311 · 3-20
- The balance it opened on
- MT940:60F:CAMT.053<Bal><Tp><CdOrPrtry><Cd>OPBDBAI203 · 010CSB4311 · 34-47
- One movement, and which way it went
- MT940:61: · 3 · 5CAMT.053<Ntry><Amt> · <CdtDbtInd>BAI216 · 2 · 3CSB4322 · 28 · 29-42
- The day it was booked, and the day the money is yours
- MT940:61: · 1 · 2CAMT.053<ValDt> · <BookgDt>BAI202 · 5CSB4322 · 11-16 · 17-22
- What the bank wrote about it
- MT940:86:CAMT.053<RmtInf> · <AddtlNtryInf>BAI216 · 7CSB4323
- The reference that ties it to a payment
- MT940:61: · 8 · :86:/EREF/CAMT.053<EndToEndId> · <AcctSvcrRef>BAI216 · 5 · 6CSB4322 · 53-64 · 65-80
- The balance it closed on
- MT940:62F:CAMT.053<Bal><Tp><CdOrPrtry><Cd>CLBDBAI203 · 015CSB4333 · 60-73
Each of these formats prints the closing balance and, separately, the movements that produce it. Read both and the file proves its own arithmetic: opening plus credits minus debits has to be the figure the bank printed. A file where it is not is a file to ask the bank about, rather than a file to load.
MT940 and CAMT.053
What is the difference between MT940 and CAMT.053?
One field. MT940 puts the payer, the invoice and the end-to-end reference into :86:, a free-text field the standard says nothing about. CAMT.053 gives each of them an element with a name. Here is the same account, on the same day, in both.
:20:STMT26081400161 :25:ES2100490001532345678901 :28C:00161/00001 :60F:C260813EUR2864112,47 :61:2608150814C182046,55NTRFNONREF//BK26081401 :86:/ORDP/NORTE TESORERIA SL/REMI/FRA 4471/EREF/4471QX :61:2608140814D42318,90NDDTMD-88214//BK26081402 :86:/BENM/NORTE SUMINISTROS SL/REMI/SUMINISTRO JULIO :61:2608140814D12938,45NCHGNONREF//BK26081403 :86:/REMI/COMISION MANTENIMIENTO 3T :62F:C260814EUR2990901,67
<Stmt>
<Id>26081400161</Id>
<Acct><Id><IBAN>ES2100490001532345678901</IBAN></Id><Ccy>EUR</Ccy></Acct>
<Bal>
<Tp><CdOrPrtry><Cd>OPBD</Cd></CdOrPrtry></Tp>
<Amt Ccy="EUR">2864112.47</Amt><CdtDbtInd>CRDT</CdtDbtInd>
<Dt><Dt>2026-08-13</Dt></Dt>
</Bal>
<Bal>
<Tp><CdOrPrtry><Cd>CLBD</Cd></CdOrPrtry></Tp>
<Amt Ccy="EUR">2990901.67</Amt><CdtDbtInd>CRDT</CdtDbtInd>
<Dt><Dt>2026-08-14</Dt></Dt>
</Bal>
<Ntry>
<Amt Ccy="EUR">182046.55</Amt><CdtDbtInd>CRDT</CdtDbtInd><Sts><Cd>BOOK</Cd></Sts>
<BookgDt><Dt>2026-08-14</Dt></BookgDt><ValDt><Dt>2026-08-15</Dt></ValDt>
<AcctSvcrRef>BK26081401</AcctSvcrRef>
<BkTxCd><Domn><Cd>PMNT</Cd><Fmly><Cd>RCDT</Cd><SubFmlyCd>ESCT</SubFmlyCd></Fmly></Domn></BkTxCd>
<NtryDtls><TxDtls>
<Refs><EndToEndId>4471QX</EndToEndId></Refs>
<RltdPties><Dbtr><Pty><Nm>NORTE TESORERIA SL</Nm></Pty></Dbtr></RltdPties>
<RmtInf><Ustrd>FRA 4471</Ustrd></RmtInf>
</TxDtls></NtryDtls>
</Ntry>
<Ntry>
<Amt Ccy="EUR">42318.90</Amt><CdtDbtInd>DBIT</CdtDbtInd><Sts><Cd>BOOK</Cd></Sts>
<BookgDt><Dt>2026-08-14</Dt></BookgDt><ValDt><Dt>2026-08-14</Dt></ValDt>
<AcctSvcrRef>BK26081402</AcctSvcrRef>
<BkTxCd><Domn><Cd>PMNT</Cd><Fmly><Cd>RDDT</Cd><SubFmlyCd>ESDD</SubFmlyCd></Fmly></Domn></BkTxCd>
<AddtlNtryInf>NORTE SUMINISTROS SL SUMINISTRO JULIO</AddtlNtryInf>
</Ntry>
<Ntry>
<Amt Ccy="EUR">12938.45</Amt><CdtDbtInd>DBIT</CdtDbtInd><Sts><Cd>BOOK</Cd></Sts>
<BookgDt><Dt>2026-08-14</Dt></BookgDt><ValDt><Dt>2026-08-14</Dt></ValDt>
<AcctSvcrRef>BK26081403</AcctSvcrRef>
<BkTxCd><Prtry><Cd>NCHG</Cd><Issr>SWIFT</Issr></Prtry></BkTxCd>
<AddtlNtryInf>COMISION MANTENIMIENTO 3T</AddtlNtryInf>
</Ntry>
</Stmt>What CAMT.053 gives a name to
- The reference the payer set
- <Refs><EndToEndId>
- The bank’s own transaction code, published or proprietary
- <BkTxCd><Domn> · <BkTxCd><Prtry>
- Who the other side is, as a named party
- <RltdPties><Dbtr><Pty><Nm>
- The booking date and the value date, separately
- <BookgDt> · <ValDt>
Neither is the better file to receive. MT940 is short and everything reads it; CAMT.053 is explicit and saves the reading. Both close this day on the same balance, and both land here as one movement with the same fields filled in — which is what lets a group keep one bank on each without keeping two sets of numbers.
The catalog
Which file should I ask my bank for?
It depends on the question. A bank publishes several files about the same account, and they answer different ones.
- Close the day
MT940 · CAMT.053 · BAI2 · CSB43/N43
The statement a position and a reconciliation are built on. One per account per day, with every movement and both balances.
- See today before it closes
MT942 · CAMT.052
The same account as the morning goes on. Entries can still be pending, so a forecast moves on these and a close does not.
- Confirm one movement
MT900 · MT910 · CAMT.054
A single debit or credit as the bank books it, at item level and often richer than the statement line it will eventually become.
- Confirm a figure and nothing else
MT941
A balance report has no statement lines in it at all. It answers how much, never why, and the screen it lands on says which of the two you are looking at.
- Tell the bank to pay
PAIN.001 · PAIN.008 · MT101
Credit transfers, direct debit collections, and the SWIFT request for transfer for the banks that prefer it.
- Read the bank’s answer
PAIN.002
Accepted, rejected or still pending, per file and per transaction, landing back on the batch that left.
A page per format
- MT940 The SWIFT end-of-day statement, and the free-text field under every line
- CAMT.053 The ISO 20022 closed statement, every reference in its own element
- BAI2 The US cash-management file, and the type code that carries direction
- CSB43 · N43 The Spanish fixed-width statement, where position is the field name
- MT942 Movements since the last report, above a floor limit, no balance
- CAMT.052 The same account before the close, with two interim balances
- MT9xx Confirmations, balance reports, and which of the five to ask for
- pain.001 The ISO 20022 payment initiation, and the total a bank checks first
- MT101 The SWIFT request for transfer, and what it leaves you to count
- ISO 20022 The name grammar behind camt, pain and pacs, version included
- SEPA Not a file format: the rules a euro payment has to satisfy
- EBICS The signed bank channel — how the file arrives, not what it says
- FAGLL03H The SAP ledger export on the other side of every bank line
These are examples rather than a list. A bank that sends something not named here gets a profile of its own, and adding it is our work rather than your project.
Fixed width
What about the formats that are not XML at all?
They arrive every morning and they are not going away. BAI2 numbers its records and keeps the direction in a type code rather than a sign. CSB43 has no delimiters at all: eighty characters a line, position is the field name, and an amount is minor units with the decimal point implied.
02,,0049,1,260814,,EUR,2/ 03,2345678901,EUR,010,286411247,,,100,18204655,1,,400,5525735,2,,015,299090167,,/ 16,165,18204655,,BK26081401,4471QX,NORTE TESORERIA SL FRA 4471/ 16,455,4231890,,BK26081402,MD-88214,NORTE SUMINISTROS SL SUMINISTRO JULIO/ 16,408,1293845,,BK26081403,,COMISION MANTENIMIENTO 3T/
110049000123456789012608142608142000002864112479783SOCIEDAD MATRIZ SA 22 00012608142608150401220000001820465500000044714471QX NORTE TESORERIA 2301NORTE TESORERIA SL FRA 4471 22 0001260814260814030071000000042318900000004472MD-88214 SUMINISTRO JULIO 2301NORTE SUMINISTROS SL SUMINISTRO JULIO 22 0001260814260814170031000000012938450000004473 COMISION 3T 2301COMISION MANTENIMIENTO 3T 33004900012345678901000020000000552573500001000000182046552000002990901679783
Record 33 is the most useful line on this page: how many debits and what they come to, how many credits and what they come to, and the closing balance, all stated by the bank in one record. That is the arithmetic MT940 leaves you to do and CAMT.053 spreads across two balance elements — and all four formats land on the same figure.
What we read
What comes out of one statement line?
Everything the line and its free text carry, whichever format brought them. Below is one MT940 movement — the credit at the top of the day — with each value beside the subfield or tag it was read from.
That is what a reconciliation actually matches on. The counterparty and the reference are the two a free-text format hides, and reading them out of :86: is the difference between a movement that finds its invoice and a movement that waits for somebody.
The bank’s bytes
:86:/ORDP/NORTE TESORERIA SL/REMI/FRA 4471/EREF/4471QX
- Amount:61: · 5
- EUR 182,046.55
- Value date:61: · 1
- Aug 15, 2026
- Booking date:61: · 2
- Aug 14, 2026
- Transaction type:61: · 6
- NTRF
- Bank reference:61: · 8
- BK26081401
- Counterparty:86: /ORDP/
- NORTE TESORERIA SL
- Concept:86: /REMI/
- FRA 4471
- End-to-end reference:86: /EREF/
- 4471QX
Where this goes next
Practical questions
What else do practitioners ask about these files?
- 01What does the MT940 :86: field contain?
- Whatever the bank decided. The standard calls it information to the account owner and stops there. Some banks write structured subfields — /ORDP/ for the ordering party, /BENM/ for the beneficiary, /REMI/ for the remittance, /EREF/ for the end-to-end reference. Some write their own numbered field codes. Some write a sentence. Tresora reads each bank’s convention as an interpretation of its own, and improving one re-reads the movements already loaded rather than leaving them as they were.
- 02Is CAMT.052 the same as CAMT.053?
- No. CAMT.052 is the intraday account report and CAMT.053 is the end-of-day statement. The structures are close, and the difference that matters is status: a CAMT.052 entry can still be pending, and a CAMT.053 entry is booked. A pending entry is enough to move a forecast and not enough to close a day.
- 03What is CSB43, and is N43 a different format?
- One format, two names. CSB43 is Norma 43 of the Spanish banking association — cuaderno 43 — and .N43 is the extension most Spanish banks put on the file. Eighty characters a record, no delimiters, amounts in minor units with no decimal point, and the concept split across complementary records numbered 23.
- 04Why is BAI2 still in use?
- Because it is the cash-management format of the United States and it works. Totals and detail travel in one file, and the direction of every movement comes from a numeric type code rather than a sign. A group with one American bank has one BAI2 file in an otherwise ISO 20022 morning, and it reconciles beside the rest.
- 05Which version of CAMT.053 do you read?
- The one your bank sends. CAMT.053 is published in several versions and the element paths differ between them: a party’s name sits a level deeper in the later ones. A format profile is pinned to the version on the file rather than to the name of the standard, and it belongs to a bank, because two banks on one version still fill it differently.
- 06My bank sends a format that is not on this page.
- Then it becomes a profile like the ones here. Send us a file: we read it, name its fields and show you what came out. The catalog grows the day one of your banks needs it to.
Send us one file and we will read every field in it.
Whatever your most awkward bank sends, in whatever it sends it in. We name every field, chain the balances, and show you the movements beside the records they came from.
One file is enough for this. It does not need a connection, and it does not need to be this month’s.