Sample of XML output

Here is a sample ISO 20022 XML document illustrating typical bank statement data with anonymized personal information and both debit and credit transactions.

XML output sample

<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02">
  <BkToCstmrStmt>
    <GrpHdr>
      <MsgId>20241113-001</MsgId>
      <CreDtTm>2024-11-13T12:00:00</CreDtTm>
    </GrpHdr>
    <Stmt>
      <Id>20241113-001</Id>
      <FrToDt>
        <FrDtTm>2023-01-01T00:00:01</FrDtTm>
        <ToDtTm>2023-12-31T23:59:59</ToDtTm>
      </FrToDt>
      <Acct>
        <Id>
          <IBAN>XX00XXXX0000000000000</IBAN>
        </Id>
        <Ccy>USD</Ccy>
        <Ownr>
          <Nm>John Doe</Nm>
          <PstlAdr>
            <StrtNm>1234 Main St, Dummy City, DC 12345</StrtNm>
          </PstlAdr>
          <Id>
            <PrvtId>
              <Othr>
                <Id>999999-99999</Id>
                <SchmeNm>
                  <Cd>NIDN</Cd>
                </SchmeNm>
              </Othr>
            </PrvtId>
          </Id>
        </Ownr>
        <Svcr>
          <FinInstnId>
            <BIC>XXXXUS00</BIC>
            <Nm>Dummy Bank</Nm>
            <PstlAdr>
              <StrtNm>5678 Bank Ave, Dummy Town, DT 67890</StrtNm>
            </PstlAdr>
            <Othr>
              <Id>123456789</Id>
              <SchmeNm>
                <Cd>COID</Cd>
              </SchmeNm>
            </Othr>
          </FinInstnId>
        </Svcr>
      </Acct>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>OPBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="USD">1000.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <Dt>
          <Dt>2023-01-01</Dt>
        </Dt>
      </Bal>
      <Bal>
        <Tp>
          <CdOrPrtry>
            <Cd>CLBD</Cd>
          </CdOrPrtry>
        </Tp>
        <Amt Ccy="USD">500.00</Amt>
        <CdtDbtInd>DBIT</CdtDbtInd>
        <Dt>
          <Dt>2023-12-31</Dt>
        </Dt>
      </Bal>
      <Ntry>
        <Amt Ccy="USD">150.00</Amt>
        <CdtDbtInd>DBIT</CdtDbtInd>
        <BookgDt>
          <Dt>2023-03-15</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2023-03-15</Dt>
        </ValDt>
        <NtryDtls>
          <TxDtls>
            <RltdPties>
              <Dbtr>
                <Nm>Example Store</Nm>
              </Dbtr>
            </RltdPties>
            <RmtInf>
              <Ustrd>Purchase - Ref#123456</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
        <AddtlNtryInf>Remaining balance: 850.00</AddtlNtryInf>
      </Ntry>
      <Ntry>
        <Amt Ccy="USD">200.00</Amt>
        <CdtDbtInd>DBIT</CdtDbtInd>
        <BookgDt>
          <Dt>2023-05-20</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2023-05-20</Dt>
        </ValDt>
        <NtryDtls>
          <TxDtls>
            <RltdPties>
              <Dbtr>
                <Nm>Dummy Online Service</Nm>
              </Dbtr>
            </RltdPties>
            <RmtInf>
              <Ustrd>Subscription - Ref#654321</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
        <AddtlNtryInf>Remaining balance: 650.00</AddtlNtryInf>
      </Ntry>
      <Ntry>
        <Amt Ccy="USD">500.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <BookgDt>
          <Dt>2023-08-10</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2023-08-10</Dt>
        </ValDt>
        <NtryDtls>
          <TxDtls>
            <RltdPties>
              <Cdtr>
                <Nm>Example Company</Nm>
              </Cdtr>
            </RltdPties>
            <RmtInf>
              <Ustrd>Salary - August</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
        <AddtlNtryInf>Remaining balance: 1150.00</AddtlNtryInf>
      </Ntry>
      <Ntry>
        <Amt Ccy="USD">300.00</Amt>
        <CdtDbtInd>CRDT</CdtDbtInd>
        <BookgDt>
          <Dt>2023-10-05</Dt>
        </BookgDt>
        <ValDt>
          <Dt>2023-10-05</Dt>
        </ValDt>
        <NtryDtls>
          <TxDtls>
            <RltdPties>
              <Cdtr>
                <Nm>Dummy Employer Inc.</Nm>
              </Cdtr>
            </RltdPties>
            <RmtInf>
              <Ustrd>Bonus Payment</Ustrd>
            </RmtInf>
          </TxDtls>
        </NtryDtls>
        <AddtlNtryInf>Remaining balance: 1450.00</AddtlNtryInf>
      </Ntry>
    </Stmt>
  </BkToCstmrStmt>
