Este gist conserva un probe experimental y las notas de su revisión. No es un parser verificado y no debe ejecutarse contra un servicio de producción para enumerar comprobantes. Para investigar, usar respuestas guardadas, un mock local o URLs propias cuyo análisis esté autorizado.
uv run --with=httpx probe.pyLa ruta tiene esta forma:
https://mifactura.napse.global/mf/pq1rt7/<token-base64>
El token Base64 observado en el PDF de Vea decodifica a:
cencosud_434_1_6_043400101222405041552
La segmentación candidata es:
cencosud | 434 | 1 | 6 | 0434 | 001 | 0122 | 240504 | 1552
| Campo | Significado candidato | Confianza |
|---|---|---|
cencosud |
empresa o namespace del emisor | alta |
434 |
código interno de sucursal | media-alta |
1 |
terminal o caja | media |
6 |
tipo de comprobante; compatible con Factura B 006 |
alta |
0434 |
código de sucursal u operativo repetido | media-alta |
001 |
código de terminal o caja repetido | media-alta |
0122 |
secuencia interna de la operación | media |
240504 |
fecha YYMMDD, 04/05/2024 |
alta |
1552 |
hora de la operación HHMM |
media-alta |
Los nombres y significados son inferidos a partir de ejemplos; no encontré una especificación pública de este layout concreto de Cencosud.
El repositorio relacionado es
luissimosa199/ticker-scanner.
El fixture de prueba en
disco-ticket-parser.service.spec.ts
contiene este token:
cencosud_154_5_6_015400501992310112000
La segmentación candidata es:
cencosud | 154 | 5 | 6 | 0154 | 005 | 0199 | 231011 | 2000
Otro fixture contiene:
cencosud_154_8_6_015400802552401092040
La implementación del parser,
disco-ticket-parser.service.ts,
recibe HTML que ya fue obtenido por el cliente: conserva la URL original, pero
no construye ni valida el token de Napse.
El script tiene notas FIXME sobre:
- validación de respuesta: HTTP 200 y tamaño del body no alcanzan;
- supuestos sobre la secuencia: empezar en
0001y cortar ante el primer hueco; - errores transitorios tratados como comprobantes inexistentes;
- concurrencia, rate limiting y carga sobre el proveedor;
- datetimes ingenuos y zona horaria argentina;
- reutilización del mismo minuto para el comprobante siguiente;
- anchos y significados de campos todavía no verificados.
El siguiente paso seguro sería comparar dos o más tickets propios y relacionar los tokens decodificados con fecha, hora, terminal, sucursal y número impresos. No hay que inferir validez a partir del comprobante de otra persona.