Payroll export

Overview
The payroll export produces an aggregate for the payroll office — hours, absences and master data per period.
What this page explicitly does not do is calculate. No payslip is produced, no tax and no social security computation. The system supplies the figures; the payroll office does the calculation. That boundary is drawn deliberately and is not meant as a gap.
Core tasks
Choose period and format. From and to dates, plus the output format.
Create the export. Create export produces the result; the CSV can be downloaded.
Read the result. Per employee it shows personnel number, name, type, contract, weekly hours, logged hours, holiday days, paid special leave, sick days and unpaid days.
The logged hours come from time tracking, the absence days from absences. Both should be closed before the export — an export in the middle of an open week delivers a snapshot the payroll office reads as a final figure.
Check the DATEV format. For the DATEV payroll format the page states explicitly that it is to be agreed finally with the payroll office. Take that seriously: format deviations only surface on import, and by then time is short.
Fields in detail
The form has three entries. Everything else comes from absences, time tracking and the employee records. The grey name behind each label is the API field.
Export period
| Field | Required | Values / format | What it does |
|---|---|---|---|
From from | yes | date | First day of the payroll period. |
To to | yes | date | Last day, inclusive. It must not lie before the from-date, and the period may span at most 366 days — anything longer is no longer a payroll run. Absences that reach beyond the edge count proportionally. |
Format format | no | csv (generic) · datev | The layout of the file. Without a value, csv. The choice follows the payroll office's software, not taste. For datev the result states explicitly that the format is to be agreed with the payroll office first. |
The export does not calculate: no payslip, no tax and no social-security computation is produced. That is the module's boundary, not a gap.
What the file contains
One row per employee who was employed during the period — including those who left mid-year:
| Column | Where from | What it means |
|---|---|---|
| Personnel no. | personnel number on the employee | The key in the payroll software. If it is missing, the record identifier stands in its place — nobody drops out of the export because of it, but the payroll office cannot assign the row. |
| Name, type, contract, weekly hrs. | employee data | Master data of the row. |
| Logged hrs. | approved time tracking | Sum of the minutes in the period, converted to hours and rounded to two decimals. |
| Holiday (d) | absence type with the key vacation, paid | Holiday days. Other paid types do not count here. |
| Paid special leave (d) | paid absence types other than holiday and sickness | The remainder of paid absence. |
| Sick (d) | absence type with the key sick | Days of sickness. |
| Unpaid (d) | unpaid absence types | Days without pay. |
Working days are counted according to the working-time schedule and public holidays, not calendar days. Which type counts as paid, sick or holiday is set in the HR settings.
Export history
Every run is recorded; the history has no input fields, it is the evidence:
| Column | Field | What it shows |
|---|---|---|
| Run at | createdAt | When the run happened, together with createdByName — by whom. |
| Period | from, to | Which period was handed over. |
| Format | format | In which layout. |
| Rows | rowCount | How many employee rows the file had. |
| DATEV approval pending | externalApprovalPending | The note on a DATEV run. |
That is how you can later prove what was handed over and when — a second run over the same period is not a silent replacement but a second entry.
Settings & permissions
- Module
module.hr. - Permission
hr.payroll.export— a distinct permission, because the export bundles the whole
organisation's personnel figures.
- Sick days and holiday days follow the absence types, see HR settings.
FAQ & troubleshooting
The logged hours look too low. Check whether all timesheets for the period are submitted and approved.
An employee is missing from the export. Check the period: everyone employed during it is included. It is not the personnel number — if it is missing, the record identifier stands in the row instead.
A row carries a long letter code instead of the personnel number. Then no personnel number is set on the employee. Add it, otherwise the payroll office cannot assign the row.
The days do not match our expectation. Working days are counted according to the working-time schedule and public holidays, not calendar days.
Can we produce the payslips directly? No. The module supplies the aggregate; the calculation stays with the payroll office.