</Document>

XML schema


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02" targetNamespace="urn:iso:std:iso:20022:tech:xsd:camt.053.001.02" elementFormDefault="qualified">

  <xs:element name="Document">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="BkToCstmrStmt" type="BkToCstmrStmtType"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:complexType name="BkToCstmrStmtType">
    <xs:sequence>
      <xs:element name="GrpHdr" type="GrpHdrType"/>
      <xs:element name="Stmt" type="StmtType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="GrpHdrType">
    <xs:sequence>
      <xs:element name="MsgId" type="xs:string"/>
      <xs:element name="CreDtTm" type="xs:dateTime" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="StmtType">
    <xs:sequence>
      <xs:element name="Id" type="xs:string"/>
      <xs:element name="FrToDt" type="FrToDtType"/>
      <xs:element name="Acct" type="AcctType"/>
      <xs:element name="Bal" type="BalType" maxOccurs="unbounded"/>
      <xs:element name="Ntry" type="NtryType" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="FrToDtType">
    <xs:sequence>
      <xs:element name="FrDtTm" type="xs:dateTime"/>
      <xs:element name="ToDtTm" type="xs:dateTime"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="AcctType">
    <xs:sequence>
      <xs:element name="Id">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="IBAN" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Ccy" type="xs:string"/>
      <xs:element name="Ownr" type="OwnrType"/>
      <xs:element name="Svcr" type="SvcrType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="OwnrType">
    <xs:sequence>
      <xs:element name="Nm" type="xs:string"/>
      <xs:element name="PstlAdr" type="PstlAdrType"/>
      <xs:element name="Id" type="PrvtIdType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PstlAdrType">
    <xs:sequence>
      <xs:element name="StrtNm" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PrvtIdType">
    <xs:sequence>
      <xs:element name="PrvtId">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Othr" type="OthrType"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="OthrType">
    <xs:sequence>
      <xs:element name="Id" type="xs:string"/>
      <xs:element name="SchmeNm">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Cd" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SvcrType">
    <xs:sequence>
      <xs:element name="FinInstnId" type="FinInstnIdType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="FinInstnIdType">
    <xs:sequence>
      <xs:element name="BIC" type="xs:string"/>
      <xs:element name="Nm" type="xs:string"/>
      <xs:element name="PstlAdr" type="PstlAdrType"/>
      <xs:element name="Othr" type="OthrType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="BalType">
    <xs:sequence>
      <xs:element name="Tp">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="CdOrPrtry">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Cd" type="xs:string"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Amt" type="AmtType"/>
      <xs:element name="CdtDbtInd" type="xs:string"/>
      <xs:element name="Dt" type="DtType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="AmtType">
    <xs:simpleContent>
      <xs:extension base="xs:decimal">
        <xs:attribute name="Ccy" type="xs:string" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="DtType">
    <xs:sequence>
      <xs:element name="Dt" type="xs:date"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="NtryType">
    <xs:sequence>
      <xs:element name="Amt" type="AmtType"/>
      <xs:element name="CdtDbtInd" type="xs:string"/>
      <xs:element name="BookgDt" type="DtType"/>
      <xs:element name="ValDt" type="DtType"/>
      <xs:element name="NtryDtls" type="NtryDtlsType"/>
      <xs:element name="AddtlNtryInf" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="NtryDtlsType">
    <xs:sequence>
      <xs:element name="TxDtls" type="TxDtlsType"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="TxDtlsType">
    <xs:sequence>
      <xs:element name="RltdPties">
        <xs:complexType>
          <xs:sequence>
            <xs:choice>
              <xs:element name="Dbtr" type="PartyType"/>
              <xs:element name="Cdtr" type="PartyType"/>
            </xs:choice>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="RmtInf">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Ustrd" type="xs:string"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="PartyType">
    <xs:sequence>
      <xs:element name="Nm" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

</xs:schema>

Last updated