{
  "revision": "2026-09-19.3",
  "api_version": "1.34.0",
  "manual": "https://docs.luniumpay.com/es/manual#incidentes",
  "authority": "Guía para investigar y conciliar en modo de solo lectura. No autoriza escrituras financieras, cambios de tarifas ni rotaciones de credenciales.",
  "rules": [
    "Guarda la intención y external_id antes de enviar una solicitud financiera.",
    "Un resultado desconocido no es un fallo. Nunca crees una intención financiera nueva solo para eliminar una alerta.",
    "Usa aislamiento por proyecto y entorno; minimiza los datos personales.",
    "Lee los mínimos, las tarifas y la disponibilidad actuales de la ruta. Nunca cambies silenciosamente el destinatario, el activo ni la red."
  ],
  "cases": [
    {
      "id": "paid_crypto_pending",
      "read": [
        "GET /cashin/{cashin_id}/status"
      ],
      "success": "status == paid Y settlement_status == sent",
      "action": "Sigue la operación original; escala failed, incerto o una ausencia persistente de progreso. No envíes una segunda transferencia."
    },
    {
      "id": "custody_unavailable",
      "read": [
        "GET /cashin/{cashin_id}/status",
        "GET /saldo?customer_ref={customer_ref}"
      ],
      "action": "Comprueba el mismo ámbito del cliente, los saldos retenidos y disponibles y las condiciones de liberación devueltas. El total no es el saldo retirable."
    },
    {
      "id": "webhook_missing",
      "read": [
        "GET /webhooks/deliveries",
        "Estado GET canónico de la operación original"
      ],
      "action": "Concilia el estado financiero de forma independiente; corrige el receptor antes de reintentar la entrega existente. La ausencia de eventos en la cola no demuestra un fallo de pago."
    },
    {
      "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": "Elige la lista correspondiente al flujo; conserva el payload y el identificador originales. Concilia con espera progresiva. La ausencia inmediata no demuestra un rechazo."
    },
    {
      "id": "route_unavailable",
      "read": [
        "GET /cashin/catalog",
        "GET /catalog"
      ],
      "action": "Elige el catálogo correcto. Antes del pago, solicita una elección nueva autorizada; después del pago, conserva la operación original y escala el caso."
    },
    {
      "id": "commission_missing",
      "read": [
        "GET /cashin/{cashin_id}/status",
        "GET /comissao",
        "GET /comissao/extrato"
      ],
      "action": "Comprueba la tarifa registrada de la solicitud de cobro, el estado de liquidación y la contabilización posterior. Los cambios de configuración no son retroactivos."
    },
    {
      "id": "commission_withdrawal_response_lost",
      "read": [
        "GET /cashin/charges?external_id={external_id}",
        "GET /comissao",
        "GET /cashin/{cashin_id}/status"
      ],
      "action": "La comprobación del intervalo precede a la búsqueda de la referencia: un reintento puede devolver 429 incluso después de aceptar. Concilia antes de otra solicitud."
    }
  ],
  "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": "Monitor privado de solo lectura y rutas públicas de OpenAPI",
    "multi_destination_webhook": "No presupongas su disponibilidad hasta que esté publicado en el contrato de producción y validado",
    "source_of_truth": [
      "https://api.luniumpay.com/openapi.json",
      "https://docs.luniumpay.com/es/manual-contract.json"
    ],
    "snapshot_facts": "Las mediciones con fecha son históricas, no indican disponibilidad actual ni un SLA garantizado"
  }
}
