Integridad, Trazabilidad, Inalterabilidad e Inviolabilidad
Este anexo describe los mecanismos mediante los cuales el sistema Zentto ERP garantiza la integridad, la trazabilidad, la inalterabilidad y la inviolabilidad de los registros, en cumplimiento del artículo 3 de la Providencia Administrativa SNAT/2024/000121. Los hechos de negocio y los hechos fiscales quedan registrados, son atribuibles a un usuario o proceso, conservan su secuencia temporal, permiten verificación posterior y no dependen de edición manual para su validez.
1. Cadena hash SHA-256 (inalterabilidad e inviolabilidad)
El componente zentto-seniat-compliance implementa una bitácora inmutable en
compliance."EventLedger". Cada evento fiscal calcula un hash criptográfico
(SHA-256) a partir del hash del evento anterior y del contenido esencial del evento, de modo
que la secuencia queda encadenada y protegida por contribuyente (tenant). Cualquier
alteración, inserción o eliminación posterior rompe la cadena y se detecta en la
verificación.
graph LR E0["Evento N-1
HashActual: H(N-1)"] -->|HashAnterior = H(N-1)| E1["Evento N
PayloadHash = SHA256(payload)
HashActual = SHA256(H(N-1) + PayloadHash)"] E1 -->|HashAnterior = H(N)| E2["Evento N+1
HashActual = SHA256(H(N) + PayloadHash)"] E2 --> V["Verificación /seniat/verify/:tenantId
recalcula la cadena → OK / ALTERADA"]
Campos relevantes del ledger: EventId, TenantId,
RifEmisor, EventType, ReferenceType,
ReferenceId, PayloadHash, HashAnterior,
HashActual, OccurredAt, ReceivedAt y
SeniatDispatchStatus.
2. Registro automático de eventos (trazabilidad)
Toda interacción, operación o suceso relevante se registra automáticamente. El ERP mantiene trazabilidad en varias capas:
audit.AuditLog— cambios de registros.audit.IamChangeLog— cambios de usuarios, roles y permisos.fiscal."Record"— operaciones con relevancia tributaria.
El módulo de documentos de venta, por ejemplo, registra eventos de observabilidad y auditoría al emitir o anular documentos, de forma automática y sin intervención del operador.
3. Registro de accesos y consultas
Las consultas sensibles quedan registradas en audit."AccessLog". Eventos de
acceso registrados: EVENT_PUBLISHED, LEDGER_VIEWED,
REPORT_GENERATED, SENIAT_QUERY, SENIAT_DISPATCH y
VERIFY_INTEGRITY. Metadatos auditables: actor, IP, user-agent, recurso
consultado, fecha y hora, y metadatos de la operación. De este modo, el propio acceso del
SENIAT queda trazado.
4. Fechado con hora (sellado temporal)
Todos los registros se sellan con fecha y hora. El sistema maneja las marcas temporales en
UTC-0 de forma uniforme (OccurredAt, ReceivedAt), y la presentación
al usuario convierte a la zona horaria de la empresa. Esto asegura una secuencia temporal
consistente y verificable, independiente de la zona horaria del operador.
5. Correcciones solo por nota de débito o crédito
El documento fiscal emitido es inalterable. Ninguna corrección modifica el documento original: las correcciones se realizan exclusivamente mediante la emisión de una nota de débito o una nota de crédito que referencia el documento afectado. El original se preserva íntegro y la corrección queda enlazada y trazada en la bitácora, conforme al artículo 3 de la Providencia.
graph TD
F["Factura original (inalterable)"] -->|error / ajuste| D¿Tipo de corrección?
D -->|disminuye monto| NC["Nota de crédito (referencia a la factura)"]
D -->|aumenta monto| ND["Nota de débito (referencia a la factura)"]
NC --> L["Bitácora: original preservado + corrección enlazada"]
ND --> L
6. Aplicación correcta de las normas de IVA
El cálculo del IVA se realiza por línea de detalle según la alícuota aplicable, y se consolida en base imponible, impuesto y total del documento. La lógica reside en procedimientos de base de datos y en el motor de emisión, no en la interfaz, lo que garantiza un cálculo uniforme y auditable. Las retenciones de IVA e ISLR se gestionan en los módulos de compras y pagos cuando corresponden al sujeto pasivo.
7. Verificación de integridad
El sistema expone rutas de verificación que recalculan la cadena y confirman su consistencia:
GET /v1/ledger/verify/:rif y GET /seniat/verify/:tenantId. El SENIAT
puede verificar en cualquier momento, mediante su clave de consulta, que la cadena de eventos
registrada para el contribuyente permanece íntegra.
8. Conservación de registros
La configuración del componente de compliance establece
compliance.retention_years = 10. En consecuencia, la bitácora de cumplimiento y
sus reportes fiscales se conservan con un horizonte mínimo de 10 años. El detalle del plan de
respaldo y conservación se describe en el
anexo de respaldo, conservación y
retención.
9. Protección de la inviolabilidad por seguridad de la sesión
La inalterabilidad de la cadena se complementa con controles que impiden la suplantación o la
manipulación de operaciones: la sesión viaja en una cookie httpOnly/Secure
(no accesible por JavaScript, protección frente a XSS), con verificación dual de JWT
RS256(JWKS)/HS256, defensa CSRF por validación de origen y limitación de tasa. La gestión de
vulnerabilidades del software (SAST y escaneo de dependencias en CI/CD) y la centralización de
secretos en HashiCorp Vault refuerzan la inviolabilidad exigida por el artículo 3. El detalle
se documenta en la página de
seguridad, CI/CD y monitoreo.
10. Trazabilidad cruzada
El resultado es una trazabilidad cruzada entre la operación del usuario, la transacción de negocio y el rastro fiscal verificable: cada documento puede vincularse con el usuario que lo generó, la empresa, la serie o el rango afectado, el evento del ledger y su estado final, de modo que la información sea íntegra, accesible y legible para la Administración Tributaria.
ZENTTO GLOBAL TECHNOLOGY, C.A. — RIF J-50849797-0 — Integridad y trazabilidad (Art. 3 SNAT/2024/000121) — v1.0.0.