Infraestructura Tecnológica e Inventario de Activos
Este anexo describe la infraestructura tecnológica de la plataforma de imprenta digital de ZENTTO GLOBAL TECHNOLOGY, C.A., los equipos y programas informáticos que la componen, y la relación del inventario de los recursos destinados a la asignación del número de control, en cumplimiento de los artículos 25 y 26 de la Providencia Administrativa SNAT/2024/000102.
1. Condiciones del artículo 25
El artículo 25 exige que la imprenta digital disponga de infraestructura tecnológica de recepción, procesamiento, almacenamiento y resguardo de la información; de altos estándares de seguridad; de trazabilidad absoluta; y de confidencialidad. La plataforma satisface cada condición del modo siguiente:
| Condición (Art. 25) | Implementación verificable |
|---|---|
| Recepción | API HTTPS que recibe el documento canónico del emisor: POST /v1/imprenta (operación autenticada) y POST /api/emit (integradores autorizados) |
| Procesamiento | Validación de estructura (Zod), asignación atómica del número de control y cálculo de totales e impuestos |
| Almacenamiento | PostgreSQL 16 (base zentto_imprenta_prod); registro de cada documento en fiscal."DigitalInvoice" y del consumo en imprenta."ConsumoControl" |
| Resguardo | Respaldo cifrado en servidor dedicado con retención de 10 años (ver anexo de respaldo y retención) |
| Alta seguridad | Endurecimiento de cabeceras con helmet, CORS por lista blanca, limitación de tasa, sesión con cookie httpOnly, secretos en HashiCorp Vault |
| Trazabilidad absoluta | Bitácora de acceso inmutable audit."AccessLog" y cadena de integridad SHA-256 por emisor en fiscal."DigitalInvoice" |
| Confidencialidad | Acceso por roles (ZENTTO_SUPERADMIN, DISTRIBUIDOR), filtrado por cartera (anti-IDOR), canal de consulta exclusivo del SENIAT con clave controlada |
2. Arquitectura de la plataforma
La plataforma de imprenta digital es un servicio independiente que recibe los documentos de los emisores, asigna el número de control y conserva el registro fiscal. Su arquitectura, desplegada y operativa, es la siguiente:
graph TD
EMISOR["Contribuyente emisor"] -->|HTTPS| NGINX["Nginx — TLS / reverse proxy"]
INTEGRADOR["Integrador autorizado"] -->|Bearer| NGINX
SENIAT["SENIAT — clave de consulta"] -->|X-Seniat-Key| NGINX
NGINX --> APP["Servicio de imprenta digital (puerto 4900)"]
APP --> ASIGN["Asignación del número de control"]
APP --> VALID["Validación de estructura"]
ASIGN --> PG[("PostgreSQL 16 — zentto_imprenta_prod")]
VALID --> PG
APP --> AUDIT[("audit.AccessLog — bitácora inmutable")]
APP --> VAULT["HashiCorp Vault — secretos (AppRole)"]
PG --> BK[("Servidor de respaldo DEDICADO — cifrado, 10 años")]
3. Descripción de equipos y programas (Art. 26)
3.1 Programas informáticos
| Capa | Tecnología | Función |
|---|---|---|
| Servicio de imprenta | Node.js 20 LTS, Express, TypeScript 5 | Recepción, validación, asignación del número de control y consulta |
| Base de datos | PostgreSQL 16 | Persistencia del documento, series y bitácora; funciones PL/pgSQL de numeración atómica |
| Validación de estructura | Zod | Validación del documento canónico transmitido por el emisor |
| Contrato de interoperabilidad | OpenAPI (YAML) | Contrato formal de la API en contracts/openapi.imprenta.yaml |
| Panel administrativo | Next.js, React, TypeScript | Backoffice de series, consumo, tarifas e integradores |
| Aplicación móvil | Ionic + Capacitor | Operación y contingencia desde dispositivos móviles |
| Gestión de secretos | HashiCorp Vault (AppRole + KV v2) | Custodia de claves y credenciales fuera del código fuente |
| Contenerización y proxy | Docker, Nginx | Empaquetado del servicio y terminación TLS |
3.2 Equipos (infraestructura física y de cómputo)
| Equipo | Especificación | Función |
|---|---|---|
| Servidor de aplicación | Servidor en la nube de Hetzner (Ubuntu); contenedor zentto-imprenta | Ejecuta el servicio de imprenta digital y atiende las solicitudes de asignación del número de control |
| Servidor de base de datos | PostgreSQL 16 en host (acceso por la puerta de enlace de la red de contenedores) | Almacena los documentos, las series de control y la bitácora inmutable |
| Servidor de respaldo dedicado | Servidor exclusivo de respaldos en la nube, en ubicación separada | Conserva copias cifradas de la información fiscal por 10 años |
| Servidor de secretos | HashiCorp Vault (zentto-vault) en la red interna | Custodia de claves de cifrado, contraseñas de base de datos y la clave de consulta del SENIAT |
| Pasarela de red | Nginx con TLS y red de contenedores aislada | Termina el cifrado de transporte y enruta el tráfico a la plataforma |
4. Inventario de recursos para la asignación del número de control (Art. 26)
El artículo 26 exige la relación del inventario de la maquinaria y los equipos destinados a la asignación del número de control, que deben formar parte del activo de la imprenta digital. La asignación del número de control es enteramente digital: los recursos destinados a ella son los activos de cómputo, software propio y datos que se relacionan a continuación, todos de propiedad y operación de ZENTTO GLOBAL TECHNOLOGY, C.A.
| Recurso destinado a la asignación | Naturaleza del activo | Identificación técnica |
|---|---|---|
| Servidor de aplicación de imprenta | Equipo de cómputo (activo) | Contenedor zentto-imprenta, servicio en el puerto 4900 |
| Servidor de base de datos fiscal | Equipo de cómputo (activo) | PostgreSQL 16, base zentto_imprenta_prod |
| Software propio de numeración | Intangible / desarrollo propio (activo) | Funciones imprenta.fn_assign_control_serie y fiscal.fn_assign_ncfd |
| Software propio de integridad | Intangible / desarrollo propio (activo) | src/services/hash-chain.service.ts (cadena SHA-256) |
| Catálogo de series de control | Datos propios (activo) | Tabla imprenta."ControlSerie" (rangos Desde/Hasta y correlativo) |
| Registro de números asignados | Datos propios (activo) | Tablas imprenta."ConsumoControl" y fiscal."DigitalInvoice" |
| Servidor de respaldo dedicado | Equipo de cómputo (activo) | Servidor exclusivo de respaldos cifrados, ubicación separada |
La numeración es de generación propia: ZENTTO GLOBAL TECHNOLOGY, C.A. produce sus propias series y asigna el número de control con recursos propios, sin dependencia de terceros para la generación del número. Cada serie es un rango registrado en el activo de datos de la empresa y el consumo de cada número queda registrado como evento verificable.
5. Independencia y aislamiento
La plataforma de imprenta digital opera como servicio independiente, con su propia base de datos, su propio dominio de rutas y su propio ciclo de despliegue. La asignación del número de control y el registro fiscal no dependen de procesos ajenos al ámbito fiscal, lo que preserva el aislamiento exigido entre la operación fiscal y cualquier otro flujo.
ZENTTO GLOBAL TECHNOLOGY, C.A. — RIF J-50849797-0 — Infraestructura e inventario (Art. 25 y 26 SNAT/2024/000102) — v1.0.0.