Facturen handmatig verwerken kost een gemiddeld MKB-bedrijf 4-6 uur per week. Met Make, Klippa OCR en Exact Online bouw je een workflow die PDF-facturen automatisch uitleest, controleert en inboekt. Dit is de complete handleiding.
Stap 1: Voorbereiding
Voordat je begint heb je drie accounts nodig: een Klippa account met OCR API toegang, een Make (voorheen Integromat) account met minimaal de Basis abonnement, en een Exact Online koppeling via de Developer Portal.
Maak een Klippa account aan op klippa.com/ocr. Na aanmelding vind je je API key onder Settings > API. Noteer deze key -- je hebt hem straks nodig in Make.
# Klippa API key ophalen curl -X GET "https://custom-ocr.klippa.com/api/v1/userinfo" \ -H "X-Auth-Key: JOUW_API_KEY"
In Exact Online ga je naar Apps > App Center en zoek je de Make integratie. Autoriseer de koppeling via OAuth2. Make ontvangt dan een refresh token waarmee hij namens jou facturen kan aanmaken.
Stap 2: Email-trigger instellen in Make
Maak een nieuw scenario in Make. Kies als trigger module 'Gmail > Watch Emails'. Configureer de filter zodat alleen emails met PDF bijlagen worden opgepakt. Stel de map in op 'Facturen' of gebruik een label.
# Gmail filter configuratie in Make { "folder": "INBOX", "criteria": "has:attachment filename:pdf", "markAsRead": false, "maxResults": 1 }
Voeg een Router toe na de Gmail trigger. Een pad voor PDF bijlagen, een pad voor emails zonder bijlage (die je negeert of archiveert). Dit voorkomt errors bij emails zonder factuur.
Stap 3: PDF doorsturen naar Klippa OCR API
Voeg een HTTP module toe na de Gmail bijlage router. Stel in: Method = POST, URL = https://custom-ocr.klippa.com/api/v1/parseDocument. Voeg de header X-Auth-Key toe met je Klippa API key.
# HTTP module configuratie Klippa Method: POST URL: https://custom-ocr.klippa.com/api/v1/parseDocument Headers: X-Auth-Key: {{your_api_key}} Accept: application/json Body Type: multipart/form-data Fields: document: {{gmail.attachments[].data}} preset: financial
Het multipart/form-data veld 'document' krijgt de binaire PDF data uit de Gmail module. Klippa ondersteunt facturen in het Nederlands, Engels en Duits automatisch. Zet 'preset' op 'financial' voor optimale factuurherkenning.
Stap 4: Klippa response parsen
Klippa retourneert een JSON object met alle herkende velden. De belangrijkste zijn: merchant_name (leverancier), amount (totaalbedrag), amount_change (BTW bedrag), date (factuurdatum) en iban (bankrekeningnummer leverancier).
# Klippa response voorbeeld { "data": { "merchant_name": "Leverancier BV", "merchant_address": "Straat 1, Amsterdam", "date": "2026-08-01", "invoice_number": "INV-2026-0891", "amount": 1210.00, "amount_change": 210.00, "currency": "EUR", "iban": "NL91ABNA0417164300", "payment_due_date": "2026-08-31" } }
Gebruik een JSON Parse module of de ingebouwde Make variabelen om de velden te extraheren. Zet de waarden als variabelen klaar voor de volgende stap. Controleer of amount_change (BTW) aanwezig is -- sommige facturen vermelden geen BTW apart.
Stap 5: Claude validatiecheck
Voeg een HTTP module toe voor de Anthropic Claude API. Stuur de geparste factuurdata mee als JSON in de prompt. Vraag Claude om te controleren op: ontbrekende verplichte velden, verdachte bedragen (afwijking >30% van gemiddelde), mogelijke dubbele facturen op basis van factuurnummer en leverancier.
# Claude validatie prompt { "model": "claude-opus-4-5", "max_tokens": 500, "messages": [{ "role": "user", "content": "Controleer deze factuurdata op fouten en verdachte waarden. Geef een JSON terug met velden: valid (boolean), issues (array van strings), confidence (0-100). Factuurdata: {{klippa_data}}" }] }
Als Claude issues rapporteert of confidence onder de 80 zit, stuur de factuur dan naar een handmatige reviewwachtrij. Gebruik een Slack module om het reviewteam te notificeren met alle details.
Stap 6: Factuur aanmaken in Exact Online
Gebruik de Exact Online module in Make (of een HTTP module met OAuth2) om de factuur in te boeken. Je hebt minimaal nodig: de leverancierscode (AccountCode), het factuurbedrag, de BTW code en de grootboekrekening.
# Exact Online REST API - Factuur aanmaken POST https://start.exactonline.nl/api/v1/{division}/purchaseentry/PurchaseEntries Content-Type: application/json { "Journal": "70000", "InvoiceNumber": "{{klippa.invoice_number}}", "YourRef": "{{klippa.invoice_number}}", "EntryDate": "{{klippa.date}}", "PurchaseEntryLines": [{ "GLAccount": "{{grootboekrekening}}", "AmountFC": {{klippa.amount}}, "Description": "{{klippa.merchant_name}} - {{klippa.invoice_number}}" }] }
Let op: Exact Online gebruikt een 'division' nummer in de URL. Je vindt dit in de URL van je Exact Online omgeving. Sla het op als een Make variabele zodat je het niet steeds hoeft in te vullen.
Stap 7: Goedkeuringsflow voor hoge facturen
Facturen boven een drempelbedrag (standaard 500 euro) stuur je eerst ter goedkeuring. Voeg een Filter toe na de Exact Online module. Als amount groter is dan 500, activeer dan de Slack approval flow.
# Slack goedkeuringsverzoek { "channel": "#facturen-approval", "text": "Factuur ter goedkeuring", "attachments": [{ "fallback": "Factuur van {{merchant}} voor {{amount}} euro", "title": "Nieuwe factuur: {{merchant}}", "fields": [ {"title": "Bedrag", "value": "{{amount}} euro", "short": true}, {"title": "Factuurdatum", "value": "{{date}}", "short": true}, {"title": "IBAN", "value": "{{iban}}", "short": false} ], "actions": [ {"type": "button", "text": "Goedkeuren", "value": "approve"}, {"type": "button", "text": "Afwijzen", "style": "danger", "value": "reject"} ] }] }
Gebruik een Webhooks module om de Slack interactie op te vangen. Als iemand op 'Goedkeuren' klikt, gaat de workflow verder. Bij 'Afwijzen' archiveer je de factuur en stuur je een notificatie naar de afzender.
Stap 8: Foutafhandeling en logging naar Google Sheets
Voeg een Error Handler toe aan het scenario. Elke gefaalde stap logt naar een Google Sheets spreadsheet met kolommen: Timestamp, FoutType, FactuurNummer, Leverancier, FoutBericht, Status.
# Google Sheets logging rij [ "{{now}}", "{{error.type}}", "{{klippa.invoice_number}}", "{{klippa.merchant_name}}", "{{error.message}}", "Handmatige actie vereist" ]
Maak ook een successlog aan. Elke succesvol verwerkte factuur krijgt een rij met: Timestamp, Leverancier, Bedrag, ExactOnlineID, Verwerktdoor (automatisch of naam goedkeurder).
Stap 9: Testen en live zetten
Test de workflow eerst met een test-Gmail account en een echte maar irrelevante PDF factuur. Controleer elke stap in Make's uitvoeringslog. Controleer in Exact Online of de factuur correct is aangemaakt in het inkoopboek.
Zet de Gmail trigger op 'Watch Emails from specific senders' en voeg je leveranciers toe. Start klein: verwerk eerst 5 facturen handmatig naast de automatisering om te vergelijken. Pas grenzen en validatieregels aan op basis van wat je tegenkomt.
Troubleshooting: 5 veelvoorkomende problemen
1. Klippa herkent het bedrag niet: Controleer of de PDF niet beveiligd of ingescand is. Klippa OCR werkt het beste met digitale PDF facturen. Voor scans gebruik je de image preset in plaats van financial.
2. Exact Online geeft 401 terug: Het OAuth token is verlopen. Open de Exact Online verbinding in Make en klik op Re-authorize. Tokens verlopen na 10 minuten inactiviteit.
3. Dubbele facturen worden aangemaakt: Voeg een Exact Online Search module toe voor de aanmaak. Zoek op InvoiceNumber en AccountCode. Alleen aanmaken als de zoekopdracht geen resultaat geeft.
4. Slack approval reageert niet: Controleer of de Webhook URL in Make overeenkomt met de URL in de Slack app configuratie. Testeer de webhook met een curl commando.
5. Google Sheets geeft 429 (rate limit): Make stuurt te veel requests tegelijk. Voeg een Sleep module toe van 1 seconde tussen Sheets writes. Of gebruik de Google Sheets module met batch update.
Uitbreidingen
Automatische betaling: Koppel de goedgekeurde facturen aan Exact Online's Payments module. Zodra een factuur goedgekeurd is en de betaaldatum nadert, maakt Exact Online automatisch een betaalbatch aan voor je bank.
Leveranciersportaal: Bouw een eenvoudig portaal met Bubble of Softr waar leveranciers zelf hun facturen kunnen uploaden. Dit elimineert de email-trigger en geeft leveranciers realtime inzicht in de status van hun facturen.
BTW-aangifte export: Maak een maandelijkse Make automation die alle facturen ophaalt, groepeert per BTW tarief (21%, 9%, 0%) en een CSV exporteert klaar voor de aangifte. Koppel dit aan een notificatie een week voor de aangiftetermijn.