Numeración y control
Zentto Imprenta Digital opera un modelo de numeración de doble nivel: el número de documento (correlativo del emisor) y el número de control fiscal (NCF-D), que Zentto genera de forma propia desde sus series internas.
Número de documento
Sección titulada «Número de documento»Es el correlativo del emisor por tipo de documento, controlado por el sistema cliente.
Se envía en el campo documentNumber de cada emisión.
Número de control fiscal (NCF-D)
Sección titulada «Número de control fiscal (NCF-D)»Lo asigna Zentto al momento de la emisión y se devuelve en controlNumber. Se forma
como Prefijo + LPAD(correlativo, 8, "0") (p. ej. 00012345).
Series propias
Sección titulada «Series propias»Cada serie es un rango [Desde, Hasta] asignado a una empresa-cliente para un tipo de
documento, en la tabla imprenta."ControlSerie":
| Campo | Descripción |
|---|---|
CompanyId | Empresa-cliente dueña de la serie. |
Serie | Identificador de serie. |
TipoDocumento | 01..07. |
Prefijo | Prefijo del número de control. |
Desde / Hasta | Límites del rango. |
Correlativo | Último número consumido (atómico). |
Estado | ACTIVA · AGOTADA · SUSPENDIDA. |
Asignación atómica — fn_assign_control_serie
Sección titulada «Asignación atómica — fn_assign_control_serie»La función PL/pgSQL imprenta.fn_assign_control_serie(p_company_id, p_tipo_doc, p_serie):
- Selecciona la serie
ACTIVAconSELECT ... FOR UPDATE(bloqueo de fila). - Calcula el siguiente número (
Desdeen el primer consumo, luegoCorrelativo + 1). - Si supera
Hasta, marca la serieAGOTADAy no devuelve número. - Actualiza
Correlativoy devuelvePrefijo + LPAD(número, 8, "0").
Esto garantiza un correlativo sin huecos ni colisiones bajo concurrencia.
Gestión de rangos (vertical / integrador)
Sección titulada «Gestión de rangos (vertical / integrador)»| Operación | Ruta | Quién |
|---|---|---|
| Asignar rango | POST /v1/imprenta/asignaciones | Vertical (empresa) |
| Listar numeraciones | GET /v1/imprenta/numeraciones | Vertical |
| Generar serie | POST /v1/imprenta/backoffice/series | Solo ZENTTO_SUPERADMIN |
| Extender / reasignar serie | POST /v1/imprenta/backoffice/series/{id}/extender · /reasignar | Solo ZENTTO_SUPERADMIN |
| Consultar rangos del integrador | GET /api/numeraciones | Integrador |
Resumen
Sección titulada «Resumen»| Nivel | Quién lo controla | Campo | Cuándo se asigna |
|---|---|---|---|
| Número de documento | Sistema cliente | documentNumber | Al construir el documento |
| Número de control NCF-D | Zentto (serie propia) | controlNumber | En la respuesta de emisión |