Errores
Todos los errores comparten la misma forma:
{ "status": 403, "code": "PARTNER_CANNOT_WRITE", "message": "…", "timestamp": "2026-08-19T12:00:00Z", "fieldErrors": {}, "details": {}, "retryable": false}Mapea contra code, no contra message: el mensaje está pensado para leerse y puede
mejorar; el código es contrato.
| Código | Estado | Qué significa | Qué hacer |
|---|---|---|---|
UNAUTHORIZED |
401 | El token no lo emitió Costia a un cliente registrado | Repetir el flujo de autorización |
ACCESS_DENIED |
403 | Falta el scope que pide el endpoint | Pedirlo, o aceptar que la persona lo declinó |
NOT_A_PARTNER_CLIENT |
403 | El cliente no tiene identidad de partner | Registrar el partner |
PARTNER_CANNOT_WRITE |
403 | El partner no tiene dominio verificado | Verificar el dominio |
PARTNER_DISABLED |
403 | El partner está deshabilitado | Nada que puedas arreglar tú |
VALIDATION_ERROR |
400 | El cuerpo incumple una regla | Mirar fieldErrors, que nombra cada campo |
UNKNOWN_LINE_TYPE |
400 | Una línea trae un lineType fuera del conjunto aceptado |
Corregir la línea |
UNKNOWN_QUANTITY_UNIT |
400 | Lo mismo con quantityUnit |
Corregir la línea |
RESOURCE_NOT_FOUND |
404 | No existe esa factura para esta persona | — |
Dos que parecen fallos y no lo son
Sección titulada «Dos que parecen fallos y no lo son»Un 403 al escribir suele ser una decisión. La pantalla de consentimiento no trae
nada premarcado, así que tu cliente pudo entrar sin concederte invoices:write. No es
una avería: es lo que eligió, y se le dijo qué implicaba.
Una factura de otra cuenta es 404, no 403. Decir que un identificador existe pero
pertenece a otra persona ya es decir algo sobre esa persona.
