ValidateFin

camt.053.001.08 — reversal, pending entry, accents

Zbudowany pod konwerter camt.053 → MT940: niesie trzy rzeczy, które camt.053 potrafi powiedzieć, a MT940 nie. STORNO (RvslInd) — bank cofa zdublowane uznanie z pozycji 1; to nie jest płatność w przeciwnym kierunku, lecz znacznik RC, a nie zwykłe obciążenie. Pozycja OCZEKUJĄCA (Sts=PDNG) — pieniądz się nie ruszył, więc musi zostać POMINIĘTA w MT940, inaczej :60F: ± :61: = :62F: przestaje się zgadzać; CSV ma kolumnę Status i ją zachowuje. Oraz „Sté Générale” i „Müller & Co.”, których znaki są poza zestawem SWIFT: zostają dostosowane, a narzędzie o tym informuje. Zaksięgowano: 10 000,00 + 2 500,00 − 2 500,00 − 1 200,00 = 8 800,00.

camt.053.001.08 — Prawidłowy

Zbudowany pod konwerter camt.053 → MT940: niesie trzy rzeczy, które camt.053 potrafi powiedzieć, a MT940 nie. STORNO (RvslInd) — bank cofa zdublowane uznanie z pozycji 1; to nie jest płatność w przeciwnym kierunku, lecz znacznik RC, a nie zwykłe obciążenie. Pozycja OCZEKUJĄCA (Sts=PDNG) — pieniądz się nie ruszył, więc musi zostać POMINIĘTA w MT940, inaczej :60F: ± :61: = :62F: przestaje się zgadzać; CSV ma kolumnę Status i ją zachowuje. Oraz „Sté Générale” i „Müller & Co.”, których znaki są poza zestawem SWIFT: zostają dostosowane, a narzędzie o tym informuje. Zaksięgowano: 10 000,00 + 2 500,00 − 2 500,00 − 1 200,00 = 8 800,00.

Wyciąg bankowy (camt.052 / 053 / 054) camt.053.001.08 ISO 20022Oczekiwany wynik: Prawidłowy

Co pokazuje ten plik

Zbudowany pod konwerter camt.053 → MT940: niesie trzy rzeczy, które camt.053 potrafi powiedzieć, a MT940 nie. STORNO (RvslInd) — bank cofa zdublowane uznanie z pozycji 1; to nie jest płatność w przeciwnym kierunku, lecz znacznik RC, a nie zwykłe obciążenie. Pozycja OCZEKUJĄCA (Sts=PDNG) — pieniądz się nie ruszył, więc musi zostać POMINIĘTA w MT940, inaczej :60F: ± :61: = :62F: przestaje się zgadzać; CSV ma kolumnę Status i ją zachowuje. Oraz „Sté Générale” i „Müller & Co.”, których znaki są poza zestawem SWIFT: zostają dostosowane, a narzędzie o tym informuje. Zaksięgowano: 10 000,00 + 2 500,00 − 2 500,00 − 1 200,00 = 8 800,00.

