{
  "generatedFrom": "Payments Signal canonical architecture registry",
  "reviewDate": "2026-07-23",
  "blueprint": {
    "id": "architecture-open-banking",
    "slug": "open-banking-consent-api-payment-status",
    "title": "Open-banking consent, authentication, API, payment-initiation, callback, and status architecture",
    "shortTitle": "Open banking",
    "family": "channel",
    "summary": "Follow a customer from merchant intent through consent and bank authentication to payment initiation, asynchronous status, and merchant reconciliation.",
    "audience": "Open-banking architects, payment-initiation service providers, account providers, merchants, security teams, and business analysts.",
    "reviewDate": "2026-07-23",
    "versionLabel": "Payments Signal reference architecture v1",
    "status": "current",
    "nodes": [
      {
        "id": "ob-user-merchant",
        "title": "Customer and merchant experience",
        "kind": "channel",
        "summary": "Captures the order and displays the bank-account payment option without collecting the customer's bank credentials.",
        "responsibilities": [
          "Create a stable order and payment intent",
          "Explain redirect, decoupled, pending, and failed states"
        ],
        "owner": "Merchant product owner",
        "inputs": [
          "Authorised business instruction and correlated state"
        ],
        "outputs": [
          "Versioned result, status, and audit evidence"
        ],
        "interfaceContracts": [
          "Versioned customer and merchant experience contract",
          "Stable identifier, state, error, and audit contract"
        ],
        "controls": [
          "Amount and payee integrity",
          "No bank credential capture",
          "Accessible return journey"
        ],
        "failureModes": [
          "Customer abandons authentication",
          "Merchant creates a second payment intent"
        ],
        "recovery": [
          "Resume the original payment by stable reference",
          "Allow a deliberate new attempt only after showing the first state"
        ],
        "lenses": [
          "applications",
          "interfaces",
          "data",
          "controls",
          "operations",
          "resilience"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "dataClassification": [
          "Payment, message, status, and operational metadata"
        ],
        "nonFunctionalRequirements": [
          "Durable correlation through stable business and technical identifiers",
          "Capacity and availability matched to the service-level objective",
          "Auditable state changes, configuration, and operator actions"
        ]
      },
      {
        "id": "ob-pisp",
        "title": "Payment-initiation service provider",
        "kind": "gateway",
        "summary": "Creates consent, selects the account provider, submits the authorised instruction, and retrieves status.",
        "responsibilities": [
          "Bind consent to payment details",
          "Keep consent, authorisation, payment, and merchant references distinct"
        ],
        "owner": "Payment-initiation service provider",
        "inputs": [
          "Authorised business instruction and correlated state"
        ],
        "outputs": [
          "Versioned result, status, and audit evidence"
        ],
        "interfaceContracts": [
          "Versioned payment-initiation service provider contract",
          "Stable identifier, state, error, and audit contract"
        ],
        "controls": [
          "Client identity",
          "Consent scope",
          "Request signing",
          "Idempotency"
        ],
        "failureModes": [
          "Consent reused outside scope",
          "Payment submitted twice",
          "Status callback lost"
        ],
        "recovery": [
          "Reject invalid consent",
          "Query the original payment before resubmission"
        ],
        "lenses": [
          "applications",
          "interfaces",
          "data",
          "controls",
          "operations",
          "resilience"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "open-banking-pis",
              "locator": "Payment-initiation service journey",
              "label": "official-requirement"
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Open Banking customer-experience guidelines, reviewed 2026-07-23"
          }
        ],
        "dataClassification": [
          "Payment, message, status, and operational metadata"
        ],
        "nonFunctionalRequirements": [
          "Durable correlation through stable business and technical identifiers",
          "Capacity and availability matched to the service-level objective",
          "Auditable state changes, configuration, and operator actions"
        ]
      },
      {
        "id": "ob-directory",
        "title": "Directory, trust, and discovery",
        "kind": "security",
        "summary": "Publishes trusted participant identity, endpoint, certificate, and capability information.",
        "responsibilities": [
          "Resolve the correct account-provider endpoint",
          "Validate participant and certificate status"
        ],
        "owner": "Open-banking ecosystem or bilateral trust owner",
        "inputs": [
          "Authorised business instruction and correlated state"
        ],
        "outputs": [
          "Versioned result, status, and audit evidence"
        ],
        "interfaceContracts": [
          "Versioned directory, trust, and discovery contract",
          "Stable identifier, state, error, and audit contract"
        ],
        "controls": [
          "Certificate chain",
          "Participant role",
          "Endpoint and profile version"
        ],
        "failureModes": [
          "Stale directory",
          "Revoked participant still accepted",
          "Wrong endpoint"
        ],
        "recovery": [
          "Fail closed for new initiation",
          "Refresh signed trust material and record the incident"
        ],
        "lenses": [
          "applications",
          "interfaces",
          "data",
          "controls",
          "operations",
          "resilience"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "dataClassification": [
          "Payment, message, status, and operational metadata"
        ],
        "nonFunctionalRequirements": [
          "Durable correlation through stable business and technical identifiers",
          "Capacity and availability matched to the service-level objective",
          "Auditable state changes, configuration, and operator actions"
        ]
      },
      {
        "id": "ob-aspsp-api",
        "title": "Account-provider API gateway",
        "kind": "gateway",
        "summary": "Authenticates the payment-initiation service provider, validates the request, and protects the bank boundary.",
        "responsibilities": [
          "Validate transport and application identity",
          "Apply schema, consent, rate, replay, and idempotency controls"
        ],
        "owner": "Account-servicing payment-service provider",
        "inputs": [
          "Authorised business instruction and correlated state"
        ],
        "outputs": [
          "Versioned result, status, and audit evidence"
        ],
        "interfaceContracts": [
          "Versioned account-provider api gateway contract",
          "Stable identifier, state, error, and audit contract"
        ],
        "controls": [
          "Mutual authentication",
          "Request integrity",
          "Replay prevention",
          "Rate and size limits"
        ],
        "failureModes": [
          "Invalid signature",
          "Rate limit",
          "Unavailable API"
        ],
        "recovery": [
          "Return a precise error without exposing bank internals",
          "Recover using the tested service path"
        ],
        "lenses": [
          "applications",
          "interfaces",
          "data",
          "controls",
          "operations",
          "resilience"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "dataClassification": [
          "Payment, message, status, and operational metadata"
        ],
        "nonFunctionalRequirements": [
          "Durable correlation through stable business and technical identifiers",
          "Capacity and availability matched to the service-level objective",
          "Auditable state changes, configuration, and operator actions"
        ]
      },
      {
        "id": "ob-auth-consent",
        "title": "Bank authentication and consent service",
        "kind": "control",
        "summary": "Authenticates the customer and confirms the payment details and account under the bank's applicable rules.",
        "responsibilities": [
          "Authenticate without disclosing credentials to the PISP",
          "Bind the customer's approval to amount, currency, payee, and account"
        ],
        "owner": "Account provider identity and channel team",
        "inputs": [
          "Authorised business instruction and correlated state"
        ],
        "outputs": [
          "Versioned result, status, and audit evidence"
        ],
        "interfaceContracts": [
          "Versioned bank authentication and consent service contract",
          "Stable identifier, state, error, and audit contract"
        ],
        "controls": [
          "Strong-customer-authentication policy",
          "Dynamic transaction binding",
          "Consent expiry"
        ],
        "failureModes": [
          "Customer authenticates but payment details change",
          "Consent expires",
          "Decoupled journey times out"
        ],
        "recovery": [
          "Reject changed details",
          "Return a distinct expired or abandoned state"
        ],
        "lenses": [
          "applications",
          "interfaces",
          "data",
          "controls",
          "operations",
          "resilience"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "open-banking-pis",
              "locator": "Consent and authentication journey",
              "label": "official-requirement"
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Open Banking customer-experience guidelines, reviewed 2026-07-23"
          }
        ],
        "dataClassification": [
          "Payment, message, status, and operational metadata"
        ],
        "nonFunctionalRequirements": [
          "Durable correlation through stable business and technical identifiers",
          "Capacity and availability matched to the service-level objective",
          "Auditable state changes, configuration, and operator actions"
        ]
      },
      {
        "id": "ob-payment-engine",
        "title": "Bank payment engine and controls",
        "kind": "application",
        "summary": "Validates account, funds, limits, fraud, sanctions, routing, and rail rules before accepting the instruction.",
        "responsibilities": [
          "Create one bank payment from the authorised request",
          "Return a bank payment identifier and honest state"
        ],
        "owner": "Account-provider payments team",
        "inputs": [
          "Authorised business instruction and correlated state"
        ],
        "outputs": [
          "Versioned result, status, and audit evidence"
        ],
        "interfaceContracts": [
          "Versioned bank payment engine and controls contract",
          "Stable identifier, state, error, and audit contract"
        ],
        "controls": [
          "Account authority",
          "Funds and limits",
          "Fraud and sanctions",
          "Rail eligibility"
        ],
        "failureModes": [
          "Accepted API request but rejected rail instruction",
          "Bank payment duplicated",
          "Screening hold"
        ],
        "recovery": [
          "Preserve the last confirmed state",
          "Repair or reject through the bank's normal payment process"
        ],
        "lenses": [
          "applications",
          "interfaces",
          "data",
          "controls",
          "operations",
          "resilience"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "messageIds": [
          "pain-001",
          "pain-002",
          "pacs-008",
          "pacs-002"
        ],
        "dataClassification": [
          "Payment, message, status, and operational metadata"
        ],
        "nonFunctionalRequirements": [
          "Durable correlation through stable business and technical identifiers",
          "Capacity and availability matched to the service-level objective",
          "Auditable state changes, configuration, and operator actions"
        ]
      },
      {
        "id": "ob-status-events",
        "title": "Status, callback, and event service",
        "kind": "service",
        "summary": "Publishes state changes and supports explicit retrieval when a callback is late, duplicated, or lost.",
        "responsibilities": [
          "Expose monotonic business status",
          "Sign and correlate callbacks",
          "Support status polling within policy"
        ],
        "owner": "Account provider and PISP platform teams",
        "inputs": [
          "Authorised business instruction and correlated state"
        ],
        "outputs": [
          "Versioned result, status, and audit evidence"
        ],
        "interfaceContracts": [
          "Versioned status, callback, and event service contract",
          "Stable identifier, state, error, and audit contract"
        ],
        "controls": [
          "Authenticated callback",
          "Event deduplication",
          "No backward state transition without reason"
        ],
        "failureModes": [
          "Callback delivered twice",
          "Callback lost",
          "Status arrives out of order"
        ],
        "recovery": [
          "Deduplicate by event identifier",
          "Retrieve the authoritative payment state"
        ],
        "lenses": [
          "applications",
          "interfaces",
          "data",
          "controls",
          "operations",
          "resilience"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "dataClassification": [
          "Payment, message, status, and operational metadata"
        ],
        "nonFunctionalRequirements": [
          "Durable correlation through stable business and technical identifiers",
          "Capacity and availability matched to the service-level objective",
          "Auditable state changes, configuration, and operator actions"
        ]
      },
      {
        "id": "ob-merchant-recon",
        "title": "Merchant order, refund, and reconciliation",
        "kind": "operations",
        "summary": "Matches merchant order, bank payment, rail outcome, settlement or credit evidence, and any refund or return.",
        "responsibilities": [
          "Fulfil under an explicit status policy",
          "Reconcile by stable references rather than customer screenshots"
        ],
        "owner": "Merchant finance and payment operations",
        "inputs": [
          "Authorised business instruction and correlated state"
        ],
        "outputs": [
          "Versioned result, status, and audit evidence"
        ],
        "interfaceContracts": [
          "Versioned merchant order, refund, and reconciliation contract",
          "Stable identifier, state, error, and audit contract"
        ],
        "controls": [
          "Order-to-payment match",
          "Settlement evidence",
          "Refund and return linkage"
        ],
        "failureModes": [
          "Goods released on a provisional state",
          "Paid order remains open",
          "Refund duplicates a bank return"
        ],
        "recovery": [
          "Hold fulfilment when policy requires",
          "Query the original state and reconcile all value movements"
        ],
        "lenses": [
          "applications",
          "interfaces",
          "data",
          "controls",
          "operations",
          "resilience"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "dataClassification": [
          "Payment, message, status, and operational metadata"
        ],
        "nonFunctionalRequirements": [
          "Durable correlation through stable business and technical identifiers",
          "Capacity and availability matched to the service-level objective",
          "Auditable state changes, configuration, and operator actions"
        ]
      }
    ],
    "interfaces": [
      {
        "id": "ob-e1",
        "from": "ob-user-merchant",
        "to": "ob-pisp",
        "title": "Payment intent and consent request",
        "kind": "api",
        "mode": "synchronous",
        "purpose": "Carry order, amount, currency, payee, and return context.",
        "failureBehaviour": "Do not create another intent when the response is uncertain.",
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "controls": [
          "Authentication and authorisation",
          "Integrity and replay protection",
          "Correlation and audit evidence"
        ],
        "lenses": [
          "interfaces",
          "data",
          "ledger",
          "controls",
          "operations",
          "resilience"
        ],
        "dataClassification": [
          "Payment instruction, status, and correlation metadata"
        ]
      },
      {
        "id": "ob-e2",
        "from": "ob-pisp",
        "to": "ob-directory",
        "title": "Participant and endpoint lookup",
        "kind": "api",
        "mode": "synchronous",
        "purpose": "Resolve trusted identity, endpoint, and supported profile.",
        "failureBehaviour": "Fail closed when current trust evidence is unavailable.",
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "controls": [
          "Authentication and authorisation",
          "Integrity and replay protection",
          "Correlation and audit evidence"
        ],
        "lenses": [
          "interfaces",
          "data",
          "ledger",
          "controls",
          "operations",
          "resilience"
        ],
        "dataClassification": [
          "Payment instruction, status, and correlation metadata"
        ]
      },
      {
        "id": "ob-e3",
        "from": "ob-pisp",
        "to": "ob-aspsp-api",
        "title": "Consent and payment API",
        "kind": "api",
        "mode": "synchronous",
        "purpose": "Create consent and submit an authorised payment under the agreed profile.",
        "failureBehaviour": "Return rejected, pending, accepted, and uncertain states distinctly.",
        "evidence": [
          {
            "ref": {
              "sourceId": "open-banking-pis",
              "locator": "PISP to ASPSP journey",
              "label": "official-requirement"
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Open Banking customer-experience guidelines, reviewed 2026-07-23"
          }
        ],
        "controls": [
          "Authentication and authorisation",
          "Integrity and replay protection",
          "Correlation and audit evidence"
        ],
        "lenses": [
          "interfaces",
          "data",
          "ledger",
          "controls",
          "operations",
          "resilience"
        ],
        "dataClassification": [
          "Payment instruction, status, and correlation metadata"
        ]
      },
      {
        "id": "ob-e4",
        "from": "ob-aspsp-api",
        "to": "ob-auth-consent",
        "title": "Customer authentication hand-off",
        "kind": "api",
        "mode": "synchronous",
        "purpose": "Move authentication to the bank while preserving the payment context.",
        "failureBehaviour": "Reject any mismatch between approved and submitted payment details.",
        "evidence": [
          {
            "ref": {
              "sourceId": "open-banking-pis",
              "locator": "Redirect and decoupled authentication",
              "label": "official-requirement"
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Open Banking customer-experience guidelines, reviewed 2026-07-23"
          }
        ],
        "controls": [
          "Authentication and authorisation",
          "Integrity and replay protection",
          "Correlation and audit evidence"
        ],
        "lenses": [
          "interfaces",
          "data",
          "ledger",
          "controls",
          "operations",
          "resilience"
        ],
        "dataClassification": [
          "Payment instruction, status, and correlation metadata"
        ]
      },
      {
        "id": "ob-e5",
        "from": "ob-auth-consent",
        "to": "ob-payment-engine",
        "title": "Authorised payment instruction",
        "kind": "control",
        "mode": "asynchronous",
        "purpose": "Release only the customer-approved payment to bank controls.",
        "failureBehaviour": "Keep expired, abandoned, or changed consent outside payment processing.",
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "controls": [
          "Authentication and authorisation",
          "Integrity and replay protection",
          "Correlation and audit evidence"
        ],
        "lenses": [
          "interfaces",
          "data",
          "ledger",
          "controls",
          "operations",
          "resilience"
        ],
        "dataClassification": [
          "Payment instruction, status, and correlation metadata"
        ]
      },
      {
        "id": "ob-e6",
        "from": "ob-payment-engine",
        "to": "ob-status-events",
        "title": "Payment state event",
        "kind": "event",
        "mode": "asynchronous",
        "purpose": "Publish bank and rail state with stable identifiers.",
        "messageIds": [
          "pain-002",
          "pacs-002"
        ],
        "failureBehaviour": "Store for redelivery and preserve event order.",
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "controls": [
          "Authentication and authorisation",
          "Integrity and replay protection",
          "Correlation and audit evidence"
        ],
        "lenses": [
          "interfaces",
          "data",
          "ledger",
          "controls",
          "operations",
          "resilience"
        ],
        "dataClassification": [
          "Payment instruction, status, and correlation metadata"
        ]
      },
      {
        "id": "ob-e7",
        "from": "ob-status-events",
        "to": "ob-pisp",
        "title": "Callback or status response",
        "kind": "api",
        "mode": "asynchronous",
        "purpose": "Return authenticated payment state to the PISP.",
        "failureBehaviour": "Deduplicate callbacks and query the authoritative state after gaps.",
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "controls": [
          "Authentication and authorisation",
          "Integrity and replay protection",
          "Correlation and audit evidence"
        ],
        "lenses": [
          "interfaces",
          "data",
          "ledger",
          "controls",
          "operations",
          "resilience"
        ],
        "dataClassification": [
          "Payment instruction, status, and correlation metadata"
        ]
      },
      {
        "id": "ob-e8",
        "from": "ob-pisp",
        "to": "ob-user-merchant",
        "title": "Merchant return and status",
        "kind": "api",
        "mode": "asynchronous",
        "purpose": "Show the customer and merchant an honest outcome.",
        "failureBehaviour": "Do not turn a missing callback into a failure or a success.",
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "controls": [
          "Authentication and authorisation",
          "Integrity and replay protection",
          "Correlation and audit evidence"
        ],
        "lenses": [
          "interfaces",
          "data",
          "ledger",
          "controls",
          "operations",
          "resilience"
        ],
        "dataClassification": [
          "Payment instruction, status, and correlation metadata"
        ]
      },
      {
        "id": "ob-e9",
        "from": "ob-payment-engine",
        "to": "ob-merchant-recon",
        "title": "Settlement and reporting evidence",
        "kind": "message",
        "mode": "asynchronous",
        "purpose": "Provide payment, credit, return, and reporting references for reconciliation.",
        "messageIds": [
          "pacs-002",
          "pacs-004",
          "camt-054"
        ],
        "failureBehaviour": "Open a case when merchant and bank states disagree.",
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "controls": [
          "Authentication and authorisation",
          "Integrity and replay protection",
          "Correlation and audit evidence"
        ],
        "lenses": [
          "interfaces",
          "data",
          "ledger",
          "controls",
          "operations",
          "resilience"
        ],
        "dataClassification": [
          "Payment instruction, status, and correlation metadata"
        ]
      }
    ],
    "views": [
      {
        "id": "context",
        "label": "Context",
        "plainPurpose": "Who depends on the architecture, which external service it reaches, and where value ultimately moves.",
        "nodeIds": [
          "ob-user-merchant",
          "ob-payment-engine"
        ],
        "interfaceIds": [],
        "placements": {
          "ob-user-merchant": {
            "x": 80,
            "y": 100,
            "width": 244,
            "height": 126
          },
          "ob-payment-engine": {
            "x": 444,
            "y": 100,
            "width": 244,
            "height": 126
          }
        },
        "boundaries": [
          {
            "id": "context-bank-boundary",
            "label": "Institution-controlled boundary",
            "nodeIds": [
              "ob-user-merchant",
              "ob-payment-engine"
            ],
            "kind": "ownership"
          }
        ]
      },
      {
        "id": "container",
        "label": "Container",
        "plainPurpose": "The major applications, stores, gateways, controls, and operational ownership boundaries.",
        "nodeIds": [
          "ob-user-merchant",
          "ob-pisp",
          "ob-aspsp-api",
          "ob-auth-consent",
          "ob-payment-engine",
          "ob-merchant-recon"
        ],
        "interfaceIds": [
          "ob-e1",
          "ob-e3",
          "ob-e4",
          "ob-e5",
          "ob-e8",
          "ob-e9"
        ],
        "placements": {
          "ob-user-merchant": {
            "x": 80,
            "y": 100,
            "width": 244,
            "height": 126
          },
          "ob-pisp": {
            "x": 444,
            "y": 100,
            "width": 244,
            "height": 126
          },
          "ob-aspsp-api": {
            "x": 808,
            "y": 100,
            "width": 244,
            "height": 126
          },
          "ob-auth-consent": {
            "x": 80,
            "y": 326,
            "width": 244,
            "height": 126
          },
          "ob-payment-engine": {
            "x": 444,
            "y": 326,
            "width": 244,
            "height": 126
          },
          "ob-merchant-recon": {
            "x": 808,
            "y": 326,
            "width": 244,
            "height": 126
          }
        },
        "boundaries": [
          {
            "id": "container-bank-boundary",
            "label": "Institution-controlled boundary",
            "nodeIds": [
              "ob-user-merchant",
              "ob-pisp",
              "ob-aspsp-api",
              "ob-auth-consent",
              "ob-payment-engine",
              "ob-merchant-recon"
            ],
            "kind": "ownership"
          }
        ]
      },
      {
        "id": "component",
        "label": "Component",
        "plainPurpose": "The processing responsibilities and interface contracts that must cooperate for one payment.",
        "nodeIds": [
          "ob-user-merchant",
          "ob-pisp",
          "ob-directory",
          "ob-aspsp-api",
          "ob-auth-consent",
          "ob-payment-engine",
          "ob-status-events",
          "ob-merchant-recon"
        ],
        "interfaceIds": [
          "ob-e1",
          "ob-e2",
          "ob-e3",
          "ob-e4",
          "ob-e5",
          "ob-e6",
          "ob-e7",
          "ob-e8",
          "ob-e9"
        ],
        "placements": {
          "ob-user-merchant": {
            "x": 80,
            "y": 100,
            "width": 196,
            "height": 126
          },
          "ob-pisp": {
            "x": 376,
            "y": 100,
            "width": 196,
            "height": 126
          },
          "ob-directory": {
            "x": 672,
            "y": 100,
            "width": 196,
            "height": 126
          },
          "ob-aspsp-api": {
            "x": 968,
            "y": 100,
            "width": 196,
            "height": 126
          },
          "ob-auth-consent": {
            "x": 80,
            "y": 326,
            "width": 196,
            "height": 126
          },
          "ob-payment-engine": {
            "x": 376,
            "y": 326,
            "width": 196,
            "height": 126
          },
          "ob-status-events": {
            "x": 672,
            "y": 326,
            "width": 196,
            "height": 126
          },
          "ob-merchant-recon": {
            "x": 968,
            "y": 326,
            "width": 196,
            "height": 126
          }
        },
        "boundaries": [
          {
            "id": "component-bank-boundary",
            "label": "Institution-controlled boundary",
            "nodeIds": [
              "ob-user-merchant",
              "ob-pisp",
              "ob-directory",
              "ob-aspsp-api",
              "ob-auth-consent",
              "ob-payment-engine",
              "ob-status-events",
              "ob-merchant-recon"
            ],
            "kind": "ownership"
          }
        ]
      },
      {
        "id": "deployment",
        "label": "Deployment",
        "plainPurpose": "The trust zones, runtime dependencies, external connections, and recovery boundaries.",
        "nodeIds": [
          "ob-pisp",
          "ob-directory",
          "ob-aspsp-api",
          "ob-payment-engine"
        ],
        "interfaceIds": [
          "ob-e2",
          "ob-e3"
        ],
        "placements": {
          "ob-pisp": {
            "x": 80,
            "y": 100,
            "width": 244,
            "height": 126
          },
          "ob-directory": {
            "x": 444,
            "y": 100,
            "width": 244,
            "height": 126
          },
          "ob-aspsp-api": {
            "x": 808,
            "y": 100,
            "width": 244,
            "height": 126
          },
          "ob-payment-engine": {
            "x": 80,
            "y": 326,
            "width": 244,
            "height": 126
          }
        },
        "boundaries": [
          {
            "id": "deployment-bank-boundary",
            "label": "Institution-controlled boundary",
            "nodeIds": [
              "ob-pisp",
              "ob-directory",
              "ob-aspsp-api",
              "ob-payment-engine"
            ],
            "kind": "ownership"
          }
        ]
      }
    ],
    "traces": [
      {
        "id": "ob-initiate-payment",
        "label": "Consent to merchant status",
        "summary": "Follow a payment initiation without exposing bank credentials to the PISP or merchant.",
        "viewId": "component",
        "steps": [
          {
            "id": "ob-initiate-payment-step-1",
            "title": "Choose account payment",
            "nodeId": "ob-user-merchant",
            "interfaceId": "ob-e1",
            "plainExplanation": "The merchant fixes order, amount, currency, and payee.",
            "businessState": "Merchant intent created"
          },
          {
            "id": "ob-initiate-payment-step-2",
            "title": "Create consent",
            "nodeId": "ob-pisp",
            "interfaceId": "ob-e3",
            "plainExplanation": "The PISP creates a scoped request under the bank's supported profile.",
            "businessState": "Consent requested"
          },
          {
            "id": "ob-initiate-payment-step-3",
            "title": "Protect the bank boundary",
            "nodeId": "ob-aspsp-api",
            "interfaceId": "ob-e4",
            "plainExplanation": "The bank validates the PISP, request, and consent context.",
            "businessState": "PISP authenticated"
          },
          {
            "id": "ob-initiate-payment-step-4",
            "title": "Authenticate and approve",
            "nodeId": "ob-auth-consent",
            "interfaceId": "ob-e5",
            "plainExplanation": "The customer authenticates with the bank and approves the bound payment details.",
            "businessState": "Customer authorised"
          },
          {
            "id": "ob-initiate-payment-step-5",
            "title": "Process the payment",
            "nodeId": "ob-payment-engine",
            "interfaceId": "ob-e6",
            "plainExplanation": "Normal account, fraud, sanctions, funds, limit, and rail controls apply.",
            "businessState": "Bank payment accepted or rejected",
            "messageIds": [
              "pain-001",
              "pacs-008"
            ]
          },
          {
            "id": "ob-initiate-payment-step-6",
            "title": "Publish the state",
            "nodeId": "ob-status-events",
            "interfaceId": "ob-e7",
            "plainExplanation": "The bank emits a correlated status and supports retrieval if delivery fails.",
            "businessState": "Authoritative status available"
          },
          {
            "id": "ob-initiate-payment-step-7",
            "title": "Reconcile the order",
            "nodeId": "ob-merchant-recon",
            "plainExplanation": "The merchant combines status with settlement or credit evidence before close.",
            "businessState": "Order and payment aligned"
          }
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "open-banking-pis",
              "locator": "End-to-end payment-initiation journey",
              "label": "official-requirement"
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Open Banking customer-experience guidelines, reviewed 2026-07-23"
          },
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ]
      }
    ],
    "stressCases": [
      {
        "id": "ob-stress-abandon",
        "label": "Customer abandons authentication",
        "trigger": "The user closes the bank journey before a confirmed outcome.",
        "divergesAfterStepId": "ob-initiate-payment-step-4",
        "traceId": "ob-initiate-payment",
        "affectedNodeIds": [
          "ob-auth-consent",
          "ob-pisp",
          "ob-user-merchant"
        ],
        "affectedInterfaceIds": [
          "ob-e4",
          "ob-e5"
        ],
        "lastConfirmedState": "Consent exists; customer authorisation is not confirmed.",
        "settlementState": "No settlement has occurred.",
        "fundsState": "No payment debit is confirmed.",
        "owner": "PISP customer operations",
        "safeAction": "Show pending or abandoned accurately and query before offering a new attempt.",
        "requiredEvidence": [
          "Consent ID",
          "Bank authentication state",
          "Payment ID if created"
        ],
        "recoverySteps": [
          "Expire or resume under the bank rules",
          "Keep a later attempt distinct"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ]
      },
      {
        "id": "ob-stress-callback",
        "label": "Callback is lost",
        "trigger": "The bank payment advances but the PISP receives no callback.",
        "divergesAfterStepId": "ob-initiate-payment-step-6",
        "traceId": "ob-initiate-payment",
        "affectedNodeIds": [
          "ob-status-events",
          "ob-pisp",
          "ob-merchant-recon"
        ],
        "affectedInterfaceIds": [
          "ob-e6",
          "ob-e7",
          "ob-e8"
        ],
        "lastConfirmedState": "The bank payment has an authoritative state.",
        "settlementState": "Settlement depends on that state and the underlying rail.",
        "fundsState": "Funds may have moved even though the merchant page is pending.",
        "owner": "PISP platform operations",
        "safeAction": "Retrieve status by the original payment identifier; never submit another payment to discover the first outcome.",
        "requiredEvidence": [
          "Payment ID",
          "Event log",
          "Status response",
          "Merchant reference"
        ],
        "recoverySteps": [
          "Recover the authoritative status",
          "Redeliver or update the merchant once",
          "Reconcile settlement evidence"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ]
      },
      {
        "id": "ob-stress-return",
        "label": "Payment later returns",
        "trigger": "The merchant saw an accepted state but the bank payment returns.",
        "divergesAfterStepId": "ob-initiate-payment-step-7",
        "traceId": "ob-initiate-payment",
        "affectedNodeIds": [
          "ob-payment-engine",
          "ob-status-events",
          "ob-merchant-recon"
        ],
        "affectedInterfaceIds": [
          "ob-e6",
          "ob-e9"
        ],
        "lastConfirmedState": "The payment was accepted and later returned.",
        "settlementState": "Any earlier settlement must be considered separately from the return.",
        "fundsState": "The return is a new linked value movement.",
        "owner": "Merchant payment operations",
        "safeAction": "Update order and finance state from the linked return; do not rewrite the original accepted state.",
        "requiredEvidence": [
          "Original payment ID",
          "Return reference",
          "Credit or debit advice"
        ],
        "recoverySteps": [
          "Record the return",
          "Apply customer and order policy",
          "Reconcile both movements"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ]
      }
    ],
    "overlays": [
      {
        "id": "ob-overlay-pis",
        "label": "Open-banking payment initiation",
        "summary": "Show consent, bank authentication, initiation, callback, status retrieval, and merchant reconciliation.",
        "nodeIds": [
          "ob-user-merchant",
          "ob-pisp",
          "ob-directory",
          "ob-aspsp-api",
          "ob-auth-consent",
          "ob-payment-engine",
          "ob-status-events",
          "ob-merchant-recon"
        ],
        "interfaceIds": [
          "ob-e1",
          "ob-e2",
          "ob-e3",
          "ob-e4",
          "ob-e5",
          "ob-e6",
          "ob-e7",
          "ob-e8",
          "ob-e9"
        ],
        "relatedFlowIds": [
          "flow-open-banking-pis"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "open-banking-pis",
              "locator": "Payment-initiation service journey",
              "label": "official-requirement"
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Open Banking customer-experience guidelines, reviewed 2026-07-23"
          }
        ]
      },
      {
        "id": "ob-overlay-rtp",
        "label": "Request to Pay",
        "summary": "A request asks for a payment; the payer's later authorisation and payment remain separate records.",
        "nodeIds": [
          "ob-user-merchant",
          "ob-pisp",
          "ob-auth-consent",
          "ob-payment-engine",
          "ob-status-events"
        ],
        "interfaceIds": [
          "ob-e1",
          "ob-e3",
          "ob-e4",
          "ob-e5",
          "ob-e6"
        ],
        "relatedFlowIds": [
          "flow-request-to-pay"
        ],
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ],
        "coverageGap": "Request-to-Pay message and legal treatment depend on the selected scheme; this overlay shows the separation of request, consent, and payment only."
      }
    ],
    "decisions": [
      {
        "id": "ob-decision-status",
        "question": "Which payment state may trigger merchant fulfilment?",
        "options": [
          {
            "label": "Settlement or credit evidenced",
            "consequence": "Reduces false fulfilment but can delay delivery."
          },
          {
            "label": "Earlier accepted state",
            "consequence": "Can improve customer experience but requires explicit risk, value, and return policy."
          }
        ],
        "guidance": "Publish the fulfilment policy separately from the API status model and test late, returned, and contradictory outcomes.",
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ]
      },
      {
        "id": "ob-decision-callback",
        "question": "Are callbacks the source of truth?",
        "options": [
          {
            "label": "Callback as notification",
            "consequence": "The receiver can retrieve authoritative state after gaps or duplicates."
          },
          {
            "label": "Callback as sole state",
            "consequence": "Creates uncertainty when delivery is lost or arrives out of order."
          }
        ],
        "guidance": "Treat callbacks as delivery; treat the bank payment record as authoritative.",
        "evidence": [
          {
            "ref": {
              "sourceId": "payments-signal-editorial",
              "locator": "Open-banking payment initiation and status",
              "label": "simplified-educational-illustration",
              "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
            },
            "verifiedDate": "2026-07-23",
            "versionContext": "Payments Signal reference architecture v1"
          }
        ]
      }
    ],
    "targets": [
      {
        "type": "flow",
        "id": "flow-open-banking-pis"
      },
      {
        "type": "flow",
        "id": "flow-request-to-pay"
      },
      {
        "type": "message",
        "id": "pain-001"
      },
      {
        "type": "message",
        "id": "pain-002"
      },
      {
        "type": "message",
        "id": "pacs-008"
      },
      {
        "type": "message",
        "id": "pacs-002"
      },
      {
        "type": "message",
        "id": "pacs-004"
      },
      {
        "type": "message",
        "id": "camt-054"
      }
    ],
    "glossaryTermIds": [
      "account-servicing-payment-service-provider",
      "consent",
      "idempotency",
      "open-banking",
      "payment-initiation-service-provider",
      "request-to-pay",
      "strong-customer-authentication"
    ],
    "evidence": [
      {
        "ref": {
          "sourceId": "open-banking-pis",
          "locator": "Payment-initiation services",
          "label": "official-requirement"
        },
        "verifiedDate": "2026-07-23",
        "versionContext": "Open Banking customer-experience guidelines, reviewed 2026-07-23"
      },
      {
        "ref": {
          "sourceId": "payments-signal-editorial",
          "locator": "Open-banking payment initiation and status",
          "label": "simplified-educational-illustration",
          "simplifications": "Authorisation protocol, consent, strong-customer-authentication, API, callback, status, refund, liability, and regulatory duties differ by jurisdiction, standard release, account provider, and payment-initiation service provider."
        },
        "verifiedDate": "2026-07-23",
        "versionContext": "Payments Signal reference architecture v1"
      }
    ],
    "simplifies": "This blueprint uses a common PISP, account-provider, customer, and merchant pattern. It does not prescribe a jurisdiction's authorisation protocol, consent duration, authentication exemption, API fields, liability, refund right, or regulatory role. Those details require the current local standard and law."
  },
  "sources": [
    {
      "id": "open-banking-pis",
      "publisher": "Open Banking Limited",
      "title": "Payment Initiation Services customer-experience guidelines",
      "sourceType": "usage-guideline",
      "accessedDate": "2026-07-23",
      "url": "https://standards.openbanking.org.uk/customer-experience-guidelines/payment-initiation-services/latest/",
      "applicability": "Describes the customer journey in which a payment-initiation service provider obtains the payment-service user's consent, redirects or decouples authentication to the account-servicing payment-service provider, submits the instruction, and retrieves payment status.",
      "notes": "The latest page reviewed was published on 18 March 2026. Detailed API contracts and regulatory duties depend on the applicable Open Banking Standard release and jurisdiction."
    },
    {
      "id": "payments-signal-editorial",
      "publisher": "Payments Signal",
      "title": "Payments Signal editorial teaching models",
      "sourceType": "educational-simplification",
      "accessedDate": "2026-07-12",
      "applicability": "This site's own simplified teaching models.",
      "notes": "Used wherever diagrams, scenarios, figures, or example values are didactic constructions rather than sourced facts; every such use carries a simplifications disclosure. All people, companies, banks, and list entries in examples are fictional."
    }
  ],
  "relatedContent": [
    {
      "type": "article",
      "label": "ACK, NACK, and the Payment Status Report (pacs.002)",
      "href": "/2026/07/13/ack-nack-and-payment-status-report",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Batch and file-based payments",
      "href": "/2026/07/13/batch-and-file-payments",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "BIC versus LEI: payment reference data",
      "href": "/2026/07/13/bic-vs-lei-reference-data",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "CBPR+: ISO 20022 for cross-border payments",
      "href": "/2026/07/13/cbpr-plus-cross-border-iso20022",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "CGI-MP: Common ISO 20022 Practice for Corporates",
      "href": "/2026/07/13/cgi-mp-corporate-iso20022",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "FINplus and Browse",
      "href": "/2026/07/13/finplus-and-browse",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "High-value payments and HVPS+",
      "href": "/2026/07/13/high-value-payments-and-hvps-plus",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "One corporate payment: the full MX lifecycle and its MT migration path",
      "href": "/2026/07/18/corporate-payment-full-message-lifecycle",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Other Payment Message Standards Beyond SWIFT",
      "href": "/2026/07/13/other-payment-message-standards",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Payment exceptions and investigations",
      "href": "/2026/07/13/payment-exceptions-and-investigations",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Payment transparency and wire stripping",
      "href": "/2026/07/13/payment-transparency-and-wire-stripping",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Purpose codes in payments",
      "href": "/2026/07/13/purpose-codes-in-payments",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Request to Pay versus SEPA Direct Debit",
      "href": "/2026/07/18/request-to-pay-vs-direct-debit",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Request to Pay, explained",
      "href": "/2026/07/18/request-to-pay-explained",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Reversals, returns, recalls, and cancellations",
      "href": "/2026/07/13/reversals-returns-and-cancellations",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Sanctions evasion typologies",
      "href": "/2026/07/13/sanctions-evasion-typologies",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Screening the payment message",
      "href": "/2026/07/13/screening-the-payment-message",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SEPA credit transfer – Four Corner model",
      "href": "/2026/07/13/sct-four-corner-model",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Sepa Credit Transfer – Happy Path",
      "href": "/2026/07/13/sct-happy-path",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SEPA Credit Transfer – Recall Flow",
      "href": "/2026/07/13/sct-recall-flow",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SEPA Credit Transfer – Reject Flow",
      "href": "/2026/07/13/sct-reject-flow",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Sepa Credit Transfer – Return Flow",
      "href": "/2026/07/13/sct-return-flow",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SEPA Instant – Happy Path Flow",
      "href": "/2026/07/13/sepa-instant-happy-path-flow",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SEPA Instant – Introduction",
      "href": "/2026/07/13/sepa-instant-introduction",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SEPA Instant R-Message flows",
      "href": "/2026/07/13/sepa-instant-r-message-flows",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SEPA Payment Messages",
      "href": "/2026/07/13/sepa-payment-messages",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Serial and cover in ISO 20022: pacs.008 and pacs.009 COV",
      "href": "/2026/07/13/iso-20022-serial-and-cover",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "STEP2: the pan-European ACH",
      "href": "/2026/07/13/step2-pan-european-ach",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Structured and hybrid addresses in ISO 20022",
      "href": "/2026/07/13/structured-and-hybrid-addresses-iso20022",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Structured remittance information",
      "href": "/2026/07/13/structured-remittance-information",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SWIFT Cancellations and Investigation Messages",
      "href": "/2026/07/13/swift-cancellations-and-investigation-messages",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SWIFT financial-institution funds transfers",
      "href": "/2026/07/13/swift-financial-institution-funds-transfers",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "SWIFT investigation and exception messages",
      "href": "/2026/07/13/swift-investigation-and-exception-messages",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "The Business Application Header (BAH)",
      "href": "/2026/07/13/the-business-application-header",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "The camt family: cash management and reporting",
      "href": "/2026/07/13/camt-cash-management-messages",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "The ISO 20022 message model",
      "href": "/2026/07/13/iso-20022-message-model",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "The pain.001 payment initiation",
      "href": "/2026/07/13/the-pain-001-payment-initiation",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Trade-Based Money Laundering: Value Hidden in Trade",
      "href": "/2026/07/13/trade-based-money-laundering",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "Translating MT to MX",
      "href": "/2026/07/13/mt-to-mx-translation",
      "coverage": "derived"
    },
    {
      "type": "article",
      "label": "What a payment declares about itself — and who carries it",
      "href": "/2026/07/16/iso-20022-payment-codes-and-agents",
      "coverage": "derived"
    },
    {
      "type": "flow",
      "label": "Open-banking payment initiation",
      "href": "/explore/open-banking-pis",
      "coverage": "direct"
    },
    {
      "type": "flow",
      "label": "Request to Pay",
      "href": "/explore/request-to-pay",
      "coverage": "direct"
    },
    {
      "type": "glossary",
      "label": "Account information service provider (AISP)",
      "href": "/glossary#aisp",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Account servicing payment service provider (ASPSP)",
      "href": "/glossary#aspsp",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "ANSI X12 (X12/820)",
      "href": "/glossary#ansi-x12",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "BACS Standard 18",
      "href": "/glossary#bacs-standard-18",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Business Application Header",
      "href": "/glossary#business-application-header",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "camt family",
      "href": "/glossary#camt",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "camt.029",
      "href": "/glossary#camt-029",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "camt.056",
      "href": "/glossary#camt-056",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "CBPR+",
      "href": "/glossary#cbpr-plus",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "CGI-MP (Common Global Implementation – Market Practice)",
      "href": "/glossary#cgi-mp",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Collection request",
      "href": "/glossary#collection-request",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Decoupled authentication",
      "href": "/glossary#decoupled-sca",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "HVPS+",
      "href": "/glossary#hvps-plus",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Input credit file",
      "href": "/glossary#input-credit-file",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Instant payment",
      "href": "/glossary#instant-payment",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "ISO 20022",
      "href": "/glossary#iso-20022",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "ISO 8583",
      "href": "/glossary#iso-8583",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "LEI",
      "href": "/glossary#lei",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "MX message",
      "href": "/glossary#mx-message",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "pacs family",
      "href": "/glossary#pacs",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "pacs.002",
      "href": "/glossary#pacs-002",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "pacs.004",
      "href": "/glossary#pacs-004",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "pacs.008",
      "href": "/glossary#pacs-008",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "pacs.009",
      "href": "/glossary#pacs-009",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "pain family",
      "href": "/glossary#pain",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "pain.001",
      "href": "/glossary#pain-001",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Payment initiation service (PIS)",
      "href": "/glossary#payment-initiation-service",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Payment initiation service provider (PISP)",
      "href": "/glossary#pisp",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Payment request",
      "href": "/glossary#payment-request",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "R-transaction",
      "href": "/glossary#r-transaction",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Recall",
      "href": "/glossary#recall",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Redirect authentication",
      "href": "/glossary#redirect-sca",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Reject",
      "href": "/glossary#reject",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Return",
      "href": "/glossary#return",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "SCT",
      "href": "/glossary#sct",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "SCT Inst",
      "href": "/glossary#sct-inst",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "SEPA Request-to-Pay (SRTP)",
      "href": "/glossary#srtp",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "Third-party provider (TPP)",
      "href": "/glossary#third-party-provider",
      "coverage": "derived"
    },
    {
      "type": "glossary",
      "label": "UN/EDIFACT",
      "href": "/glossary#edifact",
      "coverage": "derived"
    },
    {
      "type": "mapping",
      "label": "MT101 → pain.001",
      "href": "/messages/mappings/mt101-to-pain-001",
      "coverage": "direct"
    },
    {
      "type": "mapping",
      "label": "MT103 /REJT/ convention → pacs.002",
      "href": "/messages/mappings/mt103-reject-to-pacs-002",
      "coverage": "direct"
    },
    {
      "type": "mapping",
      "label": "MT103 /RETN/ convention → pacs.004",
      "href": "/messages/mappings/mt103-return-to-pacs-004",
      "coverage": "direct"
    },
    {
      "type": "mapping",
      "label": "MT103 → pacs.008",
      "href": "/messages/mappings/mt103-to-pacs-008",
      "coverage": "direct"
    },
    {
      "type": "mapping",
      "label": "MT900 → camt.054",
      "href": "/messages/mappings/mt900-to-camt-054",
      "coverage": "direct"
    },
    {
      "type": "mapping",
      "label": "MT910 → camt.054",
      "href": "/messages/mappings/mt910-to-camt-054",
      "coverage": "direct"
    },
    {
      "type": "message",
      "label": "camt.054 — camt.054 — Bank-to-Customer Debit/Credit Notification",
      "href": "/messages/camt-054",
      "coverage": "direct"
    },
    {
      "type": "message",
      "label": "pacs.002 — pacs.002 — FI to FI Payment Status Report",
      "href": "/messages/pacs-002",
      "coverage": "direct"
    },
    {
      "type": "message",
      "label": "pacs.004 — pacs.004 — Payment Return",
      "href": "/messages/pacs-004",
      "coverage": "direct"
    },
    {
      "type": "message",
      "label": "pacs.008 — pacs.008 — FI to FI Customer Credit Transfer",
      "href": "/messages/pacs-008",
      "coverage": "direct"
    },
    {
      "type": "message",
      "label": "pain.001 — pain.001 — Customer Credit Transfer Initiation",
      "href": "/messages/pain-001",
      "coverage": "direct"
    },
    {
      "type": "message",
      "label": "pain.002 — pain.002 — Customer Payment Status Report",
      "href": "/messages/pain-002",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "camt.054 debit notification — raw XML",
      "href": "/downloads/samples/camt-054",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "camt.054 field matrix",
      "href": "/downloads/assets/field-matrix-camt-054",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CBPR+ implementation pack",
      "href": "/downloads/profile-packs/cbpr-plus",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "CBPR+ usage guidelines",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "CHAPS and RTGS ISO 20022 handbook and schema access",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "CHAPS RTGS implementation pack",
      "href": "/downloads/profile-packs/chaps",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "CHAPS RTGS implementation pack acceptance criteria",
      "href": "/downloads/assets/chaps-acceptance-criteria",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHAPS RTGS implementation pack BA checklist",
      "href": "/downloads/assets/chaps-ba-checklist",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHAPS RTGS implementation pack field and process matrix",
      "href": "/downloads/assets/chaps-profile-rules",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHAPS RTGS implementation pack migration notes",
      "href": "/downloads/assets/chaps-migration-notes",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHAPS RTGS implementation pack restricted and release-specific gaps",
      "href": "/downloads/assets/chaps-coverage-gaps",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHAPS RTGS implementation pack test cases",
      "href": "/downloads/assets/chaps-test-cases",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHIPS implementation pack",
      "href": "/downloads/profile-packs/chips",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "CHIPS implementation pack acceptance criteria",
      "href": "/downloads/assets/chips-acceptance-criteria",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHIPS implementation pack BA checklist",
      "href": "/downloads/assets/chips-ba-checklist",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHIPS implementation pack field and process matrix",
      "href": "/downloads/assets/chips-profile-rules",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHIPS implementation pack migration notes",
      "href": "/downloads/assets/chips-migration-notes",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHIPS implementation pack restricted and release-specific gaps",
      "href": "/downloads/assets/chips-coverage-gaps",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHIPS implementation pack test cases",
      "href": "/downloads/assets/chips-test-cases",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "CHIPS ISO 20022 usage-guideline resources and rules",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "Corporate MX positive lifecycle — ZIP pack",
      "href": "/downloads/packs/corporate-mx-positive",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "Fedwire Funds Service implementation pack",
      "href": "/downloads/profile-packs/fedwire",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "Fedwire Funds Service implementation pack acceptance criteria",
      "href": "/downloads/assets/fedwire-acceptance-criteria",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "Fedwire Funds Service implementation pack BA checklist",
      "href": "/downloads/assets/fedwire-ba-checklist",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "Fedwire Funds Service implementation pack field and process matrix",
      "href": "/downloads/assets/fedwire-profile-rules",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "Fedwire Funds Service implementation pack migration notes",
      "href": "/downloads/assets/fedwire-migration-notes",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "Fedwire Funds Service implementation pack restricted and release-specific gaps",
      "href": "/downloads/assets/fedwire-coverage-gaps",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "Fedwire Funds Service implementation pack test cases",
      "href": "/downloads/assets/fedwire-test-cases",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "Fedwire Funds Service ISO 20022 implementation and technical documents",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "High-value payments implementation pack",
      "href": "/downloads/profile-packs/high-value",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "HVPS+ usage guidelines",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "ISO 20022 message definitions and XSDs",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "MT to MX migration notes",
      "href": "/downloads/assets/mt-mx-migration-notes",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT101 → pain.001 implementation mapping",
      "href": "/downloads/assets/mapping-mt101-to-pain-001",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT101 field matrix",
      "href": "/downloads/assets/field-matrix-mt101",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT103 /REJT/ convention → pacs.002 implementation mapping",
      "href": "/downloads/assets/mapping-mt103-reject-to-pacs-002",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT103 /RETN/ convention → pacs.004 implementation mapping",
      "href": "/downloads/assets/mapping-mt103-return-to-pacs-004",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT103 → pacs.008 implementation mapping",
      "href": "/downloads/assets/mapping-mt103-to-pacs-008",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT103 field matrix",
      "href": "/downloads/assets/field-matrix-mt103",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT900 → camt.054 implementation mapping",
      "href": "/downloads/assets/mapping-mt900-to-camt-054",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT900 field matrix",
      "href": "/downloads/assets/field-matrix-mt900",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT910 → camt.054 implementation mapping",
      "href": "/downloads/assets/mapping-mt910-to-camt-054",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MT910 field matrix",
      "href": "/downloads/assets/field-matrix-mt910",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "MX cancellation, return, reversal, and investigation lifecycle — ZIP pack",
      "href": "/downloads/packs/mx-exceptions-investigations",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pacs.002 field matrix",
      "href": "/downloads/assets/field-matrix-pacs-002",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pacs.002 payment status — raw XML",
      "href": "/downloads/samples/pacs-002",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pacs.002 payment status — rejection — raw XML",
      "href": "/downloads/samples/pacs-002-rjct",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pacs.004 field matrix",
      "href": "/downloads/assets/field-matrix-pacs-004",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pacs.004 payment return — raw XML",
      "href": "/downloads/samples/pacs-004",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pacs.008 FI-to-FI credit transfer — raw XML",
      "href": "/downloads/samples/pacs-008",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pacs.008 field matrix",
      "href": "/downloads/assets/field-matrix-pacs-008",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pain.001 customer initiation — raw XML",
      "href": "/downloads/samples/pain-001",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pain.001 field matrix",
      "href": "/downloads/assets/field-matrix-pain-001",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pain.002 customer payment status — raw XML",
      "href": "/downloads/samples/pain-002",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "pain.002 field matrix",
      "href": "/downloads/assets/field-matrix-pain-002",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "Payment lifecycle test cases",
      "href": "/downloads/assets/payment-lifecycle-test-cases",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "PMPG correspondent-payment and reporting market practice",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA Credit Transfer implementation guidelines",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA Credit Transfer rulebook",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA credit-transfer implementation pack",
      "href": "/downloads/profile-packs/sepa-credit",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA Direct Debit B2B implementation guidelines and XSDs",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA Direct Debit B2B rulebook",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA Direct Debit Core implementation guidelines and XSDs",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA Direct Debit Core rulebook",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA direct-debit implementation pack",
      "href": "/downloads/profile-packs/sepa-direct-debit",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA Instant Credit Transfer implementation guidelines and XSDs",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "SEPA Instant Credit Transfer rulebook",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "Swift Standards MT release material",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "T2 functional specifications, validation rules, and binding XSDs",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "T2 RTGS implementation pack",
      "href": "/downloads/profile-packs/t2",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "T2 RTGS implementation pack acceptance criteria",
      "href": "/downloads/assets/t2-acceptance-criteria",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "T2 RTGS implementation pack BA checklist",
      "href": "/downloads/assets/t2-ba-checklist",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "T2 RTGS implementation pack field and process matrix",
      "href": "/downloads/assets/t2-profile-rules",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "T2 RTGS implementation pack migration notes",
      "href": "/downloads/assets/t2-migration-notes",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "T2 RTGS implementation pack restricted and release-specific gaps",
      "href": "/downloads/assets/t2-coverage-gaps",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "T2 RTGS implementation pack test cases",
      "href": "/downloads/assets/t2-test-cases",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "TIPS instant-settlement implementation pack",
      "href": "/downloads/profile-packs/tips",
      "coverage": "direct"
    },
    {
      "type": "resource",
      "label": "TIPS instant-settlement implementation pack acceptance criteria",
      "href": "/downloads/assets/tips-acceptance-criteria",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "TIPS instant-settlement implementation pack BA checklist",
      "href": "/downloads/assets/tips-ba-checklist",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "TIPS instant-settlement implementation pack field and process matrix",
      "href": "/downloads/assets/tips-profile-rules",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "TIPS instant-settlement implementation pack migration notes",
      "href": "/downloads/assets/tips-migration-notes",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "TIPS instant-settlement implementation pack restricted and release-specific gaps",
      "href": "/downloads/assets/tips-coverage-gaps",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "TIPS instant-settlement implementation pack test cases",
      "href": "/downloads/assets/tips-test-cases",
      "coverage": "derived"
    },
    {
      "type": "resource",
      "label": "TIPS release specifications and professional-use documentation",
      "href": "/implementation-resources",
      "coverage": "direct"
    },
    {
      "type": "sample",
      "label": "camt.054 debit notification",
      "href": "/message-samples/camt-054",
      "coverage": "derived"
    },
    {
      "type": "sample",
      "label": "pacs.002 payment status",
      "href": "/message-samples/pacs-002",
      "coverage": "derived"
    },
    {
      "type": "sample",
      "label": "pacs.002 payment status — rejection",
      "href": "/message-samples/pacs-002-rjct",
      "coverage": "derived"
    },
    {
      "type": "sample",
      "label": "pacs.004 payment return",
      "href": "/message-samples/pacs-004",
      "coverage": "derived"
    },
    {
      "type": "sample",
      "label": "pacs.008 FI-to-FI credit transfer",
      "href": "/message-samples/pacs-008",
      "coverage": "derived"
    },
    {
      "type": "sample",
      "label": "pain.001 customer initiation",
      "href": "/message-samples/pain-001",
      "coverage": "derived"
    },
    {
      "type": "sample",
      "label": "pain.002 customer payment status",
      "href": "/message-samples/pain-002",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "CBPR+: ISO 20022 for cross-border payments",
      "href": "/learn/iso-20022/cbpr-plus-cross-border",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "Exceptions and investigations",
      "href": "/learn/operations/exceptions-and-investigations",
      "coverage": "direct"
    },
    {
      "type": "topic",
      "label": "How a payment declares what it is",
      "href": "/learn/iso-20022/payment-type-and-codes",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "MT-to-MX translation and truncation",
      "href": "/learn/iso-20022/mt-mx-translation-and-truncation",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "R-transactions: reject, return, recall",
      "href": "/learn/sepa/r-transactions-reject-return-recall",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "Request to Pay",
      "href": "/learn/sepa/request-to-pay",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "Screening payment messages",
      "href": "/screening/execution/screening-payment-messages",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "SCT Inst: instant payments",
      "href": "/learn/sepa/sct-inst-instant-payments",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "The camt family: cash management & investigations",
      "href": "/learn/iso-20022/camt-family-cash-management",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "The ISO 20022 message model",
      "href": "/learn/iso-20022/iso-20022-message-model-and-xml",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "The pacs family: interbank messages",
      "href": "/learn/iso-20022/pacs-family-interbank-messages",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "The pain family: payment initiation",
      "href": "/learn/iso-20022/pain-family-payment-initiation",
      "coverage": "derived"
    },
    {
      "type": "topic",
      "label": "The SCT lifecycle",
      "href": "/learn/sepa/sct-lifecycle",
      "coverage": "derived"
    }
  ]
}
