Anulación de secuencias e-NCF¶
Para las secuencias autorizadas que no va a usar. La norma es precisa sobre cuándo aplica:
"El contribuyente podrá anular secuencias autorizadas de comprobantes fiscales electrónicos, si la factura emitida no ha sido enviada a la DGII ni al receptor o si la secuencia no ha sido utilizada […] Si la factura fue enviada a la DGII y/o al receptor, el contribuyente anulará la secuencia emitiendo una Nota de Crédito Electrónica." — Formato Anulación de e-NCF v1.0, §1
Es decir: esto no revierte un comprobante ya transmitido. Para eso está el tipo 34.
POST /api/v1/voided-sequences¶
{
"rangos": [
{ "tipo": "31", "desde": 50, "hasta": 60 },
{ "tipo": "32", "desde": 1, "hasta": 500 }
]
}
| Campo | Tipo | Oblig. | Reglas |
|---|---|---|---|
rangos[] |
array | ● | Hasta 10 tipos de e-CF distintos y 10.000 rangos por tipo (topes del formato). |
rangos[].tipo |
string(2) | ● | Uno de los diez tipos de e-CF. |
rangos[].desde |
int | ● | Consecutivo inicial. Entre 1 y 9.999.999.999. |
rangos[].hasta |
int | ● | Consecutivo final. ≥ desde. |
Sólo se envían los consecutivos: el e-NCF de 13 posiciones (E + tipo + 10 dígitos) se compone
aquí, así que {"tipo":"31","desde":50} viaja como E310000000050.
Respuesta¶
{
"status": "success",
"message": "Las secuencias fueron anuladas ante la DGII.",
"data": {
"lote": "9f1c…",
"cantidad_anulada": 511,
"aceptada_por_dgii": true,
"mensajes_dgii": [],
"rangos": [
{ "tipo": "31", "desde": "E310000000050", "hasta": "E310000000060", "cantidad": 11 }
]
}
}
201 si la DGII la aceptó, 422 si no. El servicio de la DGII resuelve en la misma llamada: no
hay TrackID ni sondeo posterior.
Qué se comprueba antes de transmitir¶
Dos reglas se validan contra su propia base de datos, para evitarle un rechazo:
- Que ninguna secuencia del rango se haya emitido ya. Si encontramos un e-CF con ese e-NCF, se
responde
422nombrando el comprobante y recordando que la vía es una Nota de Crédito. La DGII lo rechazaría igualmente ("Las secuencias que está intentando anular han sido utilizadas"). - Que el rango caiga dentro de una secuencia autorizada suya para ese tipo.
Además se rechazan los rangos invertidos y los que se solapan entre sí dentro del mismo tipo.
Efecto sobre sus secuencias¶
Las secuencias anuladas no se pueden volver a usar — la DGII no admite "utilizar posteriormente secuencias que sí hayan podido ser anuladas". Así que en cuanto la anulación es aceptada:
- si el rango cubre el siguiente consecutivo a emitir, el puntero salta más allá del rango;
- y si el rango queda por delante del puntero, la reserva lo salta cuando llega a él.
En los dos casos, pedir un e-NCF nuevo nunca le devolverá uno anulado. Si la DGII rechaza la anulación, la secuencia sigue intacta y disponible: queda constancia del intento y nada más.
GET /api/v1/voided-sequences¶
Las últimas 200 anulaciones del emisor, de la más reciente a la más antigua, con el resultado que dio la DGII en cada una.
Referencias¶
Si una anulación se queda sin respuesta¶
Transmitir una anulación y no llegar a saber qué contestó la DGII es un caso incómodo: puede que
anulara las secuencias y puede que no. Se deja constancia antes de enviar, así que el rango queda
registrado con accepted: null, y mientras siga así esos consecutivos no se reparten.
Es deliberado y conviene entender por qué: si la anulación llegó y volviéramos a usar el consecutivo, la DGII rechazaría el comprobante y esa secuencia tampoco se podría reutilizar. Perder un número es barato; emitir una factura que nace muerta, no.
Para resolverlo, reintente la anulación del mismo rango: la respuesta deja el estado claro en cualquiera de los dos casos, y con ella los consecutivos vuelven a estar disponibles (si la DGII rechaza la anulación) o quedan definitivamente anulados (si la acepta).