Reintenta el envío de un comprobante a la DGII
const url = 'https://api.novafe.example/api/v1/ecf/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/retry';const options = {method: 'POST', headers: {'X-API-Key': '<X-API-Key>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.novafe.example/api/v1/ecf/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/retry \ --header 'X-API-Key: <X-API-Key>'Reencola el envío a la DGII de un comprobante en estado failed o
review, o rejected cuando la DGII dejó libre el e-NCF
(dgii.sequenceUsed = false). Reenvía el mismo XML ya firmado. Si la DGII
consumió el número responde 409: hay que emitir un comprobante nuevo.
Devuelve 202 con el comprobante de vuelta en signed; el worker
retoma el envío.
Autenticación: requiere una API key (header X-API-Key) con rol admin_tenant o emisor.
Authorizations
Sección titulada «Authorizations»Parameters
Sección titulada «Parameters»Path Parameters
Sección titulada «Path Parameters»Responses
Sección titulada «Responses»Accepted
Vista de un comprobante emitido (respuesta de POST /ecf y GET /ecf/{id}).
Trae la identidad fiscal, el resumen comercial (comprador, monto total —
igual que EcfSummaryDto) y el resultado del intercambio con
la DGII (EcfDgiiExchange? EcfDto.Dgii). El desglose por línea y el resto del detalle
comercial siguen viviendo solo en el XML firmado (GET /ecf/{id}/xml).
object
Lo que pasó con la DGII: trackId, estado (texto y código), mensajes,
secuenciaUtilizada y los instantes de envío, recepción y resolución.
null mientras el comprobante no se haya enviado.
object
Identificador que la DGII asigna al recibir el comprobante.
El estado textual de la DGII (“Aceptado”, “Rechazado”, “En Proceso”…); en el idioma en que lo manda ella.
Código de estado de la DGII: 1 aceptado · 2 rechazado · 3 en proceso · 4 aceptado condicional.
secuenciaUtilizada de la DGII: false = el e-NCF no se consumió
(firma/XML inválidos); true o ausente = consumido.
Observaciones o motivo de rechazo que devolvió la DGII.
object
Instante en que la DGII confirmó la recepción (hay string? EcfDgiiExchange.TrackId).
La fechaRecepcion que informó la DGII; ausente si no la dio (p. ej. RFCE).
Instante en que la DGII dio un resultado definitivo.
El reintento automático en curso o ya hecho: cuántas veces NovaFE reenvió el mismo
comprobante tras un rechazo transitorio de la DGII, el tope, y cuándo es el próximo
intento. null mientras no haya habido ningún reintento.
object
Reenvíos automáticos que NovaFE ya hizo de este comprobante.
Tope de reenvíos automáticos. Al agotarse, el rechazo queda firme.
Cuándo es el próximo intento; null si no hay uno pendiente.
Enlaces a los recursos relacionados del comprobante.
object
El comprobante y su estado.
El XML firmado (<ECF>).
El resumen firmado (<RFCE>); solo cuando submitsRfce.
La Representación Impresa en PDF.
Vista de un comprobante emitido (respuesta de POST /ecf y GET /ecf/{id}).
Trae la identidad fiscal, el resumen comercial (comprador, monto total —
igual que EcfSummaryDto) y el resultado del intercambio con
la DGII (EcfDgiiExchange? EcfDto.Dgii). El desglose por línea y el resto del detalle
comercial siguen viviendo solo en el XML firmado (GET /ecf/{id}/xml).
object
Lo que pasó con la DGII: trackId, estado (texto y código), mensajes,
secuenciaUtilizada y los instantes de envío, recepción y resolución.
null mientras el comprobante no se haya enviado.
object
Identificador que la DGII asigna al recibir el comprobante.
El estado textual de la DGII (“Aceptado”, “Rechazado”, “En Proceso”…); en el idioma en que lo manda ella.
Código de estado de la DGII: 1 aceptado · 2 rechazado · 3 en proceso · 4 aceptado condicional.
secuenciaUtilizada de la DGII: false = el e-NCF no se consumió
(firma/XML inválidos); true o ausente = consumido.
Observaciones o motivo de rechazo que devolvió la DGII.
object
Instante en que la DGII confirmó la recepción (hay string? EcfDgiiExchange.TrackId).
La fechaRecepcion que informó la DGII; ausente si no la dio (p. ej. RFCE).
Instante en que la DGII dio un resultado definitivo.
El reintento automático en curso o ya hecho: cuántas veces NovaFE reenvió el mismo
comprobante tras un rechazo transitorio de la DGII, el tope, y cuándo es el próximo
intento. null mientras no haya habido ningún reintento.
object
Reenvíos automáticos que NovaFE ya hizo de este comprobante.
Tope de reenvíos automáticos. Al agotarse, el rechazo queda firme.
Cuándo es el próximo intento; null si no hay uno pendiente.
Enlaces a los recursos relacionados del comprobante.
object
El comprobante y su estado.
El XML firmado (<ECF>).
El resumen firmado (<RFCE>); solo cuando submitsRfce.
La Representación Impresa en PDF.
Examplegenerated
{ "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "status": "example", "encf": "example", "type": 1, "environment": "example", "sequenceExpiresOn": "2026-04-15", "issueDate": "2026-04-15", "issuedAt": "2026-04-15T12:00:00Z", "signedAt": "2026-04-15T12:00:00Z", "securityCode": "example", "qrUrl": "example", "submitsRfce": true, "internalNumber": "example", "toleranceWarning": "example", "signedDuringContingency": true, "montoTotal": 1, "buyerRnc": "example", "buyerName": "example", "documentHash": "example", "dgii": { "trackId": "example", "status": "example", "statusCode": 1, "sequenceUsed": true, "messages": [ { "code": 1, "value": "example" } ], "submittedAt": "2026-04-15T12:00:00Z", "receivedAt": "2026-04-15T12:00:00Z", "processedAt": "2026-04-15T12:00:00Z" }, "retry": { "count": 1, "max": 1, "nextAttemptAt": "2026-04-15T12:00:00Z" }, "links": { "self": "example", "xml": "example", "rfceXml": "example", "representation": "example" }}Vista de un comprobante emitido (respuesta de POST /ecf y GET /ecf/{id}).
Trae la identidad fiscal, el resumen comercial (comprador, monto total —
igual que EcfSummaryDto) y el resultado del intercambio con
la DGII (EcfDgiiExchange? EcfDto.Dgii). El desglose por línea y el resto del detalle
comercial siguen viviendo solo en el XML firmado (GET /ecf/{id}/xml).
object
Lo que pasó con la DGII: trackId, estado (texto y código), mensajes,
secuenciaUtilizada y los instantes de envío, recepción y resolución.
null mientras el comprobante no se haya enviado.
object
Identificador que la DGII asigna al recibir el comprobante.
El estado textual de la DGII (“Aceptado”, “Rechazado”, “En Proceso”…); en el idioma en que lo manda ella.
Código de estado de la DGII: 1 aceptado · 2 rechazado · 3 en proceso · 4 aceptado condicional.
secuenciaUtilizada de la DGII: false = el e-NCF no se consumió
(firma/XML inválidos); true o ausente = consumido.
Observaciones o motivo de rechazo que devolvió la DGII.
object
Instante en que la DGII confirmó la recepción (hay string? EcfDgiiExchange.TrackId).
La fechaRecepcion que informó la DGII; ausente si no la dio (p. ej. RFCE).
Instante en que la DGII dio un resultado definitivo.
El reintento automático en curso o ya hecho: cuántas veces NovaFE reenvió el mismo
comprobante tras un rechazo transitorio de la DGII, el tope, y cuándo es el próximo
intento. null mientras no haya habido ningún reintento.
object
Reenvíos automáticos que NovaFE ya hizo de este comprobante.
Tope de reenvíos automáticos. Al agotarse, el rechazo queda firme.
Cuándo es el próximo intento; null si no hay uno pendiente.
Enlaces a los recursos relacionados del comprobante.
object
El comprobante y su estado.
El XML firmado (<ECF>).
El resumen firmado (<RFCE>); solo cuando submitsRfce.
La Representación Impresa en PDF.
Examplegenerated
{ "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "status": "example", "encf": "example", "type": 1, "environment": "example", "sequenceExpiresOn": "2026-04-15", "issueDate": "2026-04-15", "issuedAt": "2026-04-15T12:00:00Z", "signedAt": "2026-04-15T12:00:00Z", "securityCode": "example", "qrUrl": "example", "submitsRfce": true, "internalNumber": "example", "toleranceWarning": "example", "signedDuringContingency": true, "montoTotal": 1, "buyerRnc": "example", "buyerName": "example", "documentHash": "example", "dgii": { "trackId": "example", "status": "example", "statusCode": 1, "sequenceUsed": true, "messages": [ { "code": 1, "value": "example" } ], "submittedAt": "2026-04-15T12:00:00Z", "receivedAt": "2026-04-15T12:00:00Z", "processedAt": "2026-04-15T12:00:00Z" }, "retry": { "count": 1, "max": 1, "nextAttemptAt": "2026-04-15T12:00:00Z" }, "links": { "self": "example", "xml": "example", "rfceXml": "example", "representation": "example" }}Not Found
object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}Conflict
object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example"}