Anula rangos de e-NCF sin usar
const url = 'https://api.novafe.example/api/v1/sequences/annulments';const options = { method: 'POST', headers: {'X-API-Key': '<X-API-Key>', 'Content-Type': 'application/json'}, body: '{"environment":"example","reason":"example","lines":[{"type":1,"series":"example","rangeFrom":1,"rangeTo":1}]}'};
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/sequences/annulments \ --header 'Content-Type: application/json' \ --header 'X-API-Key: <X-API-Key>' \ --data '{ "environment": "example", "reason": "example", "lines": [ { "type": 1, "series": "example", "rangeFrom": 1, "rangeTo": 1 } ] }'Anula la cola sin usar de uno o más rangos autorizados (ANECF).
Descarta los números localmente de inmediato y confirma con la DGII dentro
de la misma petición; si la DGII no responde, la anulación queda
failed y se reintenta con Task<IActionResult> SequencesController.RetryAnnulment(Guid id, CancellationToken ct).
Autenticación: requiere una API key (header X-API-Key) con rol admin_tenant.
Authorizations
Sección titulada «Authorizations»Request Bodyrequired
Sección titulada «Request Bodyrequired»object
Una línea del request: el rango a anular de un tipo/serie puntual.
object
Examplegenerated
{ "environment": "example", "reason": "example", "lines": [ { "type": 1, "series": "example", "rangeFrom": 1, "rangeTo": 1 } ]}object
Una línea del request: el rango a anular de un tipo/serie puntual.
object
Examplegenerated
{ "environment": "example", "reason": "example", "lines": [ { "type": 1, "series": "example", "rangeFrom": 1, "rangeTo": 1 } ]}object
Una línea del request: el rango a anular de un tipo/serie puntual.
object
Examplegenerated
{ "environment": "example", "reason": "example", "lines": [ { "type": 1, "series": "example", "rangeFrom": 1, "rangeTo": 1 } ]}Responses
Sección titulada «Responses»OK
Lo que la API devuelve para una solicitud de anulación de rango (Módulo 8).
object
Una línea (<Anulacion>) de la solicitud.
object
Nombre del tipo de comprobante de cara al contribuyente.
Lo que la API devuelve para una solicitud de anulación de rango (Módulo 8).
object
Una línea (<Anulacion>) de la solicitud.
object
Nombre del tipo de comprobante de cara al contribuyente.
Examplegenerated
{ "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "environment": "example", "reason": "example", "status": "example", "totalCount": 1, "lines": [ { "type": 1, "series": "example", "rangeFrom": 1, "rangeTo": 1, "count": 1, "typeName": "example" } ], "dgiiCode": "example", "dgiiMessages": [ "example" ], "lastError": "example", "attempts": 1, "submittedAt": "2026-04-15T12:00:00Z", "voidedAt": "2026-04-15T12:00:00Z", "createdAt": "2026-04-15T12:00:00Z"}Lo que la API devuelve para una solicitud de anulación de rango (Módulo 8).
object
Una línea (<Anulacion>) de la solicitud.
object
Nombre del tipo de comprobante de cara al contribuyente.
Examplegenerated
{ "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "environment": "example", "reason": "example", "status": "example", "totalCount": 1, "lines": [ { "type": 1, "series": "example", "rangeFrom": 1, "rangeTo": 1, "count": 1, "typeName": "example" } ], "dgiiCode": "example", "dgiiMessages": [ "example" ], "lastError": "example", "attempts": 1, "submittedAt": "2026-04-15T12:00:00Z", "voidedAt": "2026-04-15T12:00:00Z", "createdAt": "2026-04-15T12:00:00Z"}Bad Request
object
object
object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example", "errors": { "additionalProperty": [ "example" ] }}object
object
Examplegenerated
{ "type": "example", "title": "example", "status": 1, "detail": "example", "instance": "example", "errors": { "additionalProperty": [ "example" ] }}