Saltar a contenido

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.

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 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 La DGII aceptó el e-CF: tiene validez fiscal.
5 conditionally_accepted_dgii Aceptado condicional Aceptado con observaciones que no ameritan rechazo. Tiene validez fiscal, pero corrija para envíos futuros.
6 rejected_dgii Rechazado por la DGII 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 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).