OpenChainGraph · Cross-Border Payments · Chain

International Wires ISO Migration Preflight

Four-step per-template preflight for the Nov 16 2026 ISO 20022 structured-address harmonization deadline: CBPR+ address lint, purpose-code requirement check, LEI payment-binding lint, and MT-MX translation fidelity score. PASS only when all four checks pass; FAIL surfaces the failing check(s).

Linear · 4 steps Nov 16 2026 ISO deadline Hash-Anchored §4 OCG v0.8.7 Client-Side · Zero PII
Who this is for: Jack Henry PayCenter / Wires product and small-bank BSA + payment-ops teams at institutions that cannot self-build a CBPR+/ISO 20022 structured-address preflight ahead of the Nov 16 2026 harmonization deadline.
Honest Proof-Scope Legend · Drift Tracking

Each step's receipt entry carries that kernel's existing proof status honestly — this chain composes only already-shipped, already-proven kernels; there is no new groth16 proving step for this composition. Every receipt records which template/version was checked and its per-check PASS/FAIL breakdown; because each receipt is self-contained (no state store), drift toward compliance is a comparison across receipts, done by the reader on re-runs.

Computing…
Pending
DAG · 4 steps · art-241 → art-243 → art-246 → art-245 · no branch, composite verdict
STEP 1CBPR+ Structured-Address Linter
Lints the payment template's structured-address fields against CBPR+ ISO 20022 requirements.
→ Handoff: structured-address lint result feeds Stage 2 purpose-code check
🔗 art-241-cbpr-structured-address-linter
MCP Call · lint_cbpr_structured_address
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": { "name": "lint_cbpr_structured_address", "arguments": { "template_id": "SYNTHETIC-TEMPLATE-001", "template_version": "1.0" } },
  "id": 1
}
STEP 2Purpose-Code Requirement Checker
Checks whether the template's purpose code satisfies the corridor's ISO 20022 requirement.
→ Handoff: purpose-code check result feeds Stage 3 LEI payment-binding lint
🔗 art-243-purpose-code-requirement-checker
MCP Call · check_purpose_code_requirement
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": { "name": "check_purpose_code_requirement", "arguments": { "template_id": "SYNTHETIC-TEMPLATE-001" } },
  "id": 2
}
STEP 3LEI Payment-Binding Linter
Lints the LEI-to-payment-instruction binding for the template's originator/beneficiary fields.
→ Handoff: LEI payment-binding lint result feeds Stage 4 translation-fidelity scoring
🔗 art-246-lei-payment-binding-linter
MCP Call · lint_lei_payment_binding
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": { "name": "lint_lei_payment_binding", "arguments": { "template_id": "SYNTHETIC-TEMPLATE-001" } },
  "id": 3
}
STEP 4MT-MX Translation Fidelity Scorer
Scores MT→MX translation fidelity for the template and composes with the prior three checks into the composite per-template verdict.
🏁 Terminal stage · PASS only when all four checks pass; FAIL surfaces the failing check(s)
🔗 art-245-mt-mx-translation-fidelity-scorer
MCP Call · score_mt_mx_translation_fidelity
{
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": { "name": "score_mt_mx_translation_fidelity", "arguments": { "template_id": "SYNTHETIC-TEMPLATE-001" } },
  "id": 4
}
Export Chain Artifact
Download a §4-compliant chain artifact with execution hash, step definitions, and regulatory basis. Hash is deterministic over canonical {policy_parameters, output_payload} per RFC 8785/JCS.