← Back to the blog
VeriFactu Published May 5, 2026 · 9 min read

VeriFactu in 2026: a practical guide for freelancers and SMEs

VeriFactu is the new way the Spanish tax agency requires invoices to be issued in Spain. If you invoice in common territory and you are not under SII, this affects you. Here it is in plain English, no legal noise.

In this article
  • 1. What VeriFactu is and where it comes from
  • 2. Who is obligated (and who isn’t)
  • 3. What a SIF is and why your spreadsheet is no longer valid
  • 4. How a VeriFactu invoice is built
  • 5. Do you have to send everything to the AEAT?
  • 6. Common pitfalls in practice
  • 7. How to get started today

1. What VeriFactu is and where it comes from

VeriFactu is the system introduced by Royal Decree 1007/2023 and developed by Order HAC/1177/2024. The goal is simple: every invoice issued in Spain must be recorded in a way that is complete, chained and tamper-evident, and the Spanish tax agency must be able to verify it.

To achieve this, the regulation sets requirements on the invoicing software systems (SIF, Sistema Informático de Facturación) and on the content and traceability of every invoice. The core piece is an invoicing record signed with a hash and chained to the previous one — like blocks in a blockchain.

2. Who is obligated (and who isn’t)

Useful summary:

Quick rule: if you’re not under SII and not in the Basque Country or Navarre with their own system, you are almost certainly under VeriFactu.

3. What a SIF is and why your spreadsheet is no longer valid

RD 1007/2023 defines the Invoicing Software System as the hardware-and-software stack that supports invoice issuance. To be compliant it must follow four principles:

  1. Integrity and immutability: an issued invoice cannot be modified. Corrections happen via corrective invoice (rectificativa).
  2. Traceability: each record is chained to the previous one through a hash.
  3. Retention: records and invoices must be kept legible for the legal period.
  4. Accessibility: AEAT must be able to query the records on request.

That’s why an Excel or a Word document is not a compliant SIF. There’s no chain, no hash, and above all no proof that the file hasn’t been altered after the fact.

4. How a VeriFactu invoice is built

When you issue an invoice, the SIF creates an invoicing record with:

This record produces two visible artifacts on the invoice handed to the customer:

  1. The legend “Verifiable invoice on the AEAT website” or “VERI*FACTU” depending on the mode.
  2. A QR code with essential data (issuer NIF, number, date, amount) that the AEAT and the recipient can verify.
# Simplified VeriFactu QR payload example
NIF=B12345678
NUM=A2026/000123
DATE=2026-05-05
AMT=120.00

5. Do you have to send everything to the AEAT?

This is what causes the most confusion. There are two modes:

Both are valid. VERI*FACTU mode is more comfortable in the medium term: no more data dumps and no more requests for information.

Heads up: even in non-submission mode, you must still report incidents (so-called system events) for cases like SIF failures or restarts after downtime.

6. Common pitfalls in practice

  1. Breaking the chain. If your system fails and retries without proper discipline, you can produce two records pointing to the same previous hash. The chain breaks and AEAT will see it.
  2. Editing already-issued invoices. An issued invoice is not edited — it is rectified. If your software lets you “edit and save”, it’s not VeriFactu.
  3. Wrong SIF producer NIF. The record must identify the software vendor (not your company). If empty, AEAT will reject it.
  4. Out-of-control number series. Number jumps, duplicate series or unexplained resets are red flags.
  5. Non-commercial rounding. Banker’s rounding (the default in some languages) drifts cents away from what AEAT expects.

7. How to get started today

Three steps:

  1. Check whether VeriFactu applies to you (if you’re not under SII or foral system, yes).
  2. Pick a compliant SIF. Verify: chained hash, official QR, series control, real corrective invoices, and (optionally) VERI*FACTU mode.
  3. Adapt your operations: no more “editing issued invoices”, and the whole team aware of when to void vs. rectify.

FacturaOk implements VeriFactu with a hash chain protected by row-level database locks, a unique constraint per (company, invoice, type) against duplicates, and a real sandbox so you can test without sending anything to the AEAT before going live.

Get started with VeriFactu the easy way

Create a free sandbox account. When you are ready, switch to live with your certificate.

Try it free