Ir al contenido

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"
}
}
  • code es estable: úsalo en tu código. El message puede cambiar de redacción.
  • field dice qué campo del body falló, cuando aplica.
  • Algunos errores traen datos extra, por ejemplo limit, current y addon_offer en los de límites.
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.

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.