KibiPay
HomeBlog › ISO 20022

XML vs the ISO 20022 Logical Model

6 min read ISO 20022
ISO 20022Data modelXML
XML vs the ISO 20022 Logical Model

Ask ten engineers what ISO 20022 is and most will say "the XML payments format." That is not wrong, but it is incomplete in a way that causes real integration mistakes. ISO 20022 is fundamentally a logical model — a structured description of business concepts — and XML is just one way to write it down. Keeping the model separate from its syntax is the single most clarifying idea in the whole standard.

Three layers, not one

The standard is best understood as three distinct layers. At the top is the business model: the concepts and their relationships — what a payment, a party, an account, and an amount mean, independent of any message. In the middle are message definitions: specific messages like pacs.008 or camt.053 that select and arrange elements from the model to accomplish a task. At the bottom is the physical syntax: the actual bytes on the wire, historically XML, but also increasingly JSON or even ASN.1.

The value of this separation is that the meaning lives in the model, not the syntax. A concept such as "debtor agent" is defined once, in business terms, and every message that references it inherits that definition. The XML tag is merely a representation of the underlying data element.

The logical model and the Data Dictionary

ISO 20022 maintains a central Data Dictionary and business process catalogue — a repository of reusable business components, elements, and code sets. When a new message is designed, it draws from this shared dictionary rather than inventing fields. That is why an amount, a BIC, or a date is represented consistently across pain, pacs, and camt messages. The dictionary also defines external code sets — controlled lists like purpose codes and bank transaction codes — that are versioned separately so they can evolve without reissuing every message.

Message names encode this structure too. In pacs.008.001.08, "pacs" is the business area (payments clearing and settlement), "008" identifies the message, "001" is the variant, and "08" is the version. That naming reflects the model-to-message mapping, not any XML detail.

Why XML dominated — and why it is not the point

XML became the default physical representation because it was the mature, tool-rich choice when ISO 20022 message definitions were first published, and because XSD schemas let you validate structure rigidly. Financial market infrastructures adopted XML wire formats, so in practice "ISO 20022 migration" for banks has meant moving to these XML messages. That is why the shorthand stuck.

But the registry is explicit that the model can be serialized other ways. There is growing use of JSON representations of the same message definitions, particularly in API contexts where JSON is the native format. Because the logical model is the source of truth, a pacs.008 in XML and the same message in JSON carry identical business meaning — they are two renderings of one definition.

Why this matters for builders

Confusing the model with the syntax leads to avoidable errors:

The practical takeaway

Design your internal representation around the logical elements — debtor, creditor, amount, remittance, references — and treat XML or JSON as an interchangeable serialization at the boundary. That way, when a market publishes a new usage guideline, when a code set gains values, or when a counterparty wants JSON instead of XML, you are adapting the edge of your system rather than rewriting its core. The model is the contract; the syntax is a detail.

Key takeaways

See these rails in motion

KibiPay connects UK Faster Payments, Bacs, CHAPS, Mojaloop mobile money and Solana behind one API, with ISO 20022 messaging and real-time fraud & AML screening.

Open the live console How it works