{
  "generatedFrom": "Payments Signal canonical architecture registry",
  "notice": "SYNTHETIC / TRAINING ONLY",
  "blueprintId": "architecture-enterprise-payments",
  "versionLabel": "Reference architecture v1",
  "reviewDate": "2026-07-23",
  "traces": [
    {
      "id": "enterprise-credit-transfer",
      "label": "One controlled credit transfer",
      "summary": "Asha Traders sends one supplier payment from capture through reconciliation.",
      "viewId": "container",
      "steps": [
        {
          "id": "capture",
          "title": "Capture the instruction",
          "nodeId": "channel",
          "interfaceId": "customer-to-channel",
          "plainExplanation": "Asha Traders asks Bank Alfa to pay its supplier.",
          "businessState": "RECEIVED"
        },
        {
          "id": "accept",
          "title": "Accept into processing",
          "nodeId": "payment-hub",
          "interfaceId": "channel-to-hub",
          "plainExplanation": "The bank records one instruction with a stable identity.",
          "businessState": "ACCEPTED",
          "messageIds": [
            "pain-001"
          ]
        },
        {
          "id": "enrich",
          "title": "Resolve the route",
          "nodeId": "reference-data",
          "interfaceId": "reference-to-hub",
          "plainExplanation": "The hub reads current routing, calendar, and settlement facts.",
          "businessState": "ENRICHED"
        },
        {
          "id": "control",
          "title": "Apply control decisions",
          "nodeId": "screening-risk",
          "interfaceId": "hub-to-controls",
          "plainExplanation": "Screening and fraud controls decide whether processing may continue.",
          "businessState": "CONTROLLED",
          "controlEvidence": "Proceed decision and configuration version"
        },
        {
          "id": "post",
          "title": "Record the customer-side value",
          "nodeId": "customer-ledger",
          "interfaceId": "hub-to-ledger",
          "plainExplanation": "The bank reserves or posts the value on its own books.",
          "businessState": "POSTED",
          "ledgerEffect": "Balanced customer and internal settlement-account entries"
        },
        {
          "id": "release",
          "title": "Release to the network",
          "nodeId": "network-gateway",
          "interfaceId": "hub-to-gateway",
          "plainExplanation": "The bank creates and secures the network-specific instruction.",
          "businessState": "RELEASED",
          "messageIds": [
            "pacs-008"
          ]
        },
        {
          "id": "network",
          "title": "Clear or settle under the service rules",
          "nodeId": "payment-network",
          "interfaceId": "gateway-to-network",
          "plainExplanation": "The external service validates and processes the instruction.",
          "businessState": "NETWORK_ACCEPTED"
        },
        {
          "id": "credit",
          "title": "Service the receiving account",
          "nodeId": "receiving-bank",
          "interfaceId": "network-to-receiver",
          "plainExplanation": "The receiving institution credits the beneficiary when its rules and settlement evidence allow.",
          "businessState": "BENEFICIARY_CREDITED"
        },
        {
          "id": "reconcile",
          "title": "Prove the result",
          "nodeId": "operations",
          "interfaceId": "evidence-to-operations",
          "plainExplanation": "Operations match internal postings, network evidence, and reporting to one economic payment.",
          "businessState": "RECONCILED",
          "messageIds": [
            "camt-053"
          ]
        }
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "label": "simplified-educational-illustration",
            "locator": "Enterprise trace",
            "simplifications": "The trace compresses institution-specific approval, posting, clearing, and settlement timing into one readable sequence."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        },
        {
          "ref": {
            "sourceId": "iso20022-catalogue",
            "label": "official-requirement",
            "locator": "Payments initiation, clearing and settlement, and cash-management catalogues"
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "ISO 20022 catalogue — select the implementation community and message version in force"
        }
      ]
    }
  ],
  "stressCases": [
    {
      "id": "enterprise-screening-hold",
      "label": "Screening hold",
      "trigger": "The control service finds a possible sanctions-list match.",
      "divergesAfterStepId": "control",
      "traceId": "enterprise-credit-transfer",
      "affectedNodeIds": [
        "payment-hub",
        "screening-risk",
        "operations"
      ],
      "affectedInterfaceIds": [
        "hub-to-controls"
      ],
      "lastConfirmedState": "The payment is accepted and enriched but not released.",
      "settlementState": "Interbank settlement has not occurred.",
      "fundsState": "Any customer-side reservation remains controlled on Bank Alfa’s books.",
      "owner": "Sanctions investigation with payment operations monitoring the payment state",
      "safeAction": "Keep the instruction on hold until an authorised investigator records and applies a disposition.",
      "requiredEvidence": [
        "Matched fields",
        "Watchlist record and version",
        "Investigator reasoning",
        "Release or stop authority"
      ],
      "recoverySteps": [
        "Resolve the alert",
        "Apply the recorded outcome once",
        "Resume from the held state or stop under policy"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "label": "simplified-educational-illustration",
            "locator": "Screening-hold stress case",
            "simplifications": "Legal treatment and failure posture depend on the applicable regime and institution policy."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        }
      ]
    },
    {
      "id": "enterprise-ledger-timeout",
      "label": "Ledger response timeout",
      "trigger": "The posting request times out after the ledger may already have accepted it.",
      "divergesAfterStepId": "post",
      "traceId": "enterprise-credit-transfer",
      "affectedNodeIds": [
        "payment-hub",
        "customer-ledger",
        "operations"
      ],
      "affectedInterfaceIds": [
        "hub-to-ledger",
        "ledger-to-operations"
      ],
      "lastConfirmedState": "Control checks passed; the posting outcome is unknown.",
      "settlementState": "The network instruction has not been released.",
      "fundsState": "The customer may already be debited or reserved, so a blind retry could double post.",
      "owner": "Payment-platform operations with core-ledger support",
      "safeAction": "Query the ledger using the original idempotency key before retrying or reversing anything.",
      "requiredEvidence": [
        "Posting key",
        "Ledger journal result",
        "Payment state history",
        "Operator decision"
      ],
      "recoverySteps": [
        "Query",
        "Correlate",
        "Adopt the proven result",
        "Retry only if the ledger proves no posting exists"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "label": "simplified-educational-illustration",
            "locator": "Ledger-timeout stress case",
            "simplifications": "Posting APIs and recovery commands vary by ledger platform."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        }
      ]
    },
    {
      "id": "enterprise-network-ambiguity",
      "label": "Unknown network delivery outcome",
      "trigger": "The connection drops after transmission but before a delivery acknowledgement returns.",
      "divergesAfterStepId": "network",
      "traceId": "enterprise-credit-transfer",
      "affectedNodeIds": [
        "payment-hub",
        "network-gateway",
        "payment-network",
        "operations"
      ],
      "affectedInterfaceIds": [
        "hub-to-gateway",
        "gateway-to-network"
      ],
      "lastConfirmedState": "The instruction was released; external acceptance is not yet proven.",
      "settlementState": "Unknown until network evidence or reporting is received.",
      "fundsState": "The sending-side posting exists; the external outcome must be established before replay.",
      "owner": "Payment operations and network-connectivity support",
      "safeAction": "Use the network enquiry and duplicate-control procedure; do not create a new payment.",
      "requiredEvidence": [
        "Original network reference",
        "Transport log",
        "Network acknowledgement or enquiry",
        "Settlement report"
      ],
      "recoverySteps": [
        "Hold automatic retry",
        "Query delivery",
        "Reconcile late evidence",
        "Resume, return, or investigate based on proven status"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "bis-cpmi-pfmi",
            "label": "official-requirement",
            "locator": "Principle 17 — operational risk"
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "CPMI-IOSCO Principles for financial market infrastructures",
          "asOf": "2012-04-16"
        }
      ]
    }
  ]
}
