Errores
Todos los errores tienen el mismo formato:
{ "error": { "code": "invalid_request", "message": "buyer.id: La cédula no es válida", "field": "buyer.id" }}codees estable: úsalo en tu código. Elmessagepuede cambiar de redacción.fielddice qué campo del body falló, cuando aplica.- Algunos errores traen datos extra, por ejemplo
limit,currentyaddon_offeren los de límites.
Códigos
Sección titulada «Códigos»| Código | HTTP | Qué hacer |
|---|---|---|
invalid_request |
400 | El body no cumple el contrato. Mira field y message. |
invalid_id |
400 | Un id no tiene el formato esperado (inv_…, iss_…). |
issuer_not_found |
400 | El emisor no existe en tu cuenta. |
emission_point_not_found |
400 | El emisor no tiene ese punto de emisión. |
missing_api_key / invalid_api_key |
401 | Revisa la key. |
quota_exceeded |
402 | Se acabaron los comprobantes del mes. Ver límites. |
plan_limit_reached |
403 | Tu plan no permite crear más (emisores, miembros…) o no incluye esa función. |
issuer_not_live |
403 | Usaste una sk_live_ con un emisor que todavía no pasó a producción. |
not_found |
404 | No existe, o es de otro ambiente. |
idempotency_in_progress |
409 | La misma Idempotency-Key sigue en curso. |
invoice_already_voided |
409 | La factura ya estaba anulada. |
invoice_voided |
409 | No se puede hacer una nota de crédito sobre una factura anulada. |
issuer_certificate_missing |
422 | El emisor no tiene un certificado de firma vigente. |
idempotency_key_reused |
422 | Usaste la misma Idempotency-Key con otro body. |
credit_exceeds_invoice |
422 | Las notas de crédito superarían el total de la factura. |
rate_limited |
429 | Espera lo que diga Retry-After. |
internal_error |
500 | Un error nuestro. Reintenta; si sigue, escríbenos con la hora y el endpoint. |
Errores del SRI
Sección titulada «Errores del SRI»Si el SRI rechaza un comprobante, la petición no falla: la factura pasa a rejected y sus sri_messages traen el código y el mensaje del SRI (por ejemplo 45: secuencial registrado, o 65: fecha de emisión extemporánea). Te llega el webhook invoice.rejected.
