Secuencias de e-NCF
Cada e-CF lleva un e-NCF (por ejemplo E310000000123) dentro de un rango que la DGII autorizó a tu empresa. Hay dos formas de llevar esa numeración, y tu empresa usa una sola:
| Origen de la secuencia | Quién asigna el e-NCF | Qué haces tú |
|---|---|---|
| Tu sistema (predeterminado en integración) | Tu ERP o POS | Pones el e-NCF en el comprobante y lo envías con send. |
| Emitex | El maestro de comprobantes de Emitex | Pides cada número con ecf-sequences/next y luego envías con send. |
Usa el origen Emitex si tu sistema no lleva una cola de comprobantes. El origen se configura por empresa; para cambiarlo, solicítalo a soporte. Mezclar las dos fuentes produciría e-NCF repetidos que la DGII rechaza, por eso no se combinan.
El origen de la secuencia rige en pre-certificación y producción. Durante la certificación los comprobantes se emiten desde la aplicación web; los endpoints de secuencias responden 409 SEQUENCE_CERTIFICATION_WEB_ONLY.
Pedir el siguiente e-NCF
POST /api/v2/ecf-sequences/next
Authorization: Bearer {token}
Content-Type: application/json
{
"ecfType": 31,
"externalReference": "POS-000123"
}
{
"codigo": 200,
"mensaje": "e-NCF reservado.",
"procesado": true,
"data": {
"encf": "E310000000123",
"ecfType": 31,
"sequenceExpiresOn": "31-12-2027",
"externalReference": "POS-000123",
"reservedAt": "2026-10-06T14:32:10Z",
"reused": false
}
}
Usa la respuesta así:
encf→Encabezado.IdDoc.eNCF.sequenceExpiresOn→Encabezado.IdDoc.FechaVencimientoSecuencia. Esnullen los e-CF 32 y 34, que no llevan ese campo.
Luego envía el comprobante con send como siempre.
externalReference: reintentos sin gastar números
externalReference es el identificador del documento en tu sistema (número de recibo, id de pedido), de hasta 64 caracteres. Es opcional, pero recomendado:
- Si pides un número, la conexión se corta y vuelves a pedirlo con la misma referencia y el mismo tipo, recibes el mismo e-NCF con
reused = true. No se consume otro número. - Sin referencia, cada petición consume un número nuevo.
Envío con secuencia de Emitex
Si tu empresa usa la secuencia de Emitex, send solo acepta e-NCF entregados por ecf-sequences/next. Uno que no lo fue responde:
{
"codigo": 400,
"mensaje": "El e-NCF E310000000999 no fue asignado por Emitex. …",
"procesado": false,
"data": { "code": "ENCF_NOT_ISSUED_BY_EMITEX" }
}
Números reservados sin usar
Un e-NCF reservado que nunca se envía queda como hueco en la numeración. Consúltalos para conciliar con tu sistema:
GET /api/v2/ecf-sequences/unused?olderThanHours=24
Si el documento existe en tu sistema, envíalo. Si no, repórtalo a soporte para su anulación ante la DGII.
Estado de la secuencia
GET /api/v2/ecf-sequences devuelve, por tipo de e-CF, el próximo número, los disponibles en las autorizaciones vigentes, el vencimiento y el estado (Vigente, Agotada, Vencida o Sin autorizaciones). Úsalo para avisar antes de quedarte sin números.
Errores
data.code | HTTP | Qué hacer |
|---|---|---|
ECF_TYPE_INVALID | 400 | Usa un tipo válido: 31, 32, 33, 34, 41, 43, 44, 45, 46 o 47. |
EXTERNAL_REFERENCE_INVALID | 400 | La referencia admite hasta 64 caracteres. |
SEQUENCE_MANAGED_EXTERNALLY | 409 | Tu empresa lleva su propia numeración: asigna el e-NCF en tu sistema. |
SEQUENCE_CERTIFICATION_WEB_ONLY | 409 | En certificación se emite desde la aplicación web. |
SEQUENCE_NOT_AVAILABLE | 409 | No quedan números. data.reason: SIN_RANGO, VENCIDA o AGOTADA. Registra o renueva la autorización en el maestro de comprobantes. |