Naar de inhoud

Achter de Schermen · Wat is een API-koppeling

Wat is een API-koppeling?

Een API-koppeling is een vaste afspraak waarmee twee softwarepakketten elkaars gegevens lezen en schrijven zonder dat er iemand tussen zit. Het ene systeem vraagt iets op of stuurt iets op. Het andere antwoordt volgens een vorm die vooraf vastligt. Wat vandaag met de hand wordt overgetypt, gaat dan vanzelf.

Voor ondernemers die twee pakketten willen laten samenwerken en eerst willen begrijpen waar ze naar vragen. En voor bureaus die white label inhuren: ik lever onder uw naam en ik benader uw klant niet.

Door Stefan Colin · bijgewerkt op

Deze pagina legt de begrippen uit en laat zien waar het in de praktijk misgaat. Wilt u weten wat het kost om er een te laten bouwen, dan staat dat op de pagina over een API-koppeling laten maken.

Wat is een API en hoe werkt het?

API staat voor application programming interface. Dat is de ingang van een pakket voor andere software. Een mens gebruikt een scherm met knoppen. Een ander programma gebruikt de API.

Zo’n ingang werkt met verzoeken en antwoorden. Uw webshop stuurt een verzoek: geef mij alle bestellingen van vandaag. De API antwoordt met een lijst in een vaste vorm, meestal JSON. Dat is tekst die een programma kan lezen zonder te raden.

Het woord koppeling slaat op wat u eromheen bouwt. De API is de deur. De koppeling is wie er wanneer doorheen loopt, met welke gegevens en wat er gebeurt als de deur op slot zit.

De begrippen die u tegenkomt in een offerte

Vraagt u een offerte op voor een koppeling, dan staan deze woorden erin. Ze zijn geen jargon om indruk te maken. Ze bepalen wat het werk is.

Begrip
Wat het betekent
Endpoint
Eén specifiek adres in de API, bijvoorbeeld het adres voor facturen
Authenticatie
Hoe het andere pakket weet dat u het bent, meestal met een sleutel of een token
Rate limit
Hoeveel verzoeken u per minuut mag doen voordat het pakket u tijdelijk weigert. Bij Exact Online is dat 60 per minuut per administratie (opent in een nieuw tabblad)
Polling
Zelf periodiek vragen of er iets nieuws is
Webhook
Het andere pakket meldt zichzelf zodra er iets gebeurt
Idempotentie
Dezelfde opdracht twee keer sturen mag geen dubbele factuur opleveren

Die laatste twee zijn de dure. Een koppeling die polt terwijl er een webhook beschikbaar is, doet veel meer werk dan nodig. En een koppeling zonder idempotentie maakt bij een storing dubbele regels in uw boekhouding.

Polling of webhook: het verschil dat u merkt

Bij polling kijkt uw koppeling elke paar minuten of er iets nieuws is. Simpel te bouwen. Het kost alleen veel verzoeken en er zit altijd vertraging tussen.

Bij een webhook zegt het andere pakket het zelf zodra er iets gebeurt. Sneller en zuiniger. Alleen moet u dan wel een adres hebben dat altijd bereikbaar is. En u moet vastleggen wat er gebeurt als dat bericht niet aankomt.

Welke van de twee kan, verschilt per pakket. Kan het er maar één, dan is dat geen keuze maar een gegeven. Het is meteen de eerste vraag die u aan een bouwer stelt.

Wat een API-koppeling niet is

Een export naar Excel is geen koppeling. Het lijkt erop, want er gaan gegevens van A naar B. Het verschil is dat iemand op een knop moet drukken en dat er niets meldt als het misgaat.

Een import van een CSV-bestand op een vast tijdstip is een tussenvorm. Dat kan een prima oplossing zijn als een pakket geen API heeft. Noem het dan ook zo en niet een koppeling, want de verwachtingen zijn anders.

Middleware is weer iets anders. Dat is software die tussen meerdere systemen in staat en berichten vertaalt en doorstuurt. Bij twee pakketten heeft u dat vrijwel nooit nodig. Vanaf drie systemen wel.

Waar het in de praktijk misgaat

Het bouwen van een koppeling is zelden het lastige deel. Het lastige deel is alles wat daarna kan gebeuren.

Er komt geen melding als hij stopt. Dit is de duurste fout en hij komt het vaakst voor. Een koppeling die stil stopt, merkt u pas als een klant belt over een factuur die nooit is aangekomen. Elke koppeling hoort te controleren of de andere kant heeft bevestigd. Blijft die bevestiging uit, dan hoort er bericht uit te gaan.

Beide systemen beweren iets anders. U wijzigt een adres in twee pakketten. Welke wint? Zonder afspraak vooraf wint toevallig het laatste bericht. Leg vast welk systeem de baas is over welk gegeven.

De sleutel verloopt. Veel API’s werken met een token dat na een tijd vervalt. Wie dat niet automatisch vernieuwt, heeft vroeg of laat een koppeling die zwijgt.

Het andere pakket verandert. Leveranciers wijzigen hun API. Een goede koppeling faalt dan zichtbaar en niet stilletjes.

