camt.054.001.08 — valid debit/credit notification
Prawidłowe zawiadomienie o obciążeniu/uznaniu camt.054: jedno przychodzące uznanie SEPA i jedno wychodzące polecenie zapłaty, każde z pełnymi TxDtls i referencją end-to-end. Strukturalną niespodzianką jest to, czego NIE MA: camt.054 nie zawiera żadnego elementu <Bal> — schemat ISO 20022 go nie definiuje. Zawiadomienie ogłasza operacje, nigdy nie podaje salda: nie ma czego uzgadniać.
camt.054.001.08 — Prawidłowy
Prawidłowe zawiadomienie o obciążeniu/uznaniu camt.054: jedno przychodzące uznanie SEPA i jedno wychodzące polecenie zapłaty, każde z pełnymi TxDtls i referencją end-to-end. Strukturalną niespodzianką jest to, czego NIE MA: camt.054 nie zawiera żadnego elementu <Bal> — schemat ISO 20022 go nie definiuje. Zawiadomienie ogłasza operacje, nigdy nie podaje salda: nie ma czego uzgadniać.
Co pokazuje ten plik
Prawidłowe zawiadomienie o obciążeniu/uznaniu camt.054: jedno przychodzące uznanie SEPA i jedno wychodzące polecenie zapłaty, każde z pełnymi TxDtls i referencją end-to-end. Strukturalną niespodzianką jest to, czego NIE MA: camt.054 nie zawiera żadnego elementu <Bal> — schemat ISO 20022 go nie definiuje. Zawiadomienie ogłasza operacje, nigdy nie podaje salda: nie ma czego uzgadniać.
| Transakcje | 2 |
|---|---|
| Data w pliku | 2026-07-09 |
Wszystkie strony, numery IBAN i kwoty poniżej są fikcyjne. IBAN-y są poprawne strukturalnie — przechodzą test mod-97 — ale nie należą do żadnego rzeczywistego rachunku.
Zawartość pliku
<?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.
Skąd wiemy, że te wyniki są aktualne
Każdy plik w tej bibliotece przechodzi przez walidator serwisu przy każdym buildzie. Oczekiwany wynik podany wyżej potwierdza test automatyczny: gdyby plik przestał odpowiadać temu, co głosi ta strona, build by się wywalił. Dwie odziedziczone fikstury naprawiono w ten sposób przed publikacją: trzy numery IBAN nie przechodziły mod-97, a kilka nazw używało znaków spoza podstawowego zestawu SEPA.
Wyciąg bankowy (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