ValidateFin

camt.053.001.08 — reversal, pending entry, accents

Feito para o conversor camt.053 → MT940: reúne as três coisas que um camt.053 sabe dizer e um MT940 não. Um ESTORNO (RvslInd) — o banco recupera o crédito duplicado do lançamento 1, o que não é um pagamento em sentido inverso e passa a ser uma marca RC, não um simples débito. Um lançamento PENDENTE (Sts=PDNG) — o dinheiro não se moveu, logo tem de ficar FORA do MT940, senão :60F: ± :61: = :62F: deixa de fechar; o CSV, que tem coluna Estado, mantém-no. E «Sté Générale» e «Müller & Co.», com caracteres fora do conjunto SWIFT: são adaptados, e a ferramenta di-lo. Contabilizado: 10 000,00 + 2 500,00 − 2 500,00 − 1 200,00 = 8 800,00.

camt.053.001.08 — Válido

Feito para o conversor camt.053 → MT940: reúne as três coisas que um camt.053 sabe dizer e um MT940 não. Um ESTORNO (RvslInd) — o banco recupera o crédito duplicado do lançamento 1, o que não é um pagamento em sentido inverso e passa a ser uma marca RC, não um simples débito. Um lançamento PENDENTE (Sts=PDNG) — o dinheiro não se moveu, logo tem de ficar FORA do MT940, senão :60F: ± :61: = :62F: deixa de fechar; o CSV, que tem coluna Estado, mantém-no. E «Sté Générale» e «Müller & Co.», com caracteres fora do conjunto SWIFT: são adaptados, e a ferramenta di-lo. Contabilizado: 10 000,00 + 2 500,00 − 2 500,00 − 1 200,00 = 8 800,00.

Extrato bancário (camt.052 / 053 / 054) camt.053.001.08 ISO 20022Resultado esperado: Válido

O que este ficheiro mostra

Feito para o conversor camt.053 → MT940: reúne as três coisas que um camt.053 sabe dizer e um MT940 não. Um ESTORNO (RvslInd) — o banco recupera o crédito duplicado do lançamento 1, o que não é um pagamento em sentido inverso e passa a ser uma marca RC, não um simples débito. Um lançamento PENDENTE (Sts=PDNG) — o dinheiro não se moveu, logo tem de ficar FORA do MT940, senão :60F: ± :61: = :62F: deixa de fechar; o CSV, que tem coluna Estado, mantém-no. E «Sté Générale» e «Müller & Co.», com caracteres fora do conjunto SWIFT: são adaptados, e a ferramenta di-lo. Contabilizado: 10 000,00 + 2 500,00 − 2 500,00 − 1 200,00 = 8 800,00.

Transações4
Data no ficheiro2026-06-30
Última verificação: Licença: CC-BY-4.0

Todas as partes, IBAN e montantes abaixo são fictícios. Os IBAN são estruturalmente válidos — passam no mod-97 — mas não correspondem a nenhuma conta real.

Conteúdo do ficheiro

<?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.

Como sabemos que estes resultados se mantêm

Cada ficheiro desta biblioteca passa pelo próprio validador do site em cada build. O resultado esperado indicado acima é verificado por um teste automatizado: se um ficheiro deixasse de corresponder ao que esta página afirma, o build falharia. Duas fixtures herdadas foram reparadas assim antes da publicação: três IBAN falhavam o mod-97 e vários nomes usavam caracteres fora do conjunto SEPA básico.

Extrato bancário (camt.052 / 053 / 054)