e-CF 44 — Comprobante de Regímenes Especiales Electrónico¶
El emisor.rnc del cuerpo dice de qué empresa es el comprobante y, a la vez, en nombre de quién se emite: la API
comprueba que su token esté habilitado para esa empresa (cómo funciona).
Ampara ventas a contribuyentes acogidos a regímenes especiales de tributación —zonas francas, diplomáticos, organismos internacionales, proyectos con exención otorgada—, cuyas operaciones están exentas de ITBIS.
Particularidades¶
| Aspecto | Regla |
|---|---|
| Numeración | id_doc.e_ncf (E44 + 10 dígitos) y id_doc.fecha_vencimiento_secuencia (dd-MM-aaaa) obligatorios: la numeración la lleva su sistema. Ver numeracion.md. |
| ITBIS | No lleva. En totales no existen montos gravados ni ITBIS. |
totales |
monto_exento, monto_total y, opcionalmente, impuestos_adicionales. |
indicador_facturacion de los ítems |
4 (exento). También se admite 0 (no facturable). |
| Comprador | razon_social obligatoria. La identificación es opcional: rnc o identificador_extranjero. |
| Retenciones | No lleva bloque de retención por ítem. |
| Descuentos y recargos | Sin indicador_norma_1007. |
| Líneas de detalle | Máximo 1.000. |
Aunque el XSD de la DGII admite otros valores en el indicador de facturación, en este tipo lo coherente es
4: la operación está exenta por el régimen del comprador.
Ejemplo¶
Venta de materia prima a una empresa de zona franca.
{
"emisor": {
"rnc": "133802074"
},
"comprador": {
"rnc": "131880738",
"razon_social": "ZONA FRANCA INDUSTRIAL, SRL"
},
"id_doc": {
"e_ncf": "E440000000001",
"fecha_vencimiento_secuencia": "31-12-2028",
"tipo_ingresos": "01",
"tipo_pago": "1",
"formas_pago": [
{ "forma": "1", "monto": 5000.0 }
]
},
"items": [
{
"nombre": "Materia prima",
"cantidad": 10,
"unidad_medida": "43",
"precio_unitario": 500.0,
"monto": 5000.0,
"indicador_facturacion": 4,
"indicador_bien_servicio": "1"
}
],
"totales": {
"monto_exento": 5000.0,
"monto_total": 5000.0
}
}
Archivo: ejemplos/ecf-44-minimo.json
TrackID. La respuesta
202siempre traetrack_id: null: la transmisión ocurre después, en segundo plano. Al transmitirse, este tipo completo recibe su TrackID y el documento pasa ain_process_dgii(dónde aparece el TrackID).
Errores frecuentes¶
Cada mensaje llega en un 422 dentro de document.errors (y, por campo, en document.detailed_errors); la forma completa está en Cómo responde la API.
| Mensaje | Causa |
|---|---|
| El campo monto gravado total no está permitido. | En el 44 la operación es exenta: use monto_exento. |
| El campo razón social del comprador es obligatorio. | Es el único dato del comprador que no puede faltar. |
| El monto total (…) no cuadra… | Debe ser monto_exento más los impuestos adicionales, si los hay. |