Facturación electrónica en República Dominicana¶
Emita comprobantes fiscales electrónicos (e-CF) ante la DGII desde su sistema, sin implementar el estándar.
Usted envía un JSON —o su propio XML, si ya lo genera—. Nosotros construimos el documento, lo firmamos digitalmente, lo transmitimos a la DGII, resolvemos su estado y generamos la representación impresa.
-
Autenticación, ciclo de vida, cómo responde la API (éxitos y errores) y convenciones del JSON.
-
Los diez e-CF del estándar, cada uno con sus reglas y un ejemplo que funciona.
-
Si ya construye el e-CF, mándelo tal cual: lo firmamos y lo transmitimos.
-
La DGII le exige poder recibir e-CF de sus proveedores. Eso lo resolvemos nosotros.
Su primer e-CF, en tres pasos¶
1. Autentíquese. Su token identifica a su integración, y cada llamada dice en
nombre de qué empresa actúa con el RNC que ella misma declara (emisor.rnc en el JSON; la API comprueba que su token
esté habilitado para esa empresa). Vea
tokens, empresas y permisos.
2. Envíe el comprobante. Una factura de crédito fiscal (tipo 31) mínima:
curl -X POST https://endpoint-test.emision.do/api/v1/documents/31 \
-H "Authorization: Bearer <su-token>" \
-H "Content-Type: application/json" \
-d '{
"emisor": { "rnc": "<su-rnc>" },
"comprador": { "rnc": "131880738", "razon_social": "COMERCIO, SRL" },
"id_doc": {
"e_ncf": "E310000000001",
"fecha_vencimiento_secuencia": "31-12-2028",
"indicador_monto_gravado": 0,
"tipo_ingresos": "01",
"tipo_pago": "1",
"formas_pago": [ { "forma": "1", "monto": 1180.00 } ]
},
"items": [ {
"nombre": "Producto A", "cantidad": 1, "unidad_medida": "43",
"precio_unitario": 1000.00, "monto": 1000.00,
"indicador_facturacion": 1, "indicador_bien_servicio": "1"
} ],
"totales": {
"monto_gravado_total": 1000.00, "itbis1": 18, "total_itbis": 180.00,
"monto_total": 1180.00, "monto_gravado_i1": 1000.00, "total_itbis1": 180.00
}
}'
El e-NCF lo numera su sistema y viaja en id_doc.e_ncf (numeración). La
respuesta 202 confirma que lo recibimos y validamos; el envío a la DGII ocurre en segundo plano.
{
"status": "success",
"message": "e-CF recibido y encolado para envío a la DGII.",
"document": {
"document_id": 1234,
"ecf_type_code": "31",
"e_ncf": "E310000000001",
"identificador": "<su-rnc>E310000000001",
"status_code": 1,
"status": "received"
}
}
Toda respuesta de la API —un éxito o un error— tiene esa misma forma: status (success o error), message y
una sola carga (document si habla de un e-CF suyo, data en lo demás). Si algo falla, el porqué está en
data.detalle o, en la validación de un comprobante, en document.errors
(cómo responde la API).
3. Consulte el resultado.
curl "https://endpoint-test.emision.do/api/v1/documents/133802074E310000000001" \
-H "Authorization: Bearer <su-token>"
El identificador es el RNC de su empresa seguido del e-NCF (cómo se arma).
Cuando la DGII resuelve, el estado pasa a accepted_dgii, el comprobante tiene validez fiscal y la misma
respuesta trae su XML firmado y su PDF en base64 (archivos).
Los ejemplos de esta documentación funcionan
Todos se envían contra la API en cada ejecución de la suite de pruebas. Si alguno dejara de ser válido, la compilación falla. Puede copiarlos tal cual.
Qué no tiene que hacer usted¶
| Construir el XML | Lo generamos desde su JSON, conforme al XSD de la DGII. |
| Firmar digitalmente | Con su certificado o con el nuestro, según cómo esté configurado. |
| Reintentar ante la DGII | Sondeamos el resultado con reintentos progresivos. |
| Montar el servicio de recepción | Exponemos los servicios que el estándar exige y respondemos el acuse firmado. |
| Generar la representación impresa | Se genera al aceptarse, con su código QR. |
Los diez tipos de comprobante¶
| Tipo | Documento | Cuándo se usa |
|---|---|---|
| 31 | Factura de Crédito Fiscal | Ventas a contribuyentes (B2B) |
| 32 | Factura de Consumo | Ventas a consumidor final (B2C) |
| 33 | Nota de Débito | Aumenta el valor de un comprobante |
| 34 | Nota de Crédito | Anula, corrige o disminuye |
| 41 | Compras | Compras a quien no emite e-CF |
| 43 | Gastos Menores | Caja chica |
| 44 | Regímenes Especiales | Zonas francas, diplomáticos |
| 45 | Gubernamental | Ventas al Estado |
| 46 | Exportaciones | Ventas al exterior |
| 47 | Pagos al Exterior | Con retención de ISR |