{
  "generatedFrom": "Payments Signal canonical architecture registry",
  "notice": "SYNTHETIC / TRAINING ONLY",
  "blueprintId": "architecture-accounting-reconciliation",
  "versionLabel": "Payments Signal reference architecture v1",
  "reviewDate": "2026-07-23",
  "traces": [
    {
      "id": "acct-payment-to-close",
      "label": "Payment to balanced books",
      "summary": "Follow a payment from its accounting trigger to a reconciled external settlement record.",
      "viewId": "component",
      "steps": [
        {
          "id": "acct-payment-to-close-step-1",
          "title": "Authorise the accounting event",
          "nodeId": "acct-payment-state",
          "interfaceId": "acct-e1",
          "plainExplanation": "The payment transition produces one immutable accounting intent.",
          "businessState": "Business state confirmed"
        },
        {
          "id": "acct-payment-to-close-step-2",
          "title": "Select the journal rule",
          "nodeId": "acct-rule-engine",
          "interfaceId": "acct-e2",
          "plainExplanation": "The effective product and event rule names every debit and credit.",
          "businessState": "Balanced template selected"
        },
        {
          "id": "acct-payment-to-close-step-3",
          "title": "Post once",
          "nodeId": "acct-posting-service",
          "interfaceId": "acct-e3",
          "plainExplanation": "The posting service commits atomically under the payment's stable business key.",
          "businessState": "Journal committed",
          "ledgerEffect": "Balanced journal reference recorded."
        },
        {
          "id": "acct-payment-to-close-step-4",
          "title": "Update product books",
          "nodeId": "acct-product-ledger",
          "interfaceId": "acct-e6",
          "plainExplanation": "Customer liability and product entries are now booked.",
          "businessState": "Customer and product books updated"
        },
        {
          "id": "acct-payment-to-close-step-5",
          "title": "Receive settlement evidence",
          "nodeId": "acct-external-evidence",
          "interfaceId": "acct-e8",
          "plainExplanation": "The network status and account report are preserved with their source context.",
          "businessState": "External outcome evidenced",
          "messageIds": [
            "camt-053",
            "camt-054"
          ]
        },
        {
          "id": "acct-payment-to-close-step-6",
          "title": "Match every layer",
          "nodeId": "acct-reconciliation",
          "interfaceId": "acct-e9",
          "plainExplanation": "Business state, journal, settlement position, and statement agree.",
          "businessState": "Reconciled"
        },
        {
          "id": "acct-payment-to-close-step-7",
          "title": "Close with evidence",
          "nodeId": "acct-case-reporting",
          "plainExplanation": "The close record identifies the match, reviewer, and retained evidence.",
          "businessState": "Control closed"
        }
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "locator": "Accounting, settlement evidence, and reconciliation lineage",
            "label": "simplified-educational-illustration",
            "simplifications": "The posting model is a vendor-neutral control pattern. Product accounting, legal books, chart of accounts, posting timing, and suspense treatment differ by institution and jurisdiction."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        },
        {
          "ref": {
            "sourceId": "bis-cpmi-pfmi",
            "locator": "Principles 8, 23 and 24",
            "label": "official-requirement"
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "CPMI-IOSCO Principles for financial market infrastructures"
        }
      ]
    }
  ],
  "stressCases": [
    {
      "id": "acct-stress-duplicate",
      "label": "Duplicate accounting trigger",
      "trigger": "The same business event is delivered twice.",
      "divergesAfterStepId": "acct-payment-to-close-step-2",
      "traceId": "acct-payment-to-close",
      "affectedNodeIds": [
        "acct-payment-state",
        "acct-posting-service"
      ],
      "affectedInterfaceIds": [
        "acct-e1",
        "acct-e2"
      ],
      "lastConfirmedState": "The first accounting intent is recorded.",
      "settlementState": "External settlement is unchanged.",
      "fundsState": "The first balanced journal remains authoritative.",
      "owner": "Core ledger engineering",
      "safeAction": "Query the posting result by business key; do not issue a second journal.",
      "requiredEvidence": [
        "Business key",
        "Event sequence",
        "Existing journal reference"
      ],
      "recoverySteps": [
        "Return the existing result",
        "Record the duplicate as an operational metric"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "locator": "Accounting, settlement evidence, and reconciliation lineage",
            "label": "simplified-educational-illustration",
            "simplifications": "The posting model is a vendor-neutral control pattern. Product accounting, legal books, chart of accounts, posting timing, and suspense treatment differ by institution and jurisdiction."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        }
      ]
    },
    {
      "id": "acct-stress-uncertain",
      "label": "Ledger response is uncertain",
      "trigger": "The ledger commits but the response is lost.",
      "divergesAfterStepId": "acct-payment-to-close-step-3",
      "traceId": "acct-payment-to-close",
      "affectedNodeIds": [
        "acct-posting-service",
        "acct-product-ledger"
      ],
      "affectedInterfaceIds": [
        "acct-e3"
      ],
      "lastConfirmedState": "The posting command was accepted; the response is unknown.",
      "settlementState": "External settlement may not yet have occurred.",
      "fundsState": "A journal may already exist.",
      "owner": "Core ledger operations",
      "safeAction": "Look up the immutable business key before deciding whether any replay is safe.",
      "requiredEvidence": [
        "Ledger transaction log",
        "Business key",
        "Journal balance"
      ],
      "recoverySteps": [
        "Confirm the existing journal",
        "Resume downstream processing without reposting"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "locator": "Accounting, settlement evidence, and reconciliation lineage",
            "label": "simplified-educational-illustration",
            "simplifications": "The posting model is a vendor-neutral control pattern. Product accounting, legal books, chart of accounts, posting timing, and suspense treatment differ by institution and jurisdiction."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        }
      ]
    },
    {
      "id": "acct-stress-break",
      "label": "Statement does not match the settlement book",
      "trigger": "A confirmed account entry has no matching internal expectation.",
      "divergesAfterStepId": "acct-payment-to-close-step-6",
      "traceId": "acct-payment-to-close",
      "affectedNodeIds": [
        "acct-external-evidence",
        "acct-reconciliation",
        "acct-case-reporting"
      ],
      "affectedInterfaceIds": [
        "acct-e8",
        "acct-e9"
      ],
      "lastConfirmedState": "The external statement entry is authentic but unmatched.",
      "settlementState": "The statement is evidence that cash moved on the external account.",
      "fundsState": "Internal settlement books remain incomplete.",
      "owner": "Treasury reconciliation",
      "safeAction": "Open a break; do not manufacture an expectation or reverse customer books without investigation.",
      "requiredEvidence": [
        "Original statement",
        "Account and value date",
        "Network references",
        "Internal journals"
      ],
      "recoverySteps": [
        "Classify the break",
        "Correct through an approved journal",
        "Re-run all affected reconciliations"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "bis-cpmi-pfmi",
            "locator": "Principles 23 and 24",
            "label": "official-requirement"
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "CPMI-IOSCO Principles for financial market infrastructures"
        },
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "locator": "Accounting, settlement evidence, and reconciliation lineage",
            "label": "simplified-educational-illustration",
            "simplifications": "The posting model is a vendor-neutral control pattern. Product accounting, legal books, chart of accounts, posting timing, and suspense treatment differ by institution and jurisdiction."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        }
      ]
    }
  ]
}
