Estados internos del e-CF¶
Nuestra API expone su propio vocabulario de estados, que cubre el ciclo completo: la recepción en la API, la transmisión a la DGII, la resolución de ésta y los fallos del sistema. Cada estado se devuelve como tres campos:
| Campo | Para qué sirve |
|---|---|
status_code |
Número estable: no se reordena ni se reutiliza. Úselo si guarda el estado en su BD. |
status |
Slug técnico. Úselo en su código: es autoexplicativo. |
status_description |
Texto en español, listo para mostrar al usuario final. |
Consulte el catálogo vivo en GET /api/v1/statuses.
Catálogo¶
| Código | Slug | Nombre | ¿Final? | ¿Validez fiscal? | Descripción |
|---|---|---|---|---|---|
| 1 | received |
Recibido | No | No | El e-CF fue recibido, validado y encolado para su envío a la DGII. Ya tiene e-NCF asignado. |
| 2 | rejected_validation |
Rechazado en validación | Sí | No | No superó las validaciones previas al envío; no se transmitió y el e-NCF no fue consumido. |
| 3 | in_process_dgii |
En proceso en la DGII | No | No | Transmitido; la DGII devolvió TrackID pero aún no resuelve. Se consulta automáticamente. |
| 4 | accepted_dgii |
Aceptado | Sí | Sí | La DGII aceptó el e-CF: tiene validez fiscal. |
| 5 | conditionally_accepted_dgii |
Aceptado condicional | Sí | Sí | Aceptado con observaciones que no ameritan rechazo. Tiene validez fiscal, pero corrija para envíos futuros. |
| 6 | rejected_dgii |
Rechazado por la DGII | Sí | No | Rechazado: el comprobante es nulo para fines tributarios. |
| 7 | not_found_dgii |
No encontrado en la DGII | No | No | La DGII aún no encuentra el TrackID. Es transitorio. |
| 8 | unresolved |
Sin resolución | Sí | No | Se agotaron las consultas sin que la DGII resolviera. Requiere revisión manual. |
| 9 | system_error |
Error del sistema | No | No | Error interno al construir, firmar o transmitir. No es un rechazo de la DGII; se reintenta. |
Transiciones¶
┌──────────────────────── 2 rejected_validation (fin, e-NCF no consumido)
│
(POST) ──► 1 received ─┤
│ ┌──► 4 accepted_dgii (fin, válido) ──► PDF
└─► 3 in_process_dgii ──┼──► 5 conditionally_accepted_dgii (fin, válido) ──► PDF
▲ │ ├──► 6 rejected_dgii (fin, nulo)
│ │ └──► 8 unresolved (fin, revisión manual)
│ └──► 7 not_found_dgii ──┐
└───────────────────────────────┘ (se reconsulta)
cualquier punto ──► 9 system_error ──► (reintento automático) ──► vuelve al flujo
Cómo tratar cada estado en su integración¶
| Si recibe | Qué debe hacer |
|---|---|
received (1) |
Guarde el e_ncf. No reenvíe el comprobante. Consulte el estado más tarde. |
rejected_validation (2) |
Corrija el JSON según errors y reenvíe. No perdió el número de secuencia. |
in_process_dgii (3) / not_found_dgii (7) |
Espere y vuelva a consultar. Son transitorios. |
accepted_dgii (4) / conditionally_accepted_dgii (5) |
El comprobante es válido: ya puede entregarlo. Con el 5, revise errors y corrija para el futuro. |
rejected_dgii (6) |
El comprobante es nulo. Revise errors; si sequence_reusable es true, puede reutilizar el e-NCF. |
unresolved (8) |
Contáctenos: requiere revisión manual. |
system_error (9) |
Nada: se reintenta automáticamente. Si persiste, contáctenos. |
Relación con los códigos de la DGII¶
La DGII devuelve su propio código en la consulta de resultado. Nosotros lo traducimos:
| Código DGII | Estado DGII | Nuestro estado |
|---|---|---|
| 0 | No encontrado | 7 not_found_dgii |
| 1 | Aceptado | 4 accepted_dgii |
| 2 | Rechazado | 6 rejected_dgii |
| 3 | En Proceso | 3 in_process_dgii |
| 4 | Aceptado Condicional | 5 conditionally_accepted_dgii |
Los estados 1, 2, 8 y 9 son nuestros: describen etapas que la DGII no conoce (recepción en la API, rechazo por nuestras validaciones, agotamiento de consultas y fallos internos).