# Cotejo campo a campo: la factura de la Estación Fiscal frente al artículo 7 de la Providencia Administrativa SNAT/2024/000102

Fecha del cotejo: 31 de julio de 2026.
Alcance: las TRES representaciones del documento sellado, todas portadoras de los quince requisitos:
1. **Impresa** en térmica de 80 mm (`src/factura.ts`, `lineasFactura`/`facturaTermica`), verificada con `test/prueba_factura.mjs`.
2. **Para teléfono** (`facturaParaTelefono`), misma prueba.
3. **En PDF adjunto al correo** (`apps/validador/functions/lib/pdf_factura.js`, generado con pdf-lib en el Worker de la imprenta a partir del documento tal como quedó sellado), verificada con `scripts/test_pdf_factura.mjs` y con la prueba viva de punta a punta `scripts/test_correo_pdf.mjs`.

La versión formal de este cotejo, para consignar, es el documento 06 del expediente SENIAT (`06_COTEJO_ARTICULO_7.html`), que vive **fuera del repositorio** (la carpeta `docs/` está en `.gitignore`: son notas internas de operación). Mantener ambos en sincronía cuando cambie la factura.

La Providencia Administrativa SNAT/2024/000102 (Gaceta Oficial N° 43.032 del 19 de diciembre de 2024) enumera en su artículo 7 los requisitos que deben contener las facturas emitidas por medios digitales. Este documento coteja cada numeral contra lo que el sistema imprime.

| N° | Requisito del artículo 7 | Dónde aparece en el documento | Estado |
|----|--------------------------|-------------------------------|--------|
| 1 | Denominación del documento | Título centrado: FACTURA, NOTA DE CREDITO o NOTA DE DEBITO | Cumple |
| 2 | Numeración consecutiva y única | Línea "Numero: {serie}-{correlativo}". El correlativo lo lleva el libro fiscal por tipo de documento, sin saltos ni repeticiones (numeración ciega) | Cumple |
| 3 | Nombre o razón social, domicilio fiscal y RIF del emisor | Tres primeras líneas del encabezado | Cumple |
| 4 | Número de control asignado por la imprenta digital autorizada | Línea "N. de Control: {número}". La frase del artículo 30 es "N° de Control"; el papel térmico trabaja en ASCII puro (ver nota 1) y por eso imprime "N." en lugar de "N°" | Cumple |
| 5 | Total de los números de control asignados (desde el N° hasta el N°) | Línea "Controles asignados: del N. {desde} al N. {hasta}". El dato lo devuelve la imprenta en la respuesta de emisión (migración `20260731070000`); mientras el emisor opere con numeración libre bajo paraguas de un tercero autorizado, el rango no existe y la línea no se imprime | Cumple cuando hay rango asignado |
| 6 | Fecha y hora de emisión | Línea del número: "{DD/MM/AAAA} {HH:MM:SS}" en formato de 24 horas y con segundos. La hora sale del reloj del equipo, custodiado por el módulo de control horario que detiene el sellado si la hora está alterada | Cumple |
| 7 | Identificación del adquiriente (nombre o razón social, cédula o RIF) | Líneas "Cliente: {nombre}" y "C.I./RIF: {identificación}" cuando el dato existe. La pantalla de RIF al cobrar recoge los datos del comprador que los solicita | Cumple; ver pendiente A |
| 8 | Descripción y código de la operación y el precio | Cada renglón imprime cantidad, descripción y precio unitario con su alícuota. El código de artículo no viaja desde el sistema de origen | Cumple en descripción y precio; ver pendiente B |
| 9 | Descripción de los bienes en servicios que los incluyan | La venta de alimentos preparados se documenta como venta de bienes renglón por renglón | No aplica al giro actual |
| 10 | Descuentos y ajustes al precio | El sistema de origen no maneja descuentos en la actualidad | Ver pendiente C |
| 11 | Base imponible discriminada por alícuota | Bloque de totales: "Base imponible {alícuota}%" por cada alícuota, y "Exento" por separado | Cumple |
| 12 | IVA discriminado por alícuota | Bloque de totales: "IVA {alícuota}%" por cada alícuota | Cumple |
| 13 | Valor total de la operación | Línea "TOTAL Bs". Si el emisor es agente de percepción del IGTF y el pago fue en divisas, el IGTF sale por separado con su "TOTAL A PAGAR Bs". La tasa del día y el equivalente en dólares se informan como referencia | Cumple |
| 14 | Razón social y RIF de la imprenta digital autorizada | Bloque al pie: "Imprenta digital autorizada:", razón social, RIF y "Providencia {nomenclatura} del {fecha}". Los datos los declara la imprenta en su panel (tabla `fiscal.imprenta`) y viajan en la respuesta de emisión | Cumple cuando la imprenta registró su autorización |
| 15 | Fecha de asignación del número de control | Línea "Fecha de asignacion: {DD/MM/AAAA}", con la fecha que responde la imprenta al asignar. En reintentos se conserva la fecha original de la asignación, no la del reintento | Cumple |

