Saltar al contenido

Referencia

Errores y estados

Todos los errores tienen la misma forma. Aquí ves qué significa cada código, qué hacer y en qué estado puede quedar un documento.

Forma del error#

json
{ "error": { "code": "quota_exceeded", "message": "Tu empresa ya usó los 450 documentos…" }, "request_id": "…" }
  • error.code: código estable, para tu lógica.
  • error.message: texto para mostrar o registrar.
  • error.details: lista de detalles, por ejemplo qué campo está mal.
  • request_id: guárdalo en tus registros. Le sirve a soporte para encontrar el caso.

Códigos y qué hacer#

CódigoEstadoQué hacer
dian_error422El documento quedó registrado y la DIAN lo rechazó o no respondió. No lo emitas otra vez: consulta GET /facturas/{id}. Si reintento_programado tiene fecha, Conta360 lo reenvía solo
quota_exceeded409Se agotó el cupo de documentos del mes. La empresa debe comprar adicionales o cambiar de plan. Avisa en pantalla al cajero
conflict409Usaste la misma Idempotency-Key con otro contenido
invalid_token401Token vencido o integración revocada: pide un token nuevo; si vuelve a fallar, habla con el administrador
insufficient_scope403Falta un alcance. El encabezado X-Required-Scope dice cuál: pídeselo al administrador
rate_limited429Pasaste el límite por minuto. Espera lo que diga Retry-After
invalid_request400Revisa details: dice qué campo está mal

Otros códigos del contrato#

openapi.yaml también define invalid_client, forbidden, not_found, unprocessable y server_error.

Encabezados útiles#

EncabezadoCuándo llega
X-Required-ScopeCon 403 insufficient_scope: el alcance que falta
Retry-AfterCon 429 rate_limited: cuánto esperar antes de reintentar
Idempotent-Replaytrue cuando la respuesta es la repetición de un envío anterior con la misma Idempotency-Key

Estados de un documento#

El campo estado de un documento puede ser:

estadoQué significa
draftBorrador: guardado en Conta360 sin enviarlo a la DIAN
pendingEnviando a la DIAN
validatedValidado por la DIAN
issuedPor definir
rejectedPor definir
errorPor definir
deletedEliminado

Buscar en la documentación