{
  "revision": "2026-09-19.3",
  "api_version": "1.33.1",
  "manual": "https://docs.luniumpay.com/manual#incidentes",
  "authority": "Guidance for read-only investigation and reconciliation. Does not authorize financial writes, fee changes or credential rotation.",
  "rules": [
    "Persist intent and external_id before sending a financial request.",
    "Unknown result is not failure. Never create a new financial intent merely to clear an alert.",
    "Use per-project and environment isolation; minimize personal data.",
    "Read current route minima, fees and availability. Never silently change recipient, asset or network."
  ],
  "cases": [
    {
      "id": "paid_crypto_pending",
      "read": [
        "GET /cashin/{cashin_id}/status"
      ],
      "success": "status == paid AND settlement_status == sent",
      "action": "Track the original operation; escalate failed, incerto or persistent lack of progress. Do not send a second transfer."
    },
    {
      "id": "custody_unavailable",
      "read": [
        "GET /cashin/{cashin_id}/status",
        "GET /saldo?customer_ref={customer_ref}"
      ],
      "action": "Check the same customer scope, held and available balances and returned release conditions. Total is not withdrawable balance."
    },
    {
      "id": "webhook_missing",
      "read": [
        "GET /webhooks/deliveries",
        "Canonical GET status for the original operation"
      ],
      "action": "Reconcile financial state independently; fix the receiver before retrying the existing delivery. No event in the queue does not prove payment failure."
    },
    {
      "id": "response_lost",
      "read": [
        "GET /cashin/charges?external_id={external_id}",
        "GET /cash-outs?external_id={external_id}",
        "GET /payouts?external_id={external_id}"
      ],
      "action": "Choose the listing matching the flow; preserve the original payload and identifier. Reconcile with backoff. Immediate absence is not proof of rejection."
    },
    {
      "id": "route_unavailable",
      "read": [
        "GET /cashin/catalog",
        "GET /catalog"
      ],
      "action": "Choose the correct catalog. Before payment request an authorized new choice; after payment keep the original operation and escalate."
    },
    {
      "id": "commission_missing",
      "read": [
        "GET /cashin/{cashin_id}/status",
        "GET /comissao",
        "GET /comissao/extrato"
      ],
      "action": "Check the recorded charge fee, settled status and later accounting. Configuration changes are not retroactive."
    },
    {
      "id": "commission_withdrawal_response_lost",
      "read": [
        "GET /cashin/charges?external_id={external_id}",
        "GET /comissao",
        "GET /cashin/{cashin_id}/status"
      ],
      "action": "The interval check precedes reference lookup: a retry can return 429 even after acceptance. Reconcile before another request."
    }
  ],
  "escalation": {
    "contacts": [
      "https://t.me/luniumb2b",
      "https://t.me/luniumb2c"
    ],
    "include": [
      "environment",
      "operation_id",
      "external_id",
      "timestamp_with_timezone",
      "http_status",
      "erro",
      "acao",
      "request_id_if_present",
      "last_status",
      "webhook_event_id_if_relevant"
    ],
    "exclude": [
      "api_key",
      "webhook_secret",
      "monitor_url",
      "full_taxpayer_id",
      "unsanitized_customer_payload"
    ]
  },
  "capability_boundary": {
    "documented_access": "Private read-only monitor and public OpenAPI routes",
    "multi_destination_webhook": "Do not assume available until published in the production contract and validated",
    "source_of_truth": [
      "https://api.luniumpay.com/openapi.json",
      "https://docs.luniumpay.com/manual-contract.json"
    ],
    "snapshot_facts": "Dated measurements are historical, not current availability or guaranteed SLA"
  }
}
