Claude Code skills · updated 2026-10-03
ISO 20022 CBPR+ address skill for Claude Code — unstructured and hybrid, by line
13 findings in one pacs.008 file, each with the party and the element to use
On the bundled sample: 13 findings (9 errors, 4 warnings) in 1 file from 9 rules, including a fully unstructured Dbtr address and Ctry ITA instead of IT.
Get it on Whop - $12 onceGet it on Gumroad
Who it's for
Payments engineers at banks and fintechs who generate pacs.008 or pain.001 XML and own the address mapping.
What breaks, and when
A malformed hybrid address may be rejected rather than repaired, and AdrLine past character 70 is truncated on the wire. Swift deferred the November 2026 cutover in August 2026; a new date is due by December 2026.
What it printed on the bundled example
== CBPR+ Structured Address Lint — 13 findings (9 errors, 4 warnings) in 1 file · 9 rules
ERROR cbpr-sample.xml:16 [unstructured_only]
Dbtr PstlAdr line 16: Address is fully unstructured (2 AdrLine, no structured element) - PstlAdr has AdrLine only - no TwnNm and no Ctry. A fully unstructured address is the one shape CBPR+ is phasing out; every agent on the route has to repair it by hand.
ERROR cbpr-sample.xml:23 [no_town]
Cdtr PstlAdr line 23: TwnNm missing in a hybrid address - PstlAdr mixes AdrLine with structured fields but has no <TwnNm>. Town and Country are the minimum a hybrid address must populate.
WARN cbpr-sample.xml:25 [adrline_70]
Cdtr PstlAdr line 23: AdrLine longer than 70 characters (73 chars) - AdrLine is Max70Text. Anything past character 70 is truncated on the wire, and a truncated beneficiary address is a sanctions-screening hit waiting to happen.
ERROR cbpr-sample.xml:26 [adrline_max2]
Cdtr PstlAdr line 23: More than two AdrLine occurrences (3 occurrences) - The hybrid postal address option allows at most two AdrLine occurrences. Extra lines are dropped or the message is rejected.
What you get
- SKILL.md, an offline Node scanner and the 9-rule table
- file:line, the party and the value that broke each rule
- The structured element to use, applied only after you agree
- CI: node scripts/scan.js . exits 1 on any error
Install
Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "We send pacs.008 payment files to our bank. Are the postal addresses in these XML files ready for the structured address change? Don't edit anything yet.". Needs Node 16+.
unzip iso20022-cbpr-address-check.zip -d ~/.claude/skills/
Ask Claude
“We send pacs.008 payment files to our bank. Are the postal addresses in these XML files ready for the structured address change? Don't edit anything yet.”
What it does not do
Not a full XSD validation: postal addresses only, unprefixed tags only. No network calls, no edits without your OK.
FAQ
What is a Claude Code skill?
A folder with a SKILL.md and scripts that Claude Code loads when your request matches it. You ask in plain words and Claude runs the scanner the skill carries.
How is this different from asking Claude without the skill?
The skill carries a dated rule table and a scanner that reads every file, so Claude quotes the exact date and line instead of answering from memory.
Does it send my code anywhere?
Not a full XSD validation: postal addresses only, unprefixed tags only. No network calls, no edits without your OK.
How do I install it?
Unzip into ~/.claude/skills/ (all projects) or your-repo/.claude/skills/ (one repo), then ask Claude Code: "We send pacs.008 payment files to our bank. Are the postal addresses in these XML files ready for the structured address change? Don't edit anything yet.". Needs Node 16+.
What do I get when I buy?
The zip. On Whop it is in your library as a download lesson with the zip attached; on Gumroad it is the product file.