Overslaan naar inhoud
Menu

Veri*Factu System in Spain


What is Veri*Factu?


Veri*Factu is the new system for issuing verifiable invoices. This measure was born as a result of the Anti-Fraud Law, created with the intention of reducing tax fraud in the country. On the other hand, the Verifactu measure also aims to encourage the digitalization of companies in accounting processes, both in invoicing and taxation.

With this new system, all invoices must be issued digitally. This means that only invoices issued from a system certified by the Tax Agency will be valid. For example, if a company or self-employed person currently issues invoices using tools such as Word, they will no longer be valid.

Veri*Factu ia available in Odoo since July 2025, allowing both companies and freelancers to start using the new invoice delivery system. It will be available first in Odoo version 17.0, in all environments: SaaS, Odoo.sh, and on-premise. The deadline for companies is January 1, 2026, and for freelancers, July 1, 2026.


What are the advantages of Veri*Factu?


The digitization of accounting is a great advantage for all companies, providing a great time saving for employees and, therefore, will be reflected in economic savings. The digitization of both issued and received invoices has considerable time savings, thanks to digitization systems such as OCR. With Verifactu, invoices will be issued automatically to the Tax Agency, so that manual work will disappear, freeing up resources for other tasks.

In this case we find similarities with the Electronic Invoice. Born with the same objective of reducing tax fraud, connected with the Tax Agency and with the xml format that prevents invoices from being edited or manipulated. In the case of Odoo, the module for electronic invoicing is already developed and operational, fully integrated with invoicing and accounting. 


What are Veri*Factu's requirements?

In order for an invoicing system to be certified to comply with the Verifactu system, it must meet certain requirements. The first requirement is that the system must be able to keep track of invoices in an orderly fashion. It has to be connected to the tax office for the remission of invoices. In addition, the system must ensure that the invoice data cannot be altered.

The data that are sent from each invoice to the Tax Agency are:

  • NIF, name and surname or reason of both the issuer and the receiver.
  • Invoice serial number
  • Invoice date and date of payment
  • Specification of whether it is a complete invoice or a simplified invoice
  • Description of the transactions
  • Amount: taxable and total amount
  • Computer system identification code and registration record code
  • Exact time at which the registration invoice record is generated
  • QR

In the Order HAC/1177/2024 published in the BOE on October 17, the latest updates on the requirements for VeriFactu can be found. Articles 3, 5 and 16 detail the requirements for Verifiable Invoice Issuing Systems or VeriFactu.

How does it work in Odoo?

  1. Install the Veri*Factu module from Applications.
  2. Configure the Veri*Factu certificate from the certificates section in the Accounting application.
  3. Create an invoice for a customer and Odoo will take care of the rest. You can see the status of the invoice in the Veri*Factu section, and you will find the QR code in the generated PDF.

Compliance with Veri*Factu using Odoo is as simple as following these easy steps. No further concerns. In addition, you will find Odoo's Statement of Responsibility as a Veri*Factu guarantor here for Odoo 17 and Odoo 18.

FAQs

Yes. Odoo has developed an integration that ensures compliance with the technical requirements set by the AEAT, including:

  • Generation of the invoice fingerprint (hash).

  • Secure and immutable invoice registration.

  • Electronic signature if required.

  • Communication with AEAT systems (either directly or via API).

It only needs to be at the top if no technical constraints prevent it.

In our case, invoice headers contain information controlled globally (company logo, addresses), so it’s not managed directly by the invoice model but by the document report.

This means there’s no strict relationship between the invoice content and the header, so we can’t remove the QR from the invoice body.

A company can join VERIFACTU at any time. Once joined, it must remain in this mode until the end of the calendar year.

If the year starts with a non-verifiable invoice system, you can switch to VERIFACTU at any time, but you must stay in that mode until the end of the calendar year.

If the document is resent successfully, we receive a response stating that the document was rejected with error [3000] Duplicate billing record.

(Assuming AEAT had registered/did not reject the document on the initial submission)

There are two ways to create a Veri*Factu correction document for invoices:

  1. Correction by difference: Done via "Cancel" in the credit note wizard.
    We simply send a document that represents the credit note as a "correction by difference." It references the corrected invoice.

  2. Correction by substitution: Done via "Cancel and create invoice" in the credit note wizard.
    First, we send a document representing the canceling credit note (it does not reference the original invoice and is sent as a "type of invoice").
    Then we send the new invoice created by the wizard. It is sent as a "correction by substitution" and references the original invoice.
    A new field has been added to link the new invoice to the original one.

It's not possible to correct multiple documents with a single new one (neither by difference nor substitution).

In Veri*Factu, it's possible to submit a "Subsanación" (correction) if the change doesn't require updating the invoice PDF.

Currently, this is not supported.

That is, sending new presentation documents for already registered records (even with errors) is not allowed.

It’s also not possible to reset registered (possibly erroneous) records to draft.

According to Odoo’s logic, the first confirmation of an invoice is considered internal until you click Print and Send.

That’s why, for example, if you preview a confirmed invoice, the preview will be a PROFORMA invoice, even if proformas are not enabled in your database.

This is to prevent anyone from getting an invoice before the billing department officially issues it.

Start Now - It's Free



Aanmelden om een reactie achter te laten
Our Own Success Story: 5 Reasons Our APAC HR Manager Loves Odoo Payroll