La versión para teléfono (`facturaParaTelefono`) transporta los mismos datos en forma estructurada: número de control, fecha de asignación, rango asignado e identidad de la imprenta con su providencia, para que cualquier pantalla que la muestre pueda cumplir los mismos numerales.

## Elementos adicionales que el documento imprime sin que la norma los exija

- Sello de comprobación: código QR nativo de impresora más la dirección en texto, que abre la página pública de verificación del documento.
- Serial de la Estación que selló, verificable en la misma página pública.
- Leyenda "Representacion grafica del documento digital": el papel aclara que el documento con valor es el digital sellado y numerado.

## Notas

1. Conversión a ASCII: las impresoras térmicas genéricas POS-80 descartan o corrompen los bytes fuera del rango ASCII. Todo el texto del papel pasa por una conversión que sustituye acentos y símbolos (á por a, ° se omite en la frase del número de control, que queda "N. de Control"). La representación para teléfono no tiene esta limitación y conserva los caracteres completos.
2. Origen de los datos de la imprenta: la respuesta de la emisión (`/api/emitir` de la imprenta digital, funciones `fiscal.recibir_documento`, `fiscal.emitir_con_llave` y `public.fn_emitir_documento`) devuelve desde el 31 de julio de 2026 la fecha de asignación, el rango del que salió el número y la identidad de la imprenta. El cambio es aditivo: los sistemas que solo leen el número de control siguen funcionando sin modificación.
3. Ausencia tolerada: si una puerta de emisión anterior no envía los datos nuevos, las líneas correspondientes no se imprimen. El documento no inventa datos que la imprenta no respondió.
4. Forma del número de control (artículo 30): la imprenta responde el número también en su forma impresa, con identificador de dos dígitos y secuencial de hasta ocho dígitos ("00-00001234"). El identificador 00 corresponde al primer lote de numeración de esta imprenta y avanza a 01 cuando el secuencial agote los ocho dígitos. La Estación imprime la forma que dicta la imprenta.

## Pendientes de criterio (consultar con el asesor tributario antes de la entrega de recaudos)

- **A (numeral 7):** cuando el comprador no aporta identificación, el documento sale solo con el nombre. Si el criterio del evaluador exige la leyenda expresa "CONSUMIDOR FINAL", agregarla es un cambio menor ya ubicado.
- **B (numeral 8):** definir si "código de la operación" exige un código por renglón. De exigirse, el contrato de entrada `VentaEntrante` debe ganar un campo de código por renglón (cambio aditivo que no rompe integraciones existentes).
- **C (numeral 10):** el día que el sistema de origen incorpore descuentos, el armador debe recibirlos, restarlos de la base imponible y mostrarlos en el documento. Queda anotado para que ese desarrollo no se libere sin su reflejo fiscal.
