Saltar al contenido principal

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 secuenciaQuién asigna el e-NCFQué haces tú
Tu sistema (predeterminado en integración)Tu ERP o POSPones el e-NCF en el comprobante y lo envías con send.
EmitexEl maestro de comprobantes de EmitexPides 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.

Ambientes

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. Es null en 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.codeHTTPQué hacer
ECF_TYPE_INVALID400Usa un tipo válido: 31, 32, 33, 34, 41, 43, 44, 45, 46 o 47.
EXTERNAL_REFERENCE_INVALID400La referencia admite hasta 64 caracteres.
SEQUENCE_MANAGED_EXTERNALLY409Tu empresa lleva su propia numeración: asigna el e-NCF en tu sistema.
SEQUENCE_CERTIFICATION_WEB_ONLY409En certificación se emite desde la aplicación web.
SEQUENCE_NOT_AVAILABLE409No quedan números. data.reason: SIN_RANGO, VENCIDA o AGOTADA. Registra o renueva la autorización en el maestro de comprobantes.