e-NCF y secuencias
Qué es un e-NCF
Sección titulada «Qué es un e-NCF»El e-NCF (número de comprobante fiscal electrónico) identifica cada e-CF de forma única. Tiene 13 caracteres, en tres partes:
E 31 0000000001- Serie: una letra de la
Ea laZ(laPestá reservada, no se usa). Puedes tener varias series activas para el mismo tipo. - Tipo: el código del tipo de e-CF, 2 dígitos.
- Secuencial: la posición dentro del rango que la DGII te autorizó, 10 dígitos.
Cómo lo asigna NovaFE
Sección titulada «Cómo lo asigna NovaFE»La DGII te autoriza un rango por tipo, serie y ambiente (por ejemplo, “serie E, tipo 31, del 1 al 1,000,000, en Producción”). Cuando emites un comprobante, NovaFE toma el siguiente número disponible de ese rango de forma atómica: si dos emisiones llegan al mismo tiempo, nunca reciben el mismo número. Por defecto no envías el e-NCF en el payload: NovaFE lo asigna y te lo devuelve en la respuesta. Si tu propio sistema ya numera los comprobantes, consulta la sección Numeración propia, más abajo.
Vencimiento
Sección titulada «Vencimiento»Al registrar un rango indicas su vencimiento (expiresOn): es la fecha que
figura en la autorización de la DGII. NovaFE no la calcula por ti, porque va
firmada en cada comprobante. Normalmente es el 31 de diciembre del año siguiente
a la autorización, pero confírmala con tu carta de autorización. No puede estar
en el pasado.
En pruebas (TesteCF) y certificación (CerteCF) la DGII usa la misma fecha para todos los rangos; el panel la propone al registrar el rango y puedes cambiarla.
Numeración propia
Sección titulada «Numeración propia»Si tu sistema ya asigna los números, por ejemplo un servicio intermedio que
numera los comprobantes de varios puntos de facturación y necesita saber de
cuál salió cada uno, puedes conservar ese control. El ajuste sequences.mode
de la configuración de tu tenant admite dos valores:
| Valor | Quién numera |
|---|---|
managed (por defecto) |
NovaFE, desde los rangos que registras. |
external |
Tu sistema, que envía el e-NCF en cada emisión. |
Con external:
POST /ecfexigeencf, de 13 caracteres y con el tipo que corresponde al comprobante. En todos los tipos salvo el 32 y el 34 exige ademássequenceExpiresOn(formatodd-MM-yyyy), la fecha de vencimiento de tu rango. En los tipos 32 y 34 no se envía.- No necesitas registrar rangos en NovaFE. Que cada número pertenezca a un rango autorizado y vigente es responsabilidad de tu sistema: NovaFE no lo valida y, por lo mismo, no emite alertas de stock ni de vencimiento de secuencias.
- NovaFE comprueba que el número no se haya usado ya en ese ambiente. Si se
repite, responde
409: un e-NCF no se emite dos veces. - Si NovaFE rechaza la petición antes de guardar el comprobante (por una validación, la cuota del plan o la firma), no se consumió nada de su lado y puedes reintentar con el mismo número.
POST /sequences/allocatedeja de estar disponible y responde409.
Con managed, enviar encf o sequenceExpiresOn produce un error 400; no se
ignoran en silencio.
Registrar un rango y consultar tu stock
Sección titulada «Registrar un rango y consultar tu stock»POST /api/v1/sequences registra un rango autorizado por la DGII (con su expiresOn)GET /api/v1/sequences todos tus rangos, con su stockGET /api/v1/sequences/{id} un rango puntual{ "id": "...", "environment": "Test", "type": 31, "series": "E", "rangeFrom": 1, "rangeTo": 1000000, "next": 42, "capacity": 1000000, "remaining": 999959, "isLowStock": false, "expiresOn": "31-12-2027", "active": true}remaining, capacity e isLowStock los calcula NovaFE en cada consulta;
no tienes que llevar la cuenta tú mismo. Cuando isLowStock pasa a true
(por defecto, al 20 % o menos de stock), también te llega el webhook
sequence.low.
Dos operaciones más, de uso ocasional:
POST /api/v1/sequences/allocate toma el siguiente número a manoPOST /api/v1/sequences/{id}/deactivate desactiva un rango (típicamente, ya agotado)Si te queda un rango sin usar y quieres descartarlo formalmente ante la DGII, esa es una anulación de e-NCF, no una operación de esta sección.