Skip to main content
PATCH

At a glance

Operational behavior

Updates employee data. divisionId changes or removes the employee’s division within the same tenant. This endpoint cannot move an assigned employee to another tenant. With dryRun=true, the API returns the projected employee without saving it.
  • Omitted properties remain unchanged; nullable properties can be cleared with null.
  • divisionId can change or remove placement only within the same tenant.
  • At least one patch property is required.

Common errors

The operation response list and Error handling page are authoritative for complete handling.

Before implementation

  • Generate and log a new X-Request-ID for the attempt.
  • Handle every documented response status.
  • Do not log X-API-Key or unnecessary personal data.
  • Reconcile current resource state before replaying an ambiguous write.

Related integration guidance

Review the complete process, state, retry, and operational pattern for this operation.

Authorizations

X-API-Key
string
header
required

JobHandy integration API key. Send the credential in the X-API-Key header. Treat the key as a secret and use it only from trusted server-side environments.

Headers

X-Tenant-ID
string
inactive
optional
not sent by default

Narrows the operation to one tenant in the API key's scope. Any referenced or target resource must be accessible through that tenant. In interactive clients, use the {{tenantId}} variable when a tenant must be selected. Keep the header disabled when tenant selection is not required.

Pattern: ^[0-9a-fA-F]{24}$
X-Request-ID
string<uuid>
inactive
optional
not sent by default

Optional request identifier. If supplied, it must be a UUID v4 or v7 and is returned unchanged in every response. If omitted, the API generates one. Invalid values return 400 INVALID_REQUEST_ID. If your client uses a {{requestId}} variable, refresh it with a new UUID version 4 or 7 for every HTTP request attempt. Keep the header disabled to let the API generate the request identifier.

Pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[47][0-9a-fA-F]{3}-[89aAbB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$

Path Parameters

id
string
required

Employee ID.

Pattern: ^[0-9a-fA-F]{24}$
Example:

"68920e08eeaea4f2301eecb3"

Query Parameters

dryRun
boolean
inactive
optional
server default: false
not sent by default

When true, the API validates the request without applying the change. The operation's responses specify the returned representation. When omitted, the server uses false.

Example:

true

Body

application/json

The JSON request body must not exceed 5,242,880 bytes.

Editable employee fields. At least one field is required.

firstName
string
inactive
optional
not sent by default

Replacement first name. Omit the field to leave it unchanged; null is not accepted.

Required string length: 1 - 1000
Pattern: \S
Example:

"Alexandra"

lastName
string
inactive
optional
not sent by default

Replacement last name. Omit the field to leave it unchanged; null is not accepted.

Required string length: 1 - 1000
Pattern: \S
Example:

"Morgan"

privateEmail
string<email> | null
inactive
nullable
optional
not sent by default

Replacement private email address. Use null to clear the stored value.

Example:

"alex.private@example.net"

employeeNumber
string | null
inactive
nullable
optional
not sent by default

Replacement employee number. Use null to clear the stored value.

Example:

"EMP-2042"

phoneNumber
string | null
inactive
nullable
optional
not sent by default

Replacement phone number. Use null to clear the stored value.

Example:

"+49 221 5550199"

street
string | null
inactive
nullable
optional
not sent by default

Replacement street and house number. Use null to clear the stored value.

Maximum string length: 1000
Pattern: \S
Example:

"New Street 7"

postalCode
string | null
inactive
nullable
optional
not sent by default

Replacement postal code. Use null to clear the stored value.

Maximum string length: 1000
Pattern: \S
Example:

"50668"

city
string | null
inactive
nullable
optional
not sent by default

Replacement city. Use null to clear the stored value.

Maximum string length: 1000
Pattern: \S
Example:

"Cologne"

countryCode
enum<string>
inactive
optional
not sent by default

Replacement uppercase two-character country or territory code.

Available options:
AC,
AD,
AE,
AF,
AG,
AI,
AL,
AM,
AO,
AQ,
AR,
AS,
AT,
AU,
AW,
AX,
AZ,
BA,
BB,
BD,
BE,
BF,
BG,
BH,
BI,
BJ,
BL,
BM,
BN,
BO,
BQ,
BR,
BS,
BT,
BV,
BW,
BY,
BZ,
CA,
CC,
CD,
CF,
CG,
CH,
CI,
CK,
CL,
CM,
CN,
CO,
CR,
CU,
CV,
CW,
CX,
CY,
CZ,
DE,
DJ,
DK,
DM,
DO,
DZ,
EC,
EE,
EG,
EH,
ER,
ES,
ET,
FI,
FJ,
FK,
FM,
FO,
FR,
GA,
GB,
GD,
GE,
GF,
GG,
GH,
GI,
GL,
GM,
GN,
GP,
GQ,
GR,
GS,
GT,
GU,
GW,
GY,
HK,
HM,
HN,
HR,
HT,
HU,
ID,
IE,
IL,
IM,
IN,
IO,
IQ,
IR,
IS,
IT,
JE,
JM,
JO,
JP,
KE,
KG,
KH,
KI,
KM,
KN,
KP,
KR,
KW,
KY,
KZ,
LA,
LB,
LC,
LI,
LK,
LR,
LS,
LT,
LU,
LV,
LY,
MA,
MC,
MD,
ME,
MF,
MG,
MH,
MK,
ML,
MM,
MN,
MO,
MP,
MQ,
MR,
MS,
MT,
MU,
MV,
MW,
MX,
MY,
MZ,
NA,
NC,
NE,
NF,
NG,
NI,
NL,
NO,
NP,
NR,
NU,
NZ,
OM,
PA,
PE,
PF,
PG,
PH,
PK,
PL,
PM,
PN,
PR,
PS,
PT,
PW,
PY,
QA,
RE,
RO,
RS,
RU,
RW,
SA,
SB,
SC,
SD,
SE,
SG,
SH,
SI,
SJ,
SK,
SL,
SM,
SN,
SO,
SR,
SS,
ST,
SV,
SX,
SY,
SZ,
TA,
TC,
TD,
TF,
TG,
TH,
TJ,
TK,
TL,
TM,
TN,
TO,
TR,
TT,
TV,
TW,
TZ,
UA,
UG,
UM,
US,
UY,
UZ,
VA,
VC,
VE,
VG,
VI,
VN,
VU,
WF,
WS,
XK,
YE,
YT,
ZA,
ZM,
ZW
Example:

"DE"

additionalInfo
string | null
inactive
nullable
optional
not sent by default

Replacement additional information. Use null to clear the stored value.

Maximum string length: 1000
Example:

null

blocked
boolean
inactive
optional
not sent by default

Set to true to block the employee account or false to unblock it.

Example:

false

divisionId
string | null
inactive
nullable
optional
not sent by default

New division ID within the current tenant. Use null to remove only the division assignment; this does not move the employee to another tenant.

Pattern: ^[0-9a-fA-F]{24}$
Example:

"68920e08eeaea4f2301eecb4"

Response

Returns the updated employee, or the projected employee when dryRun=true.

Employee details.

id
string
required
read-only

Unique employee identifier.

Pattern: ^[0-9a-fA-F]{24}$
Example:

"68a000000000000000000001"

email
string<email>
required

Work email address used by the employee account. This field is not editable through the update endpoint.

Example:

"alex.morgan@example.com"

blocked
boolean
required

Whether the employee account is blocked.

Example:

false

tenant
string | null
required
read-only
nullable

Tenant identifier, or null if the employee has no tenant assignment.

Minimum string length: 1
Pattern: ^[0-9a-fA-F]{24}$
Example:

"68a000000000000000000010"

divisionId
string | null
required
nullable

Assigned division identifier, or null when no division is assigned.

Minimum string length: 1
Pattern: ^[0-9a-fA-F]{24}$
Example:

"68920e08eeaea4f2301eecb3"

createdAt
string<date-time>
required
read-only

UTC timestamp at which the employee record was created.

Minimum string length: 1
Pattern: Z$
Example:

"2026-06-01T08:00:00.000Z"

updatedAt
string<date-time>
required
read-only

UTC timestamp of the latest employee update.

Minimum string length: 1
Pattern: Z$
Example:

"2026-07-15T11:30:00.000Z"

privateEmail
string | null
nullable
optional

Optional private email address, or null when none is stored.

Example:

"alex.morgan.private@example.net"

employeeNumber
string | null
nullable
optional

Customer-defined personnel or employee number, or null when none is assigned.

Example:

"EMP-1042"

firstName
string | null
nullable
optional

Employee first name, or null when unavailable in an existing record.

Example:

"Alex"

lastName
string | null
nullable
optional

Employee last name, or null when unavailable in an existing record.

Example:

"Morgan"

phoneNumber
string | null
nullable
optional

Employee phone number, or null when none is stored.

Example:

"+49 221 5550100"

street
string | null
nullable
optional

Street and house number, or null when no address is stored.

Example:

"Example Street 12"

postalCode
string | null
nullable
optional

Postal code, or null when no address is stored.

Example:

"50667"

city
string | null
nullable
optional

City, or null when no address is stored.

Example:

"Cologne"

countryCode
string | null
nullable
optional

Uppercase two-character country or territory code, or null when no address is stored.

Example:

"DE"

additionalInfo
string | null
nullable
optional

Additional employee or address information, or null when none is stored.

Example:

"Building B, third floor"

Last modified on August 27, 2026