{
  "schemaVersion": "1.0.0",
  "contractVersion": "2026-08-25.9",
  "dictionaries": {
    "paymentHistory": {
      "id": "payment-history",
      "title": "Payment History codes and segments",
      "description": "Confirmed or documented examples and partial configuration codes. The catalog is not complete; unknown codes must be preserved and treated as catalog gaps.",
      "field": "orderHistory",
      "availability": [
        "deposit status by PayStar ID",
        "deposit status by merchant ID",
        "payout status by PayStar ID",
        "payout status by merchant ID",
        "callbacks"
      ],
      "itemModel": {
        "time": "UTC timestamp in deposit/payout status responses only. Interpret an offset-less value as UTC, not local time (owner-confirmed 2026-09-08). Missing Z/offset remains a date-time serialization discrepancy.",
        "action": "string|null",
        "newCode": "string|null; additional Payment History code returned by the API. Preserve unfamiliar values without inferring meanings."
      },
      "documentedActionFormat": "A.B.C.RR",
      "segments": {
        "A_stage": {
          "1": "PayStar",
          "2": "Gateway create",
          "3": "Hosted Payment Page / user interaction",
          "4": "Gateway polling"
        },
        "B_operation_result": {
          "0": "Info",
          "1": "Success",
          "2": "Failed"
        },
        "C_payment_state": {
          "0": "Init",
          "1": "Created",
          "2": "Processing",
          "3": "Success",
          "4": "Failed",
          "5": "Unchanged"
        },
        "RR_reason_group": {
          "00": "None",
          "11..19": "TECH",
          "21..29": "AUTHZ",
          "31..39": "BUSINESS",
          "41..49": "RISK",
          "51..59": "USER",
          "61..69": "ISSUER"
        }
      },
      "examples": [
        {
          "code": "1.1.1.00",
          "meaning": "PayStar: payment created"
        },
        {
          "code": "2.1.1.00",
          "meaning": "Gateway: payment created"
        },
        {
          "code": "2.1.2.00",
          "meaning": "Gateway: processing"
        },
        {
          "code": "4.1.3.00",
          "meaning": "Gateway polling: payment successful"
        },
        {
          "code": "4.1.4.63",
          "meaning": "Gateway polling: failed, issuer insufficient funds"
        },
        {
          "code": "2.2.4.16",
          "meaning": null
        }
      ],
      "partialConfigurationCodes": [
        {
          "http": 500,
          "new_code": "1.2.4.18.1",
          "legacy_code": "1200-1-1",
          "description": "Pipeline configuration missing formUrl."
        },
        {
          "http": 500,
          "new_code": "1.2.4.18.2",
          "legacy_code": "0000-911",
          "description": "Endpoint has no pipeline/routes configured."
        },
        {
          "http": 500,
          "new_code": "1.2.4.18.3",
          "legacy_code": "0000-2",
          "description": "Pipeline has no channel configured."
        },
        {
          "http": 500,
          "new_code": "1.2.4.18.4",
          "legacy_code": "0000-180924",
          "description": "Gateway integration configuration invalid."
        },
        {
          "http": 500,
          "new_code": "1.2.4.18.5",
          "legacy_code": "0000-4",
          "description": "Gateway implementation configuration invalid."
        }
      ],
      "unknownCodePolicy": {
        "rule": "Never infer a description from neighboring codes."
      },
      "completeness": {
        "asynchronous_enrichment": true,
        "recommended_additional_status_check_documented": "about 10 minutes later when a complete trace is needed",
        "scopeNotice": "Deposit status includes a non-empty orderHistory. This does not guarantee an exhaustive trace or forbid later enrichment. The legacy additional-check suggestion is not a new SLA or permission for empty deposit history; payout/callback rules are unchanged."
      },
      "depositStatusAvailability": {
        "decision": "DEP-STATUS-001",
        "confirmedAt": "2026-09-11",
        "scope": [
          "getDepositStatusByMerchantId",
          "getDepositStatusByPayStarId"
        ],
        "required": true,
        "minItems": 1,
        "currentStateField": "orderStatus",
        "completeTraceGuaranteed": false,
        "payoutAndCallbackRulesChanged": false
      },
      "reviewNotice": "The owner confirmed UTC for orderHistory[].time in deposit and payout status responses on 2026-09-08. This does not establish callback or Events timestamp semantics. The current missing timezone suffix remains a strict date-time discrepancy. See /api/status#history."
    }
  },
  "reviewRevision": "2026-09-15.5"
}
