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 70instead ofText 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 name | Message type | Message tag name |
|---|---|---|
| FI To FI Customer Credit Transfer | pacs.008.001.08 | <FIToFICstmrCdtTrf> |
| FI To FI Customer Direct Debit | pacs.003.001.08 | <FIToFICstmrDrctDbt> |
| FI To FI Payment Status Report | pacs.002.001.10 | <FIToFIPmtStsRpt> |
| Bank To Customer Statement | camt.053.001.02 | <BkToCstmrStmt> |
| FI To FI Payment Cancellation Request | camt.056.001.08 | <FIToFIPmtCxlReq> |
| Payment Return | pacs.004.001.09 | <PmtRtr> |
| Resolution Of Investigation | camt.029.001.09 | <RsltnOfInvstgtn> |
| FI To FI Payment Reversal | pacs.007.001.09 | <FIToFIPmtRvsl> |
| FI To FI Payment Status Request | pacs.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 type | ID 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 type | Sender and receiver location |
|---|---|
pacs.xxx interbank messages | InstgAgt (Instructing Agent) and InstdAgt (Instructed Agent) in the Group Header |
camt.056 and camt.029 case messages | Assgnr (Assigner) and Assgne (Assignee) in the Assignment block |
camt.053 account statements | No sender or receiver |
Updated about 6 hours ago