Wat te doen als een pakket geen API heeft

Een pakket zonder API komt vaker voor dan u denkt, vooral bij oudere software voor één specifieke branche. Er zijn dan drie wegen.

De eerste is een export op een vast tijdstip die automatisch wordt opgehaald en ingelezen. Minder elegant en het werkt prima, mits er een controle bij zit die telt of alles is aangekomen.

De tweede is de leverancier vragen. Soms bestaat er wel een API die niet in de folder staat.

De derde is het scherm nabootsen. Dat werkt en het breekt bij elke schermwijziging. Doe dit alleen als de andere twee dicht zitten en weet dat het onderhoud vraagt.

Vijf vragen aan wie uw koppeling gaat bouwen

Deze vragen kosten u vijf minuten en ze verschillen een goede offerte van een goedkope.

  1. Heeft mijn pakket een API? Kunt u dat laten zien voordat u een prijs noemt?
  2. Wordt het polling of een webhook? En waarom die keuze?
  3. Wat gebeurt er als een bericht niet aankomt? Wie krijgt daar bericht van?
  4. Welk systeem is de baas als beide iets anders beweren?
  5. Van wie is de code als de koppeling klaar is?

Die laatste vraag stelt bijna niemand. Een koppeling die van de bouwer blijft, maakt u afhankelijk van iemand die u niet meer kunt missen.

Wat een API-koppeling kost

Voor een koppeling tussen twee pakketten met een werkende API ligt dat tussen € 1.450 en € 3.450 exclusief btw. Gaat het om meer dan twee systemen, dan loopt dat op tot € 5.450 tot € 12.500.

Wat de prijs bepaalt is zelden het aantal velden. Het zijn de uitzonderingen: wat er moet gebeuren bij een storing, hoe vaak er gesynchroniseerd wordt en of er historie moet worden meegenomen.

Over Achter de Schermen

Achter de Schermen is de eenmanszaak van Stefan Colin in Zwaag, West-Friesland. Ik bouw maatwerk software en koppel pakketten die elkaar niet kennen. Ook zoek ik uit waarom Google en AI-antwoorden een site overslaan en wat eraan te doen is.

Wilt u weten of een koppeling in uw geval kan, stuur dan de namen van de twee pakketten en wat er nu met de hand gebeurt.

Veelgestelde vragen

Wat houdt API in?

API staat voor application programming interface. Dat is de ingang van een softwarepakket voor andere software. Waar een mens een scherm met knoppen gebruikt, gebruikt een ander programma de API. De ingang neemt verzoeken aan en geeft antwoord in een vaste vorm.

Wat is het verschil tussen een API en een API-koppeling?

De API is de ingang die een pakket aanbiedt. De koppeling is wat u daaromheen bouwt: welke gegevens er heen en weer gaan, hoe vaak dat gebeurt en wat er moet gebeuren als het misgaat. De API krijgt u van de leverancier. De koppeling laat u bouwen.

Wat betekent mapping bij een koppeling?

Mapping is de lijst die zegt welk veld uit het ene pakket in welk veld van het andere hoort. Uw klantnummer heet aan de andere kant misschien relatiecode. Die lijst maakt u vooraf, samen met de bouwer. Hoe langer de lijst, hoe meer werk er in de koppeling zit.

Gaan de gegevens één kant op of twee kanten op?

Bij één richting stuurt het ene pakket en ontvangt het andere alleen. Bij twee richtingen mogen beide kanten wijzigen. Twee richtingen kost meer, want er hoort een afspraak bij over wie wint bij verschil. Vraag dus welke van de twee in de offerte staat.

Hoe weet ik of mijn pakket een API heeft?

Kijk op de site van de leverancier onder ontwikkelaars, koppelingen of integraties. Vindt u daar een pagina met endpoints en voorbeelden, dan heeft uw pakket een bruikbare ingang. Staat er alleen een verkooptekst over koppelingen, vraag de documentatie dan op bij de support. Twijfelt u? Stuur de naam van uw pakket naar Achter de Schermen. Binnen twee werkdagen hoort u of er een ingang is. Zonder documentatie kan niemand een prijs noemen.

Wat is een sandbox bij een API?

Een sandbox is een testomgeving van de leverancier, gevuld met nepgegevens. Daar bouwt en test een bouwer de koppeling, zonder dat er iets in uw echte administratie verandert. Niet elk pakket biedt er een. Ontbreekt de sandbox, dan hoort er op een aparte proefadministratie te worden getest.

Is een API-koppeling veilig?

Dat hangt af van hoe hij is gebouwd. Een koppeling hoort een eigen sleutel te hebben met alleen de rechten die nodig zijn. Die sleutel staat niet in de code maar in de omgeving van de server. En er gaan alleen gegevens over die er echt heen moeten.

de volgende stap

Twee pakketten die elkaar niet kennen?

Stuur me de namen van de twee pakketten en wat er nu met de hand gebeurt. Ik reageer binnen één werkdag. Binnen twee werkdagen hoort u of er een API is en wat het ongeveer kost. U legt daarmee niets vast.

Vertel wat er ligtof bel 06 30 33 49 97

verder op deze site