500 · Library
The End-to-End Payment Flow: Everything, In One Motion
One payment. One last time. But now you walk it through the whole Library at once: the fundamentals underneath it, the architecture it travels through, every message it becomes, and the exception it narrowly avoids. The capstone that proves the pieces were always one machine.
The problem first. Bob taps send. ₹33,000, to Sweety, for Invoice 0042. One second later, a tick. You have now read the whole Library: what money is, how it clears, the systems it rides, every family of instruction, every way it can fail. In that one second, everything you learned happened at once.
This is the last case study, and it adds nothing new. That's the point. Every other case study isolated one idea; this one puts the whole Library behind a single ordinary payment. So before we narrate it, the real test:
Can you narrate it yourself?
{{think}} Bob taps send and sees a tick. In the second around that tap, all five levels of this Library fired at once. Try it: narrate the whole payment, and for each stretch, say which level is doing the work.
What are the five layers you'd walk through, in order? {{reveal}}
- Level 100 — Fundamentals: why it's possible at all. Money is a promise in a ledger; the payment is an agreed edit to two of them; it splits into clearing and settlement.
- Level 200 — Architecture: where it travels. Gateway → hub → rail, inside and between banks.
- Level 300 — Messages: what it becomes. pain.001 → pain.002 → pacs.008 → pacs.002 → camt.054 → camt.053, each in a head.001 envelope.
- Level 400 — Exceptions: the branch it avoids. The five exits, all turning on one question — has it settled?
- Level 500 — Case Studies: what it scales into. Add volume (payroll), a border (cross-border), or remove the customer (treasury).
If you can walk those five and stop anywhere to say what and why, you're done. The rest of this page is that walk. {{/think}}
Level 100 — what makes it possible
Before a single message exists, four Fundamentals ideas are already in play. The ₹33,000 isn't cash — it's money as a promise, a ledger entry everyone trusts, and Bob's payment moves information that changes two ledgers, never a banknote. That information change is the payment. It travels a short journey of named stages, the lifecycle. And it splits into two halves people confuse: clearing (agree who owes whom) and settlement (the money actually moves). None of this is XML yet — it's the physics of moving value, true of every payment in the Library.
Level 200 — the machinery it travels through
Bob's instruction doesn't teleport. Inside each bank it runs an assembly line: it arrives at the gateway (the guarded front door that checks and translates it), the hub (the brain that decides where it goes and on which road), which hands it to a rail — a shared payment system both banks plug into. Because this is a real-time domestic payment, it rides an instant rail, so the whole lifecycle compresses into seconds and the money is final the moment it lands. Architecture is the where; Bob never sees it, but every message below passes through this gateway → hub → rail spine.
Level 300 — the messages it becomes
| Step | Message | Family | What happens |
|---|---|---|---|
| 1 | pain.001 | pain | Bob instructs his bank: pay ₹33,000 to Sweety, EndToEndId = BOB-INV0042. |
| 2 | pain.002 | pain | His bank accepts. Bob sees the tick. No money has moved. |
| 3 | pacs.008 | pacs | His bank executes an interbank credit transfer, stamped with a UETR. pain ends, pacs begins. |
| 4 | pacs.002 | pacs | Sweety's bank confirms: settled. Now the money has moved. |
| 5 | camt.054 | camt | Sweety is notified; her system matches BOB-INV0042 to the invoice. |
| 6 | camt.053 | camt | End of day, the statement records it. Reconciliation complete. |
Wrapping every one on the wire: a head.001 envelope, saying who sent each message, to whom, and what's inside. The bodies change family to family; the envelope is constant. And two references hold the chain together — the EndToEndId (Bob's own, untouched from first tap to closing statement) and the UETR (the globally-unique tag on the interbank leg that answers "where is my payment right now?").
Open the pacs.008 at the centre of the chain →
Level 400 — the branch it didn't take
{{think}} At step 4 the happy path held. But you know the five exits now, and the whole map turns on one instant in the journey above. Point at it: at exactly which step do cheap failures become expensive ones — and why is that single line the whole of Level 400? {{reveal}} Settlement — step 4. Before it, a failure is cheap: a reject (pacs.002/pain.002, RJCT + reason) turns the payment away with no money to claw back. After it, the money is already there, so undoing it means moving funds back: a return (pacs.004) if the receiver can't apply it, a recall (camt.056 → camt.029) if the sender asks, a reversal (pacs.007) if the originator had the right. And if it just goes quiet, an investigation (camt.026/027/028 → camt.029) hunts it down.
Bob's payment avoided all five — but you can now point at the exact instant where cheap failures end and expensive ones begin. That line is Level 400. {{/think}}
Level 500 — everything this one payment scales into
This single transfer is the spine every other case study hangs off: carry many in one pain.001 and you have payroll (one instruction fanning into hundreds of independently-routed pacs.008s); stretch it across borders and you have the cross-border payment (a correspondent chain, a pacs.009 COV cover leg, FX in the middle); strip the customer out and you have treasury (the bank moving its own money with pacs.009 so all the other payments keep settling). Same spine, every time — the variations are just this plus one added idea.
{{aside:model|The mental model}} One ordinary payment is the whole Library in one motion: Fundamentals (why it's possible), Architecture (where it travels), Messages (what it becomes), Exceptions (the branch it avoids), Case Studies (what it scales into). Held together end to end by two preserved references — EndToEndId and UETR. {{/aside}}
{{aside:chair|From the engineer's chair}} You can stop this story at any instant and answer what and why with the right name — that's the real deliverable, not memorised acronyms. The two levers to keep straight through all of it: the settlement line (cheap failures before it, funds-moving fixes after) and the preserved references (EndToEndId for the customer, UETR for tracking) that make six messages across four banks one payment. {{/aside}}
{{aside:breaks|Where it breaks}}
{{/aside}}
- The tick is the money. Acceptance (step 2) isn't settlement (step 4) — the recurring Level 100/500 trap.
- The message is the money. A message asks; settlement does. Every family respects that gap.
- Losing the thread. Drop
EndToEndId/UETRanywhere and the one payment fragments into unrelated messages — and, in the exception world, into unmatchable money.
{{aside:map|The map}} The capstone points back at everything:
{{/aside}}
- The base flow up close → customer transfer.
- The families as a chain → the message lifecycle.
- The five exits it avoided → the R-transactions map.
{{aside:ref|Reference card}}
{{/aside}}
- Five levels, one payment: why (100) · where (200) · what (300) · the branch avoided (400) · the scale (500).
- Message chain: pain.001 → pain.002 → pacs.008 → pacs.002 → camt.054 → camt.053, each in a head.001.
- Architecture spine: gateway → hub → rail.
- The line: settlement — cheap failures before, funds-moving fixes after.
- The thread:
EndToEndId(customer) +UETR(tracking) — what makes it one payment.
Watch this whole payment come to life — the animated Life of a Payment →
Take the whole chain into the Playground →
So what can you do now?
You can take one ordinary payment and narrate it through the entire Library in a single breath: the fundamentals that make money movable (a promise in a ledger, clearing vs. settlement), the architecture it rides (gateway → hub → rail), the message chain it becomes (pain.001 → … → camt.053, each in a head.001, held by EndToEndId and UETR), and the exception branch it avoided — pinning the exact instant, settlement, where cheap failures become expensive ones. You can stop the story anywhere and say both what is happening and why, using the right name for each. That — not memorising acronyms — is what it means to understand ISO 20022.
Which sequence completes Bob's payment to Sweety end to end? Instruction to his bank, interbank transfer, credit at her bank, then notification and statement
What ties every step of that journey together? References preserved at every hop, so all parties recognise the same payment