Errores y reintentos

Maneja fallos con códigos estables y conserva la identidad de cada operación.

BilleteError

import { BilleteError } from "@boelabs/billete-sdk";

try {
  await billete.payments.refund(
    "pay_ejemplo",
    {},
    { idempotencyKey: "refund-order-123" },
  );
} catch (error) {
  if (error instanceof BilleteError) {
    // Branch on error.code and retain error.requestId for support.
    // Do not log request bodies or customer information.
  }
  throw error;
}
PropiedadSignificado
typeCategoría del fallo
codeCódigo estable: uno del catálogo (tipo BilleteErrorCode), o network_error e invalid_response del SDK
messageMensaje legible
statusEstado HTTP; 0 cuando no hubo respuesta
paramCampo afectado, si aplica
requestIdReferencia para soporte

Reintentos automáticos

El SDK reintenta errores de red, HTTP 429 y HTTP 5xx hasta maxRetries. Conserva la clave de idempotencia en esos intentos.

Una llamada nueva genera una clave nueva. Para reejecutar la misma operación desde tu aplicación, pasa explícitamente una clave estable.

El tiempo de espera no significa que no se cobró

Si se pierde la respuesta, la operación puede haber llegado al servidor. Consulta el estado y reutiliza la clave de la operación; no crees una devolución o un checkout nuevo a ciegas.

Los errores de configuración al crear el cliente pueden ser TypeError o Error; no todos los fallos son BilleteError.