Saltar a contenido

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:

  1. Que ninguna secuencia del rango se haya emitido ya. Si encontramos un e-CF con ese e-NCF, se responde 422 nombrando 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").
  2. 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).