Bank profiles

Build your own bank profile for pain001

Your bank's rules are the third layer. Your team can encode them itself, privately, with the library's tooling.

Pain001 checks two of the four layers that decide whether a bank accepts a file: the ISO 20022 schema and the scheme rulebook. The third is your bank's own message usage guideline: which elements it requires, which it ignores and which values it accepts. That guideline is your bank's document, licensed to you, so it never enters the public project. Your team encodes it as a private profile instead, inside your own environment.

What the library gives you#

  • An overlay grammar that expresses a guideline as a short list of rules: an element that must be present, one that must be absent, a value that must be one of a set.
  • scripts/derive_overlay.py, which reads a guideline's schema and drafts those rules for you to review.
  • The corpus builder, which renders any example scenario the way your bank wants it, so you can see the profile at work before your own data goes through it.

The step-by-step guide#

The guide, with a template, a validator and worked examples, lives in the core repository: docs/bank-profiles.md. The corpus guide walks through the overlay tooling it builds on.

What stays private, and what can be shared#

Your bank's guideline and the profile derived from it stay in your environment; nothing in the tooling sends them anywhere. A profile built only from public, non-confidential material, such as a scheme's published rulebook, may be contributed to the repository as a pull request.

Questions go to GitHub issues.