Operar
Errores accionables
Programa contra code. message y sugerencias pueden evolucionar sin romper el contrato.
index.ts
1import { SupayError } from "@supay/sdk";2 3try {4 await supay.invoices.emit({ pointOfSaleId: POS_ID, customer, items });5} catch (e) {6 if (e instanceof SupayError) {7 console.log(e.code); // "VALIDATION_ERROR" — programa contra code8 console.log(e.field); // "items[].sku" — qué corregir9 console.log(e.suggestions); // pistas accionables10 console.log(e.action); // qué hacer a continuación11 }12 throw e;13}Tabla de códigos
| code | acción |
|---|---|
| VALIDATION_ERROR | Corrige el payload (revisa field) y reintenta. Usa preview antes de emit. |
| UNAUTHORIZED | Revisa la API key del tenant. |
| FORBIDDEN | La empresa no coincide con el tenant autenticado. |
| NOT_FOUND | Verifica IDs de factura, PDV o empresa. |
| CONFLICT | La factura aún no tiene XML o el sector no admite ese canal. |
| INTERNAL | Reintenta con la misma idempotencyKey; si persiste, contacta soporte. |
Cada error trae además `field` (qué dato corregir), `sugerencias` y `accion` en texto explicativo.