ISO 20022 message XSDs and business logic

Mambu Payments implements ISO 20022 messaging with a specific set of rules and restrictions layered on top of the vanilla standard.

Messages are sourced from the ISO 20022 catalogue. The version Mambu Payments uses for each message is the most commonly used, which is not always the latest published version.

1. How Mambu Payments adapts ISO 20022 messages

Mambu Payments applies restrictions in three areas:

Supported attributes. Mambu Payments supports a subset of vanilla ISO 20022 attributes. It accepts unsupported attributes but ignores them and does not forward them internally.

Attribute types and codes. Mambu Payments may restrict the type or code of an attribute. Common changes include:

  • a smaller maximum length for text attributes (for instance, Text 70 instead of Text 140)
  • a restricted pattern for text attributes (for instance, leading and trailing spaces are forbidden)
  • tighter precision for ISODateTime: the timezone is mandatory, and fractional seconds must be 0 or 3 digits

Multiplicity. Mambu Payments may tighten the multiplicity of an attribute. Common changes include:

  • Making an attribute mandatory (for instance, the debtor name)
  • Capping the number of occurrences allowed (for instance, 2 address lines maximum instead of 7)

2. Message pack

Each Mambu Payments ISO 20022 message comes with:

  • An Excel document: <message_name>_mp_iso.xlsx
  • An XSD reflecting the document: <message_name>_mp_iso.xsd
  • Additional business rules documented in the sections below

Contact your Integration Consultant to get the latest message pack.

2.1. Excel document

The Excel document contains 4 tabs:

  • General information, disclaimer, and legends
  • High-level message structure
  • Simplified view of attributes supported by Mambu Payments
  • Full view of standard ISO 20022 attributes with all Mambu Payments changes

2.2. XSD

Mambu Payments derives the XSDs from the ISO 20022 XSD catalogue.

3. Business logic

3.1. Identifying the message type

The message type reflects its purpose. The ISO 20022 standard defines two categories relevant to payments:

  • pacs – payments clearing and settlement
  • camt – cash management

You can identify the message type from the XML namespace of the <Document> tag and the tag immediately inside it:

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pacs.008.001.08">
  <FIToFICstmrCdtTrf> <!-- pacs.008: FI to FI Customer Credit Transfer -->
  </FIToFICstmrCdtTrf>
</Document>
Message full nameMessage typeMessage tag name
FI To FI Customer Credit Transferpacs.008.001.08<FIToFICstmrCdtTrf>
FI To FI Customer Direct Debitpacs.003.001.08<FIToFICstmrDrctDbt>
FI To FI Payment Status Reportpacs.002.001.10<FIToFIPmtStsRpt>
Bank To Customer Statementcamt.053.001.02<BkToCstmrStmt>
FI To FI Payment Cancellation Requestcamt.056.001.08<FIToFIPmtCxlReq>
Payment Returnpacs.004.001.09<PmtRtr>
Resolution Of Investigationcamt.029.001.09<RsltnOfInvstgtn>
FI To FI Payment Reversalpacs.007.001.09<FIToFIPmtRvsl>
FI To FI Payment Status Requestpacs.028.001.03<FIToFIPmtStsReq>

3.2. Identifying the message ID

Every ISO 20022 message carries a unique string ID of up to 35 characters. The ID location depends on the message type:

Message typeID location
pacs.xxx<GrpHdr><MsgId> (Group Header)
camt.053<GrpHdr><MsgId> (Group Header)
camt.056 and camt.029<Assgnmt><Id> (Assignment Identification)

3.3. Identifying sender and receiver

The location of sender and receiver depends on the message type:

Message typeSender and receiver location
pacs.xxx interbank messagesInstgAgt (Instructing Agent) and InstdAgt (Instructed Agent) in the Group Header
camt.056 and camt.029 case messagesAssgnr (Assigner) and Assgne (Assignee) in the Assignment block
camt.053 account statementsNo sender or receiver