Creates a new employee record with personal, role, and employment details.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Do take a look at Get Position Details API to fetch the list of Position IDs. You should pass the
idof the corresponding position that pertains to your use case in thepositionIdkey in this APIException: For apps that do not support the Get Position Details API but support this API, please pass in any dummy string as the
positionId
Supported Apps
Here are the list of apps that support this API.
Workday (workday)
- State must be an ISO 3166-2 code. Example: US-CA. Read more about it here: https://en.wikipedia.org/wiki/ISO_3166-2
- Country must be an ISO 3166-1 Alpha-3 code. Example: USA. Read more about it here: https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
Hibob (hibob)
-
Hibob only takes in 1 personal email for an employee. If you pass more than one email, only the first will be taken and rest will be ignored.
-
workadress.idcorresponds to the Work Site in Hibob. To get the list of Work Sites available in Hibob, refer to this example: https://developers.getknit.dev/docs/hibob#get-list-of-work-sites-from-hibob -
The fields not supported by this API for Hibob are:
employment->workShiftIdworkAddress->addressLine1, addressLine2, city, state, country, zipCode
For more information and request examples, refer to https://developers.getknit.dev/docs/hibob#create-an-employee
Sage (sage-hris)
Paychex (paychex)
Paycor (paycor)
Paycor supports two different employee creation flows, selected by metadata.workerCategory. If it is not supplied, or is anything other than Unpaid (case-insensitive), the Paid Employees flow below is used. If it is set to Unpaid, the Unpaid Employees flow is used instead, which calls a different Paycor endpoint with different supported fields and defaults.
Paid Employees (default)
Supported Request Fields:
firstName- RequiredlastName- RequiredstartDate- Falls back tometadata.HireDate, then to the current date, if not suppliedworkEmailpersonalEmails- Only the first email is used; any additional emails are ignoredemployment.designation- Sent as the Job Title. Must be an existing Job Title name in Paycor, can be obtained using a passthrough request with methodGETand path/tenants/{tenantId}/jobtitlesworkAddress.id- Corresponds to the Work Location name in Paycor (not an ID). Must be an existing Work Location name, can be obtained using a passthrough request with methodGETand path/legalentities/{legalEntityId}/worklocations, use thenamevalue from this responseemployeeNumberbirthDategender-MALE/FEMALEare mapped to Paycor'sMale/Female. Any other value is sent to Paycor as-ismaritalStatus-MARRIED,SINGLE,WIDOWED,SEPARATED,DIVORCEDare mapped to Paycor's equivalents. Any other value is sent to Paycor as-isphones.type,phones.phoneNumber- Only included ifmetadata.areaCodeis also supplied (see below); otherwisephonesis silently omitted from the request entirely.HOME,PERSONAL, andWORKare mapped to Paycor'sHome,Mobile, andWorkrespectively
The fields not supported by this API for Paycor's Paid flow are:
employment.positionId(Paycor has no ID-based Job Title lookup for this endpoint; useemployment.designationinstead)employment.workShiftIdpresentAddress(usemetadata.addressLine1/metadata.zipCodeinstead, see below)workAddress->addressLine1, addressLine2, city, state, country, zipCode(onlyworkAddress.idis used)
Additional Metadata:
LegalEntityId- Required - can be obtained using a passthrough request with methodGETand path/tenants/{tenantId}?include=AllDepartmentCode- Required - can be obtained using a passthrough request with methodGETand path/legalentities/{legalEntityId}/departmentsPaygroupDescription- Required - can be obtained using a passthrough request with methodGETand path/legalentities/{legalEntityId}/payGroups, use the payGroupName value from this response.addressLine1- Required ifzipCodeis not supplied (the employee's primary address street line)zipCode- Required ifaddressLine1is not supplied (the employee's primary address zip code)areaCode- Required forphonesto be included in the request; Paycor requires an area code alongside every phone numberStatus- Defaults toActiveif not suppliedHireDate- Used as a fallback forstartDateif not supplied- Any other key-value pairs can be passed in metadata and will be forwarded directly to the Paycor Create Employee API
Supported Response Fields:
employeeId
Unpaid Employees (metadata.workerCategory = Unpaid)
This flow uses Paycor's Employee Onboarding API to add a pending-hire/unpaid worker, instead of immediately creating a full paid employee record.
Supported Request Fields:
firstName- RequiredlastName- RequiredpersonalEmails- At least one ofpersonalEmailsorworkEmailis required by Paycor. Only the first email is used, sent as the employee's home emailworkEmail- Used as a fallback home email ifpersonalEmailsis not suppliedstartDate- Falls back tometadata.HireDate, then to the current date, if not suppliedemployment.designation- Sent as the Job TitleworkAddress.id- Corresponds to the Work Location ID in Paycor for this flow (a GUID), unlike the Paid flow, which uses a name. Can be obtained using a passthrough request with methodGETand path/legalentities/{legalEntityId}/worklocations, use theidvalue from this responsepresentAddress.addressLine1- Falls back tometadata.addressLine1if not suppliedpresentAddress.addressLine2presentAddress.citypresentAddress.statepresentAddress.zipCode- Falls back tometadata.zipCodeif not suppliedpresentAddress.countryphones.type,phones.phoneNumber- OnlyPERSONAL(sent as the mobile phone) andHOME(sent as the home phone) types are supported;WORKtype phones are ignored. Unlike the Paid flow, no area code is required or sentgender-MALE/FEMALEare mapped to Paycor'sMale/Female. Any other value is sent to Paycor as-isemploymentType-FULL_TIMEandPART_TIMEare mapped to Paycor's full-time flag. Any other value leaves this unset, and it can be chosen later during onboarding in Paycor
Additional Metadata:
LegalEntityId- RequiredDepartmentCodeaddressLine1- Used as a fallback ifpresentAddress.addressLine1is not suppliedzipCode- Used as a fallback ifpresentAddress.zipCodeis not suppliedHireDate- Used as a fallback forstartDateif not supplied- Any other key-value pairs can be passed in metadata and will be forwarded directly to the Paycor Employee Onboarding API
Remarks
- This endpoint does not currently return an
employeeId(it is always returned asnull). The employee is added to Paycor's Onboarding queue.
BambooHR (bamboohr)
-
BambooHR only takes in 1 personal email for an employee. If you pass more than one email, only the first will be taken and rest will be ignored
-
workadress.idcorresponds to the Work Location in BambooHR. To get the list of Work Sites available in BambooHR, refer to this example: https://developers.getknit.dev/docs/getting-started-with-bamboohr-api#get-list-of-work-locations-from-bamboohr -
The fields not supported by this API for Hibob are:
employment->workShiftIdworkAddress->addressLine1, addressLine2, city, state, country, zipCode
For more information and request examples, refer to https://developers.getknit.dev/docs/getting-started-with-bamboohr-api#update-an-employee-details-api-in-bamboohr
Personio (personio)
-
workaddress.idcorresponds to the Office Location in Personio -
The fields not supported by this API for Personio are:
employment->workshiftIdworkAddress->addressLine1, addressLine2, city, state, country, zipCodepersonalEmails
For more information and request examples, refer to https://developers.getknit.dev/docs/getting-started-with-personio-hris-api#create-an-employee-in-personio-api
Darwinbox (darwinbox)
-
Darwinbox allows only one personal email per employee. If you pass more than one email in the personalEmails array, only the first will be taken, and the rest will be ignored
-
workAddress.id corresponds to the Office Location Work Area Code in Darwinbox.
-
You must include the following fields in the metadata field:
- Selfservice*
- Employee ID
- FTE Value*
Keka (keka)
-
workaddress.idcorresponds to the Location in Keka -
The fields not supported by this API for Keka are:
personalEmailsworkAddress->addressLine1, addressLine2, city, state, country, zipCode
-
You must include the following fields in the
metadatafield:genderdateOfBirthdateJoinedemployeeNumber(This is a user generated employee identifier eg, employee number, and is different from the internal identifier used by the app)departmentbusinessUnit
Zoho People (zoho-people)
-
Zoho People only takes in 1 personal email for an employee. If you pass more than one email, only the first will be taken and rest will be ignored.
-
The fields not supported by this API for Zoho People are:
employment -> workShiftIdworkAddress
-
You must include the following fields in the
metadatafield:employeeId(This is a user generated employee identifier eg, employee number, and is different from the internal identifier used by the app)
SAP SuccessFactors (successfactors)
Supported Request Fields:
firstName- RequiredlastName- Requiredemployment.positionId- Requiredemployment.designation- RequiredworkEmail- RequiredpersonalEmails
Additional Metadata:
metadata.userIdmetadata.startDatemetadata.payScaleArea- Requiredmetadata.payScaleType- Requiredmetadata.managerIdmetadata.gendermetadata.nationalitymetadata.PerPerson.dateOfBirthmetadata.EmpEmployment.originalStartDatemetadata.EmpEmployment.firstDateWorkedmetadata.EmpJobmetadata.PerPersonal.nativePreferredLang
Supported Response Fields:
employeeId
To know more about which parameters are supported and request examples, please refer to: https://developers.getknit.dev/docs/create-employee-api-sap-successfactors
Oracle Cloud HCM (oracle-hcm)
-
Oracle Cloud HCM only takes in 1 personal email for an employee. If you pass more than one email, only the first will be taken and rest will be ignored.
-
You must include the following fields in the
metadatafield:LegalEntityId
Remote (remote)
- The fields not supported by this API for Remote are:
personalEmailsemployment->workshiftId
- You must include the following fields in the
metadatafield:provisional_start_datehas_seniority_date
Humaans (humaans)
-
Humaans only takes in 1 personal email for an employee. If you pass more than one email, only the first will be taken and rest will be ignored.
-
The fields not supported by this API for Remote are:
employment->workshiftIdworkAddress->addressLine1, addressLine2, city, state, country, zipCode
-
You must include the following fields in the
metadatafield:employmentStartDate
Breathe (breatheHR)
-
workaddress.idcorresponds to the Site. -
The fields not supported by this API for Breathe are:
employment->workshiftIdpersonalEmailsworkAddress->addressLine1, addressLine2, city, state, country, zipCode
-
You must include the following fields in the
metadatafield:company_join_date
7shifts (7shifts)
You must include the following fields in the metadata field:
departmentId
Alexis HR (alexishr)
PayFit (payfit)
workAddress in knit payload corresponds to personalAddress of a collaborator in PayFit
UKG Ready (ukgready)
IRIS Cascade (iriscascade)
People HR (peopleHR)
Kallidus (kallidus)
Folks HR (folkshr)
You must include the following fields in the metadata field:
employeeNumber(Unique identifier in the company.)
OneLogin (onelogin)
PrismHR (prismhr)
Refer api specific guides - PrismHR API Guide
Avionte (avionte)
ADP Workforce Now (adp-workforcenow-hris)
Namely (namely)
Lucca HR (luccahr)
Supported Request Fields:
firstNamelastNameemployment.designationworkEmailcompanyId- Requireddepartment- RequiredpersonalEmailsemployeeNumberstartDatebirthDategenderphones.typephones.phoneNumberpresentAddress.addressLine1presentAddress.addressLine2presentAddress.citypresentAddress.statepresentAddress.countrypresentAddress.zipCodemanager.id
Supported Response Fields:
employeeId
TimeTac (timetac)
Supported Request Fields:
firstNamelastNameemployeeNumberworkEmailstartDatebirthDatephonesphones.typephones.phoneNumberdepartment- RequiredpresentAddress.addressLine1presentAddress.addressLine2presentAddress.citypresentAddress.countrypresentAddress.zipCode
Additional Metadata:
internal_user_group- Requiredlanguage_id- Requiredusername- Required- Any additional key-value pairs can be passed in metadata and will be forwarded to the TimeTac API
Supported Response Fields:
employeeId
Microsoft Entra (microsoft-entra)
Please pass userPrincipalName, mailNickname and userPassword in metadata as they are mandatory for creating a employee in Entra
HR Works (hr-works)
Supported Request Fields:
firstNamelastNameworkEmailgender- Allowed values -malefemalediversenot specifiedemploymentType- Allowed values -apprenticeexternalWorkerinternmarginalEmploymentregularEmployeeshortTermEmploymentstudentTraineestartDate- YYYY-MM-DD formatbirthDate- YYYY-MM-DD formatdepartment- department Id obtained using list all departments APIphones- only of one phone number of typeWORKis honored.manager.idemployment.designationpresentAddress
Additional Metadata:
-
metadata.personId- Required, The user id assigned to the person. Used as the login name. Unique identifier. -
metadata.personnelNumber- Required, The personnel number assigned to the person. Unique identifier. -
Any key-value pairs can be passed in metadata and will be forwarded to the HR Works API
Sesame HR (sesamehr)
Supported Request Fields:
firstNamelastNameworkEmailcompanyId- RequiredbirthDategendermaritalStatusemployeeNumberemployment.positionIdphones.typephones.phoneNumberpersonalEmailspresentAddress.addressLine1presentAddress.addressLine2presentAddress.citypresentAddress.statepresentAddress.countrypresentAddress.zipCodemanager.id
Additional Metadata:
invitation- Requiredstatus- Required- Any other custom field can be passed in metadata and will be included in the request body
Supported Response Fields:
employeeId
WebWork (webwork)
Supported Request Fields:
firstName- RequiredlastName- RequiredworkEmail- Required
Additional Metadata:
role- Required
Supported Response Fields:
employeeId
Remarks
Include role in metadata. role can be "Regular User", "Project manager", "Team manager", "Executive manager", "Project viewer".
Makeshift (makeshift)
Supported Request Fields:
firstNamelastNameworkEmailemployeeNumberphonesstartDateemploymentTypeemployment.designation
Additional Metadata:
- Any key-value pairs can be passed in metadata object
Supported Response Fields:
employeeId
Remarks
Set employmentType to full_time, part_time or casual. employment.designation can be employee, department_admin, location-admin, company_admin.
Paylocity (paylocity)
Supported Request Fields:
firstName- RequiredlastName- RequiredworkEmail- RequireddepartmentpresentAddress.addressLine1presentAddress.addressLine2presentAddress.citypresentAddress.statepresentAddress.zipCodeemploymentTypegenderphones.typephones.phoneNumbermaritalStatuspersonalEmails
Remarks
- This endpoint does not return an employeeId. It adds the employee to onboarding. Once the hiring process is complete, the employee details can be retrieved via sync.
Xero Payroll (xero-payroll)
Supported Request Fields:
firstName- RequiredlastName- RequiredworkEmailbirthDate- RequiredpresentAddress.addressLine1- RequiredpresentAddress.addressLine2presentAddress.city- RequiredpresentAddress.state- RequiredpresentAddress.country- RequiredpresentAddress.zipCode- RequiredemploymentType- Not supported in AU and UK regiongender- Required in UK regionstartDate- Not supported in NZ and UK regionphones.type- Not supported in NZ and UK regionphones.phoneNumbermetadata
Supported Response Fields:
employeeId
Shapes (shapes)
Supported Request Fields:
firstName- RequiredlastName- RequiredworkEmail- RequiredstartDatebirthDategenderphones.type- One phoneNumber with WORK type is supportedphones.phoneNumberpersonalEmails- One personal email is supportedemployment.designationemploymentTypeemployeeNumbermanager.idpresentAddress.addressLine1presentAddress.citypresentAddress.statepresentAddress.countrypresentAddress.zipCodemetadata
Supported Response Fields:
employeeId
Remarks:
gendershould be passed as gender IDemployment.designationshould be passed as job IDemploymentTypeshould be passed as contract_type IDpresentAddress.cityshould be passed as city option ID (integer)presentAddress.stateshould be passed as state option ID (integer)manager.idshould reference an existing employee IDmetadatacan include additional fields likeshouldInviteandpermissionRoleId
Netsuite Payroll (netsuite-payroll)
Supported Request Fields:
firstNamelastNameworkEmailemployment.designationemployment.positionIdemployeeNumberstartDatebirthDatecompanyIddepartmentgendermaritalStatusemploymentTypemanager.idphones.phoneNumberphones.typeworkAddress.addressLine1workAddress.addressLine2workAddress.cityworkAddress.stateworkAddress.countryworkAddress.zipCodepresentAddress.addressLine1presentAddress.addressLine2presentAddress.citypresentAddress.statepresentAddress.countrypresentAddress.zipCodepermanentAddress.addressLine1permanentAddress.addressLine2permanentAddress.citypermanentAddress.statepermanentAddress.countrypermanentAddress.zipCodemetadata
Supported Response Fields:
employeeId
MHR Global (mhrglobal)
Supported Request Fields:
firstNamelastNamestartDateemployeeNumbermetadata
Supported Response Fields:
employeeId
Cegid (cegid)
Supported Request Fields:
firstNamelastNameworkEmailemployeeNumberstartDatebirthDategenderemployeeNumbermetadata
Supported Response Fields:
employeeId

