{
  "generatedFrom": "Payments Signal canonical architecture registry",
  "notice": "SYNTHETIC / TRAINING ONLY",
  "blueprintId": "architecture-batch-ach-direct-debit",
  "versionLabel": "Payments Signal reference architecture v1",
  "reviewDate": "2026-07-23",
  "traces": [
    {
      "id": "batch-credit-trace",
      "label": "One payroll file through clearing and settlement",
      "summary": "Follow a pain.001 file from corporate approval through file validation, scheduling, clearing, net settlement, beneficiary posting, and multi-level reconciliation.",
      "viewId": "component",
      "steps": [
        {
          "id": "batch-credit-trace-step-1",
          "title": "Corporate approves the payroll file",
          "nodeId": "batch-originator",
          "plainExplanation": "The originator supplies file, group, and transaction identifiers plus count and value totals.",
          "businessState": "File authorised",
          "messageIds": [
            "pain-001"
          ]
        },
        {
          "id": "batch-credit-trace-step-2",
          "title": "Bank accepts the immutable batch",
          "nodeId": "batch-ingestion",
          "interfaceId": "batch-e1",
          "plainExplanation": "Authentication, integrity, duplicate, schema/profile, count, and value checks pass.",
          "businessState": "File accepted",
          "controlEvidence": "File checksum, control totals, duplicate key"
        },
        {
          "id": "batch-credit-trace-step-3",
          "title": "Items enter the permitted cycle",
          "nodeId": "batch-scheduler",
          "interfaceId": "batch-e3",
          "plainExplanation": "The current calendar, cut-off, and requested value date select the release window.",
          "businessState": "Scheduled"
        },
        {
          "id": "batch-credit-trace-step-4",
          "title": "Clearing accepts eligible items",
          "nodeId": "batch-clearing",
          "interfaceId": "batch-e5",
          "plainExplanation": "File and item outcomes are returned without losing original identifiers.",
          "businessState": "Cleared",
          "messageIds": [
            "pacs-008",
            "pacs-002"
          ]
        },
        {
          "id": "batch-credit-trace-step-5",
          "title": "Net obligations settle",
          "nodeId": "batch-settlement",
          "interfaceId": "batch-e6",
          "plainExplanation": "The designated settlement ledger posts balanced participant obligations.",
          "businessState": "Cycle settled",
          "ledgerEffect": "Net participant debits and credits"
        },
        {
          "id": "batch-credit-trace-step-6",
          "title": "Beneficiary items post",
          "nodeId": "batch-receiver",
          "interfaceId": "batch-e7",
          "plainExplanation": "Receiving institutions post accepted items once under their scheme and account controls.",
          "businessState": "Customer items posted"
        },
        {
          "id": "batch-credit-trace-step-7",
          "title": "Every level reconciles",
          "nodeId": "batch-reconciliation",
          "interfaceId": "batch-e9",
          "plainExplanation": "File, group, transaction, clearing, settlement, customer, and return totals agree.",
          "businessState": "Batch closed"
        }
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "iso20022-catalogue",
            "locator": "pain.001, pacs.008, pacs.002 and reporting messages",
            "label": "official-requirement"
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "ISO 20022 message catalogue"
        },
        {
          "ref": {
            "sourceId": "bis-cpmi-pfmi",
            "locator": "Principles 8, 17 and 23",
            "label": "official-requirement"
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "CPMI-IOSCO Principles for financial market infrastructures"
        }
      ]
    }
  ],
  "stressCases": [
    {
      "id": "batch-stress-file",
      "label": "Duplicate file with changed filename",
      "trigger": "The same business batch is uploaded again under a different transport filename.",
      "divergesAfterStepId": "batch-credit-trace-step-1",
      "traceId": "batch-credit-trace",
      "affectedNodeIds": [
        "batch-originator",
        "batch-ingestion",
        "batch-reconciliation"
      ],
      "affectedInterfaceIds": [
        "batch-e1",
        "batch-e10"
      ],
      "lastConfirmedState": "Original batch identity must be established before accepting the new upload.",
      "settlementState": "Depends on the original batch; the duplicate itself has no separate settlement authority.",
      "fundsState": "Do not create a second set of customer or settlement postings.",
      "owner": "Corporate channel and batch operations",
      "safeAction": "Compare business identifiers, control totals, and content checksum; reject or hold the duplicate under the channel contract.",
      "requiredEvidence": [
        "File and group identifiers",
        "Content checksum",
        "Counts and value",
        "Original status"
      ],
      "recoverySteps": [
        "Establish original outcome",
        "Return duplicate status",
        "Submit a corrected batch only under the documented correction process"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "locator": "Duplicate-file control",
            "label": "simplified-educational-illustration",
            "simplifications": "Duplicate keys and correction conventions depend on channel and scheme."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        }
      ]
    },
    {
      "id": "batch-stress-funding",
      "label": "Participant cannot fund net obligation",
      "trigger": "The clearing cycle calculates a debit obligation the participant cannot settle.",
      "divergesAfterStepId": "batch-credit-trace-step-4",
      "traceId": "batch-credit-trace",
      "affectedNodeIds": [
        "batch-clearing",
        "batch-settlement",
        "batch-reconciliation"
      ],
      "affectedInterfaceIds": [
        "batch-e6",
        "batch-e8"
      ],
      "lastConfirmedState": "Items cleared; cycle settlement not final.",
      "settlementState": "Not settled until the default or liquidity process completes.",
      "fundsState": "Customer availability must follow the scheme's provisional/final treatment and participant policy.",
      "owner": "Clearing operator, settlement institution, and participant treasury",
      "safeAction": "Apply the documented funding, default, or unwind process; do not edit obligations manually.",
      "requiredEvidence": [
        "Accepted cycle inputs",
        "Net obligation",
        "Funding position",
        "Default-rule decision"
      ],
      "recoverySteps": [
        "Fund or apply default process",
        "Recalculate if the rules require",
        "Distribute final outcomes and reconcile"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "bis-cpmi-pfmi",
            "locator": "Principles 4, 7, 8 and 13",
            "label": "official-requirement"
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "CPMI-IOSCO Principles for financial market infrastructures"
        }
      ]
    },
    {
      "id": "batch-stress-return",
      "label": "Return cannot match the original item",
      "trigger": "A receiving participant sends a return with missing or inconsistent original references.",
      "divergesAfterStepId": "batch-credit-trace-step-6",
      "traceId": "batch-credit-trace",
      "affectedNodeIds": [
        "batch-receiver",
        "batch-reconciliation"
      ],
      "affectedInterfaceIds": [
        "batch-e9"
      ],
      "lastConfirmedState": "Original item settled and posted or rejected; return identity is uncertain.",
      "settlementState": "Original cycle settlement remains final; return is a new linked transaction when valid.",
      "fundsState": "No customer recredit or debit occurs until the return is matched and authorised.",
      "owner": "Payment reconciliation and exceptions operations",
      "safeAction": "Hold the return in an exception queue and match by permitted original references and value evidence.",
      "requiredEvidence": [
        "Original transaction identifiers",
        "Amount and currency",
        "Return reason",
        "Participant and settlement references"
      ],
      "recoverySteps": [
        "Resolve the match",
        "Post the return once",
        "Escalate or reject an unresolvable return under scheme rules"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "iso20022-catalogue",
            "locator": "pacs.004 original-transaction references",
            "label": "official-requirement"
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "ISO 20022 message catalogue"
        }
      ]
    }
  ]
}
