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
verifactu_hashchain_engine or
verifactu_qr_satellite. These modules overlap on the
verifactu.event and verifactu.record models, and Odoo replaces
one definition with the other instead of merging them. If you try, the installation is
stopped with a clear error message. Choose one of them for a given database.
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 official event-type list L2E of Orden HAC/1177/2024 (the same codes as the AEAT EventosSIF.xsd): start and end of operation as a "NO VERI*FACTU" system, launch of anomaly detection and anomalies detected (billing records and event records, with the L1E anomaly type), backup restore, export of billing records and export of event records of a period, the event summary record and other voluntary events.
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, plus a subsanación RegistroAlta when
an issued invoice is changed and posted again, 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-08 (billing records) or type-09 (event records) export event, so the audit trail stays complete across successive on-demand files.
Event-type catalogue
| Code | Event |
|---|---|
| 01 | Start of operation of the billing system as "NO VERI*FACTU" |
| 02 | End of operation of the billing system as "NO VERI*FACTU" |
| 03 | Launch of the anomaly-detection process on billing records |
| 04 | Anomalies detected in the integrity, inalterability and traceability of billing records |
| 05 | Launch of the anomaly-detection process on event records |
| 06 | Anomalies detected in the integrity, inalterability and traceability of event records |
| 07 | Backup restore, when managed from the billing system itself |
| 08 | Export of the billing records generated in a period |
| 09 | Export of the event records generated in a period |
| 10 | Event summary record |
| 90 | Other events recorded voluntarily by the system producer |
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; each new event is appended to the fingerprint chain, and fingerprints already stored are never recomputed or rewritten.
- 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-10-09
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Invoicing (account)
• Discuss (mail) |
| Lines of code | 3573 |
| Technical Name |
verifactu_event_log_export |
| License | OPL-1 |
| Website | https://pokutsoft.com/ |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module