{
  "schemaVersion": "1.0.0",
  "contractVersion": "2026-08-25.9",
  "dictionaries": {
    "orderStatuses": {
      "id": "order-statuses",
      "title": "Deposit and payout order statuses",
      "description": "Current state values returned by deposit and payout status endpoints.",
      "deposit": {
        "non_final": [
          "Init",
          "Created",
          "Processing"
        ],
        "final": [
          "Success"
        ],
        "finality_scope": "Only values final across the documented deposit flows are listed in deposit.final. Failed is flow-specific; use deposit.p2p or deposit.other_flows. This corrects the former unconditional Failed finality without adding a status.",
        "p2p": {
          "non_final": [
            "Init",
            "Created",
            "Processing"
          ],
          "final": [
            "Success"
          ],
          "correctable": [
            "Failed"
          ],
          "correction": {
            "decision": "P2P-STATE-001",
            "confirmedAt": "2026-09-10",
            "scope": "P2P deposits, including merchant-side H2H/H2C presentation",
            "from": "Failed",
            "to": "Success",
            "sameOrder": true,
            "identifiersUnchanged": true,
            "usualInitiator": "merchant support",
            "callbackHandlingRequired": true,
            "reverseBusinessTransitionRequired": false,
            "liveCorrectionVerified": false,
            "liveCallbackDeliveryVerified": false,
            "correctionDeadlineConfirmed": false,
            "pollingStopPolicyConfirmed": false,
            "deliveryContract": "Payload, signature, acknowledgement and retry details still require approved fixtures; this lifecycle decision does not define them.",
            "handling": "Process an authenticated Success correction for the existing P2P order even if it was Failed. Do not discard it solely because the order ID has been seen. Apply the successful business effect idempotently. Do not downgrade a stored Success to Failed; this does not waive callback validation or the agreed acknowledgement protocol."
          }
        },
        "other_flows": {
          "scope": "Other deposit flows: previous classification retained; the P2P correction does not change their lifecycle.",
          "non_final": [
            "Init",
            "Created",
            "Processing"
          ],
          "final": [
            "Success",
            "Failed"
          ]
        }
      },
      "payout": {
        "non_final": [
          "Created",
          "Processing"
        ],
        "final": [
          "Success",
          "Failed"
        ]
      }
    }
  },
  "reviewRevision": "2026-09-15.5"
}
