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
username
cannot be changed - The
email
must be unique if provided personal_number
andoauth_username
must also be unique- All fields are optional except
username
, which is used to identify the employee