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 code
8 console.log(e.field); // "items[].sku" — qué corregir
9 console.log(e.suggestions); // pistas accionables
10 console.log(e.action); // qué hacer a continuación
11 }
12 throw e;
13}

Tabla de códigos

codeacción
VALIDATION_ERRORCorrige el payload (revisa field) y reintenta. Usa preview antes de emit.
UNAUTHORIZEDRevisa la API key del tenant.
FORBIDDENLa empresa no coincide con el tenant autenticado.
NOT_FOUNDVerifica IDs de factura, PDV o empresa.
CONFLICTLa factura aún no tiene XML o el sector no admite ese canal.
INTERNALReintenta con la misma idempotencyKey; si persiste, contacta soporte.

Cada error trae además `field` (qué dato corregir), `sugerencias` y `accion` en texto explicativo.