Skip to content
Developer

Employment contracts

You create the employment contracts of your staff or change them, with term, hours and contract group.

Format
CSV (comma or semicolon), UTF-8
Access rights
Staff (write)
Example file
Arbeitsvertraege_beispiel_technisch.csv (download)

In short: With this file you create the employment contracts of your staff or change existing ones. Each contract has a contract number, a term, the hours per weekday and a contract group.

What you need this for

The employment contract defines how many hours a person works, from when and until when. From this, the target hours and the holiday days result. With a table you transfer all contracts at once.

Before you start

  • Rights: You need write access for the area Staff (Personal).
  • Import beforehand: The organisational units and the contract groups. The persons must exist in vynst.
  • Backup: An import cannot be undone at the click of a button. Before larger changes, export the affected data under Settings → Export (Einstellungen → Export).
  • Change lock: If your administrator has activated the change lock for employment contracts, vynst rejects changes that alter values which are already in effect. More on this under “Good to know”.

Prepare the file

  • Format: CSV. The separator is semicolon ; or comma ,. Put texts containing separators in quotation marks "…".
  • Header row: The first 13 columns up to SUNDAY_HOURS must appear in this order. Also include all further columns from the table below, even if you leave them empty.
  • Contract number: CONTRACT_NUMBER is the number of the contract. With it, vynst recognises the existing contract on a re-import.
  • Date: 01.03.2026 or 2026-03-01.
  • Decimal numbers: With a point, e.g. 25.00. A comma is not recognised as a decimal separator.
  • Yes/No: ja or nein, also 1 or 0 and true or false.

Columns

Column Required Content Example
PERSON_ID yes Number of the person in vynst, for example the import number of the person AFS_CSV_1004
CONTRACT_NUMBER yes Contract number AV-2026-001
START_DATE yes Start of the contract 01.03.2026
END_DATE no End of the contract. Empty means: open. 31.12.2026
ORGANIZATION_GROUP_ID yes (column), cell as needed Number of the organisational unit of the contract group ORG-1
CONTRACT_GROUP_ID yes Number of the contract group VG-1
MONDAY_HOURS to SUNDAY_HOURS yes (columns), cell as needed Hours on this weekday. Empty or 0 means: no hours. 8
WEEK_TOTAL_DAYS include column Working days per week 5
YEAR_VACATION_DAYS include column Holiday days per year 30
NETTO_HOUR_COST include column Net hourly cost 25.00
BRUTTO_HOUR_COST include column Gross hourly cost 32.50
APP_TIME_TRACKING include column, always fill in the cell Yes/No: time tracking via the app is allowed ja
SCANNER_TIME_TRACKING include column, always fill in the cell Yes/No: time tracking via the scanner is allowed ja
LEADERSHIP_PERSON_ID no Numbers of the persons in leadership, separated by commas. Empty removes all. AFS_CSV_1002
KEEP_PARALLEL_CONTRACTS no ja if a new contract should remain alongside an open contract nein

Example

PERSON_ID;CONTRACT_NUMBER;START_DATE;END_DATE;ORGANIZATION_GROUP_ID;CONTRACT_GROUP_ID;MONDAY_HOURS;TUESDAY_HOURS;WEDNESDAY_HOURS;THURSDAY_HOURS;FRIDAY_HOURS;SATURDAY_HOURS;SUNDAY_HOURS;WEEK_TOTAL_DAYS;YEAR_VACATION_DAYS;NETTO_HOUR_COST;BRUTTO_HOUR_COST;APP_TIME_TRACKING;SCANNER_TIME_TRACKING;LEADERSHIP_PERSON_ID;KEEP_PARALLEL_CONTRACTS
AFS_CSV_1004;AV-1004;01.01.2026;;ORG-1;VG-1;8;8;8;8;8;;;5;30;25.00;32.50;ja;nein;;nein
AFS_CSV_1003;AV-1003;01.03.2026;;ORG-1;VG-2;4;4;4;4;4;;;5;30;18.50;24.00;nein;nein;;nein

Example file: Arbeitsvertraege_beispiel_technisch.csv

Max Mustermann (AFS_CSV_1004) works 8 hours from Monday to Friday according to contract group VG-1. Anna Beispiel (AFS_CSV_1003) works 4 hours on five days according to VG-2. The column END_DATE stays empty, so the contracts run without a fixed end. The column LEADERSHIP_PERSON_ID is empty, so no leadership is recorded. KEEP_PARALLEL_CONTRACTS is set to nein.

How to proceed

  1. Open Settings → Import (Einstellungen → Import).
  2. Click Add (Hinzufügen) and select the file. The file name must contain .csv, e.g. arbeitsvertraege.csv.
  3. The file appears in the list and is processed in the background. Check the log afterwards.

Good to know

  • Re-import: A known contract number updates the contract. A new number creates a new contract.
  • Person and contract group stay: For an existing contract, the import does not change the person and the contract group. You change these fields directly in vynst.
  • End: If END_DATE is empty, the end is removed. The contract then runs open-ended.
  • Start: If START_DATE is empty, the previous start remains for an existing contract.
  • Previous contract: A new contract ends the previous open contract of the same person one day before its start. With KEEP_PARALLEL_CONTRACTS = ja, the previous contract stays open. This only applies to new contracts.
  • Change lock: If it is active, values of contracts that are already in effect must not be changed. Changes are only possible at the start of a month, at the earliest from the date named in the message. For new contracts there is no previous state, so the protection for values in effect does not apply there. Rejected rows appear in the log.
  • Time tracking: If the cell APP_TIME_TRACKING is empty, vynst takes the previous value of the scanner column. Therefore always fill in both columns.
  • Leadership: Numbers that are not found are skipped without a message.

When something does not work

Message in the log Meaning What to do
FAILED: No matching processor found. File name or header row does not match any import Check that the file name contains .csv and that the first 13 columns are in the correct order
FAILED: User missing rights to import. You lack the right Staff (Personal) Ask an administrator
Error: skipped empty line Empty row, is skipped Nothing to do, or remove empty rows
Error: skipped missing identifier PERSON_ID or CONTRACT_NUMBER is missing. The row appears directly below as LINE-DATA. Add both details
Error: skipped missing person The person was not found in vynst. The row appears below as LINE-DATA. Check the person number, import persons first
Error: skipped contract change rejected by change policy: … The change lock rejects the change. The reason follows the colon. Enter the change only at the start of a month and at the earliest from the date named
Error: less then one line The file contains no data rows Check the file

See also

  • Contract groups: provide the hours and costs.
  • Overtime: the overtime balance of a person at a reference date.
  • Import overview: General information on files, header rows and the log.