

Recruitment naar HR
Bullhorn Loket koppeling: plaatsing als conceptwerknemer in de juiste loonadministratie
Met een koppeling tussen Bullhorn en Loket wordt een goedgekeurde plaatsing in Bullhorn automatisch een conceptwerknemer in Loket, met de datum waarop de betaalde arbeid begint, de einddatum van de opdracht en het uurloon. De betaalgroep op de plaatsing bepaalt in welke loonadministratie het concept komt, en de salarisadministratie maakt er na controle een werknemer van.
Wat de koppeling doet
Organisaties die kandidaten in Bullhorn plaatsen en in Loket verlonen, typen elke plaatsing opnieuw in voor de salarisadministratie. Vaak begint de betaalde arbeid op een andere dag dan de plaatsing zelf, en wie dat verschil mist, verloont de eerste week verkeerd.
- De recruiter zet de plaatsing in Bullhorn op de afgesproken status, met start, eventueel einde, uurloon en betaalgroep.
- KoppelHet haalt de plaatsing en de kandidaat op en controleert het soort medewerker.
- De betaalgroep wijst via een vertaaltabel de Loket-werkgever en de loonadministratie aan.
- In Loket staat een conceptwerknemer klaar, met de checklist voor nieuwe medewerkers gestart.
- De salarisadministratie vult BSN, loonheffing en cao-gegevens aan en zet het concept om naar een werknemer.
Waar je op let bij Bullhorn en Loket
- Bullhorn heeft op de plaatsing naast de begindatum een apart veld voor de dag waarop de betaalde arbeid begint, bedoeld voor payrollkoppelingen. KoppelHet gebruikt die datum als datum in dienst in Loket en valt alleen terug op de begindatum van de plaatsing als het veld leeg is.
- In Loket hangen de velden van een nieuw concept af van de loonadministratie, en een werkgever kan er meer dan één hebben. Het Bullhorn-veld payGroup geeft de betaalfrequentie van de plaatsing; KoppelHet kiest daarmee bijvoorbeeld de wekelijkse of de maandelijkse loonadministratie bij de juiste werkgever.
- Het soort medewerker op een Bullhorn-plaatsing kan ook een contractor of zzp'er aanduiden. Alleen soorten die jullie als loondienst aanmerken, worden een concept in Loket; de rest blijft buiten de salarisadministratie.
- Bullhorn slaat het salaris op met een eenheid per jaar of per uur. Een uurbedrag gaat als uurloon naar het concept. Een jaarbedrag rekent KoppelHet niet zelf om naar een maandloon, omdat vakantiegeld en een dertiende maand per cao verschillen; dat wordt een melding voor de salarisadministratie.
- Events uit de Bullhorn-wachtrij zijn met een requestId opnieuw op te halen. Lukt het aanmaken in Loket niet, bijvoorbeeld omdat een verplicht veld van de loonadministratie ontbreekt, dan haalt KoppelHet dezelfde reeks opnieuw op in plaats van de plaatsing te verliezen.
- Bullhorn heeft een veld voor het burgerservicenummer van de kandidaat, maar KoppelHet leest het niet. Het BSN komt via de salarisadministratie in Loket, zodat het niet door een recruitmentsysteem en een koppeling reist.
- Loket laat een externe applicatie pas in productie toe na goedkeuring en levert eerst een acceptatieomgeving met testdata. De eerste plaatsingen per betaalgroep draaien daar, zodat de vertaaltabel naar werkgevers en loonadministraties klopt voordat er echte concepten ontstaan.
Hoe we het bouwen en beheren
- De koppeling draait op het KoppelHet platform, gehost in een datacenter in de EU.
- Elke synchronisatie en elke fout is zichtbaar in de functionele logging; bij een fout krijgt jullie beheerder een melding.
- Een mutatie die niet door kan, wordt niet half doorgezet maar klaargezet om opnieuw te proberen.
- KoppelHet is ISO 27001-gecertificeerd. Gegevens gaan versleuteld over en blijven niet langer op het platform dan nodig.
- Na livegang beheren wij de koppeling en passen we hem aan als jullie proces verandert.
- De koppeling past naast je bestaande integratielaag. Alleen de velden uit het ontwerp gaan over; het platform houdt geen eigen registratie bij.
Implementatie en prijs
Dit is geen app die je aanzet. We bouwen de koppeling voor jullie organisatie op ons platform, met bouwstenen die we steeds opnieuw gebruiken. Zo is het maatwerk, zonder dat we bij nul beginnen.
Een consultant bereidt de intake voor en analyseert beide systemen. Daarna leggen we de mapping en uitzonderingen per veld vast, testen we in de test- of acceptatieomgeving en gaan we live op een moment dat jij kiest. De kosten bestaan uit een eenmalig bedrag voor de inrichting en een maandbedrag voor platform, monitoring en beheer.
Veelgestelde vragen
Gaat een verlenging of een nieuw uurloon later ook naar Loket?
Niet in de eerste versie: die maakt alleen het concept. Wijzigingen doorgeven kan later als uitbreiding, met dezelfde wachtrij.
Wat als een betaalgroep nog niet in de vertaaltabel staat?
Dan maakt KoppelHet geen concept en krijgt de salarisadministratie een melding met de plaatsing erbij.
Technische details voor IT
Voor wie wil weten hoe het onder de motorkap werkt: gebruikte API's, velden en bronnen.
- Bullhorn via de REST API (OAuth 2.0, daarna REST-login met BhRestToken). Een subscription op entity Placement met eventTypes INSERTED en UPDATED; GET /event/subscription/{id} met maxEvents leest de wachtrij, met requestId om een reeks opnieuw op te halen. Velden via entity/Placement (status, employmentStartDate, dateBegin, dateEnd, employeeType, payRate, salary, salaryUnit, payGroup) en entity/Candidate (firstName, lastName, dateOfBirth, address).
- Loket via de REST API met OAuth 2.0 (authorization code met refresh token). Metadata voor een concept per werkgever (jobapplicant/metadata) en daarna per loonadministratie; concept aanmaken en de workflow voor nieuwe medewerkers starten. Acceptatie op api.loket-acc.nl/v2, productie alleen voor goedgekeurde applicaties.
Welke velden overgaan
De belangrijkste velden. De volledige mapping stellen we per klant vast.
| Veld in Bullhorn | Veld in Loket | Toelichting |
|---|---|---|
Placement.id | Eigen administratie van KoppelHet | Herkent een tweede event voor dezelfde plaatsing |
Candidate.firstName en lastName | Voornaam, voorvoegsel en achternaam | Voorvoegsel apart gezet volgens een vaste lijst |
Candidate.dateOfBirth | Geboortedatum | |
Candidate.address (address1, zip, city, countryID) | Woonadres | |
Placement.employmentStartDate, anders dateBegin | Datum in dienst | |
Placement.dateEnd | Einddatum contract | Leeg bij een vaste plaatsing |
Placement.payRate | Uurloon | Alleen bij soorten medewerker met uurloon |
Placement.payGroup | Werkgever en loonadministratie | Via een vertaaltabel |
Gerelateerd
Bullhorn → AFAS Profit
Bullhorn AFAS koppeling: eerste plaatsing van een consultant start de onboarding
Bullhorn → BambooHR
Bullhorn BambooHR koppeling: eerste plaatsing als medewerker met statusregel in BambooHR
Bullhorn → Dayforce
Bullhorn Dayforce koppeling: eerste plaatsing van een werknemer als medewerker in Dayforce
Bullhorn → Deel
Bullhorn Deel koppeling: eerste plaatsing als direct employee met contract in Deel