Spain SIF Event Log & Veri*factu Export
Generate the SIF event log (registro de eventos) and the billing-record list for AEAT on-demand submission - BYOK
What this module does
Spanish billing-software regulation RD 1007/2023 (the SIF regulation) and development order HAC/1177/2024 require a compliant billing system (Sistema Informatico de Facturacion, SIF) to keep a tamper-evident event log and to be able to hand the AEAT, on demand, both the event-log file and the list of billing records. This module generates exactly those two files inside your Odoo database, fully fingerprinted and chained, ready for you to submit through your own AEAT credentials.
BYOK boundary: this module is a format generator. It
builds the event-log XML and the
RegFactuSistemaFacturacion record-list XML and
stores them as downloadable attachments. Submission to the AEAT
is performed by you, with your own electronic certificate /
credentials. The module never transmits anything and never
impersonates a certified device.
Key features
Full SIF event catalogue
The complete Article 16 / HAC-1177-2024 event types: system start-up and shut-down, anomaly-detection launch and detection (records and event log), record-export, backup restore, alta/anulacion generation, period summary, expedition-mode change and AEAT-transmission incidents.
Tamper-evident fingerprint chain
Every event and every billing record carries a SHA-256 huella (64 uppercase hex characters) computed over its own content plus the previous fingerprint, exactly as the hash specification prescribes. Any deletion or alteration breaks the chain, and the built-in verifier pinpoints the break.
Billing-record list (RegFactu)
Translate posted customer invoices into the AEAT
RegFactuSistemaFacturacion envelope, with a
Cabecera (ObligadoEmision + RemisionVoluntaria),
one RegistroAlta / RegistroAnulacion
per invoice, a per-rate VAT breakdown
(BaseImponible / CuotaRepercutida) and the chained huella.
NIF / CIF / NIE validation
The obligated-issuer and software-provider identifiers are validated with the official Spanish control-character algorithms (DNI mod-23 letter, NIE prefix mapping, CIF weighted control), surfaced as Odoo constraints so a bad identifier is caught before you export.
Pre-submission business rules
Validate the file before you upload it: valid issuer NIF, non-empty intact chain, mandatory lifecycle events of a clean period, and net + VAT = total / breakdown-VAT = CuotaTotal cross-checks. Findings are listed with severity so you fix the data in Odoo instead of round-tripping the AEAT validator.
Period summary & export logging
Each export can append a type-10 period summary (event counts, anomaly count, first/last timestamp) and automatically records a type-06 export event, so the audit trail stays complete across successive on-demand files.
Event-type catalogue
| Code | Event |
|---|---|
| 01 | System start-up |
| 02 | System shut-down |
| 03 | Anomaly-detection process launched |
| 04 | Anomaly detected in billing records |
| 05 | Anomaly detected in the event log |
| 06 | Billing-records export |
| 07 | Backup restore |
| 08 | Generation of an alta billing record |
| 09 | Generation of an anulacion billing record |
| 10 | Period event summary |
| 11 | Expedition-mode change (Veri*factu / no Veri*factu) |
| 12 | AEAT transmission incident |
How it works
- Configure the obligated-issuer NIF and the SistemaInformatico block on the company form (name, id, version, installation, provider NIF).
- Log SIF lifecycle events as they happen, or let the module record exports automatically; the fingerprint chain is rebuilt on every change.
- Open Generate Export, pick a month and a kind (event log or billing-record list), and validate.
- Generate the XML file, download it, and submit it to the AEAT with your own credentials.
Compliance & scope
This module builds and stores the SIF event-log XML and the billing-record-list XML in your Odoo database. It implements the published event catalogue, the SHA-256 fingerprint chaining and the Spanish fiscal-identifier control algorithms. It does not transmit data to the AEAT and is not a certified transmission device; submission is performed by you, the registered taxpayer, through your own AEAT channel.
Screenshots
Sif Events
Sif Exports
Generate Export
Log Event
Update date: 2026-07-02