Transakcje4
Data w pliku2026-06-30
Ostatnia weryfikacja: Licencja: CC-BY-4.0

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 — bank statement, camt.053.001.08.
  Expected validation result: VALID — 4 entries, balances reconcile over the
  BOOKED entries only.

  This file exists for the camt.053 -> MT940 converter. It carries the three
  things a camt.053 can say and an MT940 cannot, all in one statement:

    * a REVERSAL (RvslInd = true on entry 2): the bank claws back the duplicate
      credit of entry 1. It is NOT a payment in the opposite direction — MT940
      has a dedicated mark for it (RC = reversal of credit, RD = reversal of
      debit), and a converter that emitted an ordinary movement would turn one
      cancelled transaction into two unrelated payments.
    * a PENDING entry (Sts = PDNG on entry 4): the money has not moved. MT940
      cannot say "not settled yet", so the entry must be LEFT OUT of the MT940 —
      including it would break :60F: +/- :61: = :62F:. A CSV, which has a Status
      column, keeps it.
    * characters outside the SWIFT "x" set: "Sté Générale", "Müller & Co.".
      MT940 cannot carry them; they are adapted, and the tool says so.

  The arithmetic: OPBD 10 000.00 + 2 500.00 - 2 500.00 - 1 200.00 = CLBD 8 800.00.
  The pending 800.00 is deliberately NOT in it — pending money is not booked money.

  All parties and account numbers are fictitious.
  Reference page: https://validatefin.com/en/resources/samples/camt053-reversal-pending
  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-REV-20260630</MsgId>
      <CreDtTm>2026-06-30T22:00:00</CreDtTm>
    </GrpHdr>
    <Stmt>
      <Id>STMT-FR-2026-06</Id>
      <LglSeqNb>6</LglSeqNb>
      <CreDtTm>2026-06-30T22:00:00</CreDtTm>
      <FrToDt>
        <FrDtTm>2026-06-01T00:00:00</FrDtTm>
        <ToDtTm>2026-06-30T23:59:59</ToDtTm>
      </FrToDt>
      <Acct>
        <Id>
          <IBAN>FR7630006000011234567890189</IBAN>
        </Id>
        <Ccy>EUR</Ccy>
        <Nm>Atelier Duval SARL</Nm>
        <Ownr>
          <Nm>Atelier Duval SARL</Nm>
        </Ownr>
        <Svcr>
          <FinInstnId>
            <BICFI>AGRIFRPP</BICFI>
          </FinInstnId>
        </Svcr>
      </Acct>
      <!-- Solde d'ouverture -->
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>OPBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">10000.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2026-06-01</Dt>
        </Dt>
      </Bal>
      <!-- Solde de clôture : écritures COMPTABILISÉES uniquement -->
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>CLBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">8800.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2026-06-30</Dt>
        </Dt>
      </Bal>
      <!-- Solde disponible : devient le :64: du MT940 -->
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>CLAV</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="EUR">8800.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2026-06-30</Dt>
        </Dt>
      </Bal>
      <!-- 1. Virement client reçu — le nom porte des accents -->
      <Ntry>
        <NtryRef>FR-2026-06-001</NtryRef>
        <Amt Ccy="EUR">2500.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <Dt>2026-06-08</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2026-06-08</Dt>
        </ValDt>
        <BkTxCd>
          <Domn>
            <Cd>PMNT</Cd>
            <Fmly>
              <Cd>RCDT</Cd>
              <SubFmlyCd>ESCT</SubFmlyCd>
            </Fmly>
          </Domn>
        </BkTxCd>
        <NtryDtls>
          <TxDtls>
            <Refs>
              <AcctSvcrRef>BNKREF-20260608-77</AcctSvcrRef>
              <EndToEndId>FACT-2026-0421</EndToEndId>
            </Refs>
            <RltdPties>
              <Dbtr>
                <Pty>
                  <Nm>Sté Générale Nord SA</Nm>
                </Pty>
              </Dbtr>
              <DbtrAcct>
                <Id>
                  <IBAN>FR1420041010050500013M02606</IBAN>
                </Id>
              </DbtrAcct>
            </RltdPties>
            <RmtInf>
              <Ustrd>Facture 2026-0421 — solde</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
        <AddtlNtryInf>VIREMENT RECU STE GENERALE NORD</AddtlNtryInf>
      </Ntry>
      <!-- 2. CONTRE-PASSEMENT du crédit ci-dessus (doublon) : RvslInd = true.
           En MT940 : RC (reversal of credit), pas un débit ordinaire. -->
      <Ntry>
        <NtryRef>FR-2026-06-002</NtryRef>
        <Amt Ccy="EUR">2500.00</Amt>
        <CdtDbtInd>DBIT</CdtDbtInd>
        <RvslInd>true</RvslInd>
        <Sts>
          <Cd>BOOK</Cd>
        </Sts>
        <BookgDt>
          <Dt>2026-06-09</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2026-06-08</Dt>

160 / 284 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)