Payroll naar finance
ADP iHCM Coupa koppeling: goedgekeurde onkosten uit Coupa als variabel looncomponent in ADP iHCM NL
Met een koppeling tussen ADP iHCM en Coupa gaan onkosten die in Coupa zijn goedgekeurd voor betaling automatisch als variabel looncomponent naar ADP iHCM NL, in de salarisperiode van de juiste paygroup. Pas als ADP de batch heeft aangenomen, krijgt de declaratie in Coupa de exportvlag, zodat geen declaratie twee keer of helemaal niet wordt terugbetaald.
Wat de koppeling doet
Organisaties die uitgaven in Coupa laten goedkeuren en de Nederlandse salarissen in ADP iHCM laten verwerken, betalen voorgeschoten onkosten vaak via de loonstrook terug. Iemand zet dan elke periode een export uit Coupa over in ADP, controleert welke declaraties al mee zijn gegaan en ontdekt een fout pas als een medewerker belt.
- Medewerkers declareren in Coupa en de goedkeuring loopt daar, zoals nu.
- KoppelHet haalt elke werkdag de declaraties op die goedgekeurd zijn voor betaling en nog niet zijn geëxporteerd.
- Via het personeelsnummer zoekt KoppelHet de medewerker en zijn paygroup in ADP iHCM op.
- De bedragen gaan per soort uitgave als variabel veld in één batch naar ADP, met de exacte begin- en einddatum van de periode van die paygroup.
- KoppelHet bewaart het batch-ID en zet daarna de declaraties in Coupa op geëxporteerd.
Terug: Exportvlag in Coupa zodra ADP de batch heeft aangenomen
Waar je op let bij ADP iHCM en Coupa
- ADP koppelt een aanlevering alleen aan een salarisrun als begin- en einddatum exact overeenkomen met de periode van de paygroup. Bij een afwijkende datum neemt ADP de bedragen wel aan, maar hangen ze los tot iemand ze in iHCM koppelt. KoppelHet haalt de periodedatums daarom per paygroup op en rekent ze niet zelf uit.
- De Pay Data Input API van ADP neemt alleen variabele velden aan, en alleen velden die voor de paygroup zijn opengezet in de Multipay mapper. Coupa kent één lijst met soorten uitgave voor de hele organisatie; per paygroup legt KoppelHet vast welk V-veld bij welke soort hoort.
- ADP keurt een hele batch af als één regel niet klopt, bijvoorbeeld een onbekend personeelsnummer. KoppelHet controleert elke regel vooraf tegen de worker-API. Een declaratie van een onbekende medewerker blijft in Coupa op niet geëxporteerd staan, zodat de rest van de medewerkers wel op tijd betaald wordt.
- ADP weigert hetzelfde veld twee keer voor dezelfde medewerker in één aanlevering. Heeft een medewerker drie declaraties met reiskosten, dan telt KoppelHet die eerst op tot één bedrag per V-veld, en houdt per bedrag bij welke Coupa-declaraties erin zitten.
- Een gegeven dat al naar ADP is gestuurd, corrigeer je met het verschil, of je vervangt de hele batch zolang ADP die nog niet heeft verwerkt. Bij vervangen verdwijnt elk veld dat je weglaat. KoppelHet bewaart daarom elk batch-ID met de volledige inhoud, zodat een vervanging nooit per ongeluk bedragen wist.
- Coupa raadt aan het ID van de declaratie te bewaren in het systeem dat betaalt. ADP iHCM heeft in de Pay Data Input API geen veld voor een omschrijving per regel. KoppelHet legt de koppeling tussen declaratie-ID, batch-ID en periode daarom in het eigen logboek vast.
- In Coupa is de exportvlag een los verzoek. KoppelHet zet die vlag pas als ADP de batch zonder fouten heeft teruggemeld. Mislukt de aanlevering, dan komt de declaratie de volgende werkdag gewoon opnieuw in de selectie.
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
Wanneer krijgt de medewerker het geld terug?
Met de eerstvolgende salarisrun van zijn paygroup na de goedkeuring in Coupa. Een declaratie die na de laatste ronde wordt goedgekeurd, gaat een periode later mee.
Wat als een declaratie achteraf fout blijkt?
Zolang ADP de batch nog niet heeft verwerkt, vervangt KoppelHet de batch. Daarna gaat de correctie als verschil mee in de volgende periode.
Worden medewerkers uit ADP ook gebruiker in Coupa?
Niet in de eerste versie. Gebruikers met personeelsnummer vanuit ADP in Coupa zetten kan later als uitbreiding.
Technische details voor IT
Voor wie wil weten hoe het onder de motorkap werkt: gebruikte API's, velden en bronnen.
- Coupa via de Core API: GET /api/expense_reports?status=approved_for_payment&exported=false, regels via /api/expense_lines, een aparte PUT met exported=true per declaratie en /api/users voor employee-number.
- ADP iHCM NL via de Pay Data Input API (pay-data-input.add en pay-data-input.replace) met payrollRegionCode NL, payrollGroupCode, payeeID, payPeriodStartDate, payPeriodEndDate, earningCode, rate en earnedPayPeriodStartDate. Het batch-ID staat in de respons onder events/data/output/payDataInput/itemId. Geen OData-parameters. Beide canonicals moeten in de Consumer Application Registry staan; paygroup en personeelsnummer komen uit de Worker Management API.
Welke velden overgaan
De belangrijkste velden. De volledige mapping stellen we per klant vast.
| Veld in ADP iHCM | Veld in Coupa | Toelichting |
|---|---|---|
employee-number (Coupa-gebruiker) | payeeID | Personeelsnummer in iHCM, gelijk aan payrollfilenumber in de worker-API |
Paygroup van de medewerker | payrollGroupCode | Opgehaald uit de worker-API (paygroupcode) |
Soort uitgave | earningCode (bijvoorbeeld V160) | Vertaaltabel per paygroup; alleen V-velden die voor die paygroup aanstaan |
Bedrag, opgeteld per soort en medewerker | rate | Decimalen volgens het doelveld in iHCM |
Periode van de salarisrun | payPeriodStartDate en payPeriodEndDate | Moet exact gelijk zijn aan de periode van de paygroup |
Datum van goedkeuring | earnedPayPeriodStartDate | Op of na de contractstart |
Aangenomen door ADP | exported=true |
Gerelateerd
ADP iHCM → Active Directory
ADP iHCM Active Directory koppeling: netwerkaccounts per land, met vervaldatum bij tijdelijke contracten
ADP iHCM → Dyflexis
ADP iHCM Dyflexis koppeling: medewerkers en contracten in de planning, uren terug naar ADP
ADP iHCM → Microsoft Entra ID
ADP iHCM Entra ID koppeling: accounts uit de ADP-payroll, in elk Europees land met de juiste licentie
ADP iHCM → Google Workspace
ADP iHCM Google Workspace koppeling: Google-accounts uit de ADP-administratie, met het adres terug in ADP