ISO · the standard
How an ISO 20022 message gets its name
A message name like camt.053 with a variant and a version after it is not one thing with a revision number. It is four decisions: what business the message is about, which message inside that business, which variant of it, and which version. The last one is why a format profile is pinned to what your bank actually sends.
The account every page here reads
EUR- Published by
- ISO
- What it carries
- The envelope every ISO 20022 message shares, and the name that says which one it is.
- Account
- ES21 0049 0001 5323 4567 8901
Closing balance · Aug 14, 2026EUR 2,990,901.67
The definition
What ISO 20022 actually is
A dictionary of financial business terms and a set of XML messages built from it, and the reason a statement, a payment instruction and a status report all look like relatives.
ISO 20022 is a standard for financial messages: a shared dictionary of business terms, and message definitions built out of it. Every message is named in four parts. The business area comes first — camt for cash management, pain for payment initiation between a customer and a bank, pacs for payment clearing and settlement between banks, acmt for account management. Then the message number inside that area, then the variant, then the version. A document declares its own name in the namespace on its root element, so the version is legible on the second line of the file.
- Who sends it
- Whoever the message is between. A bank sends camt to its customer, a customer sends pain to its bank, and banks send pacs to each other. One grammar names all three, which is why a treasury team meeting its first pain message already knows how to read the name.
- When it arrives
- Whenever a scheme, a bank or a community adopts one. Migration happens message by message and version by version rather than all at once, so a group can be receiving CAMT.053 from one bank and MT940 from the next for years, and both are the same day.
- What it looks like
- XML, with element names taken from the dictionary rather than invented per bank. A document element carrying the namespace, the message root inside it, a group header that identifies the file and stamps when it was made, and then the message’s own content.
What its parts are called
- ISO 20022 message name
- camt.053.001.08
- camt vs pain vs pacs
- BkToCstmrStmt
- ISO 20022 GrpHdr
The file
The part every one of these messages shares
The envelope, down to the first statement. Everything above that line is the same in a CAMT.052, a CAMT.054 and, with a different root element, a PAIN.001 — which is why learning it once is worth the afternoon.
<?xml version="1.0" encoding="UTF-8"?>
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:camt.053.001.08">
<BkToCstmrStmt>
<GrpHdr>
<MsgId>CAMT26081400161</MsgId>
<CreDtTm>2026-08-14T20:15:00+02:00</CreDtTm>
</GrpHdr>
<Stmt>
<Id>26081400161</Id>
<Acct><Id><IBAN>ES2100490001532345678901</IBAN></Id><Ccy>EUR</Ccy></Acct>How the message name is put together
- What kind of business the message is about
- camt · pain · pacs · acmt
- Which message inside that business
- 053
- Which variant of that message
- 001
- Which version of it your bank sends
- 08
What comes out
The version is not decoration. It moves elements.
Two files can both be CAMT.053 and put the same fact at different depths. That is a real difference, and it is why a profile is pinned to a version rather than to a standard.
We read the namespace first and hold the profile against it. Between versions of CAMT.053 a transaction status moved inside a coded element, a party gained a level, and a balance type went under a choice between a published code and a proprietary one — so an element path written for one version reads nothing at all in another. Pinning the profile turns a bank upgrading its message into a new profile version with a date on it rather than a morning of missing entries, and the files read before the upgrade still read the way they did.
The other half is what the standard leaves open on purpose. A bank transaction code can be a published domain, family and sub-family, or the bank’s own code with the issuer that defines it, and both are legal. Structured remittance information is optional, so a bank that has it sends elements and a bank that does not sends a line of text. We hold what each bank actually populates as a versioned rule set per bank, which is the same discipline the free-text formats need and the reason the two are not separate projects here.
The name on the file is the first fact it gives you. Send us one and we will read it from there.
Next
The messages this name grammar covers
CAMT.053 is the closed statement, CAMT.052 the same account before the day is over, and PAIN.001 the instruction going the other way. MT940 is the message all three get compared against, and it is still arriving every morning.
Formats to read beside it
The same day written in four formats, side by side, is on Format library
Asked about ISO 20022
The questions a practitioner actually types
- 01What do the four parts of an ISO 20022 message name mean?
- Take camt, then 053, then 001, then 08. camt is the business area, cash management. 053 is the message inside that area, the bank-to-customer statement. 001 is the variant, and almost every message in production is variant 001. 08 is the version, and it is the part that changes: it is the one number that tells you where an element sits. The whole name appears in the namespace on the document’s root element, so you never have to be told which one you are holding.
- 02What is the difference between camt, pain and pacs?
- Who is talking to whom. camt is cash management, a bank reporting to its customer — statements, balances, notifications. pain is payment initiation, a customer instructing its bank. pacs is payment clearing and settlement, banks instructing each other. acmt covers account management. The prefix tells you the direction of the conversation before you have opened the file.
- 03Does the version number of an ISO 20022 message matter?
- Yes, more than the rest of the name. Elements move between versions: a status that was a plain code becomes a choice between a published code and a proprietary one, a party gains a wrapper, a balance type nests one level deeper. An element path written against one version returns nothing against another, and it does it silently. That is why a profile is pinned to the version a bank sends rather than to CAMT.053 as a name.
- 04Where does an ISO 20022 message state which one it is?
- In the namespace on its root element, and nowhere else that is reliable. A file whose root element declares the urn for a message and a version is that message and that version, whatever the file is called and whatever the portal said when you downloaded it. Filenames are a bank convention and they change. The namespace is part of the message.
- 05What is in the GrpHdr of an ISO 20022 message?
- Facts about the file rather than about the money in it. MsgId identifies this message and is what a bank quotes back when something about the file has to be discussed, and CreDtTm stamps the instant it was created, with the offset that says whose clock. Some messages add a count of the transactions and a control sum, which is how a receiver knows a file arrived whole before it reads a single entry.
Send one ISO 20022 file, whichever version.
One account, one month. We read it against the version your bank actually sends, and every element we take a value from is named beside the value.
A camt, a pain or a pacs — the envelope is the same and so is the reading.