
Payroll koppeling
Keka koppelen met AFAS: Nederlandse medewerkers uit Keka in de salarisadministratie
Met een koppeling tussen Keka en AFAS Profit komen nieuwe medewerkers van de Nederlandse vestiging uit Keka als medewerker met contract en rooster in AFAS, en gaan vertrek en salariswijzigingen met hun datum mee. Keka blijft het HR-systeem van de groep; AFAS verloont de Nederlandse medewerkers en de salarisadministratie vult alleen de Nederlandse loonheffingsgegevens aan.
Wat de koppeling doet
Organisaties met Keka als HR-platform voor India en andere landen en een Nederlandse bv die in AFAS Profit wordt verloond, voeren Nederlandse collega's nu twee keer in. Keka is ingericht op Indiase loonbegrippen, dus de salarisadministratie moet per medewerker uitzoeken welk bedrag het brutomaandsalaris is.
- HR maakt de Nederlandse medewerker aan in Keka, in de groep die bij de Nederlandse vestiging hoort.
- Een event trigger in Keka meldt de wijziging; KoppelHet haalt daarna het volledige profiel op.
- Een nieuwe medewerker gaat via het onboardingproces naar AFAS, met contract, rooster en afdeling.
- Een salariswijziging gaat met de ingangsdatum uit Keka naar AFAS, als vast maandbedrag.
- Een goedgekeurd vertrek sluit het contract in AFAS af per de exitdatum uit Keka.
Waar je op let bij Keka en AFAS Profit
- Een salarisregel in Keka draait om CTC, de totale werkgeverskosten per jaar, met daaronder bruto, netto en losse looncomponenten. AFAS wil een vast maandsalaris of uurloon. KoppelHet zet alleen het afgesproken vaste component om naar een maandbedrag en laat CTC buiten de koppeling.
- De bankgegevens in Keka zijn gebouwd voor Indiase banken, met IFSC-code en rekeningnummer en zonder IBAN-veld. Voor Nederlandse collega's leggen we het IBAN in een eigen veld in Keka vast, of vult de salarisadministratie het in AFAS aan.
- Het medewerkerprofiel in Keka heeft geen veld voor een Nederlands BSN. Een eigen veld in Keka kan het meenemen; zonder dat veld start KoppelHet de onboarding in AFAS zonder BSN en ziet de salarisadministratie dat als openstaand punt.
- Keka geeft bij een dienstverband alleen aan of het voltijd of deeltijd is, zonder uren per week. AFAS heeft voor het rooster een urenaantal nodig. Dat aantal leggen we per medewerker vast in een eigen veld in Keka, zodat AFAS het juiste rooster en de juiste parttimefactor krijgt.
- De Keka API staat vijftig aanvragen per minuut toe en geeft hooguit tweehonderd medewerkers per pagina. KoppelHet vraagt daarom alleen medewerkers op die sinds de vorige ronde zijn gewijzigd, en spreidt de eerste vulling van alle Nederlandse medewerkers over meerdere minuten.
- Een ontslagaanvraag in Keka heeft een indieningsdatum, een exitstatus en een exitdatum. AFAS krijgt pas een einddatum als het vertrek is goedgekeurd. Trekt HR het vertrek later in, dan meldt Keka dat met een eigen event en zet KoppelHet de einddatum in AFAS terug.
- Keka meldt een salariswijziging met het oude en het nieuwe bedrag, beide ingangsdatums en de valuta. KoppelHet zet alleen wijzigingen in euro door naar AFAS; een bedrag in een andere valuta wordt een melding aan HR in plaats van een loonregel.
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
Draait Keka niet zelf de salarissen?
Keka verwerkt Indiase salarissen. Voor de Nederlandse vestiging blijft AFAS de salarisadministratie; Keka levert de HR-gegevens aan.
Wat als Keka geen BSN of IBAN heeft?
Dan komt de medewerker zonder die gegevens in AFAS en vult de salarisadministratie ze aan. Liever één bron? Dan maken we er eigen velden voor in Keka.
Technische details voor IT
Voor wie wil weten hoe het onder de motorkap werkt: gebruikte API's, velden en bronnen.
- Keka wordt gelezen via de Keka HRIS API (https://{bedrijf}.keka.com/api/v1) met een access token van login.keka.com/connect/token, op basis van client_id, client_secret, api_key en scope kekaapi. Medewerkers via GET /hris/employees met lastModified, employmentStatus en employeeNumbers; salarissen via GET /payroll/salaries (ctc, gross, earnings, effectiveFrom). Limiet vijftig aanvragen per minuut (429 rateLimitExceeded), standaard honderd en maximaal tweehonderd regels per pagina. Testen kan in de sandbox op kekademo.com.
- Event triggers stelt een beheerder in onder Settings > Communications > Event Triggers met een webhookactie. De POST bevat employeeIdentifier, eventType en subDomain; EmployeeSalaryUpdated bevat oud en nieuw bedrag, ingangsdatums en currencyCode.
- Naar AFAS schrijven we via de UpdateConnector HrOnboarding voor nieuwe medewerkers en KnEmployee (AfasContract, AfasTimeTable, AfasSalary, AfasBankInfo) voor wijzigingen, in een eigen app-connector.
Welke velden overgaan
De belangrijkste velden. De volledige mapping stellen we per klant vast.
| Veld in Keka | Veld in AFAS Profit | Toelichting |
|---|---|---|
Personeelsnummer (employeeNumber) | Medewerker (EmId) | Vaste sleutel tussen beide systemen |
Voornaam, tussennaam, achternaam | Voornaam, voorvoegsel en achternaam | Voorvoegsel afsplitsen |
Geboortedatum en geslacht | Persoonsgegevens | |
Huidig adres | Woonadres | |
Indiensttredingsdatum (joiningDate) | Begindatum contract | |
Exitdatum na goedkeuring | Einddatum contract | |
Groep van de Nederlandse vestiging | Werkgever in AFAS | Via een vertaaltabel |
Vast salariscomponent met effectiveFrom | Salaris met ingangsdatum | |
Eigen veld voor BSN en IBAN | BSN en bankrekening | Alleen als HR ze in Keka vastlegt |
Gerelateerd
Keka → Active Directory
Keka koppelen met Active Directory: domeinaccounts per vestiging, met vervaldatum op de exit
Keka → ADP iHCM
Keka ADP iHCM koppeling: salarisopbouw, variabele uitbetalingen en vertrek van de Nederlandse pay group naar ADP
Keka → Arbodienst (SIVI)
Keka koppelen met de arbodienst via SIVI: leave requests voor ziekte als verzuimmelding
Keka → DATEV
Keka DATEV koppeling: de Duitse entiteit uit Keka naar de Steuerberater in DATEV