Simulación, habilitación y producción
Qué acredita cada ambiente, qué requisitos reales exige la habilitación y por qué producción sigue cerrada.
Simulación
- Resultados ficticios:
dian.status: validatedcon códigoSIMULATION_ONLY. No acredita validación DIAN. - No usa certificado ni firma: el XML es una vista previa sin firmar.
- No genera consumo comercial (
not_billable). - Sirve para integrar tu código: idempotencia, consultas, errores, webhooks y descargas.
Habilitación (qualification)
Envía los documentos al ambiente de pruebas de la DIAN. Antes de emitir, la empresa necesita requisitos reales que GET /v1/company/readiness muestra uno por uno:
| Requisito | Cómo se cumple |
|---|---|
| Identidad y autoridad | Verificadas por un operador de Trifaco fuera del canal de emisión (ver Incorporación). |
| Certificado de firma | Carga, verificación técnica y activación. |
| Autorización de firma | POST /v1/signing-authorizations con evidencia revisada. |
| Configuración de software DIAN | POST /v1/qualification-xml-configurations; cifra los secretos técnicos. |
| Numeración | POST /v1/numbering-ranges con resolución y fechas; se declara, no se verifica contra la DIAN. |
Sin autorización de firma vigente, la admisión responde SIGNING_AUTHORIZATION_BLOCKED. Una admisión aceptada se transmite a la DIAN: no la uses para pruebas de carga.
El procedimiento completo de habilitación, con certificado y configuración propios, está en la guía de la cola de habilitación y se ejecuta con npm run dev:qualification. Los casos fiscales admitidos están en la matriz fiscal.
Un resultado validated en habilitación acredita el caso probado en el ambiente de pruebas. No equivale a conformidad DIAN completa ni habilita producción.
Producción
Deshabilitada. Las credenciales de producción reciben 403 ENVIRONMENT_DISABLED. La activación por empresa requiere controles que aún no existen (cobro, facturación propia, retención, modalidad comercial). No construyas flujos que asuman una fecha de producción.
Qué observar en un documento
Lee cada dimensión por separado en GET /v1/documents/{id}:
| Campo | Significado |
|---|---|
processing_status | Avance interno. completed puede acompañar un rechazo: lee siempre el resultado DIAN. |
dian.status | Resultado fiscal. unknown exige conciliación: no es rechazo y nunca autoriza por sí solo otra emisión. |
delivery_status | Entrega al comprador (ver Entrega). |
| cobro | Consumo comercial; en simulación y habilitación no hay consumo productivo. |