Volver al Blog
10 min
Contingencia Offline DIAN: Cumplimiento Real con Resolución 000042
Análisis técnico de la contingencia offline nativa: generación de CUFE local XAdES-BES, cola persistente, sincronización automática. Cómo garantizar cero facturas perdidas.
EdAAEquipo de Arquitectura AuroraFE
Qué Dice la Resolución 000042
La Resolución 000042 de 2020 establece que los facturadores electrónicos deben contar con mecanismos de contingencia que permitan:
- Generar facturas electrónicas sin conexión a internet
- Firmar digitalmente con certificado propio (XAdES-BES)
- Generar CUFE válido con sello de fecha/hora local
- Transmitir a la DIAN al recuperar conectividad
Arquitectura de Contingencia Nativa AuroraFE
1. Generación CUFE Offline
// Algoritmo CUFE (SHA-384)
const cufe = SHA384(
nitEmisor + tipoDocumento + prefijo + consecutivo +
fechaHoraLocal + nitAdquiriente + valorTotal + valorImpuestos +
hashFacturaAnterior + algoritmoHash
).toUpperCase();
2. Firma XAdES-BES Local
- Firma enveloped + enveloping signature
- Certificado X.509 v3 embebido
- Sello de tiempo local (RFC 3161 opcional)
- Validación de unicidad antes de guardar
3. Cola Persistente PostgreSQL
CREATE TABLE facturas_contingencia (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
empresa_id UUID NOT NULL REFERENCES empresas(id),
xml_firmado XML NOT NULL,
cufe VARCHAR(100) UNIQUE NOT NULL,
estado VARCHAR(20) DEFAULT 'pendiente',
intentos INT DEFAULT 0,
ultima_intento TIMESTAMP,
creado_en TIMESTAMP DEFAULT NOW(),
transmitido_en TIMESTAMP
);
CREATE INDEX idx_contingencia_estado ON facturas_contingencia(estado)
WHERE estado IN ('pendiente', 'reintentando');
4. Sincronización Automática
Worker BullMQ/Redis que ejecuta cada 5 minutos:
- Verifica conectividad DIAN (health check endpoint)
- Si OK: toma lote de 100 facturas pendientes
- Transmite secuencialmente con reintentos exponenciales
- Actualiza estado: transmitido / error_permanente
- Notifica via webhook: contingencia.sincronizada
Casos de Uso Reales
- Caída DIAN 4 horas: 2,400 facturas en contingencia, 100% sincronizadas
- Corte de fibra 2 días: 12,000 facturas, cero pérdidas
- Mantenimiento programado DIAN: Transparente para operación
Validación de Cumplimiento
- ✅ CUFE generado localmente con SHA-384
- ✅ Firma XAdES-BES válida según esquemas DIAN
- ✅ Sello de fecha/hora local auditable
- ✅ Cola persistente ACID (PostgreSQL)
- ✅ Sincronización automática sin intervención manual
- ✅ Trazabilidad completa: hash encadenado en auditoría