A validated invoice in Dolibarr can no longer be deleted or rewritten
The inalterability controls of Royal Decree 1007/2023, applied in the interface, in Dolibarr's processes and in the database itself. It's the anti-fraud module that VERI*FACTU needs active.
|
3 layers
interface, Dolibarr triggers and database
|
SHA-256
file integrity hash
|
8
languages in the interface
|
V14 – V24
PHP 7.0 or higher
|
The problem it solves
RD 1007/2023 requires that a billing record, once issued, cannot be altered or made to disappear. Dolibarr, as it comes out of the box, lets you do exactly that in several places:
| What you find |
What it costs you |
| A validated invoice can go back to draft and be edited with the Modify button |
The amount or the lines your client already has can change without leaving a trace on the invoice |
| The last validated invoice in the series can be deleted if it hasn't been posted to accounting |
An already issued number disappears and the series stops adding up |
| Anyone with access to the database can delete the row or change the number |
Any control that lives only in the interface is bypassed with a SQL query |
RD10072023 closes those three doors. It doesn't turn Dolibarr on its own into a compliant billing system (that's completed by VERI*FACTU), but it's the piece that guarantees what's already been invoiced stays untouched.
NEW IN 1.6
Tested up to Dolibarr 24 and in eight languages
1.6.0 has been tested on Dolibarr 14, 18 and 24. It brings the interface in Spanish, English, Catalan, Galician, French, German, Italian and Portuguese, clearer warnings when an invoice is blocked, and a package under 120 KB with only what your installation needs.
What it looks like in your Dolibarr
It doesn't add menus or new screens to your daily work: it acts where you already are.
On a validated invoice, Modify and Delete appear disabled and explain why.
The indicator in the top bar shows the version and status, and opens the responsible declaration.
Setup: the serial number and little else. Everything else works on its own once you activate it.
Standard Dolibarr versus Dolibarr with RD10072023
| With a validated invoice… |
Standard Dolibarr |
With RD10072023 |
| Reverting to draft |
Allowed with the Modify button |
Blocked, with the reason shown |
| Deleting it |
The last one in the series, if it hasn't been posted to accounting |
Never, not from Dolibarr nor in the database |
| Adding, changing or deleting lines |
Possible after reverting to draft |
Blocked in any case |
| Protecting the number in the database |
Doesn't exist |
A trigger rejects any change to the reference |
| Responsible declaration |
Doesn't exist |
One click away from the top bar |
What's included
What's invoiced stays as it is
An invoice with a final number doesn't go back to draft, isn't modified, isn't deleted and doesn't accept changes to its lines. Drafts (PROV) are edited normally.
Protection outside Dolibarr too
When activated it creates triggers in MySQL/MariaDB that reject deleting a validated invoice or changing its reference, even if the command comes through direct SQL or from another application.
Series in chronological order
It won't let you validate a draft dated earlier than the last validated invoice, or move back the date of one already validated.
Responsible declaration and unalterable logs
It generates the responsible declaration after checking the serial number and the SHA-256 hash of the module's files. It activates Dolibarr's Unalterable logs (BlockedLog) module and won't let you deactivate it in Spain.
What it's used for
- As an anti-fraud component of VERI*FACTU, which requires it active and already includes it in its package.
- To close the door on accidental or intentional changes to invoices already issued.
- For accounting firms that manage their clients' Dolibarr and need the history left untouched.
- To arrive at an inspection or audit with a complete, orderly invoice series.
Getting started
1
Upload the ZIP from Home → Setup → Modules → Deploy/install external module.
2
Activate RD 1007/2023. This also activates the Unalterable logs and creates the database triggers.
3
Enter the serial number in the module's setup.
4
Click RD1007/2023 in the top bar and download your responsible declaration.
Requirements
| Dolibarr |
V14 to V24 (tested on 14, 18 and 24) |
| PHP |
7.0 or higher |
| Database |
MySQL or MariaDB, with permission to create triggers and procedures. PostgreSQL is not supported. |
| Connection |
Outbound HTTPS to sdl.easysoft.es for the license and the responsible declaration |
| Updates |
365 days of access to updates |
Before you buy
Can I adapt it to my case?
Yes. You get the full source code and can read it, modify it and adapt it without asking permission. Keep in mind that the responsible declaration only covers the unmodified code: the integrity hash detects any change to the files.
How do I test it without risking my data?
Install it first on a copy of your Dolibarr. From the moment you activate it, validated invoices can no longer be deleted, not even in the database, so run whatever tests you need there. When you deactivate it, the triggers are removed.
What if I use other modules on invoices?
It coexists with them. If one of them steps into invoice validation, it may get ahead of the date check; the block on deleting invoices and lines isn't affected. Write to us at
info@easysoft.es before buying and we'll check it against your installation. We'd rather tell you it doesn't fit than sell you something that won't work for you.
What happens when the 365 days are up?
The module you have installed keeps working. What expires is access to new versions and downloads. With regulations that are still evolving, keeping your updates current is the sensible choice: when something changes, the new version reaches you with a notice inside Dolibarr.
Active maintenance
1.6.0 is released in September 2026, tested on Dolibarr 14, 18 and 24. Every version is registered in our license panel with its integrity hash, and your Dolibarr notifies you when there's a new one.
|
3
protection layers
|
100%
full source code
|
8
languages in the interface
|
365
days of updates
|
Does it fit what you need?
Tell us about your case and we'll tell you if RD10072023 works for you — and if not, we'll tell you that too.
info@easysoft.es www.easysoft.es