Een OCR-factuur zal niet matchen met een inkooporder omdat OCR alleen het document leest; het koppelt nooit een PO. De oplossing is het koppelen van de PO op de conceptfactuur (of de factuur vanuit de PO laten starten), met Bill Control op ontvangen hoeveelheden zodat de three-way-check echt is.
Je zette leveranciersfactuur-OCR aan om je financiële team het typewerk te besparen. Een leveranciersfactuur belandt in de mailbox, Odoo leest hem, en een conceptfactuur verschijnt met de leverancier, het bedrag en de regels ingevuld. Mooi. Daarna vink je ook three-way matching aan, omdat je wilt dat Odoo bevestigt dat je alleen betaalt voor wat is besteld en ontvangen.
En niets sluit op elkaar aan. De OCR-factuur blijft daar staan zonder inkooporder erachter. De "Should Be Paid"-status wordt niet groen. Je team is weer handmatig op zoek naar de bijbehorende PO, opent de factuur, opent de inkooporder, vergelijkt regel voor regel. De twee functies die je inschakelde om tijd te besparen zorgen nu voor meer werk, niet minder.
Dit is een van de meest voorkomende financiële verrassingen in Odoo. OCR en three-way matching werken allebei. Ze praten alleen niet met elkaar zoals mensen aannemen. Hier lees je hoe matching echt werkt, waarom een OCR-factuur zonder PO-koppeling binnenkomt, en hoe je de flow opzet zodat de twee niet meer vechten.
Waarom het gebeurt
Three-way matching vergelijkt drie documenten: de inkooporder (wat je bestelde), de ontvangst (wat het magazijn registreerde als ontvangen) en de leveranciersfactuur (wat de leverancier factureerde). Odoo controleert of de hoeveelheid, de omschrijving en de prijs over alle drie overeenkomen voordat het je comfortabel kan vertellen dat de factuur betaald hoort te worden. Als ze niet overeenkomen, markeert het een exception. Het doel is voorkomen dat je betaalt voor goederen die je nooit hebt besteld of nooit hebt ontvangen.
Om die check te laten draaien, moet de factuur gekoppeld zijn aan een inkooporder. Die koppeling is de hele basis van de vergelijking. Geen PO op de factuur, geen drie documenten om te matchen, geen matching.
Hier zit de adder onder het gras. OCR maakt die koppeling niet. OCR leest de PDF die de leverancier stuurde en vult een conceptfactuur in op basis van de tekst op de pagina: leverancier, datum, bedragen, soms regelomschrijvingen. Het zoekt niet in je inkooporders en koppelt niet de juiste. Dus een OCR-factuur ontstaat als een losstaand document. Three-way matching heeft dan niets om op te kauwen, want vanuit zijn oogpunt is de factuur helemaal niet verbonden met een order.
De verwarring is begrijpelijk. Beide functies zitten in hetzelfde gebied, beide raken leveranciersfacturen, en de marketing laat ze klinken als één soepele pijplijn. Het zijn twee aparte stappen. OCR haalt de data van de pagina. Matching heeft een PO-koppeling nodig die jij nog steeds moet maken.
De oplossing, in stappen
Zet three-way matching op de juiste manier aan
Ga naar Purchase > Configuration > Settings, scroll naar de sectie Invoicing en vink 3-way matching aan. Opslaan.
Eén voorwaarde is hier belangrijk en gemakkelijk te missen. Three-way matching doet zijn werk alleen wanneer het Bill Control-beleid is ingesteld op Ontvangen hoeveelheden, niet Bestelde hoeveelheden. Dit stel je per product in (of als standaard op de productcategorie). Met Bestelde hoeveelheden factureert Odoo tegen wat je bestelde en komt de ontvangst nooit in de vergelijking, dus het "three-way"-deel is hol. Stel Bill Control in op Ontvangen hoeveelheden voor de producten waar de check moet meetellen.
Deze ene instelling is belangrijk omdat hij het verschil maakt tussen een echte three-way-check (order, ontvangst, factuur) en een two-way-check (order, factuur). Als ontvangsten de check niet voeden, kun je nog steeds te veel betalen voor goederen die nooit zijn aangekomen.
Begrijp de "Should Be Paid"-status
Zodra matching aanstaat, draagt elke bevestigde leveranciersfactuur een Should Be Paid-status. Drie waarden:
- Ja: de bestelde, ontvangen en gefactureerde hoeveelheden komen overeen. Veilig om te betalen.
- Exception: iets klopt niet. Een hoeveelheid wijkt af, een prijs verschilt, of er is geen ontvangst voor wat gefactureerd wordt.
- Nee: er is nog niets ontvangen, dus de factuur hoort niet betaald te worden.
Let op: Odoo blokkeert de betaling niet bij een exception. Het markeert hem en laat de beslissing aan jou, omdat er legitieme redenen zijn om toch te betalen (een gedeeltelijke levering waarmee je akkoord ging, een bekende prijswijziging). De status is een controlesignaal, geen harde blokkade. Behandel "Exception" als "kijk voor je betaalt", niet als "systeemfout".
Voer de OCR-stap uit en weet wat hij niet doet
Leveranciersfactuur-OCR (documentdigitalisatie) is een In-App Purchase-dienst. Het kost vooruitbetaalde credits, één credit per document, dus het is niet gratis en je vult het aan zoals elk IAP-saldo. Je voert het een factuur door hem te mailen naar de alias voor leveranciersfacturen, de PDF te uploaden of hem via de Documents-app aan te leveren.
Odoo leest het bestand en maakt een concept-leveranciersfactuur met de velden die het kon extraheren. Controleer die velden. OCR is goed, niet perfect, en een verkeerd gelezen bedrag of btw-regel die je zonder kijken boekt is een probleem dat jij hebt gemaakt, niet Odoo.
Er is één ding dat deze stap niet doet: hij koppelt geen inkooporder. De conceptfactuur heeft nog geen PO-koppeling. Dat is het gat, en de volgende stap dicht het.
Koppel de inkooporder aan de OCR-factuur
Dit is de stap die iedereen mist. Op de conceptfactuur maak je de PO-koppeling zelf. Twee routes, afhankelijk van wat er bestaat.
Als er al een inkooporder voor deze leverancier bestaat, gebruik dan de Purchase matching-smartknop op de factuur. Die opent een lijst met open inkooporderregels voor die leverancier. Selecteer de regels die bij deze factuur horen, selecteer de conceptfactuur en klik op Match. Odoo verbindt de factuur nu met de PO (en daarmee met de ontvangsten), en three-way matching heeft eindelijk zijn drie documenten.
Je kunt ook Auto-complete gebruiken: kies op de factuur de gerelateerde inkooporder in het Auto-complete-veld, en Odoo haalt de verwachte regels uit de PO rechtstreeks op de factuur. Dit vult vanuit de order- en ontvangstdata, wat vaak een schonere bron is dan de OCR-tekst.
Als er helemaal geen inkooporder bestaat (een leverancier factureerde je zonder), kun je rechtstreeks vanuit de factuurregels een PO aanmaken, dan heeft de matching iets om naar te verwijzen. Maar vraag eerst waarom er geen PO was; een factuur zonder order erachter is precies het soort ding dat three-way matching moet opvangen.
Bepaal je echte intakeflow en stop met de twee door elkaar te halen
Doe een stap terug en kies de flow per situatie, want OCR en Auto-complete lossen verschillende problemen op.
- Je bestelt eerst via Odoo (PO bestaat). De inkooporder en ontvangst definiëren al wat de factuur zou moeten zijn. Gebruik Auto-complete vanuit de PO als je primaire route. De PO en ontvangen hoeveelheden zijn de sterkere bron van waarheid. OCR is hier optioneel en vaak gewoon ruis.
- De factuur is het eerste document dat je ziet (geen PO, of PO's die je niet beheert). Hier bewijst OCR zijn waarde: de factuur is het intakedocument, dus lees hem met OCR en match hem vervolgens aan een PO als die opduikt of maak er een aan.
De fout is OCR draaien op facturen die uit je eigen inkooporders kwamen en je vervolgens afvragen waarom niets matcht. Als jij de PO hebt aangemaakt, stuur de factuur dan vanuit de PO, niet vanuit de PDF.
Het stuk waar mensen over struikelen
Een paar dingen overkomen vrijwel iedereen
OCR koppelt nooit een PO. Jij doet dat. Dit is het kernmisverstand. OCR vult de factuur vanaf de pagina; het zoekt niet in je inkooporders. De PO-koppeling is een aparte handmatige actie (Purchase matching of Auto-complete). Tot je die maakt, heeft three-way matching niets om te vergelijken en zal de status geen Yes zeggen.
Bill Control ingesteld op Bestelde hoeveelheden sloopt de three-way-check stilletjes. Als Bill Control op Bestelde staat, maakt de ontvangst geen deel uit van de vergelijking en heb je in feite two-way matching. Stel Ontvangen hoeveelheden in op de producten die een echte three-way-controle nodig hebben.
Een exception stopt de betaling niet. Odoo markeert "Should Be Paid: Exception" maar laat je de betaling toch registreren. Als je controle erop steunt dat het systeem de betaling blokkeert, dan gebeurt dat niet. Bouw de menselijke check in: niemand betaalt een factuur in Exception zonder genoteerde reden.
OCR kost credits en kan verkeerd lezen. Digitalisatie is een IAP-dienst die per document wordt afgerekend. Reserveer er budget voor en controleer altijd de geëxtraheerde bedragen, belastingen en datums voordat je boekt. Een verkeerd getal dat ongecontroleerd doorglipt is erger dan helemaal geen OCR.
Matchen gebeurt per regel, niet per factuur. Een factuur kan regels van meer dan één PO dekken, of slechts een deel van een PO. Daarom werkt het Purchase matching-scherm op regelniveau. Een gedeeltelijke match laat de rest van de PO open voor de volgende factuur, wat correct is, maar het verrast mensen die verwachten dat één factuur één hele order afsluit.
Snelle checklist
- 3-way matching aangevinkt onder Purchase > Configuration > Settings.
- Bill Control ingesteld op Ontvangen hoeveelheden op de relevante producten of categorieën.
- Team kent de drie "Should Be Paid"-statussen en behandelt Exception als "eerst checken".
- OCR-credits aangevuld; geëxtraheerde velden gecontroleerd vóór het boeken.
- Elke OCR-factuur krijgt zijn PO-koppeling via Purchase matching of Auto-complete.
- Facturen uit je eigen PO's worden gestuurd door Auto-complete, niet door OCR.
- Er bestaat een regel: geen betaling op een Exception-factuur zonder genoteerde reden.
FAQ
Waarom matcht mijn OCR-leveranciersfactuur niet met een inkooporder in Odoo?
Omdat OCR de PO-koppeling niet maakt. OCR leest de factuur-PDF en vult een conceptfactuur in, maar het zoekt niet in je inkooporders en koppelt er geen. Three-way matching heeft die koppeling nodig om te draaien, dus de factuur blijft ongematcht tot je hem zelf verbindt via de Purchase matching-smartknop of het Auto-complete-veld op de factuur.
Wat is three-way matching in Odoo?
Three-way matching vergelijkt de inkooporder, de ontvangst en de leveranciersfactuur en controleert of hoeveelheid, omschrijving en prijs over alle drie overeenkomen voordat de factuur wordt betaald. Het beschermt je tegen betalen voor goederen die je niet hebt besteld of niet hebt ontvangen. Zet het aan onder Purchase > Configuration > Settings, in de sectie Invoicing.
Blokkeert three-way matching de betaling van een niet-overeenkomende factuur?
Nee. Odoo zet de "Should Be Paid"-status op "Exception" wanneer de documenten niet overeenstemmen, maar het houdt je niet tegen om de betaling te registreren. Er kunnen geldige redenen zijn om toch te betalen, dus de status is een waarschuwing, geen harde blokkade. Je hebt een menselijke regel nodig om een echte controle af te dwingen.
Heb ik OCR nodig om three-way matching te gebruiken?
Nee. OCR en three-way matching staan los van elkaar. Als je de inkooporder in Odoo hebt aangemaakt, is de schonere route Auto-complete: kies de PO op de factuur en Odoo haalt de verwachte regels uit de order en ontvangst. OCR is voor wanneer de factuur zelf het eerste document is dat je hebt, zonder PO erachter.
Hoeveel kost leveranciersfactuur-OCR in Odoo?
Leveranciersfactuur-OCR (documentdigitalisatie) is een In-App Purchase-dienst die per document wordt afgerekend, één credit per factuur, betaald uit een vooruitbetaald IAP-saldo. Je vult het aan zoals elk ander IAP-credit. Controleer de geëxtraheerde velden voor het boeken, want OCR kan bedragen, datums of belastingen verkeerd lezen.