OpenChainGraph Suite · OCG v0.8.0 · Cross-Border Payments

CBPR+ Address Lint Chain

Linear three-step chain for the SWIFT CBPR+ November 2026 structured address migration. Step 1 lints a PostalAddress24 block for structure type (FULLY_STRUCTURED, HYBRID, UNSTRUCTURED) and silent-fail duplication. Step 2 validates BIS CPMI d218 party completeness (UETR UUIDv4, party names, BIC and LEI format, purpose code format). Step 3 validates originator and beneficiary LEIs via ISO 17442 mod-97 and scores Wolfsberg payment transparency. All three steps always run. Addresses are structural fields only and LEIs are public GLEIF registry data, so no personal data is processed.

OpenChainGraph · 3 Steps compliance mandate · Linear Hash-Anchored §4 chain_depth:3 Client-Side · Zero PII
Not legal or compliance advice. Outputs are computed from version-pinned reference tables (SWIFT CBPR+ Structured Address Migration Bulletin, BIS CPMI d218, ISO 17442) and your inputs only. LEIs must be confirmed against the live GLEIF registry before relying on any result for payment production.
Chain Topology (linear) — Address Lint → Party Completeness → LEI Binding
§4 Execution Hash · Chain Definition Anchor
execution_hash:computing…
Chain Stages · 3 Steps · Linear
1 ROOT node
CBPR+ Structured Address Linter art-241-cbpr-structured-address-linter
Lints a single pacs.008 PostalAddress24 block for structure type (FULLY_STRUCTURED, HYBRID, UNSTRUCTURED, EMPTY) and hybrid silent-fail duplication (AdrLine echoing structured field values, which causes STP rejection with no visible error code). Passes structure type and per-field lint results to party completeness validation.
MCP Call · lint_cbpr_structured_address
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "lint_cbpr_structured_address",
    "arguments": {
      "street_name": "Kaiserstrasse",
      "building_number": "29",
      "post_code": "60311",
      "town_name": "Frankfurt",
      "country": "DE",
      "address_lines": []
    }
  },
  "id": 1
}
2 STEP 2 node
pacs.008 Party Completeness Validator art-242-pacs008-party-completeness-validator
Validates BIS CPMI d218 party completeness: UETR UUIDv4 format, debtor and creditor names, agent BIC format, LEI format, and purpose code format. Passes the completeness score and format checks to LEI check-digit validation.
MCP Call · validate_pacs008_party_completeness
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "validate_pacs008_party_completeness",
    "arguments": {
      "uetr": "550e8400-e29b-41d4-a716-446655440000",
      "debtor_name": "Acme Corp GmbH",
      "creditor_name": "Global Trade AG",
      "debtor_agent_bic": "DEUTDEFFXXX",
      "creditor_agent_bic": "BARCGB22XXX",
      "debtor_lei": "00000000000000000001",
      "creditor_lei": "00000000000000000001",
      "purpose_code": "TRAD"
    }
  },
  "id": 2
}
3 TERMINAL node
Validates originator and beneficiary LEIs via ISO 17442 mod-97 check digits and scores the Wolfsberg payment transparency tier. Final stage.
MCP Call · lint_lei_payment_binding
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "name": "lint_lei_payment_binding",
    "arguments": {
      "originator_lei": "00000000000000000001",
      "beneficiary_lei": "00000000000000000001",
      "originator_name": "Synthetic Bank AG",
      "originator_account": "DE89370400440532013000",
      "beneficiary_name": "Test Recipient Corp",
      "beneficiary_account": "GB82WEST12345698765432"
    }
  },
  "id": 3
}
Export Chain Artifact
Download a §4-compliant chain artifact with execution hash and step definitions. Hash is deterministic over canonical {policy_parameters, output_payload} per RFC 8785/JCS.