{
  "generatedFrom": "Payments Signal canonical architecture registry",
  "notice": "SYNTHETIC / TRAINING ONLY",
  "blueprintId": "architecture-iso20022-processing",
  "versionLabel": "Payments Signal reference architecture v1",
  "reviewDate": "2026-07-23",
  "traces": [
    {
      "id": "iso-processing-trace",
      "label": "pacs.008 from intake to correlated status",
      "summary": "Follow one customer-credit-transfer message through secure parsing, layered validation, controlled transformation, and lifecycle processing.",
      "viewId": "component",
      "steps": [
        {
          "id": "iso-processing-trace-step-1",
          "title": "Intent becomes a message",
          "nodeId": "iso-producer",
          "plainExplanation": "The upstream producer supplies the message version, profile, identifiers, and payment intent.",
          "businessState": "Created",
          "messageIds": [
            "pacs-008"
          ]
        },
        {
          "id": "iso-processing-trace-step-2",
          "title": "Peer and envelope are trusted",
          "nodeId": "iso-envelope",
          "interfaceId": "iso-e1",
          "plainExplanation": "Transport identity, header consistency, size, and replay evidence are checked.",
          "businessState": "Transport accepted",
          "messageIds": [
            "pacs-008"
          ],
          "controlEvidence": "Peer identity, Business Application Header, technical message identifier"
        },
        {
          "id": "iso-processing-trace-step-3",
          "title": "XML is safely parsed",
          "nodeId": "iso-parser",
          "interfaceId": "iso-e2",
          "plainExplanation": "The parser establishes XML well-formedness without resolving external content.",
          "businessState": "Well-formed"
        },
        {
          "id": "iso-processing-trace-step-4",
          "title": "Base schema passes",
          "nodeId": "iso-schema",
          "interfaceId": "iso-e3",
          "plainExplanation": "The selected pacs.008 XSD confirms structure and base data types.",
          "businessState": "Base valid",
          "messageIds": [
            "pacs-008"
          ]
        },
        {
          "id": "iso-processing-trace-step-5",
          "title": "Usage guideline passes",
          "nodeId": "iso-profile",
          "interfaceId": "iso-e4",
          "plainExplanation": "The implementation profile adds restrictions and business rules beyond the base XSD.",
          "businessState": "Profile valid",
          "messageIds": [
            "pacs-008"
          ],
          "controlEvidence": "Profile version and rule-pack checksum"
        },
        {
          "id": "iso-processing-trace-step-6",
          "title": "Meaning is mapped with lineage",
          "nodeId": "iso-canonical",
          "interfaceId": "iso-e5",
          "plainExplanation": "Every mapped, defaulted, and unsupported value is recorded; no data disappears silently.",
          "businessState": "Normalised"
        },
        {
          "id": "iso-processing-trace-step-7",
          "title": "Lifecycle processing starts",
          "nodeId": "iso-orchestrator",
          "interfaceId": "iso-e6",
          "plainExplanation": "The payment engine applies business controls and selects the downstream route.",
          "businessState": "Accepted for processing"
        },
        {
          "id": "iso-processing-trace-step-8",
          "title": "Consumer receives the message",
          "nodeId": "iso-consumer",
          "interfaceId": "iso-e7",
          "plainExplanation": "The current outbound profile is sent and the response remains correlated to the original instruction.",
          "businessState": "Submitted",
          "messageIds": [
            "pacs-008"
          ]
        }
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "iso20022-catalogue",
            "locator": "pacs.008 message definition",
            "label": "official-requirement"
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "ISO 20022 financial repository and message catalogue"
        },
        {
          "ref": {
            "sourceId": "cbpr-usage-guidelines",
            "locator": "CBPR+ pacs.008 usage guideline",
            "label": "official-requirement",
            "simplifications": "The public architecture names message families. Exact CBPR+ elements, market-practice rules, and release versions remain in MyStandards."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "CBPR+ usage guidelines — current MyStandards profile must be checked"
        }
      ]
    }
  ],
  "stressCases": [
    {
      "id": "iso-stress-profile",
      "label": "Base-valid, profile-invalid",
      "trigger": "The XML passes the base XSD but violates the selected usage guideline.",
      "divergesAfterStepId": "iso-processing-trace-step-4",
      "traceId": "iso-processing-trace",
      "affectedNodeIds": [
        "iso-profile",
        "iso-canonical"
      ],
      "affectedInterfaceIds": [
        "iso-e4",
        "iso-e5"
      ],
      "lastConfirmedState": "Base valid; no business acceptance has occurred.",
      "settlementState": "No clearing or settlement instruction has been released.",
      "fundsState": "Customer funds remain in the pre-release position defined by the channel.",
      "owner": "Standards support or payment repair",
      "safeAction": "Return the exact profile rule and repair only from an authorised source value; never bypass the profile.",
      "requiredEvidence": [
        "Message version",
        "Profile version",
        "Rule identifier",
        "Original message checksum"
      ],
      "recoverySteps": [
        "Correct the source data",
        "Re-run every validation layer",
        "Retain both failed and corrected evidence"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "cbpr-usage-guidelines",
            "locator": "Usage-guideline validation",
            "label": "official-requirement",
            "simplifications": "The public architecture names message families. Exact CBPR+ elements, market-practice rules, and release versions remain in MyStandards."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "CBPR+ usage guidelines — current MyStandards profile must be checked"
        }
      ]
    },
    {
      "id": "iso-stress-loss",
      "label": "Transformation would lose meaning",
      "trigger": "A source value has no approved canonical target or would be truncated.",
      "divergesAfterStepId": "iso-processing-trace-step-5",
      "traceId": "iso-processing-trace",
      "affectedNodeIds": [
        "iso-canonical",
        "iso-orchestrator"
      ],
      "affectedInterfaceIds": [
        "iso-e5",
        "iso-e6"
      ],
      "lastConfirmedState": "Profile valid; canonical acceptance is not confirmed.",
      "settlementState": "Nothing has been submitted for settlement.",
      "fundsState": "No downstream financial posting should be released.",
      "owner": "Payment product, data architecture, and operations",
      "safeAction": "Stop the mapping, disclose the loss, and obtain an approved mapping or controlled repair decision.",
      "requiredEvidence": [
        "Source field and value",
        "Mapping version",
        "Target constraint",
        "Authorised decision"
      ],
      "recoverySteps": [
        "Add or approve a loss-aware rule",
        "Regression-test both directions",
        "Reprocess idempotently"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "locator": "Data-loss control",
            "label": "simplified-educational-illustration",
            "simplifications": "Mapping and canonical models are institution-specific."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        }
      ]
    },
    {
      "id": "iso-stress-timeout",
      "label": "Timeout after network submission",
      "trigger": "The outbound send times out after the adapter may have handed the message to the network.",
      "divergesAfterStepId": "iso-processing-trace-step-7",
      "traceId": "iso-processing-trace",
      "affectedNodeIds": [
        "iso-orchestrator",
        "iso-consumer"
      ],
      "affectedInterfaceIds": [
        "iso-e7",
        "iso-e8"
      ],
      "lastConfirmedState": "Accepted for processing; downstream acceptance is unknown.",
      "settlementState": "Unknown until network and settlement evidence are checked.",
      "fundsState": "Internal reservation or posting remains unchanged until the outcome is reconciled.",
      "owner": "Payment operations and network support",
      "safeAction": "Use technical acknowledgement, network enquiry, and business identifiers before any resend.",
      "requiredEvidence": [
        "Technical message identifier",
        "Business reference",
        "Transport logs",
        "Network status"
      ],
      "recoverySteps": [
        "Reconcile the original submission",
        "Replay only under the duplicate policy",
        "Escalate if settlement evidence conflicts"
      ],
      "evidence": [
        {
          "ref": {
            "sourceId": "payments-signal-editorial",
            "locator": "Ambiguous-send recovery",
            "label": "simplified-educational-illustration",
            "simplifications": "Exact enquiry and duplicate procedures depend on the network profile."
          },
          "verifiedDate": "2026-07-23",
          "versionContext": "Payments Signal reference architecture v1"
        }
      ]
    }
  ]
}
