Waar de knop staat en wie erbij kan
De knop Verify Integrity staat in de weergave van de keten en in het scherm All Chain States (Asesoría). Hij bestaat in de vier gepubliceerde takken van de module (Odoo 17, 18, 19 en 20) en hangt van geen enkele status af: hij is altijd zichtbaar.
Het kaartje van de keten open je via Verifactu / SIF › Compliance Records › Chain State. Elk deel van het menu vraagt zijn eigen rechten en als je die niet hebt, zie je dat deel niet:
Chain State:Auditor (read-only)ofSIF Manager.Compliance Records:Accountant,Auditor (read-only)ofSIF Manager.Verifactu / SIF:Accountant,Asesoría Operator,Auditor (read-only),Privacy OfficerofSIF Manager.

Verifactu / SIF › Compliance Records › Chain State en daaronder de knop Verify Integrity, aanwezig in Odoo 17, 18, 19 en 20.
Chain State, nog zonder records: één enkele rij van YourCompany, actief, met de totalen op nul en de integriteitsstatus Unchecked.Wat er al gebeurt zonder op de knop te drukken
Het stoplicht van elke keten is rood, oranje of groen. Volgens de code van Odoo 20.0 is het rood als de verzendwachtrij van het bedrijf een mislukte verzending of een verzending in de dead letter heeft. Het is oranje als er openstaande verzendingen of verzendingen in herpoging zijn, als het actieve certificaat dat het eerst verloopt nog minder dan 30 dagen geldig is (of het bedrijf geen actief certificaat heeft), of als de integriteitsstatus van de keten niet gecontroleerd of verbroken is. In alle andere gevallen is het groen.
Dat stoplicht wacht niet tot je ergens op drukt. Het wordt herberekend door de geplande actie Verifactu: Asesoría Cockpit RAG Refresh, die elke vijf minuten draait en bij installatie actief is, en door de actie Verifactu: Process Submission Queue, die elke minuut draait en ook bij installatie actief is. Het wordt ook herberekend bij het aanmaken of opslaan van een record in de verzendwachtrij, en bij het activeren van VeriFactu op het bedrijfskaartje en opslaan daarvan, wat bovendien de keten aanmaakt als die nog niet bestond.
Die routes verversen het stoplicht. Wat de knop toevoegt is de verificatie van de keten, het opslaan van het resultaat en dat meteen doen, alleen voor de keten die je open hebt.
Een voorbeeld om het te doorlopen
Voorbeeld Fictief geval: het bedrijf en de cijfers zijn verzonnen om de werkwijze uit te leggen.
Lucía doet de administratie van een verzonnen bedrijf, Hilados del Vallès, dat al facturen uitgeeft met de module en het recht SIF Manager heeft. Voor een gesprek met haar adviseur wil ze weten of de keten van records intact is.
- Ze opent
Verifactu / SIF › Compliance Records › Chain Stateen gaat naar het kaartje van de keten van haar bedrijf. - Ze drukt op
Verify Integrity. De knop werkt op de geopende keten, telkens één. - Ze wacht op de melding: een succesmelding als de keten slaagt, of een foutmelding met het recordnummer en de reeks waar hij verbroken is.
- Het scherm laadt zichzelf opnieuw, zonder dat je de browser hoeft te verversen.
Wat de knop controleert, record voor record
De knop leest in één keer alle aanmeldingsrecords en alle annuleringen van het bedrijf in en sorteert ze op recordnummer. Hij start met een lege vorige hash, het zaadje van het eerste record.
Voor elk record berekent hij de hash opnieuw met de opgeslagen gegevens:
- Bij aanmeldingen: identificatie van de uitgever, reeks en nummer, uitgiftedatum, factuurtype, totaal belastingbedrag, totaalbedrag, vorige hash en datum en tijd van aanmaak met hun tijdzone.
- Bij annuleringen: identificatie van de uitgever, reeks en nummer, uitgiftedatum, vorige hash en datum en tijd van aanmaak met hun tijdzone.
Daarna vergelijkt hij de herberekende hash met de opgeslagen hash. Bij annuleringen geldt: als de opgeslagen hash niet overeenkomt met de berekende, maar wel met de oude berekeningswijze, accepteert de code hem.
Het principe is dat van de AEAT: de hash is een SHA-256 van het record, geketend aan het vorige, en de AEAT berekent hem opnieuw en, als hij niet klopt, accepteert het record met een fout die hersteld moet worden.
Wat er verandert als hij klaar is
Na de controle doet de knop drie dingen, in deze volgorde:
- Hij slaat de datum en tijd van de verificatie en het volledige resultaat op.
- Hij berekent het stoplicht van die keten op dat moment opnieuw, zonder op de taak van elke vijf minuten te wachten.
- Hij toont de melding. Als de keten in orde is, staat erin hoeveel records zijn geverifieerd. Als hij verbroken is, staan erin het recordnummer en de reeks van de eerste fout en hoeveel records zijn nagelopen. De foutmelding blijft vast op het scherm staan; de succesmelding niet. Daarna laadt het scherm zichzelf opnieuw.
De twee afloopjes van het voorbeeld
Als de keten van Hilados del Vallès slaagt, ziet Lucía de succesmelding met het totaal aan geverifieerde records. Het stoplicht wordt dan herberekend met de regels hierboven: de integriteitsstatus niet gecontroleerd of verbroken maakt het oranje, en mislukte verzendingen maken het rood.
Als hij verbroken is, geeft de melding haar twee gegevens om te noteren: het recordnummer en de reeks van de eerste fout, plus hoeveel records zijn nagelopen. Dat is het punt waar je het onderzoek begint.
Wat Lucía hieruit meeneemt
- De knop staat altijd binnen handbereik in de weergave van de keten, maar of je daar komt hangt af van je rechten in het menu.
- Elke druk op de knop verifieert één enkele keten, slaat het resultaat op en ververst het stoplicht van die keten.
- Een melding van een verbroken keten geeft je het record en de reeks van de eerste fout.
- Het stoplicht ververst zichzelf al; de knop dient om de verificatie en het stoplicht op dat moment actueel te hebben.
Wil je hulp bij je installatie
FlexigoTech implementeert Odoo 17, 18, 19 en 20 en ontwikkelt connectoren en integraties op maat. Wil je nagaan hoe VeriFactu er in jouw installatie voor staat, neem dan contact met ons op.
Lees verder
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen
Bronnen
- Broncode van de module: flexigo_spain_verifactu 20.0 (1fdc980f): views/verifactu_cadena_views.xml
- Broncode van de module: flexigo_spain_verifactu 20.0 (1fdc980f): models/verifactu_cadena.py
- Broncode van de module: flexigo_spain_verifactu 20.0 (1fdc980f): models/res_company.py
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_
- flexigotech.com/en/services.html
