| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1354 |
| Technical Name |
verifactu_qr_satellite |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Invoicing (account) |
| Lines of code | 1354 |
| Technical Name |
verifactu_qr_satellite |
| License | OPL-1 |
| Website | https://gencbaris.com/odoo_plugins/ |
| Versions | 18.0 19.0 |
Veri*factu QR & Fingerprint Satellite for Spain
AEAT-compliant Veri*factu QR codes and SHA-256 record fingerprint (huella) chains, generated inside your own Odoo database
What this module does
Spain's anti-fraud invoicing law (Real Decreto 1007/2023) and its technical order (Orden HAC/1177/2024) require every invoice issued by a certified billing system (SIF) to carry a Veri*factu QR code and to be anchored to a tamper-evident SHA-256 fingerprint chain (huella). This satellite module produces both, exactly to the published specification, directly on your posted customer invoices. It is a pure format and fingerprint generator: it builds the QR payload, the record XML and the hash chain so you can print compliant invoices and transmit the records to the AEAT cotejo / remision endpoint with your own credentials (BYOK).
Veri*factu QR code
Generates the AEAT verification QR for each invoice, encoding the cotejo URL with
the nif, numserie, fecha and
importe parameters at error-correction level M. Production and
pre-production (test) base URLs are selectable per company.
SHA-256 huella chain
Computes the record fingerprint precisely as defined in article 13: the
name=value&... concatenation, UTF-8 encoding, SHA-256, and a
64-character uppercase hex output. Each record chains onto the previous
Huella, building an unbroken integrity chain validated against the
official AEAT example vectors.
RegistroAlta & RegistroAnulacion
Builds the canonical billing-record XML in the AEAT SuministroInformacion namespace: invoice identity, issuer, invoice type (F1/F2/F3/R1-R5), VAT breakdown (Desglose), totals, the chaining block (Encadenamiento) and the SistemaInformatico identification. Cancellations generate a chained RegistroAnulacion.
NIF / NIE / CIF validation
Validates the issuer and counterparty Spanish tax numbers with the real check algorithms: the DNI/NIF mod-23 control letter, the NIE prefix substitution, and the CIF odd/even weighting control character. Malformed identifiers are blocked before a record is fingerprinted.
Feature summary
| Capability | Detail |
|---|---|
| QR code | AEAT cotejo URL, ECC level M, prod / test endpoints |
| Fingerprint | SHA-256 huella per Orden HAC/1177/2024 art. 13, 64-char uppercase hex |
| Chaining | Encadenamiento with PrimerRegistro and RegistroAnterior linkage |
| Records | RegistroAlta and RegistroAnulacion XML (SuministroInformacion) |
| Validation | NIF/NIE/CIF check digits, VAT totals, ISO-8601 timestamp, IVA rates |
| Chain register | Persisted, searchable record list with integrity verification |
| Batch | Range generator that builds the chain in document order |
| Boundary | BYOK — you transmit to the AEAT with your own credentials |
How it works
- Enable Veri*factu on the company and set the issuer NIF (or rely on the company VAT).
- Post a customer invoice — it is flagged "To Generate".
- Click Generate Veri*factu to validate, fingerprint, build the record XML and render the QR.
- The record is added to the searchable chain and the company chain head advances.
- Print the QR on the invoice and transmit the record to the AEAT with your own credentials.
Scope & disclosure
This module generates the Veri*factu format and fingerprint only. It does not transmit data to the AEAT on your behalf and does not act as a certified third party: submission to the AEAT cotejo / remision service is performed by you, with your own credentials. All data, identifiers and fingerprints remain inside your Odoo database. Authority: Agencia Estatal de Administracion Tributaria (AEAT), Real Decreto 1007/2023 and Orden HAC/1177/2024.
Screenshots
Generate Batch
Records
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