KoppelingenAFAS
AFAS API koppelen aan je website.
Een koppeling op de AFAS API haalt de vacatures uit Profit naar je eigen werken-bij pagina’s en zet elke sollicitatie terug in AFAS, zodat je recruiters in één systeem blijven werken. AFAS is de Nederlandse bedrijfssoftware waarin ruim veertienduizend organisaties hun HR, salaris, financiën en projecten bijhouden.
Vertrouwd door
200+ bedrijven en webshops

Wat het oplevert
Wat een koppeling met AFAS je oplevert.
Vacatures zonder overtypen. Wat in Profit openstaat staat op je site, en wat daar dichtgaat verdwijnt vanzelf.
Een eigen pagina per vacature. Op je eigen domein, geschikt voor Google for Jobs en om een advertentie naartoe te sturen.
De sollicitatie komt binnen in AFAS. Met het cv erbij, en hij start meteen de workflow die aan de vacature hangt.
Technisch
De koppeling in het kort.
- Vorm van de koppeling
- De Profit REST Services op je eigen AFAS-omgeving, met GetConnectors om gegevens op te halen en UpdateConnectors om ze weg te schrijven. JSON, en er is een oudere SOAP-variant met XML
- Authenticatie
- Een token uit een app connector in je eigen omgeving, base64 in de Authorization-header als AfasToken. Toegang is per connector te beperken, en met een IP-lijst in CIDR-notatie
- Richting
- Beide kanten op
- Verversing
- Per aanroep, met skip en take om te pagineren
- Wij bouwen het op
- WordPress, Next.js, Maatwerk
Waar het misgaat
- De app connector wordt in jouw AFAS-omgeving ingericht, niet bij ons. Daar hangt aan welke GetConnectors en UpdateConnectors hij mag gebruiken. Staat de connector die wij nodig hebben er niet bij, dan krijgt de site geen gegevens en zegt de melding daar weinig zinnigs over. Dit is de eerste plek om te kijken als er niets binnenkomt, en meteen de reden dat we bij de start om een beheerder bij jullie vragen.
- Er zit een grens aan hoeveel je in één keer ophaalt. AFAS rekent met kolommen maal records onder de 150.000; ga je daaroverheen, dan loopt de aanroep vast op een melding over stringspace. Voor een vacaturelijst is dat ruim, maar het betekent dat we pagineren met skip en take en de gegevens aan onze kant bewaren in plaats van bij elke bezoeker op te halen.
- Een sollicitatie maakt niet meteen een sollicitant aan. De UpdateConnector HrCreateApplicant start een workflow, en die workflow moet in de eigenschappen van de vacature zijn gekoppeld. Is dat niet gebeurd, dan komt de sollicitatie wel binnen en gebeurt er verder niets. Die connector kan bovendien alleen toevoegen: wijzigen en verwijderen gaan er niet mee.
- De manier van aanmelden verandert. AFAS zet OAuth neer als de standaard, kondigt mTLS-certificaten aan voor eind 2026, en geeft de klassieke tokens per 15 februari 2027 een vervaldatum. Een koppeling die nu op een token draait blijft dus werken, maar er komt een moment waarop hij moet worden omgezet. Zet dat in de agenda in plaats van het te ontdekken als de vacatures op een ochtend weg zijn.
AFAS koppelen
Wat je moet weten voor je begint.
Wat is AFAS?
AFAS is Nederlandse bedrijfssoftware uit Leusden, in gebruik bij ruim veertienduizend organisaties. Het is geen wervingssysteem met er wat omheen, maar één pakket waarin HR, salarisadministratie, financiën, projecten en werving in dezelfde gegevens zitten. Voert je organisatie de financiële administratie in Twinfield, dan bouwen we daarvoor een koppeling met Twinfield.
Voor werving betekent dat iets praktisch: een aangenomen sollicitant is geen record dat je overzet naar een ander systeem, maar wordt medewerker in hetzelfde pakket. Dat is precies de reden dat organisaties die AFAS al gebruiken hun vacatures er ook in willen zetten, en niet in een los ATS ernaast.
Hoe de AFAS API werkt met connectoren en tokens
AFAS werkt met connectoren. Een GetConnector levert gegevens uit Profit, een UpdateConnector schrijft ze weg. Welke er zijn en wat erin zit, richt je in je eigen omgeving in; ze worden daarna vrijgegeven via een app connector, die het token voor de koppeling oplevert. Daarmee is de API niet beperkt tot vacatures: met andere connectoren kan dezelfde opbouw ook een klantportaal op je administratie voeden.
Dat token gaat base64-gecodeerd mee in de Authorization-header. Bij ons staat het op de server en nooit in de paginabron, want wie het heeft kan alles wat de app connector mag.
De REST-service draait op het adres van je eigen omgeving, met je omgevingsnummer erin. Een koppeling die bij het ene bedrijf werkt wijst dus niet vanzelf naar het andere: dat adres en dat token horen in een instelling en niet in de code.
Welke data er van en naar je website gaat
Het ophalen gaat met een GetConnector op de vacatures, met de filters en de sortering in de aanroep zelf: filterfieldids met filtervalues en een operator, en orderbyfieldids voor de volgorde. Wij bewaren het resultaat aan onze kant en verversen op een vast ritme, zodat een bezoeker niet op AFAS staat te wachten.
De sollicitatie loopt terug via de UpdateConnector HrCreateApplicant. Daarmee gaan naam en gegevens mee, plus het cv als document en desgewenst een foto en je eigen vrije velden. Gebruik je OutSite en wil je dat de sollicitant een portaalgebruiker wordt, dan zijn het privé-e-mailadres en de site verplicht; AFAS maakt die gebruiker op dat adres aan.
Stappen om je website via de AFAS API te koppelen
- In Profit komt een GetConnector op de vacatures, met precies de velden die op de site moeten staan. Die richt elke organisatie zelf in, dus we beginnen met een lijst van wat we nodig hebben.
- Er komt een eigen app connector voor de website. AFAS raadt aan om voor elke externe toepassing een aparte te gebruiken, zodat je er één kunt intrekken zonder de rest te raken. Met Automatisch token genereren maakt Profit de gebruikersgroep, de gebruiker en het token in één keer aan.
- Aan die app connector koppel je de GetConnector en de UpdateConnector voor sollicitaties, en desgewenst een IP-restrictie op het adres van onze server.
- We bouwen en testen tegen een test- of acceptatieomgeving. AFAS herkent het soort omgeving aan de beginletter: O voor productie, T voor test en A voor acceptatie. Met de metainfo van een GetConnector zien we vooraf welke velden en veldtypes erin zitten.
- Bij de livegang zetten we het adres en het token om naar de productieomgeving. Dat staat in een instelling, zodat er aan de code niets verandert.
OutSite of je eigen werken-bij site
AFAS levert met OutSite zelf een portaal waarin je een werken-bij site kunt bouwen, gekoppeld aan InSite voor de afhandeling erachter. Dat werkt, en voor organisaties die alles binnen AFAS willen houden is het de kortste route.
Het verschil zit in wat je eromheen kunt zetten. Een vacature op je eigen site staat tussen je eigen verhaal, in je eigen ontwerp, met de rest van je site één klik weg. Dat doet bij werving meer dan bij welk onderwerp ook: wie overweegt te solliciteren gaat kijken wat voor bedrijf je bent.
Wij bouwen daarom de pagina’s op je eigen domein en gebruiken AFAS als de bron erachter. Hoe we dat voor werving aanpakken staat op de pagina over recruitment. Wil je OutSite houden voor het deel na de sollicitatie, dan kan dat gewoon naast elkaar.
Waar een AFAS koppeling op vastloopt
Het eerste is de tijd. Een aanroep naar AFAS Online stopt na 15 minuten. Voor een vacaturelijst is dat ruim, maar een integratie die ook sollicitanten of medewerkers in één keer ophaalt, loopt ertegenaan. Met skip en take verdeel je dat over kleinere aanroepen.
Het tweede is het token. Sinds Profit 7 moet het altijd base64-gecodeerd in de header mee; een token dat als platte tekst meegaat geeft een foutmelding. Een token geldt bovendien voor één combinatie van omgeving, app connector, gebruiker en apparaat, dus een token uit de testomgeving werkt niet op productie.
Het derde is de agenda. Bestaande klassieke tokens krijgen per 15 februari 2027 een einddatum, nieuwe klassieke tokens kunnen nog tot uiterlijk 31 augustus 2027 lopen, en daarna is OAuth de route. Een app connector die 6 maanden of langer niet is gebruikt, wordt daarnaast geblokkeerd.
Vacatures op WordPress of op maatwerk
Op WordPress wordt elke vacature een bericht van een eigen type, met de velden uit de GetConnector als eigenschappen. Filteren op locatie, afdeling of uren werkt dan zoals de rest van de site, en de synchronisatie haalt vacatures weg die in AFAS zijn gesloten. Het sollicitatieformulier stuurt de gegevens naar de server, en die zet ze via HrCreateApplicant door naar AFAS.
Op maatwerk in Next.js bouwen we elke vacature als een vooraf gegenereerde pagina met gestructureerde data voor Google for Jobs, die op een vast ritme ververst. Dat past bij organisaties met veel vacatures en meerdere merken of vestigingen op één site.
Werk je naast AFAS met een los wervingssysteem, dan loopt de koppeling vaak via dat systeem; zie bijvoorbeeld OTYS. De bouw van de werken-bij site zelf valt onder Design & Development.
Bijgewerkt op
Specialist voor koppelingen
JosDesign & Development085 83 30 533jos@klubb.nlVeelgestelde vragen
Kan ik mijn vacatures uit AFAS op mijn eigen website zetten?
Ja. De vacatures komen via een GetConnector uit Profit en krijgen bij ons een eigen pagina op je eigen domein, met gestructureerde data zodat ze in Google for Jobs kunnen verschijnen.
Komt een sollicitatie vanaf mijn site terug in AFAS?
Ja, via de UpdateConnector HrCreateApplicant, met het cv erbij. Let op dat er een workflow aan de vacature gekoppeld moet zijn: zonder die koppeling komt de sollicitatie wel binnen, maar gebeurt er verder niets mee.
Wat moeten wij zelf in AFAS regelen?
Een app connector met de juiste GetConnectors en UpdateConnectors eraan, en het token dat daaruit komt. Dat is werk van een AFAS-beheerder in jullie eigen omgeving; wij leveren de lijst met wat we nodig hebben.
Welke connectoren heb je nodig voor een AFAS API koppeling?
Voor een werken-bij site meestal twee: een GetConnector op de vacatures en de UpdateConnector HrCreateApplicant voor sollicitaties. De Profit REST Services ondersteunen daarnaast alle andere GetConnectoren en UpdateConnectoren, plus speciale soorten zoals de ReportConnector, de SubjectConnector en de FileConnector voor grote bestanden. Welke je gebruikt, bepaal je met wat je aan de app connector koppelt.
Moeten wij iets doen voor 15 februari 2027?
AFAS geeft de klassieke tokens vanaf die datum een vervaldatum. Een bestaande koppeling blijft werken, maar er komt een moment waarop hij moet worden omgezet naar de nieuwe manier van aanmelden. Wij houden dat bij voor de koppelingen die wij beheren.
Werkt een AFAS-koppeling ook op WordPress?
Ja. De vacatures slaan we op als eigen berichttype, zodat overzicht, filters en losse pagina’s werken zoals de rest van je site. De aanroepen naar AFAS lopen vanaf de server, zodat het token niet in de paginabron staat.
Heeft AFAS een API?
Ja. AFAS heeft de Profit REST Services, een API op het adres van je eigen omgeving die met JSON werkt. Met GetConnectors haal je gegevens op en met UpdateConnectors schrijf je ze weg. Daarnaast bestaat er een oudere SOAP-variant met XML. Toegang loopt via een app connector met een token.
Hoe vraag ik een API-token aan in AFAS?
Een API-token in AFAS komt uit een app connector in je eigen omgeving. Met Automatisch token genereren maakt Profit de gebruikersgroep, de gebruiker en het token in één keer aan. Daarna koppel je de GetConnectors en UpdateConnectors die de koppeling mag gebruiken. Dat doet een AFAS-beheerder bij jullie.
Hoe maak je een GetConnector in AFAS?
Een GetConnector maak je in Profit onder Algemeen, Uitvoer, Beheer, GetConnector. Je kiest Nieuw, baseert hem op een gegevensverzameling, geeft een externe naam en kiest de velden. AFAS raadt een ingebouwd filter aan, zodat je minder records ophaalt. Daarna koppel je hem aan de app connector.
Waar vind ik de omgevingssleutel in AFAS?
De omgevingssleutel staat in AFAS bij de eigenschappen van de app connector, onder Algemeen, Beheer, App connector, naast de API-sleutel. Je hebt hem nodig als een token automatisch wordt aangevraagd met een activeringscode per e-mail. Voor een token dat je handmatig toevoegt is hij niet nodig.
Let's work together.
Vacatures op je eigen domein, sollicitaties in AFAS.