
Payroll integration
Keka to DATEV integration: the German entity from Keka to the tax adviser in DATEV
An integration between Keka and DATEV prepares new employees, salary changes, variable payments and leavers of the German entity from Keka for DATEV LODAS or Lohn und Gehalt every pay month. Keka itself only calculates Indian payroll; for Germany KoppelHet reads the Keka API and delivers master and movement data that the tax adviser takes over.
What the integration does
Organisations that use Keka for their Indian teams and also have a German entity have German payroll calculated by a tax adviser in DATEV. HR works in Keka, but the firm still receives starters and salaries by email and works out itself which Keka component belongs to which wage type.
- HR records a starter, salary change or exit in Keka for the German pay group.
- An Event Trigger in Keka sends a webhook; KoppelHet fetches the employee and the salary.
- KoppelHet translates every earning component to the firm's wage type and leaves out employer contributions.
- Before the cut-off the month's master and movement data go to DATEV; the tax adviser takes them over.
- Components without a wage type and employees without bank details appear on a list for HR.
What to watch for with Keka and DATEV
- A salary in Keka consists of earnings, contributions and deductions, each component with a title and amount. DATEV calculates employer contributions and deductions itself; KoppelHet only sends the earnings, each on the wage type from the translation table.
- Keka also returns a CTC amount, the Indian concept for total cost to company. That is not a German gross salary; KoppelHet never uses it as fixed pay, but adds up the earnings.
- The salary API can filter on pay group and by default only returns working employees. KoppelHet only requests the German pay group and, in the month of leaving, also employees with status Relieved, so the final month is not missing.
- Variable payments sit in Keka with their own payout date. KoppelHet delivers them as movement data in the pay month of that date, not as a change to the fixed salary.
- The EmployeeSalaryUpdated webhook contains the old and new amount and the old and new effective date, with a currency code. KoppelHet uses the new effective date to decide which pay month the change belongs to, and flags a German salary that is not in euros.
- The employee profile in the Keka API has no fields for bank account or German numbers such as the tax ID. Those sit in custom fields in Keka, or the tax adviser fills them in DATEV; we choose at the start, and the integration then does not overwrite the firm.
- A Keka webhook arrives as a form post with only employeeIdentifier, eventType and subDomain for most events, and the documentation mentions no signing. After every notification KoppelHet fetches the data itself from the API instead of trusting the content of the notification.
How we build and run it
- The integration runs on the KoppelHet platform, hosted in a data centre in the EU.
- Every sync and every error is visible in the functional log; on an error your administrator is notified.
- A change that cannot go through is not half-applied but queued for another attempt.
- KoppelHet is ISO 27001 certified. Data travels encrypted and stays on the platform no longer than needed.
- After go-live we manage the integration and adjust it when your process changes.
- The integration fits next to your existing integration layer. Only the fields in the design are transferred; the platform keeps no register of its own.
Implementation and price
This is not an app you switch on. We build the integration for your organisation on our platform, with building blocks we reuse on every project. So it is custom work that does not start from scratch.
A consultant prepares the intake and analyses both systems. We then record the mapping and exceptions field by field, test in the test or acceptance environment and go live at a moment you choose. Costs are a one-off amount for the setup and a monthly amount for platform, monitoring and support.
Frequently asked questions
Can Keka calculate German payroll itself?
No. Keka Payroll is made for India. For Germany the tax adviser calculates in DATEV, and Keka remains the HR source.
How quickly does a change reach the firm?
KoppelHet collects immediately, but delivers once per pay month before the cut-off. That way the firm calculates with one complete set.
Technical details for IT
For those who want to know how it works under the hood: APIs, fields and sources used.
- Keka through the REST API (OAuth 2.0 with client id, client secret and API key, scope kekaapi). GET hris/employees (employeeNumbers, employmentStatus Working or Relieved, lastModified, pageSize at most 200; joiningDate, exitDate, exitType, currentAddress, customFields) and GET payroll/salaries (paygroupIds, employmentStatus; ctc, gross, earnings, contributions, deductions, variables with payoutDate, effectiveFrom). Webhooks through Settings > Communications > Event Triggers.
- To DATEV through the Lohnimportdatenservice (master and movement data via the DATEV data centre, activation in DATEV Arbeitsplatz by the tax adviser, only for selected software) or an ASCII file the firm loads into LODAS or Lohn und Gehalt itself.
Which fields are transferred
The key fields. The full mapping is agreed per customer.
| Field in Keka | Field in DATEV | Notes |
|---|---|---|
employeeNumber | Personalnummer | |
firstName, lastName, dateOfBirth | Vorname, Familienname, Geburtsdatum | |
joiningDate | Eintrittsdatum | |
earnings (title, amount) met effectiveFrom | Festbezüge per Lohnart | Translation table per component |
variables (title, amount, payoutDate) | Bewegungsdaten in de maand van uitbetaling | |
exitDate | Austrittsdatum | |
currentAddress (addressLine1, addressLine2, city, zip) | Anschrift |
Related
Keka → Active Directory
Keka to Active Directory integration: domain accounts per office, with expiry on the exit date
Keka → ADP iHCM
Keka to ADP iHCM integration: salary structure, variable payouts and leavers of the Dutch pay group to ADP
Keka → AFAS Profit
Keka to AFAS integration: Dutch employees from Keka in payroll
Keka → Arbodienst (SIVI)
Keka to the occupational health service via SIVI: sickness leave requests as absence reports