Primer comprobante
Con una API key en mano (ver Autenticación rápida), emitir un comprobante es una sola llamada.
-
Arma el payload. Este ejemplo emite una Factura de Crédito Fiscal Electrónica (tipo 31), la más común entre negocios:
{"type": 31,"incomeType": "01","internalNumber": "FAC-2026-00042","buyer": {"rnc": "131880681","name": "Mi Cliente SRL","email": "pagos@micliente.do"},"payment": {"condition": "credit","dueDate": "15-03-2026","methods": [{ "type": "check_transfer", "amount": 2360.0 }]},"lines": [{"name": "Servicio de consultoría","kind": "service","quantity": 1,"unitOfMeasure": "43","unitPrice": 2000.0,"itbisRate": 1}]}type,buyer,paymentylinesson lo mínimo. NovaFE calcula los totales, asigna el e-NCF y arma el resto del XML: no mandas RNC emisor, secuencia ni totales. -
Envíalo a
POST /api/v1/ecf:Ventana de terminal curl -X POST https://api.novafe.example/api/v1/ecf \-H "X-API-Key: $NOVAFE_API_KEY" \-H "Content-Type: application/json" \-H "Idempotency-Key: $(uuidgen)" \-d @comprobante.jsonEl header
Idempotency-Keyes opcional pero recomendado: si el request se repite con la misma clave y el mismo cuerpo, NovaFE devuelve la respuesta original en vez de emitir dos veces. -
NovaFE intenta resolver el estado fiscal dentro del propio request (unos 8 segundos). Si la DGII tarda más, la respuesta llega de todas formas con un estado intermedio y un worker de fondo termina el seguimiento:
{"id": "018f...","type": 31,"status": "accepted","encf": "E310000000042","issueDate": "10-01-2026"} -
Confirma el resultado final por webhook o consultando
GET /api/v1/ecf/{id}.