camt.053.001.08 — three accounts in one file
Un solo mensaje camt.053, tres bloques <Stmt>: cuenta corriente, cuenta de ahorro y cuenta en USD. El fichero es válido según el esquema; el validador avisa explícitamente de que solo analiza el primer extracto. Ahí está la clave: un lector que coge Stmt[0] y se detiene pierde dos cuentas en silencio, y este fichero multicuenta lo pone en evidencia.
camt.053.001.08 — Válido
Un solo mensaje camt.053, tres bloques <Stmt>: cuenta corriente, cuenta de ahorro y cuenta en USD. El fichero es válido según el esquema; el validador avisa explícitamente de que solo analiza el primer extracto. Ahí está la clave: un lector que coge Stmt[0] y se detiene pierde dos cuentas en silencio, y este fichero multicuenta lo pone en evidencia.
Lo que muestra este fichero
Un solo mensaje camt.053, tres bloques <Stmt>: cuenta corriente, cuenta de ahorro y cuenta en USD. El fichero es válido según el esquema; el validador avisa explícitamente de que solo analiza el primer extracto. Ahí está la clave: un lector que coge Stmt[0] y se detiene pierde dos cuentas en silencio, y este fichero multicuenta lo pone en evidencia.
| Transacciones | 2 |
|---|---|
| Fecha en el fichero | 2026-05-31 |
Los defectos que contiene
- MultiStmtAvertissement : le fichier contient 3 éléments 'Stmt' ; seul le premier est analysé (2 non analysé(s)).
Citado literalmente del validador, sin parafrasear.
Todas las partes, IBAN e importes siguientes son ficticios. Los IBAN son estructuralmente válidos —superan el mod-97— pero no corresponden a ninguna cuenta real.
Contenido del fichero
<?xml version="1.0" encoding="UTF-8"?>
<!--
ValidateFin sample file — bank statement, camt.053.001.08, THREE accounts in one message.
A single camt.053 message may carry several <Stmt> blocks, one per account. Expected
validation result: the file is well formed and schema-valid, and the validator reports
that only the FIRST statement is analysed — which is exactly the trap: a parser that
reads Stmt[0] and stops silently loses two accounts.
All parties and account numbers are fictitious.
Reference page: https://validatefin.com/en/resources/samples/camt053-multi-account
License: CC-BY-4.0
-->
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.08"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<BkToCstmrStmt>
<GrpHdr>
<MsgId>CAMT053-MULTI-20260531</MsgId>
<CreDtTm>2026-05-31T22:00:00</CreDtTm>
</GrpHdr>
<!-- ─── Compte 1 : compte courant EUR ─────────────────────────────────── -->
<Stmt>
<Id>STMT-ACCT1-2026-05</Id>
<LglSeqNb>5</LglSeqNb>
<CreDtTm>2026-05-31T22:00:00</CreDtTm>
<FrToDt>
<FrDtTm>2026-05-01T00:00:00</FrDtTm>
<ToDtTm>2026-05-31T23:59:59</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN>NL91ABNA0417164300</IBAN>
</Id>
<Ccy>EUR</Ccy>
<Nm>Rekening-courant</Nm>
<Ownr>
<Nm>Van Dijk Logistiek BV</Nm>
</Ownr>
<Svcr>
<FinInstnId>
<BICFI>ABNANL2A</BICFI>
</FinInstnId>
</Svcr>
</Acct>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>OPBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">10000.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2026-05-01</Dt>
</Dt>
</Bal>
<Bal>
<Tp>
<CdOrPrtry>
<Cd>CLBD</Cd>
</CdOrPrtry>
</Tp>
<Amt Ccy="EUR">11749.50</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Dt>
<Dt>2026-05-31</Dt>
</Dt>
</Bal>
<Ntry>
<NtryRef>ACCT1-0001</NtryRef>
<Amt Ccy="EUR">2500.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<BookgDt>
<Dt>2026-05-08</Dt>
</BookgDt>
<ValDt>
<Dt>2026-05-08</Dt>
</ValDt>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>ESCT</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<EndToEndId>INV-2026-0501</EndToEndId>
</Refs>
<RltdPties>
<Dbtr>
<Pty>
<Nm>Havenbedrijf Rotterdam NV</Nm>
</Pty>
</Dbtr>
</RltdPties>
<RmtInf>
<Ustrd>Factuur 2026-0501 transport</Ustrd>
</RmtInf>
</TxDtls>
</NtryDtls>
<AddtlNtryInf>SEPA OVERBOEKING ONTVANGEN</AddtlNtryInf>
</Ntry>
<Ntry>
<NtryRef>ACCT1-0002</NtryRef>
<Amt Ccy="EUR">750.50</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<BookgDt>
<Dt>2026-05-20</Dt>
</BookgDt>
<ValDt>
<Dt>2026-05-20</Dt>
</ValDt>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>ICDT</Cd>
<SubFmlyCd>ESCT</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<AddtlNtryInf>SEPA OVERBOEKING BRANDSTOF</AddtlNtryInf>
</Ntry>
</Stmt>
<!-- ─── Compte 2 : compte de reserve EUR ──────────────────────────────── -->
<Stmt>
<Id>STMT-ACCT2-2026-05</Id>
<LglSeqNb>5</LglSeqNb>
<CreDtTm>2026-05-31T22:00:00</CreDtTm>
<FrToDt>
<FrDtTm>2026-05-01T00:00:00</FrDtTm>
<ToDtTm>2026-05-31T23:59:59</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN>NL39RABO0300065264</IBAN>
</Id>
<Ccy>EUR</Ccy>
<Nm>Spaarrekening</Nm>
<Ownr>
<Nm>Van Dijk Logistiek BV</Nm>
</Ownr>
<Svcr>
<FinInstnId>
<BICFI>RABONL2U</BICFI>
</FinInstnId>
</Svcr>
</Acct>
<Bal>160 / 309 lines shown — the complete file is in the download above.
Cómo sabemos que estos resultados se sostienen
Cada fichero de esta biblioteca pasa por el propio validador del sitio en cada build. El resultado esperado indicado arriba lo verifica un test automatizado: si un fichero dejara de coincidir con lo que afirma esta página, el build fallaría. Dos fixtures heredadas se repararon así antes de publicarse: tres IBAN no superaban el mod-97 y varios nombres usaban caracteres fuera del juego SEPA básico.
Extracto bancario (camt.052 / 053 / 054)
- camt.053.001.02 — valid statement
- camt.053.001.08 — valid statement
- camt.053 — unsupported namespace
- camt.053.001.06 — missing Stmt element
- camt.053.001.11 — valid statement
- camt.053.001.10 — fully detailed entries
- camt.053.001.08 — closing balance does not reconcile
- camt.052.001.08 — valid intraday report
- camt.054.001.08 — valid debit/credit notification
- camt.053.001.08 — entry with no CdtDbtInd
- camt.053.001.08 — 220 entries, valid