InvoiceHero facturatie software met KVKBase API integratie
Case Study -- SaaS

InvoiceHero

Facturatie Software

Industrie SaaS / Facturatie
Locatie Rotterdam, Nederland
Tech Stack Node.js, KVKBase API, PostgreSQL
Integratie KVKBase API
4 → 1 API calls gereduceerd
99.8% Uptime
<50ms Response time

Vier API calls, vier bronnen van falen

InvoiceHero is een moderne facturatie-applicatie die duizenden MKB-bedrijven helpt met het opstellen en verzenden van facturen. Een kernfunctie is het automatisch aanvullen van klantgegevens op basis van een KVK-nummer. Klinkt simpel, maar achter de schermen was het een technisch doolhof.

Om complete bedrijfsgegevens op te halen, had InvoiceHero vier aparte API calls nodig. Eerst een call naar de KVK Zoeken API om het basisprofiel te vinden. Dan een call naar de KVK Basisprofiel API voor de volledige bedrijfsinformatie. Vervolgens een call naar VIES voor de BTW-nummer validatie. En tot slot eigen logica om het Nederlandse BTW-nummer te berekenen op basis van het KVK-nummer.

Dit leverde een fragiel systeem op. Wanneer VIES offline was -- wat regelmatig voorkwam -- faalde de hele lookup flow. De code om vier verschillende API responses te combineren was complex en moeilijk te onderhouden. Error handling voor vier verschillende endpoints leidde tot spaghetti-code die niemand graag aanraakte. En elke API had zijn eigen rate limits, authenticatie en response formaten.

Het development team besteedde gemiddeld 20 uur per kwartaal aan het onderhouden en debuggen van deze integratie. Tijd die ze liever aan nieuwe features hadden besteed.

Van vier API calls naar een enkele KVKBase lookup

InvoiceHero verving hun complete lookup stack door een enkele KVKBase API call. In plaats van vier endpoints met vier response formaten, is er nu een call die alle bedrijfsinformatie retourneert: KVK-gegevens, vestigingsadres, rechtsvorm, SBI-codes en BTW-nummer validatie -- allemaal in een enkel JSON response.

De migratie was snel. De bestaande code voor vier API calls werd vervangen door een enkele functie. Error handling werd drastisch vereenvoudigd omdat er nog maar een endpoint is om mee om te gaan.

Node.js / KVKBase API
// Voorheen: 4 API calls, ~200 regels code
// Nu: 1 KVKBase lookup, 15 regels code

const response = await fetch(
  `https://api.kvkbase.nl/v1/lookup/${kvkNummer}`,
  {
    headers: {
      "Authorization": `Bearer ${API_KEY}`,
      "Content-Type": "application/json"
    }
  }
);

const bedrijf = await response.json();

// Alles in 1 response:
// bedrijf.naam, bedrijf.adres, bedrijf.rechtsvorm,
// bedrijf.btw_nummer, bedrijf.btw_geldig,
// bedrijf.sbi_codes, bedrijf.vestigingsnummer

Een bijzonder waardevolle feature was de ingebouwde VIES caching. KVKBase cachet BTW-validatie resultaten, waardoor lookups blijven werken wanneer VIES tijdelijk niet beschikbaar is. Dit was precies het probleem dat InvoiceHero het meeste hoofdpijn bezorgde. Nu wordt een gecachte validatie geretourneerd met een duidelijke timestamp, zodat gebruikers weten hoe recent de validatie is.

De response time daalde onder de 50 milliseconden, een flinke verbetering ten opzichte van de 800+ milliseconden die de vier opeenvolgende API calls kostten. Dit maakte het mogelijk om real-time lookups te doen terwijl de gebruiker typt, in plaats van na het indienen van een formulier.

Minder code, meer betrouwbaarheid

De impact van de migratie naar KVKBase was direct meetbaar. Het development team kon de oude integratiecode van meer dan 200 regels vervangen door een compacte module van 15 regels. Dit alleen al verminderde de onderhoudskosten drastisch.

De uptime van de lookup functie steeg van een grillige 97% (door VIES downtime) naar een stabiele 99.8%. Gebruikers klagen niet meer over mislukte lookups. De ingebouwde VIES caching vangt de resterende 0.2% op door gecachte resultaten te retourneren wanneer VIES niet beschikbaar is.

Het development team bespaart nu 20 uur per kwartaal die voorheen aan onderhoud en debugging van de lookup integratie werden besteed. Die tijd gaat nu naar nieuwe features waar klanten daadwerkelijk om vragen.

4 → 1 API calls gereduceerd

Vier aparte API calls naar KVK Zoeken, Basisprofiel, VIES en eigen BTW logica zijn vervangen door een enkele KVKBase lookup die alle data retourneert.

99.8% Uptime

De lookup functionaliteit is vrijwel altijd beschikbaar. VIES caching zorgt ervoor dat BTW validatie blijft werken, ook wanneer VIES zelf offline is.

<50ms Response time

De response time daalde van 800+ milliseconden naar minder dan 50 milliseconden. Dit maakt real-time lookups mogelijk terwijl de gebruiker typt.

20 uur Bespaard per kwartaal

Het development team besteedt 20 uur minder per kwartaal aan onderhoud en debugging van de bedrijfslookup integratie. Die tijd gaat nu naar productverbetering.

"We hadden 4 aparte API calls nodig. Nu is het er 1. De caching voor VIES alleen al bespaart ons kopzorgen."

Lisa van den Berg Lead Developer, InvoiceHero

Klaar om je API integratie te vereenvoudigen?

Vervang complexe multi-API flows door een enkele KVKBase call. Begin gratis met 100 lookups per maand.