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;
}| Propiedad | Significado |
|---|---|
type | Categoría del fallo |
code | Código estable: uno del catálogo (tipo BilleteErrorCode), o network_error e invalid_response del SDK |
message | Mensaje legible |
status | Estado HTTP; 0 cuando no hubo respuesta |
param | Campo afectado, si aplica |
requestId | Referencia 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.