Kennisbank
Wat is een API koppeling?
Een API koppeling laat twee systemen gegevens uitwisselen via hun API, zonder dat iemand iets overtypt. API staat voor Application Programming Interface: de ingang waarlangs software aan andere software vragen stelt en opdrachten geeft.
Bijgewerkt op
API: betekenis en waar de afkorting voor staat
API staat voor Application Programming Interface. Het is de ingang van een softwarepakket voor andere software: een vaste lijst met vragen die je mag stellen en opdrachten die je mag geven, met per vraag de velden die je terugkrijgt.
Een mens werkt in het scherm van een pakket, een programma werkt via de API. Waar jij in je ERP een artikel opent om de voorraad te zien, stuurt een programma een aanvraag naar een adres als /artikelen/10482/voorraad. Het antwoord komt terug als gestructureerde tekst, meestal JSON.
De leverancier van het pakket legt in de API vier dingen vast:
| Onderdeel | Wat het is | Voorbeeld |
|---|---|---|
| Endpoint | Het adres van één soort gegeven | /artikelen, /orders, /klanten |
| Methode | Wat je met dat gegeven doet | GET leest, POST maakt aan, PUT wijzigt, DELETE verwijdert |
| Authenticatie | Hoe het pakket weet wie er vraagt | een API-sleutel of een OAuth 2.0-token |
| Limiet | Hoe vaak je mag vragen | 60 aanvragen per minuut bij Exact Online |
De meeste API's zijn REST API's: ze werken over HTTPS, net als een website, en geven JSON terug. Oudere pakketten hebben vaak een SOAP API, die XML verstuurt. Dat verschil bepaalt hoe de koppeling gebouwd wordt, niet welke gegevens erover kunnen.
Wat is een API koppeling dan?
Een API koppeling is software die tussen twee systemen in staat. Die haalt via de API van het ene systeem gegevens op en schrijft ze via de API van het andere systeem weg. Daartussen zitten de regels: welk veld waar terechtkomt, welk systeem leidend is en wat er gebeurt met een waarde die nergens past.
De API zelf koppelt dus niets. Exact Online, Shopify en HubSpot hebben elk een API, maar de API van Shopify weet niet wat een grootboekrekening in Exact Online is, en Exact Online weet niet wat een variant in Shopify is. De koppeling is de vertaling tussen die twee, plus alles wat nodig is om die vertaling elke dag te laten draaien.
Een API is ook niet de enige route. Systemen wisselen daarnaast gegevens uit via bestanden. Het onderscheid staat in het verschil tussen een API en een feed, en het bredere begrip in wat is een koppeling tussen twee systemen.
Een voorbeeld: je webshop vraagt elk uur de voorraad op
Neem een groothandel met 15.000 artikelen in het ERP en een webshop die de beschikbare voorraad toont. Elk uur loopt de koppeling de artikelen langs. Voor artikel 10482 ziet de aanvraag er zo uit:
GET /api/v1/artikelen/10482/voorraad HTTP/1.1
Host: erp.bakker-installatie.example
Authorization: Bearer eyJhbGciOiJSUzI1NiIs...
Accept: application/json
Het ERP antwoordt met statuscode 200 en de gegevens:
{
"artikelnummer": "10482",
"omschrijving": "Kogelkraan 1/2 inch messing",
"voorraad_fysiek": 20,
"voorraad_gereserveerd": 4,
"voorraad_beschikbaar": 16,
"gewijzigd_op": "2026-10-03T08:47:12+02:00"
}
De koppeling leest voorraad_beschikbaar, 20 fysiek min 4 gereserveerd is 16, en schrijft dat getal met een tweede aanvraag naar de webshop.
Nu de som. Staat het ERP 60 aanvragen per minuut toe en vraagt de koppeling elk artikel apart op, dan duurt één ronde 15.000 gedeeld door 60 is 250 minuten. Dat is ruim vier uur voor een ronde die elk uur zou moeten draaien. Geeft de API de artikelen in pagina's van 100, dan zijn het 150 aanvragen en is de ronde in 2,5 minuut klaar. Vraagt de koppeling alleen op wat sinds 08:00 gewijzigd is, bijvoorbeeld 300 artikelen, dan blijven er 3 aanvragen over. Hoe je zo'n som voor je eigen aantallen maakt, staat in doorvoer berekenen.
Voorraad is één stroom. Een koppeling tussen webshop en ERP kent er meestal drie richtingen bij:
| Richting | Gegevens | Wie wacht erop |
|---|---|---|
| Webshop naar ERP | orders, klantgegevens, retouren | magazijn en administratie |
| ERP naar webshop | voorraad, prijzen, verzendstatus | de klant in de webshop |
| ERP naar buiten | zendingen naar de vervoerder, facturen naar de boekhouding | vervoerder en boekhouder |
Als er een API is, waarom is een koppeling dan nog werk?
Omdat een API alleen toegang geeft. Zes dingen spelen bij vrijwel elke koppeling.
De limiet
Elke API begrenst het aantal aanvragen. Wie over de grens gaat, krijgt statuscode 429 terug en de aanvraag wordt niet uitgevoerd.
| Systeem | Limiet volgens de eigen documentatie | Bij overschrijding |
|---|---|---|
| Exact Online | 60 aanvragen per minuut en 5.000 per dag, per app en per administratie | 429 tot de minuut of de dag voorbij is |
| Shopify (REST Admin API, standaardabonnement) | buffer van 40 aanvragen, aangevuld met 2 per seconde | 429 met een Retry-After in seconden |
| Picqer | 500 aanvragen per minuut | 429, de aanvraag wordt genegeerd |
Limieten gecontroleerd op 3 oktober 2026 in de documentatie van Exact Online, Shopify en Picqer. De koppeling bundelt daarom aanvragen, verdeelt ze over de dag en wacht na een 429 met de volgende poging. Wat er dan precies gebeurt, staat in rate limits en throttling.
Geen signaal bij een wijziging
Sommige systemen sturen zelf een bericht zodra er iets verandert: een webhook. Andere doen dat niet, en dan moet de koppeling elke paar minuten vragen of er iets nieuws is. Bij een ronde elke 5 minuten is de voorraad in de webshop tot 5 minuten oud. Snellopers controleer je daarom vaker dan artikelen die twee keer per maand verkocht worden.
Geen gedeelde sleutel
De webshop kent een klant aan zijn e-mailadres, het ERP aan debiteurnummer 10432. Er is geen veld dat beide systemen delen. De koppeling houdt dan een vertaaltabel bij en volgt een vaste volgorde om te bepalen of een klant al bestaat. Zonder die volgorde ontstaan dubbele debiteuren.
Het veld dat de API niet geeft
Een API geeft zelden alles wat in het scherm staat. Een veelvoorkomend geval: orders en artikelen komen mee, de staffelkorting die met de klant is afgesproken niet. Die prijs komt dan uit een andere bron, bijvoorbeeld een prijslijst die het ERP als bestand exporteert, en wordt onderweg aan de order toegevoegd.
De piekdag
Op een gewone dag komen er 300 orders binnen, op Black Friday 3.000. Kost een order vier aanvragen (klant zoeken, klant bijwerken, order aanmaken, status terugschrijven), dan zijn dat 12.000 aanvragen op een dag waarop Exact Online er 5.000 toestaat. Een wachtrij verdeelt het verkeer, en het ontwerp moet per order met minder aanvragen toe kunnen.
De API verandert
Leveranciers passen hun API aan, schakelen oude versies uit en melden dat in een changelog of een nieuwsbrief. Een koppeling die daar niet op wordt aangepast, valt stil op de dag dat de oude versie verdwijnt.
Hoe weet je of je software een API heeft?
Zoek op de naam van het pakket met "API documentatie" of "developer". De betere vraag is niet of er een API is, maar of die API de velden vrijgeeft die je nodig hebt. Vijf vragen voor de leverancier:
- Welke gegevens kan de API lezen en welke kan hij schrijven? Vraag naar de velden bij naam: klantspecifieke prijs, voorraad per magazijn, verwachte leverdatum.
- Zit API-toegang in mijn abonnement, of hoort er een module of een hoger abonnement bij?
- Wat is de limiet per minuut en per dag?
- Stuurt het pakket webhooks, en voor welke gebeurtenissen?
- Is er een testomgeving waarin een order aangemaakt kan worden zonder gevolgen voor de administratie?
Soms moet er aan jouw kant eerst iets klaargezet worden. Bij AFAS maakt de beheerder een GetConnector aan voordat er gegevens op te vragen zijn. Is er geen API, dan zijn er andere routes: zie koppelen zonder API.
Is een API koppeling veilig?
Een API koppeling is zo veilig als de afspraken eromheen. Vier maatregelen horen er standaard bij:
- Versleuteld verkeer. Alle aanvragen gaan over HTTPS (TLS), zodat niemand onderweg kan meelezen.
- Een eigen sleutel met de kleinste rechten. De koppeling krijgt een eigen API-sleutel of OAuth 2.0-token dat alleen mag wat nodig is: orders lezen, voorraad schrijven. Geen beheerdersaccount.
- Sleutels buiten de code. Sleutels staan in een secrets manager, niet in de broncode of een spreadsheet. Zo vervang je een sleutel zonder de koppeling te verbouwen.
- Korte geldigheid. Een toegangstoken van Exact Online is 10 minuten geldig en wordt daarna vernieuwd. Een onderschept token is daardoor snel waardeloos.
In de logboeken horen persoonsgegevens afgeschermd te zijn, en de koppeling haalt alleen de velden op die het ontvangende systeem nodig heeft.
Wat betekent dit voor je koppeling?
De API bepaalt wat er kan. Of de koppeling in de praktijk klopt, hangt af van wat eromheen is gebouwd: de vertaling per veld, de wachtrij voor drukke momenten, de herhaalpogingen bij een 429 en de melding wanneer iets blijft hangen. Dat deel bouwen wij op maat van jouw systemen en regels. Daarna hosten en bewaken we de koppeling, en passen we die aan wanneer een leverancier zijn API wijzigt.
Meer over het laten bouwen staat op API koppeling laten maken. Het overzicht van koppelingen toont de stromen die we bouwen: voorraad, prijzen, productdata en orders. Weet je al welke twee systemen het zijn, beschrijf ze in het formulier.
Veelgestelde vragen
Wat is het verschil tussen een API en een API koppeling?
De API is de ingang van één pakket: de lijst met vragen en opdrachten die andere software mag sturen. De API koppeling is de software die twee van die ingangen met elkaar verbindt en de gegevens onderweg vertaalt. Een pakket met een API is dus nog niet gekoppeld.
Waar staat de afkorting API voor?
API staat voor Application Programming Interface. Het is het deel van een softwarepakket dat bedoeld is voor andere programma's, zoals het scherm bedoeld is voor mensen. Via de API lees en schrijf je dezelfde gegevens als in het scherm, voor zover de leverancier ze beschikbaar stelt.
Is een API koppeling realtime?
Dat hangt af van het bronsysteem. Stuurt het een webhook bij elke wijziging, dan staat een order binnen seconden in het andere systeem. Doet het dat niet, dan vraagt de koppeling op vaste momenten naar wijzigingen en loopt de data hooguit één interval achter, bijvoorbeeld 5 of 15 minuten.
Wat gebeurt er als de API zijn limiet bereikt?
De API weigert de aanvraag met statuscode 429. Een goed gebouwde koppeling zet het bericht terug in de wachtrij, wacht en probeert het opnieuw, zodat er geen order of voorraadwijziging verloren gaat. Meer daarover staat in de uitleg over rate limits.
Kan ik koppelen als mijn software geen API heeft?
Ja. Dan loopt de uitwisseling via bestanden op een SFTP-server, via een leesweergave op de database of via een export die het pakket op vaste tijden klaarzet. De routes staan op een rij in koppelen zonder API.
Moet ik voor API-toegang extra betalen bij mijn softwareleverancier?
Bij een deel van de pakketten wel. API-toegang hangt dan aan een bepaald abonnement of een aparte module, en de limieten verschillen per abonnement. Vraag het na voordat de bouw begint, want het aanvragen van toegang duurt vaak langer dan verwacht.
Vertel wat je nodig hebt
Vertel welke systemen je gebruikt en wat je wilt verbeteren. Je krijgt binnen één werkdag een persoonlijk antwoord. We helpen je de werkzaamheden helder te krijgen en spreken de prijs en planning af voordat je iets toezegt.
- Je weet de prijs en de doorlooptijd voordat je iets toezegt
- Wij zoeken uit welke koppeling het werk uit handen neemt
- Wij verzorgen de bouw, hosting, bewaking en het onderhoud
- Je team krijgt minder overtypwerk en minder uitzoekwerk