Update Employee

Update an existing employee record including contact details, address, and employment information.

PUT
/api/v1/employee/update/{id}

Description

Updates an existing employee record. Changes are reflected immediately across your Unduit account including the Users list, Locations, and shipping address selectors. This is a full replace — all required fields must be sent even if unchanged.

This endpoint performs a full replace, not a partial update. All required fields must be included in every request, even if the values have not changed. Omitting a required field will result in a validation error.

Request

Headers

HeaderValueRequired
AuthorizationBearer <access_token>Yes
Content-Typeapplication/jsonYes

Path Parameters

ParameterTypeRequiredDescription
idstringYesPass the full value from the API response in path parameters.

Basic Information

Fields

ParameterTypeRequiredDescription
firstnamestringYesEmployee's first name. Letters and spaces only.
lastnamestringYesEmployee's last name. Letters and spaces only.
work_emailstringYesEmployee's work email address.
work_phonestringYesWork phone number, digits only. Spaces and dashes are stripped automatically.
work_phone_countrystringYesWork phone country as an ISO 3166-1 alpha-2 code (e.g. US, GB).
personal_emailstringNoEmployee's personal email address.
personal_phonestringNoEmployee's personal phone number, digits only.
personal_contact_countrystringNoPersonal phone country as an ISO 3166-1 alpha-2 code. Also accepted as personal_phone_country.

Address Information

Fields

ParameterTypeRequiredDescription
address_1stringYesStreet address line 1.
address_2stringNoStreet address line 2.
citystringYesCity.
statestringNoState or province. Required for all countries except GB.
zipstringYesPostal or zip code.
countrystringYesCountry as an ISO 3166-1 alpha-2 code (e.g. US, DE).
location_typestringYesHow the employee is based. Must be one of: Warehouse, Corporate Office, Retail Store, Remote Employee.
location_namestringNoDisplay name for the employee's location. Defaults to "{firstname} {lastname}" when not provided.

Employment Information

These fields are optional and sent at the top level of the request body. They are returned nested under employment_information in the response. When provided on update, these values overwrite any previously stored employment data.

Fields

ParameterTypeRequiredDescription
employee_idstringNoEmployee's ID on their location record.
departmentstringNoDepartment name. Must match an existing department in your company. Returns 422 if not found.
employment_statusstringNoEmployment status (e.g. Active, Terminated).
employment_typestringNoEmployment type (e.g. Full Time, Part Time, Contractor).
managerstringNoDirect manager's name or identifier.
employment_start_datestringNoStart date in YYYY-MM-DD format (e.g. 2024-01-15).
termination_datestringNoTermination date in YYYY-MM-DD format. Include when employment_status is Terminated.

Example Request Body

{
  "firstname": "Jane",
  "lastname": "Doe",
  "work_email": "jane.doe@company.com",
  "work_phone": "4155551234",
  "work_phone_country": "US",
  "personal_email": "jane.doe@gmail.com",
  "personal_phone": "4155559999",
  "personal_contact_country": "US",
  "address_1": "123 Market Street",
  "address_2": "Suite 400",
  "city": "San Francisco",
  "state": "CA",
  "zip": "94103",
  "country": "US",
  "location_type": "Remote Employee",
  "location_name": "Remote - San Francisco",
  "department": "IT",
  "employment_status": "Active",
  "employment_type": "Full Time",
  "manager": "John Shah",
  "employment_start_date": "2024-01-15"
}

Response

Top-level Fields

FieldTypeDescription
successbooleanWhether the request was successful.
messagestringHuman-readable confirmation (e.g. "Employee updated successfully").
addressobjectThe updated employee address record. See fields below.

Address Fields

FieldTypeDescription
address.idstringOpaque employee record ID (`{7-digit-prefix}-{numericId}`).
address.firstnamestringEmployee's first name.
address.lastnamestringEmployee's last name.
address.location_namestringDisplay name for the employee's location.
address.work_emailstringEmployee's work email address.
address.emailstringLegacy alias for work_email.
address.work_phonestringWork phone number, digits only.
address.work_phone_countrystringWork phone country as an ISO 3166-1 alpha-2 code.
address.contact_infostringLegacy alias for work_phone.
address.contact_countrystringLegacy alias for work_phone_country.
address.address_1stringAddress line 1.
address.address_2stringAddress line 2. Null if not provided.
address.citystringCity.
address.statestringState or province.
address.zipstringPostal or zip code.
address.countrystringCountry as an ISO 3166-1 alpha-2 code.
address.location_typestringHow the employee is based (e.g. Remote Employee, Corporate Office).
address.departmentstringDepartment name. Null if not provided.
address.configure_cost_center_idnumberID of the assigned cost center. Null if not configured.
address.employee_idstringEmployee ID on the location record. Null if not provided.
address.employment_informationobjectEmployment and personal contact fields after the update. Null if no employment fields were provided. Only fields with values are included. See fields below.

employment_information Fields

FieldTypeDescription
address.employment_information.employment_statusstringEmployment status (e.g. Active, Terminated).
address.employment_information.employment_typestringEmployment type (e.g. Full Time, Part Time, Contractor).
address.employment_information.employment_start_datestringStart date in YYYY-MM-DD format.
address.employment_information.termination_datestringTermination date in YYYY-MM-DD format. Only present when employment_status is Terminated.
address.employment_information.managerstringDirect manager's name or identifier.
address.employment_information.personal_emailstringEmployee's personal email address.
address.employment_information.personal_phonestringEmployee's personal phone number, digits only.
address.employment_information.personal_contact_countrystringPersonal phone country as an ISO 3166-1 alpha-2 code.

Notes

  • This endpoint performs a full replace. All required fields must be sent on every request even if unchanged. Use the Employee Detail endpoint to fetch the current record before updating.
  • Pass the id from the Employees List or Employee Detail response as the {id} path parameter.
  • email and work_email are interchangeable — both refer to the work email address. Use work_email in new integrations.
  • personal_contact_country and personal_phone_country are interchangeable. Use personal_contact_country in new integrations.
  • state is required for all countries except GB.
  • location_name defaults to "{firstname} {lastname}" when not provided.
  • location_type must be one of: Warehouse, Corporate Office, Retail Store, Remote Employee.
  • department must match an existing department name for your company. Returns 422 if not found.
  • Employment fields are sent at the top level of the request body but returned nested under employment_information in the response. When provided, they overwrite any previously stored employment data.
  • contact_info and contact_country in the response are legacy aliases for work_phone and work_phone_country retained for backwards compatibility.

Related Endpoints

Did this page help you?