CBPR+ Structured Address Lint
Runs the same checker as our npm package on a Node.js runtime that pip installs for you (
nodejs-wheel-binaries) - no system Node.js needed. Your files are checked locally.
Find the ISO 20022 postal addresses your correspondent bank will repair by hand, before you send the message
Install
cbpr-address-lint file
Node 18+. The same 9 rules as the VS Code extension, from a terminal or CI.
Free
- Lints any ISO 20022 XML in your editor against all 9 CBPR+ postal-address rules, hybrid rules live since 2025-11-22 and the unstructured cutover deferred 2026-08-27 - 6 errors and 3 warnings - and names each failing PstlAdr block on its own line. On the sample dirty.xml that is 13 findings, 9 errors and 4 warnings, across all 4 party address blocks; on clean.xml it is 0. The 6 errors: (1) unstructured_only, address held only in AdrLine with no TwnNm and no Ctry; (2) no_country, structured block with no Ctry; (3) no_town, hybrid block with no TwnNm; (4) dup_in_adrline, a value in both a dedicated element and an AdrLine; (5) adrline_max2, more than 2 AdrLine occurrences; (6) ctry_code, a Ctry that is not 2 upper-case letters. The 3 warnings: adrline_70, charset, bldgnb_in_strtnm.
--ruleslists every rule
With a licence ($29 once)
- Exports a dated CBPR+ address audit file, CSV and Markdown, covering every ISO 20022 message in the workspace, with the rule citation per finding, so the evidence leaves the editor as a file you can hand to your correspondent bank, your migration programme or your auditor. $29 once, one licence key per person or CI seat.
cbpr-address-lint --dir ./templates --report html --out report.html
A correspondent bank charges $15 to $40 to repair one cross-border payment by hand; the average fee for a rejected or repaired payment is reported at about $12.
Use from an AI agent (MCP)
Claude Code · Cursor · Windsurf · any MCP client - add to your MCP config:
{ "mcpServers": { "cbpr-address-lint": { "command": "cbpr-address-lint", "args": ["--mcp"] } } }
Tools: check_text and check_file (free) · check_dir (licence). The agent gets every finding with the line number.
Use in CI
- name: CBPR+ Structured Address Lint
run: pip install rulestamp-cbpr-address-lint && cbpr-address-lint --dir . --ci
The folder sweep, reports and CI mode need one licence — one payment, no subscription. Set READYSTACK_LICENSE=<key> or run --license <key> once.
Install (PyPI)
pip install rulestamp-cbpr-address-lint
cbpr-address-lint --help
Metadata
Release files for rulestamp-cbpr-address-lint 1.0.4
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| rulestamp_cbpr_address_lint-1.0.4.tar.gz | 17.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rulestamp_cbpr_address_lint-1.0.4-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.3 kB
Release files / rulestamp_cbpr_address_lint-1.0.4.tar.gz
| Download URL | rulestamp_cbpr_address_lint-1.0.4.tar.gz |
|---|---|
| Size | 17.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ed1b81089209965ce52a783819d31d40c626e5241900d2551ea5e13331e71a22
|
|
BLAKE2b-256 checksum How to use checksums |
e049f9056bdceced29f45b3d96af3ee64a996c2d421fcf861bb1518e4ee4c90e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / rulestamp_cbpr_address_lint-1.0.4-py3-none-any.whl
| Download URL | rulestamp_cbpr_address_lint-1.0.4-py3-none-any.whl |
|---|---|
| Size | 19.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5ce8d30f1fa211bf3f404c9c6ad3562e117b40e287211ac899eb4b44611e1c23
|
|
BLAKE2b-256 checksum How to use checksums |
40d57b721da5aef7b8b3896ec66612230ac007af381ccbc7db2109bfef3c9c85
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|