Waarom ik een eigen creditcard-facturensysteem bouwde (en waarom ik daar heel blij van werd)
Dinsdag.
Na lange tijd weer samen met Bir facturen invoeren in SnelStart.
Ons admin-systeem via het account gebruiken (geen fan). Gezellig vooruitzicht, toch?
In theorie nee. In de praktijk echt niet:
– creditcardbetalingen – CSV’tjes – PDF-facturen overal en nergens – geen fatsoenlijke import – alles handmatig matchen, echt bah.... Hoe vragen ze hier 35 euro per maand voor......
Gadver.
Vrijwel al mijn huidige zakelijke uitgaven lopen tegenwoordig via onze creditcard. Veel software veel AI, veel abonnementen, vaak in USD. Maar SnelStart (en eerlijk: de meeste boekhoudsystemen) gaan daar niet echt lekker mee om. Geen automatische koppeling, geen duidelijke matching, geen overzicht. Dus zit je alsnog bedragen te vergelijken, facturen te zoeken, en fouten te corrigeren.
En toen dacht ik:
dan bouw ik dit deel gewoon zelf.
Het probleem dat ik wilde oplossen
Je hebt twee werelden:
De creditcard CSV
Een export van ING met:datum
bedrag (in EUR)
omschrijving
valuta
De facturen
PDF’s van leveranciers. In allerlei formats. EUR, USD, soms met BTW, soms zonder. Soms duidelijk, soms verstopt in kleine letters.
Wat je wilt:
➡️ automatisch weten welke factuur bij welke transactie hoort
➡️ en meteen zien wat nog ontbreekt
Niet half, niet ongeveer — maar boekhoudkundig kloppend.
De oplossing (en ja, ik ging iets te ver)
Ik had al een abonnementen-dashboard lopen, dus heb ik daar een creditcard-module aan vast gebouwd. Twee middagen. Uurtje of zeven. Beetje heen en weer.
Startte met Claude Opus 3 om de logica scherp te krijgen, en Aura voor PB design.
Daarna Claude Cowork, die letterlijk alle facturen is gaan opsporen (dat was magisch).
En uiteindelijk weer Replit, omdat dat al mijn bestaande basis had.
En toen werd het leuk.
Wat het systeem doet
1. Slim PDF lezen (zonder AI-poëzie)
Facturen zijn chaos. Dus heb ik een parser gebouwd die herkent wat er écht toe doet:
Bedragen
Herkent varianten als:Amount due $12.99Invoice Total: €34,50Total USD $99.00
BTW / VAT
Nodig voor teruggave. Wordt automatisch uit de PDF gehaald.Factuurnummers
In alle vreemde formats die leveranciers verzinnen.
Geen gokken. Gewoon pattern matching.
2. Exact matchen (bewust geen fuzzy gedoe)
Het systeem matcht alleen op exact bedrag.
Waarom?
Geen foutieve koppelingen
Geen “bijna hetzelfde” geneuzel
Volledige zekerheid voor de boekhouding
USD-factuur?
→ wordt omgerekend → gematcht op het EUR-bedrag dat op de creditcard staat
Geen match = zichtbaar. Klaar.
3. Meerdere valuta, netjes opgeslagen
Voor USD-facturen bewaart het systeem:
origineel bedrag + valuta
omgerekend EUR-bedrag
gebruikte koers (impliciet via afschrift)
Dus alles blijft controleerbaar.
4. In één oogopslag zien waar je staat
In het dashboard zie je meteen:
🟢 alles gekoppeld
🟠 facturen ontbreken nog
Per leverancier zie je:
wat klopt
wat openstaat
wat aandacht nodig heeft
Geen zoekwerk. Geen twijfel.
De workflow (simpel, zoals het hoort)
Upload de ING creditcard CSV
Sleep PDF-facturen erbij
Het systeem matcht automatisch
Jij checkt alleen wat niet klopt
Export voor de accountant, inclusief BTW-overzicht
Wat het me oplevert
Wat eerst uren kostte, is nu minuten werk.
Maar belangrijker: rust.
Je weet:
wat klopt
wat mist
hoeveel BTW je kunt terugvragen
Geen vage aannames meer. Geen handmatig vergelijkwerk.
Het draait op een moderne stack (React, TypeScript, PostgreSQL), maar dat is bijzaak.
Dit is geen tech-project. Dit is een leven-terugkrijgen-project.
De Stack
Frontend: React 18 + TypeScript + Tailwind CSS
Backend: Node.js + Express
Database: PostgreSQL met Drizzle ORM
PDF Parsing: pdf-parse library met custom regex extractors
En omdat ik wel echt visueel ben ingesteld, laad hij automatisch de logo's van de bedrijfen komen van Google's Favicon Service.
Ik bouw dit soort systemen omdat ik ze zelf nodig heb.
En als ze voor mij werken, werken ze meestal ook voor anderen.
V2.0 dan ga ik....
Aanvullend ga ik denk ik nog een Gmail koppeling maken zodat de facturen zelf gevonden worden door systeem en ingeladen klaar staan als de csv van ING komt, en er is een Abonnementen onderdeel wat ik al had wat hier nu bij zit (dus alle abonnementjes van AI en software, die toekomstig met Claude automatisch kunnen gaan opzeggen of verlengen.
Endoor.
Peter.