Update employee
Use this endpoint to update an existing employee.
Request
curl --request PUT \
--url 'https://www.zep-online.de/zepinstanz/next/api/v1/employees/john.doe' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {token}' \
--header 'Content-Type: application/json' \
--data '{
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@example.com",
"phone": "+49 30 987654",
"department_id": 43,
"rights": "1",
"employment": "0",
"birthdate": "1990-01-15",
"street": "New Street 456",
"zip": "10117",
"city": "Berlin",
"country": "Germany"
}'Response
{
"data": {
"id": 12345,
"username": "john.doe",
"firstname": "John",
"lastname": "Doe",
"email": "john.doe@example.com",
"price_group": "Standard",
"department_id": 43,
"phone": "+49 30 987654",
"rights": "1",
"employment": "0",
"birthdate": "1990-01-15",
"street": "New Street 456",
"zip": "10117",
"city": "Berlin",
"country": "Germany",
"salutation": null,
"abbreviation": null,
"title": null,
"mobile": null,
"fax": null,
"created": "2024-09-17T10:15:47.000000Z",
"modified": "2025-10-07T14:30:22.000000Z"
}
}Required Parameters
- Name
username- Type
- string
- Description
Username (cannot be changed, must match current value)
Optional Parameters
- Name
firstname- Type
- string
- Description
First name of the employee (max. 255 characters).
- Name
lastname- Type
- string
- Description
Last name of the employee (max. 255 characters).
- Name
email- Type
- string
- Description
Email address (must be unique, max. 255 characters).
- Name
personal_number- Type
- string
- Description
Personal number (must be unique if provided).
- Name
birthdate- Type
- date | Y-m-d
- Description
Employee's date of birth.
- Name
phone- Type
- string
- Description
Business phone number.
- Name
department_id- Type
- integer
- Description
Department ID.
- Name
rights- Type
- string | enum
- Description
Access rights:
0(User),1(Admin),2(Controller),3(User with extended rights),4(Project Controller).
- Name
employment- Type
- string | enum
- Description
Employment type:
0(Permanent),1(Freelancer),2(Student),3(Working student).
- Name
price_group- Type
- string
- Description
Price group name.
- Name
oauth_username- Type
- string
- Description
OAuth username for SSO integration (must be unique).
- Name
salutation- Type
- string | enum
- Description
Salutation:
1(Mr.),2(Ms.),3(Diverse).
- Name
street- Type
- string
- Description
Street and house number (max. 64 characters).
- Name
zip- Type
- string
- Description
Postal code (max. 32 characters).
- Name
city- Type
- string
- Description
City (max. 64 characters).
- Name
country- Type
- string
- Description
Country (max. 64 characters).
- Name
abbreviation- Type
- string
- Description
Abbreviation (max. 32 characters).
- Name
title- Type
- string
- Description
Academic title (max. 32 characters).
- Name
mobile- Type
- string
- Description
Mobile phone number (max. 32 characters).
- Name
fax- Type
- string
- Description
Fax number (max. 32 characters).
- Name
language- Type
- string
- Description
Language code (max. 32 characters).
- Name
active- Type
- boolean
- Description
Status: Active or inactive.
- Name
target_hours_monthly- Type
- string
- Description
Monthly target working hours.
- Name
target_hours_annual- Type
- string
- Description
Annual target working hours.
Notes
- The
usernamecannot be changed - The
emailmust be unique if provided personal_numberandoauth_usernamemust also be unique- All fields are optional except
username, which is used to identify the employee