Rango declarado
Se declara desde dónde hasta dónde, con su lote y su vencimiento. Funciona en plantas con consumo ordenado, bajo responsabilidad declarada.
Todo lo que se puede hacer desde la consola se puede hacer desde la API, y al revés. La consola no es un atajo con privilegios: llama a los mismos endpoints que usted.
Son dos tiempos porque la fábrica funciona así: los códigos se imprimen mientras se produce, y los datos definitivos del lote solo existen cuando la corrida termina.
Los dos tiempos son un derecho, no una obligación: un importador que ya conoce el lote y el vencimiento puede emitir y activar en una sola llamada.
Emitir exige una cabecera de idempotencia. Un reintento por corte de red no genera una segunda tirada ni consume el saldo dos veces: devuelve exactamente la misma emisión.
POST /v1/issuances
Genera identificadores para un producto. La ficha es opcional:
si viene con lote y vencimiento, la emisión nace activada.
POST /v1/issuances/{id}/activate
Completa la ficha, que es lo que activa los códigos. Cuatro modos:
rango declarado · límites escaneados · sesión de escaneo · total
POST /v1/issuances/{id}/reassign
Corrige la ficha de un rango. Queda en auditoría.
GET /v1/issuances/{id}/labels
Descarga paginada, o continua para tiradas grandes. La asignación entre códigos y lote asume que la planta consumió las etiquetas en orden, y el mundo físico mezcla rollos. Por eso hay más de un método.
Se declara desde dónde hasta dónde, con su lote y su vencimiento. Funciona en plantas con consumo ordenado, bajo responsabilidad declarada.
Al abrir la corrida se lee la etiqueta de la primera unidad; al cerrarla, la de la última. El sistema deriva el rango realmente observado y absorbe los desfases y las mermas.
Se abre una sesión para un lote y todo código leído durante ella queda asignado. La asignación deja de ser una suposición y pasa a ser una observación.
Antes de despachar, se escanean unidades al azar de cada palet y se compara la ficha asignada con lo impreso. Un palet mal asignado se detecta antes de salir.
En modo serial, un serial repetido dentro del mismo producto, o un segundo intento de vincular el mismo código, se rechaza y abre una señal. El índice inverso de serial a código es lo que después permite una garantía por unidad o una retirada quirúrgica.
La especificación completa se publica como OpenAPI, y la versión va en la ruta: lo que funciona hoy seguirá funcionando cuando aparezca la siguiente.
GET /v1/verify/{code}
Consulta pública: estado y pasaporte. Anónima, con límite de tasa.
Pensada también para integradores: cadenas de retail y aduanas.
GET /v1/labels/{code}
Consulta una etiqueta propia, con más detalle que la pública.
POST /v1/labels/bind
Modo serial: vincula un código con el serial del fabricante, 1 a 1.
POST /v1/labels/void
Anula rangos, con motivo. Queda en auditoría.
Webhooks: issuance.issued · label.alert La cuenta de un emisor autoriza la creación de valores fiscales. La asimetría con el público es deliberada.
Consultar y reportar no piden registro. El contacto en un reporte es opcional y solo sirve para dar seguimiento.
Correo corporativo y contraseña con segundo factor obligatorio, y clave de acceso opcional para quien quiera resistencia a suplantación. Nadie entra con solo una contraseña.
La identidad de un emisor es corporativa. Un correo personal no debe controlar una cuenta que emite.
Las integraciones usan clave de API con firma de la solicitud, alcances concretos y rotación. Revocable por clave y por dispositivo.
Un sistema fiscal no puede detener la producción ni el comercio. Eso deja de ser una aspiración y se convierte en un requisito de diseño.
El rango se descarga una vez y el proceso local alimenta la impresora, con cola propia y reporte de consumo al reconectar.
La consulta debe seguir respondiendo aunque la emisión esté en mantenimiento. No comparten camino.
Si el limitador de tasa se degrada, la consulta se sirve. Las escrituras y la autenticación, al contrario, fallan cerradas.
El formato del identificador y las especificaciones de impresión están en la referencia de la etiqueta. Si quiere entender por qué el diseño toma estas decisiones, la página de precedentes recorre los sistemas que ya lo intentaron.