Módulo de Odoo 19 para la gestión completa de facturación electrónica según normativa DGII de República Dominicana.
- 10 tipos de comprobantes según normativa DGII
- Múltiples tipos por diario - Un diario puede emitir varios tipos de comprobantes
- Selección inteligente automática - El sistema elige el tipo correcto según el contexto
- Generación automática de e-NCF en formato:
E310000000005(13 caracteres)- E = Serie electrónica (1 carácter)
- 31 = Tipo de comprobante (2 dígitos)
- 0000000005 = Secuencial (10 dígitos)
- Validación de rangos autorizados
- Control de vencimiento y agotamiento
- Gestión completa de rangos autorizados por DGII
- Validaciones automáticas (solapamiento, vencimiento, agotamiento)
- Locking para evitar duplicados en ambientes concurrentes
- Alertas de vencimiento próximo
- Estadísticas de uso en tiempo real
- Integración con API de Megaplus (https://rnc.megaplus.com.do)
- Autocompletado de datos del contribuyente
- Verificación de estado en DGII
- Detección de facturadores electrónicos
Antes de generar e-NCF:
- ✓ Factura confirmada (posted)
- ✓ Tipo e-CF configurado en diario
- ✓ Establecimiento y punto de emisión válidos (3 dígitos)
- ✓ Cliente con RNC/Cédula
- ✓ Rango activo y disponible
- ✓ Fecha de vencimiento vigente
| Código | Descripción |
|---|---|
| 31 | Factura de Crédito Fiscal Electrónica |
| 32 | Factura de Consumo Electrónica |
| 33 | Nota de Débito Electrónica |
| 34 | Nota de Crédito Electrónica |
| 41 | Comprobante Electrónico de Compras |
| 43 | Comprobante Electrónico para Gastos Menores |
| 44 | Comprobante Electrónico para Regímenes Especiales |
| 45 | Comprobante Electrónico Gubernamental |
| 46 | Comprobante Electrónico para Exportaciones |
| 47 | Comprobante Electrónico para Pagos al Exterior |
- Copiar el módulo en la carpeta
addonsde Odoo - Actualizar la lista de aplicaciones
- Instalar "DGII - Facturación Electrónica RD"
- Configurar Ajustes → DGII e-CF con URL base, API Key y ambiente
Ir a: Contabilidad → Configuración → Diarios
En la pestaña "DGII - Facturación Electrónica":
- Seleccionar Tipos e-CF (puede seleccionar múltiples tipos)
- Ejemplo para diario de ventas: 31 (Crédito Fiscal), 32 (Consumo), 33 (Nota Débito), 34 (Nota Crédito)
- Ejemplo para diario gubernamental: 45 (Gubernamental), 33 (Nota Débito), 34 (Nota Crédito)
- Ingresar Establecimiento (3 dígitos, ej: 005)
- Ingresar Punto de Emisión (3 dígitos, ej: 001)
Selección Automática de Tipo: El sistema seleccionará automáticamente el tipo correcto al facturar:
- Cliente con RNC → Tipo 31 (Factura de Crédito Fiscal)
- Cliente sin RNC → Tipo 32 (Factura de Consumo)
- Nota de Crédito → Tipo 34
- Nota de Débito → Tipo 33
Ir a: DGII República Dominicana → Configuración → Rangos e-NCF
Crear un nuevo rango:
- Nombre: Descripción del rango
- Tipo e-CF: Debe coincidir con el diario
- Establecimiento: 3 dígitos (ej: 005)
- Punto de Emisión: 3 dígitos (ej: 001)
- Secuencia Desde: Número inicial autorizado
- Secuencia Hasta: Número final autorizado
- Fecha Vencimiento: Fecha de expiración del rango
- Diarios: Seleccionar los diarios que pueden usar este rango
Hacer clic en Activar
En el formulario de contacto:
- Ingresar el RNC en el campo VAT
- Hacer clic en Validar RNC / Autocompletar
- Los datos se completarán automáticamente desde DGII
Al confirmar una factura, el e-NCF se genera automáticamente si:
- El diario tiene configuración DGII completa
- Existe un rango activo y válido
- El cliente tiene RNC
Si la factura no tiene e-NCF:
- Abrir la factura confirmada
- Hacer clic en Generar e-NCF
(Pendiente de implementación según especificaciones de API DGII)
- Factura debe tener e-NCF generado
- Hacer clic en Enviar a DGII
odoo_dgii_ecf/
├── __init__.py
├── __manifest__.py
├── models/
│ ├── __init__.py
│ ├── dgii_ecf_sequence_range.py # Modelo de rangos e-NCF
│ ├── account_journal.py # Extensión de diarios
│ ├── account_move.py # Extensión de facturas
│ └── res_partner.py # Extensión de contactos
├── views/
│ ├── dgii_ecf_sequence_range_views.xml
│ ├── account_journal_views.xml
│ ├── account_move_views.xml
│ └── res_partner_views.xml
├── data/
│ └── ir_cron.xml # Cron job para vencimientos
├── security/
│ └── ir.model.access.csv # Permisos de acceso
└── static/
└── description/
└── icon.png
- Usuarios de Facturación: Lectura de rangos
- Contadores: Lectura, escritura y creación de rangos
- Gestores Contables: Control total (incluye eliminación)
- Frecuencia: Diario
- Función: Marca rangos vencidos automáticamente
- Hora: Se ejecuta según configuración del sistema
- Cron
DGII: Actualizar Estados de e-CFcada 15 minutos para facturas con trackID. - Botón Consultar Estado DGII en la factura refresca de inmediato.
E + TipoECF(2) + Secuencial(10)
Ejemplo: E310000000005
- E: Prefijo electrónico
- 31: Factura de Crédito Fiscal
- 0000000005: Secuencia (10 dígitos con padding)
- Configurar desde Ajustes → DGII e-CF:
- URL base del microservicio, ej.
http://localhost:3000/api - API Key (opcional)
- Ambiente:
test|cert|prod
- URL base del microservicio, ej.
- Botones en factura:
- Generar e-NCF: genera el comprobante si está posteada.
- Enviar a DGII: firma/envía vía microservicio y guarda
trackId, estado, XML firmado, código de seguridad y QR. - Consultar Estado: refresca el estado con DGII usando el
trackId.
- Cron automático
DGII: Actualizar Estados de e-CFcada 15 minutos para facturas pendientes. - Se almacena mensaje DGII y respuesta JSON para auditoría.
El módulo implementa locking pesimista (FOR UPDATE NOWAIT) en la obtención de secuencias para evitar duplicados en entornos multi-usuario.
URL: https://rnc.megaplus.com.do/api/consulta?rnc=<RNC>
Campos mapeados:
- Nombre comercial
- Actividad económica
- Régimen de pagos
- Estado en DGII
- Administración local
- Facturador electrónico
- Ajustar payloads específicos RFCE/ACECF/ANECF según contrato final del microservicio
- Firma digital de e-NCF (delegada al microservicio) VER EL MICROSERVICIO https://github.com/ithesk/l10n_do_e_cf_tests
- Generación de XML según esquema DGII (delegada al microservicio)
- Reportes estadísticos DGII
Para soporte técnico o reportar errores, contactar al equipo de desarrollo.
LGPL-3
itheskdev- 2025