Saltar al contenido principal

Emisión y Consulta de e-CF

Endpoints para emitir comprobantes fiscales electrónicos, consultar su estado en la DGII, descargar el XML firmado y reintentar emisiones.

Todas las rutas son relativas a https://ecf.facturord.app y requieren el header X-API-Key (ver Autenticación y Ambientes).

OperaciónMétodo y ruta
Emitir e-CFPOST /api/v1/companies/{company_id}/emission/ecf
Consultar estado por Track IDGET /api/v1/companies/{company_id}/emission/invoices/{track_id}/status
Descargar XML firmadoGET /api/v1/companies/{company_id}/emission/documents/{document_id_o_encf}/signed-xml
Reintentar emisiónPOST /api/v1/companies/{company_id}/emission/documents/{document_id}/retry
Anular secuencias (ANECF)POST /api/v1/companies/{company_id}/emission/cancel-ranges

Emitir un e-CF​

Envía la estructura completa del comprobante para que Facturo la firme digitalmente con el certificado de tu empresa y la transmita a la DGII.

POST /api/v1/companies/{company_id}/emission/ecf

Cuerpo de la petición​

CampoTipoRequeridoDescripción
ecfobjectSíEstructura completa del comprobante. Ver Estructura del e-CF.
dgii_envstringNotestecf, certecf o ecf. Ver ambientes.
allow_certification_resetbooleanNoBandera para el proceso de certificación ante la DGII. Por defecto false.
company_idstringNoUUID de la empresa. Ya va en la ruta; se acepta también en el cuerpo.
curl -X POST \
"https://ecf.facturord.app/api/v1/companies/$FACTURO_COMPANY_ID/emission/ecf" \
-H "X-API-Key: $FACTURO_API_KEY" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"dgii_env": "testecf",
"allow_certification_reset": false,
"ecf": {
"Encabezado": {
"Version": "1.0",
"IdDoc": { "...": "..." },
"Emisor": { "...": "..." },
"Comprador": { "...": "..." },
"Totales": { "...": "..." }
},
"DetallesItems": { "Item": [ { "...": "..." } ] }
}
}'

Respuesta​

{
"document_id": "9f1c2d3e-4b5a-6789-0abc-def123456789",
"encf": "E310000000001",
"track_id": "b7a1c3e5-...",
"internal_status": "...",
"dgii_status": "...",
"message": "...",
"signed_xml_path": "...",
"signed_xml": "<?xml version=\"1.0\" encoding=\"utf-8\"?>...",
"qr_url": "https://...",
"security_code": "A1B2C3",
"emission_exact": "..."
}
CampoTipoDescripción
document_idstring | nullUUID del documento en Facturo. Úsalo para reintentos y descargas.
encfstring | nulle-NCF asignado al comprobante (13 caracteres).
track_idstring | nullIdentificador de seguimiento devuelto por la DGII al recibir el documento.
internal_statusstringEstado del documento dentro de Facturo.
dgii_statusstringEstado reportado por la DGII.
messagestring | nullMensaje descriptivo (detalle de errores o validaciones).
signed_xml_pathstring | nullRuta interna del XML firmado.
signed_xmlstring | nullContenido del XML firmado.
qr_urlstring | nullURL del código QR de consulta del comprobante.
security_codestring | nullCódigo de seguridad del e-CF (requerido en la representación impresa).
emission_exactstring | nullFecha y hora exacta de la emisión/firma.
Guarda los identificadores

Persiste document_id, encf y track_id en tu sistema. Los necesitarás para consultar el estado, descargar el XML o reintentar.


Consultar estado por Track ID​

Consulta el estado de recepción y validación en la DGII de un documento ya enviado.

GET /api/v1/companies/{company_id}/emission/invoices/{track_id}/status
curl -X GET \
"https://ecf.facturord.app/api/v1/companies/$FACTURO_COMPANY_ID/emission/invoices/$TRACK_ID/status" \
-H "X-API-Key: $FACTURO_API_KEY" \
-H "Accept: application/json"

Respuesta​

{
"track_id": "b7a1c3e5-...",
"invoice_number": "E310000000001",
"dgii_status": "...",
"internal_status": "...",
"last_status": "...",
"last_updated_at": "..."
}
CampoTipoDescripción
track_idstringTrack ID consultado.
invoice_numberstring | nullNúmero del comprobante asociado.
dgii_statusstringEstado reportado por la DGII.
internal_statusstringEstado del documento en Facturo.
last_statusstringÚltimo estado registrado.
last_updated_atstringFecha y hora de la última actualización.
Procesamiento asíncrono

La DGII procesa los comprobantes de forma asíncrona. Si el estado aún no es definitivo, vuelve a consultar con un intervalo creciente (por ejemplo 2 s, 4 s, 8 s…) en lugar de consultar en un bucle continuo.


Descargar el XML firmado​

Obtiene el XML firmado digitalmente de un documento emitido. Puedes identificar el documento por su UUID (document_id) o por su e-NCF de 13 caracteres.

GET /api/v1/companies/{company_id}/emission/documents/{document_id_o_encf}/signed-xml

Parámetros de consulta​

ParámetroTipoDescripción
downloadbooleantrue para recibir el archivo como adjunto (Content-Disposition: attachment).
dgii_envstringAmbiente DGII. Útil al buscar por e-NCF, ya que el mismo número puede existir en varios ambientes.
curl -X GET \
"https://ecf.facturord.app/api/v1/companies/$FACTURO_COMPANY_ID/emission/documents/E310000000001/signed-xml?download=true&dgii_env=testecf" \
-H "X-API-Key: $FACTURO_API_KEY" \
-o E310000000001.xml

La respuesta es el contenido XML en bruto (no JSON).


Reintentar una emisión​

Reintenta la emisión de un documento que quedó pendiente o falló (por ejemplo, por indisponibilidad temporal de la DGII). No lleva cuerpo.

POST /api/v1/companies/{company_id}/emission/documents/{document_id}/retry
curl -X POST \
"https://ecf.facturord.app/api/v1/companies/$FACTURO_COMPANY_ID/emission/documents/$DOCUMENT_ID/retry" \
-H "X-API-Key: $FACTURO_API_KEY" \
-H "Accept: application/json"

Respuesta​

CampoTipoDescripción
document_idstring | nullUUID del documento.
document_type_codestring | nullTipo de e-CF (31, 32, …).
encfstring | nulle-NCF del documento.
track_idstring | nullNuevo Track ID asignado por la DGII.
internal_statusstring | nullEstado en Facturo.
dgii_statusstring | nullEstado en la DGII.
messagestring | nullMensaje descriptivo.
signed_xml_pathstring | nullRuta interna del XML firmado.
signed_xmlstring | nullContenido del XML firmado.
qr_urlstring | nullURL del código QR.
signature_codestring | nullCódigo de seguridad de la firma.
signature_datetimestring | nullFecha y hora de la firma.
created_atstring | nullFecha de creación del documento.
total_amountnumber | nullMonto total del comprobante.

Próximos pasos​