Operation Definitions
The following topics define the endpoints and data models for the Staff API operations.
Endpoints
POST /External/General/Employee
Summary
This endpoint is used to create a single employee along with all related information, except employee jobs, in one request.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius |
body |
| Yes | The request information |
Sample Request Body
curl --location --request POST 'https://qa-backoffice-api.xenial.com
/External/General/Employee' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \
--header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \
--data-raw '{
"Firstname": "Jack",
"Lastname": "Doe",
"Name": "Jack Doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": "80",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"EmployeePhones": [
{
"PhoneNumber": "+2-312-312-3123",
"PhoneTypeCode": "HOME"
}
],
"EmployeeAddresses": [
{
"AddressTypeCode": "HOME",
"Address1": "Address 1",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US"
}
],
"EmployeeContacts": [
{
"Firstname": "Jenny",
"Lastname": "Doe",
"CountryCode": "US",
"Phone1": "+0-232-123-1231"
}
],
"EmployeeEmails": [
{
"Email": "836@com.com",
"EmailTypeCode": "PRSNL"
},
{
"Email": "837@com.com",
"EmailTypeCode": "WORK"
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2025-07-01",
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": [
{
"EmployeePosCode": "12",
"Password": "12",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}'Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success
| |
400 | Appears when one or several parameters from headers / body failed in validation. Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
POST /External/General/Employee/[ID]/Jobs
Summary
This endpoint allows the creation of one or multiple employee job records for a single employee, identified by the unique identifier (UID) provided in the URL.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The UID for the company provided by Genius |
path |
| string | Yes | The 24 character hexadecimal UID of the target employee |
body |
| Yes | The request information |
Sample Request Body
curl --location --request POST 'https://qa-backoffice-api.xenial.com
/External/General/Employee/62fa6c4e66507a2370954f50/Jobs' \
--header 'Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \
--header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \
--header 'Content-Type: application/json' \
--data '[
{
"JobCodeId": "58e63c06fbf17de5ced22064",
"IsPrimaryJob": true,
"CompensationTypeCode": "HOUR",
"SiteIds": ["63da4653b5c13514ecaeac0f","65fae456a881c84356c79d0a",
"64c228f421a5403fe5773bbf","67eb8df9f6ebe838aec61fd6"],
"EmployeeJobPays": [
{
"EffectiveDate": "2025-01-01",
"Rate": 15.56
},
{
"EffectiveDate": "2024-01-01",
"Rate": 14
}
]
},
{
"ExternalJobCodeId": "9087",
"IsPrimaryJob": false,
"CompensationTypeCode": "SLRY",
"SiteIds": ["63da4653b5c13514ecaeac0f",
"65fae456a881c84356c79d0a"],
"EmployeeJobPays": [
{
"EffectiveDate": "2023-01-01",
"Rate": 20000
},
{
"EffectiveDate": "2026-01-01",
"Rate": 20000
}
]
}
]'Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success
| |
400 | Appears when one or several parameters from headers / body failed in validation. Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when no employees records were found within the received company and with the received UID. Message: Not Found | |
410 | Appears when an employee record with the received UID is no longer active/deleted. Message: Gone | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
PATCH /External/General/Employee/[ID]
Summary
This endpoint provides an ability to update only selected fields of the specific employee, whose unique identifier (UID) is provided in the URL, as well as updates to the child entities, with the ability to create new records.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The UID for the company provided by Genius |
path |
| string | Yes | The 24 character hexadecimal UID of the target employee. The ID should belong to the existing, non-deleted employee that belongs to the company provided in the |
body |
| Yes | The request information |
Sample Request Body
curl --location --request PATCH 'https://qa-backoffice-api.xenial.com
/External/General/Employee/6835ee484168f481249e8766' \
--header 'Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \
--header 'Content-Type: application/json' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--data-raw '{
"Lastname": "Doe Jr.",
"ExternalEmployeeId": "809",
"EmployeeEmails": [
{
"Email": "837@email.com",
"EmailTypeCode": "PRSNL"
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2025-08-01",
"StatusCode": "TERM",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": [
{
"Password": "14"
}
]
}'Code | Description | Schema |
|---|---|---|
200 | Message: Success
| PostExternalGeneralEmployeeResponseBody The PATCH response has the same structure as the POST /External/General/Employee response. |
400 | Appears when one or several parameters from headers / body failed in validation. Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when no employees records were found within the received company and with the received UID. Message: Not Found | |
410 | Appears when an employee record with the received UID is no longer active/deleted. Message: Gone | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
PATCH /External/General/Employee/[ID]/Job/[ID]
Summary
This endpoint provides an ability to deactivate any existing, non-deleted job, as well as update its rates. If any other job fields should be updated because they were previously provided with incorrect values, such jobs should be deactivated and recreated.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius |
path |
| string | Yes | The 24 character hexadecimal UID of the target non-deleted employee whose job should be updated |
path |
| string | Yes | The 24 character hexadecimal UID of the target non-deleted job that should be updated |
body |
| Yes | The request information |
Sample Request Body
curl --location --request PATCH 'https://qa-backoffice-api.xenial.com
/External/General/Employee/Job/63da4ba2614bb6862d37a761' \
--header 'Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \
--header 'Content-Type: application/json' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--data '{
"Deactivated": true,
"DeactivationDate": "2025-05-01",
"EmployeeJobPays": [
{
"EffectiveDate": "2025-02-01",
"Rate": 12.75
},
{
"EffectiveDate": "2024-01-01",
"Rate": 15
}
]
}'Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success | PostExternalGeneralEmployeeIDJobsResponseBody The PATCH response has the same structure as the POST /External/General/Employee/[ID]/Jobs response. |
400 | Appears when one or several parameters from headers / body failed in validation. Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when no employees records were found within the received company and with the received UID. Message: Not Found | |
410 | Appears when an employee record with the received UID is no longer active/deleted. Message: Gone | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
DELETE /External/General/Employee/[ID]/Address/[CODE]
Summary
This endpoint allows soft-deleting of an existing, non-deleted employee address record identified by the provided AddressTypeCode.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The UID for the company provided by Genius |
path |
| string | Yes | The |
path |
| string | Yes | The |
Sample Request Body
curl --location --request DELETE 'https://qa-backoffice-api.xenial.com /External/General/Employee/6835ee484168f481249e8766/Address/HOME' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \ --header 'Content-Type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a'
Responses
Code | Description | Schema |
|---|---|---|
204 | Address records with the received code were found for the received employee and successfully deleted. Message: No Content | |
400 | Appears when one or several parameters from headers / URL failed in validation. Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when no employees were found within the received company and with the received UID OR no non-deleted address records with the received code were found for the received employee. Message: Not Found | |
410 | Appears when an employee record with the received UID is no longer active/deleted. Message: Gone | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
DELETE /External/General/Employee/[ID]/Phone/[CODE]
Summary
This endpoint allows soft-deleting of an existing, non-deleted employee phone record identified by the provided PhoneTypeCode.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The UID for the company provided by Genius |
path |
| string | Yes | The |
path |
| string | Yes | The |
Sample Request Body
curl --location --request DELETE 'https://qa-backoffice-api.xenial.com /External/General/Employee/6835ee484168f481249e8766/Phone/home' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \ --header 'Content-Type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a'
Responses
Code | Description | Schema |
|---|---|---|
204 | Phone records with the received code were found for the received employee and successfully deleted. Message: No Content | |
400 | Appears when one or several parameters from headers / URL failed in validation. Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when no employees were found within the received company and with the received UID OR no non-deleted phone records with the received code were found for the received employee. Message: Not Found | |
410 | Appears when an employee record with the received UID is no longer active/deleted. Message: Gone | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
DELETE /External/General/Employee/[ID]/Email/[CODE]
Summary
This endpoint allows soft-deleting of an existing, non-deleted employee email record identified by the provided EmailTypeCode.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The UID for the company provided by Genius |
path |
| string | Yes | The |
path |
| string | Yes | The |
Sample Request Body
curl --location --request DELETE 'https://qa-backoffice-api.xenial.com /External/General/Employee/6835ee484168f481249e8766/Email/PRSNL' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \ --header 'Content-Type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a'
Responses
Code | Description | Schema |
|---|---|---|
204 | Email records with the received code were found for the received employee and successfully deleted. Message: No Content | |
400 | Appears when one or several parameters from headers / URL failed in validation. Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when no employees were found within the received company and with the received UID OR no non-deleted email records with the received code were found for the received employee. Message: Not Found | |
410 | Appears when an employee record with the received UID is no longer active/deleted. Message: Gone | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
DELETE /External/General/Employee/[ID]/Contact/[CODE]
Summary
This endpoint allows soft-deleting of an existing, non-deleted employee contact record identified by the provided ContactCode.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The UID for the company provided by Genius |
path |
| string | Yes | The |
path |
| string | Yes | The |
Sample Request Body
curl --location --request DELETE 'https://qa-backoffice-api.xenial.com /External/General/Employee/6835ee484168f481249e8766/Contact/johndoe' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \ --header 'Content-Type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a'
Responses
Code | Description | Schema |
|---|---|---|
204 | Contact records with the received code were found for the received employee and successfully deleted. Message: No Content | |
400 | Appears when one or several parameters from headers / URL failed in validation. Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when no employees were found within the received company and with the received UID OR no non-deleted contact records with the received code were found for the received employee. Message: Not Found | |
410 | Appears when an employee record with the received UID is no longer active/deleted. Message: Gone | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
DELETE /External/General/Employee/[ID]/Job/[ID]
Summary
This endpoint allows soft-deleting of an existing, non-deleted employee job record identified by the provided [ID], together with all its existing non-deleted rates.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius |
path |
| string | Yes | The |
path |
| string | Yes | The 24 character hexadecimal UID of the target non-deleted job that should be deleted |
Sample Request Body
curl --location --request DELETE 'https://qa-backoffice-api.xenial.com /External/General/Employee/ 63da4601b5c13514ecaeac0d/Job/6835ee484168f481249e8766' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \ --header 'Content-Type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a'
Responses
Code | Description | Schema |
|---|---|---|
204 | A job record with the received ID was found for the received company and successfully deleted. Message: No Content | |
400 | Appears when one or several parameters from headers / URL failed in validation. Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when no employees were found within the received company and with the received UID OR no non-deleted job records were found for the received employee. Message: Not Found | |
410 | Appears when an employee job record or employee record with the received UID is no longer active/deleted. Message: Gone | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
GET /External/General/Payroll/GetUpdates
Summary
This endpoint provides information about all payroll details created/updated/deleted in the database for a specified time frame received in the request and it provides information for both active and deleted payrolls.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string/HEX24 | Yes | The unique identifier (UID) for the company provided by Genius.
|
header |
| string/HEX24 | No | The UID of the site provided by Genius.
|
query |
| string/datetime UTC with ms | Yes | This parameter is used to receive only those payroll details that were updated in the database after a particular date and time and received in this parameter. For example, the time since the last data pulling.
|
query |
| string/datetime UTC with ms | No | This parameter is used to receive only those payroll details that were updated until a particular date and time received in this parameter. This field should be sent in a request only when there is a need to find payroll details updated in a defined time frame and not earlier or later.
|
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com /External/General/Payroll/GetUpdates?UpdateDateFrom=2023-08-08T23:50:00.000Z' \ --header 'Content-Type: application/json' \ --header 'X-Company-id: 63da4601b5c13514ecaeac0a' \ --header 'X-Site-Ids: 620c011778da1c0008db8bac' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ....'
Responses
For a successful response:
Both active and deleted payroll detail records are returned in response if they match the received filters.
The response size is limited to no more than 100 payroll detail records returned at a time. For pagination needs, the
NextUpdateDateFromfield can be used in order to not miss data.In order to request another 100 batch, a value received in the response in the
NextUpdateDateFromfield in the first request should be sent in theUpdateDateFromquery parameter in the next request. This approach should be repeated untilDataarray is returned empty as this is a marker that all updates have already been provided.If for any reason 100th element in response contains the same
update_datevalue in the database as the 101th, all payroll detail records with thisupdate_datevalue are not returned in response of the first request in order to not lose the values and allow the chance to return them in the next request with theNextUpdateDateFromvalue returned in the response to the first request.If no payroll detail records were found based on the received time values, the
NextUpdateDateFromfield will contain the same timestamp as sent in the request in theUpdateDateFromparameter.
The data in received in the response is sorted by payroll detail records'
update_datein ascending order.
Code | Description | Schema |
|---|---|---|
200 | Message: Success Where:
If no payroll detail records were found according to the received query parameters:
For example: {
"Data": [],
"NextUpdateDateFrom":
"2025-03-21T05:25:18.000Z"
} | |
400 | Appears when:
Message: Bad Request | |
401 | Appears when the token is absent or incorrect, or data in token is different than the one received in headers. Message: Unauthorized | |
403 | Appears when the provided token does not have the required permissions to perform this action within this company or the data in the token and headers does not match. Message: Forbidden | |
500 | Appears when an error was received during processing. Message: Internal Server Error |
GET /Lookup/Ethnicity
Summary
This endpoint returns a list of available ethnicities from Data Management - Ethnicities section.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com /Lookup/Ethnicity' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...'
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response. Message - OK |
GET /auth/getCompanyRoles
Summary
The GET Company Roles endpoint returns a list of available roles within a given company, which are configurable by end users. These role values are referenced when creating point of sale (POS) credentials for a given employee.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Auth /GetCompanyRoles' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtp ZCI6InhwcnQifQ...'
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response. Message: OK |
GET /Lookup/CompensationType
Summary
The GET Compensation Type endpoint returns a list of available compensation types from Data Management, which are not displayed on the user interface (UI).
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
Request Sample Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Lookup /CompensationType' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtp ZCI6InhwcnQifQ....'
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response. Message - OK |
GET /Lookup/EmployeeStatus
Summary
The GET Employee Status endpoint returns a list of available Status records from Data Management -Employee Status Config section, which are assigned to Employees within Employee Site Status related requests.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The UID of the site, provided by us, for which a list of site statuses is provided |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Lookup /EmployeeStatus' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \ --header 'X-Site-Ids: 63da4653b5c13514ecaeac0f' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtp ZCI6InhwcnQifQ....'
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response. Message - OK |
GET /Staff/JobCode
Summary
The Get All Jobs operation returns an array of all of the jobs that an employee can be assigned to.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | An array of comma-separated |
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response | |
404 | Error Response. Message: Not Found | |
Default | Error Response. Message: Unexpected Error |
POST /Staff/Employee
Summary
The Add Employee operation creates a new employee record on our platform.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The site identifier for the employee's primary work location |
body |
| Yes | The Add Employee request information |
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response | |
404 | Error Response. | |
Default | Error Response. |
GET /Lookup/WorkType
Summary
The Get All Work Types operation returns a list of the kinds of work that an employee clocks in and out of during a shift.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The site identifier for the employee's primary work location |
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response | |
404 | Error Response. Message: Not Found | |
Default | Error Response. Message: Unexpected Error |
POST /Staff/Shift/ShiftWorkTime
Summary
A punch record tracks an employees clock in and clock out actions over the course of a shift. Create a punch record for each shift and update it as the shift progresses.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The site identifier for the employee's primary work location |
body |
| Yes | The Create a Punch Record request information |
Responses
Code | Description |
|---|---|
200 | Success Response. Content: A shift work times object including |
404 | Error Response. Message: Not Found |
Default | Error Response. Message: Unexpected Error |
POST /Staff/Employee/EmployeeDetail
Summary
This endpoint works with one employee record only. Use this endpoint to create employee data for a single employee, including Employee Site Statuses and POS Credentials. For more information, see Create an Employee Record.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The unique site ID for the employee's primary work location |
body |
| Yes | The Create Employee Detail request information |
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response. Message: OK-Success | |
400 | Error Response. Message: Bad Request. One or several parameters from headers/body failed in validation. | |
401 | Error Response. Message: Unauthorized. The token is absent or incorrect. | |
403 | Error Response. Message: Forbidden. The provided token does not have required permissions to perform this action within this company and site. | |
500 | Error Response. Message: Internal Server Error. Error during processing was received. |
GET /Staff/Employee/EmployeeDetail
Summary
Use the Request Employee Data endpoint to receive data for all previously created employees. This is useful when updating employee records.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
query |
| string | Yes | The employee's corporate code |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Staff /Employee/EmployeeDetail?code=8796282' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtp ZCI6InhwcnQifQ.'
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response. Message: OK-Success | |
400 | Error Response. Message: Bad Request. One or several parameters from headers / body failed in validation. | |
401 | Error Response. Message: Unauthorized. The token is absent or incorrect. | |
403 | Error Response. Message: Forbidden. Provided token does not have required permissions to perform this action within this company and site. | |
404 | Error Response. Message: Not Found. No employee records found for the provided code. | |
500 | Error Response. Message: Internal Server Error. Error during processing was received. |
PUT /Staff/EmployeeSiteStatus/BulkUpdate
Summary
Used to create, update, or delete employee site status information in bulk. For more information, see Site Status Bulk Update.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
body |
| Yes | The Site Status Bulk Update request information |
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response. Message: OK-Success | |
400 | Error Response. Message: Bad Request. One or several parameters from headers / body failed in validation. | |
401 | Error Response. Message: Unauthorized. The token is absent or incorrect. | |
403 | Error Response. Message: Forbidden. Provided token does not have required permissions to perform this action within this company. | |
500 | Error Response. Message: Internal Server Error. Error during processing was received. |
PUT /Staff/EmployeeJob/UpdateAll
Summary
Used to create and update employee job data together with a corresponding employee’s rate information. It allows multiple job updates in one request. For more information, see Update All Employee Jobs.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The unique site identifier provided by us |
body |
| Yes | The Update All Employee Jobs request information |
Responses
Code | Description | Schema |
|---|---|---|
200 | Success Response. Message - OK-Success | |
400 | Error Response. Message - Bad Request. One or several parameters from headers / body failed in validation. | |
401 | Error Response. Message - Unauthorized. The token is absent or incorrect. | |
403 | Error Response. Message - Forbidden. Provided token does not have required permissions to perform this action within this company. | |
500 | Error Response. Message - Internal Server Error Error during processing was received. |
PUT /Staff/Employee/EmployeeDetail
Summary
This endpoint updates employee data, including Employee Site Statuses and POS Credentials.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us |
header |
| string | Yes | The unique site identifier for the employee's primary work location |
body |
| Yes | The Update an Employee Record request information |
POST /Staff/EmployeeAddress
Summary
Provides the ability to create one employee address at a time. This operation does not allow several addresses to be used for the same employee with the same Address Type.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The unique site identifier for the employee's primary work location NoteThis operation can only do one site at a time and cannot be null or empty. Considering that employee addresses are not site specific, any site to which an employee is assigned can be sent here. |
body |
| Yes | The request object with the employee address information |
Sample Request Body
curl --location --request POST 'https://qa-backoffice-api.xenial.com/Staff/
EmployeeAddress' \
--header 'authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \
--header 'content-type: application/json' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--header 'x-site-ids: 63da4653b5c13514ecaeac0f' \
--data-raw '{
"EmployeeId": "65c24fdaa007ddc53e65021f",
"AddressTypeId": "58f4eb1b736c128b640d5845",
"Address1": "9404 Bald Hill LaneBrooklyn",
"Address2": "",
"Address3": "",
"City": "New York",
"StateId": "58f51657736c128b640d5876",
"PostalCode": "11228",
"CountryId": "58f4f1ff736c128b640d584b",
"Source": "ExtBackOffice"
}'Responses
Code | Description | Schema |
|---|---|---|
201 | Success. Within the response, an Message: Created | |
400 | One or several parameters from a request failed in validation. Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
GET /Lookup/AddressType
Summary
This endpoint returns a list of available address types from Data Management, which are not displayed on the user interface. For the response schema, see GetLookupAddressTypeResponseBody.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Lookup/ AddressType' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 61939a5901181700091be07a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ….'
GET /Lookup/State
Summary
This endpoint returns a list of available states from Data Management from the Country States section. For the response schema, see GetLookupStateResponseBody.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Lookup/ State' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 61939a5901181700091be07a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ….'
GET /Lookup/Country
Summary
This endpoint returns a list of available countries from Data Management Countries' section. For the response schema, see GetLookupCountryResponseBody.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Lookup/ Country' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 61939a5901181700091be07a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ….'
PUT /Staff/EmployeeAddress/<ID>
Summary
Provides the ability to update one employee address at a time. This operation does not allow several addresses to be used for the same employee with the same Address Type.
The ID is the unique identifier in our system of the employee contact record that should be updated. This field is returned in response to the POST /Staff/EmployeeAddress endpoint or in response to the GET Staff/Employee/EmployeeDetail.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The UID for the site provided by us. NoteThis operation can only do one site at a time and cannot be null or empty. Considering that employee addresses are not site specific, any site to which an employee is assigned can be sent here. |
body |
| Yes | The request object with the employee address information |
Sample Request Body
curl --location --request PUT 'https://qa-backoffice-api.xenial.com/Staff/
EmployeeAddress/66d07bec0c1d271eb8232842' \
--header 'authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ….' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--header 'x-site-ids: 63da4653b5c13514ecaeac0f' \
--header 'Content-Type: application/json' \
--data-raw '{
"EmployeeAddressId": "66d07bec0c1d271eb8232842",
"EmployeeId": "65c24fdaa007ddc53e65021f",
"AddressTypeId": "58f4eb1b736c128b640d5845",
"Address1": "9405 Bald Hill LaneBrooklyn",
"Address2": "",
"Address3": "",
"City": "New York",
"StateId": "58f51657736c128b640d5876",
"PostalCode": "11228",
"CountryId": "58f4f1ff736c128b640d584b"
}'Responses
Code | Description |
|---|---|
204 | Success. Message: No content |
400 | One or several parameters from a request failed in validation. Message: Bad Request |
401 | The token is absent or incorrect. Message: Unauthorized |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden |
500 | An error was received during the processing. Message: Internal Server Error |
DELETE /Staff/EmployeeAddress/[ID]
Summary
Provides the ability to delete one employee address at a time.
The ID is the unique identifier in our system of the employee contact record that should be updated. This field is returned in response to the POST /Staff/EmployeeAddress endpoint or in response to the GET Staff/Employee/EmployeeDetail.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request DELETE 'https://qa-backoffice-api.xenial.com/Staff/ EmployeeAddress/66d07bec0c1d271eb8232842' \ --header 'authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a' \ --header 'Content-Type: application/json'
Responses
Code | Description |
|---|---|
204 | Success. Message: No content |
400 | One or several parameters from a request failed in validation. Message: Bad Request |
401 | The token is absent or incorrect. Message: Unauthorized |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden |
404 | There are no records in the database with such a UID. Message: Not Found |
500 | An error was received during the processing. Message: Internal Server Error |
POST /Staff/EmployeeEmail
Summary
Provides the ability to create one employee email record at a time.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The UID for the site identifier provided by us NoteThis operation can only do one site at a time and cannot be null or empty. Considering that employee emails are not site specific, any site to which an employee is assigned can be sent here. |
body |
| Yes | The request object with the employee email information |
Sample Request Body
curl --location --request POST 'https://qa-backoffice-api.xenial.com/Staff/
EmployeeEmail' \
--header 'authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \
--header 'content-type: application/json' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--header 'x-site-ids: 63da4653b5c13514ecaeac0f' \
--data-raw '{
"EmployeeId": "65c24fdaa007ddc53e65021f",
"Email": "email@gmail.com",
"EmailTypeId": "58f7713ab8e30b8e5bbbc9b0",
"Source": "ExtBackOffice"
}'Responses
Code | Description | Schema |
|---|---|---|
201 | Success. Within the response, an Message: Created | |
400 | One or several parameters from a request failed in validation. Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
GET /Lookup/EmailType
Summary
This endpoint returns a list of available email types from Data Management, which are not displayed on the user interface. For the response schema, see GetLookupEmailTypeResponseBody.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Lookup/ EmailType' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 61939a5901181700091be07a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ….'
PUT /Staff/EmployeeEmail/[ID]
Summary
Provides the ability to update one employee email record at a time.
The ID is the unique identifier in our system of the employee contact record that should be updated. This field is returned in response to the POST /Staff/EmployeeEmail endpoint or in response to the GET Staff/Employee/EmployeeDetail.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The UID for the site identifier provided by us NoteThis operation can only do one site at a time and cannot be null or empty. Considering that employee emails are not site specific, any site to which an employee is assigned can be sent here. |
body |
| Yes | The request object with the employee email information |
Sample Request Body
curl --location --request PUT 'https://qa-backoffice-api.xenial.com/Staff/
EmployeeEmail/66d0866d0c1d271eb8232877' \
--header 'authorization:
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \
--header 'content-type: application/json' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--header 'x-site-ids: 63da4653b5c13514ecaeac0f' \
--data-raw '{
"EmployeeEmailId": "66d0866d0c1d271eb8232877",
"EmployeeId": "65c24fdaa007ddc53e65021f",
"Email": "email2@gmail.com",
"EmailTypeId": "58f7713ab8e30b8e5bbbc9b0",
"Source": "ExtBackOffice"
}'Responses
Code | Description |
|---|---|
204 | Success. Message: No content |
400 | One or several parameters from a request failed in validation. Message: Bad Request |
401 | The token is absent or incorrect. Message: Unauthorized |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden |
500 | An error was received during the processing. Message: Internal Server Error |
DELETE /Staff/EmployeeEmail/[ID]
Summary
Provides the ability to delete one employee email record at a time.
The ID is the unique identifier in our system of the employee contact record that should be updated. This field is returned in response to the POST /Staff/EmployeeEmail endpoint or in response to the GET Staff/Employee/EmployeeDetail.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request DELETE 'https://qa-backoffice-api.xenial.com/Staff/ EmployeeEmail/66d0866d0c1d271eb8232877' \ --header 'authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \ --header 'content-type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a'
Responses
Code | Description |
|---|---|
204 | Success. Message: No content |
400 | One or several parameters from a request failed in validation. Message: Bad Request |
401 | The token is absent or incorrect. Message: Unauthorized |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden |
404 | There are no records in the database with such a UID. Message: Not Found |
500 | An error was received during the processing. Message: Internal Server Error |
POST /Staff/EmployeePhone
Summary
Provides the ability to create one employee phone record at a time.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The UID for the site identifier provided by us NoteThis operation can only do one site at a time and cannot be null or empty. Considering that employee phones are not site specific, any site to which an employee is assigned can be sent here. |
body |
| Yes | The request object with the employee phone information |
Sample Request Body
curl --location --request POST 'https://qa-backoffice-api.xenial.com/Staff/
EmployeePhone' \
--header 'authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \
--header 'content-type: application/json' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--header 'x-site-ids: 63da4653b5c13514ecaeac0f' \
--data-raw '{
"PhoneNumber": "+2-131-231-2312",
"PhoneTypeId": "58f6653921eb68fc1f1b8d25",
"EmployeeId": "65c24fdaa007ddc53e65021f",
"Source": "ExtBackOffice"
}'Responses
Code | Description | Schema |
|---|---|---|
201 | Success. Within the response, an Message: Created | |
400 | One or several parameters from a request failed in validation. Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
GET /Lookup/PhoneType
Summary
This endpoint returns a list of available phone type from Data Management, which are not displayed on the user interface. For the response schema, see GetLookupEmployeePhoneResponseBody.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Lookup/ PhoneType' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 61939a5901181700091be07a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ….'
PUT /Staff/EmployeePhone/[ID]
Summary
Provides the ability to update one employee phone record at a time.
The ID is the unique identifier in our system of the employee contact record that should be updated. This field is returned in response to the POST /Staff/EmployeePhone endpoint or in response to the GET Staff/Employee/EmployeeDetail.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The UID for the site identifier provided by us NoteThis operation can only do one site at a time and cannot be null or empty. Considering that employee phones are not site specific, any site to which an employee is assigned can be sent here. |
body |
| Yes | The request object with the employee phone information |
Sample Request Body
curl --location --request PUT 'https://qa-backoffice-api.xenial.com/Staff/
EmployeePhone/66d08af60c1d271eb8232879' \
--header 'authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \
--header 'content-type: application/json' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--header 'x-site-ids: 63da4653b5c13514ecaeac0f' \
--data-raw '{
"EmployeePhoneId": "66d08af60c1d271eb8232879",
"PhoneNumber": "2131231231432",
"PhoneTypeId": "58f6653921eb68fc1f1b8d25",
"EmployeeId": "65c24fdaa007ddc53e65021f",
"Source": "ExtBackOffice"
}'Responses
Code | Description |
|---|---|
204 | Success. Message: No content |
400 | One or several parameters from a request failed in validation. Message: Bad Request |
401 | The token is absent or incorrect. Message: Unauthorized |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden |
500 | An error was received during the processing. Message: Internal Server Error |
DELETE /Staff/EmployeePhone/[ID]
Summary
Provides the ability to delete one employee phone record at a time.
The ID is the unique identifier in our system of the employee contact record that should be updated. This field is returned in response to the POST /Staff/EmployeePhone endpoint or in response to the GET Staff/Employee/EmployeeDetail.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request DELETE 'https://qa-backoffice-api.xenial.com/Staff/ EmployeePhone/66d08af60c1d271eb8232879' \ --header 'authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \ --header 'content-type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a'
Responses
Code | Description |
|---|---|
204 | Success. Message: No content |
400 | One or several parameters from a request failed in validation. Message: Bad Request |
401 | The token is absent or incorrect. Message: Unauthorized |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden |
404 | There are no records in the database with such a UID. Message: Not Found |
500 | An error was received during the processing. Message: Internal Server Error |
POST /Staff/EmployeeContact
Summary
Provides the ability to create one employee contact record at a time.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The UID for the site provided by us NoteThis operation can only do one site at a time and cannot be null or empty. Considering that employee contacts are not site specific, any site to which an employee is assigned can be sent here. |
body |
| Yes | The request object with the employee contact information |
Sample Request Body
curl --location --request POST 'https://qa-backoffice-api.xenial.com/Staff/
EmployeeContact' \
--header 'authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \
--header 'content-type: application/json' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--header 'x-site-ids: 63da4653b5c13514ecaeac0f' \
--data-raw '{
"EmployeeId": "65c24fdaa007ddc53e65021f",
"Firstname": "Cortney",
"City": "New York",
"PostalCode": "1313213",
"CountryId": "58f4f1ff736c128b640d584b",
"Phone1": "+3-434-545-3443",
"Source": "ExtBackOffice"
}'Responses
Code | Description | Schema |
|---|---|---|
201 | Success. Within the response, an Message: Created | |
400 | One or several parameters from a request failed in validation. Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
PUT /Staff/EmployeeContact/[ID]
Summary
Provides the ability to update one employee contact record at a time.
The ID is the unique identifier in our system of the employee contact record that should be updated. This field is returned in response to the POST /Staff/EmployeeContact endpoint or in response to the GET Staff/Employee/EmployeeDetail.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The UID for the site provided by us NoteThis operation can only do one site at a time and cannot be null or empty. Considering that employee contacts are not site specific, any site to which an employee is assigned can be sent here. |
body |
| Yes | The request object with the employee contact information |
Sample Request Body
curl --location --request PUT 'https://qa-backoffice-api.xenial.com/Staff/
EmployeeContact/66d0938c957f64e8baba32e8' \
--header 'authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \
--header 'content-type: application/json' \
--header 'x-company-id: 63da4601b5c13514ecaeac0a' \
--header 'x-site-ids: 63da4653b5c13514ecaeac0f' \
--data-raw '{
"EmployeeContactId": "66d0938c957f64e8baba32e8",
"EmployeeId": "65c24fdaa007ddc53e65021f",
"Firstname": "Cortney",
"Lastname": "Dikson",
"City": "New York",
"PostalCode": "1313213",
"CountryId": "58f4f1ff736c128b640d584b",
"Phone1": "+3-434-545-3443",
"Source": "ExtBackOffice"
}'Responses
Code | Description |
|---|---|
204 | Success. Message: No content |
400 | One or several parameters from a request failed in validation. Message: Bad Request |
401 | The token is absent or incorrect. Message: Unauthorized |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden |
500 | An error was received during the processing. Message: Internal Server Error |
DELETE /Staff/EmployeeContact/[ID]
Summary
Provides the ability to delete one employee contact record at a time.
The ID is the unique identifier in our system of the employee contact record that should be updated. This field is returned in response to the POST /Staff/EmployeeContact endpoint or in response to the GET Staff/Employee/EmployeeDetail.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
Sample Request Body
curl --location --request DELETE 'https://qa-backoffice-api.xenial.com/Staff/ EmployeeContact/66d0938c957f64e8baba32e8' \ --header 'authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ…' \ --header 'content-type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a'
Responses
Code | Description |
|---|---|
204 | Success. Message: No content |
400 | One or several parameters from a request failed in validation. Message: Bad Request |
401 | The token is absent or incorrect. Message: Unauthorized |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden |
404 | There are no records in the database with such a UID. Message: Not Found |
500 | An error was received during the processing. Message: Internal Server Error |
GET /Staff/JobCodeRate
Summary
This endpoint returns a list of available rate ranges for specific Job Code records and defined compensation types (Hourly, Salary) from Data Management Job Code Rates section, which are assigned to employees within the Employee Job related requests.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. |
header |
| string | Yes | The unique site identifier for the employee's primary work location NoteOnly one active site ID can be requested at one time. The site should belong to the company received in the X-Company-ID header. |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/Staff/JobCodeRate' \ --header 'authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \ --header 'content-type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a' \ --header 'x-site-ids: 63da4653b5c13514ecaeac0f'
Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success. |
GET /Lookup/TenderType
Summary
This endpoint returns a list of available payment types from Data Management Payment Type section.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. |
header |
| string | Yes | The unique site identifier for the employee's primary work location NoteOnly one active site ID can be requested at one time. The site should belong to the company received in the X-Company-ID header. |
Sample Request Body
curl --location --request GET 'https://backoffice-api.xenial.com/Lookup/TenderType' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 5ddab0e3d93109001df6a76c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...'
Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success. |
GET /Lookup/TenderCurrency
Summary
This endpoint returns a list of available currencies configured in the Portal in the Data Management Tender Currency section.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. |
header |
| string | Yes | The unique site identifier for the employee's primary work location NoteOnly one active site ID can be requested at one time. The site should belong to the company received in the X-Company-ID header. |
Sample Request Body
curl --location --request GET 'https://backoffice-api.xenial.com/Lookup/TenderCurrency' \ --header 'Content-Type: application/json' \ --header 'X-Company-Id: 5ddab0e3d93109001df6a76c' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...'
Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success. |
POST /External/General/Shift
Summary
Provides the ability to create one new shift at a time for non-deleted company, site, employee, and employee job.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The unique site identifier for the employee's primary work location NoteThis operation can only do one site at a time and cannot be null or empty. |
body |
| Yes | The request object with the shift information |
Sample Request Body
curl --location --request POST
'https://qa-backoffice-api.xenial.com/External/General/Shift' \
--header 'Content-Type: application/json' \
--header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \
--header 'X-Site-Ids: 620c011778da1c0008db8bac' \
--header 'Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \
--data-raw '{
"EmployeeId": "62dc040174630b7536f71a96",
"ExternalJobCodeId": "75",
"StartDateTime": "2023-08-07T18:56:49Z",
"EndDateTime": null,
"Source": "TestSource",
"ActualUpdateDate": "2023-08-08T07:16:57.000Z",
"Breaks": [
{
"BreakStartDateTime": "2023-08-07T22:39:26Z",
"BreakEndDateTime": "2023-08-08T00:16:38Z",
"BreakTypeCode": "MEAL",
"IsPaidBreak": true
},
{
"BreakStartDateTime": "2023-08-08T02:30:00Z",
"BreakEndDateTime": "2023-08-08T02:35:00Z",
"BreakTypeCode": "REST",
"IsPaidBreak": false
}
],
"Tips": [
{
"TenderCategoryCode": "DTIP",
"TenderTypeCode": "CREDIT",
"TenderCurrencyCode": "USD",
"Amount": 9.00
},
{
"TenderCategoryCode": "DTIP",
"TenderTypeCode": "CUSTOM",
"TenderCurrencyCode": "USD",
"Amount": 0.70
},
{
"TenderCategoryCode": "DTIP",
"TenderTypeCode": "DEBIT",
"TenderCurrencyCode": "USD",
"Amount": 7.75
}
],
"Sales": [
{
"TenderTypeCode": "CASH",
"TenderCurrencyCode": "USD",
"Amount": 224.63
}
]
}'Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success. | |
400 | Appears when:
Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | Appears when the received token has not enough permissions to perform this action or the data in the token and headers does not match. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
PUT /External/General/Shift/[ID]
Summary
Provides the ability to update one new shift at a time for non-deleted company, site, employee, and employee job.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by us NoteThis operation can only do one company at a time, cannot be null or empty, and the |
path |
| string | Yes | The [ID] in the URL should contain a 24 character hexadecimal UID in our system of the shift that should be updated with new data. |
body |
| Yes | The request object with the shift information |
Sample Request Body
curl --location --request PUT
'https://qa-backoffice-api.xenial.com/External/Generat/Shift/
5e46af81636dc9000ab1afc9' \
--header 'Content-Type: application/json' \
--header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \
--header 'X-Site-Ids: 620c011778da1c0008db8bac' \
--header 'Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ....' \
--data-raw '{
"StartDateTime": "2023-08-07T18:56:49Z",
"EndDateTime": null,
"Source": "TestSource",
"ActualUpdateDate": "2023-08-08T07:16:57.000Z",
"Breaks": [
{
"BreakStartDateTime": "2023-08-07T22:39:26Z",
"BreakEndDateTime": "2023-08-08T00:16:38Z",
"BreakTypeCode": "MEAL",
"IsPaidBreak": true
},
{
"BreakStartDateTime": "2023-08-08T02:30:00Z",
"BreakEndDateTime": "2023-08-08T02:35:00Z",
"BreakTypeCode": "REST",
"IsPaidBreak": false
}
],
"Tips": [
{
"TenderCategoryCode": "DTIP",
"TenderTypeCode": "CREDIT",
"TenderCurrencyCode": "USD",
"Amount": 9.00
},
{
"TenderCategoryCode": "DTIP",
"TenderTypeCode": "CUSTOM",
"TenderCurrencyCode": "USD",
"Amount": 0.70
},
{
"TenderCategoryCode": "DTIP",
"TenderTypeCode": "DEBIT",
"TenderCurrencyCode": "USD",
"Amount": 7.75
}
],
"Sales": [
{
"TenderTypeCode": "CASH",
"TenderCurrencyCode": "USD",
"Amount": 224.63
}
]
}'Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success. | |
400 | Appears when:
Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | Appears when the received token has not enough permissions to perform this action or the data in the token and headers does not match. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
GET /External/General/Shift/GetUpdates
Summary
Provides the ability to receive a list of all shifts, active and deleted, updated in a defined period of time.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | No | The unique site identifier for the employee's primary work location NoteThis operation can only do one site at a time and cannot be null or empty. |
query |
| string | Yes | This parameter is used to receive only those shifts that were updated in the database after some particular date/time received in this parameter. For example, the time since the last data pulling until the current Coordinated Universal Time (UTC) timestamp or the time received in the NoteThe parameter can use only one date at a time in the 'YYYY-MM-DDTHH:MM:SS.SSSZ' format. The date/time should be provided in UTC. |
query |
| string | No | This parameter is used to receive only those shifts that were updated until some particular date/time received in this parameter. This field should be sent in a request only when there is a need to find shifts updated in a defined timeframe, and not earlier or later. NoteThe parameter can use only one date at a time in the 'YYYY-MM-DDTHH:MM:SS.SSSZ' format. The date/time should be provided in UTC. The received value should always be greater than the |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/External/General/Shift/ GetUpdates?UpdateDateFrom=2023-08-08T23:50:00.000Z' \ --header 'Content-Type: application/json' \ --header 'X-Company-id: 63da4601b5c13514ecaeac0a' \ --header 'X-Site-Ids: 620c011778da1c0008db8bac' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ....'
Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success. | |
400 | Appears when:
Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | Appears when the received token has not enough permissions to perform this action or the data in the token and headers does not match. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
GET /External/General/Shift/GetByBusinessDate
Summary
Provides the ability to receive a list of all shifts for a defined business date with additional filtering options.
Note
For this request, all query parameters work using the AND condition.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The unique site identifier for the employee's primary work location NoteThis operation can only do one site at a time and cannot be null or empty. |
query |
| string | Yes | A business date for which all related shifts should be returned in response. If a valid date is received, all shifts that are crossing this business date are returned in response. NoteThe parameter can use only one date at a time in the YYYY-MM-DD format. The parameter cannot be null, empty, or ““. |
query |
| array of strings | No | A list of employee identifiers (IDs) for which shifts should be returned in response for a certain business date. If a valid list of employee IDs is received, all shifts that have these employee IDs are returned in response if they match other received filter conditions:
|
query |
| array of strings | No | Shifts received in this parameter's statuses are returned in the response only if they match other received filter conditions. The available shift statues:
If a valid list of statuses is received, all shifts that have these statuses are returned in the response if they match other received filter conditions:
|
query |
| boolean | No | This parameter allows receiving If a valid value is received, all shifts that have
|
query |
| integer | No | This parameter is used for pagination needs and provides an ability to regulate the page size returned in response:
|
query |
| integer | No | This parameter is used for pagination needs and provides an ability to move to another data page skipping the previously processed one:
Initial value = 0. |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/External/General/Shift/ GetByBusinessDate?BusinessDate=2023-08-08&EmployeeIds=6690db6d636c0f9b657ce4cf, 6690db6d965c2ba2c74e471b&IncludeDeleted=true&ShiftStatuses=CLOCKED_OUT, CLOCKED_IN&ItemsPerPage=50&PageNumber=2' \ --header 'Content-Type: application/json' \ --header 'X-Company-id: 63da4601b5c13514ecaeac0a' \ --header 'X-Site-Ids: 620c011778da1c0008db8bac' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ....'
Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success. Where:
If no shifts were found according to the received query parameters or there are no shifts for the received page: // no data found { "Data": [], "Total": 0 } // no records for the received page { "Data": [], "Total": 190 } | |
400 | Appears when:
Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | Appears when the received token has not enough permissions to perform this action or the data in the token and headers does not match. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
GET /External/General/Shift/GetByShiftIds
Summary
Provides the ability to receive a list of shifts based on the received identifiers (IDs).
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
query |
| array of strings | Yes | A list of shift IDs that are returned in response for a certain business date. If a valid list of shift IDs is received, all shifts that have these IDs are returned in response. If for some IDs no shifts were found in the database, the shifts are not returned in the response, but they do not block other shifts processing. No errors or warnings are returned in response:
|
Sample Request Body
curl --location --request GET 'https: //qa-backoffice-api.xenial.com/External/General/Shift/ GetByShiftIds?ShiftIds=62a6b87bb4fd7c0008692cc5, 65a6d588adf7e83d16d43313,64d56a110745cc5992a0a1e0, 64d56a3421800bf5155221e1,62a3590cf118dc00098dfbc2, 62c2ed58dc684eeab137afa1,62a6ba9dde4ad10008787202, 6216c4a9300f510008713939,62bf0330c269a6b441b77410, 62c323603ec4efe48384366d,62a7688eec28df000852ca4e, 62c3247378d3983c50a26aaa,62efe194f24a76771990e9f7, 6303b0f116a947b559ad973b,630cdffcbada7f474bc32bc4, 62f167f2ac2319d201d3fea5,62bcb282c35cb31d0f3758b1, 6304223db5ce1b620f0c9d8a,62bb3a52bbba59d8728a30ec, 62bb3ad82f4d8129093e07d8,62fa91210b6d6caf565254b0, 62bf023724d1569abf8b65dd,630ce8816e9f5e8429b9e98a, 61e8540c61592400086ebe62,62bcb2f0c842bf57ad6d3e66, 62a769e990ec100009158ed3,63041f73d5c980d7a7188794, 632b5a73b3c158e7e98a99aa,653a8fcefc74f491eea4a785, 63ae19bc9bd59b8b2e074851,64dc427b31f797ced93bce37, 63222fe5b3c158e7e98a9986,63223091dda51a6ab003cd21, 640255a804d21164204471aa,63405118d977f30666a8e1ef, 634859cffd12eb7dc81647cc,638fd7bac4bc14f39d2b042d, 638fd8c509528134de27ba4a,638fd95288adf859c7bb43f8, 638fd8300cd618ba2208e7d9,63a61c5401e6f5aa67ad6fa2, 6401348cbf987c3ff11d3380,647e5ba17632754908569f8b, 64b2dd29a5819a837663636d,654a9e1c4d97db69ef8be611, 64d56ba45317fb67d6cfce2f,64c99dd8a490a4bf8d9927e5, \ --header 'Content-Type: application/json' \ --header 'X-Company-id: 63da4601b5c13514ecaeac0a' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ....'
Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success. Where:
| |
400 | Appears when:
Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | Appears when the received token has not enough permissions to perform this action or the data in the token and headers does not match. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
POST /v2/schedules
Summary
Provides an ability to create only one active schedule and its child shifts at a time.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The UID for the site provided by us NoteThis operation can only do one site at a time and cannot be null or empty. The received site ID should be non-deleted and belong to the company received in the |
body |
| Yes | The request object with the schedule information |
Sample Request Body
curl --location --request POST 'https://qa-schedule.xenial.com/v2/schedules' \
--header 'x-company-id: 5ee35ad4653fed0009c8ff56' \
--header 'x-site-ids: 5ee35af39c0d910009207773' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer [token]' \
--data-raw '{
"StartDate": "2023-11-24T00:00:00.000Z",
"EndDate": "2023-11-27T00:00:00.000Z",
"Timezone": "US/Eastern",
"Source": "New Schedule Test",
"Shifts": [
{
"BusinessDate": "2023-11-24T",
"StartTime": "2023-11-24T13:30:00.000Z",
"EndTime": "2023-11-24T23:15:00.000Z",
"EmployeeCorporateCode": "134489",
"JobCodeId": "58e63c06fbf17de5ced22014"
},
{
"BusinessDate": "2023-11-26",
"StartTime": "2023-11-26T13:00:00.000Z",
"EndTime": "2023-11-26T23:00:00.000Z",
"EmployeeId": "607eab3dbffe7e00011adfd1",
"ExternalJobCodeId": "80892",
"ExternalShiftId": "920u93"
}
]
}'Responses
Code | Description | Schema |
|---|---|---|
200 | Successfully created schedule with its child shifts. | |
400 | One or several parameters from a request failed in validation. Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
PUT /v2/schedules/[ID]
Summary
Provides an ability to update only one active schedule and its child shifts at a time.
Warning
This endpoint updates active schedules and shifts only, isActive: true.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
path |
| string | Yes | The [ID] in the URL should contain a 24 character hexadecimal UID in our system of the non-deleted schedule that should be updated with a new data. |
body |
| Yes | The request object with the schedule information |
Sample Request Body
curl --location -g --request PUT 'https://qa-schedule.xenial.com/v2
/schedules/66d16bbafea8ff072f4181c6' \
--header 'x-company-id: 5ee35ad4653fed0009c8ff56' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer [token]' \
--data-raw '{
"StartDate": "2023-11-24T04:00:00.000Z",
"EndDate": "2023-11-27T04:00:00.000Z",
"ModifyTime": "2023-11-28T00:09:00.000Z",
"Shifts": [
{
"ShiftId": "63da4601b5c13514ecaeac0a",
"BusinessDate": "2023-11-24",
"StartTime": "2023-11-24T13:00:00.000Z",
"EndTime": "2023-11-24T23:00:00.000Z",
"EmployeeCorporateCode": "134489",
"JobCodeId": "58e63c06fbf17de5ced22014"
},
{
"BusinessDate": "2023-11-26",
"StartTime": "2023-11-26T13:00:00.000Z",
"EndTime": "2023-11-26T23:00:00.000Z",
"EmployeeId": "607eab3dbffe7e00011adfd1",
"ExternalJobCodeId": "80892",
"ExternalShiftId": "920u93"
}
]
}'Responses
Code | Description | Schema |
|---|---|---|
200 | Successfully updated the schedule with all its non-deleted child shifts | |
400 | One or several parameters from a request failed in validation. Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
GET /SchedulesService/schedules
Summary
Provides an ability to retrieve a list of all existing, non-deleted schedule records with a list of their non-deleted child shifts based on the received query filters.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
header |
| string | Yes | The UID for the site provided by us NoteThis operation can only do one site at a time and cannot be null or empty. The received site ID should be non-deleted and belong to the company received in the |
query |
| string | Yes | The start Date for the schedule in the YYYY-MM-DD format |
query |
| string | No | The end Date for the schedule in the YYYY-MM-DD format. If not received, all schedules with the received |
query |
| integer | No | This parameter regulates the page size value, such as how many found records are displayed in the response. If this parameter is received, a successful response body contains a |
query |
| integer | No | This parameter can be used for pagination scrolling. It shows how many of the first found records can be ignored and not returned in the response. Example: The total quantity is 104 and the default page size is 100. In order to receive all records:
|
Sample Request Body
curl --location --request GET 'https://qa-schedule.xenial.com/SchedulesService /schedules?$top=50&$skip=0&StartDate=2025-02-20' \ --header 'x-company-id: 67c17d6db633aac8decd6dca' \ --header 'x-site-ids: 67c18218c2cda380bb670597' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...'
Responses
Code | Description | Schema |
|---|---|---|
200 | All found documents that are not deleted are returned in response. Message: Success | |
400 | One or several parameters from a request failed in validation. Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
DELETE /v2/shifts/[ID]
Summary
This endpoint is used to soft-delete existing, non-deleted schedule’s shifts.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
path |
| string | Yes | The [ID] in the URL should contain a 24 character hexadecimal UID in our system of a schedule’s shift that should be soft-deleted. |
Sample Request Body
curl --location --request DELETE 'https://qa-schedule.xenial.com/v2/shifts /66d16bba4cacd4f3472174a4' \ --header 'x-company-id: 60ddef56f5b0920007046a72' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer [token]'
Responses
Code | Description | Schema |
|---|---|---|
200 | The shift’s removal was successful. No content. | |
400 | One or several parameters from a request failed in validation. Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when received shift is not found or it is no longer active. Message: Not Found | |
500 | An error was received during the processing. Message: Internal Server Error |
DELETE /v2/schedules/[ID]
Summary
This endpoint is used to soft-delete existing, non-deleted schedules.
Warning
A schedule removal triggers all its child shifts removal. Deleted schedules are no longer returned in response to GET requests, and the schedules cannot be modified through PUT requests.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The unique identifier (UID) for the company provided by Genius. NoteThis operation can only do one company at a time, cannot be null or empty, and the |
path |
| string | Yes | The [ID] in the URL should contain a 24 character hexadecimal UID in our system of a schedule that should be soft-deleted. |
Sample Request Body
curl --location --request DELETE 'https://qa-schedule.xenial.com/v2/schedules /66d16bba4cacd4f3472174a4' \ --header 'x-company-id: 60ddef56f5b0920007046a72' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer [token]'
Responses
Code | Description | Schema |
|---|---|---|
200 | The schedule’s removal was successful. No content. | |
400 | One or several parameters from a request failed in validation. Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | The provided token does not have the required permissions to perform this action within this company. Message: Forbidden | |
404 | Appears when received shift is not found or it is no longer active. Message: Not Found | |
500 | An error was received during the processing. Message: Internal Server Error |
GET /External/General/Employee/[ID]
Summary
This endpoint retrieves details of a single, active, non-deleted employee associated with the specified company. The response includes the complete employee information and, if requested, additional details such as addresses, site statuses, and other related data.
Note
It is recommended to request only those employee details that are required for the integration.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The 24-character hexadecimal unique identifier (UID) for the company provided by Genius |
path |
| string | Yes | The 24-character hexadecimal UID for the employee |
query |
| array of strings | No | This parameter specifies which child entities should be included in the response. It can be used to exclude unnecessary data that is not required by integrators. If this parameter is not received, it is ignored. In this case employees are returned without described below child arrays and objects, only general employee data. If non-existent, or non-supported by this endpoint, employee child entities are requested by this parameter, they are ignored and not returned in response. If received, this parameter cannot be |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/External /General/Employee/680f7ea1b11c2fd89f820877?selectNested=EmployeeSiteStatuses, EmpoyeeJobs,PosCredentials' \ --header 'Authorization: Bearer token' \ --header 'Content-Type: application/json' \ --header 'x-company-id: 6486c8815de62f49cf344519'
Responses
Code | Description | Schema |
|---|---|---|
200 | Message: Success. | |
400 | Appears when:
Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | Appears when the received token has not enough permissions to perform this action or the data in the token and headers does not match. Message: Forbidden | |
404 | Appears when no employee records were found within the received company and with the received UID. Message: Not Found | |
410 | Appears when an employee record with the received UID is no longer active and has been deleted. Message: Gone | |
500 | An error was received during the processing. Message: Internal Server Error |
An example of a fully successful request where all child arrays and objects were received in the query parameters.
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "John",
"Lastname": "Doe",
"Middlename": null,
"Name": "John Doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": null,
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": null,
"EthnicityCode": null,
"Nickname": null,
"BirthDate": null,
"Gender": null,
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [
{
"PhoneNumber": "+2-312-312-3123",
"PhoneTypeCode": "HOME"
}
],
"EmployeeAddresses": [
{
"AddressTypeCode": "HOME",
"Address1": "Address 1",
"Address2": "",
"Address3": "",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US"
}
],
"EmployeeContacts": [
{
"ContactCode": "johnjackson",
"Firstname": "John",
"Lastname": "Jackson",
"Middlename": "",
"Address1": "Address1",
"Address2": "",
"Address3": "",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US",
"Phone1": "+0-232-123-1231",
"Phone2": ""
}
],
"EmployeeEmails": [
{
"Email": "jd+836@jd.com",
"EmailTypeCode": "PRSNL"
}
],
"EmployeeJobs": [
{
"EmployeeJobId": "63da4ba2614bb6862d37a761",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 15.56,
"EffectiveDate": "2023-01-01"
},
{
"CompensationTypeCode": "HOUR",
"Rate": 18.00,
"EffectiveDate": "2023-01-12"
}
]
},
{
"EmployeeJobId": "63da4e01db78faa7f38988da",
"EffectiveDate": "2023-01-13",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": null,
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "SLRY",
"Rate": 24.0,
"EffectiveDate": "2023-01-13"
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2024-01-01",
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
},
{
"EffectiveDate": "2024-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e3"
]
},
{
"EffectiveDate": "2025-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": [
{
"EmployeePOSCode": "68096",
"Password":
"DbFof1aDd4KgmPEFQ7fWzJFks9c/RZlB8rR4o7PTUBacahdBcEw1X48htzeOz2mL",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}An example of a fully successful request where only EmployeeJobs, EmployeeSiteStatues, and PosCredentials were received in the selectNested query parameter.
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "John",
"Lastname": "Doe",
"Middlename": null,
"Name": "John Doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": null,
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253",
"IsActive": true,
"EmployeeJobs": [
{
"EmployeeJobId": "63da4ba2614bb6862d37a761",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 15.56,
"EffectiveDate": "2023-01-01"
},
{
"CompensationTypeCode": "HOUR",
"Rate": 18.00,
"EffectiveDate": "2023-01-12"
}
]
},
{
"EmployeeJobId": "63da4e01db78faa7f38988da",
"EffectiveDate": "2023-01-13",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": null,
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "SLRY",
"Rate": 24.0,
"EffectiveDate": "2023-01-13"
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2024-01-01",
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
},
{
"EffectiveDate": "2024-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e3"
]
},
{
"EffectiveDate": "2025-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": [
{
"EmployeePOSCode": "68096",
"Password":
"DbFof1aDd4KgmPEFQ7fWzJFks9c/RZlB8rR4o7PTUBacahdBcEw1X48htzeOz2mL",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}An example of a fully successful request where the selectNested query parameter was not received.
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "John",
"Lastname": "Doe",
"Middlename": null,
"Name": "John Doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": null,
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253",
"IsActive": true
}GET /External/General/Employee
Summary
This endpoint returns information about all non-deleted employees only associated with the requested company and, if specified, sites. The response includes complete employee information and, if requested, additional details such as addresses, site statuses, and other related data.
This endpoint is useful for initial imports or periodic data validations, when all employees for a company and, if requested, for a list of sites need to be retrieved. However, since this endpoint processes large amounts of data, it is strongly recommended to use the X-SITE-IDs header to limit results to specific sites whenever possible or to avoid sending requests too frequently. For example, every N minutes.
Note
It is recommended to request only those employee details that are required for the integration.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The 24-character hexadecimal unique identifier (UID) for the company provided by Genius |
header |
| array of strings, separated by commas | No | The UID for the site(s) provided by Genius. Multiple site IDs can be provided, separated by commas. For example, 60ace72bacb1540007d34698,60ace72bacb1540007d34697.b If the parameter is provided without a value, it is treated as not provided. In this case, all employees within the specified company that match the query parameters will be returned. NoteThis parameter is useful to retrieve information related only to employees associated with the requested sites. |
query |
| array of strings | No | This parameter specifies which child entities should be included in the response. It can be used to exclude unnecessary data that is not required by integrators. If this parameter is not received, it is ignored. In this case employees are returned without described below child arrays and objects, only general employee data. If non-existent, or non-supported by this endpoint, employee child entities are requested by this parameter, they are ignored and not returned in response. If received, this parameter cannot be |
query |
| number/integer | No | This parameter defines a page size returned in response, which is the number of employee records returned in response. If this parameter is not received, the default 100 items value is used. |
query |
| string | No | This parameter is used to receive the next portion of data based on the previous response. If received, this parameter cannot be null, empty, or ““. WarningPagination in this endpoint supports only sequential data retrieval and does not allow parallelization. The next page can only be requested using the token returned in the response to the previous page in the |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/External /General/Employee' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \ --header 'Content-Type: application/json' \ --header 'x-company-id: 63da4601b5c13514ecaeac0a' \ --header 'x-site-ids: 63da4653b5c13514ecaeac0f, 63da4653b5c13514ecaeac0d,63da4653b5c13514ecaeac0c'
Responses
For this response:
This endpoint supports caching based on the received filters in the header and query parameters. Due to this, the response time can vary if any changes to employees have been made since the last request.
The response includes non-deleted employee data only.
If the
X-SITE-IDsheader is received, the response includes all non-deleted employees found based on the received search filters:Have active, non-deleted
is_active = trueSite Status records with thesite_idequals those received in this header.Or do not have active, non-deleted,
is_active = trueSite Status records with thesite_idequals those received in this header but whosePrimarySiteIdequals those received in this header.
The records in the response are sorted by the
EmployeeIdascending (ASC) field.
Warning
Integrators using this endpoint should implement a default retry logic. Retries are required when the service responds with a 500 status code or when the connection is abruptly closed. The service may close the connection while sending a response in one of the following ways:
TCP connection is closed with Connection Reset Error (ECONNRESET)
HTTP2 stream is closed with INTERNAL_ERROR
The recommended retry strategy is to perform up to two (2) retries, with delays of five (5) seconds and 30 seconds between attempts. For example:
A request is made.
It fails.
Wait 5 seconds.
Retry once.
If it fails again, wait 30 seconds.
Retry once more.
Code | Description | Schema |
|---|---|---|
200 | Message: Success. TotalCount - Shows a total number of employees found based on the received filters in the request. RecordsReturned - Shows a total number of employees returned successfully in the response. A response may not contain the number of records, received in the
NextPageToken - An automatically generated value based on the predefined rules. This value is used in the following request to proceed with employee data retrieval, starting from the employee record, next to the last returned in the previous response. WarningThe token has a lifetime of approximately 15 minutes. After that time, it is no longer possible to request the next portion of data using this token. Data retrieval must be started from the beginning. If no employees are found: {
"Data": [],
"TotalCount": 0,
"RecordsReturned": 0,
"NextPageToken": null
}If no employees exist for the requested page: {
"Data": [],
"TotalCount": 3600,
"RecordsReturned": 0,
"NextPageToken": null
} | |
400 | Appears when:
Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | Appears when the received token has not enough permissions to perform this action or the data in the token and headers does not match. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
An example of a fully successful request where all child arrays and objects were received in the query parameters.
{
"Data": [
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "john",
"Lastname": "doe",
"Middlename": null,
"Name": "john doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": null,
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253Z",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": null,
"EthnicityCode": null,
"Nickname": null,
"BirthDate": null,
"Gender": null,
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [
{
"PhoneNumber": "+2-312-312-3123",
"PhoneTypeCode": "HOME"
}
],
"EmployeeAddresses": [
{
"AddressTypeCode": "HOME",
"Address1": "Address 1",
"Address2": "",
"Address3": "",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US"
}
],
"EmployeeContacts": [
{
"ContactCode": "johndoe",
"Firstname": "Jack",
"Lastname": "doe",
"Middlename": "",
"Address1": "Address1",
"Address2": "",
"Address3": "",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US",
"Phone1": "+0-232-123-1231",
"Phone2": ""
}
],
"EmployeeEmails": [
{
"Email": "jd@jd.com",
"EmailTypeCode": "PRSNL"
}
],
"EmployeeJobs": [
{
"EmployeeJobId": "63da4ba2614bb6862d37a761",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 15.56,
"EffectiveDate": "2023-01-01"
},
{
"CompensationTypeCode": "HOUR",
"Rate": 18.00,
"EffectiveDate": "2023-01-12"
}
]
},
{
"EmployeeJobId": "63da4e01db78faa7f38988da",
"EffectiveDate": "2023-01-13",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": null,
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "SLRY",
"Rate": 24.0,
"EffectiveDate": "2023-01-13"
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2021-01-01"
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
},
{
"EffectiveDate": "2025-09-01"
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e3"
]
}
],
"PosCredentials": []
},
{
"EmployeeId": "63df82df32753797d3cfa2e0",
"Firstname": "Patrick",
"Lastname": "Doe",
"Middlename": null,
"Name": "Patrick Doe",
"Username": null,
"EmployeeCorporateCode": "8796277",
"ExternalEmployeeId": null,
"PrimarySiteId": "65fae456a881c84356c79d0a",
"Source": "TestSource",
"LastUpdateDate": "2024-07-01T11:01:15.910Z",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": null,
"EthnicityCode": null,
"Nickname": null,
"BirthDate": null,
"Gender": null,
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [],
"EmployeeAddresses": [],
"EmployeeContacts": [],
"EmployeeEmails": [],
"EmployeeJobs": [
{
"EmployeeJobId": "66828c6d89635e4fb9898023",
"EffectiveDate": "2024-05-27",
"JobCodeId": "656f79c4e9af7b2ebedb3f72",
"ExternalJobCodeId": "9012fn",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 100.0,
"EffectiveDate": "2024-05-27"
}
]
},
{
"EmployeeJobId": "6717a9bb9f3f963c2d6b8ec6",
"EffectiveDate": "2024-10-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": false,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "65fae456a881c84356c79d0a",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 7.25,
"EffectiveDate": "2024-10-01"
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2025-01-01",
"StatusCode": "ACTV",
"SiteIds": [
"63da4653b5c13514ecaeac0f",
"65fae456a881c84356c79d0a"
]
}
],
"PosCredentials": [
{
"EmployeePOSCode": "16982",
"Password":
"mz+nM5eTpdQVj/+uFeHkkF+Qw1gIfbI+Kiyf1wrWVDbJUe++qPIxSrL7urj8XbYW",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
},
{
"EmployeeId": "63df976132753797d3cfa2e7",
"Firstname": "Mark",
"Lastname": "Doe",
"Middlename": "Jr",
"Name": "Mark Doe",
"Username": "mark@mark.mark",
"EmployeeCorporateCode": "8796280",
"ExternalEmployeeId": "908012",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "Back office System 245",
"LastUpdateDate": "2025-04-10T09:50:55.993Z",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": "900292",
"EthnicityCode": null,
"Nickname": "mark",
"BirthDate": "2025-10-01",
"Gender": "M",
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [],
"EmployeeAddresses": [],
"EmployeeContacts": [],
"EmployeeEmails": [],
"EmployeeJobs": [],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2025-01-01"
"StatusCode": "ACTV",
"SiteIds": [
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": [
{
"EmployeePOSCode": "68096",
"Password":
"DbFof1aDd4KgmPEFQ7fWzJFks9c/RZlB8rR4o7PTUBacahdBcEw1X48htzeOz2mL",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}
],
"TotalCount": 3616,
"RecordsReturned": 3,
"NextPageToken":
"eyJFbXBsb3llZUlkIjoiNjNjNTI0N2ZmYjIzNzBlZWU1MGZkODg3IiwiRXhwaXJ5IjoxNzU2NDc
1OTY0OTA4MjE0MH0="
}An example of a fully successful request where only EmployeeJobs, EmployeeSiteStatues, and PosCredentials were received in the selectNested query parameter.
{
"Data": [
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "john",
"Lastname": "doe",
"Middlename": null,
"Name": "john doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": null,
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253Z",
"IsActive": true,
"EmployeeJobs": [
{
"EmployeeJobId": "63da4ba2614bb6862d37a761",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 15.56,
"EffectiveDate": "2023-01-01"
},
{
"CompensationTypeCode": "HOUR",
"Rate": 18.00,
"EffectiveDate": "2023-01-12"
}
]
},
{
"EmployeeJobId": "63da4e01db78faa7f38988da",
"EffectiveDate": "2023-01-13",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": null,
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "SLRY",
"Rate": 24.0,
"EffectiveDate": "2023-01-13"
}
]
}
],
"EmployeeSiteStatuses": [
{
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
},
{
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e3"
]
}
],
"PosCredentials": []
},
{
"EmployeeId": "63df82df32753797d3cfa2e0",
"Firstname": "Patrick",
"Lastname": "doe",
"Middlename": null,
"Name": "Patrick doe",
"Username": null,
"EmployeeCorporateCode": "8796277",
"ExternalEmployeeId": null,
"PrimarySiteId": "65fae456a881c84356c79d0a",
"Source": "TestSource",
"LastUpdateDate": "2024-07-01T11:01:15.910Z",
"IsActive": true,
"EmployeeJobs": [
{
"EmployeeJobId": "66828c6d89635e4fb9898023",
"EffectiveDate": "2024-05-27",
"JobCodeId": "656f79c4e9af7b2ebedb3f72",
"ExternalJobCodeId": "9012fn",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 100.0,
"EffectiveDate": "2024-05-27"
}
]
},
{
"EmployeeJobId": "6717a9bb9f3f963c2d6b8ec6",
"EffectiveDate": "2024-10-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": false,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "65fae456a881c84356c79d0a",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 7.25,
"EffectiveDate": "2024-10-01"
}
]
}
],
"EmployeeSiteStatuses": [
{
"StatusCode": "ACTV",
"SiteIds": [
"63da4653b5c13514ecaeac0f",
"65fae456a881c84356c79d0a"
]
}
],
"PosCredentials": [
{
"EmployeePOSCode": "16982",
"Password":
"mz+nM5eTpdQVj/+uFeHkkF+Qw1gIfbI+Kiyf1wrWVDbJUe++qPIxSrL7urj8XbYW",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
},
{
"EmployeeId": "63df976132753797d3cfa2e7",
"Firstname": "Mark",
"Lastname": "doe",
"Middlename": "Jr",
"Name": "Mark doe",
"Username": "mark@mark.mark",
"EmployeeCorporateCode": "8796280",
"ExternalEmployeeId": "908012",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "Back office System 245",
"LastUpdateDate": "2025-04-10T09:50:55.993Z",
"IsActive": true,
"EmployeeJobs": [],
"EmployeeSiteStatuses": [
{
"StatusCode": "ACTV",
"SiteIds": [
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": [
{
"EmployeePOSCode": "68096",
"Password":
"DbFof1aDd4KgmPEFQ7fWzJFks9c/RZlB8rR4o7PTUBacahdBcEw1X48htzeOz2mL",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}
],
"TotalCount": 3616,
"RecordsReturned": 3,
"NextPageToken":
"eyJFbXBsb3llZUlkIjoiNjNjNTI0N2ZmYjIzNzBlZWU1MGZkODg3IiwiRXhwaXJ5IjoxNzU2NDc
1OTY0OTA4MjE0MH0="
}An example of a fully successful request where the selectNested query parameter was not received.
{
"Data": [
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "john",
"Lastname": "doe",
"Middlename": null,
"Name": "john doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": null,
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253Z",
"IsActive": true
},
{
"EmployeeId": "63df82df32753797d3cfa2e0",
"Firstname": "Patrick",
"Lastname": "doe",
"Middlename": null,
"Name": "Patrick doe",
"Username": null,
"EmployeeCorporateCode": "8796277",
"ExternalEmployeeId": null,
"PrimarySiteId": "65fae456a881c84356c79d0a",
"Source": "TestSource",
"LastUpdateDate": "2024-07-01T11:01:15.910Z",
"IsActive": true
},
{
"EmployeeId": "63df976132753797d3cfa2e7",
"Firstname": "Mark",
"Lastname": "doe",
"Middlename": "Jr",
"Name": "Mark doe",
"Username": "mark@mark.mark",
"EmployeeCorporateCode": "8796280",
"ExternalEmployeeId": "908012",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "Back office System 245",
"LastUpdateDate": "2025-04-10T09:50:55.993Z",
"IsActive": true
}
],
"TotalCount": 3616,
"RecordsReturned": 3,
"NextPageToken":
"eyJFbXBsb3llZUlkIjoiNjNjNTI0N2ZmYjIzNzBlZWU1MGZkODg3IiwiRXhwaXJ5IjoxNzU2NDc
1OTY0OTA4MjE0MH0="
}GET /External/General/Employee/GetBy
Summary
This endpoint provides information about all active, non-deleted employees associated with the requested company and, if specified, sites, and is retrieved based on the provided static query filters. The response includes complete employee information and, if requested, additional details such as addresses, site statuses, and other related data.
Note
Use this endpoint to retrieve employee information using secondary identifiers (IDs) that are not Genius unique IDs such as the External Employee ID. This is useful in cases where the system does not store the Genius UID.
However, note that the uniqueness of supported secondary identifiers may vary from client to client. For example, the EmployeeCorporateCode may be unique at the company level or at the site level. Keep this in mind when processing the response or consider using additional headers.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The 24-character hexadecimal unique identifier (UID) for the company provided by Genius |
header |
| array of strings, separated by commas | No | The UID for the site(s) provided by Genius. Multiple site IDs can be provided, separated by commas. For example, 60ace72bacb1540007d34698,60ace72bacb1540007d34697.b If the parameter is provided without a value, it is treated as not provided. In this case, all employees within the specified company that match the query parameters will be returned. NoteThis parameter is useful when multiple employees share the same attribute such as For example, if the |
query |
| array of strings | No | This parameter specifies which child entities should be included in the response. It can be used to exclude unnecessary data that is not required by integrators. If this parameter is not received, it is ignored. In this case employees are returned without described below child arrays and objects, only general employee data. If non-existent, or non-supported by this endpoint, employee child entities are requested by this parameter, they are ignored and not returned in response. If received, this parameter cannot be |
query |
| string | Yes* | The UID of the employee in an external system. This field is used to link or synchronize employee data across systems. *This parameter is required only if the If received, this parameter cannot be |
query |
| string | Yes* | The unique, readable identifier assigned to the employee. This field is used for internal identification within the company. *This parameter is required only if the If received, this parameter cannot be |
query |
| string | Yes* | The employee’s user ID used as a login on the point of sale (POS). *This parameter is required only if the If received, this parameter cannot be |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/External /General/Employee/GetBy?ExternalEmployeeId= 90192&EmployeeCorporateCode=3785&selectNested=EmployeeSiteStatuses,EmployeeJobs' \ --header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...'
Responses
For this response:
The response includes non-deleted employee data only.
If the
X-SITE-IDsheader is received, the response includes all non-deleted employees found based on the received search filters:Have active, non-deleted
is_active = trueSite Status records with thesite_idequals those received in this header.Or do not have active, non-deleted,
is_active = trueSite Status records with thesite_idequals those received in this header but whosePrimarySiteIdequals those received in this header.
The records in the response are sorted by the
EmployeeIdascending (ASC) field.
Code | Description | Schema |
|---|---|---|
200 | Message: Success. If no employees are found: {
"Data": [],
"TotalCount": 0
} | |
400 | Appears when:
Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | Appears when the received token has not enough permissions to perform this action or the data in the token and headers does not match. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
An example of a fully successful request where all child arrays and objects were received in the query parameters.
{
"Data": [
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "John",
"Lastname": "Doe",
"Middlename": null,
"Name": "John Doe",
"Username": null,
"EmployeeCorporateCode": "908972",
"ExternalEmployeeId": "90",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253Z",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": null,
"EthnicityCode": null,
"Nickname": null,
"BirthDate": null,
"Gender": null,
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [
{
"PhoneNumber": "+2-312-312-3123",
"PhoneTypeCode": "HOME"
}
],
"EmployeeAddresses": [
{
"AddressTypeCode": "HOME",
"Address1": "Address 1",
"Address2": "",
"Address3": "",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US"
}
],
"EmployeeContacts": [
{
"ContactCode": "johndoe",
"Firstname": "John",
"Lastname": "Doe",
"Middlename": "",
"Address1": "Address1",
"Address2": "",
"Address3": "",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US",
"Phone1": "+0-232-123-1231",
"Phone2": ""
}
],
"EmployeeEmails": [
{
"Email": "jd@jd.com",
"EmailTypeCode": "PRSNL"
}
],
"EmployeeJobs": [
{
"EmployeeJobId": "63da4ba2614bb6862d37a761",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 15.56,
"EffectiveDate": "2023-01-01"
},
{
"CompensationTypeCode": "HOUR",
"Rate": 18.00,
"EffectiveDate": "2023-01-12"
}
]
},
{
"EmployeeJobId": "63da4e01db78faa7f38988da",
"EffectiveDate": "2023-01-13",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": null,
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "SLRY",
"Rate": 24.0,
"EffectiveDate": "2023-01-13"
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2024-01-01",
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
},
{
"EffectiveDate": "2024-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e3"
]
},
{
"EffectiveDate": "2025-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": []
},
{
"EmployeeId": "63df82df32753797d3cfa2e0",
"Firstname": "Patrick",
"Lastname": "Doe",
"Middlename": null,
"Name": "Patrick Doe",
"Username": null,
"EmployeeCorporateCode": "908972",
"ExternalEmployeeId": "90",
"PrimarySiteId": "65fae456a881c84356c79d0a",
"Source": "TestSource",
"LastUpdateDate": "2024-07-01T11:01:15.910",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": null,
"EthnicityCode": null,
"Nickname": null,
"BirthDate": null,
"Gender": null,
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [],
"EmployeeAddresses": [],
"EmployeeContacts": [],
"EmployeeEmails": [],
"EmployeeJobs": [
{
"EmployeeJobId": "66828c6d89635e4fb9898023",
"EffectiveDate": "2024-05-27",
"JobCodeId": "656f79c4e9af7b2ebedb3f72",
"ExternalJobCodeId": "9012fn",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 100.0,
"EffectiveDate": "2024-05-27"
}
]
},
{
"EmployeeJobId": "6717a9bb9f3f963c2d6b8ec6",
"EffectiveDate": "2024-10-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": false,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "65fae456a881c84356c79d0a",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 7.25,
"EffectiveDate": "2024-10-01"
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2016-07-14",
"StatusCode": "ACTV",
"SiteIds": [
"63da4653b5c13514ecaeac0f",
"65fae456a881c84356c79d0a"
]
}
],
"PosCredentials": [
{
"EmployeePOSCode": "16982",
"Password":
"mz+nM5eTpdQVj/+uFeHkkF+Qw1gIfbI+Kiyf1wrWVDbJUe++qPIxSrL7urj8XbYW",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}
],
"TotalCount": 2
}An example of a fully successful request where only EmployeeJobs, EmployeeSiteStatues, and PosCredentials were received in the selectNested query parameters.
{
"Data": [
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "John",
"Lastname": "Doe",
"Middlename": null,
"Name": "John Doe",
"Username": null,
"EmployeeCorporateCode": "908972",
"ExternalEmployeeId": "90",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253Z",
"IsActive": true,
"EmployeeJobs": [
{
"EmployeeJobId": "63da4ba2614bb6862d37a761",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 15.56,
"EffectiveDate": "2023-01-01"
},
{
"CompensationTypeCode": "HOUR",
"Rate": 18.00,
"EffectiveDate": "2023-01-12"
}
]
},
{
"EmployeeJobId": "63da4e01db78faa7f38988da",
"EffectiveDate": "2023-01-13",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": null,
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "SLRY",
"Rate": 24.0,
"EffectiveDate": "2023-01-13"
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2024-01-01",
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
},
{
"EffectiveDate": "2024-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e3"
]
},
{
"EffectiveDate": "2025-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": []
},
{
"EmployeeId": "63df82df32753797d3cfa2e0",
"Firstname": "Patrick",
"Lastname": "Doe",
"Middlename": null,
"Name": "Patrick Doe",
"Username": null,
"EmployeeCorporateCode": "908972",
"ExternalEmployeeId": "90",
"PrimarySiteId": "65fae456a881c84356c79d0a",
"Source": "TestSource",
"LastUpdateDate": "2024-07-01T11:01:15.910",
"IsActive": true,
"EmployeeJobs": [
{
"EmployeeJobId": "66828c6d89635e4fb9898023",
"EffectiveDate": "2024-05-27",
"JobCodeId": "656f79c4e9af7b2ebedb3f72",
"ExternalJobCodeId": "9012fn",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 100.0,
"EffectiveDate": "2024-05-27"
}
]
},
{
"EmployeeJobId": "6717a9bb9f3f963c2d6b8ec6",
"EffectiveDate": "2024-10-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": false,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "65fae456a881c84356c79d0a",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 7.25,
"EffectiveDate": "2024-10-01"
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2016-07-14",
"StatusCode": "ACTV",
"SiteIds": [
"63da4653b5c13514ecaeac0f",
"65fae456a881c84356c79d0a"
]
}
],
"PosCredentials": [
{
"EmployeePOSCode": "16982",
"Password":
"mz+nM5eTpdQVj/+uFeHkkF+Qw1gIfbI+Kiyf1wrWVDbJUe++qPIxSrL7urj8XbYW",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}
],
"TotalCount": 2
}An example of a fully successful request where the selectNested parameter was not received.
{
"Data": [
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "John",
"Lastname": "Doe",
"Middlename": null,
"Name": "John Doe",
"Username": null,
"EmployeeCorporateCode": "908972",
"ExternalEmployeeId": "90",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253Z",
"IsActive": true
},
{
"EmployeeId": "63df82df32753797d3cfa2e0",
"Firstname": "Patrick",
"Lastname": "Doe",
"Middlename": null,
"Name": "Patrick Doe",
"Username": null,
"EmployeeCorporateCode": "908972",
"ExternalEmployeeId": "90",
"PrimarySiteId": "65fae456a881c84356c79d0a",
"Source": "TestSource",
"LastUpdateDate": "2024-07-01T11:01:15.910Z",
"IsActive": true
}
],
"TotalCount": 2
}GET /External/General/Employee/GetUpdates
Summary
This endpoint returns information about all active and deleted employees associated with the requested company and, if specified, sites. Employees are retrieved based on their last update time, returning all records updated since the provided timestamp. The response includes complete employee information and, if requested, additional details such as addresses, site statuses, and other related data.
This endpoint is particularly useful as it eliminates the need to run scheduled processes for importing all employees. Instead, it allows creating a scheduled process that tracks only the changes made since the last run: only employees updated since the provided timestamp are returned in the response.
Request Parameters
In | Field Name | Type | Required | Description |
|---|---|---|---|---|
header |
| string | Yes |
|
header |
| string | Yes | The integrator token created previously |
header |
| string | Yes | The 24-character hexadecimal unique identifier (UID) for the company provided by Genius |
header |
| array of strings, separated by commas | No | The UID for the site(s) provided by Genius. Multiple site IDs can be provided, separated by commas. For example, 60ace72bacb1540007d34698,60ace72bacb1540007d34697.b If the parameter is provided without a value, it is treated as not provided. In this case, all employees within the specified company that match the query parameters will be returned. NoteThis parameter is useful to retrieve updates related only to employees associated with the requested sites. |
query |
| array of strings | No | This parameter specifies which child entities should be included in the response. It can be used to exclude unnecessary data that is not required by integrators. If this parameter is not received, it is ignored. In this case employees are returned without described below child arrays and objects, only general employee data. If non-existent, or non-supported by this endpoint, employee child entities are requested by this parameter, they are ignored and not returned in response. If received, this parameter cannot be |
query |
| string (UTC date/time with ms) | Yes | This parameter is used to retrieve only those employees that were updated in the database after the specified date/time such as since the last data pull. The comparison is performed across all employee-related entities. If at least one related entity has been created, updated, or deleted, the employee is included in the response, even if the employee record itself remains unchanged. NoteOnly one date is allowed at a time.
|
query |
| string (UTC date/time with ms) | No | This parameter is used to retrieve only those employees that were updated in the database up to the specified date/time. NoteOnly one date is allowed at a time. If received, this parameter cannot be null, empty, or ““. The received value should always be greater than |
Sample Request Body
curl --location --request GET 'https://qa-backoffice-api.xenial.com/External/General /Employee/GetUpdates?UpdateDateFrom=2023-08-08T23:50:00.000Z' \ --header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsI' \ --header 'Content-Type: application/json' \ --header 'x-company-id: 61fd95804798c50009e08656'
Responses
For this response:
For deleted employees,
IsActive: falsechild arrays and objects are not returned.For active employees child arrays contain active, non-deleted data only.
The response size is limited. No more than 100 employees can be returned at a time. For pagination needs, the
NextUpdateDateFromfield can be used in order not to miss data.To request another 100 batch, a value received in the response in the
NextUpdateDateFromfield in the first request should be sent in theUpdateDateFromquery parameter in the next request. This approach should be repeated until the Data array is returned empty - this is a marker that all updates have already been provided.If for any reason 100th element in response contains the same
LastUpdateDatevalue in the database as the 101th, all employees with thisLastUpdateDatevalue will not be returned in the response of the first request in order not to lose them and allow time to return them in the next request with theNextUpdateDateFromvalue returned in response to the first request.If no employees were found based on the received time values, the
NextUpdateDateFromfield will contain the same timestamp as the one sent in the request in theUpdateDateFromparameter.
If the
X-SITE-IDsheader is received, the response includes all non-deleted employees found based on the received search filters:Have active, non-deleted
is_active = trueSite Status records with thesite_idequals those received in this header.Or do not have active, non-deleted,
is_active = trueSite Status records with thesite_idequals those received in this header but whosePrimarySiteIdequals those received in this header.
The records in the response are sorted by the
LastUpdateDateascending (ASC) field.
Code | Description | Schema |
|---|---|---|
200 | Message: Success. Where:
If no employees were found according to the received query parameters:
For example: {
"Data": [],
"NextUpdateDateFrom":
"2023-08-08T23:50:00.000Z"
}
| |
400 | Appears when:
Message: Bad Request | |
401 | The token is absent or incorrect. Message: Unauthorized | |
403 | Appears when the received token has not enough permissions to perform this action or the data in the token and headers does not match. Message: Forbidden | |
500 | An error was received during the processing. Message: Internal Server Error |
An example of a fully successful request where deleted and non-deleted employees with all child arrays and objects were received in the selectNested query parameter.
{
"Data": [
{
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "John",
"Lastname": "Doe",
"Middlename": null,
"Name": "John Doe",
"Username": null,
"EmployeeCorporateCode": "908972",
"ExternalEmployeeId": "90",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2023-02-01T11:18:34.253Z",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": null,
"EthnicityCode": null,
"Nickname": null,
"BirthDate": null,
"Gender": null,
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [
{
"PhoneNumber": "+2-312-312-3123",
"PhoneTypeCode": "HOME"
}
],
"EmployeeAddresses": [
{
"AddressTypeCode": "HOME",
"Address1": "Address 1",
"Address2": "",
"Address3": "",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US"
}
],
"EmployeeContacts": [
{
"ContactCode": "johndoe",
"Firstname": "John",
"Lastname": "Doe",
"Middlename": "",
"Address1": "Address1",
"Address2": "",
"Address3": "",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US",
"Phone1": "+0-232-123-1231",
"Phone2": ""
}
],
"EmployeeEmails": [
{
"Email": "jd@jd.com",
"EmailTypeCode": "PRSNL"
}
],
"EmployeeJobs": [
{
"EmployeeJobId": "63da4ba2614bb6862d37a761",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "HOUR",
"Rate": 15.56,
"EffectiveDate": "2023-01-01"
},
{
"CompensationTypeCode": "HOUR",
"Rate": 18.00,
"EffectiveDate": "2023-01-12"
}
]
},
{
"EmployeeJobId": "63da4e01db78faa7f38988da",
"EffectiveDate": "2023-01-13",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": null,
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"EmployeeJobPays": [
{
"CompensationTypeCode": "SLRY",
"Rate": 24.0,
"EffectiveDate": "2023-01-13"
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2024-01-01",
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
},
{
"EffectiveDate": "2024-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e3"
]
},
{
"EffectiveDate": "2025-01-01",
"StatusCode": "IACTV",
"SiteIds": [
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": []
},
{
"EmployeeId": "63df82df32753797d3cfa2e0",
"Firstname": "Patrick",
"Lastname": "Doe",
"Middlename": null,
"Name": "Patrick Doe",
"Username": null,
"EmployeeCorporateCode": "8796277",
"ExternalEmployeeId": null,
"PrimarySiteId": "65fae456a881c84356c79d0a",
"Source": "TestSource",
"LastUpdateDate": "2024-07-01T11:01:15.910Z",
"IsActive": false
},
{
"EmployeeId": "63df976132753797d3cfa2e7",
"Firstname": "Mark",
"Lastname": "Doe",
"Middlename": "Jr",
"Name": "Mark Doe",
"Username": "mark@mark.mark",
"EmployeeCorporateCode": "8796280",
"ExternalEmployeeId": "908012",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "Back office System 2",
"LastUpdateDate": "2025-04-10T09:50:55.993Z",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": "900292",
"EthnicityCode": null,
"Nickname": "mark",
"BirthDate": "2025-10-01",
"Gender": "M",
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [],
"EmployeeAddresses": [],
"EmployeeContacts": [],
"EmployeeEmails": [],
"EmployeeJobs": [],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2016-07-14",
"StatusCode": "ACTV",
"SiteIds": [
"63da4653b5c13514ecaeac0f",
"65fae456a881c84356c79d0a"
]
}
],
"PosCredentials": [
{
"EmployeePOSCode": "68096",
"Password":
"DbFof1aDd4KgmPEFQ7fWzJFks9c/RZlB8rR4o7PTUBacahdBcEw1X48htzeOz2mL",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}
],
"NextUpdateDateFrom": "2025-04-10T09:50:55.993Z"
}Data Models
PostExternalGeneralEmployeeRequestBody
For this request:
Parameters cannot be received without a value.
All required string fields from the table below cannot be received as
““,null.If any of the optional array fields from the table below are received, these arrays must contain only valid objects with the required child fields inside.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee's first name |
| string | Yes | The employee's last name or surname |
| string | No | The employee’s middle name or patronymic, if applicable |
| string | No | The employee’s primary email. Using this email, the employee's link to the portal user is performed. NoteSeveral non-deleted employees with the same value in this field within the same company are not allowed. |
| string | No | The unique readable identifier assigned to the employee. Used for internal identification within the company. Letters and numbers are allowed in this field. Multiple employees cannot share the same value in this field. Uniqueness is enforced at two possible levels (the applicable uniqueness level is defined individually for each client):
If omitted in the request or received as |
| string | Yes | The unique identifier (UID) of the employee from external system. No restrictions are applied to the value format. NoteIt is recommended to use unique values for each employee across the entire company. |
| string/HEX24 | Yes | The UID of the location at which the employee performs most of their work. It is a Genius generated value that can be found in Genius Portal - Sites section. NoteThe received site ID should belong to the non-deleted site that belongs to the company, received in the |
| string | No | This information is used to determine where the employee record was imported from. No restrictions are applied to the value format. |
| No | A list of additional details about an employee that could be useful or important for any need | |
| No | This array stores one or more phone numbers associated with the employee. Each item includes the actual phone number and its type, such as mobile, work, and home. | |
| No | This array contains one or more postal addresses associated with the employee. Each item includes the full address details and the address type, such as home and work. | |
| No | This array contains one or more emergency contacts for the employee. Each item includes personal details and contact information. | |
| No | This array stores one or more email addresses associated with the employee. Each item includes the actual email address and its type, such as work and home. | |
| No | This array tracks the employee’s status at one or more sites. Each item reflects the employee’s actual activity status starting from the specified date. | |
| No | This array contains login credentials and the assigned role for an employee to access the Genius POS system. Although this field is an array, only a single set of credentials can exist per employee. If multiple records are provided, only the first one will be processed. |
AdditionalDetails Object
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The employee’s tax identification number. NoteIf this value is received, it should be unique within a company. |
| string | No | The unique number assigned to the employee’s access badge. NoteIf this value is received, it should be unique within a company. |
| string | No | The code representing the employee’s ethnicity, configured in Data Management - Ethnicities section. All available codes could be found using the GET /Lookup/Ethnicity endpoint. The |
| string | No | The employee’s preferred informal name |
| string/date | No | The employee’s date of birth. NoteIf this field is received, it should be provided in the YYYY-MM-DD format only. |
| string | No | The employee’s gender. NoteIf this field is received, its supported values are:
|
| boolean | No | A flag that indicates whether the employee has a disability |
| boolean | No | A flag that indicates whether the employee is eligible for rehire by the company after the termination of their previous employment |
| boolean | No | A flag that indicates whether the employee has served in the military |
| boolean | No | A flag that indicates whether the employee is legally considered a minor based on their age |
EmployeePhones Array
All required fields listed in the table below cannot be sent as empty ("") or null when this array is included in the request.
Field Name | Type | Required | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| string | Yes | The employee's phone number | ||||||||||
| string | Yes | The phone type code for the employee's phone number. Supported values:
NoteSeveral phone records with the same |
EmployeeAddresses Array
All required fields listed in the table below cannot be sent as empty ("") or null when this array is included in the request.
Field Name | Type | Required | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| string | Yes | The address type code for the employee's address. Supported values:
| ||||||
| string | Yes | The primary line of the employee’s address, such as street and number | ||||||
| string | No | The secondary line of the employee’s address, such as apartment, suite, or unit | ||||||
| string | No | An additional line for the employee’s address, such as building, or complex | ||||||
| string | No | The employee's city name | ||||||
| string | No | The code representing the state, province, or region of the employee’s address. The list of all configured states, including their names and codes, can be retrieved using the GET /Lookup/State endpoint. The | ||||||
| string | No | The employee's postal code | ||||||
| string | Yes | The code representing the country of the employee’s address. The list of all configured countries, including their names and codes, can always be retrieved using the GET /Lookup/Country endpoint. The |
EmployeeContacts Array
All required fields listed in the table below cannot be sent as empty ("") or null when this array is included in the request.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The first name of the employee's emergency contact. NoteSeveral contact records with the same combination of lowercase concatenation of the contact’s |
| string | Yes | The last name of the employee’s emergency contact. NoteSeveral contact records with the same combination of lowercase concatenation of the contact’s |
| string | No | The middle name of the employee’s emergency contact |
| string | No | The primary line of the employee contact’s address |
| string | No | The secondary line of the employee contact’s address |
| string | No | An additional line of the employee contact’s address |
| string | No | The city name of the employee contact's address |
| string | No | The code representing the state, province, or region of the employee contact’s address. The list of all configured states, including their names and codes, can be retrieved using the GET /Lookup/State endpoint. The |
| string | No | The postal code of the employee contact's address |
| string | No | The code representing the country of the employee contact’s address. The list of all configured countries, including their names and codes, can always be retrieved using the GET /Lookup/Country endpoint. The |
| string | No | The primary phone number of the employee’s emergency contact |
| string | No | The secondary phone number of the employee’s emergency contact |
EmployeeEmails Array
All required fields listed in the table below cannot be sent as empty ("") or null when this array is included in the request.
Field Name | Type | Required | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| string | Yes | The employee's email address | ||||||
| string | Yes | The email type code for the employee's email address. Supported values:
|
EmployeeSiteStatuses Array
This array must contain a list of sites where the employee should have a corresponding status code starting from the specified effective date. Each object in the array represents one employee status and its related list of site identifiers (IDs).
All required fields listed in the table below cannot be sent as empty (
"") ornullwhen this array is included in the request.If for any reason several records are received in this array in the request with the same
StatusCodeANDEffectiveDate, only the first record is processed. Other records are ignored.If for any reason several records are received in this array in the request with the same
StatusCodebut differentEffectiveDate, only the earliest record is processed. Other records are ignored.
Field Name | Type | Required | Description |
|---|---|---|---|
| string/date | Yes | The date when the site status becomes effective. NoteThe received values should be in the YYYY-MM-DD format. |
| string | Yes | The code representing the employee’s status at a site. The list of all configured statuses, including their names and codes, can always be retrieved using the GET /Lookup/EmployeeStatus endpoint. The |
| array of strings [HEX24, …, HEX24] | Yes | A list of site IDs to which this status applies since the All site IDs should belong to the non-deleted sites that belong to the company, which are received in the |
PosCredentials Array
All required fields listed in the table below cannot be sent as empty ("") or null when this array is included in the request.
If for any reason several records are received in this array in the request, only the first record is processed. Other records are ignored.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee’s log in value, or user identifier (ID), on the point of sale (POS). Multiple employees cannot share the same value in this field. The applicable uniqueness level is defined individually for each client. Uniqueness is enforced at two possible levels:
|
| string | Yes | A non-hashed value should be sent here |
| string/HEX24 | Yes | The user's role ID. The received value should have a 24 character hexadecimal string format. A list of all available roles in Genius Portal can be received using the GET /auth/getCompanyRoles endpoint, The |
PostExternalGeneralEmployeeResponseBody
Each child array is returned with all its fields described in the table below if at least one active, non-deleted child record was created successfully for the employee. For example, at least one non-deleted phone record exists in the database for the EmployeePhones array. Otherwise, the corresponding arrays are returned as empty ([]).
Field Name | Type | Required | Description |
|---|---|---|---|
| string/HEX24 | Yes | The 24 character hexadecimal string uniquely identifying the employee in the Staff database |
| string | Yes | The employee's first name |
| string | Yes | The employee's last name or surname |
| string | Yes | The employee’s middle name or patronymic, if applicable |
| string | Yes | The concatenated value of |
| string | Yes | The employee’s primary email. |
| string | Yes | The unique readable identifier assigned to the employee. Used for internal identification within the company. |
| string | Yes | The unique identifier (UID) of the employee from external system. Used to link or synchronize employee data across systems. |
| string/HEX24 | Yes | The Genius Portal ID of the employee’s main work site |
| string | Yes | Indicates the origin of the employee record |
| string/datetime UTC | Yes | The Coordinated Universal Time (UTC) timestamp when this employee record was last time updated in the database in the YYYY-MM-DDTHH:MM:SS.SSSZ format |
| boolean | Yes | A flag indicating whether the employee is deleted. For this endpoint, the value is always |
| No | An optional field for extra information about the employee, such as birth date or tax identifier. | |
| No | A list of the employee’s phone numbers | |
| No | A list of the employee’s addresses | |
| No | A list of the employee’s emergency contacts | |
| No | A list of the employee’s emails | |
| No | A list of the employee’s statuses at different sites, such as active, inactive, or on leave. Used to track availability and work location assignments. | |
| No | The employee’s access details for the point of sale (POS) system |
Sample of the General Structure
{
"Errors": [
{
"Reason": string,
"Message": string
}
],
"ProcessedData": {
"EmployeeId": string,
"Firstname": string,
"Lastname": string,
"Middlename": string,
"Name": string,
"Username": string,
"EmployeeCorporateCode": string,
"ExternalEmployeeId": string,
"PrimarySiteId": string,
"Source": string,
"LastUpdateDate": string,
"IsActive": boolean,
"AdditionalDetails": {
"TaxIdentifier": string,
"BadgeNumber": string,
"EthnicityCode": string,
"Nickname": string,
"BirthDate": string,
"Gender": string,
"IsHandicapped": boolean,
"IsRehireable": boolean,
"IsVeteran": boolean,
"IsMinor": boolean,
},
"EmployeePhones": [
{
"PhoneNumber": string,
"PhoneTypeCode": string,
}
],
"EmployeeAddresses": [
{
"AddressTypeCode": string,
"Address1": string,
"Address2": string,
"Address3": string,
"City": string,
"StateCode": string,
"PostalCode": string,
"CountryCode": string,
}
],
"EmployeeContacts": [
{
"ContactCode": string,
"Firstname": string,
"Lastname": string,
"Middlename": string,
"Address1": string,
"Address2": string,
"Address3": string,
"City": string,
"StateCode": string,
"PostalCode": string,
"CountryCode": string,
"Phone1": string,
"Phone2": string,
}
],
"EmployeeEmails": [
{
"Email": string,
"EmailTypeCode": string,
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": string,
"StatusCode": string,
"SiteIds": []// array of strings
}
],
"PosCredentials": [
{
"EmployeePosCode": string,
"Password": string,
"RoleId": string
}
]
}
}Sample of a Successful Request
{
"Errors": [],
"ProcessedData": {
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "Jack",
"Lastname": "Doe",
"Middlename": null,
"Name": "Jack Doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": "80",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2025-05-01T11:18:34.253",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": null,
"EthnicityCode": null,
"Nickname": null,
"BirthDate": null,
"Gender": null,
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [
{
"PhoneNumber": "+2-312-312-3123",
"PhoneTypeCode": "HOME"
}
],
"EmployeeAddresses": [
{
"AddressTypeCode": "HOME",
"Address1": "Address 1",
"Address2": null,
"Address3": null,
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US"
}
],
"EmployeeContacts": [
{
"ContactCode": "jennydoe",
"Firstname": "Jenny",
"Lastname": "Doe",
"Middlename": null,
"Address1": "Address1",
"Address2": null,
"Address3": null,
"City": null,
"StateCode": null,
"PostalCode": null,
"CountryCode": "US",
"Phone1": "+0-232-123-1231",
"Phone2": null
}
],
"EmployeeEmails": [
{
"Email": "836@com.com",
"EmailTypeCode": "PRSNL"
},
{
"Email": "837@com.com",
"EmailTypeCode": "WORK"
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2025-07-01",
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3cfa2e1",
"63df82df32753797d3cfa2e2",
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": [
{
"EmployeePosCode": "12",
"Password":
"1nxYRTFQ50JnHT3qJOM9G9LJaGpnkfO8dmKNAJ4D+Rw4Lgio8E13H3MV/KjNmgcZ",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}
}Sample of a Successful Request but with Errors in the Child Arrays
curl --location --request POST 'https://qa-backoffice-api.xenial.com
/External/General/Employee' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \
--header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \
--data-raw '{
"Firstname": "Jack",
"Lastname": "Doe",
"Middlename": null,
"Name": "Jack Doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": "80",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"EmployeePhones": [
{
"PhoneNumber": "+2-312-322-3123",
"PhoneTypeCode": "HOME"
},
{
"PhoneNumber": null,
"PhoneTypeCode": "PERSON"
}
],
"EmployeeAddresses": [
{
"AddressTypeCode": "HOME",
"Address1": "Address 1",
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US"
}
],
"EmployeeContacts": [
{
"Firstname": "Jenny",
"Lastname": "Doe",
"CountryCode": "US",
"Phone1": "+0-232-123-1231"
}
],
"EmployeeEmails": [
{
"Email": "836@com.com",
"EmailTypeCode": "PRSNL"
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2025-07-01",
"StatusCode": "ACTV",
"SiteIds": [
"63df82df32753797d3",
"63df82df327537",
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": [
{
"EmployeePosCode": "12",
"Password": "12",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}'Sample of a Response with Errors in Child Arrays
{
"Errors": [
{
"Reason": "InvalidPhoneData.1",
"Message": "No PhoneType records were found for the
provided code PERSON. Please check and try again."
},
{
"Reason": "InvalidSiteStatusData.0",
"Message": "Invalid input data passed to endpoint:
SiteIds: Unsupported format is received. Supported formats:
24 digit hexadecimal strings separated by commas"
}
],
"ProcessedData": {
"EmployeeId": "63da49d6db78faa7f38988d3",
"Firstname": "Jack",
"Lastname": "Doe",
"Middlename": null,
"Name": "Jack Doe",
"Username": null,
"EmployeeCorporateCode": "8796276",
"ExternalEmployeeId": "80",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"Source": "TestSource",
"LastUpdateDate": "2025-05-01T11:18:34.253",
"IsActive": true,
"AdditionalDetails": {
"TaxIdentifier": null,
"BadgeNumber": null,
"EthnicityCode": null,
"Nickname": null,
"BirthDate": null,
"Gender": null,
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"IsMinor": false
},
"EmployeePhones": [],
"EmployeeAddresses": [
{
"AddressTypeCode": "HOME",
"Address1": "Address 1",
"Address2": null,
"Address3": null,
"City": "Pittsburgh",
"StateCode": "PA",
"PostalCode": "15106",
"CountryCode": "US"
}
],
"EmployeeContacts": [
{
"ContactCode": "jennydoe",
"Firstname": "Jenny",
"Lastname": "Doe",
"Middlename": null,
"Address1": "Address1",
"Address2": null,
"Address3": null,
"City": null,
"StateCode": null,
"PostalCode": null,
"CountryCode": "US",
"Phone1": "+0-232-123-1231",
"Phone2": null
}
],
"EmployeeEmails": [
{
"Email": "836@com.com",
"EmailTypeCode": "PRSNL"
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2025-07-01",
"StatusCode": "ACTV",
"SiteIds": [
"63da4653b5c13514ecaeac0f"
]
}
],
"PosCredentials": [
{
"EmployeePosCode": "12",
"Password":
"1nxYRTFQ50JnHT3qJOM9G9LJaGpnkfO8dmKNAJ4D+Rw4Lgio8E13H3MV/KjNmgcZ",
"RoleId": "63da469cb5c13514ecaeac10"
}
]
}
}AdditionalDetails Object Response
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The employee’s tax identification number. |
| string | No | The unique number assigned to the employee’s access badge. |
| string | No | The code representing the employee’s ethnicity |
| string | No | The employee’s preferred informal name |
| string/date | No | The employee’s date of birth in the YYYY-MM-DD format |
| string | No | The employee’s gender. |
| boolean | No | A flag that indicates whether the employee has a disability |
| boolean | No | A flag that indicates whether the employee is eligible for rehire by the company after the termination of their previous employment |
| boolean | No | A flag that indicates whether the employee has served in the military |
| boolean | No | A flag that indicates whether the employee is legally considered a minor based on their age |
EmployeePhones Array Response
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The employee's phone number |
| string | No | The phone type code for the employee's phone number |
EmployeeAddresses Array Response
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The address type code for the employee's address. Supported values: |
| string | No | The primary line of the employee’s address, such as street and number |
| string | No | The secondary line of the employee’s address, such as apartment, suite, or unit |
| string | No | An additional line for the employee’s address, such as building, or complex |
| string | No | The employee's city name |
| string | No | The code representing the state, province, or region of the employee’s address |
| string | No | The employee's postal code |
| string | No | The code representing the country of the employee’s address |
EmployeeContacts Array Response
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The first name of the employee's emergency contact |
| string | No | The last name of the employee’s emergency contact |
| string | No | The middle name of the employee’s emergency contact |
| string | No | The primary line of the employee contact’s address |
| string | No | The secondary line of the employee contact’s address |
| string | No | An additional line of the employee contact’s address |
| string | No | The city name of the employee contact's address |
| string | No | The code representing the state, province, or region of the employee contact’s address |
| string | No | The postal code of the employee contact's address |
| string | No | The code representing the country of the employee contact’s address |
| string | No | The primary phone number of the employee’s emergency contact |
| string | No | The secondary phone number of the employee’s emergency contact |
EmployeeEmails Array Response
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The employee's email address |
| string | No | The email type code for the employee's email address |
EmployeeSiteStatuses Array Response
Field Name | Type | Required | Description |
|---|---|---|---|
| string/date | No | The date when the site status becomes effective in the YYYY-MM-DD format |
| string | No | The code representing the employee’s status at a site |
| array of strings [HEX24, …, HEX24] | No | A list of site IDs to which this status applies since the |
PosCredentials Array Response
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The employee’s log in value, or user identifier (ID), on the point of sale (POS) |
| string | No | The password for the employee’s POS account, returned as hash |
| string/HEX24 | No | The Genius Portal unique identifier (UID) for the role assigned to the employee. A role defines a set of functions available to the employee during their work with POS |
PostExternalGeneralEmployeeIDJobsRequestBody
For this request:
Parameters cannot be received without a value.
All non-arrays fields from the table below cannot be received as
““,null, except in the cases described in the table below.All array fields from the table below cannot be received as
null,[], or“", and these arrays must contain only valid objects with the required child fields inside.Invalid jobs do not block valid records from creation.
Field Name | Type | Required | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| string/HEX24 | Yes* | The Data Management Send a GET request to the /Staff/JobCode endpoint to retrieve a list of available Job Code records from Data Management. *This parameter is required if the The If received, the value should have a 24 character hexadecimal string format. Several active, non-deleted jobs with the same combination of | ||||||
| string | Yes* | The Data Management *This parameter is required if the The Several active, non-deleted jobs with the same combination of | ||||||
| boolean | Yes | A flag that indicates whether this job is the employee’s primary position. Several job records with the | ||||||
| string | Yes | The code indicating the type of compensation applied for this job.
NoteHaving job pay records with different Compensation Type Codes for the same job record is not allowed. | ||||||
| array of strings [HEX24, ..., HEX24] | Yes | The Genius Portal unique identifier (UID) of the sites where the job is assigned. For every valid site from this array, a single job record is created with the corresponding job pay records received. Received values should have a 24 character hexadecimal string format and only comma separator can be used. Creating employee jobs for sites where their parent employees do not have non-deleted Site Status records, regardless of the status itself, is not allowed. WarningEven if the array contains site records that pass validation individually, no job records will be created unless all received site IDs pass the validation successfully. The job creation process is initiated only after full validation of the entire array. | ||||||
| Yes | A list of pay details associated with this job position, such as salary or hourly rate |
EmployeeJobPays Array
For this array:
Parameters cannot be received without a value,
“", ornull.Errors in one job pay record block other job pay records AND the whole job record from processing.
Field Name | Type | Required | Description |
|---|---|---|---|
| string/date | Yes | The date when this compensation rate becomes effective in YYYY-MM-DD format. NoteSeveral job pay records with the same |
| number/decimal (2) | Yes | The amount or rate of pay associated with the compensation type. NoteNegative values are not allowed. |
PostExternalGeneralEmployeeIDJobsResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string/HEX24 | Yes | The 24 character hexadecimal string uniquely identifying the employee job in the Staff database. Used for further updates, if required. |
| string/date | Yes | The date when the job assignment at the specified site becomes effective. It correlates with the Business Date on point of sale (POS) in the YYYY-MM-DD format. The earliest Effective Date from the list of provided Job Pay records. |
| string/HEX24 | Yes | The 24 character hexadecimal string uniquely identifying the job position, configured in Data Management. The field received in the request or identified based on the provided |
| string | Yes | The unique identifier (UID) of the job position, used for integration and data synchronization. The field received in the request or identified based on the provided |
| boolean | Yes | A flag that indicates whether this job is the employee’s primary position |
| boolean | Yes | The value is always A flag that indicates whether the job position is no longer available for an employee. |
| string/date | Yes | The date when the job position was deactivated in YYYY-MM-DD format. The value is always |
| string/HEX24 | Yes | The Genius Portal UID of the site where the job is assigned |
| string/datetime UTC | Yes | The Coordinated Universal Time (UTC) timestamp when this employee job record was created in the database in YYYY-MM-DDTHH:MM:SS.SSSZ format |
| boolean | Yes | A flag that indicates whether a job record is deleted. The value is always |
| Yes | A list of pay details associated with this job position, such as salary or hourly rate |
Sample of General Structure
{
"Errors": [
{
"Reason": string,
"Message": string
}
],
"ProcessedData": [
{
"EmployeeJobId": string,
"EffectiveDate": string,
"JobCodeId": string,
"ExternalJobCodeId": string,
"IsPrimaryJob": boolean,
"Deactivated": boolean,
"DeactivationDate": string,
"SiteId": string,
"LastUpdateDate": string,
"IsActive": boolean,
"EmployeeJobPays": [
{
"CompensationTypeCode": string,
"EffectiveDate": string,
"Rate": decimal
}
]
}
]
}Sample of Fully Successful Request
{
"Errors": [],
"ProcessedData": [
{
"EmployeeJobId": "63da4ba2614bb6862d37a761",
"EffectiveDate": "2024-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"LastUpdateDate": "2025-05-01T11:18:34.253",
"IsActive": true,
"EmployeeJobPays": [
{
"EffectiveDate": "2025-01-01",
"CompensationTypeCode": "HOUR",
"Rate": 15.56
},
{
"EffectiveDate": "2024-01-01",
"CompensationTypeCode": "HOUR",
"Rate": 14
}
]
},
{
"EmployeeJobId": "63da4ba2614bb6862d37a762",
"EffectiveDate": "2024-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "65fae456a881c84356c79d0a",
"LastUpdateDate": "2025-05-01T11:18:34.253",
"IsActive": true,
"EmployeeJobPays": [
{
"EffectiveDate": "2025-01-01",
"CompensationTypeCode": "HOUR",
"Rate": 15.56
},
{
"EffectiveDate": "2024-01-01",
"CompensationTypeCode": "HOUR",
"Rate": 14
}
]
},
{
"EmployeeJobId": "63da4ba2614bb6862d37a763",
"EffectiveDate": "2024-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "64c228f421a5403fe5773bbf",
"LastUpdateDate": "2025-05-01T11:18:34.253",
"IsActive": true,
"EmployeeJobPays": [
{
"EffectiveDate": "2025-01-01",
"CompensationTypeCode": "HOUR",
"Rate": 15.56
},
{
"EffectiveDate": "2024-01-01",
"CompensationTypeCode": "HOUR",
"Rate": 14
}
]
},
{
"EmployeeJobId": "63da4ba2614bb6862d37a764",
"EffectiveDate": "2024-01-01",
"JobCodeId": "58e63c06fbf17de5ced22064",
"ExternalJobCodeId": "80801",
"IsPrimaryJob": true,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "67eb8df9f6ebe838aec61fd6",
"LastUpdateDate": "2025-05-01T11:18:34.253",
"IsActive": true,
"EmployeeJobPays": [
{
"EffectiveDate": "2025-01-01",
"CompensationTypeCode": "HOUR",
"Rate": 15.56
},
{
"EffectiveDate": "2024-01-01",
"CompensationTypeCode": "HOUR",
"Rate": 14
}
]
},
{
"EmployeeJobId": "63da4ba2614bb6862d37a765",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": "9087",
"IsPrimaryJob": false,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"LastUpdateDate": "2025-05-01T11:18:34.253",
"IsActive": true,
"EmployeeJobPays": [
{
"EffectiveDate": "2026-01-01",
"CompensationTypeCode": "SLRY",
"Rate": 20000
}
]
},
{
"EmployeeJobId": "63da4ba2614bb6862d37a766",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": "9087",
"IsPrimaryJob": false,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "65fae456a881c84356c79d0a",
"LastUpdateDate": "2025-05-01T11:18:34.253",
"IsActive": true,
"EmployeeJobPays": [
{
"EffectiveDate": "2026-01-01",
"CompensationTypeCode": "SLRY",
"Rate": 20000
}
]
}
]
}Sample of a Successful Request but with Errors in Child Arrays
curl --location --request POST 'https://qa-backoffice-api.xenial.com/
/External/General/Employee/62fa6c4e66507a2370954f50/Jobs' \
--header 'Authorization: Bearer
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6InhwcnQifQ...' \
--header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \
--header 'Content-Type: application/json' \
--data '[
{
"JobCodeId": "58e63c06fbf17de5ced22064",
"IsPrimaryJob": true,
"SiteIds": ["63da4653b5c","65fae456a881c84356c79d0a",
"64c228f421a54","67eb8df9f6ebe838aec61fd7"],
"EmployeeJobPays": [
{
"EffectiveDate": "2025-01-01",
"CompensationTypeCode": "HOURLY",
"Rate": 15.56
},
{
"EffectiveDate": "2024-01-01",
"CompensationTypeCode": "HOUR",
"Rate": 14
}
]
},
{
"ExternalJobCodeId": "9087",
"IsPrimaryJob": false,
"SiteIds": ["63da4653b5c13514ecaeac0f"],
"EmployeeJobPays": [
{
"EffectiveDate": "2023-01-01",
"CompensationTypeCode": "SLRY",
"Rate": 20000
},
{
"EffectiveDate": "2026-01-01",
"CompensationTypeCode": "SLRY",
"Rate": 20000
}
]
},
{
"ExternalJobCodeId": "9089",
"IsPrimaryJob": false,
"SiteIds": ["63da4653b5c13514ecaeac0f"],
"EmployeeJobPays": [
{
"EffectiveDate": "2023-01-01",
"CompensationTypeCode": "SALARY",
"Rate": 20000
}
]
}
]'Sample of a Response with Errors in Child Arrays
{
"Errors": [
{
"Reason": "InvalidJobData.0",
"Message": "No active employee site status records found
for the following site(s):
67eb8df9f6ebe838aec61fd7,65fae456a881c84356c79d0a. A job cannot be
created for these site(s)."
},
{
"Reason": "InvalidJobData.2",
"Message": "No CompensationTypeCode records were found
for the provided code SALARY. Please check and try again."
}
],
"ProcessedData": [
{
"EmployeeJobId": "63da4ba2614bb6862d37a765",
"EffectiveDate": "2023-01-01",
"JobCodeId": "58e63c06fbf17de5ced22074",
"ExternalJobCodeId": "9087",
"IsPrimaryJob": false,
"Deactivated": false,
"DeactivationDate": null,
"SiteId": "63da4653b5c13514ecaeac0f",
"LastUpdateDate": "2025-05-01T12:18:34.253",
"IsActive": true,
"EmployeeJobPays": [
{
"EffectiveDate": "2023-01-01",
"CompensationTypeCode": "SLRY",
"Rate": 20000
},
{
"EffectiveDate": "2026-01-01",
"CompensationTypeCode": "SLRY",
"Rate": 20000
}
]
}
]
}EmployeeJobPays Array Response
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The code indicating the type of compensation applied for this job |
| string/date | No | The date when this compensation rate becomes effective in YYYY-MM-DD format |
| number/decimal (2) | No | The amount or rate of pay associated with the compensation type |
PatchExternalGeneralEmployeeIDRequestBody
For this request:
General validations:
Parameters cannot be received without a value.
For all
stringfields with the Nullable column listed as No: These parameters cannot be received asnullor““.For all
stringfields with the Nullable column listed as Yes: These parameters can be null, but cannot be received as““.For all
arrayfields: If received, these parameters cannot be[],““,ornull, and these arrays must contain only valid, not empty, objects with the required child fields inside.For
objectfields: These parameters cannot be received asnullor““.
Structure:
Only the fields and objects that need to be updated should be included in the request. There is no need to send the entire employee record.
This also applies when only child arrays require updates. In such cases, parent employee fields can be omitted, and only the necessary child entities should be sent.
Field Name | Type | Required | Nullable | Description |
|---|---|---|---|---|
| string | No | No | The employee's first name |
| string | No | No | The employee's last name or surname |
| string | No | Yes | The employee’s middle name or patronymic, if applicable |
| string | No | Yes | The employee’s primary email. Using this email, the employee's link to the portal user is performed. NoteSeveral non-deleted employees with the same value in this field within the same company are not allowed. |
| string | No | No | The unique readable identifier assigned to the employee. Used for internal identification within the company. Letters and numbers are allowed in this field. Multiple employees cannot share the same value in this field. Uniqueness is enforced at two possible levels (the applicable uniqueness level is defined individually for each client):
|
| string | No | No | The unique identifier (UID) of the employee from external system. No restrictions are applied to the value format. NoteIt is recommended to use unique values for each employee across the entire company. |
| string/HEX24 | No | No | The UID of the location at which the employee performs most of their work. It is a Genius generated value that can be found in Genius Portal - Sites section. NoteThe received site ID should belong to the non-deleted site that belongs to the company, received in the |
| string | No | Yes | This information is used to determine where the employee record was imported from. No restrictions are applied to the value format. |
| No | No | A list of additional details about an employee that could be useful or important for any need | |
| No | No | This array stores one or more phone numbers associated with the employee. Each item includes the actual phone number and its type, such as mobile, work, and home. | |
| No | No | This array contains one or more postal addresses associated with the employee. Each item includes the full address details and the address type, such as home and work. | |
| No | No | This array contains one or more emergency contacts for the employee. Each item includes personal details and contact information. | |
| No | No | This array stores one or more email addresses associated with the employee. Each item includes the actual email address and its type, such as work and home. | |
| No | No | This array tracks the employee’s status at one or more sites. Each item reflects the employee’s actual activity status starting from the specified date. | |
| No | No | This array contains login credentials and the assigned role for an employee to access the Genius POS system. Although this field is an array, only a single set of credentials can exist per employee. If multiple records are provided, only the first one will be processed. |
AdditionalDetails Object - PATCH
Field Name | Type | Required | Nullable | Description |
|---|---|---|---|---|
| string | No | Yes | The employee’s tax identification number. NoteIf this value is received, it should be unique within a company. |
| string | No | Yes | The unique number assigned to the employee’s access badge. NoteIf this value is received, it should be unique within a company. |
| string | No | Yes | The code representing the employee’s ethnicity, configured in Data Management - Ethnicities section. All available codes could be found using the GET /Lookup/Ethnicity endpoint. The |
| string | No | Yes | The employee’s preferred informal name |
| string/date | No | Yes | The employee’s date of birth. NoteIf this field is received, it should be provided in the YYYY-MM-DD format only. |
| string | No | Yes | The employee’s gender. NoteIf this field is received, its supported values are:
|
| boolean | No | Yes | A flag that indicates whether the employee has a disability |
| boolean | No | Yes | A flag that indicates whether the employee is eligible for rehire by the company after the termination of their previous employment |
| boolean | No | Yes | A flag that indicates whether the employee has served in the military |
| boolean | No | Yes | A flag that indicates whether the employee is legally considered a minor based on their age |
EmployeePhones Array - PATCH
For this array:
All required fields listed in the table below cannot be sent as empty (
"") ornullwhen this array is included in the request.The provided
PhoneTypeCodevalue is used to determine whether the existing record should be updated by this request or a new one should be created.
Field Name | Type | Required | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| string | Yes | The employee's phone number | ||||||||||
| string | Yes | The phone type code for the employee's phone number. Supported values:
NoteSeveral phone records with the same |
EmployeeAddresses Array - PATCH
For this array:
All required fields listed in the table below cannot be sent as empty (
"") ornullwhen this array is included in the request.All optional fields can be received as
nullor““. In such cases, they overwrite the existing values with the received value.The provided
AddressTypeCodevalue is used to determine whether the existing record should be updated by this request or a new one should be created.
Field Name | Type | Required | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| string | Yes | The address type code for the employee's address. Supported values:
| ||||||
| string | Yes* | The primary line of the employee’s address, such as street and number. *This parameter can be omitted from the request only when a record with the same | ||||||
| string | No | The secondary line of the employee’s address, such as apartment, suite, or unit | ||||||
| string | No | An additional line for the employee’s address, such as building, or complex | ||||||
| string | No | The employee's city name | ||||||
| string | No | The code representing the state, province, or region of the employee’s address. The list of all configured states, including their names and codes, can be retrieved using the GET /Lookup/State endpoint. The | ||||||
| string | No | The employee's postal code | ||||||
| string | Yes* | The code representing the country of the employee’s address. The list of all configured countries, including their names and codes, can always be retrieved using the GET /Lookup/Country endpoint. The *This parameter can be omitted from the request only when a record with the same |
EmployeeContacts Array - PATCH
For this array:
All required fields listed in the table below cannot be sent as empty (
"") ornullwhen this array is included in the request.All optional fields can be received as
nullor““. In such cases, they overwrite the existing values with the received value.The provided
FirstnameandLastnamevalues are used to determine whether the existing record should be updated by this request or a new one should be created.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The first name of the employee's emergency contact. NoteSeveral contact records with the same combination of lowercase concatenation of the contact’s |
| string | Yes | The last name of the employee’s emergency contact. NoteSeveral contact records with the same combination of lowercase concatenation of the contact’s |
| string | No | The middle name of the employee’s emergency contact |
| string | No | The primary line of the employee contact’s address |
| string | No | The secondary line of the employee contact’s address |
| string | No | An additional line of the employee contact’s address |
| string | No | The city name of the employee contact's address |
| string | No | The code representing the state, province, or region of the employee contact’s address. The list of all configured states, including their names and codes, can be retrieved using the GET /Lookup/State endpoint. The |
| string | No | The postal code of the employee contact's address |
| string | No | The code representing the country of the employee contact’s address. The list of all configured countries, including their names and codes, can always be retrieved using the GET /Lookup/Country endpoint. The |
| string | No | The primary phone number of the employee’s emergency contact |
| string | No | The secondary phone number of the employee’s emergency contact |
EmployeeEmails Array - PATCH
For this array:
All required fields listed in the table below cannot be sent as empty (
"") ornullwhen this array is included in the request.The provided
EmailTypeCodevalue is used to determine whether the existing record should be updated by this request or a new one should be created.
Field Name | Type | Required | Description | ||||||
|---|---|---|---|---|---|---|---|---|---|
| string | Yes | The employee's email address | ||||||
| string | Yes | The email type code for the employee's email address. Supported values:
NoteSeveral email records with the same |
EmployeeSiteStatuses Array - PATCH
This array must contain a list of sites where the employee should have a corresponding status code starting from the specified effective date. Each object in the array represents one employee status and its related list of site identifiers (IDs).
All required fields listed in the table below cannot be sent as empty (
"") ornullwhen this array is included in the request.If for any reason several records are received in this array in the request with the same
StatusCodeANDEffectiveDate, only the first record is processed. Other records are ignored.If for any reason several records are received in this array in the request with the same
StatusCodebut differentEffectiveDate, only the earliest record is processed. Other records are ignored.
Processing notes to better understand the result of the request:
If the employee has no non-deleted site statuses for the received site(s): New site status records for this employee and the specified sites are created using the Status and Effective Date provided in the request.
If the employee has at least one non-deleted site status record for the received site(s):
If the existing status record with the maximum effective date less than the one received in the request in the
EffectiveDateparameter has the same Status value, no site status records are created or updated.If the existing status record with the maximum effective date equal to the one received in the request in the
EffectiveDateparameter:If the existing Status value equals the one received in the request, no site status records are created or updated.
If the existing Status value is not equal to the one received in the request, the existing record is updated with a new status.
Otherwise, new site status records for this employee and the specified sites are created using the Status and Effective Date provided in the request.
Additionally, after processing all received site status records, the chronological sequence of statuses is validated to ensure that no consecutive records have the same Status value. For this purpose:
All non-deleted site status records, aggregated by site, are sorted by
EffectiveDate.If, within the sorted list for a site, an employee has two or more site status records with the same Status value:
The record with the earliest
EffectiveDateis kept.All other records with the same Status value, up until the next record that has a different Status value, are removed.
Field Name | Type | Required | Description |
|---|---|---|---|
| string/date | Yes | The date when the site status becomes effective. NoteThe received values should be in the YYYY-MM-DD format. |
| string | Yes | The code representing the employee’s status at a site. The list of all configured statuses, including their names and codes, can always be retrieved using the GET /Lookup/EmployeeStatus endpoint. The |
| array of strings [HEX24, …, HEX24] | Yes | A list of site IDs to which this status applies since the All site IDs should belong to the non-deleted sites that belong to the company, which are received in the |
PosCredentials Array - PATCH
For this array:
All required fields listed in the table below cannot be sent as empty (
"") ornullwhen this array is included in the request.If for any reason several records are received in this array in the request, only the first record is processed. Other records are ignored.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes* | The employee’s log in value, or user identifier (ID), on the point of sale (POS). *This field is required if a new POS Credentials record is created for an employee. Multiple employees cannot share the same value in this field. The applicable uniqueness level is defined individually for each client. Uniqueness is enforced at two possible levels:
Only positive numbers are allowed. |
| string | Yes* | *This field is required if a new POS Credentials record is created for an employee. If a new password needs to be sent for an employee, this field must contain the non-hashed value. Otherwise, the hashed value, previously received in responses of other External/Employee GET/POST endpoints, should be provided together with the field |
| boolean | No | This flag ensures that the system correctly interprets whether additional hashing is required. If the provided password was pre-hashed by Genius, this parameter should be sent as If the password was provided in plain text, not hashed, this parameter should be sent as |
| string/HEX24 | Yes* | The user's role ID. *This field is required if a new POS Credentials record is created for an employee. The received value should have a 24 character hexadecimal string format. A list of all available roles in Genius Portal can be received using the GET /auth/getCompanyRoles endpoint, The |
PatchExternalGeneralEmployeeIDJobIDRequestBody
For this request:
Only the fields explicitly provided in the request are updated for the job. Valid values received overwrite existing ones in the database. Fields that are not included in the request remain unchanged.
It is allowed to send this request only with rates, without parent job fields, but it cannot be received as an empty object.
Parameters cannot be received without a value,
nullexcept as described below,[]for arrays, or““.
Field Name | Type | Required | Description |
|---|---|---|---|
| boolean | No | A flag that indicates whether the the employee’s job record is no longer active. This field is typically used to exclude inactive job records from processing, calculations, or synchronization flows. |
| string/date | Yes* | The date when the employee's job was deactivated. This field is typically used together with the *This field is required when the valid This parameter can be |
| boolean | No | A flag that indicates whether this job is the employee’s primary position. Several job records with the I |
| No | A list of pay details associated with this job position, such as salary or hourly rate This array should be sent only if a new job rate record should be created or the existing updated. Otherwise, this field should be omitted. It is allowed to receive this array as an empty array. No errors will be returned in response, and this array will be ignored. |
EmployeeJobPays Array - Patch
For this array:
Parameters cannot be received without a value,
“", ornull.Errors in one job pay record block other job pay records AND the whole job record from processing.
The earliest
EffectiveDatevalue from all successfully created/updated rates in addition to the already existing in the database is used as the Effective Date of the parent job record.The required fields from the table below are mandatory only when the
EmployeeJobPaysarray is included in the request and contains at least one valid, non-empty object.
Processing notes to better understand the result of the request:
If the employee job has no non-deleted rates: New job pay records for this job with all details received in the request and job’s compensation type are created.
Otherwise:
If the existing job pay record with the maximum effective date is less than the one received in the request in the
EffectiveDateparameter has the same Rate, no job pay records either created or updated.If the existing job pay record with the maximum effective date equals the one received in the request in the
EffectiveDateparameter:If the existing Rate value equals the one received in the request, no job pay records are created or updated.
If the existing Rate values are not equal to the one received in the request, the existing record is updated with the new data.
Otherwise, new job pay records are created for this employee job.
Field Name | Type | Required | Description |
|---|---|---|---|
| string/date | Yes | The date when this compensation rate becomes effective in YYYY-MM-DD format. NoteSeveral job pay records with the same |
| number/decimal (2) | Yes | The amount or rate of pay associated with the compensation type. NoteNegative values are not allowed. |
GetExternalGeneralPayrollGetUpdatesResponseBody
Field Name | Type | Required | Description | ||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| string/HEX24 | Yes | The Genius Staff unique identifier (UID) of the payroll record | ||||||||||||||||||||||||||
| string/HEX24 | Yes | The Genius Staff UID of the employee related to the returned payroll record | ||||||||||||||||||||||||||
| string/HEX24 | Yes | The Genius Staff UID of the shift related to the returned payroll record | ||||||||||||||||||||||||||
| string | Yes | Only for not | ||||||||||||||||||||||||||
| string/date | Yes | The date representing the business day associated with the payroll record in YYYY-MM-DD format | ||||||||||||||||||||||||||
| string/datetime UTC | Yes | The timestamp start for the returned payroll record in YYYY-MM-DDTHH:MM:SSZ format | ||||||||||||||||||||||||||
| string/datetime UTC | Yes | The timestamp end for the returned payroll record in YYYY-MM-DDTHH:MM:SSZ format | ||||||||||||||||||||||||||
| string/HEX24 | Yes | The | ||||||||||||||||||||||||||
| string | Yes | The Genius Data Management | ||||||||||||||||||||||||||
| number/decimal (2) | Yes | The monetary rate of pay for an employee for a payroll record | ||||||||||||||||||||||||||
| string | Yes | A code representing the type of compensation assigned to the employee. Supported values:
| ||||||||||||||||||||||||||
| number/decimal (2) | Yes | A numeric factor used to adjust the employee’s base rate of pay associated with the payroll record | ||||||||||||||||||||||||||
| number/decimal (2) | Yes | The total number of hours associated with the payroll record | ||||||||||||||||||||||||||
| number/decimal (2) | Yes | The total monetary amount earned by the employee associated with the payroll record. It is usually the result of multiplying Rate × Multiplier × Hours, with exceptions for certain payroll rules. | ||||||||||||||||||||||||||
| string/HEX24 | Yes | The UID of the pay rule applied to the employee’s payroll record. The value is | ||||||||||||||||||||||||||
| string | Yes | A code representing the type of pay rate applied to the payroll record. Supported values:
| ||||||||||||||||||||||||||
| string | Yes | A code representing the type of work performed by the employee associated with this payroll record. Supported values:
| ||||||||||||||||||||||||||
| string/HEX24 | Yes | The UID of the site or location where the employee performed the work | ||||||||||||||||||||||||||
| boolean | Yes | A flag indicating whether the employee is clocked in currently that is illustrated as the current automatically generated payroll record | ||||||||||||||||||||||||||
| boolean | Yes | A flag indicating whether the current payroll record is active currently | ||||||||||||||||||||||||||
| string/datetime UTC with ms | Yes | The date and time when the record was deleted in YYYY-MM-DDTHH:MM:SS.SSSZ format. The value is | ||||||||||||||||||||||||||
| string/datetime UTC with ms | Yes | The date and time when the record was last updated in YYYY-MM-DDTHH:MM:SS.SSSZ format |
Sample Response Body - General Structure with Non-deleted and Deleted Shifts
{
"Data": [
{
"PayrollDetailId": string,
"EmployeeId": string,
"ShiftId": string,
"TenderTypeCode": string,
"BusinessDate": string,
"ClockIn": string,
"ClockOut": string,
"JobCodeId": string,
"ExternalJobCodeId": string,
"Rate": number,
"CompensationTypeCode": string,
"Multiplier": number,
"Hours": number,
"TotalPay": number,
"PayRuleId": string,
"RateTypeCode": string,
"WorkTypeCode": string,
"SiteId": string,
"IsStillClockedIn": boolean,
"IsActive": boolean,
"DeleteDate": string,
"UpdateDate": string
}
],
"NextUpdateDateFrom": string
}Sample Response Body - An Example of a Fully Successful Request
{
"Data": [
{
"PayrollDetailId": "67dc38a68b5444a9945bd884",
"EmployeeId": "67c8e75bbf2e4917b7a4bd1e",
"ShiftId": "5ba8a738b51fed0001c4f3aa",
"TenderTypeCode": "CREDIT",
"BusinessDate": "2025-03-20",
"ClockIn": "2025-03-20T14:44:04Z",
"ClockOut": "2025-03-20T15:47:48Z",
"JobCodeId": "6001e52c0d0d87003fbbab34",
"ExternalJobCodeId": "22",
"Rate": 4.76,
"CompensationTypeCode": "HOURLY",
"Multiplier": 1.0,
"Hours": 1.0,
"TotalPay": 4.76,
"PayRuleId": null,
"RateTypeCode": "TIP",
"WorkTypeCode": "WORK",
"SiteId": "66f5a8c257fc474b68d34c65",
"IsStillClockedIn": false,
"IsActive": true,
"DeleteDate": null,
"UpdateDate": "2025-03-20T15:47:50.000Z"
},
{
"PayrollDetailId": "67dcf7483b72d6b77f5a6df4",
"EmployeeId": "62a8c68df86994d976ccd456",
"ShiftId": "5ca7450592e8d60011dc0d21",
"TenderTypeCode": null,
"BusinessDate": "2025-03-20",
"ClockIn": "2025-03-21T05:19:48Z",
"ClockOut": "2025-03-21T05:19:48Z",
"JobCodeId": "6001e52c0d0d87003fbbab34",
"ExternalJobCodeId": "22",
"Rate": 17,
"CompensationTypeCode": "HOURLY",
"Multiplier": 1.5,
"Hours": 0.02,
"TotalPay": 0.51,
"PayRuleId": "60a4fe6d91e8dd003f7d658b",
"RateTypeCode": "OTD",
"WorkTypeCode": "WORK",
"SiteId": "620a91dfd2d8f300082bf8c8",
"IsStillClockedIn": true,
"IsActive": false,
"DeleteDate": "2025-03-21T05:25:18.265Z",
"UpdateDate": "2025-03-21T05:25:18.000Z"
}
],
"NextUpdateDateFrom": "2025-03-21T05:25:18.000Z"
}GetEthnicityResponseBody
Field Name | Type | Description |
|---|---|---|
| string | The employee's ethnicity identifier (ID) |
| string | The description of the employee's ethnicity |
| boolean | Sending the |
| string | The ethnicity name |
| string | The ethnicity code |
| string | The name of the source system from which employee ethnicity record is being imported |
| string/date | The actual date of the update to the records |
GetCompanyRolesResponseBody
Field Name | Type | Description |
|---|---|---|
| string | The company role identifier |
| string | The company role name |
Get Company Roles Sample Code
Sample Response Body
[
{
"Id": "63da469cb5c13514ecaeac10",
"Name": "Cashier"
},
{
"Id": "63da4601b5c13514ecaeac0c",
"Name": "Company Administrator"
},
{
"Id": "63da46a9b5c13514ecaeac11",
"Name": "Manager"
}
]GetCompensationTypeResponseBody
Field Name | Type | Description |
|---|---|---|
| The list of compensation type data | |
| number | The number of data items in the response |
GetCompensationType Data Array
Field Name | Type | Description |
|---|---|---|
| string | The compensation type identifier |
| string | The compensation type description. For example, "Hourly". |
| boolean | Sending the |
| string | The compensation type name |
| string | The compensation type code |
| string | The name of the source system from which compensation type records are being imported |
| string | The actual date of the update to the records |
Get Compensation Type Sample Code
Sample Response Body
{
"Data": [
{
"CompensationTypeId": "58e545ff17d69f4373488645",
"Description": "Hourly",
"IsActive": true,
"Name": "Hourly",
"Code": "HOUR",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"CompensationTypeId": "58e545ff17d69f4373488646",
"Description": "Salary",
"IsActive": true,
"Name": "Salary",
"Code": "SLRY",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
}
],
"TotalCount": 2
}GetEmployeeStatusResponseBody
Field Name | Type | Description |
|---|---|---|
| A list of the employee status information | |
| number | The number of data items in the response |
GetEmployeeStatus Data Array
Field Name | Type | Description |
|---|---|---|
| string | The employee status identifier |
| string | The employee status description. For example, "Active". |
| boolean | Sending the |
| string | The employee's worksite identifier |
| string | The employee status name |
| string | The employee status code |
Get Employee Status Sample Code
Sample Response Body
{
"Data": [
{
"EmployeeStatusId": "58aee861d0db1330825323ec",
"Description": "Active",
"IsActive": true,
"SiteId": null,
"Name": "Active",
"Code": "ACTV"
},
{
"EmployeeStatusId": "58aee88cd0db1330825323ee",
"Description": "Inactive",
"IsActive": true,
"SiteId": null,
"Name": "Inactive",
"Code": "IACTV"
},
{
"EmployeeStatusId": "58aee899d0db1330825323f0",
"Description": "Terminated",
"IsActive": true,
"SiteId": null,
"Name": "Terminated",
"Code": "TERM"
},
{
"EmployeeStatusId": "58aee8a7d0db1330825323f2",
"Description": "Transferred",
"IsActive": true,
"SiteId": null,
"Name": "Transferred",
"Code": "XFER"
},
{
"EmployeeStatusId": "58aee8bad0db1330825323f4",
"Description": "Suspended",
"IsActive": true,
"SiteId": null,
"Name": "Suspended",
"Code": "SUS"
},
{
"EmployeeStatusId": "58aee8c5d0db1330825323f6",
"Description": "Leave Of Absence",
"IsActive": true,
"SiteId": null,
"Name": "Leave Of Absence",
"Code": "LOABS"
}
],
"TotalCount": 6
}GetAllJobsResponseBody
Field Name | Type | Description |
|---|---|---|
| A list of job code information |
JobCodeUsageTypeIds Array
Field Name | Type | Description |
|---|---|---|
| string | The job code unique identifier (UID) |
| string | The job code name |
| string | The job code category identifier |
| boolean | The flag that indicates if the job code is managerial |
| boolean | The flag that indicates whether to all the primary position |
| boolean | The flag that indicates if the job code is active |
| number | The standard shift length by hours |
| string | The job tip category identifier |
| string | The default point of sale (POS) security-level identifier |
| string | The job color. For example, "#999999". |
| string | The parent job code identifier |
| string | The job code site identifier |
Get All Jobs Sample Code
Sample Response Body
{
"JobCodeUsageTypeIds": [
"9999999999999999"
],
"JobCodeId": "9999999999999999",
"Name": "Manager",
"JobCodeCategoryId": "9999999999999999",
"IsManagerialPosition": true,
"AllowPrimaryPosition": true,
"IsActive": true,
"StandardShiftLengthHours": 8,
"JobTipCategoryId": "9999999999999999",
"DefaultPosSecurityLevelId": "9999999999999999",
"JobColor": "#999999",
"ParentJobCodeId": null,
"SiteId": "9999999999999999"
},
{
"JobCodeUsageTypeIds": [
"9999999999999999",
"9999999999999999"
],
"JobCodeId": "9999999999999999",
"Name": "Crew Member",
"JobCodeCategoryId": "9999999999999999",
"IsManagerialPosition": false,
"AllowPrimaryPosition": true,
"IsActive": true,
"StandardShiftLengthHours": 7,
"JobTipCategoryId": "9999999999999999",
"DefaultPosSecurityLevelId": null,
"JobColor": "#999999",
"ParentJobCodeId": null,
"SiteId": "9999999999999999"
},AddEmployeeRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The company's employee identifier |
| string | Yes | The employee's first name |
| string | Yes | The employee's last name |
| string | Yes | The site identifier on our platform for the employee's primary work location |
| Yes | The list of employee jobs |
EmployeeJobs Array Request Body
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The Job Code ID for the employee's primary role. Send the |
Add Employee Request Sample Code
Sample Request Body
{
"EmployeeCorporateCode": "999999",
"Firstname": "9999999999999999",
"Lastname" : "9999999999999999",
"PrimarySiteId": "9999999999999999"
"EmployeeJobs": [
{
"JobCodeId": "9999999999999999",
}
]
}AddEmployeeResponseBody
Field Name | Type | Description |
|---|---|---|
| string | The employee unique identifier (UID) |
| string | The employee badge number |
| string | The employee's date of birth |
| string | The employee's corporate code |
| string | The employee's ethnicity identifier |
| string | The employee's gender |
| string | The employee's first name |
| string | The employee's last name |
| string | The employee's middle name |
| string | The employee's nickname |
| boolean | The flag that indicates if the employee has a disability |
| boolean | The flag that indicates if the employee can be rehired |
| boolean | The flag that indicates if the employee is a veteran |
| string | The employee's tax identifier |
| string | The employee's user name |
| string | The employee's person identifier |
| string | The employee's primary worksite identifier |
| string | The employee's profile image. For example, a .PNG file. |
| array | The list of the employee's telephone numbers |
| array | The list of the employee's address information |
| array | The list of the employee's contacts' information |
| array | The list of the employee's email addresses |
| array | The list of the employee's notifications |
| The list of the employee's jobs | |
| The list of the employee's point of sale (POS) credentials information | |
| boolean | Sending the |
| string | |
| boolean | A flag that indicates if the employee is a minor |
| string | The employee's status identifier |
| boolean | A flag that indicates if the employee has allowed email notifications |
EmployeeJobs Array Response Body
Field Name | Type | Description |
|---|---|---|
| string | The employee's job identifier |
| string | The employee employment effective date |
| string | The employee identifier |
| string | The job code identifier |
| boolean | A flag that indicates if this is the employee's primary job |
| boolean | Sending the |
| string | The employee's job skill level |
| The list of the employee's pay information | |
| string | The employee's worksite identifier |
EmployeeJobPays Array
Field Name | Type | Description |
|---|---|---|
| string | The unique identifier (UID) of the already existing Job rate record from the Back Office database. Send only for job rate updates. To create a new job rate record for the parent job, omit this field in the request. |
| string | The UID of the Job Compensation Type (Salary, Hourly) from Data Management. Retrieve using Staff API Lookup/CompensationType endpoint - the CompensationTypeId field in the response is the required identifier. For more information, see Lookup Compensation Type. |
| number | The employee's pay rate on a specific Job position (decimal) |
| string | The date from which the employee started receiving this rate on this job position. Send in the YYYY-MM-DD format. The earliest active (not deleted) rate in the array should have Effective date >= Job’s Effective Date. |
| boolean | Sending the |
| string | The name of the source system from which the employee job records are being imported. The same as in the parent job. |
| string | The UID of the already existing employee’s job record from the Back Office database (rate’s parent job record). Send only for job rates that are created/updated/deleted from the already existing job record. Do not send for new Job records. |
| string | The employee's unique worksite identifier, same as for the rate’s parent job record. |
PosCredentials Array
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The point of sale (POS) system credential identifier |
| string | No | The employee unique identifier (UID) |
| string | Yes | The employee's login value (User ID). It can be omitted in request, in which case our system automatically generates a new value for this employee based on the uniqueness logic (company/site level) for this field. It must be a numeric value. |
| string | Yes | Send a default password for the employee for initial login. During the first successful login, the employee can change this value (it will be updated automatically in Back Office system). This value is encrypted in our system, which means that in all subsequent GET operations the previously received value will be returned as an encrypted value. |
| string | Yes | Roles define a set of functions available for the employee during their work with the POS API. Retrieve the Role ID using Staff API Get Company Roles endpoint ( |
| string | Yes | The name of the source system from which the employee record is being imported. |
| boolean | No | Sending the |
| boolean | No | A flag that indicates if the force PIN has been updated |
| string | No | The location where the PIN was updated |
Add Employee Response Sample Code
Sample Response Body
{
"EmployeeId": "9999999999999999",
"BadgeNumber": null,
"BirthDate": null,
"EmployeeCorporateCode": "999999",
"EthnicityId": null,
"Gender": "O",
"Firstname": "9999999999999999",
"Lastname": "9999999999999999",
"Middlename": null,
"Nickname": null,
"IsHandicapped": false,
"IsRehireable": false,
"IsVeteran": false,
"TaxIdentifier": "",
"Username": null,
"PersonId": null,
"PrimarySiteId": "9999999999999999",
"ProfileImage": "9999999999999999.png",
"EmployeePhones": [],
"EmployeeAddresses": [],
"EmployeeContacts": [],
"EmployeeEmails": [],
"EmployeeNotifications": [],
"EmployeeJobs": [
{
"EmployeeJobId": "9999999999999999",
"EffectiveDate": "20YY-05-23",
"EmployeeId": "9999999999999999",
"JobCodeId": "9999999999999999",
"IsPrimaryJob": true,
"IsActive": true,
"JobSkillLevel": 0,
"EmployeeJobPays": [
{
"EmployeeJobPayId": "9999999999999999",
"CompensationTypeId": "9999999999999999",
"Rate": 1,
"EffectiveDate": "20YY-05-23",
"IsActive": true,
"EmployeeJobId": "9999999999999999",
"SiteId": "9999999999999999"
}
],
"SiteId": "9999999999999999"
}
],
"PosCredentials": [
{
"PosCredentialId": "9999999999999999",
"EmployeeId": "9999999999999999",
"EmployeePOSCode": "99",
"Password": "9999999999999999",
"RoleId": "9999999999999999",
"IsActive": true,
"ForcePinUpdated": false,
"PinUpdatedAt": null
}
],
"IsActive": true,
"Name": "9999999999999999",
"IsMinor": false,
"StatusId": "9999999999999999",
"AnyEmailNotifications": false
}GetAllWorkTypesResponseBody
Field Name | Type | Description |
|---|---|---|
| The list of work type information | |
| number | The number of data items in the response |
GetAllWorkTypes Data Array
Field Name | Type | Description |
|---|---|---|
| string | The work type identifier |
| string | The work type data code |
| string | The work type data description |
| boolean | Sending the |
| boolean | The flag that indicates if overtime pay rates are calculated for the work type |
| boolean | The flag that indicates if the work type is used |
| string | The worksite identifier for the work type |
| string | The name of the work type data |
Get All Work Types Sample Code
Sample Response Body
{
"Data": [
{
"WorkTypeId": "9999999999999999",
"Code": "PAYR",
"Description": "Payroll Generated Time",
"IsActive": true,
"IsOvertimeCalculated": false,
"IsWorked": false,
"SiteId": "9999999999999999",
"Name": "Payroll Generated Time"
},
{
"WorkTypeId": "9999999999999999",
"Code": "SICK",
"Description": "Sick",
"IsActive": true,
"IsOvertimeCalculated": false,
"IsWorked": false,
"SiteId": "9999999999999999",
"Name": "Sick"
},
{
"WorkTypeId": "9999999999999999",
"Code": "VACA",
"Description": "Vacation",
"IsActive": true,
"IsOvertimeCalculated": false,
"IsWorked": false,
"SiteId": "9999999999999999",
"Name": "Vacation"
},
{
"WorkTypeId": "9999999999999999",
"Code": "WORK",
"Description": "WorkTime",
"IsActive": true,
"IsOvertimeCalculated": true,
"IsWorked": true,
"SiteId": "9999999999999999",
"Name": "WorkTime"
},
{
"WorkTypeId": "9999999999999999",
"Code": "MEET",
"Description": "Meeting",
"IsActive": true,
"IsOvertimeCalculated": false,
"IsWorked": true,
"SiteId": "9999999999999999",
"Name": "Meeting"
},
{
"WorkTypeId": "9999999999999999",
"Code": "HOLI",
"Description": "Holiday",
"IsActive": true,
"IsOvertimeCalculated": false,
"IsWorked": false,
"SiteId": "9999999999999999",
"Name": "Holiday"
},
{
"WorkTypeId": "9999999999999999",
"Code": "BREAK",
"Description": "Break",
"IsActive": true,
"IsOvertimeCalculated": true,
"IsWorked": false,
"SiteId": "9999999999999999",
"Name": "Break"
}
],
"TotalCount": 7
}CreatePunchRecordRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The punch record's shift adjustment note |
| string | Yes | The punch record's adjustment reason identifier |
| Yes | A list of the employee's work times information | |
| string | Yes | The job name |
| string | Yes | The job code identifier |
| string | Yes | The employee's name |
| string | Yes | The employee's corporate code |
| string | No | The employee's breaks |
| string | Yes | The shift identifier |
| string | Yes | The employee unique identifier (UID) |
| string | Yes | The start time for the employee's shift |
| string | Yes | The end time for the employee's shift |
| boolean | Yes | Sending the |
| string | Yes | The worksite identifier |
| string | Yes | The punch code identifier |
| string | Yes | The source identifier |
| string | Yes | The actual date of the punch record |
| string | Yes | The punch record status |
| boolean | No | A flag that indicates whether to ignore point of sale (POS) system notifications |
EmployeeWorkTimes Array
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The employee work time identifier |
| string | No | The point of sale (POS) system punch record identifier |
| string | Yes | The employee unique identifier (UID) |
| string | No | The employee job identifier |
| number | No | The employee's pay rate |
| string | No | The business date of the punch record |
| string | Yes | The employee's punch record clock in time |
| string | No | The clock in type identifier |
| string | No | The clock in approval identifier |
| string | No | The identifier for the person who approved the clock in |
| string | Yes | The employee's punch record clock out time |
| string | No | The clock out type identifier |
| string | No | The clock out approval identifier |
| string | No | The identifier for the person who approved the clock out |
| string | Yes | The work type identifier |
| string | No | The shift identifier |
| boolean | No | Sending the |
| No | A list of work time transactions information | |
| string | No | The worksite identifier |
| string | No | The break time identifier |
| boolean | No | A flag that indicates whether to ignore the POS system notifications |
WorkTimeTransactions Array
Field Name | Type | Description |
|---|---|---|
| string | The work time transaction identifier |
| string | The employee work time identifier |
| string | The tender mapping identifier |
| string | The tender category code |
| string | The tender type code |
| number | The tender amount |
| boolean | Sending the |
| string | The worksite identifier |
| boolean | A flag that indicates whether to ignore the point of sale (POS) system notifications |
Create Punch Record Sample Code
Sample Request Body
{
"ShiftAdjustmentNote": "9999999999999999",
"PunchAdjustmentReasonId": "9999999999999999",
"EmployeeWorkTimes": [
{
"EmployeeWorkTimeId": "9999999999999999",
"PosPunchId": "9999999999999999",
"EmployeeId": "9999999999999999",
"EmployeeJobId": "9999999999999999",
"Rate": 0,
"BusinessDate": "20YY-05-13T19:06:39.915Z",
"ClockIn": "20YY-05-13T19:06:39.915Z",
"ClockInTypeId": "9999999999999999",
"ClockInApprovalId": "9999999999999999",
"ClockInApprovalPersonId": "9999999999999999",
"ClockOut": "20YY-05-13T19:06:39.915Z",
"ClockOutTypeId": "9999999999999999",
"ClockOutApprovalId": "9999999999999999",
"ClockOutApprovalPersonId": "9999999999999999",
"WorkTypeId": "9999999999999999",
"ShiftId": "9999999999999999",
"IsActive": true,
"WorkTimeTransactions": [
{
"WorkTimeTransactionId": "9999999999999999",
"EmployeeWorkTimeId": "9999999999999999",
"TenderMappingId": "9999999999999999",
"TenderCategoryCode": "9999999999999999",
"TenderTypeCode": "9999999999999999",
"Amount": 0,
"IsActive": true,
"SiteId": "string",
"IgnorePosNotification": true
}
],
"SiteId": "9999999999999999",
"BreakTimeId": "9999999999999999",
"IgnorePosNotification": true
}
],
"JobName": "9999999999999999",
"JobCodeId": "9999999999999999",
"EmployeeName": "9999999999999999",
"EmployeeCorporateCode": "9999999999999999",
"Breaks": 0,
"ShiftId": "9999999999999999",
"EmployeeId": "9999999999999999",
"StartDateTime": "20YY-05-13T19:06:39.915Z",
"EndDateTime": "20YY-05-13T19:06:39.915Z",
"IsActive": true,
"SiteId": "9999999999999999",
"PunchCode": "9999999999999999",
"Source": "9999999999999999",
"ActualUpdateDate": "20YY-05-13T19:06:39.916Z",
"Status": "9999999999999999",
"IgnorePosNotification": true
}CreateEmployeeDetailRequestBody
The following are required fields only. The example response includes the entire list of fields provided.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee's first name |
| string | Yes | The employee's last name |
| string | Yes | The employee's unique readable identifier. May be unique either on a company or a site level. This configuration is defined at the company level within Data Management - Web Meta Data section. |
| string | Yes | The unique identifier of the location at which the employee performs most of their work. Our system generates this value during the addition of a new site. This data can be retrieved from Portal - Sites section. |
| Yes | A list of the employee's site statuses. | |
| Yes | A list of the employee's point of sale (POS) system credentials. | |
| string | Yes | Used to determine the system from which the employee record was imported. It is recommended to use the same source name for all employees. |
EmployeeSiteStatuses Array
The following are the minimum fields required to create a status record:
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The date when this status becomes active in YYYY-MM-DD format |
| string | Yes | The unique identifier of the Status record from Data Management. Retrieve using Staff API Lookup Employee Status endpoint ( |
| string | Yes | The unique identifier (UID) of the site, provided by us, for which a site status record is created |
| string | Yes | The name of the source system from which the employee record is being imported |
Create Employee Detail Request Sample Code
Sample Request Body
curl --location --request POST 'https://qa-backoffice-api.xenial.com/Staff
/Employee/EmployeeDetail' \
--header 'Content-Type: application/json' \
--header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \
--header 'X-Site-Ids: 63da4653b5c13514ecaeac0f' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtp
ZCI6InhwcnQifQ....' \
--data-raw '{
"Firstname": "Xxxx",
"Lastname": "Xxxxxxx",
"EmployeeCorporateCode": "8796282",
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"EmployeeSiteStatuses": [
{
"EffectiveDate": "2099-01-01",
"EmployeeStatusId": "58aee861d0db1330825323ec",
"SiteId": "63da4653b5c13514ecaeac0f",
"Source": "Back office System 245"
}
],
"PosCredentials": [
{
"EmployeePOSCode": "76823",
"IsActive": true,
"Password": "1",
"RoleId": "63da469cb5c13514ecaeac10",
"Source": "Back office System 245"
}
],
"Source": "Back office System 245"
}'CreateEmployeeDetailResponseBody
Field Name | Type | Description |
|---|---|---|
| string | The employee unique identifier (UID) |
| string | The employee badge number |
| string | The employee's date of birth |
| string | The employee's unique readable identifier. The identifier may be unique either on a company or a site level. |
| string | The employee's ethnicity identifier |
| string | The employee's gender |
| string | The employee's first name |
| string | The employee's last name |
| string | The employee's middle name |
| string | The employee's nickname |
| boolean | The flag that indicates if the employee has a disability |
| boolean | The flag that indicates if the employee can be rehired |
| boolean | The flag that indicates if the employee is a veteran |
| string | The employee's tax identifier |
| string | The employee's user name |
| string | The employee's person identifier |
| string | The employee's primary worksite identifier |
| string | The employee's profile image. For example, a .PNG file. |
| array | The list of the employee's telephone numbers |
| array | The list of the employee's address information |
| array | The list of the employee's contacts' information |
| array | The list of the employee's email addresses |
| array | The list of the employee's notifications |
| The list of the employee's jobs | |
| The list of the employee's worksite statuses | |
| The list of the employee's point of sale (POS) credentials | |
| boolean | Sending the |
| string | |
| boolean | A flag that indicates if the employee is a minor |
| string | The employee's status identifier |
| boolean | A flag that indicates if the employee has allowed email notifications |
| string | |
| string | Used to determine the system from which the employee record was imported |
| string | The actual date the response was generated |
Create Employee Detail Response Sample Code
Sample Response Body
{
"EmployeeId": "63dfa28f32753797d3cfa2fc",
"BadgeNumber": null,
"BirthDate": null,
"EmployeeCorporateCode": "8796281",
"EthnicityId": null,
"Gender": null,
"Firstname": "Xxxxx",
"Lastname": "Xxxxxxx",
"Middlename": null,
"Nickname": null,
"IsHandicapped": null,
"IsRehireable": null,
"IsVeteran": null,
"TaxIdentifier": "",
"Username": null,
"PersonId": null,
"PrimarySiteId": "63da4653b5c13514ecaeac0f",
"ProfileImage": null,
"EmployeePhones": [],
"EmployeeAddresses": [],
"EmployeeContacts": [],
"EmployeeEmails": [],
"EmployeeNotifications": [],
"EmployeeJobs": [],
"EmployeeSiteStatuses": [
{
"EmployeeSiteStatusId": "63dfa29032753797d3cfa2fd",
"EmployeeId": "63dfa28f32753797d3cfa2fc",
"EmployeeStatusId": "58aee861d0db1330825323ec",
"EffectiveDate": "2099-01-01",
"SiteId": "63da4653b5c13514ecaeac0f",
"IsActive": true,
"Source": "Back office System 245",
"ActualUpdateDate": "2099-02-05T12:35:28.465"
}
],
"PosCredentials": [
{
"PosCredentialId": "63dfa29032753797d3cfa2fe",
"EmployeeId": "63dfa28f32753797d3cfa2fc",
"EmployeePOSCode": "jhksk",
"Password": "H1YnlzdovqwQIDFnBj6JrB90Fo/qhmk4HY8qIKgfAmF5lRBe
0GM86fEDp/Lk4WV7",
"RoleId": "63da469cb5c13514ecaeac10",
"IsActive": true,
"ForcePinUpdated": false,
"PinUpdatedAt": "2023-02-05T12:35:28",
"Source": "Back office System 245",
"ActualUpdateDate": "2099-02-05T12:35:28.747"
}
],
"IsActive": true,
"Name": "Xxxx Xxxxxxx",
"IsMinor": false,
"StatusId": null,
"AnyEmailNotifications": false,
"SourceData": null,
"Source": "Back office System 245",
"ActualUpdateDate": "2099-02-05T12:35:27.869"
}SiteStatusBulkUpdateRequestBody
Field Name | Type | Description |
|---|---|---|
| string | The unique identifier (UID) of the already existing employee’s Site Status record. Generated by our system when a site status record is created. Send only for site status updates to existing record(s). To create a new site status record, omit this field in the request. |
| string | The UID of the already existing Employee record in Back Office. Generated by our system when an employee record is created. |
| string | The UID of the Status record from Data Management (Employee Status Config section). It can be retrieved using Staff API: Lookup Employee Status endpoint. |
| string | The date when this status becomes active. It should be sent in the YYYY-MM-DD format. |
| string | The unique site identifier |
| boolean | If set to |
| string | The name of a source system from where this record comes from (if imported). Empty for Back Office-created records. |
| string | The Coordinated Universal Time (UTC) timestamp of the last record's update. Send in the format YYYY-MM-DDTHH:MM:SS.SSS. It can be omitted for new records. |
Site Status Bulk Update Request Sample Code
Sample Request Body
curl --location --request PUT 'https://qa-backoffice-api.xenial.com/Staff
/EmployeeSiteStatus/BulkUpdate' \
--header 'Content-Type: application/json' \
--header 'X-Company-Id: 63da4601b5c13514ecaeac0a' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtp
ZCI6InhwcnQifQ...' \
--data-raw '[
{//Record updated for Employee 1 and Site 1
"EmployeeSiteStatusId": "63e1349f24292f450256b967",
"EmployeeId": "63e101a824292f450256b825",
"EmployeeStatusId": "58aee88cd0db1330825323ee",
"EffectiveDate": "2099-01-12",
"SiteId": "63da4653b5c13514ecaeac0f",
"IsActive": true,
"Source": "Back office System 245",
"ActualUpdateDate": "2099-02-07T13:16:34.789"
},
{//Record Deleted for Employee 1 and Site 2
"EmployeeSiteStatusId": "63e135ac32753797d3cfb053",
"EmployeeId": "63e101a824292f450256b825",
"EmployeeStatusId": "58aee861d0db1330825323ec",
"EffectiveDate": "2099-01-25",
"SiteId": "63dfed11c65ca0f40f64efaa",
"IsActive": false,
"Source": "Back office System 245",
"ActualUpdateDate": "2099-02-07T13:16:34.789"
},
{//Record created for Employee 2 and Site 3
"EmployeeId": "63e0febe24292f450256b806",
"EmployeeStatusId": "58aee899d0db1330825323f0",
"EffectiveDate": "2099-02-01",
"SiteId": "63e250cfca7a6a30a172126b",
"IsActive": true,
"Source": "Back office System 245"
}
]'SiteStatusBulkUpdateResponseBody
Field Name | Type | Description |
|---|---|---|
| The list of Site Status Bulk Update response data | |
| number | The number of items returned |
SiteStatusBulkUpdate Data Array
Field Name | Type | Description |
|---|---|---|
| string | The unique identifier (UID) of the already existing employee’s Site Status record. Generated by our system when a site status record is created. Send only for site status updates to existing record(s). To create a new site status record, omit this field in the request. |
| string | The UID of the already existing Employee record in Back Office. Generated by our system when an employee record is created. |
| string | The unique identifier of the Status record from Data Management (Employee Status Config section). Can be retrieved using Staff API: Lookup Employee Status endpoint. |
| string | The date when this status becomes active. It should be sent in the YYYY-MM-DD format. |
| string | The unique site identifier |
| boolean | If set to |
| string | The name of a source system from where this record comes from (if imported). Empty for Back Office-created records. |
| string | The Coordinated Universal Time (UTC) timestamp of the last record's update. Send in the format YYYY-MM-DDTHH:MM:SS.SSS. It can be omitted for new records. |
Site Status Bulk Update Response Sample Code
Sample Response Body
{
"Data": [
{
"EmployeeSiteStatusId": "63e1349f24292f450256b967",
"EmployeeId": "63e101a824292f450256b825",
"EmployeeStatusId": "58aee88cd0db1330825323ee",
"EffectiveDate": "2099-01-12",
"SiteId": "63da4653b5c13514ecaeac0f",
"IsActive": true,
"Source": "Back office System 245",
"ActualUpdateDate": "2099-02-07T13:16:34.789"
},
{
"EmployeeSiteStatusId": "63e135ac32753797d3cfb053",
"EmployeeId": "63e101a824292f450256b825",
"EmployeeStatusId": "58aee861d0db1330825323ec",
"EffectiveDate": "2099-01-25",
"SiteId": "63dfed11c65ca0f40f64efaa",
"IsActive": false,
"Source": "Back office System 245",
"ActualUpdateDate": "2099-02-07T13:16:34.789"
},
{
"EmployeeSiteStatusId": "63e25497a2633efd1d126e13",
"EmployeeId": "63e0febe24292f450256b806",
"EmployeeStatusId": "58aee899d0db1330825323f0",
"EffectiveDate": "2099-02-01",
"SiteId": "63e250cfca7a6a30a172126b",
"IsActive": true,
"Source": "Back office System 245",
"ActualUpdateDate": "2099-02-07T13:39:35.763"
}
],
"TotalCount": 3
}UpdateAllEmployeeJobsRequestBody
Field Name | Type | Description |
|---|---|---|
| string | The unique identifier (UID) of the already existing employee’s Job record from Back Office database. Send only for job updates to existing record(s). To create a new job record, omit this field in the request. |
| string | The UID of the already existing employee record in Back Office |
| string | The UID of the job code from Data Management. Retrieve |
| boolean | Sending the |
| boolean | This flag defines whether this job position is a primary for the employee. An employee can have only one Primary Job within one store. |
| string | The date from which the employee started working on this position. It should be sent in the YYYY-MM-DD format. It is recommended to set effective date of the job = effective date of its earliest job rate record. |
| string | The UID of the site provided by us |
| string | The name of the source system from which employee job records are being imported |
| A list of the job rate data. The data received in this array overwrites existing data in the database. If there are previously created active Job rate records in the database for this Job, and a job rate record is not received in this array in the request, it will be soft-deleted (marked |
Update All Employee Jobs Request Sample Code
Sample Request Body
curl --location --request PUT 'https://qa-backoffice-api.xenial.com/Staff
/EmployeeJob/UpdateAll' \
--header 'authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6Ikp..' \
--header 'content-type: application/json' \
--header 'x-company-id: 624ae9f89c308100090e42ad' \
--header 'x-site-ids: 624aea729c308100090e42d0' \
--data-raw '[
{
"JobCodeId": "607dd5e8caf4ee003496de11",
"IsPrimaryJob": true,
"EffectiveDate": "2099-09-27",
"EmployeeJobId": "63569d35da0feab7e42a76be",
"SiteId": "624aea729c308100090e42d0",
"IsActive": true,
"EmployeeId": "63569d35da0feab7e42a76bd",
"EmployeeJobPays": [
{
//New Job Rate is added
"Rate": 13,
"CompensationTypeId": "58e545ff17d69f4373488645",
"EmployeeJobId": "63569d35da0feab7e42a76be",
"EffectiveDate": "2099-12-01",
"IsActive": true,
"SiteId": "624aea729c308100090e42d0",
"EmployeeId": "63569d35da0feab7e42a76bd"
},
{
"EmployeeJobPayId": "63569d35da0feab7e42a76bf",
"Rate": 8.5,
"CompensationTypeId": "58e545ff17d69f4373488645",
"EmployeeJobId": "63569d35da0feab7e42a76be",
"EffectiveDate": "2099-09-27",
"IsActive": true,
"SiteId": "624aea729c308100090e42d0",
"EmployeeId": "63569d35da0feab7e42a76bd"
}
]
},
{
// Job is deleted
"JobCodeId": "6092a3aadac63e00342227fc",
"IsPrimaryJob": false,
"EffectiveDate": "2099-12-01",
"EmployeeJobId": "63a33a0995401abc3b7f740e",
"SiteId": "624aea729c308100090e42d0",
"IsActive": false,
"EmployeeId": "63569d35da0feab7e42a76bd",
"EmployeeJobPays": [
{
"EmployeeJobPayId": "63a33a0995401abc3b7f740f",
"Rate": 24,
"CompensationTypeId": "58e545ff17d69f4373488645",
"EmployeeJobId": "63a33a0995401abc3b7f740e",
"EffectiveDate": "2099-12-01",
"IsActive": true,
"SiteId": "624aea729c308100090e42d0",
"EmployeeId": "63569d35da0feab7e42a76bd"
}
]
},
{
//New Job is added
"JobCodeId": "6092a30f2cedea0034aceb8f",
"EffectiveDate": "2099-12-01",
"SiteId": "624aea729c308100090e42d0",
"IsActive": true,
"EmployeeId": "63569d35da0feab7e42a76bd",
"EmployeeJobPays": [
{
"Rate": 25,
"CompensationTypeId": "58e545ff17d69f4373488645",
"EffectiveDate": "2099-12-01",
"IsActive": true,
"SiteId": "624aea729c308100090e42d0",
"EmployeeId": "63569d35da0feab7e42a76bd"
}
]
}
]'UpdateAllEmployeeJobsResponseBody
Field Name | Type | Description |
|---|---|---|
| string | The unique identifier (UID) of the already existing employee’s job record from Back Office database. |
| string | The date from which the employee started working on this position |
| string | The UID of the already existing employee record in Back Office |
| string | The UID of the job code from Data Management |
| boolean | This flag defines whether this job position is a primary for the employee |
| boolean | Sending the |
| number | The employee's job skill level |
| A list of job rate data |
Update All Employee Jobs Response Sample Code
Sample Response Body
[
{
"EmployeeJobId": "63569d35da0feab7e42a76be",
"EffectiveDate": "2099-09-27",
"EmployeeId": "63569d35da0feab7e42a76bd",
"JobCodeId": "607dd5e8caf4ee003496de11",
"IsPrimaryJob": true,
"IsActive": true,
"JobSkillLevel": 0,
"EmployeeJobPays": [
{
"EmployeeJobPayId": "63a33a9b95401abc3b7f7412",
"CompensationTypeId": "58e545ff17d69f4373488645",
"Rate": 12.0,
"EffectiveDate": "2099-12-01",
"IsActive": true,
"EmployeeJobId": "63569d35da0feab7e42a76be",
"SiteId": "624aea729c308100090e42d0",
"Source": null,
"ActualUpdateDate": "2099-12-21T16:55:55.949"
},
{
"EmployeeJobPayId": "63569d35da0feab7e42a76bf",
"CompensationTypeId": "58e545ff17d69f4373488645",
"Rate": 8.5,
"EffectiveDate": "2099-09-27",
"IsActive": true,
"EmployeeJobId": "63569d35da0feab7e42a76be",
"SiteId": "624aea729c308100090e42d0",
"Source": null,
"ActualUpdateDate": "2099-12-21T16:55:55.992"
}
],
"SiteId": "624aea729c308100090e42d0",
"Source": null,
"ActualUpdateDate": "2099-12-21T16:55:55.938"
},
{
"EmployeeJobId": "63a33a0995401abc3b7f740e",
"EffectiveDate": "2099-12-01",
"EmployeeId": "63569d35da0feab7e42a76bd",
"JobCodeId": "6092a3aadac63e00342227fc",
"IsPrimaryJob": false,
"IsActive": false,
"JobSkillLevel": 0,
"EmployeeJobPays": [
{
"EmployeeJobPayId": "63a33a0995401abc3b7f740f",
"CompensationTypeId": "58e545ff17d69f4373488645",
"Rate": 24.0,
"EffectiveDate": "2099-12-01",
"IsActive": true,
"EmployeeJobId": "63a33a0995401abc3b7f740e",
"SiteId": "624aea729c308100090e42d0",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
}
],
"SiteId": "624aea729c308100090e42d0",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"EmployeeJobId": "63a33a9b95401abc3b7f7410",
"EffectiveDate": "2099-12-01",
"EmployeeId": "63569d35da0feab7e42a76bd",
"JobCodeId": "6092a30f2cedea0034aceb8f",
"IsPrimaryJob": false,
"IsActive": true,
"JobSkillLevel": 0,
"EmployeeJobPays": [
{
"EmployeeJobPayId": "63a33a9b95401abc3b7f7411",
"CompensationTypeId": "58e545ff17d69f4373488645",
"Rate": 25.0,
"EffectiveDate": "2099-12-01",
"IsActive": true,
"EmployeeJobId": "63a33a9b95401abc3b7f7410",
"SiteId": "624aea729c308100090e42d0",
"Source": null,
"ActualUpdateDate": "2099-12-21T16:55:55.906"
}
],
"SiteId": "624aea729c308100090e42d0",
"Source": null,
"ActualUpdateDate": "2099-12-21T16:55:55.891"
}
]UpdateEmployeeRecordRequestBody
The following table includes some of the required fields in the request body along with important considerations. For more information including sample code, see Update an Employee Record.
Field Name | Type | Description |
|---|---|---|
| string | The employee's unique identifier (UID) in Back Office. This value is returned in response to the POST request when the employee record is created for the first time and is required to be sent during the employee update. |
| boolean | To completely remove the the employee record or any additional information (such as addresses or site statuses) so that it does not appear in the Employees' list or in the Employee's profile in Back Office, provide this field with a false value. Such records will be soft-deleted from the database (marked as deleted but still existing in the database only). This data will no longer be available in GET requests or seen on the user interface (UI). The valid values are true and false. |
| string | The timestamp of the last record update. During an update, this value must always be greater than the existing value in the database. Send in Coordinated Universal Time (UTC) in the YYYY-MM-DDTHH:MM:SS.SSS format. |
PostEmployeeAddressRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee unique identifier (UID) in our system |
| string | Yes | The UID of the address type from a list of available that are configured in Data Management. A list of all available address types can be requested using this endpoint Lookup/AddressType. |
| string | Yes | The first address line |
| string | No | The second address line |
| string | No | The third address line |
| string | Yes | The city name |
| string | No | The UID of a state from a list of available that are configured in Data Management. A list of all available states can be requested using this endpoint Lookup/State. |
| string | Yes | The postal, or zip, code |
| string | Yes | The UID of a country from a list of available that are configured in Data Management. A list of all available countries can be requested using this endpoint Lookup/Country. |
| string | Yes | The name of the source system that initiated this record creation |
GetLookupStateResponseBody
Field Name | Type | Description |
|---|---|---|
| array | The list of state items |
| string | The state identifier |
| string | The state's country identifier |
| string | The site identifier for the state, if applicable |
| string | The state name |
| string | The state code |
| string | The name of the source system from which compensation type records are being imported |
| string | The date the record was updated |
| number | The number of data lists in the response |
Sample Response Body
{
"Data": [
{
"StateId": "58f515ff736c128b640d5852",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Alaska",
"Code": "AK",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51600736c128b640d5853",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Alabama",
"Code": "AL",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51601736c128b640d5854",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Arkansas",
"Code": "AR",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51602736c128b640d5855",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Arizona",
"Code": "AZ",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51603736c128b640d5856",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "California",
"Code": "CA",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51603736c128b640d5857",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Colorado",
"Code": "CO",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51604736c128b640d5858",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Connecticut",
"Code": "CT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51605736c128b640d5859",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "District of Columbia",
"Code": "DC",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51605736c128b640d585a",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Delaware",
"Code": "DE",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51606736c128b640d585b",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Florida",
"Code": "FL",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51607736c128b640d585c",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Georgia",
"Code": "GA",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51607736c128b640d585d",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Hawaii",
"Code": "HI",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51608736c128b640d585e",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Iowa",
"Code": "IA",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51609736c128b640d585f",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Idaho",
"Code": "ID",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51629736c128b640d5860",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Illinois",
"Code": "IL",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5162a736c128b640d5861",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Indiana",
"Code": "IN",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5162a736c128b640d5862",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Kansas",
"Code": "KS",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5162b736c128b640d5863",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Kentucky",
"Code": "KY",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5162c736c128b640d5864",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Louisiana",
"Code": "LA",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5162c736c128b640d5865",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Massachusetts",
"Code": "MA",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5162d736c128b640d5866",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Maryland",
"Code": "MD",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5162d736c128b640d5867",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Maine",
"Code": "ME",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5162e736c128b640d5868",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Michigan",
"Code": "MI",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5162f736c128b640d5869",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Minnesota",
"Code": "MN",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51630736c128b640d586a",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Missouri",
"Code": "MO",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51630736c128b640d586b",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Mississippi",
"Code": "MS",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51651736c128b640d586d",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Montana",
"Code": "MT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51652736c128b640d586f",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "North Carolina",
"Code": "NC",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51653736c128b640d5870",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "North Dakota",
"Code": "ND",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51654736c128b640d5871",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Nebraska",
"Code": "NE",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51654736c128b640d5872",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "New Hampshire",
"Code": "NH",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51655736c128b640d5873",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "New Jersey",
"Code": "NJ",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51656736c128b640d5874",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "New Mexico",
"Code": "NM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51656736c128b640d5875",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Nevada",
"Code": "NV",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51657736c128b640d5876",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "New York",
"Code": "NY",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51658736c128b640d5877",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Ohio",
"Code": "OH",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51658736c128b640d5878",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Oklahoma",
"Code": "OK",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51659736c128b640d5879",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Oregon",
"Code": "OR",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51659736c128b640d587a",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Pennsylvania",
"Code": "PA",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51715736c128b640d587b",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Rhode Island",
"Code": "RI",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51716736c128b640d587c",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "South Carolina",
"Code": "SC",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51716736c128b640d587d",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "South Dakota",
"Code": "SD",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51717736c128b640d587e",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Tennessee",
"Code": "TN",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51717736c128b640d587f",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Texas",
"Code": "TX",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51718736c128b640d5881",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Utah",
"Code": "UT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f51719736c128b640d5882",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Virginia",
"Code": "VA",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5171a736c128b640d5884",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Vermont",
"Code": "VT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5171b736c128b640d5885",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Washington",
"Code": "WA",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5171b736c128b640d5886",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Wisconsin",
"Code": "WI",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5171c736c128b640d5887",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "West Virginia",
"Code": "WV",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"StateId": "58f5171d736c128b640d5888",
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "Wyoming",
"Code": "WY",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
}
],
"TotalCount": 51
}GetLookupAddressTypeResponseBody
Field Name | Type | Description |
|---|---|---|
| array | The list of address type items |
| string | The address type identifier |
| string | A description for the address type |
| boolean | A flag that indicates if the address type is active |
| string | The site identifier for the address type, if applicable |
| string | The name for the address type |
| string | The code for the address type |
| number | The number of data lists in the response |
Sample Response Body
{
"Data": [
{
"AddressTypeId": "58f4eb19736c128b640d5844",
"Description": "Home Address",
"IsActive": true,
"SiteId": null,
"Name": "Home Address",
"Code": "HOME"
},
{
"AddressTypeId": "58f4eb1b736c128b640d5845",
"Description": "Mailing Address",
"IsActive": true,
"SiteId": null,
"Name": "Mailing Address",
"Code": "MAIL"
}
],
"TotalCount": 2
}GetLookupCountryResponseBody
Field Name | Type | Description |
|---|---|---|
| array | The list of country items |
| string | The country identifier |
| string | The site identifier for the country, if applicable |
| string | The country name |
| string | The country code |
| string | The name of the source system from which compensation type records are being imported |
| string | The data the record was updated |
| number | The number of data lists in the response |
Sample Response Body
{
"Data": [
{
"CountryId": "58f4f1ff736c128b640d584b",
"SiteId": null,
"Name": "United States",
"Code": "US",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
}
],
"TotalCount": 1
}PostEmployeeAddressResponseBody
Field Name | Type | Description |
|---|---|---|
| string | The employee address' identifier |
| string | The employee unique identifier (UID) in our system |
| string | The UID of the address type from a list of available that are configured in Data Management. |
| string | |
| string | The first address line |
| string | The second address line |
| string | The third address line |
| string | The city name |
| string | The UID of a state from a list of available that are configured in Data Management. |
| string | The postal, or zip, code |
| string | The UID of a country from a list of available that are configured in Data Management. |
| string | The name of the source system that initiated this record creation |
| string | The date the record was updated |
Post Employee Address Sample Code
Sample Response Body
{
"EmployeeAddressId": "66d07bec0c1d271eb8232842",
"EmployeeId": "65c24fdaa007ddc53e65021f",
"AddressTypeId": "58f4eb1b736c128b640d5845",
"AddressPriorityOrder": null,
"Address1": "9404 Bald Hill LaneBrooklyn",
"Address2": "",
"Address3": "",
"City": "New York",
"StateId": "58f515ff736c128b640d5852",
"PostalCode": "11228",
"CountryId": "58f4f1ff736c128b640d584b",
"Source": "ExtBackOffice",
"ActualUpdateDate": "2024-08-29T13:47:24.265"
}PutEmployeeAddressRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The unique identifier in our system of the employee address record that should be updated. It is the same identifier as in the URL. |
| string | Yes | The employee unique identifier (UID) in our system |
| string | Yes | The UID of the address type from a list of available that are configured in Data Management. A list of all available address types can be requested using this endpoint Lookup/AddressType. |
| string | Yes | The first address line |
| string | No | The second address line |
| string | No | The third address line |
| string | Yes | The city name |
| string | No | The UID of a state from a list of available that are configured in Data Management. A list of all available states can be requested using this endpoint Lookup/State. |
| string | Yes | The postal, or zip, code |
| string | Yes | The UID of a country from a list of available that are configured in Data Management. A list of all available countries can be requested using this endpoint Lookup/Country. |
| string | Yes | The name of the source system that initiated this record creation |
PostEmployeeEmailRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee unique identifier (UID) in our system |
| string | Yes | The employee’s email address. No format validation is applied. |
| string | Yes | The UID of an email type from a list of available that are configured in Data Management A list of all available email types can be requested using this endpoint Lookup/EmailType. |
| string | Yes | The name of the source system that initiated this record creation |
GetLookupEmailTypeResponseBody
Field Name | Type | Description |
|---|---|---|
| array | The list of email type items |
| string | The email type identifier |
| string | A description for the email type |
| boolean | A flag that indicates if the email type is active |
| string | The site identifier for the email type, if applicable |
| string | The email type name |
| string | The email type code |
| number | The number of data lists in the response |
Sample Response Body
{
"Data": [
{
"EmailTypeId": "58f7713ab8e30b8e5bbbc9b0",
"Description": "Personal Email",
"IsActive": true,
"SiteId": null,
"Name": "Personal",
"Code": "PRSNL"
},
{
"EmailTypeId": "58f7713ab8e30b8e5bbbc9b1",
"Description": "Work Email",
"IsActive": true,
"SiteId": null,
"Name": "Work",
"Code": "WORK"
}
],
"TotalCount": 2
}PostEmployeeEmailResponseBody
Field Name | Type | Description |
|---|---|---|
| string | The employee email identifier |
| string | The employee unique identifier (UID) in our system |
| string | The employee’s email address. No format validation is applied. |
| string | The UID of an email type from a list of available that are configured in Data Management |
| string | The name of the source system that initiated this record creation |
| string | The date the record was updated |
Post Employee Email Sample Code
Sample Response Body
{
"EmployeeEmailId": "66d08f86957f64e8baba32e7",
"EmployeeId": "65c24fdaa007ddc53e65021f",
"Email": "email@gmail.com",
"EmailTypeId": "58f7713ab8e30b8e5bbbc9b0",
"Source": "ExtBackOffice",
"ActualUpdateDate": "2024-08-29T15:11:02.270"
}PutEmployeeEmailRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee email identifier |
| string | Yes | The employee unique identifier (UID) in our system |
| string | Yes | The employee’s email address. No format validation is applied. |
| string | Yes | The UID of an email type from a list of available that are configured in Data Management A list of all available email types can be requested using this endpoint Lookup/EmailType. |
| string | Yes | The name of the source system that initiated this record creation |
PostEmployeePhoneRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee unique identifier (UID) in our system |
| string | Yes | The employee’s phone number. No format validation is applied. |
| string | Yes | The UID of a phone type from a list of available that are configured in Data Management. A list of all available phone types can be requested using this endpoint Lookup/PhoneType. |
| string | Yes | The name of the source system that initiated this record creation |
GetLookupEmployeePhoneResponseBody
Field Name | Type | Description |
|---|---|---|
| array | The list of employee phone items |
| string | The phone type identifier |
| string | The phone type description |
| boolean | A flag that indicates if the phone type is active |
| string | The site identifier for the phone type, if applicable |
| string | The phone type name |
| string | The phone type code |
| number | The number of data lists in the response |
Sample Response Body
{
"Data": [
{
"PhoneTypeId": "58f6653921eb68fc1f1b8d25",
"Description": "Business Phone Number",
"IsActive": true,
"SiteId": null,
"Name": "Business",
"Code": "BIZ"
},
{
"PhoneTypeId": "58f6654721eb68fc1f1b8d26",
"Description": "Mobile Phone Number",
"IsActive": true,
"SiteId": null,
"Name": "Mobile",
"Code": "CELL"
},
{
"PhoneTypeId": "58f6654721eb68fc1f1b8d27",
"Description": "Fax Phone Number",
"IsActive": true,
"SiteId": null,
"Name": "Fax",
"Code": "FAX"
},
{
"PhoneTypeId": "58f6654721eb68fc1f1b8d28",
"Description": "Home Phone Number",
"IsActive": true,
"SiteId": null,
"Name": "Home",
"Code": "HOME"
}
],
"TotalCount": 4
}PostEmployeePhoneResponseBody
Field Name | Type | Description |
|---|---|---|
| string | The employee phone identifier |
| string | The employee unique identifier (UID) in our system |
| string | The employee’s phone number. No format validation is applied. |
| string | The UID of a phone type from a list of available that are configured in Data Management. |
| string | The name of the source system that initiated this record creation |
| string | The date the record was updated |
Post Employee Phone Sample Code
Sample Response Body
{
"EmployeePhoneId": "66d08af60c1d271eb8232879",
"EmployeeId": "65c24fdaa007ddc53e65021f",
"PhoneNumber": "+2-131-231-2312",
"PhoneTypeId": "58f6653921eb68fc1f1b8d25",
"Source": "ExtBackOffice",
"ActualUpdateDate": "2024-08-29T14:43:26.457"
}PutEmployeePhoneRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee phone identifier |
| string | Yes | The employee unique identifier (UID) in our system |
| string | Yes | The employee’s phone number. No format validation is applied. |
| string | Yes | The UID of a phone type from a list of available that are configured in Data Management. A list of all available phone types can be requested using this endpoint Lookup/PhoneType. |
| string | Yes | The name of the source system that initiated this record creation |
PostEmployeeContactRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee unique identifier (UID) in our system |
| string | Yes | The employee emergency contact’s first name |
| string | No | The employee emergency contact’s middle name |
| string | No | The employee emergency contact’s nickname |
| string | No | The employee emergency contact’s last name |
| string | No | The first address line |
| string | No | The second address line |
| string | No | The third address line |
| string | No | The city name |
| string | No | The UID of a state from a list of available that are configured in Data Management. A list of all available states can be requested using this endpoint Lookup/State. |
| string | No | The postal, or zip, code |
| string | No | The UID of a country from a list of available that are configured in Data Management. A list of all available countries can be requested using this endpoint Lookup/Country. |
| string | No | The phone number line 1 |
| string | No | The phone number line 2 |
| string | Yes | The name of the source system that initiated this record creation |
PostEmployeeContactResponseBody
Field Name | Type | Description |
|---|---|---|
| string | The employee contact identifier |
| string | The employee unique identifier (UID) in our system |
| string | The employee emergency contact’s first name |
| string | The employee emergency contact’s middle name |
| string | The employee emergency contact’s nickname |
| string | The employee emergency contact’s last name |
| string | The first address line |
| string | The second address line |
| string | The third address line |
| string | The city name |
| string | The UID of a state from a list of available that are configured in Data Management. A list of all available states can be requested using this endpoint Lookup/State. |
| string | The postal, or zip, code |
| string | The UID of a country from a list of available that are configured in Data Management. A list of all available countries can be requested using this endpoint Lookup/Country. |
| string | The phone number line 1 |
| string | The phone number line 2 |
| string | The name of the source system that initiated this record creation |
| string | The date the record was updated |
Post Employee Contact Sample Code
Sample Response Body
{
"EmployeeContactId": "66d0938c957f64e8baba32e8",
"EmployeeId": "65c24fdaa007ddc53e65021f",
"ContactPriorityOrder": 0,
"Firstname": "Cortney",
"Lastname": null,
"Middlename": null,
"Nickname": null,
"Address1": null,
"Address2": null,
"Address3": null,
"City": "New York",
"StateId": null,
"PostalCode": "1313213",
"CountryId": "58f4f1ff736c128b640d584b",
"Phone1": "+3-434-545-3443",
"Phone2": null,
"Source": "ExtBackOffice",
"ActualUpdateDate": "2024-08-29T15:28:12.072"
}PutEmployeeContactRequestBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The employee contact identifier |
| string | Yes | The employee unique identifier (UID) in our system |
| string | Yes | The employee emergency contact’s first name |
| string | No | The employee emergency contact’s middle name |
| string | No | The employee emergency contact’s nickname |
| string | No | The employee emergency contact’s last name |
| string | No | The first address line |
| string | No | The second address line |
| string | No | The third address line |
| string | No | The city name |
| string | No | The UID of a state from a list of available that are configured in Data Management. A list of all available states can be requested using this endpoint Lookup/State. |
| string | No | The postal, or zip, code |
| string | No | The UID of a country from a list of available that are configured in Data Management. A list of all available countries can be requested using this endpoint Lookup/Country. |
| string | No | The phone number line 1 |
| string | No | The phone number line 2 |
| string | Yes | The name of the source system that initiated this record creation |
GetJobCodeRateResponeBody
Field Name | Type | Description |
|---|---|---|
| array | The job code rate information |
| string | The job code rate unique identifier (UID) |
| string | The site UID |
| array | The site IDs information |
| string | The job code UID |
| string | The compensation type UID |
| number | The minimum pay rate for the job code |
| number | The maximum pay rate for the job code |
| boolean | A flag that shows if a pay calculation is included |
| number | The base pay rate for the job code |
| string | An external identifier, if applicable |
| boolean | A flag that shows if the the job code rate is active |
| string | The source for the record |
| string | The actual date of the update to the records |
Sample Response Body
{
"Data": [
{
"JobCodeRateId": "58e754e6df64cdb4415d9014",
"SiteId": "63da4653b5c13514ecaeac0f",
"SiteIds": [
"63da4653b5c13514ecaeac0f"
],
"JobCodeId": "58e63c06fbf17de5ced22014",
"CompensationTypeId": "58e545ff17d69f4373488645",
"MinRate": 7.25,
"MaxRate": 9999999.0,
"IsPaycalcIncluded": true,
"BaseRate": 7.25,
"ExternalId": null,
"IsActive": true,
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"JobCodeRateId": "5a96b05f8ac8f46177bff1c4",
"SiteId": "63da4653b5c13514ecaeac0f",
"SiteIds": [
"63da4653b5c13514ecaeac0f"
],
"JobCodeId": "58e63c06fbf17de5ced22064",
"CompensationTypeId": "58e545ff17d69f4373488645",
"MinRate": 1.0,
"MaxRate": 9999999.0,
"IsPaycalcIncluded": true,
"BaseRate": 7.25,
"ExternalId": "8792",
"IsActive": true,
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"JobCodeRateId": "5a96b070bcbf316179f6b370",
"SiteId": "63da4653b5c13514ecaeac0f",
"SiteIds": [
"63da4653b5c13514ecaeac0f"
],
"JobCodeId": "58e63c06fbf17de5ced22074",
"CompensationTypeId": "58e545ff17d69f4373488645",
"MinRate": 7.25,
"MaxRate": 9999999.0,
"IsPaycalcIncluded": true,
"BaseRate": 7.25,
"ExternalId": null,
"IsActive": true,
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"JobCodeRateId": "656f7a218dddc83fd1efd26e",
"SiteId": "63da4653b5c13514ecaeac0f",
"SiteIds": [
"63da4653b5c13514ecaeac0f"
],
"JobCodeId": "656f79c4e9af7b2ebedb3f72",
"CompensationTypeId": "58e545ff17d69f4373488645",
"MinRate": 9.0,
"MaxRate": 100.0,
"IsPaycalcIncluded": false,
"BaseRate": 100.0,
"ExternalId": "",
"IsActive": true,
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"JobCodeRateId": "669547b360241df9cf76db26",
"SiteId": "63da4653b5c13514ecaeac0f",
"SiteIds": [
"63da4653b5c13514ecaeac0f"
],
"JobCodeId": "58e63c06fbf17de5ced22064",
"CompensationTypeId": "58e545ff17d69f4373488646",
"MinRate": 9.0,
"MaxRate": 9999.0,
"IsPaycalcIncluded": false,
"BaseRate": 9999.0,
"ExternalId": "10",
"IsActive": true,
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
}
],
"TotalCount": 5
}GetLookupTenderTypeResponseBody
Field Name | Type | Description |
|---|---|---|
| array | The tender type information |
| string | The tender type unique identifier (UID) |
| string | The tender type description |
| boolean | A flag that shows if the tender type is active |
| string | The site UID |
| string | The tender type name |
| string | The tender type code |
| string | The actual date of the update to the records |
Sample Response Body
{
"Data": [
{
"TenderTypeId": "58ad7fdf7e6ae011068ff492",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Cash",
"Code": "CASH",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "58ad800d7e6ae011068ff494",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Credit*",
"Code": "CREDIT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "58ad80327e6ae011068ff498",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Gift Card",
"Code": "GIFT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "58f56f0cb577d78d1a7da4fa",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "EBT Cash",
"Code": "EBTC",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "58f56f12b577d78d1a7da4fb",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Check",
"Code": "CHECK",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "58f56f16b577d78d1a7da4fc",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Custom",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "58f56f66b577d78d1a7da4fd",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Gift Certificate",
"Code": "GIFTCC",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60148b30bd7b0c743ad27852",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "OLO",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "6092e243f07d03c6b07baaa3",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "GrubHub",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "6092e297f07d03c6b07baaae",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Waitr",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebade5af430b98eec8dcd",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Postmates",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebb8c5af430b98eec8de7",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Door Dash",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebbde5af430b98eec8e0a",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Uber Eats",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebc505af430b98eec8e59",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Eat 24",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebc635af430b98eec8e79",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "OrderUP",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebc765af430b98eec8e99",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Bite Squad",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebc875af430b98eec8eb9",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Amazon Restaurants",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebe885af430b98eec8ed9",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Delivery Up",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebea55af430b98eec8ef9",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Eat In Now",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebeba5af430b98eec8f19",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Mr Delivery",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebed45af430b98eec8f39",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Food Dudes",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebee65af430b98eec8f59",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Local Delivery Provider",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebf3a5af430b98eec8f79",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Delivery Bite",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebf475af430b98eec8f99",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Shilo Inn",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ebfbe5af430b98eec8ffc",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Trav Check",
"Code": "CHECK",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "609ec0e65af430b98eec90c8",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "House Charge",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60b90d62cbc42a2f42a1c5f7",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Debit*",
"Code": "DEBIT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60de204e78a56031751e08a8",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Presto Visa",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60de212378a56031751e08dc",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Presto Master Card ",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60de226678a56031751e096e",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Presto AMEX",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60de228478a56031751e0988",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Presto Discover",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60df4f7249570c518592c066",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Master Card",
"Code": "CREDIT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b08ac924aeda580b24d6",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "American Express",
"Code": "CREDIT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b0d2c924aeda580b24f0",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Discover",
"Code": "CREDIT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b0f5c924aeda580b24fd",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Presto Debit",
"Code": "CREDIT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b113c924aeda580b2506",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Presto Gift Card",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b131c924aeda580b250f",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Presto Other",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b144c924aeda580b2517",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "PLUS",
"Code": "CREDIT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b15dc924aeda580b2521",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "QR Pay",
"Code": "DGTLW",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b178c924aeda580b2529",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Room Service",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b1a0c924aeda580b2533",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "EBT",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b1b5c924aeda580b253b",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "BR Gift Card",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b1d1c924aeda580b2545",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Offline Credit",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b1fbc924aeda580b254e",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Deliver Logic",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b21dc924aeda580b2557",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Uber Eats VR",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b234c924aeda580b2564",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Clover",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b250c924aeda580b256c",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "ezCater",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b26ec924aeda580b2576",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Doordash VRB",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b28bc924aeda580b2583",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Doordash VRM",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b2a2c924aeda580b258f",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Postmates VRB",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b2c8c924aeda580b259d",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Postmates VRM",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b2f4c924aeda580b25aa",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Uber Eats VRM",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b313c924aeda580b25b6",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Google Food",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b329c924aeda580b25c4",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "DNU for QRPay",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "60e5b349c924aeda580b25d0",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Office Exp",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "618058822bd5ab36ee0a76ac",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "GrubHub VRB",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "618058d92bd5ab36ee0a76b7",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Bite Squad VRB",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "61805970b6dba50f133cc05a",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Waitr VRB",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "618d3b3b0f1c8f78b2f97360",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Credit/Gift",
"Code": "GENC",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "61c244a45158e0b864d508aa",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Web Payment",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "62a791ffa9026cec04c41be0",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Bite Squad VRM",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "62a7926ba9026cec04c41beb",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "GrubHub VRM",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "62a792a8a9026cec04c41bfc",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Waitr VRM",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63d28f993681ad75c7897a9d",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Deliver Logic VRM",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63d28fbe3681ad75c7897aa5",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Deliver Logic VRB",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63d28fee3681ad75c7897aad",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Delivery.com",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63d290083681ad75c7897ab5",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Delivery.com VRM",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63d2901a3681ad75c7897abd",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Delivery.com VRB",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63ecfb568d00dd09ad7ced2b",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Doordash VRBUR",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63ecfb818d00dd09ad7ced33",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Uber Eats VRBUR",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63ecfb918d00dd09ad7ced3b",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "GrubHub VRBUR",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63ecfbad8d00dd09ad7ced43",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Bite Squad VRBUR",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63ecfbbf8d00dd09ad7ced4b",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Deliver Logic VRBUR",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63ecfbee8d00dd09ad7ced53",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Delivery.com VRBUR",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "63ecfc188d00dd09ad7ced5b",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Waitr VRBUR",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "642ed68a8307bf0de552ee09",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "Emp House Charge",
"Code": "CUSTOM",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "64ba9ec0ee4652b5e3715c55",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "EBT Food",
"Code": "CREDIT",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
},
{
"TenderTypeId": "64d3d10483c3941d7eebd1c4",
"Description": null,
"IsActive": true,
"SiteId": null,
"Name": "HouseTest",
"Code": "HOUSEA",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
}
],
"TotalCount": 78
}GetLookupTenderCurrencyResponseBody
Field Name | Type | Description |
|---|---|---|
| array | The currency information |
| string | The unique identifier (UID) for the currency |
| string | The description for the currency |
| boolean | A flag that shows if the currency in the response is the default currency for the company identified |
| boolean | A flag that shows if the currency is active |
| string | The site UID |
| string | The name of the currency |
| string | The code for the currency |
| string | The source for the record |
| string | The actual date of the update to the records |
| number | The number of data items in the response |
Sample Response Body
{
"Data": [
{
"TenderCurrencyId": "56f7712eb8e30b8e5bbbc9af",
"Description": "United States Dollars",
"IsDefault": true,
"IsActive": true,
"SiteId": null,
"Name": "USD",
"Code": "USD",
"Source": null,
"ActualUpdateDate": "0001-01-01T00:00:00.000"
}
],
"TotalCount": 1
}PostExternalGeneralShiftRequestBody
For this request body:
Only one shift can be created at a time.
A shift can be created only for non-deleted employees and employee jobs.
All other parameters sent outside of the list provided below are ignored during the shift processing without errors.
All datetime values should be provided in Coordinated Universal Time (UTC).
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes* | The Staff API employee unique identifier (UID) in our system. Only one of these parameters can be sent at a time: If this parameter is received, the received value should have a 24 character hexadecimal string format. *This parameter is required if neither |
| string | Yes* | The Staff API readable identifier of the employee that should be associated with this shift. This value can be either automatically generated by Staff API or received from external systems. Only one of these parameters can be sent at a time: If this parameter is received, it cannot be null, empty, or ““ . *This parameter is required if neither |
| string | Yes* | The external identifier of the employee, which is not generated by our system. An identifier from external systems that can be used as a link and that should be associated with this shift. Only one of these parameters can be sent at a time: If this parameter is received, it cannot be null, empty, or ““ . *This parameter is required if neither |
| string | Yes* | The Data Management A list of all Job Codes can be received using the GET /Staff/JobCode endpoint. The Only one of these parameters can be sent at a time: If this parameter is received, the received value should have a 24 character hexadecimal string format. *This parameter is required if the |
| string | Yes* | The Data Management To verify that job codes with the target external ID exist in our system, the GET /Staff/JobCode endpoint can be used. If external IDs for the same job code differentiate depending on the target Compensation Type, then the GET /Staff/JobCodeRate endpoint can be used in addition to the GET /Staff/JobCode endpoint. Only one of these parameters can be sent at a time: If this parameter is received, it cannot be null, empty, or ““ . *This parameter is required if the |
| string | Yes | The shift’s start date and time. This parameter cannot be null, empty, or ““, and must be in the YYYY-MM-DDTHH:MM:SSZ format. |
| string | No | The shift's end date and time. This parameter can be null for open shifts, but cannot be empty or ““, and must be in the YYYY-MM-DDTHH:MM:SSZ format. |
| string | Yes | The name of the source system from which this shift is sent. This parameter can be null, empty, or ““. |
| string | Yes | The timestamp of when the shift is sent from the external system. This parameter cannot be null, empty, or ““, and must be in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| array of objects | Yes | This array can be empty when a shift has no breaks - Several open breaks with Break overlaps are not allowed. Breaks cannot overlap or stay outside of the shift's boundaries. |
| string | Yes* | The break’s start date and time. If received, this parameter cannot be null, empty, or ““, and must be in the YYYY-MM-DDTHH:MM:SSZ format. *This parameter can be absent in the request if there are no breaks for the shift. Otherwise, this field is required. |
| string | No | The break’s end date and time. This parameter can be absent in the request if there are no breaks for the shift or for open breaks. If received, this parameter cannot be null, empty, or ““, and must be in the YYYY-MM-DDTHH:MM:SSZ format. |
| string | Yes* | The code of the break’s type based on the Break Time section configuration in Data Management. If received, this parameter cannot be null, empty, or ““, and its only supported values are *This parameter can be absent in the request if there are no breaks for the shift. Otherwise, this field is required. |
| boolean | Yes* | A flag that shows whether a break is a paid one or not based on the Break Time section configuration in Data Management. If received, this parameter cannot be null, empty, or ““, and its only supported values are *This parameter can be absent in the request if there are no breaks for the shift. Otherwise, this field is required. NoteIf for any reason the Break Time section in Data Management contains no records with the received Break Type and A shift can be updated using the PUT /External/General/Shift/[ID] endpoint with the same break information after a valid Break Time configuration is created in Data Management. |
| array | Yes | This array can be sent as Several records with the same combination of received values are combined into one during the processing. Their amounts are summed up. NoteIf no configuration is found in Data Management for the received combinations of If tips are not created due to the missing Tender Mapping configuration in Data Management, after the configuration is created, then such shifts can be updated with the same set of transactions using the PUT /External/General/Shift/[ID] endpoint, and the transactions are created if a valid Tender Mapping record is found. |
| string | Yes* | The code of the tips transaction type, If received, this parameter cannot be null, empty, or ““, and its only supported values are *This parameter can be absent in the request if there are no tips for the shift. Otherwise, this field is required. |
| string | Yes* | The code of the tips payment type configured in the Pay Type section in Data Management. The codes of the related payment classes should be sent here. A list of all payment types, configured in our system, can be received using the GET /Lookup/TenderType endpoint. The If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there are no tips for the shift. Otherwise, this field is required. |
| string | Yes* | The code of the tips currency configured in the Tender Currency section in Data Management. The codes should be sent here. The list of all tender currencies, configured in our system, can be received using the GET /Lookup/TenderCurrency endpoint. The If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there are no tips for the shift. Otherwise, this field is required. |
| number/decimal | Yes* | The tips amount. If received, this parameter cannot be null, empty, or ““, and negative values are not allowed. *This parameter can be absent in the request if there are no tips for the shift. Otherwise, this field is required. |
| array of objects | Yes | This array can be sent as Several records with the same combination of received values are combined into one during the processing. Their amounts are summed up. NoteIf no configuration is found in Data Management for the received combinations of If sales records are not created due to the missing Tender Mapping configuration in Data Management, after the configuration is created, then such shifts can be updated with the same set of transactions using the PUT /External/General/Shift/[ID] endpoint, and the transactions are created if a valid Tender Mapping record is found. |
| string | Yes* | The code of the sales payment type configured in the Pay Type section in Data Management. Codes of the related payment classes should be sent here. The value logic is the same as described in the Tips.TenderTypeCode. If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there is no sales data for the shift. |
| string | Yes* | The code of the sales currency configured in the Tender Currency section in Data Management. The codes should be sent here. The value logic is the same as described in the Tips.TenderCurrencyCode. If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there is no sales data for the shift. |
| number/decimal | Yes* | The sales amount. If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there is no sales data for the shift. |
PostExternalGeneralShiftResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The Staff API unique identifier (UID) for the shift that is being created |
| string | Yes | The Staff API UID for the employee related to the created shift |
| string | Yes | The readable identifier for the employee related to the returned shift. This is the value stored in the Employee Corporate Code field in the employee profile in Staff API. |
| string | Yes | The external identifier for the employee related to the created shift, received from external systems or null |
| string | Yes | The name of the job code from Data Management from the active employee job related to the created shift |
| string | Yes | The |
| string | Yes | The Data Management |
| string | Yes | The shift’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ Coordinated Universal Time (UTC) format |
| string | Yes | The shift’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this shift is open |
| string | Yes | The shift's status in the database:
|
| boolean | Yes | A flag that shows that this shift is non-deleted. Always = |
| string | Yes | The UID in our system of a site associated with the currently created shift |
| string | Yes | The name of the source system from which this shift was imported or null if a shift was created in Staff API or was imported without external system specified |
| string | Yes | The last time the current shift was created or updated through the API call in the YYYY-MM-DDTHH:MM:SS.SSSZ UTC format |
| array of objects | Yes | Each break is displayed as a separate object inside this array. If there are no breaks within the currently created shift, this array is returned as |
| string | Yes* | The break’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format. *Absent only when there are no breaks for a shift. |
| string | Yes* | The break’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this break is open. *Absent only when there are no breaks for a shift. |
| string | Yes* | Break Type Code from the Break Time configuration in Data Management. *Absent only when there are no breaks for a shift. |
| boolean | Yes* | A flag showing whether the received break is paid or not. Taken from the found Break Time configuration in Data Management or taken from a default record for cases when no configuration for the received *Absent only when there are no breaks for a shift. |
| array of objects | Yes | A list of unique tip records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no tip transactions created, this array is returned as |
| string | Yes* | The identifier of the tip type - Direct ( *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the payment class associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the tender currency associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| number/decimal | Yes* | The total tips amount for this particular tender type. *Absent only when there are no tips for a shift. |
| array of objects | Yes | A list of unique sales records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no sales transactions created, this array is returned as |
| string | Yes* | The code of the payment class associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| string | Yes* | The code of the tender currency associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| number/decimal | Yes* | The total sales amount for this particular tender type. *Absent only when there are no sales for a shift. |
PutExternalGeneralShiftRequestBody
For this request body:
Only one shift can be updated at a time.
All other parameters sent outside of the list provided below are ignored during the shift processing without errors.
Received data always fully overwrites the already existing one if a valid request is received.
Nested
TipsandSalesarrays errors do not affect the shift’s update process.Updates are allowed only for non-deleted shifts and shifts that belong to non-deleted employees and employee jobs.
All datetime values should be provided in Coordinated Universal Time (UTC).
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The shift’s start date and time. This parameter cannot be null, empty, or ““, and must be in the YYYY-MM-DDTHH:MM:SSZ format. |
| string | No | The shift's end date and time. This parameter can be null for open shifts, but cannot be empty or ““, and must be in the YYYY-MM-DDTHH:MM:SSZ format. |
| string | Yes | The name of the source system from which this shift is sent. This parameter can be null, empty, or ““. |
| string | Yes | The timestamp of when the shift is sent from the external system. This parameter cannot be null, empty, or ““, and must be in the YYYY-MM-DDTHH:MM:SS.SSSZ format. The received |
| array of objects | Yes | This array can be empty when a shift has no breaks - Several open breaks with Break overlaps are not allowed. Breaks cannot overlap or stay outside of the shift's boundaries. |
| string | Yes* | The break’s start date and time. If received, this parameter cannot be null, empty, or ““, and must be in the YYYY-MM-DDTHH:MM:SSZ format. *This parameter can be absent in the request if there are no breaks for the shift. Otherwise, this field is required. |
| string | No | The break’s end date and time. This parameter can be absent in the request if there are no breaks for the shift or for open breaks. If received, this parameter cannot be null, empty, or ““, and must be in the YYYY-MM-DDTHH:MM:SSZ format. |
| string | Yes* | The code of the break’s type based on the Break Time section configuration in Data Management. If received, this parameter cannot be null, empty, or ““, and its only supported values are *This parameter can be absent in the request if there are no breaks for the shift. Otherwise, this field is required. |
| boolean | Yes* | A flag that shows whether a break is a paid one or not based on the Break Time section configuration in Data Management. If received, this parameter cannot be null, empty, or ““, and its only supported values are *This parameter can be absent in the request if there are no breaks for the shift. Otherwise, this field is required. NoteIf for any reason the Break Time section in Data Management contains no records with the received Break Type and A shift can be updated using the PUT /External/General/Shift/[ID] endpoint with the same break information after a valid Break Time configuration is created in Data Management. |
| array | Yes | This array can be sent as Several records with the same combination of received values are combined into one during the processing. Their amounts are summed up. NoteIf no configuration is found in Data Management for the received combinations of If tips are not created due to the missing Tender Mapping configuration in Data Management, after the configuration is created, then such shifts can be updated with the same set of transactions using the PUT /External/General/Shift/[ID] endpoint, and the transactions are created if a valid Tender Mapping record is found. |
| string | Yes* | The code of the tips transaction type, If received, this parameter cannot be null, empty, or ““, and its only supported values are *This parameter can be absent in the request if there are no tips for the shift. Otherwise, this field is required. |
| string | Yes* | The code of the tips payment type configured in the Pay Type section in Data Management. The codes of the related payment classes should be sent here. A list of all payment types, configured in our system, can be received using the GET /Lookup/TenderType endpoint. The If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there are no tips for the shift. Otherwise, this field is required. |
| string | Yes* | The code of the tips currency configured in the Tender Currency section in Data Management. The codes should be sent here. The list of all tender currencies, configured in our system, can be received using the GET /Lookup/TenderCurrency endpoint. The If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there are no tips for the shift. Otherwise, this field is required. |
| number/decimal | Yes* | The tips amount. If received, this parameter cannot be null, empty, or ““, and negative values are not allowed. *This parameter can be absent in the request if there are no tips for the shift. Otherwise, this field is required. |
| array of objects | Yes | This array can be sent as Several records with the same combination of received values are combined into one during the processing. Their amounts are summed up. NoteIf no configuration is found in Data Management for the received combinations of If sales records are not created due to the missing Tender Mapping configuration in Data Management, after the configuration is created, then such shifts can be updated with the same set of transactions using the PUT /External/General/Shift/[ID] endpoint, and the transactions are created if a valid Tender Mapping record is found. |
| string | Yes* | The code of the sales payment type configured in the Pay Type section in Data Management. Codes of the related payment classes should be sent here. The value logic is the same as described in the Tips.TenderTypeCode. If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there is no sales data for the shift. |
| string | Yes* | The code of the sales currency configured in the Tender Currency section in Data Management. The codes should be sent here. The value logic is the same as described in the Tips.TenderCurrencyCode. If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there is no sales data for the shift. |
| number/decimal | Yes* | The sales amount. If received, this parameter cannot be null, empty, or ““. *This parameter can be absent in the request if there is no sales data for the shift. |
PutExternalGeneralShiftResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The Staff API unique identifier (UID) for the shift that is being created |
| string | Yes | The Staff API UID for the employee related to the created shift |
| string | Yes | The readable identifier for the employee related to the returned shift. This is the value stored in the Employee Corporate Code field in the employee profile in Staff API. |
| string | Yes | The external identifier for the employee related to the created shift, received from external systems or null |
| string | Yes | The name of the job code from Data Management from the active employee job related to the created shift |
| string | Yes | The |
| string | Yes | The Data Management |
| string | Yes | The shift’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ Coordinated Universal Time (UTC) format |
| string | Yes | The shift’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this shift is open |
| string | Yes | The shift's status in the database:
|
| boolean | Yes | A flag that shows that this shift is non-deleted. Always = |
| string | Yes | The UID in our system of a site associated with the currently created shift |
| string | Yes | The name of the source system from which this shift was imported or "" if a shift was created in Staff API or was imported without external system specified |
| string | Yes | The last time the current shift was created or updated through the API call in the YYYY-MM-DDTHH:MM:SS.SSSZ UTC format |
| array of objects | Yes | Each break is displayed as a separate object inside this array. If there are no breaks within the currently created shift, this array is returned as |
| string | Yes* | The break’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| string | Yes* | The break’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this break is open. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value or null if a break is still open. |
| string | Yes* | Break Type Code from the Break Time configuration in Data Management. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| boolean | Yes* | A flag showing whether the received break is paid or not. Taken from the found Break Time configuration in Data Management or taken from a default record for cases when no configuration for the received *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| array of objects | Yes | A list of unique tip records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no tip transactions created, this array is returned as |
| string | Yes* | The identifier of the tip type - Direct ( *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the payment class associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the tender currency associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| number/decimal | Yes* | The total tips amount for this particular tender type. *Absent only when there are no tips for a shift. |
| array of objects | Yes | A list of unique sales records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no sales transactions created, this array is returned as |
| string | Yes* | The code of the payment class associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| string | Yes* | The code of the tender currency associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| number/decimal | Yes* | The total sales amount for this particular tender type. *Absent only when there are no sales for a shift. |
GetExternalGeneralShiftUpdatesResponseBody
For this response body:
The response size is limited to no more than 100 shifts returned at a time. For pagination needs, the
NextUpdateDateFromfield can be used in order not to miss data.In order to request another 100 batch, a value received in the response in the
NextUpdateDateFromfield in the first request should be sent in theUpdateDateFromquery parameter in the next request. This approach should be repeated untilDataarray is returned empty, which is a marker that all updates have already been provided.If no shifts were found based on the received time values,
NextUpdateDateFromfield will contain the same timestamp as sent in the request in theUpdateDateFromparameter.
Data in response is sorted by shifts'
update_dateearliest entries.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The Staff API unique identifier (UID) for the shift that is being created |
| string | Yes | The Staff API UID for the employee related to the created shift |
| string | Yes | The readable identifier for the employee related to the returned shift. This is the value stored in the Employee Corporate Code field in the employee profile in Staff API. |
| string | Yes | The external identifier for the employee related to the created shift, received from external systems or null |
| string | Yes | The name of the job code from Data Management from the active employee job related to the created shift |
| string | Yes | The |
| string | Yes | The Data Management |
| string | Yes | The shift’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ Coordinated Universal Time (UTC) format |
| string | Yes | The shift’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this shift is open |
| string | Yes | The shift's status in the database:
|
| boolean | Yes | A flag that shows that this shift is non-deleted. Always = |
| string | Yes | The UID in our system of a site associated with the currently created shift |
| string | Yes | The name of the source system from which this shift was imported or "" if a shift was created in Staff API or was imported without external system specified |
| string | Yes | The last time the current shift was created or updated through the API call in the YYYY-MM-DDTHH:MM:SS.SSSZ UTC format |
| array of objects | Yes | Each break is displayed as a separate object inside this array. If there are no breaks within the currently created shift, this array is returned as |
| string | Yes* | The break’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| string | Yes* | The break’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this break is open. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value or null if a break is still open. |
| string | Yes* | Break Type Code from the Break Time configuration in Data Management. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| boolean | Yes* | A flag showing whether the received break is paid or not. Taken from the found Break Time configuration in Data Management or taken from a default record for cases when no configuration for the received *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| array of objects | Yes | A list of unique tip records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no tip transactions created, this array is returned as |
| string | Yes* | The identifier of the tip type - Direct ( *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the payment class associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the tender currency associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| number/decimal | Yes* | The total tips amount for this particular tender type. *Absent only when there are no tips for a shift. |
| array of objects | Yes | A list of unique sales records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no sales transactions created, this array is returned as |
| string | Yes* | The code of the payment class associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| string | Yes* | The code of the tender currency associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| number/decimal | Yes* | The total sales amount for this particular tender type. *Absent only when there are no sales for a shift. |
GetExternalGeneralShiftByBusinessDateResponseBody
For this response body:
The endpoint supports pagination using the
PageNumberquery parameter and aTotalCountfield from a response.Data in response is sorted by shifts'
create_dateearliest entries.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The Staff API unique identifier (UID) for the shift that is being created |
| string | Yes | The Staff API UID for the employee related to the created shift |
| string | Yes | The readable identifier for the employee related to the returned shift. This is the value stored in the Employee Corporate Code field in the employee profile in Staff API. |
| string | Yes | The external identifier for the employee related to the created shift, received from external systems or null |
| string | Yes | The name of the job code from Data Management from the active employee job related to the created shift |
| string | Yes | The |
| string | Yes | The Data Management |
| string | Yes | The shift’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ Coordinated Universal Time (UTC) format |
| string | Yes | The shift’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this shift is open |
| string | Yes | The shift's status in the database:
|
| boolean | Yes | A flag that shows that this shift is non-deleted. Always = |
| string | Yes | The UID in our system of a site associated with the currently created shift |
| string | Yes | The name of the source system from which this shift was imported or "" if a shift was created in Staff API or was imported without external system specified |
| string | Yes | The last time the current shift was created or updated through the API call in the YYYY-MM-DDTHH:MM:SS.SSSZ UTC format |
| array of objects | Yes | Each break is displayed as a separate object inside this array. If there are no breaks within the currently created shift, this array is returned as |
| string | Yes* | The break’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| string | Yes* | The break’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this break is open. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value or null if a break is still open. |
| string | Yes* | Break Type Code from the Break Time configuration in Data Management. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| boolean | Yes* | A flag showing whether the received break is paid or not. Taken from the found Break Time configuration in Data Management or taken from a default record for cases when no configuration for the received *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| array of objects | Yes | A list of unique tip records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no tip transactions created, this array is returned as |
| string | Yes* | The identifier of the tip type - Direct ( *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the payment class associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the tender currency associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| number/decimal | Yes* | The total tips amount for this particular tender type. *Absent only when there are no tips for a shift. |
| array of objects | Yes | A list of unique sales records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no sales transactions created, this array is returned as |
| string | Yes* | The code of the payment class associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| string | Yes* | The code of the tender currency associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| number/decimal | Yes* | The total sales amount for this particular tender type. *Absent only when there are no sales for a shift. |
GetExternalGeneralShiftByShiftIDsResponseBody
For this response body:
The endpoint always returns information about deleted and active shifts without additional query parameters.
Data in response is sorted by shifts'
create_dateearliest entries.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The Staff API unique identifier (UID) for the shift that is being created |
| string | Yes | The Staff API UID for the employee related to the created shift |
| string | Yes | The readable identifier for the employee related to the returned shift. This is the value stored in the Employee Corporate Code field in the employee profile in Staff API. |
| string | Yes | The external identifier for the employee related to the created shift, received from external systems or null |
| string | Yes | The name of the job code from Data Management from the active employee job related to the created shift |
| string | Yes | The |
| string | Yes | The Data Management |
| string | Yes | The shift’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ Coordinated Universal Time (UTC) format |
| string | Yes | The shift’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this shift is open |
| string | Yes | The shift's status in the database:
|
| boolean | Yes | A flag that shows that this shift is non-deleted. Always = |
| string | Yes | The UID in our system of a site associated with the currently created shift |
| string | Yes | The name of the source system from which this shift was imported or "" if a shift was created in Staff API or was imported without external system specified |
| string | Yes | The last time the current shift was created or updated through the API call in the YYYY-MM-DDTHH:MM:SS.SSSZ UTC format |
| array of objects | Yes | Each break is displayed as a separate object inside this array. If there are no breaks within the currently created shift, this array is returned as |
| string | Yes* | The break’s start date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| string | Yes* | The break’s end date time returned in the YYYY-MM-DDTHH:MM:SSZ UTC format or null if this break is open. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value or null if a break is still open. |
| string | Yes* | Break Type Code from the Break Time configuration in Data Management. *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| boolean | Yes* | A flag showing whether the received break is paid or not. Taken from the found Break Time configuration in Data Management or taken from a default record for cases when no configuration for the received *Absent only when there are no breaks for a shift. Otherwise, this parameter must be present with a corresponding value. |
| array of objects | Yes | A list of unique tip records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no tip transactions created, this array is returned as |
| string | Yes* | The identifier of the tip type - Direct ( *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the payment class associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| string | Yes* | The code of the tender currency associated with a tip record that was created. *Absent only when there are no tips for a shift. |
| number/decimal | Yes* | The total tips amount for this particular tender type. *Absent only when there are no tips for a shift. |
| array of objects | Yes | A list of unique sales records received for the currently created shift that was successfully created in the database, aggregated by If a result shift has no sales transactions created, this array is returned as |
| string | Yes* | The code of the payment class associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| string | Yes* | The code of the tender currency associated with a sales record that was created. *Absent only when there are no sales for a shift. |
| number/decimal | Yes* | The total sales amount for this particular tender type. *Absent only when there are no sales for a shift. |
PostSchedulesRequestBody
For this request body:
Only one schedule record can be created at a time.
All other parameters sent outside of the list provided below are ignored during the schedule processing without errors.
Several schedules for the same company + site + timeframe are not allowed. Overlaps are identified using both
StartDateandEndDatefields.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The schedule’s start date and time, if needed. The date/time should be provided in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The schedule's end date and time, if needed. The date/time should be provided in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The store’s timezone name. Use the format described in the TZ identifier column in this list of timezones. |
| string | No | The source system name from where a schedule record is being imported |
| Yes | A list of employees' shifts within this schedule. The child fields are described below:
|
PostShiftsRequestBody Array
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The shift's identifier (ID) provided by external publisher. If provided, the ID should be unique within a company. |
| string | Yes | The business date to which a received shift should belong. This parameter should consider the site’s business date start date and time. |
| string | No* | The employee internal, readable ID in our system. *This parameter is required if if the
|
| string | No* | The employee unique database ID in our system. *This parameter is required if the
|
| string | No* | The Data Management UID of the job code that should be associated with this shift record. An employee must have a non-deleted job record within the received site and with this job code for this schedule to be successfully saved. A list of available job codes in our system can be requested using the GET /Staff/JobCode endpoint. *This parameter is required if the
|
| string | No* | The Data Management Using this code, the received site ID in the *This parameter is required if the |
| string | Yes | The shift’s start date and time, if needed. The date/time should be provided in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format and cannot be null or "". |
| string | Yes | The shift’s end date and time, if needed. The date/time should be provided in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format and cannot be null or "". |
PostSchedulesResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The internal unique identifier (UID) in our system of the created schedule |
| string | Yes | The start date of the created schedule. The date/time is returned in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The end date of the created schedule. The date/time is returned in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The source-system name where the schedule has been created initially. The value is |
| string | Yes | The received value as is without transformations |
| string | Yes | The Coordinated Universal Time (UTC) timestamp of the record being created in the database. The date/time is returned in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| Yes | A list of successfully created child shifts |
PostShiftsResponseBody Array
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The shift's identifier (ID) provided by external publisher. The field is present in a response if it was received in a request. |
| string | Yes | The received business date. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format without additional time zone conversions. |
| string | Yes | The shift's start time. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The shift’s end date and time, if needed. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | No | The employee internal, readable ID in our system. |
| string | No | The employee unique database ID in our system. |
| string | No | The Data Management unique identifier (UID) of the job code |
| string | No | The Data Management The field is present in a response if it was received in a request. |
| string | Yes | The Universal Coordinated TIme (UTC) timestamp of the record being created in the database. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
PutSchedulesRequestBody
For this request body:
All other parameters sent outside of the list provided below are ignored during the schedule processing without errors.
If at least one child shift is invalid, such as invalid data is received, or a shift overlaps with another shift, or is outside the schedule ranges, the whole schedule update is not performed.
Several schedules for the same company + site + timeframe are not allowed. Overlaps are identified using both
StartDateandEndDatefields.If a request is received with the empty
Shifts: []array, any already existing shifts for the received schedule are not affected by this update request.All already existing, active, non-deleted shifts that are not sent in the request, are not affected by this update request.
If a shift that is sent in the request is found in the database and it is received with a valid set of parameters, then the update request always overwrites the already existing record with newer data. There is no merging. Missing required parameters are not allowed and this update request results in the shift overwritten.
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The schedule’s start date and time, if needed. The date/time should be provided in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The schedule's end date and time, if needed. The date/time should be provided in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The store’s timezone name. Use the format described in the TZ identifier column in this list of timezones. |
| string | No | The source system name from where a schedule record is being imported |
| string | Yes | The schedule’s update time received from the external system. This parameter is used to prevent outdated schedule updates. The date/time should be provided in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format and cannot be null or "". The received value cannot be less than or equal to the already existing database value of a schedule that is being updated. |
| Yes | A list of employees' shifts within this schedule. The child fields are described below:
|
PutShiftsRequestBody Array
Field Name | Type | Required | Description |
|---|---|---|---|
| string | No | The unique identifier (UID) in our system of a shift that should be updated with a new data. If received, the value should have a 24 character hexadecimal string format and belong to the existing, non-deleted shift. If a shift is received in this array with this request but without this field, a new shift is created if it does not violate the logic described in the |
| string | No | The shift's ID provided by external publisher. If provided, the ID should be unique within a company. |
| string | Yes | The business date to which a received shift should belong. This parameter should consider the site’s business date start date and time. |
| string | No* | The employee internal, readable ID in our system. *This parameter is required if if the
|
| string | No* | The employee unique database ID in our system. *This parameter is required if the
|
| string | No* | The Data Management UID of the job code that should be associated with this shift record. An employee must have a non-deleted job record within the received site and with this job code for this schedule to be successfully saved. A list of available job codes in our system can be requested using the GET /Staff/JobCode endpoint. *This parameter is required if the
|
| string | No* | The Data Management Using this code, the received site ID in the *This parameter is required if the |
| string | Yes | The shift’s start date and time. The date/time should be provided in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format and cannot be null or "". |
| string | Yes | The shift’s end date and time. The date/time should be provided in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format and cannot be null or "". |
PutSchedulesResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The internal unique identifier (UID) in our system of the updated schedule |
| string | Yes | The start date of the updated schedule. The date/time is returned in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The end date of the updated schedule. The date/time is returned in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The source-system name. The value is |
| string | Yes | The value received in the initial schedule create request. |
| string | Yes | The Universal Coordinated Time (UTC) timestamp of the record was updated in the database. The date/time is returned in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| Yes | A list of successfully updated child shifts and shifts that have already existed for this schedule before. Only non-deleted shifts are returned in the response. |
PutShiftsResponseBody Array
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The unique identifier (UID) in our system of the schedule’s shift |
| string | No | The shift's ID provided by external publisher. The field is present in a response if it was received in the current or a previous request. |
| string | Yes | The received business date. The date is returned in the YYYY-MM-DD format without additional timezone conversions |
| string | Yes | The shift's start time. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The shift’s end time. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | No | The employee internal, readable ID in our system. |
| string | No | The employee unique database ID in our system. |
| string | No | The Data Management unique identifier (UID) of the job code |
| string | No | The Data Management The field is present in a response if it was received in a request. |
| string | Yes | The Coordinated Universal Time (UTC) timestamp of the shift's create time or the last update to the shift's record. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
GetSchedulesResponseBody
Field Name | Type | Required | Description |
|---|---|---|---|
| Yes | An array that contains information about all found schedules together with their child shifts | |
| integer | No | The maximum number of items |
| integer | No | The number of first items skipped from the query |
| integer | Yes | The total number of items inside the |
items Array
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The internal unique identifier (UID) in our system of the schedule |
| string | Yes | The UID in our system of a source company for which a schedule a created |
| string | Yes | The UID in our system of the source site |
| string | Yes | The start date of the schedule. The date/time is returned in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The end date of the schedule. The date/time is returned in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| boolean | Yes | A flag that indicates that the schedule is active. The value is always |
| string | No | The source-system name from where this schedule was imported. The field is present in a response if it was received in the initial creation or update request. |
| string | Yes | The Coordinated Universal Time (UTC) timestamp of the record was last updated in the database. The date/time is returned in the UTC - YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| Yes | This array contains a list of child shifts, non-deleted only |
GetShiftsResponseBody Array
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The unique identifier (UID) in our system of the schedule’s shift |
| string | Yes | The parent schedule ID |
| string | No | The shift's ID provided by external publisher. The field is present in a response if it was received in the initial creation or update request. |
| string | Yes | The store's business date in local time. The date is returned in the YYYY-MM-DD format without additional timezone conversions |
| string | Yes | The shift's start time in local time. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The shift’s end time in local time. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | No | The employee internal, readable ID in our system. |
| string | No | The employee unique database ID in our system. |
| string | No | The Data Management unique identifier (UID) of the job code |
| string | No | The Data Management The field is present in a response if it was received in a request. |
| string | Yes | The Coordinated Universal Time (UTC) timestamp of the shift's create time or the last update to the shift's record. The date is returned in the YYYY-MM-DDTHH:MM:SS.SSSZ format. |
| string | Yes | The UID in our system of a source company for which a schedule a created |
General Structure | GetExternalGeneralEmployeeResponseBody
For this response body:
All child arrays including
EmployeePhones,EmployeeAddresses,EmployeeEmails,EmployeeContacts,EmployeeJobs,EmployeeSiteStatuses, andPosCredentialsplus the AdditionalDetails object are returned in the response body only if these parameters are included in theselectNestedquery parameter list.Each child array is returned with all its fields described below if at least one active, non-deleted child record exists for the employee. For example, for the
EmployeePhonesarray at least one non-deleted phone record. If no child records exist, the corresponding arrays are returned as empty[].
Field Name | Type | Required | Description |
|---|---|---|---|
| string | Yes | The 24-character hexadecimal string uniquely identifying the employee in the Staff database |
| string | Yes | The employee’s first name |
| string | Yes | The employee's last name |
| string | Yes | The employee’s middle name or patronymic, if applicable |
| string | Yes | The concatenated value of |
| string | Yes | The employee’s email address |
| string | Yes | The unique, readable identifier assigned to the employee. This field is used for internal identification within the company. |
| string | Yes | The unique identifier (UID) of the employee in an external system. This field is used to link or synchronize employee data across systems. |
| string | Yes | The Genius Portal identifier of the employee’s main work site |
| string | Yes | Indicates the origin of the employee record |
| string/date and time with ms | Yes | The Coordinated Universal Time (UTC) timestamp when this employee record was last time updated in the database For example, YYYY-MM-DD-THH:MM:SS.SSSZ. |
| boolean | Yes | A flag showing if employee is deleted. |
| No | An optional field for extra information about the employee such as birth date and tax identifier | |
| No | A list of the employee’s phone numbers | |
| No | A list of the employee’s addresses | |
| No | A list of the employee’s emergency contacts | |
| No | A list of the employee’s email addresses | |
| No | A list of the employee’s job positions within the company. For the endpoints using the | |
| No | A list of the employee’s statuses at different sites, such as For the endpoints using the | |
| No | The employee’s access details for the point of sale (POS) system |
Sample General Structure Response Body
{
"Data": [
{
"EmployeeId": string,
"Firstname": string,
"Lastname": string,
"Middlename": string,
"Name": string,
"Username": string,
"EmployeeCorporateCode": string,
"ExternalEmployeeId": string,
"PrimarySiteId": string,
"Source": string,
"LastUpdateDate": string,
"IsActive": boolean,
"AdditionalDetails": {
"TaxIdentifier": string,
"BadgeNumber": string,
"EthnicityCode": string,
"Nickname": string,
"BirthDate": string,
"Gender": string,
"IsHandicapped": boolean,
"IsRehireable": boolean,
"IsVeteran": boolean,
"IsMinor": boolean
},
"EmployeePhones": [
{
"PhoneNumber": string,
"PhoneTypeCode": string,
}
],
"EmployeeAddresses": [
{
"AddressTypeCode": string,
"Address1": string,
"Address2": string,
"Address3": string,
"City": string,
"StateCode": string,
"PostalCode": string,
"CountryCode": string,
}
],
"EmployeeContacts": [
{
"ContactСode": string,
"Firstname": string,
"Lastname": string,
"Middlename": string,
"Address1": string,
"Address2": string,
"Address3": string,
"City": string,
"StateCode": string,
"PostalCode": string,
"CountryCode": string,
"Phone1": string,
"Phone2": string,
}
],
"EmployeeEmails": [
{
"Email": string,
"EmailTypeCode": string,
}
],
"EmployeeJobs": [
{
"EmployeeJobId": string,
"EffectiveDate": string,
"JobCodeId": string,
"ExternalJobCodeId": string,
"IsPrimaryJob": boolean,
"Deactivated": boolean,
"DeactivationDate": string,
"SiteId": string,
"EmployeeJobPays": [
{
"CompensationTypeCode": string,
"Rate": decimal,
"EffectiveDate": string,
}
]
}
],
"EmployeeSiteStatuses": [
{
"EffectiveDate": string,
"StatusCode": string,
"SiteIds": [] //array of strings
},
],
"PosCredentials": [
{
"EmployeePOSCode": string,
"Password": string,
"RoleId": string,
}
]
}
],
"TotalCount": integer,
"RecordsReturned": integer,
"NextPageToken": string
}AdditionalDetails Object
Field Name | Type | Description |
|---|---|---|
| string | The employee’s tax identification number |
| string | The unique number assigned to the employee’s access badge |
| string | The code representing the employee’s ethnicity |
| string | The employee’s preferred informal name |
| string/date | The employee’s date of birth |
| string | The employee’s gender |
| boolean | A flag that indicates whether the employee has a disability |
| boolean | A flag that indicates whether the employee is eligible for rehire |
| boolean | A flag that indicates whether the employee has military service experience |
| boolean | A flag that indicates whether the employee is under the legal adult age |
EmployeePhones Array
Field Name | Type | Description | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| string | The employee phone number | ||||||||||
| string | The code indicating the type of phone number. Supported static values:
|
EmployeeAddresses Array
Field Name | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
| string | The code indicating the type of address. Supported static values:
| ||||||
| string | The primary line of the employee’s address. For example, street name and number. | ||||||
| string | The secondary line of the employee’s address. For example, apartment, suite, or unit. | ||||||
| string | The additional line for the employee’s address. For example, building or complex. | ||||||
| string | The city name for the address | ||||||
| string | The code representing the state, province, or region of the employee’s address. The list of all configured states, including their names and codes, can always be retrieved using the GET /Lookup/State endpoint. | ||||||
| string | The postal code for the address | ||||||
| string | The code representing the country of the employee’s address. The list of all configured countries, including their names and codes, can always be retrieved using the GET /Lookup/Country endpoint. |
EmployeeContacts Array
Field Name | Type | Description |
|---|---|---|
| string | Concatenation of the contact’s |
| string | The first name of the employee’s emergency contact |
| string | The last name of the employee’s emergency contact |
| string | The middle name of the employee’s emergency contact |
| string | The primary line of the employee contact’s address |
| string | The secondary line of the employee contact’s address |
| string | The additional line of the employee contact’s address |
| string | The city name of the employee contact's address |
| string | The code representing the state, province, or region of the employee contact’s address |
| string | The postal code of the employee contact's address |
| string | The code representing the country of the employee contact’s address |
| string | The primary phone number of the employee’s emergency contact |
| string | The secondary phone number of the employee’s emergency contact |
EmployeeEmails Array
Field Name | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
| string | The employee email address | ||||||
| string | The code indicating the type of email address. Supported static values:
|
EmployeeJobs Array
Field Name | Type | Description |
|---|---|---|
| string | The 24-character hexadecimal string uniquely identifying the employee’s job record in the Staff database |
| string/date | The date when the job assignment at the specified site becomes effective. This field correlates with the Business Date on the point of sale (POS). |
| string | The 24-character hexadecimal string uniquely identifying the job position, configured in Data Management |
| string | The unique identifier (UID) of the job position, mainly used for integration and data synchronization |
| boolean | A flag that indicates whether this job position is the employee’s primary job |
| boolean | A flag that indicates whether the job position is no longer available for an employee |
| string/date | The date when the job position was deactivated |
| string | The Genius Portal UID of the site where the job is assigned |
| A list of pay details associated with this job position, such as salary and hourly rate. NoteIf for any reason no non-deleted employee job pay records exist for this job, this array is returned as |
EmployeeJobPays Array
All history of rate changes is returned in this array.
Field Name | Type | Description | ||||||
|---|---|---|---|---|---|---|---|---|
| string | The code indicating the type of compensation. Supported static values:
| ||||||
| number/decimal (2) | The amount or rate of pay associated with the compensation type | ||||||
| string/date | The date when this compensation rate becomes effective |
EmployeeSiteStatues Array
This array returns the full history of status changes for all sites to which the employee is assigned.
Field Name | Type | Description |
|---|---|---|
| string/date | The date when the site status becomes effective |
| string | The code representing the employee’s status at a site. The list of all configured statuses, including their names and codes, can always be retrieved using the GET /Lookup/EmployeeStatus endpoint. |
| array of strings | A list of site identifiers (IDs) to which this status applies since the |
PosCredentials Array
Field Name | Type | Description |
|---|---|---|
| string | The employee’s login value, or user identifier (ID), on the point of sale (POS) device |
| string | The password for the employee’s POS account, returned as a hash |
| string | A 24-character hexadecimal string Genius Portal unique identifier (UID) of the role assigned to the employee. A role defines a set of functions available for the employee during their work with POS. A list of all available roles within a source company can always be found using the GET /auth/getCompanyRoles endpoint. |