camt.054.001.08 — valid debit/credit notification
Un avviso di addebito/accredito camt.054 valido: un accredito SEPA in entrata e un addebito diretto in uscita, ciascuno con TxDtls completi e riferimento end-to-end. La sorpresa strutturale è ciò che NON c’è: un camt.054 non ha alcun elemento <Bal> — lo schema ISO 20022 non ne definisce. Un avviso annuncia movimenti, non dichiara mai un saldo: non c’è nulla da quadrare.
camt.054.001.08 — Valido
Un avviso di addebito/accredito camt.054 valido: un accredito SEPA in entrata e un addebito diretto in uscita, ciascuno con TxDtls completi e riferimento end-to-end. La sorpresa strutturale è ciò che NON c’è: un camt.054 non ha alcun elemento <Bal> — lo schema ISO 20022 non ne definisce. Un avviso annuncia movimenti, non dichiara mai un saldo: non c’è nulla da quadrare.
Cosa mostra questo file
Un avviso di addebito/accredito camt.054 valido: un accredito SEPA in entrata e un addebito diretto in uscita, ciascuno con TxDtls completi e riferimento end-to-end. La sorpresa strutturale è ciò che NON c’è: un camt.054 non ha alcun elemento <Bal> — lo schema ISO 20022 non ne definisce. Un avviso annuncia movimenti, non dichiara mai un saldo: non c’è nulla da quadrare.
| Transazioni | 2 |
|---|---|
| Data nel file | 2026-07-09 |
Tutte le parti, gli IBAN e gli importi qui sotto sono fittizi. Gli IBAN sono strutturalmente validi — superano il mod-97 — ma non corrispondono ad alcun conto reale.
Contenuto del file
<?xml version="1.0" encoding="UTF-8"?>
<!--
ValidateFin sample file — debit/credit notification, camt.054.001.08.
Expected validation result: VALID.
camt.054 is the message a bank sends to ANNOUNCE individual debits and credits.
Its root is BkToCstmrDbtCdtNtfctn and its container is <Ntfctn>. The structural
point of this file: a camt.054 has NO <Bal> element at all — the ISO 20022 schema
does not define one. A notification announces movements, it does not state a
balance, so there is nothing to reconcile against. Anyone porting camt.053 code
to camt.054 discovers this the hard way.
Here: one incoming SEPA credit (2 480.00 EUR) and one outgoing direct debit
(95.40 EUR), both with full TxDtls and end-to-end references.
All parties and account numbers are fictitious.
Reference page: https://validatefin.com/en/resources/samples/camt054-credit-notification
License: CC-BY-4.0
-->
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.054.001.08"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<BkToCstmrDbtCdtNtfctn>
<GrpHdr>
<MsgId>CAMT054-20260709-0001</MsgId>
<CreDtTm>2026-07-09T16:05:00</CreDtTm>
</GrpHdr>
<Ntfctn>
<Id>NTFCTN-PT-20260709-0001</Id>
<CreDtTm>2026-07-09T16:05:00</CreDtTm>
<FrToDt>
<FrDtTm>2026-07-09T00:00:00</FrDtTm>
<ToDtTm>2026-07-09T16:05:00</ToDtTm>
</FrToDt>
<Acct>
<Id>
<IBAN>PT50000201231234567890154</IBAN>
</Id>
<Ccy>EUR</Ccy>
<Nm>Conta a ordem</Nm>
<Ownr>
<Nm>Azulejos do Douro Lda</Nm>
</Ownr>
<Svcr>
<FinInstnId>
<BICFI>BCOMPTPL</BICFI>
</FinInstnId>
</Svcr>
</Acct>
<TxsSummry>
<TtlNtries>
<NbOfNtries>2</NbOfNtries>
</TtlNtries>
<TtlCdtNtries>
<NbOfNtries>1</NbOfNtries>
<Sum>2480.00</Sum>
</TtlCdtNtries>
<TtlDbtNtries>
<NbOfNtries>1</NbOfNtries>
<Sum>95.40</Sum>
</TtlDbtNtries>
</TxsSummry>
<!-- Avis de CREDIT -->
<Ntry>
<NtryRef>PT-20260709-CRDT-01</NtryRef>
<Amt Ccy="EUR">2480.00</Amt>
<CdtDbtInd>CRDT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<BookgDt>
<DtTm>2026-07-09T15:58:00</DtTm>
</BookgDt>
<ValDt>
<Dt>2026-07-09</Dt>
</ValDt>
<AcctSvcrRef>BCP20260709000442</AcctSvcrRef>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>RCDT</Cd>
<SubFmlyCd>ESCT</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<EndToEndId>FAT-2026-0316</EndToEndId>
<TxId>TX-PT-20260709-01</TxId>
</Refs>
<RltdPties>
<Dbtr>
<Pty>
<Nm>Reabilitacoes Urbanas SA</Nm>
</Pty>
</Dbtr>
<DbtrAcct>
<Id>
<IBAN>PT50003300004567890123405</IBAN>
</Id>
</DbtrAcct>
</RltdPties>
<RltdAgts>
<DbtrAgt>
<FinInstnId>
<BICFI>BCOMPTPL</BICFI>
</FinInstnId>
</DbtrAgt>
</RltdAgts>
<RmtInf>
<Ustrd>Fatura FAT-2026-0316 - azulejo hidraulico</Ustrd>
</RmtInf>
</TxDtls>
</NtryDtls>
<AddtlNtryInf>TRANSFERENCIA SEPA RECEBIDA</AddtlNtryInf>
</Ntry>
<!-- Avis de DEBIT -->
<Ntry>
<NtryRef>PT-20260709-DBIT-01</NtryRef>
<Amt Ccy="EUR">95.40</Amt>
<CdtDbtInd>DBIT</CdtDbtInd>
<Sts>
<Cd>BOOK</Cd>
</Sts>
<BookgDt>
<DtTm>2026-07-09T06:30:00</DtTm>
</BookgDt>
<ValDt>
<Dt>2026-07-09</Dt>
</ValDt>
<BkTxCd>
<Domn>
<Cd>PMNT</Cd>
<Fmly>
<Cd>IDDT</Cd>
<SubFmlyCd>PMDD</SubFmlyCd>
</Fmly>
</Domn>
</BkTxCd>
<NtryDtls>
<TxDtls>
<Refs>
<EndToEndId>TELECOM-2026-07</EndToEndId>
<MndtId>PT-MNDT-2021-4412</MndtId>
</Refs>
<RltdPties>
<Cdtr>
<Pty>
<Nm>Telecom Norte SA</Nm>
</Pty>
</Cdtr>
</RltdPties>
<RmtInf>
<Ustrd>Servico de comunicacoes julho 2026</Ustrd>
</RmtInf>
</TxDtls>
</NtryDtls>
<AddtlNtryInf>DEBITO DIRETO SEPA TELECOM NORTE</AddtlNtryInf>
</Ntry>
</Ntfctn>160 / 163 lines shown — the complete file is in the download above.
Come sappiamo che questi risultati reggono
Ogni file di questa libreria passa nel validatore del sito a ogni build. Il risultato atteso indicato sopra è verificato da un test automatico: se un file smettesse di corrispondere a quanto afferma questa pagina, la build fallirebbe. Due fixture ereditate sono state riparate così prima della pubblicazione: tre IBAN non superavano il mod-97 e diversi nomi usavano caratteri fuori dal set SEPA di base.
Estratto conto (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.08 — three accounts in one file
- camt.053.001.10 — fully detailed entries
- camt.053.001.08 — closing balance does not reconcile
- camt.052.001.08 — valid intraday report
- camt.053.001.08 — entry with no CdtDbtInd
- camt.053.001.08 — 220 entries, valid