Перейти к основному содержимому

SMART Payroll API (1.0.0)

Download OpenAPI specification:Download

REST API for SMART Payroll extension built on Microsoft Dynamics 365 Business Central. This API provides comprehensive functionality for managing employees, persons, labor contracts, positions, timesheets, payroll calculations, vacations, and other HR operations.

Authentication

This API supports two authentication methods:

Security Scheme: BearerAuth

How to use:

  1. Obtain an OAuth 2.0 access token from Azure AD (see BearerAuth in Security Schemes for instructions)
  2. Click the "Authorize" button at the top of this documentation
  3. Paste your access token in the "Value" field
  4. Click "Authorize" - all requests will now include the token automatically

Token Format: Azure AD JWT token obtained via OAuth 2.0 client credentials flow

Works for:

  • ✅ Business Central SaaS (Cloud)
  • ✅ Business Central On-Premises (with Azure AD authentication)

📖 See BearerAuth in Security Schemes below for detailed step-by-step instructions on obtaining the token.

API Conventions

  • All endpoints follow OData v4 protocol standards
  • Supports standard OData query options: $filter, $select, $expand, $orderby, $top, $skip
  • Date fields use ISO 8601 format (YYYY-MM-DD)
  • All timestamps include timezone information
  • API responses include ETag headers for optimistic concurrency control

Quick Start

Step 1: Get Access Token

# Replace {tenant-id}, {client-id}, {client-secret} with your Azure AD credentials
curl -X POST "https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/token" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=client_credentials" \
  -d "client_id={client-id}" \
  -d "client_secret={client-secret}" \
  -d "scope=https://api.businesscentral.dynamics.com/.default"

Step 2: Use Token in API Calls

For SaaS:

curl -H "Authorization: Bearer {access_token}" \
  "https://api.businesscentral.dynamics.com/v2.0/{tenant}/Production/api/smart/payroll/v1.0/companies({companyid})/persons"

For On-Premises:

curl -H "Authorization: Bearer {access_token}" \
  "https://bc-server:7048/BC230/api/smart/payroll/v1.0/companies({companyid})/persons"

Step 3: Use Swagger UI

For testing in this documentation:

  1. Get your access token using the curl command above
  2. Click "Authorize" button at the top
  3. Paste the token value (without "Bearer" prefix)
  4. Try any endpoint using "Try it out" button

persons

Physical persons (individuals) registered in the system. A person must be created before hiring as an employee. Stores basic personal information, tax ID (RNOKPP), and demographics.

List all persons in the system

Retrieves a collection of all physical persons registered in the system. Persons represent individuals who may be hired as employees. Each person must be created before a labor contract can be established. Use $expand to include related data such as medical information, documents, relatives, qualifications, or job history. Supports filtering by RNOKPP (tax ID), name, or other person attributes.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "number" "number desc" "firstName" "firstName desc" "middleName" "middleName desc" "lastName" "lastName desc" "initials" "initials desc" "fullName" "fullName desc" "searchName" "searchName desc" "lastNameChangeDate" "lastNameChangeDate desc" "phoneNumber" "phoneNumber desc" "mobilePhoneNumber" "mobilePhoneNumber desc" "eMail" "eMail desc" "birthDate" "birthDate desc" "socialSecurityNumber" "socialSecurityNumber desc" "vatRegistrationNumber" "vatRegistrationNumber desc" "taxInspectionCode" "taxInspectionCode desc" "gender" "gender desc" "familyStatus" "familyStatus desc" "nationality" "nationality desc" "nativeLanguage" "nativeLanguage desc" "nonResident" "nonResident desc" "sickLeavePaymentBenefit" "sickLeavePaymentBenefit desc" "citizenshipCountryRegion" "citizenshipCountryRegion desc" "comment" "comment desc" "lastDateModified" "lastDateModified desc" "numberSeries" "numberSeries desc" "firstNameEnglish" "firstNameEnglish desc" "middleNameEnglish" "middleNameEnglish desc" "lastNameEnglish" "lastNameEnglish desc" "uniqueRegisteredNumber" "uniqueRegisteredNumber desc" "privacyBlocked" "privacyBlocked desc" "companyEmail" "companyEmail desc" "companyPhoneNumber" "companyPhoneNumber desc" "singleParent" "singleParent desc" "creationDate" "creationDate desc" "externalCreated" "externalCreated desc" "fullNameEnglish" "fullNameEnglish desc" "finCode" "finCode desc" "trainingProfile" "trainingProfile desc" "reserveRank" "reserveRank desc" "reservationStatus" "reservationStatus desc" "reasonForAnnulation" "reasonForAnnulation desc" "kindSickLeaveBenefit" "kindSickLeaveBenefit desc" "hasActiveContract" "hasActiveContract desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "number" "firstName" "middleName" "lastName" "initials" "fullName" "searchName" "lastNameChangeDate" "phoneNumber" "mobilePhoneNumber" "eMail" "birthDate" "socialSecurityNumber" "vatRegistrationNumber" "taxInspectionCode" "gender" "familyStatus" "nationality" "nativeLanguage" "nonResident" "sickLeavePaymentBenefit" "citizenshipCountryRegion" "comment" "lastDateModified" "numberSeries" "firstNameEnglish" "middleNameEnglish" "lastNameEnglish" "uniqueRegisteredNumber" "privacyBlocked" "companyEmail" "companyPhoneNumber" "singleParent" "creationDate" "externalCreated" "fullNameEnglish" "finCode" "trainingProfile" "reserveRank" "reservationStatus" "reasonForAnnulation" "kindSickLeaveBenefit" "hasActiveContract" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "personMedInfo" "personAlternativeAddresses" "personDocuments" "personRelatives" "personQualifications" "personJobHistory" "personPicture"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create a new person record

Creates a new physical person entity in the system. This is the first step before hiring someone as an employee. Required fields include firstName, lastName, and socialSecurityNumber (RNOKPP). The person number is automatically assigned from the configured number series. After creation, you can add related information such as documents, qualifications, and medical details.

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
number
string or null <= 20 characters
firstName
string or null <= 30 characters
middleName
string or null <= 30 characters
lastName
string or null <= 30 characters
initials
string or null <= 30 characters
fullName
string or null <= 100 characters
searchName
string or null <= 250 characters
lastNameChangeDate
string or null <date>
phoneNumber
string or null <= 30 characters
mobilePhoneNumber
string or null <= 30 characters
eMail
string or null <= 80 characters
birthDate
string or null <date>
socialSecurityNumber
string or null <= 14 characters
vatRegistrationNumber
string or null <= 20 characters
taxInspectionCode
string or null <= 4 characters
gender
string or null (employeeGender)
Enum: "_x0020_" "Female" "Male" "Non_x002D_binary" "Self_x002D_Described" "I_x0020_don_x2019_t_x0020_wish_x0020_to_x0020_answer"
familyStatus
string or null (smaPersonFamilyStatus)
Enum: "_x0020_" "Single" "Married" "Divorced" "Widowed" "Civil_x0020_Marriage"
nationality
string or null <= 10 characters
nativeLanguage
string or null <= 10 characters
nonResident
boolean or null
sickLeavePaymentBenefit
boolean or null
citizenshipCountryRegion
string or null <= 10 characters
comment
boolean or null
lastDateModified
string or null <date>
numberSeries
string or null <= 20 characters
firstNameEnglish
string or null <= 30 characters
middleNameEnglish
string or null <= 30 characters
lastNameEnglish
string or null <= 30 characters
uniqueRegisteredNumber
string or null <= 30 characters
privacyBlocked
boolean or null
companyEmail
string or null <= 80 characters
companyPhoneNumber
string or null <= 30 characters
singleParent
boolean or null
creationDate
string or null <date>
externalCreated
boolean or null
fullNameEnglish
string or null <= 100 characters
finCode
string or null <= 20 characters
trainingProfile
string or null <= 20 characters
reserveRank
string or null <= 50 characters
reservationStatus
string or null (smaReservationStatus)
Enum: "_x0020_" "Sent_x0020_for_x0020_reservation" "Reserved" "Annul" "Deferral"
reasonForAnnulation
string or null <= 120 characters
kindSickLeaveBenefit
string or null <= 20 characters
hasActiveContract
boolean or null
lastModifiedDateTime
string or null <date-time>
Array of objects (personMedInfo (for create))
Array of objects (personAlternativeAddress (for create))
Array of objects (personDocument (for create))
Array of objects (personRelative (for create))
Array of objects (personQualification (for create))
Array of objects (personJobHistory (for create))
object or null (personPicture (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "initials": "string",
  • "fullName": "string",
  • "searchName": "string",
  • "lastNameChangeDate": "2017-04-13",
  • "phoneNumber": "string",
  • "mobilePhoneNumber": "string",
  • "eMail": "string",
  • "birthDate": "2017-04-13",
  • "socialSecurityNumber": "string",
  • "vatRegistrationNumber": "string",
  • "taxInspectionCode": "stri",
  • "gender": "_x0020_",
  • "familyStatus": "_x0020_",
  • "nationality": "string",
  • "nativeLanguage": "string",
  • "nonResident": true,
  • "sickLeavePaymentBenefit": true,
  • "citizenshipCountryRegion": "string",
  • "comment": true,
  • "lastDateModified": "2017-04-13",
  • "numberSeries": "string",
  • "firstNameEnglish": "string",
  • "middleNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "uniqueRegisteredNumber": "string",
  • "privacyBlocked": true,
  • "companyEmail": "string",
  • "companyPhoneNumber": "string",
  • "singleParent": true,
  • "creationDate": "2017-04-13",
  • "externalCreated": true,
  • "fullNameEnglish": "string",
  • "finCode": "string",
  • "trainingProfile": "string",
  • "reserveRank": "string",
  • "reservationStatus": "_x0020_",
  • "reasonForAnnulation": "string",
  • "kindSickLeaveBenefit": "string",
  • "hasActiveContract": true,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "personMedInfo": [
    ],
  • "personAlternativeAddresses": [
    ],
  • "personDocuments": [
    ],
  • "personRelatives": [
    ],
  • "personQualifications": [
    ],
  • "personJobHistory": [
    ],
  • "personPicture": {
    }
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "initials": "string",
  • "fullName": "string",
  • "searchName": "string",
  • "lastNameChangeDate": "2017-04-13",
  • "phoneNumber": "string",
  • "mobilePhoneNumber": "string",
  • "eMail": "string",
  • "birthDate": "2017-04-13",
  • "socialSecurityNumber": "string",
  • "vatRegistrationNumber": "string",
  • "taxInspectionCode": "stri",
  • "gender": "_x0020_",
  • "familyStatus": "_x0020_",
  • "nationality": "string",
  • "nativeLanguage": "string",
  • "nonResident": true,
  • "sickLeavePaymentBenefit": true,
  • "citizenshipCountryRegion": "string",
  • "comment": true,
  • "lastDateModified": "2017-04-13",
  • "numberSeries": "string",
  • "firstNameEnglish": "string",
  • "middleNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "uniqueRegisteredNumber": "string",
  • "privacyBlocked": true,
  • "companyEmail": "string",
  • "companyPhoneNumber": "string",
  • "singleParent": true,
  • "creationDate": "2017-04-13",
  • "externalCreated": true,
  • "fullNameEnglish": "string",
  • "finCode": "string",
  • "trainingProfile": "string",
  • "reserveRank": "string",
  • "reservationStatus": "_x0020_",
  • "reasonForAnnulation": "string",
  • "kindSickLeaveBenefit": "string",
  • "hasActiveContract": true,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "personMedInfo": [
    ],
  • "personMedInfo@odata.count": 0,
  • "personAlternativeAddresses": [
    ],
  • "personAlternativeAddresses@odata.count": 0,
  • "personDocuments": [
    ],
  • "personDocuments@odata.count": 0,
  • "personRelatives": [
    ],
  • "personRelatives@odata.count": 0,
  • "personQualifications": [
    ],
  • "personQualifications@odata.count": 0,
  • "personJobHistory": [
    ],
  • "personJobHistory@odata.count": 0,
  • "personPicture": {
    }
}

Retrieve a specific person

Returns detailed information about the person identified by personId, including contact information, tax identification, demographics, and military registration details. Use $expand to include nested collections like medical info, alternative addresses, documents, relatives, qualifications, job history, language skills, and name change history.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

query Parameters
$select
Array of strings unique
Items Enum: "id" "number" "firstName" "middleName" "lastName" "initials" "fullName" "searchName" "lastNameChangeDate" "phoneNumber" "mobilePhoneNumber" "eMail" "birthDate" "socialSecurityNumber" "vatRegistrationNumber" "taxInspectionCode" "gender" "familyStatus" "nationality" "nativeLanguage" "nonResident" "sickLeavePaymentBenefit" "citizenshipCountryRegion" "comment" "lastDateModified" "numberSeries" "firstNameEnglish" "middleNameEnglish" "lastNameEnglish" "uniqueRegisteredNumber" "privacyBlocked" "companyEmail" "companyPhoneNumber" "singleParent" "creationDate" "externalCreated" "fullNameEnglish" "finCode" "trainingProfile" "reserveRank" "reservationStatus" "reasonForAnnulation" "kindSickLeaveBenefit" "hasActiveContract" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "personMedInfo" "personAlternativeAddresses" "personDocuments" "personRelatives" "personQualifications" "personJobHistory" "personPicture"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "initials": "string",
  • "fullName": "string",
  • "searchName": "string",
  • "lastNameChangeDate": "2017-04-13",
  • "phoneNumber": "string",
  • "mobilePhoneNumber": "string",
  • "eMail": "string",
  • "birthDate": "2017-04-13",
  • "socialSecurityNumber": "string",
  • "vatRegistrationNumber": "string",
  • "taxInspectionCode": "stri",
  • "gender": "_x0020_",
  • "familyStatus": "_x0020_",
  • "nationality": "string",
  • "nativeLanguage": "string",
  • "nonResident": true,
  • "sickLeavePaymentBenefit": true,
  • "citizenshipCountryRegion": "string",
  • "comment": true,
  • "lastDateModified": "2017-04-13",
  • "numberSeries": "string",
  • "firstNameEnglish": "string",
  • "middleNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "uniqueRegisteredNumber": "string",
  • "privacyBlocked": true,
  • "companyEmail": "string",
  • "companyPhoneNumber": "string",
  • "singleParent": true,
  • "creationDate": "2017-04-13",
  • "externalCreated": true,
  • "fullNameEnglish": "string",
  • "finCode": "string",
  • "trainingProfile": "string",
  • "reserveRank": "string",
  • "reservationStatus": "_x0020_",
  • "reasonForAnnulation": "string",
  • "kindSickLeaveBenefit": "string",
  • "hasActiveContract": true,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "personMedInfo": [
    ],
  • "personMedInfo@odata.count": 0,
  • "personAlternativeAddresses": [
    ],
  • "personAlternativeAddresses@odata.count": 0,
  • "personDocuments": [
    ],
  • "personDocuments@odata.count": 0,
  • "personRelatives": [
    ],
  • "personRelatives@odata.count": 0,
  • "personQualifications": [
    ],
  • "personQualifications@odata.count": 0,
  • "personJobHistory": [
    ],
  • "personJobHistory@odata.count": 0,
  • "personPicture": {
    }
}

Update person information

Updates specific fields of a person record. Common updates include contact information changes, address updates, or military registration status modifications. The system tracks name changes in history. Use this endpoint to maintain accurate personal data throughout the person's lifecycle.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Request Body schema: application/json
required

New property values

number
string or null <= 20 characters
firstName
string or null <= 30 characters
middleName
string or null <= 30 characters
lastName
string or null <= 30 characters
initials
string or null <= 30 characters
fullName
string or null <= 100 characters
searchName
string or null <= 250 characters
lastNameChangeDate
string or null <date>
phoneNumber
string or null <= 30 characters
mobilePhoneNumber
string or null <= 30 characters
eMail
string or null <= 80 characters
birthDate
string or null <date>
socialSecurityNumber
string or null <= 14 characters
vatRegistrationNumber
string or null <= 20 characters
taxInspectionCode
string or null <= 4 characters
gender
string or null (employeeGender)
Enum: "_x0020_" "Female" "Male" "Non_x002D_binary" "Self_x002D_Described" "I_x0020_don_x2019_t_x0020_wish_x0020_to_x0020_answer"
familyStatus
string or null (smaPersonFamilyStatus)
Enum: "_x0020_" "Single" "Married" "Divorced" "Widowed" "Civil_x0020_Marriage"
nationality
string or null <= 10 characters
nativeLanguage
string or null <= 10 characters
nonResident
boolean or null
sickLeavePaymentBenefit
boolean or null
citizenshipCountryRegion
string or null <= 10 characters
comment
boolean or null
lastDateModified
string or null <date>
numberSeries
string or null <= 20 characters
firstNameEnglish
string or null <= 30 characters
middleNameEnglish
string or null <= 30 characters
lastNameEnglish
string or null <= 30 characters
uniqueRegisteredNumber
string or null <= 30 characters
privacyBlocked
boolean or null
companyEmail
string or null <= 80 characters
companyPhoneNumber
string or null <= 30 characters
singleParent
boolean or null
creationDate
string or null <date>
externalCreated
boolean or null
fullNameEnglish
string or null <= 100 characters
finCode
string or null <= 20 characters
trainingProfile
string or null <= 20 characters
reserveRank
string or null <= 50 characters
reservationStatus
string or null (smaReservationStatus)
Enum: "_x0020_" "Sent_x0020_for_x0020_reservation" "Reserved" "Annul" "Deferral"
reasonForAnnulation
string or null <= 120 characters
kindSickLeaveBenefit
string or null <= 20 characters
hasActiveContract
boolean or null
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "number": "string",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "initials": "string",
  • "fullName": "string",
  • "searchName": "string",
  • "lastNameChangeDate": "2017-04-13",
  • "phoneNumber": "string",
  • "mobilePhoneNumber": "string",
  • "eMail": "string",
  • "birthDate": "2017-04-13",
  • "socialSecurityNumber": "string",
  • "vatRegistrationNumber": "string",
  • "taxInspectionCode": "stri",
  • "gender": "_x0020_",
  • "familyStatus": "_x0020_",
  • "nationality": "string",
  • "nativeLanguage": "string",
  • "nonResident": true,
  • "sickLeavePaymentBenefit": true,
  • "citizenshipCountryRegion": "string",
  • "comment": true,
  • "lastDateModified": "2017-04-13",
  • "numberSeries": "string",
  • "firstNameEnglish": "string",
  • "middleNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "uniqueRegisteredNumber": "string",
  • "privacyBlocked": true,
  • "companyEmail": "string",
  • "companyPhoneNumber": "string",
  • "singleParent": true,
  • "creationDate": "2017-04-13",
  • "externalCreated": true,
  • "fullNameEnglish": "string",
  • "finCode": "string",
  • "trainingProfile": "string",
  • "reserveRank": "string",
  • "reservationStatus": "_x0020_",
  • "reasonForAnnulation": "string",
  • "kindSickLeaveBenefit": "string",
  • "hasActiveContract": true,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete a person record

Permanently removes a person from the system. This operation is restricted and will fail if the person has any active labor contracts or is referenced in employee records. Consider privacy implications and data retention requirements before deletion.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List medical information for personId

Returns all medical information records linked to the person specified by personId. Use OData filters to narrow results by status or date.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "startingDate" "startingDate desc" "endingDate" "endingDate desc" "type" "type desc" "insurerNumber" "insurerNumber desc" "polyclinicName" "polyclinicName desc" "stomatology" "stomatology desc" "antenatalClinic" "antenatalClinic desc" "policeNumber" "policeNumber desc" "disabilityGroup" "disabilityGroup desc" "tekType" "tekType desc" "tekDocumentNumber" "tekDocumentNumber desc" "tekDocumentDate" "tekDocumentDate desc" "policeSeries" "policeSeries desc" "privilege" "privilege desc" "employeeNumber" "employeeNumber desc" "medicalExaminationType" "medicalExaminationType desc" "documentDetails" "documentDetails desc" "status" "status desc" "insuranceType" "insuranceType desc" "relativeNumber" "relativeNumber desc" "addGuaranteeEmploymentCode" "addGuaranteeEmploymentCode desc" "lineNumber" "lineNumber desc" "description" "description desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "startingDate" "endingDate" "type" "insurerNumber" "polyclinicName" "stomatology" "antenatalClinic" "policeNumber" "disabilityGroup" "tekType" "tekDocumentNumber" "tekDocumentDate" "policeSeries" "privilege" "employeeNumber" "medicalExaminationType" "documentDetails" "status" "insuranceType" "relativeNumber" "addGuaranteeEmploymentCode" "lineNumber" "description" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "personRelative"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create medical info for personId

Adds a new medical information record to the person identified by personId. Include insurer details, disability information, and validity dates as required.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Request Body schema: application/json
required

New entity

id
required
string <uuid>
startingDate
string or null <date>
endingDate
string or null <date>
type
string or null (smaPersonMedicalInfoType)
Enum: "Insurance" "Disability" "Privilege" "Medical_x0020_Examination" "Pregnancy" "Care"
insurerNumber
string or null <= 20 characters
polyclinicName
string or null <= 100 characters
stomatology
string or null <= 100 characters
antenatalClinic
string or null <= 100 characters
policeNumber
string or null <= 30 characters
disabilityGroup
string or null (smaPersonDisabilityGroup)
Enum: "1" "2" "3" "_x0020_"
tekType
string or null (smaPersonMedicalTEKType)
Enum: "_x0020_" "VTE" "MCE"
tekDocumentNumber
string or null <= 30 characters
tekDocumentDate
string or null <date>
policeSeries
string or null <= 10 characters
privilege
string or null (smaPersonMedicalPrivilege)
Enum: "_x0020_" "Pensioner" "Afghanistan_x0020_Veteran" "Chernobyl_x0020_Veteran"
employeeNumber
string or null <= 20 characters
medicalExaminationType
string or null (smaPersonMedicalExamType)
Enum: "_x0020_" "Preliminary" "Periodic" "Extraordinary" "Additional"
documentDetails
string or null <= 50 characters
status
string or null (smaPersonMedExamStatus)
Enum: "_x0020_" "Planned" "Released"
insuranceType
string or null (smaPersonMedInsuranceType)
Enum: "_x0020_" "Health_x0020_Insurance" "Pension_x0020_Insurance" "Life_x0020_Insurance" "Additional"
relativeNumber
integer or null <int32>
addGuaranteeEmploymentCode
string or null <= 10 characters
lineNumber
integer or null <int32>
description
string or null <= 250 characters
lastModifiedDateTime
string or null <date-time>
object or null (personRelative (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "type": "Insurance",
  • "insurerNumber": "string",
  • "polyclinicName": "string",
  • "stomatology": "string",
  • "antenatalClinic": "string",
  • "policeNumber": "string",
  • "disabilityGroup": "1",
  • "tekType": "_x0020_",
  • "tekDocumentNumber": "string",
  • "tekDocumentDate": "2017-04-13",
  • "policeSeries": "string",
  • "privilege": "_x0020_",
  • "employeeNumber": "string",
  • "medicalExaminationType": "_x0020_",
  • "documentDetails": "string",
  • "status": "_x0020_",
  • "insuranceType": "_x0020_",
  • "relativeNumber": 0,
  • "addGuaranteeEmploymentCode": "string",
  • "lineNumber": 0,
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "personRelative": {
    }
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "type": "Insurance",
  • "insurerNumber": "string",
  • "polyclinicName": "string",
  • "stomatology": "string",
  • "antenatalClinic": "string",
  • "policeNumber": "string",
  • "disabilityGroup": "1",
  • "tekType": "_x0020_",
  • "tekDocumentNumber": "string",
  • "tekDocumentDate": "2017-04-13",
  • "policeSeries": "string",
  • "privilege": "_x0020_",
  • "employeeNumber": "string",
  • "medicalExaminationType": "_x0020_",
  • "documentDetails": "string",
  • "status": "_x0020_",
  • "insuranceType": "_x0020_",
  • "relativeNumber": 0,
  • "addGuaranteeEmploymentCode": "string",
  • "lineNumber": 0,
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "personRelative": {
    }
}

Get medical info entry

Retrieves the medical information record identified by personMedInfoId for the person specified by personId.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personMedInfoId
required
string <uuid>
Examples:
  • 9abcdef0-1b23-4c56-9def-0123456789ab -

Unique identifier (GUID) of a person's medical information record.

query Parameters
$select
Array of strings unique
Items Enum: "id" "startingDate" "endingDate" "type" "insurerNumber" "polyclinicName" "stomatology" "antenatalClinic" "policeNumber" "disabilityGroup" "tekType" "tekDocumentNumber" "tekDocumentDate" "policeSeries" "privilege" "employeeNumber" "medicalExaminationType" "documentDetails" "status" "insuranceType" "relativeNumber" "addGuaranteeEmploymentCode" "lineNumber" "description" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "personRelative"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "type": "Insurance",
  • "insurerNumber": "string",
  • "polyclinicName": "string",
  • "stomatology": "string",
  • "antenatalClinic": "string",
  • "policeNumber": "string",
  • "disabilityGroup": "1",
  • "tekType": "_x0020_",
  • "tekDocumentNumber": "string",
  • "tekDocumentDate": "2017-04-13",
  • "policeSeries": "string",
  • "privilege": "_x0020_",
  • "employeeNumber": "string",
  • "medicalExaminationType": "_x0020_",
  • "documentDetails": "string",
  • "status": "_x0020_",
  • "insuranceType": "_x0020_",
  • "relativeNumber": 0,
  • "addGuaranteeEmploymentCode": "string",
  • "lineNumber": 0,
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "personRelative": {
    }
}

Update medical info entry

Updates the selected medical information record. Use If-Match headers with the latest ETag to avoid overwriting parallel edits.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personMedInfoId
required
string <uuid>
Examples:
  • 9abcdef0-1b23-4c56-9def-0123456789ab -

Unique identifier (GUID) of a person's medical information record.

Request Body schema: application/json
required

New property values

startingDate
string or null <date>
endingDate
string or null <date>
type
string or null (smaPersonMedicalInfoType)
Enum: "Insurance" "Disability" "Privilege" "Medical_x0020_Examination" "Pregnancy" "Care"
insurerNumber
string or null <= 20 characters
polyclinicName
string or null <= 100 characters
stomatology
string or null <= 100 characters
antenatalClinic
string or null <= 100 characters
policeNumber
string or null <= 30 characters
disabilityGroup
string or null (smaPersonDisabilityGroup)
Enum: "1" "2" "3" "_x0020_"
tekType
string or null (smaPersonMedicalTEKType)
Enum: "_x0020_" "VTE" "MCE"
tekDocumentNumber
string or null <= 30 characters
tekDocumentDate
string or null <date>
policeSeries
string or null <= 10 characters
privilege
string or null (smaPersonMedicalPrivilege)
Enum: "_x0020_" "Pensioner" "Afghanistan_x0020_Veteran" "Chernobyl_x0020_Veteran"
employeeNumber
string or null <= 20 characters
medicalExaminationType
string or null (smaPersonMedicalExamType)
Enum: "_x0020_" "Preliminary" "Periodic" "Extraordinary" "Additional"
documentDetails
string or null <= 50 characters
status
string or null (smaPersonMedExamStatus)
Enum: "_x0020_" "Planned" "Released"
insuranceType
string or null (smaPersonMedInsuranceType)
Enum: "_x0020_" "Health_x0020_Insurance" "Pension_x0020_Insurance" "Life_x0020_Insurance" "Additional"
relativeNumber
integer or null <int32>
addGuaranteeEmploymentCode
string or null <= 10 characters
lineNumber
integer or null <int32>
description
string or null <= 250 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "type": "Insurance",
  • "insurerNumber": "string",
  • "polyclinicName": "string",
  • "stomatology": "string",
  • "antenatalClinic": "string",
  • "policeNumber": "string",
  • "disabilityGroup": "1",
  • "tekType": "_x0020_",
  • "tekDocumentNumber": "string",
  • "tekDocumentDate": "2017-04-13",
  • "policeSeries": "string",
  • "privilege": "_x0020_",
  • "employeeNumber": "string",
  • "medicalExaminationType": "_x0020_",
  • "documentDetails": "string",
  • "status": "_x0020_",
  • "insuranceType": "_x0020_",
  • "relativeNumber": 0,
  • "addGuaranteeEmploymentCode": "string",
  • "lineNumber": 0,
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete medical info entry

Deletes the referenced medical information record from the person's profile while respecting legal retention rules.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personMedInfoId
required
string <uuid>
Examples:
  • 9abcdef0-1b23-4c56-9def-0123456789ab -

Unique identifier (GUID) of a person's medical information record.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List alternative addresses for personId

Returns all alternative address records linked to the person identified by personId. Useful for storing seasonal or residential addresses.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "code" "code desc" "displayName" "displayName desc" "name2" "name2 desc" "address" "address desc" "address2" "address2 desc" "city" "city desc" "postCode" "postCode desc" "county" "county desc" "phoneNumber" "phoneNumber desc" "faxNumber" "faxNumber desc" "eMail" "eMail desc" "comment" "comment desc" "countryRegionCode" "countryRegionCode desc" "municipality" "municipality desc" "adminCategory" "adminCategory desc" "atCodifier" "atCodifier desc" "street" "street desc" "house" "house desc" "building" "building desc" "apartment" "apartment desc" "addressType" "addressType desc" "area" "area desc" "validFromDate" "validFromDate desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "code" "displayName" "name2" "address" "address2" "city" "postCode" "county" "phoneNumber" "faxNumber" "eMail" "comment" "countryRegionCode" "municipality" "adminCategory" "atCodifier" "street" "house" "building" "apartment" "addressType" "area" "validFromDate" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create alternative address for personId

Adds a new alternative address record for the specified person. Provide address fields and validity dates.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Request Body schema: application/json
required

New entity

id
required
string <uuid>
code
string <= 10 characters
displayName
string or null <= 100 characters
name2
string or null <= 50 characters
address
string or null <= 250 characters
address2
string or null <= 250 characters
city
string or null <= 30 characters
postCode
string or null <= 20 characters
county
string or null <= 50 characters
phoneNumber
string or null <= 30 characters
faxNumber
string or null <= 30 characters
eMail
string or null <= 80 characters
comment
boolean or null
countryRegionCode
string or null <= 10 characters
municipality
string or null <= 50 characters
adminCategory
string or null (smaPersonAddrAdmCategory)
Enum: "City" "Village"
atCodifier
string or null <= 19 characters
street
string or null <= 50 characters
house
string or null <= 10 characters
building
string or null <= 10 characters
apartment
string or null <= 10 characters
addressType
string or null (smaPersonAddressType)
Enum: "Permanent" "Registration" "Birthplace" "Other"
area
string or null <= 50 characters
validFromDate
string <date>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "name2": "string",
  • "address": "string",
  • "address2": "string",
  • "city": "string",
  • "postCode": "string",
  • "county": "string",
  • "phoneNumber": "string",
  • "faxNumber": "string",
  • "eMail": "string",
  • "comment": true,
  • "countryRegionCode": "string",
  • "municipality": "string",
  • "adminCategory": "City",
  • "atCodifier": "string",
  • "street": "string",
  • "house": "string",
  • "building": "string",
  • "apartment": "string",
  • "addressType": "Permanent",
  • "area": "string",
  • "validFromDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "name2": "string",
  • "address": "string",
  • "address2": "string",
  • "city": "string",
  • "postCode": "string",
  • "county": "string",
  • "phoneNumber": "string",
  • "faxNumber": "string",
  • "eMail": "string",
  • "comment": true,
  • "countryRegionCode": "string",
  • "municipality": "string",
  • "adminCategory": "City",
  • "atCodifier": "string",
  • "street": "string",
  • "house": "string",
  • "building": "string",
  • "apartment": "string",
  • "addressType": "Permanent",
  • "area": "string",
  • "validFromDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get alternative address entry

Returns the alternative address identified by personAlternativeAddressId for the person specified by personId.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personAlternativeAddressId
required
string <uuid>
Examples:
  • 8abcdef0-12b3-4c56-8def-0123456789ab -

Unique identifier (GUID) of an alternative address associated with a person.

query Parameters
$select
Array of strings unique
Items Enum: "id" "code" "displayName" "name2" "address" "address2" "city" "postCode" "county" "phoneNumber" "faxNumber" "eMail" "comment" "countryRegionCode" "municipality" "adminCategory" "atCodifier" "street" "house" "building" "apartment" "addressType" "area" "validFromDate" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "name2": "string",
  • "address": "string",
  • "address2": "string",
  • "city": "string",
  • "postCode": "string",
  • "county": "string",
  • "phoneNumber": "string",
  • "faxNumber": "string",
  • "eMail": "string",
  • "comment": true,
  • "countryRegionCode": "string",
  • "municipality": "string",
  • "adminCategory": "City",
  • "atCodifier": "string",
  • "street": "string",
  • "house": "string",
  • "building": "string",
  • "apartment": "string",
  • "addressType": "Permanent",
  • "area": "string",
  • "validFromDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update alternative address entry

Updates the selected alternative address record. Include only fields that need changes and pass an If-Match header for concurrency.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personAlternativeAddressId
required
string <uuid>
Examples:
  • 8abcdef0-12b3-4c56-8def-0123456789ab -

Unique identifier (GUID) of an alternative address associated with a person.

Request Body schema: application/json
required

New property values

code
string <= 10 characters
displayName
string or null <= 100 characters
name2
string or null <= 50 characters
address
string or null <= 250 characters
address2
string or null <= 250 characters
city
string or null <= 30 characters
postCode
string or null <= 20 characters
county
string or null <= 50 characters
phoneNumber
string or null <= 30 characters
faxNumber
string or null <= 30 characters
eMail
string or null <= 80 characters
comment
boolean or null
countryRegionCode
string or null <= 10 characters
municipality
string or null <= 50 characters
adminCategory
string or null (smaPersonAddrAdmCategory)
Enum: "City" "Village"
atCodifier
string or null <= 19 characters
street
string or null <= 50 characters
house
string or null <= 10 characters
building
string or null <= 10 characters
apartment
string or null <= 10 characters
addressType
string or null (smaPersonAddressType)
Enum: "Permanent" "Registration" "Birthplace" "Other"
area
string or null <= 50 characters
validFromDate
string <date>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "displayName": "string",
  • "name2": "string",
  • "address": "string",
  • "address2": "string",
  • "city": "string",
  • "postCode": "string",
  • "county": "string",
  • "phoneNumber": "string",
  • "faxNumber": "string",
  • "eMail": "string",
  • "comment": true,
  • "countryRegionCode": "string",
  • "municipality": "string",
  • "adminCategory": "City",
  • "atCodifier": "string",
  • "street": "string",
  • "house": "string",
  • "building": "string",
  • "apartment": "string",
  • "addressType": "Permanent",
  • "area": "string",
  • "validFromDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete alternative address entry

Removes the referenced alternative address from the person's profile.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personAlternativeAddressId
required
string <uuid>
Examples:
  • 8abcdef0-12b3-4c56-8def-0123456789ab -

Unique identifier (GUID) of an alternative address associated with a person.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List documents for personId

Returns all document records uploaded to the person's dossier for personId. Includes passports, IDs, and supporting HR files.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "personDocumentType" "personDocumentType desc" "personDocumentTypeName" "personDocumentTypeName desc" "documentType" "documentType desc" "validFromDate" "validFromDate desc" "validToDate" "validToDate desc" "documentSeries" "documentSeries desc" "documentNumber" "documentNumber desc" "issueAuthority" "issueAuthority desc" "issueDate" "issueDate desc" "default" "default desc" "recordNumber" "recordNumber desc" "validFromTime" "validFromTime desc" "constant" "constant desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "personDocumentType" "personDocumentTypeName" "documentType" "validFromDate" "validToDate" "documentSeries" "documentNumber" "issueAuthority" "issueDate" "default" "recordNumber" "validFromTime" "constant" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create document for personId

Creates a new document record linked to the specified person. Attach metadata such as type, issue dates, and issuing authority.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Request Body schema: application/json
required

New entity

id
required
string <uuid>
personDocumentType
string or null <= 2 characters
personDocumentTypeName
string or null <= 50 characters
documentType
string or null (smaPersonDocumentType)
Enum: "Passport" "ID_x0020_Card" "Employment_x0020_Record_x0020_Book" "Certificate" "Military_x0020_ID" "Accounting_x0020_Card" "Registration_x0020_Certificate" "Temporary_x0020_Certificate" "Pension_x0020_Certificate" "Driver_x0020_License" "Other" "Foreign_x0020_Passport" "SMA_x0020_Military_x0020_Reg_x002E__x0020_Certificate" "SMA_x0020_Death_x0020_certificate" "SMA_x0020_Electronic_x0020_Military_x0020_Registration_x0020_Document" "SMA_x0020_Paper_x0020_Military_x0020_Registration_x0020_Document" "SMA_x0020_Mobilisation_x0020_Order"
validFromDate
string or null <date>
validToDate
string or null <date>
documentSeries
string or null <= 10 characters
documentNumber
string or null <= 30 characters
issueAuthority
string or null <= 250 characters
issueDate
string or null <date>
default
boolean or null
recordNumber
string or null <= 20 characters
validFromTime
string or null
constant
string or null <= 10 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "personDocumentType": "st",
  • "personDocumentTypeName": "string",
  • "documentType": "Passport",
  • "validFromDate": "2017-04-13",
  • "validToDate": "2017-04-13",
  • "documentSeries": "string",
  • "documentNumber": "string",
  • "issueAuthority": "string",
  • "issueDate": "2017-04-13",
  • "default": true,
  • "recordNumber": "string",
  • "validFromTime": "string",
  • "constant": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "personDocumentType": "st",
  • "personDocumentTypeName": "string",
  • "documentType": "Passport",
  • "validFromDate": "2017-04-13",
  • "validToDate": "2017-04-13",
  • "documentSeries": "string",
  • "documentNumber": "string",
  • "issueAuthority": "string",
  • "issueDate": "2017-04-13",
  • "default": true,
  • "recordNumber": "string",
  • "validFromTime": "string",
  • "constant": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get document entry

Returns the document record identified by personDocumentId for the person specified by personId.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personDocumentId
required
string <uuid>
Examples:
  • 7abcdef0-123b-4c56-7def-0123456789ab -

Unique identifier (GUID) of a document stored in the person's dossier.

query Parameters
$select
Array of strings unique
Items Enum: "id" "personDocumentType" "personDocumentTypeName" "documentType" "validFromDate" "validToDate" "documentSeries" "documentNumber" "issueAuthority" "issueDate" "default" "recordNumber" "validFromTime" "constant" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "personDocumentType": "st",
  • "personDocumentTypeName": "string",
  • "documentType": "Passport",
  • "validFromDate": "2017-04-13",
  • "validToDate": "2017-04-13",
  • "documentSeries": "string",
  • "documentNumber": "string",
  • "issueAuthority": "string",
  • "issueDate": "2017-04-13",
  • "default": true,
  • "recordNumber": "string",
  • "validFromTime": "string",
  • "constant": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update document entry

Updates the selected document metadata. Send only changed fields and include If-Match to avoid overwriting concurrent edits.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personDocumentId
required
string <uuid>
Examples:
  • 7abcdef0-123b-4c56-7def-0123456789ab -

Unique identifier (GUID) of a document stored in the person's dossier.

Request Body schema: application/json
required

New property values

personDocumentType
string or null <= 2 characters
personDocumentTypeName
string or null <= 50 characters
documentType
string or null (smaPersonDocumentType)
Enum: "Passport" "ID_x0020_Card" "Employment_x0020_Record_x0020_Book" "Certificate" "Military_x0020_ID" "Accounting_x0020_Card" "Registration_x0020_Certificate" "Temporary_x0020_Certificate" "Pension_x0020_Certificate" "Driver_x0020_License" "Other" "Foreign_x0020_Passport" "SMA_x0020_Military_x0020_Reg_x002E__x0020_Certificate" "SMA_x0020_Death_x0020_certificate" "SMA_x0020_Electronic_x0020_Military_x0020_Registration_x0020_Document" "SMA_x0020_Paper_x0020_Military_x0020_Registration_x0020_Document" "SMA_x0020_Mobilisation_x0020_Order"
validFromDate
string or null <date>
validToDate
string or null <date>
documentSeries
string or null <= 10 characters
documentNumber
string or null <= 30 characters
issueAuthority
string or null <= 250 characters
issueDate
string or null <date>
default
boolean or null
recordNumber
string or null <= 20 characters
validFromTime
string or null
constant
string or null <= 10 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "personDocumentType": "st",
  • "personDocumentTypeName": "string",
  • "documentType": "Passport",
  • "validFromDate": "2017-04-13",
  • "validToDate": "2017-04-13",
  • "documentSeries": "string",
  • "documentNumber": "string",
  • "issueAuthority": "string",
  • "issueDate": "2017-04-13",
  • "default": true,
  • "recordNumber": "string",
  • "validFromTime": "string",
  • "constant": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete document entry

Deletes the referenced document from the person's dossier. Ensure any stored attachments are handled according to retention policy.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personDocumentId
required
string <uuid>
Examples:
  • 7abcdef0-123b-4c56-7def-0123456789ab -

Unique identifier (GUID) of a document stored in the person's dossier.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List relatives for personId

Returns all relative records associated with personId, including relationship type and benefits eligibility flags.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "lineNumber" "lineNumber desc" "relativeCode" "relativeCode desc" "firstName" "firstName desc" "middleName" "middleName desc" "lastName" "lastName desc" "birthDate" "birthDate desc" "phoneNumber" "phoneNumber desc" "relativePersonNumber" "relativePersonNumber desc" "relativePersonId" "relativePersonId desc" "comment" "comment desc" "relativeType" "relativeType desc" "includeForAddVacation" "includeForAddVacation desc" "relationStartDate" "relationStartDate desc" "relationEndDate" "relationEndDate desc" "firstNameEnglish" "firstNameEnglish desc" "lastNameEnglish" "lastNameEnglish desc" "endDateFormula" "endDateFormula desc" "endDateEvent" "endDateEvent desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "lineNumber" "relativeCode" "firstName" "middleName" "lastName" "birthDate" "phoneNumber" "relativePersonNumber" "relativePersonId" "comment" "relativeType" "includeForAddVacation" "relationStartDate" "relationEndDate" "firstNameEnglish" "lastNameEnglish" "endDateFormula" "endDateEvent" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create relative for personId

Adds a new relative record for the specified person. Supply relationship, personal info, and tax benefit indicators.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Request Body schema: application/json
required

New entity

id
required
string <uuid>
lineNumber
integer or null <int32>
relativeCode
string or null <= 10 characters
firstName
string or null <= 30 characters
middleName
string or null <= 30 characters
lastName
string or null <= 30 characters
birthDate
string or null <date>
phoneNumber
string or null <= 30 characters
relativePersonNumber
string or null <= 20 characters
relativePersonId
string or null <uuid>
comment
boolean or null
relativeType
string or null (smaRelativeType)
Enum: "_x0020_" "Child" "Parent" "Sibling" "Spouse" "Grandparent" "Grandchild" "Aunt_x002F_Uncle" "Niece_x002F_Nephew"
includeForAddVacation
boolean or null
relationStartDate
string or null <date>
relationEndDate
string or null <date>
firstNameEnglish
string or null <= 30 characters
lastNameEnglish
string or null <= 30 characters
endDateFormula
string or null
endDateEvent
string or null <date>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineNumber": 0,
  • "relativeCode": "string",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "birthDate": "2017-04-13",
  • "phoneNumber": "string",
  • "relativePersonNumber": "string",
  • "relativePersonId": "01234567-89ab-cdef-0123-456789abcdef",
  • "comment": true,
  • "relativeType": "_x0020_",
  • "includeForAddVacation": true,
  • "relationStartDate": "2017-04-13",
  • "relationEndDate": "2017-04-13",
  • "firstNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "endDateFormula": "string",
  • "endDateEvent": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineNumber": 0,
  • "relativeCode": "string",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "birthDate": "2017-04-13",
  • "phoneNumber": "string",
  • "relativePersonNumber": "string",
  • "relativePersonId": "01234567-89ab-cdef-0123-456789abcdef",
  • "comment": true,
  • "relativeType": "_x0020_",
  • "includeForAddVacation": true,
  • "relationStartDate": "2017-04-13",
  • "relationEndDate": "2017-04-13",
  • "firstNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "endDateFormula": "string",
  • "endDateEvent": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get relative entry

Retrieves the relative identified by personRelativeId for the person specified by personId.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personRelativeId
required
string <uuid>
Examples:
  • 6abcdef0-1234-5c67-6def-0123456789ab -

Unique identifier (GUID) of a person's relative record.

query Parameters
$select
Array of strings unique
Items Enum: "id" "lineNumber" "relativeCode" "firstName" "middleName" "lastName" "birthDate" "phoneNumber" "relativePersonNumber" "relativePersonId" "comment" "relativeType" "includeForAddVacation" "relationStartDate" "relationEndDate" "firstNameEnglish" "lastNameEnglish" "endDateFormula" "endDateEvent" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineNumber": 0,
  • "relativeCode": "string",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "birthDate": "2017-04-13",
  • "phoneNumber": "string",
  • "relativePersonNumber": "string",
  • "relativePersonId": "01234567-89ab-cdef-0123-456789abcdef",
  • "comment": true,
  • "relativeType": "_x0020_",
  • "includeForAddVacation": true,
  • "relationStartDate": "2017-04-13",
  • "relationEndDate": "2017-04-13",
  • "firstNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "endDateFormula": "string",
  • "endDateEvent": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update relative entry

Updates the selected relative record. Provide only the fields to change; submit If-Match with the latest ETag.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personRelativeId
required
string <uuid>
Examples:
  • 6abcdef0-1234-5c67-6def-0123456789ab -

Unique identifier (GUID) of a person's relative record.

Request Body schema: application/json
required

New property values

lineNumber
integer or null <int32>
relativeCode
string or null <= 10 characters
firstName
string or null <= 30 characters
middleName
string or null <= 30 characters
lastName
string or null <= 30 characters
birthDate
string or null <date>
phoneNumber
string or null <= 30 characters
relativePersonNumber
string or null <= 20 characters
relativePersonId
string or null <uuid>
comment
boolean or null
relativeType
string or null (smaRelativeType)
Enum: "_x0020_" "Child" "Parent" "Sibling" "Spouse" "Grandparent" "Grandchild" "Aunt_x002F_Uncle" "Niece_x002F_Nephew"
includeForAddVacation
boolean or null
relationStartDate
string or null <date>
relationEndDate
string or null <date>
firstNameEnglish
string or null <= 30 characters
lastNameEnglish
string or null <= 30 characters
endDateFormula
string or null
endDateEvent
string or null <date>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "lineNumber": 0,
  • "relativeCode": "string",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "birthDate": "2017-04-13",
  • "phoneNumber": "string",
  • "relativePersonNumber": "string",
  • "relativePersonId": "01234567-89ab-cdef-0123-456789abcdef",
  • "comment": true,
  • "relativeType": "_x0020_",
  • "includeForAddVacation": true,
  • "relationStartDate": "2017-04-13",
  • "relationEndDate": "2017-04-13",
  • "firstNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "endDateFormula": "string",
  • "endDateEvent": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete relative entry

Removes the relative record from the person's profile while preserving historical payroll calculations.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personRelativeId
required
string <uuid>
Examples:
  • 6abcdef0-1234-5c67-6def-0123456789ab -

Unique identifier (GUID) of a person's relative record.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List qualifications for personId

Returns qualification, education, and certification records associated with the person identified by personId.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "lineNumber" "lineNumber desc" "qualificationCode" "qualificationCode desc" "fromDate" "fromDate desc" "toDate" "toDate desc" "type" "type desc" "description" "description desc" "institutionCompany" "institutionCompany desc" "cost" "cost desc" "courseGrade" "courseGrade desc" "employeeStatus" "employeeStatus desc" "comment" "comment desc" "expirationDate" "expirationDate desc" "includeInWorkExperience" "includeInWorkExperience desc" "workExperienceYears" "workExperienceYears desc" "postgraduateStudy" "postgraduateStudy desc" "useRecordForP2Printing" "useRecordForP2Printing desc" "qualificationType" "qualificationType desc" "documentType" "documentType desc" "documentNumber" "documentNumber desc" "documentSeries" "documentSeries desc" "documentDate" "documentDate desc" "kindOfEducation" "kindOfEducation desc" "formOfEducation" "formOfEducation desc" "typeOfEducation" "typeOfEducation desc" "organizationAddress" "organizationAddress desc" "facultyName" "facultyName desc" "speciality" "speciality desc" "scienceDegree" "scienceDegree desc" "languageCode" "languageCode desc" "languageProficiency" "languageProficiency desc" "specialityCode" "specialityCode desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "lineNumber" "qualificationCode" "fromDate" "toDate" "type" "description" "institutionCompany" "cost" "courseGrade" "employeeStatus" "comment" "expirationDate" "includeInWorkExperience" "workExperienceYears" "postgraduateStudy" "useRecordForP2Printing" "qualificationType" "documentType" "documentNumber" "documentSeries" "documentDate" "kindOfEducation" "formOfEducation" "typeOfEducation" "organizationAddress" "facultyName" "speciality" "scienceDegree" "languageCode" "languageProficiency" "specialityCode" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create qualification for personId

Adds a new qualification or education record for the specified person. Provide institution, document, and validity details.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Request Body schema: application/json
required

New entity

id
required
string <uuid>
lineNumber
integer or null <int32>
qualificationCode
string or null <= 10 characters
fromDate
string or null <date>
toDate
string or null <date>
type
string or null (smaPersonQualificationType)
Enum: "_x0020_" "Internal" "External" "Previous_x0020_Position"
description
string or null <= 100 characters
institutionCompany
string or null <= 100 characters
(number or null) or (string or null) <decimal>
courseGrade
string or null <= 50 characters
employeeStatus
string or null (employeeStatus)
Enum: "Active" "Inactive" "Terminated"
comment
boolean or null
expirationDate
string or null <date>
includeInWorkExperience
boolean or null
(number or null) or (string or null) <decimal>
postgraduateStudy
string or null (smaPersonPostgraduateStudy)
Enum: "_x0020_" "Doctorate" "Postgraduate" "Graduate_x0020_school"
useRecordForP2Printing
boolean or null
qualificationType
string or null (smaQualificationType)
Enum: "Education" "Attestation" "Language" "Pre_x002D_employment_x0020_training"
documentType
string or null (smaQualificationDocType)
Enum: "_x0020_" "Diploma" "Certificate" "Other"
documentNumber
string or null <= 20 characters
documentSeries
string or null <= 10 characters
documentDate
string or null <date>
kindOfEducation
string or null <= 10 characters
formOfEducation
string or null <= 10 characters
typeOfEducation
string or null <= 10 characters
organizationAddress
string or null <= 50 characters
facultyName
string or null <= 30 characters
speciality
string or null <= 125 characters
scienceDegree
string or null <= 30 characters
languageCode
string or null <= 10 characters
languageProficiency
string or null <= 10 characters
specialityCode
string or null <= 10 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineNumber": 0,
  • "qualificationCode": "string",
  • "fromDate": "2017-04-13",
  • "toDate": "2017-04-13",
  • "type": "_x0020_",
  • "description": "string",
  • "institutionCompany": "string",
  • "cost": 0,
  • "courseGrade": "string",
  • "employeeStatus": "Active",
  • "comment": true,
  • "expirationDate": "2017-04-13",
  • "includeInWorkExperience": true,
  • "workExperienceYears": 0,
  • "postgraduateStudy": "_x0020_",
  • "useRecordForP2Printing": true,
  • "qualificationType": "Education",
  • "documentType": "_x0020_",
  • "documentNumber": "string",
  • "documentSeries": "string",
  • "documentDate": "2017-04-13",
  • "kindOfEducation": "string",
  • "formOfEducation": "string",
  • "typeOfEducation": "string",
  • "organizationAddress": "string",
  • "facultyName": "string",
  • "speciality": "string",
  • "scienceDegree": "string",
  • "languageCode": "string",
  • "languageProficiency": "string",
  • "specialityCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineNumber": 0,
  • "qualificationCode": "string",
  • "fromDate": "2017-04-13",
  • "toDate": "2017-04-13",
  • "type": "_x0020_",
  • "description": "string",
  • "institutionCompany": "string",
  • "cost": 0,
  • "courseGrade": "string",
  • "employeeStatus": "Active",
  • "comment": true,
  • "expirationDate": "2017-04-13",
  • "includeInWorkExperience": true,
  • "workExperienceYears": 0,
  • "postgraduateStudy": "_x0020_",
  • "useRecordForP2Printing": true,
  • "qualificationType": "Education",
  • "documentType": "_x0020_",
  • "documentNumber": "string",
  • "documentSeries": "string",
  • "documentDate": "2017-04-13",
  • "kindOfEducation": "string",
  • "formOfEducation": "string",
  • "typeOfEducation": "string",
  • "organizationAddress": "string",
  • "facultyName": "string",
  • "speciality": "string",
  • "scienceDegree": "string",
  • "languageCode": "string",
  • "languageProficiency": "string",
  • "specialityCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get qualification entry

Retrieves the qualification record identified by personQualificationId for the person specified by personId.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personQualificationId
required
string <uuid>
Examples:
  • 5abcdef0-1234-5c67-5def-0123456789ab -

Unique identifier (GUID) of a qualification entry linked to the person.

query Parameters
$select
Array of strings unique
Items Enum: "id" "lineNumber" "qualificationCode" "fromDate" "toDate" "type" "description" "institutionCompany" "cost" "courseGrade" "employeeStatus" "comment" "expirationDate" "includeInWorkExperience" "workExperienceYears" "postgraduateStudy" "useRecordForP2Printing" "qualificationType" "documentType" "documentNumber" "documentSeries" "documentDate" "kindOfEducation" "formOfEducation" "typeOfEducation" "organizationAddress" "facultyName" "speciality" "scienceDegree" "languageCode" "languageProficiency" "specialityCode" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineNumber": 0,
  • "qualificationCode": "string",
  • "fromDate": "2017-04-13",
  • "toDate": "2017-04-13",
  • "type": "_x0020_",
  • "description": "string",
  • "institutionCompany": "string",
  • "cost": 0,
  • "courseGrade": "string",
  • "employeeStatus": "Active",
  • "comment": true,
  • "expirationDate": "2017-04-13",
  • "includeInWorkExperience": true,
  • "workExperienceYears": 0,
  • "postgraduateStudy": "_x0020_",
  • "useRecordForP2Printing": true,
  • "qualificationType": "Education",
  • "documentType": "_x0020_",
  • "documentNumber": "string",
  • "documentSeries": "string",
  • "documentDate": "2017-04-13",
  • "kindOfEducation": "string",
  • "formOfEducation": "string",
  • "typeOfEducation": "string",
  • "organizationAddress": "string",
  • "facultyName": "string",
  • "speciality": "string",
  • "scienceDegree": "string",
  • "languageCode": "string",
  • "languageProficiency": "string",
  • "specialityCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update qualification entry

Updates the selected qualification record. Provide only the fields being changed and include the latest ETag in If-Match.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personQualificationId
required
string <uuid>
Examples:
  • 5abcdef0-1234-5c67-5def-0123456789ab -

Unique identifier (GUID) of a qualification entry linked to the person.

Request Body schema: application/json
required

New property values

lineNumber
integer or null <int32>
qualificationCode
string or null <= 10 characters
fromDate
string or null <date>
toDate
string or null <date>
type
string or null (smaPersonQualificationType)
Enum: "_x0020_" "Internal" "External" "Previous_x0020_Position"
description
string or null <= 100 characters
institutionCompany
string or null <= 100 characters
(number or null) or (string or null) <decimal>
courseGrade
string or null <= 50 characters
employeeStatus
string or null (employeeStatus)
Enum: "Active" "Inactive" "Terminated"
comment
boolean or null
expirationDate
string or null <date>
includeInWorkExperience
boolean or null
(number or null) or (string or null) <decimal>
postgraduateStudy
string or null (smaPersonPostgraduateStudy)
Enum: "_x0020_" "Doctorate" "Postgraduate" "Graduate_x0020_school"
useRecordForP2Printing
boolean or null
qualificationType
string or null (smaQualificationType)
Enum: "Education" "Attestation" "Language" "Pre_x002D_employment_x0020_training"
documentType
string or null (smaQualificationDocType)
Enum: "_x0020_" "Diploma" "Certificate" "Other"
documentNumber
string or null <= 20 characters
documentSeries
string or null <= 10 characters
documentDate
string or null <date>
kindOfEducation
string or null <= 10 characters
formOfEducation
string or null <= 10 characters
typeOfEducation
string or null <= 10 characters
organizationAddress
string or null <= 50 characters
facultyName
string or null <= 30 characters
speciality
string or null <= 125 characters
scienceDegree
string or null <= 30 characters
languageCode
string or null <= 10 characters
languageProficiency
string or null <= 10 characters
specialityCode
string or null <= 10 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "lineNumber": 0,
  • "qualificationCode": "string",
  • "fromDate": "2017-04-13",
  • "toDate": "2017-04-13",
  • "type": "_x0020_",
  • "description": "string",
  • "institutionCompany": "string",
  • "cost": 0,
  • "courseGrade": "string",
  • "employeeStatus": "Active",
  • "comment": true,
  • "expirationDate": "2017-04-13",
  • "includeInWorkExperience": true,
  • "workExperienceYears": 0,
  • "postgraduateStudy": "_x0020_",
  • "useRecordForP2Printing": true,
  • "qualificationType": "Education",
  • "documentType": "_x0020_",
  • "documentNumber": "string",
  • "documentSeries": "string",
  • "documentDate": "2017-04-13",
  • "kindOfEducation": "string",
  • "formOfEducation": "string",
  • "typeOfEducation": "string",
  • "organizationAddress": "string",
  • "facultyName": "string",
  • "speciality": "string",
  • "scienceDegree": "string",
  • "languageCode": "string",
  • "languageProficiency": "string",
  • "specialityCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete qualification entry

Deletes the qualification record from the person profile while retaining historical payroll references.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personQualificationId
required
string <uuid>
Examples:
  • 5abcdef0-1234-5c67-5def-0123456789ab -

Unique identifier (GUID) of a qualification entry linked to the person.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List job history for personId

Returns job history entries for the person identified by personId, including employer, contract type, and insured periods.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "startingDate" "startingDate desc" "endingDate" "endingDate desc" "employerName" "employerName desc" "insuredPeriodStartingDate" "insuredPeriodStartingDate desc" "insuredPeriodEndingDate" "insuredPeriodEndingDate desc" "documentNumber" "documentNumber desc" "documentDate" "documentDate desc" "specialityCode" "specialityCode desc" "specialityName" "specialityName desc" "hireConditions" "hireConditions desc" "kindOfWork" "kindOfWork desc" "workMode" "workMode desc" "conditionsOfWork" "conditionsOfWork desc" "contractType" "contractType desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "startingDate" "endingDate" "employerName" "insuredPeriodStartingDate" "insuredPeriodEndingDate" "documentNumber" "documentDate" "specialityCode" "specialityName" "hireConditions" "kindOfWork" "workMode" "conditionsOfWork" "contractType" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create job history entry for personId

Adds a new job history record for the specified person. Include employment dates, employer, and supporting document data.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Request Body schema: application/json
required

New entity

id
required
string <uuid>
startingDate
string or null <date>
endingDate
string or null <date>
employerName
string or null <= 50 characters
insuredPeriodStartingDate
string or null <date>
insuredPeriodEndingDate
string or null <date>
documentNumber
string or null <= 20 characters
documentDate
string or null <date>
specialityCode
string or null <= 10 characters
specialityName
string or null <= 50 characters
hireConditions
string or null <= 20 characters
kindOfWork
string or null (smaLaborKindofWork)
Enum: "_x0020_" "Permanent" "Temporary" "Seasonal"
workMode
string or null (smaLaborWorkMode)
Enum: "Primary_x0020_Job" "Internal_x0020_Co_x002D_work" "External_x0020_Co_x002D_work"
conditionsOfWork
string or null (smaLaborConditionsofWork)
Enum: "_x0020_" "Regular" "Heavy" "Unhealthy" "Very_x0020_Heavy" "Other"
contractType
string or null (smaJobHistoryContractType)
Enum: "Labor_x0020_Contract" "Civil_x0020_Contract" "Other"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "employerName": "string",
  • "insuredPeriodStartingDate": "2017-04-13",
  • "insuredPeriodEndingDate": "2017-04-13",
  • "documentNumber": "string",
  • "documentDate": "2017-04-13",
  • "specialityCode": "string",
  • "specialityName": "string",
  • "hireConditions": "string",
  • "kindOfWork": "_x0020_",
  • "workMode": "Primary_x0020_Job",
  • "conditionsOfWork": "_x0020_",
  • "contractType": "Labor_x0020_Contract",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "employerName": "string",
  • "insuredPeriodStartingDate": "2017-04-13",
  • "insuredPeriodEndingDate": "2017-04-13",
  • "documentNumber": "string",
  • "documentDate": "2017-04-13",
  • "specialityCode": "string",
  • "specialityName": "string",
  • "hireConditions": "string",
  • "kindOfWork": "_x0020_",
  • "workMode": "Primary_x0020_Job",
  • "conditionsOfWork": "_x0020_",
  • "contractType": "Labor_x0020_Contract",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get job history entry

Retrieves the job history record identified by personJobHistoryId for the person specified by personId.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personJobHistoryId
required
string <uuid>
Examples:
  • 4abcdef0-1234-5c67-4def-0123456789ab -

Unique identifier (GUID) of a job history record for the person.

query Parameters
$select
Array of strings unique
Items Enum: "id" "startingDate" "endingDate" "employerName" "insuredPeriodStartingDate" "insuredPeriodEndingDate" "documentNumber" "documentDate" "specialityCode" "specialityName" "hireConditions" "kindOfWork" "workMode" "conditionsOfWork" "contractType" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "employerName": "string",
  • "insuredPeriodStartingDate": "2017-04-13",
  • "insuredPeriodEndingDate": "2017-04-13",
  • "documentNumber": "string",
  • "documentDate": "2017-04-13",
  • "specialityCode": "string",
  • "specialityName": "string",
  • "hireConditions": "string",
  • "kindOfWork": "_x0020_",
  • "workMode": "Primary_x0020_Job",
  • "conditionsOfWork": "_x0020_",
  • "contractType": "Labor_x0020_Contract",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update job history entry

Updates the selected job history line. Provide only changed fields and include If-Match with the current ETag.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personJobHistoryId
required
string <uuid>
Examples:
  • 4abcdef0-1234-5c67-4def-0123456789ab -

Unique identifier (GUID) of a job history record for the person.

Request Body schema: application/json
required

New property values

startingDate
string or null <date>
endingDate
string or null <date>
employerName
string or null <= 50 characters
insuredPeriodStartingDate
string or null <date>
insuredPeriodEndingDate
string or null <date>
documentNumber
string or null <= 20 characters
documentDate
string or null <date>
specialityCode
string or null <= 10 characters
specialityName
string or null <= 50 characters
hireConditions
string or null <= 20 characters
kindOfWork
string or null (smaLaborKindofWork)
Enum: "_x0020_" "Permanent" "Temporary" "Seasonal"
workMode
string or null (smaLaborWorkMode)
Enum: "Primary_x0020_Job" "Internal_x0020_Co_x002D_work" "External_x0020_Co_x002D_work"
conditionsOfWork
string or null (smaLaborConditionsofWork)
Enum: "_x0020_" "Regular" "Heavy" "Unhealthy" "Very_x0020_Heavy" "Other"
contractType
string or null (smaJobHistoryContractType)
Enum: "Labor_x0020_Contract" "Civil_x0020_Contract" "Other"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "employerName": "string",
  • "insuredPeriodStartingDate": "2017-04-13",
  • "insuredPeriodEndingDate": "2017-04-13",
  • "documentNumber": "string",
  • "documentDate": "2017-04-13",
  • "specialityCode": "string",
  • "specialityName": "string",
  • "hireConditions": "string",
  • "kindOfWork": "_x0020_",
  • "workMode": "Primary_x0020_Job",
  • "conditionsOfWork": "_x0020_",
  • "contractType": "Labor_x0020_Contract",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete job history entry

Deletes the targeted job history record while maintaining any dependent payroll calculations.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

personJobHistoryId
required
string <uuid>
Examples:
  • 4abcdef0-1234-5c67-4def-0123456789ab -

Unique identifier (GUID) of a job history record for the person.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Get person picture

Returns the stored photo metadata for the person identified by personId. Use $expand=person to include basic details alongside the picture.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

query Parameters
$select
Array of strings unique
Items Enum: "id" "width" "height" "contentType" "pictureContent" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "person"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "width": 0,
  • "height": 0,
  • "contentType": "string",
  • "pictureContent": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "person": {
    }
}

Update person picture

Updates the picture metadata for the specified person. Provide new binary references or scaling info and include the latest ETag in If-Match.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Request Body schema: application/json
required

New property values

width
integer or null <int32>
height
integer or null <int32>
contentType
string or null <= 100 characters
pictureContent
string or null <base64url>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "width": 0,
  • "height": 0,
  • "contentType": "string",
  • "pictureContent": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete person picture

Removes the stored picture for the person while preserving links in historical documents.

Authorizations:
BearerAuth
path Parameters
personId
required
string <uuid>
Examples:
  • fedcba98-7654-3210-fedc-ba9876543210 -

Unique identifier (GUID) of a person record (SystemId in the Person table).

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

laborcontracts

Labor contracts (employment agreements) between the company and persons. Contracts can be for primary employment, internal moonlighting, or civil contracts. Each contract contains lines tracking employment events (hire, transfer, termination).

List all labor contracts

Retrieves all labor contract records in the system. Labor contracts represent employment agreements between the company and persons. Contracts can be for primary employment, internal/external moonlighting, or civil contracts. Each contract contains lines tracking lifecycle events (hire, transfer, combination, termination). Filter by contract type, person, status, or character of work.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "number" "number desc" "description" "description desc" "contractType" "contractType desc" "contractTypeCode" "contractTypeCode desc" "contractSubtype" "contractSubtype desc" "workMode" "workMode desc" "startingDate" "startingDate desc" "endingDate" "endingDate desc" "contractDate" "contractDate desc" "personNumber" "personNumber desc" "personId" "personId desc" "status" "status desc" "employeeNumber" "employeeNumber desc" "employeeId" "employeeId desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "number" "description" "contractType" "contractTypeCode" "contractSubtype" "workMode" "startingDate" "endingDate" "contractDate" "personNumber" "personId" "status" "employeeNumber" "employeeId" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "laborcontactlines"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create a new labor contract

Creates a new labor contract with a person. Required fields include personCode, contractType (Labor Contract or Civil Contract), characterOfWork (Primary, Internal/External Moonlighting), and startingDate. After creating the contract, add contract lines to record hiring, transfers, or termination events. The contract must reference an existing person record.

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
number
string or null <= 20 characters
description
string or null <= 250 characters
contractType
string or null (smaLaborContractType)
Enum: "Labor_x0020_Contract" "Civil_x0020_Contract"
contractTypeCode
string or null <= 10 characters
contractSubtype
string or null (smaLaborContractSubtype)
Enum: "_x0020_" "Gig_x0020_Contract" "NPE_x0020_Contract" "TRIAL"
workMode
string or null (smaLaborWorkMode)
Enum: "Primary_x0020_Job" "Internal_x0020_Co_x002D_work" "External_x0020_Co_x002D_work"
startingDate
string or null <date>
endingDate
string or null <date>
contractDate
string or null <date>
personNumber
string or null <= 20 characters
personId
string or null <uuid>
status
string or null (smaLaborContractStatus)
Enum: "Open" "Approved" "Closed"
employeeNumber
string or null <= 20 characters
employeeId
string or null <uuid>
lastModifiedDateTime
string or null <date-time>
Array of objects (laborcontactline (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "description": "string",
  • "contractType": "Labor_x0020_Contract",
  • "contractTypeCode": "string",
  • "contractSubtype": "_x0020_",
  • "workMode": "Primary_x0020_Job",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "contractDate": "2017-04-13",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "employeeNumber": "string",
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "laborcontactlines": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "description": "string",
  • "contractType": "Labor_x0020_Contract",
  • "contractTypeCode": "string",
  • "contractSubtype": "_x0020_",
  • "workMode": "Primary_x0020_Job",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "contractDate": "2017-04-13",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "employeeNumber": "string",
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "laborcontactlines": [
    ],
  • "laborcontactlines@odata.count": 0
}

Get labor contract

Returns the labor contract identified by laborContractId, including contract type, dates, and associated person/employee references.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

query Parameters
$select
Array of strings unique
Items Enum: "id" "number" "description" "contractType" "contractTypeCode" "contractSubtype" "workMode" "startingDate" "endingDate" "contractDate" "personNumber" "personId" "status" "employeeNumber" "employeeId" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "laborcontactlines"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "description": "string",
  • "contractType": "Labor_x0020_Contract",
  • "contractTypeCode": "string",
  • "contractSubtype": "_x0020_",
  • "workMode": "Primary_x0020_Job",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "contractDate": "2017-04-13",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "employeeNumber": "string",
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "laborcontactlines": [
    ],
  • "laborcontactlines@odata.count": 0
}

Update labor contract

Applies partial updates to the labor contract referenced by laborContractId. Only provided properties are changed; supply If-Match with the latest ETag for concurrency.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

Request Body schema: application/json
required

New property values

number
string or null <= 20 characters
description
string or null <= 250 characters
contractType
string or null (smaLaborContractType)
Enum: "Labor_x0020_Contract" "Civil_x0020_Contract"
contractTypeCode
string or null <= 10 characters
contractSubtype
string or null (smaLaborContractSubtype)
Enum: "_x0020_" "Gig_x0020_Contract" "NPE_x0020_Contract" "TRIAL"
workMode
string or null (smaLaborWorkMode)
Enum: "Primary_x0020_Job" "Internal_x0020_Co_x002D_work" "External_x0020_Co_x002D_work"
startingDate
string or null <date>
endingDate
string or null <date>
contractDate
string or null <date>
personNumber
string or null <= 20 characters
personId
string or null <uuid>
status
string or null (smaLaborContractStatus)
Enum: "Open" "Approved" "Closed"
employeeNumber
string or null <= 20 characters
employeeId
string or null <uuid>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "number": "string",
  • "description": "string",
  • "contractType": "Labor_x0020_Contract",
  • "contractTypeCode": "string",
  • "contractSubtype": "_x0020_",
  • "workMode": "Primary_x0020_Job",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "contractDate": "2017-04-13",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "employeeNumber": "string",
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete labor contract

Deletes the labor contract identified by laborContractId. Deletion is prevented for approved contracts that already generated employee records.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List labor contract lines

Retrieves labor contract lines (employment events) for the contract identified by laborContractId.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "contractumber" "contractumber desc" "personNumber" "personNumber desc" "operationType" "operationType desc" "supplementNumber" "supplementNumber desc" "startingDate" "startingDate desc" "endingDate" "endingDate desc" "positionRate" "positionRate desc" "positionNumber" "positionNumber desc" "positionId" "positionId desc" "status" "status desc" "description" "description desc" "dismissalReason" "dismissalReason desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "contractumber" "personNumber" "operationType" "supplementNumber" "startingDate" "endingDate" "positionRate" "positionNumber" "positionId" "status" "description" "dismissalReason" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "contractterms"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create labor contract line

Adds a labor contract line to the contract identified by laborContractId. Use to register hire, transfer, or termination events.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
contractumber
string or null <= 20 characters
personNumber
string or null <= 20 characters
operationType
string or null (smaLaborContractOperType)
Enum: "Hire" "Transfer" "Combination" "Dismissal"
supplementNumber
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
(number or null) or (string or null) <decimal>
positionNumber
string or null <= 20 characters
positionId
string or null <uuid>
status
string or null (smaLaborContractLineStatus)
Enum: "Open" "Approved"
description
string or null <= 250 characters
dismissalReason
string or null <= 10 characters
lastModifiedDateTime
string or null <date-time>
Array of objects (contractterm (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractumber": "string",
  • "personNumber": "string",
  • "operationType": "Hire",
  • "supplementNumber": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "positionRate": 0,
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "description": "string",
  • "dismissalReason": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "contractterms": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractumber": "string",
  • "personNumber": "string",
  • "operationType": "Hire",
  • "supplementNumber": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "positionRate": 0,
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "description": "string",
  • "dismissalReason": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "contractterms": [
    ],
  • "contractterms@odata.count": 0
}

Get labor contract line

Returns the labor contract line identified by laborContractLineId for the contract laborContractId.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

query Parameters
$select
Array of strings unique
Items Enum: "id" "contractumber" "personNumber" "operationType" "supplementNumber" "startingDate" "endingDate" "positionRate" "positionNumber" "positionId" "status" "description" "dismissalReason" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "contractterms"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractumber": "string",
  • "personNumber": "string",
  • "operationType": "Hire",
  • "supplementNumber": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "positionRate": 0,
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "description": "string",
  • "dismissalReason": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "contractterms": [
    ],
  • "contractterms@odata.count": 0
}

Update labor contract line

Updates the specified labor contract line. Provide only the properties to change and include the latest ETag in If-Match.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Request Body schema: application/json
required

New property values

contractumber
string or null <= 20 characters
personNumber
string or null <= 20 characters
operationType
string or null (smaLaborContractOperType)
Enum: "Hire" "Transfer" "Combination" "Dismissal"
supplementNumber
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
(number or null) or (string or null) <decimal>
positionNumber
string or null <= 20 characters
positionId
string or null <uuid>
status
string or null (smaLaborContractLineStatus)
Enum: "Open" "Approved"
description
string or null <= 250 characters
dismissalReason
string or null <= 10 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "contractumber": "string",
  • "personNumber": "string",
  • "operationType": "Hire",
  • "supplementNumber": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "positionRate": 0,
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "description": "string",
  • "dismissalReason": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete labor contract line

Deletes the labor contract line referenced by laborContractLineId from the contract.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action approve

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action cancelApproval

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action createContractTerms

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List contract terms for laborContractLineId

Returns contract term lines associated with the labor contract line identified by laborContractLineId.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "contractLineId" "contractLineId desc" "lineType" "lineType desc" "elementCode" "elementCode desc" "description" "description desc" "timeActivityCode" "timeActivityCode desc" "quantity" "quantity desc" "percent" "percent desc" "currencyCode" "currencyCode desc" "useOriginalCurrency" "useOriginalCurrency desc" "amount" "amount desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "contractLineId" "lineType" "elementCode" "description" "timeActivityCode" "quantity" "percent" "currencyCode" "useOriginalCurrency" "amount" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create contract term for laborContractLineId

Adds a new contract term entry to the labor contract line specified in the path.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
contractLineId
string or null <uuid>
lineType
string or null (smaLaborContractTermsType)
Enum: "Payroll_x0020_Element" "Vacation_x0020_Accrual" "Vacation_x0020_Compensation"
elementCode
string or null <= 20 characters
description
string or null <= 100 characters
timeActivityCode
string or null <= 10 characters
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
currencyCode
string or null
useOriginalCurrency
boolean or null
(number or null) or (string or null) <decimal>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get contract term entry

Retrieves the contract term identified by contractTermId that belongs to the labor contract line in the path.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

contractTermId
required
string <uuid>
Examples:
  • 1abcdef0-1234-5c67-1def-0123456789ab -

Unique identifier (GUID) of a labor contract term line.

query Parameters
$select
Array of strings unique
Items Enum: "id" "contractLineId" "lineType" "elementCode" "description" "timeActivityCode" "quantity" "percent" "currencyCode" "useOriginalCurrency" "amount" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update contract term entry

Updates the selected contract term. Provide only changed fields and include If-Match with the latest ETag.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

contractTermId
required
string <uuid>
Examples:
  • 1abcdef0-1234-5c67-1def-0123456789ab -

Unique identifier (GUID) of a labor contract term line.

Request Body schema: application/json
required

New property values

contractLineId
string or null <uuid>
lineType
string or null (smaLaborContractTermsType)
Enum: "Payroll_x0020_Element" "Vacation_x0020_Accrual" "Vacation_x0020_Compensation"
elementCode
string or null <= 20 characters
description
string or null <= 100 characters
timeActivityCode
string or null <= 10 characters
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
currencyCode
string or null
useOriginalCurrency
boolean or null
(number or null) or (string or null) <decimal>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete contract term entry

Removes the contract term from the labor contract line while preserving historical payroll postings.

Authorizations:
BearerAuth
path Parameters
laborContractId
required
string <uuid>
Examples:
  • 3210fedc-ba98-7654-3210-fedcba987654 -

Unique identifier (GUID) of a labor contract header. Matches the SystemId field of the contract record.

laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

contractTermId
required
string <uuid>
Examples:
  • 1abcdef0-1234-5c67-1def-0123456789ab -

Unique identifier (GUID) of a labor contract term line.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

laborcontactlines

Labor contract lines representing events in the employment lifecycle: Hire, Transfer, Combination, Termination. Each line records changes to employment terms.

Get entities from laborcontactlines

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "contractumber" "contractumber desc" "personNumber" "personNumber desc" "operationType" "operationType desc" "supplementNumber" "supplementNumber desc" "startingDate" "startingDate desc" "endingDate" "endingDate desc" "positionRate" "positionRate desc" "positionNumber" "positionNumber desc" "positionId" "positionId desc" "status" "status desc" "description" "description desc" "dismissalReason" "dismissalReason desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "contractumber" "personNumber" "operationType" "supplementNumber" "startingDate" "endingDate" "positionRate" "positionNumber" "positionId" "status" "description" "dismissalReason" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "contractterms"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to laborcontactlines

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
contractumber
string or null <= 20 characters
personNumber
string or null <= 20 characters
operationType
string or null (smaLaborContractOperType)
Enum: "Hire" "Transfer" "Combination" "Dismissal"
supplementNumber
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
(number or null) or (string or null) <decimal>
positionNumber
string or null <= 20 characters
positionId
string or null <uuid>
status
string or null (smaLaborContractLineStatus)
Enum: "Open" "Approved"
description
string or null <= 250 characters
dismissalReason
string or null <= 10 characters
lastModifiedDateTime
string or null <date-time>
Array of objects (contractterm (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractumber": "string",
  • "personNumber": "string",
  • "operationType": "Hire",
  • "supplementNumber": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "positionRate": 0,
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "description": "string",
  • "dismissalReason": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "contractterms": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractumber": "string",
  • "personNumber": "string",
  • "operationType": "Hire",
  • "supplementNumber": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "positionRate": 0,
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "description": "string",
  • "dismissalReason": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "contractterms": [
    ],
  • "contractterms@odata.count": 0
}

Get labor contract line

Retrieves the labor contract line identified by laborContractLineId.

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

query Parameters
$select
Array of strings unique
Items Enum: "id" "contractumber" "personNumber" "operationType" "supplementNumber" "startingDate" "endingDate" "positionRate" "positionNumber" "positionId" "status" "description" "dismissalReason" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "contractterms"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractumber": "string",
  • "personNumber": "string",
  • "operationType": "Hire",
  • "supplementNumber": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "positionRate": 0,
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "description": "string",
  • "dismissalReason": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "contractterms": [
    ],
  • "contractterms@odata.count": 0
}

Update labor contract line

Updates the labor contract line referenced by laborContractLineId. Include If-Match for concurrency control.

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Request Body schema: application/json
required

New property values

contractumber
string or null <= 20 characters
personNumber
string or null <= 20 characters
operationType
string or null (smaLaborContractOperType)
Enum: "Hire" "Transfer" "Combination" "Dismissal"
supplementNumber
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
(number or null) or (string or null) <decimal>
positionNumber
string or null <= 20 characters
positionId
string or null <uuid>
status
string or null (smaLaborContractLineStatus)
Enum: "Open" "Approved"
description
string or null <= 250 characters
dismissalReason
string or null <= 10 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "contractumber": "string",
  • "personNumber": "string",
  • "operationType": "Hire",
  • "supplementNumber": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "positionRate": 0,
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "status": "Open",
  • "description": "string",
  • "dismissalReason": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete labor contract line

Deletes the labor contract line identified by laborContractLineId.

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action approve

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action cancelApproval

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action createContractTerms

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List contract terms for laborContractLineId

Returns contract terms attached to the labor contract line identified by laborContractLineId.

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "contractLineId" "contractLineId desc" "lineType" "lineType desc" "elementCode" "elementCode desc" "description" "description desc" "timeActivityCode" "timeActivityCode desc" "quantity" "quantity desc" "percent" "percent desc" "currencyCode" "currencyCode desc" "useOriginalCurrency" "useOriginalCurrency desc" "amount" "amount desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "contractLineId" "lineType" "elementCode" "description" "timeActivityCode" "quantity" "percent" "currencyCode" "useOriginalCurrency" "amount" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create contract term for laborContractLineId

Adds a contract term to the labor contract line specified in the path.

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
contractLineId
string or null <uuid>
lineType
string or null (smaLaborContractTermsType)
Enum: "Payroll_x0020_Element" "Vacation_x0020_Accrual" "Vacation_x0020_Compensation"
elementCode
string or null <= 20 characters
description
string or null <= 100 characters
timeActivityCode
string or null <= 10 characters
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
currencyCode
string or null
useOriginalCurrency
boolean or null
(number or null) or (string or null) <decimal>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get contract term entry

Returns the contract term identified by contractTermId for the labor contract line laborContractLineId.

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

contractTermId
required
string <uuid>
Examples:
  • 1abcdef0-1234-5c67-1def-0123456789ab -

Unique identifier (GUID) of a labor contract term line.

query Parameters
$select
Array of strings unique
Items Enum: "id" "contractLineId" "lineType" "elementCode" "description" "timeActivityCode" "quantity" "percent" "currencyCode" "useOriginalCurrency" "amount" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update contract term entry

Updates the specified contract term. Provide only fields that change and use If-Match for concurrency.

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

contractTermId
required
string <uuid>
Examples:
  • 1abcdef0-1234-5c67-1def-0123456789ab -

Unique identifier (GUID) of a labor contract term line.

Request Body schema: application/json
required

New property values

contractLineId
string or null <uuid>
lineType
string or null (smaLaborContractTermsType)
Enum: "Payroll_x0020_Element" "Vacation_x0020_Accrual" "Vacation_x0020_Compensation"
elementCode
string or null <= 20 characters
description
string or null <= 100 characters
timeActivityCode
string or null <= 10 characters
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
currencyCode
string or null
useOriginalCurrency
boolean or null
(number or null) or (string or null) <decimal>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete contract term entry

Deletes the contract term from the labor contract line while audit trails remain intact.

Authorizations:
BearerAuth
path Parameters
laborContractLineId
required
string <uuid>
Examples:
  • 210fedcb-a987-6543-210f-edcba9876543 -

Unique identifier (GUID) of a labor contract line representing an employment event.

contractTermId
required
string <uuid>
Examples:
  • 1abcdef0-1234-5c67-1def-0123456789ab -

Unique identifier (GUID) of a labor contract term line.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

employees

Employee records created automatically when a labor contract is approved. Employees are persons hired by the company with active or past employment relationships.

List all employees

Retrieves all employee records in the system. Employees are created automatically when a labor contract with 'Hire' line is approved. An employee represents a person with active or past employment relationship. Includes payroll settings, organizational assignment, and bank account information. Filter by department, position, employment status, or other criteria.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "number" "number desc" "displayName" "displayName desc" "givenName" "givenName desc" "middleName" "middleName desc" "surname" "surname desc" "addressLine1" "addressLine1 desc" "addressLine2" "addressLine2 desc" "city" "city desc" "state" "state desc" "country" "country desc" "postalCode" "postalCode desc" "phoneNumber" "phoneNumber desc" "mobilePhone" "mobilePhone desc" "email" "email desc" "personalEmail" "personalEmail desc" "birthDate" "birthDate desc" "vatRegistrationNumber" "vatRegistrationNumber desc" "gender" "gender desc" "employeePostingGroup" "employeePostingGroup desc" "calendarCode" "calendarCode desc" "categoryCode" "categoryCode desc" "orgUnitCode" "orgUnitCode desc" "payrollCalcGroup" "payrollCalcGroup desc" "payrollPostingGroup" "payrollPostingGroup desc" "personNumber" "personNumber desc" "personId" "personId desc" "positionNumber" "positionNumber desc" "positionId" "positionId desc" "contractNumber" "contractNumber desc" "contractId" "contractId desc" "jobTitleCode" "jobTitleCode desc" "orgUnitName" "orgUnitName desc" "jobTitle" "jobTitle desc" "employmentDate" "employmentDate desc" "terminationDate" "terminationDate desc" "status" "status desc" "statisticsGroupCode" "statisticsGroupCode desc" "companyBankCode" "companyBankCode desc" "employeeBankCode" "employeeBankCode desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "number" "displayName" "givenName" "middleName" "surname" "addressLine1" "addressLine2" "city" "state" "country" "postalCode" "phoneNumber" "mobilePhone" "email" "personalEmail" "birthDate" "vatRegistrationNumber" "gender" "employeePostingGroup" "calendarCode" "categoryCode" "orgUnitCode" "payrollCalcGroup" "payrollPostingGroup" "personNumber" "personId" "positionNumber" "positionId" "contractNumber" "contractId" "jobTitleCode" "orgUnitName" "jobTitle" "employmentDate" "terminationDate" "status" "statisticsGroupCode" "companyBankCode" "employeeBankCode" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "defaultDimensions"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to employees

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
number
string or null <= 20 characters
displayName
string or null
givenName
string or null <= 30 characters
middleName
string or null <= 30 characters
surname
string or null <= 30 characters
addressLine1
string or null <= 100 characters
addressLine2
string or null <= 50 characters
city
string or null <= 30 characters
state
string or null <= 30 characters
country
string or null <= 10 characters
postalCode
string or null <= 20 characters
phoneNumber
string or null <= 30 characters
mobilePhone
string or null <= 30 characters
email
string or null <= 80 characters
personalEmail
string or null <= 80 characters
birthDate
string or null <date>
vatRegistrationNumber
string or null <= 20 characters
gender
string or null (employeeGender)
Enum: "_x0020_" "Female" "Male" "Non_x002D_binary" "Self_x002D_Described" "I_x0020_don_x2019_t_x0020_wish_x0020_to_x0020_answer"
employeePostingGroup
string or null <= 20 characters
calendarCode
string or null <= 10 characters
categoryCode
string or null <= 10 characters
orgUnitCode
string or null <= 10 characters
payrollCalcGroup
string or null <= 10 characters
payrollPostingGroup
string or null <= 20 characters
personNumber
string or null <= 20 characters
personId
string or null <uuid>
positionNumber
string or null <= 20 characters
positionId
string or null <uuid>
contractNumber
string or null <= 20 characters
contractId
string or null <uuid>
jobTitleCode
string or null <= 10 characters
orgUnitName
string or null <= 100 characters
jobTitle
string or null <= 250 characters
employmentDate
string or null <date>
terminationDate
string or null <date>
status
string or null (employeeStatus)
Enum: "Active" "Inactive" "Terminated"
statisticsGroupCode
string or null <= 10 characters
companyBankCode
string or null <= 20 characters
employeeBankCode
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>
Array of objects (defaultDimension (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "displayName": "string",
  • "givenName": "string",
  • "middleName": "string",
  • "surname": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "postalCode": "string",
  • "phoneNumber": "string",
  • "mobilePhone": "string",
  • "email": "string",
  • "personalEmail": "string",
  • "birthDate": "2017-04-13",
  • "vatRegistrationNumber": "string",
  • "gender": "_x0020_",
  • "employeePostingGroup": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "orgUnitCode": "string",
  • "payrollCalcGroup": "string",
  • "payrollPostingGroup": "string",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractNumber": "string",
  • "contractId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "orgUnitName": "string",
  • "jobTitle": "string",
  • "employmentDate": "2017-04-13",
  • "terminationDate": "2017-04-13",
  • "status": "Active",
  • "statisticsGroupCode": "string",
  • "companyBankCode": "string",
  • "employeeBankCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "displayName": "string",
  • "givenName": "string",
  • "middleName": "string",
  • "surname": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "postalCode": "string",
  • "phoneNumber": "string",
  • "mobilePhone": "string",
  • "email": "string",
  • "personalEmail": "string",
  • "birthDate": "2017-04-13",
  • "vatRegistrationNumber": "string",
  • "gender": "_x0020_",
  • "employeePostingGroup": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "orgUnitCode": "string",
  • "payrollCalcGroup": "string",
  • "payrollPostingGroup": "string",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractNumber": "string",
  • "contractId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "orgUnitName": "string",
  • "jobTitle": "string",
  • "employmentDate": "2017-04-13",
  • "terminationDate": "2017-04-13",
  • "status": "Active",
  • "statisticsGroupCode": "string",
  • "companyBankCode": "string",
  • "employeeBankCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ],
  • "defaultDimensions@odata.count": 0
}

Get employee by employeeId

Returns a single employee record resolved by the employeeId path parameter. Combine with $select and $expand to tailor the shape of the response for downstream payroll or HR processes.

Authorizations:
BearerAuth
path Parameters
employeeId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique employee identifier (GUID) in Business Central. Matches the SystemId field in the Employee table. Use it to target a specific employee record and its related sub-resources.

query Parameters
$select
Array of strings unique
Items Enum: "id" "number" "displayName" "givenName" "middleName" "surname" "addressLine1" "addressLine2" "city" "state" "country" "postalCode" "phoneNumber" "mobilePhone" "email" "personalEmail" "birthDate" "vatRegistrationNumber" "gender" "employeePostingGroup" "calendarCode" "categoryCode" "orgUnitCode" "payrollCalcGroup" "payrollPostingGroup" "personNumber" "personId" "positionNumber" "positionId" "contractNumber" "contractId" "jobTitleCode" "orgUnitName" "jobTitle" "employmentDate" "terminationDate" "status" "statisticsGroupCode" "companyBankCode" "employeeBankCode" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "defaultDimensions"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "displayName": "string",
  • "givenName": "string",
  • "middleName": "string",
  • "surname": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "postalCode": "string",
  • "phoneNumber": "string",
  • "mobilePhone": "string",
  • "email": "string",
  • "personalEmail": "string",
  • "birthDate": "2017-04-13",
  • "vatRegistrationNumber": "string",
  • "gender": "_x0020_",
  • "employeePostingGroup": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "orgUnitCode": "string",
  • "payrollCalcGroup": "string",
  • "payrollPostingGroup": "string",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractNumber": "string",
  • "contractId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "orgUnitName": "string",
  • "jobTitle": "string",
  • "employmentDate": "2017-04-13",
  • "terminationDate": "2017-04-13",
  • "status": "Active",
  • "statisticsGroupCode": "string",
  • "companyBankCode": "string",
  • "employeeBankCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ],
  • "defaultDimensions@odata.count": 0
}

Update employee

Applies partial updates to the employee identified by employeeId. Only the properties present in the payload are changed; unspecified properties remain untouched. Requires an up-to-date ETag in the If-Match header for concurrency safety.

Authorizations:
BearerAuth
path Parameters
employeeId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique employee identifier (GUID) in Business Central. Matches the SystemId field in the Employee table. Use it to target a specific employee record and its related sub-resources.

Request Body schema: application/json
required

New property values

number
string or null <= 20 characters
displayName
string or null
givenName
string or null <= 30 characters
middleName
string or null <= 30 characters
surname
string or null <= 30 characters
addressLine1
string or null <= 100 characters
addressLine2
string or null <= 50 characters
city
string or null <= 30 characters
state
string or null <= 30 characters
country
string or null <= 10 characters
postalCode
string or null <= 20 characters
phoneNumber
string or null <= 30 characters
mobilePhone
string or null <= 30 characters
email
string or null <= 80 characters
personalEmail
string or null <= 80 characters
birthDate
string or null <date>
vatRegistrationNumber
string or null <= 20 characters
gender
string or null (employeeGender)
Enum: "_x0020_" "Female" "Male" "Non_x002D_binary" "Self_x002D_Described" "I_x0020_don_x2019_t_x0020_wish_x0020_to_x0020_answer"
employeePostingGroup
string or null <= 20 characters
calendarCode
string or null <= 10 characters
categoryCode
string or null <= 10 characters
orgUnitCode
string or null <= 10 characters
payrollCalcGroup
string or null <= 10 characters
payrollPostingGroup
string or null <= 20 characters
personNumber
string or null <= 20 characters
personId
string or null <uuid>
positionNumber
string or null <= 20 characters
positionId
string or null <uuid>
contractNumber
string or null <= 20 characters
contractId
string or null <uuid>
jobTitleCode
string or null <= 10 characters
orgUnitName
string or null <= 100 characters
jobTitle
string or null <= 250 characters
employmentDate
string or null <date>
terminationDate
string or null <date>
status
string or null (employeeStatus)
Enum: "Active" "Inactive" "Terminated"
statisticsGroupCode
string or null <= 10 characters
companyBankCode
string or null <= 20 characters
employeeBankCode
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "number": "string",
  • "displayName": "string",
  • "givenName": "string",
  • "middleName": "string",
  • "surname": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "postalCode": "string",
  • "phoneNumber": "string",
  • "mobilePhone": "string",
  • "email": "string",
  • "personalEmail": "string",
  • "birthDate": "2017-04-13",
  • "vatRegistrationNumber": "string",
  • "gender": "_x0020_",
  • "employeePostingGroup": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "orgUnitCode": "string",
  • "payrollCalcGroup": "string",
  • "payrollPostingGroup": "string",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractNumber": "string",
  • "contractId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "orgUnitName": "string",
  • "jobTitle": "string",
  • "employmentDate": "2017-04-13",
  • "terminationDate": "2017-04-13",
  • "status": "Active",
  • "statisticsGroupCode": "string",
  • "companyBankCode": "string",
  • "employeeBankCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete employee

Permanently removes the employee referenced by employeeId, including any dependent defaults such as dimension settings. Use with caution; historical payroll ledger entries remain available for audit.

Authorizations:
BearerAuth
path Parameters
employeeId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique employee identifier (GUID) in Business Central. Matches the SystemId field in the Employee table. Use it to target a specific employee record and its related sub-resources.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Get entities from related defaultDimensions

Authorizations:
BearerAuth
path Parameters
employeeId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique employee identifier (GUID) in Business Central. Matches the SystemId field in the Employee table. Use it to target a specific employee record and its related sub-resources.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "dimensionId" "dimensionId desc" "dimensionCode" "dimensionCode desc" "dimensionValueId" "dimensionValueId desc" "dimensionValueCode" "dimensionValueCode desc" "postingValidation" "postingValidation desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "dimensionId" "dimensionCode" "dimensionValueId" "dimensionValueCode" "postingValidation" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to related defaultDimensions

Authorizations:
BearerAuth
path Parameters
employeeId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique employee identifier (GUID) in Business Central. Matches the SystemId field in the Employee table. Use it to target a specific employee record and its related sub-resources.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
dimensionId
string or null <uuid>
dimensionCode
string <= 20 characters
dimensionValueId
string or null <uuid>
dimensionValueCode
string or null <= 20 characters
postingValidation
string or null (defaultDimensionValuePostingType)
Enum: "_x0020_" "Code_x0020_Mandatory" "Same_x0020_Code" "No_x0020_Code"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get employee default dimension

Returns the default dimension referenced by defaultDimensionId for the employee identified by employeeId. Use $select to optimise the shape of the response for UI or integration scenarios.

Authorizations:
BearerAuth
path Parameters
employeeId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique employee identifier (GUID) in Business Central. Matches the SystemId field in the Employee table. Use it to target a specific employee record and its related sub-resources.

defaultDimensionId
required
string <uuid>
Examples:
  • abcdef01-2345-6789-abcd-ef0123456789 -

Unique identifier (GUID) of an employee default dimension record. Use it when updating or deleting a specific dimension combination assigned to the employee.

query Parameters
$select
Array of strings unique
Items Enum: "id" "dimensionId" "dimensionCode" "dimensionValueId" "dimensionValueCode" "postingValidation" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update employee default dimension

Applies partial updates to the specified default dimension of the employee. Supply the latest ETag in If-Match to avoid overwriting concurrent modifications.

Authorizations:
BearerAuth
path Parameters
employeeId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique employee identifier (GUID) in Business Central. Matches the SystemId field in the Employee table. Use it to target a specific employee record and its related sub-resources.

defaultDimensionId
required
string <uuid>
Examples:
  • abcdef01-2345-6789-abcd-ef0123456789 -

Unique identifier (GUID) of an employee default dimension record. Use it when updating or deleting a specific dimension combination assigned to the employee.

Request Body schema: application/json
required

New property values

dimensionId
string or null <uuid>
dimensionCode
string <= 20 characters
dimensionValueId
string or null <uuid>
dimensionValueCode
string or null <= 20 characters
postingValidation
string or null (defaultDimensionValuePostingType)
Enum: "_x0020_" "Code_x0020_Mandatory" "Same_x0020_Code" "No_x0020_Code"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete employee default dimension

Deletes the targeted default dimension connection from the employee profile. Historical ledger entries remain unchanged.

Authorizations:
BearerAuth
path Parameters
employeeId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique employee identifier (GUID) in Business Central. Matches the SystemId field in the Employee table. Use it to target a specific employee record and its related sub-resources.

defaultDimensionId
required
string <uuid>
Examples:
  • abcdef01-2345-6789-abcd-ef0123456789 -

Unique identifier (GUID) of an employee default dimension record. Use it when updating or deleting a specific dimension combination assigned to the employee.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

timesheets

Time tracking records for employees. Timesheets are used to record working hours, overtime, and time off for payroll calculation.

Retrieve a specific timesheet

Returns detailed information about the timesheet identified by timesheetId. The response includes planned and actual work hours, overtime calculations, and time activity breakdown. Use $expand to include timesheet detail lines in-line.

Authorizations:
BearerAuth
path Parameters
timesheetId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique identifier (GUID) of a timesheet header. Corresponds to the SystemId in the Business Central timesheet table.

query Parameters
$select
Array of strings unique
Items Enum: "periodCode" "employeeNumber" "id" "personId" "startingDate" "endingDate" "status" "plannedWorkDays" "plannedWorkHours" "plannedEveningHours" "plannedHolidayHours" "plannedNightHours" "plannedNormativeHours" "calendarDays" "actualWorkHours" "actualWorkDays" "actualNightHours" "actualEveningHours" "actualCalendarDays" "absenceWorkDays" "absenceHours" "absenceHoursByNorm" "absenceCalendarDays" "overtimeHours" "overtimeHoursPerYear" "overtimeHours50" "orgUnitName" "jobTitleName" "holidayWorkDays" "holidayWorkHours" "holidayHrsOutOfCalendar" "dayOffHours" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "timesheetdetails"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "periodCode": "string",
  • "employeeNumber": "string",
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "status": "Open",
  • "plannedWorkDays": 0,
  • "plannedWorkHours": 0,
  • "plannedEveningHours": 0,
  • "plannedHolidayHours": 0,
  • "plannedNightHours": 0,
  • "plannedNormativeHours": 0,
  • "calendarDays": 0,
  • "actualWorkHours": 0,
  • "actualWorkDays": 0,
  • "actualNightHours": 0,
  • "actualEveningHours": 0,
  • "actualCalendarDays": 0,
  • "absenceWorkDays": 0,
  • "absenceHours": 0,
  • "absenceHoursByNorm": 0,
  • "absenceCalendarDays": 0,
  • "overtimeHours": 0,
  • "overtimeHoursPerYear": 0,
  • "overtimeHours50": 0,
  • "orgUnitName": "string",
  • "jobTitleName": "string",
  • "holidayWorkDays": 0,
  • "holidayWorkHours": 0,
  • "holidayHrsOutOfCalendar": 0,
  • "dayOffHours": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "timesheetdetails": [
    ],
  • "timesheetdetails@odata.count": 0
}

List timesheet details for timesheetId

Retrieves all daily time entries associated with the timesheet specified by timesheetId. Each detail line represents activity for a particular date, including the time activity code, hours worked, and optional description. Supports standard OData query options for filtering and sorting by date or activity.

Authorizations:
BearerAuth
path Parameters
timesheetId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique identifier (GUID) of a timesheet header. Corresponds to the SystemId in the Business Central timesheet table.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "employeeNumber" "employeeNumber desc" "date" "date desc" "timeActivityCode" "timeActivityCode desc" "id" "id desc" "timeActivityId" "timeActivityId desc" "timeActivityName" "timeActivityName desc" "overtime" "overtime desc" "description" "description desc" "actualHours" "actualHours desc" "documentType" "documentType desc" "documentNumber" "documentNumber desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "employeeNumber" "date" "timeActivityCode" "id" "timeActivityId" "timeActivityName" "overtime" "description" "actualHours" "documentType" "documentNumber" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create timesheet detail

Creates a new time entry for a specific date within the timesheet specified by timesheetId. Use this to record actual hours worked, overtime, or absences. The time activity code determines how the hours will be calculated in payroll. Multiple entries for the same date are allowed if different activity codes are used.

Authorizations:
BearerAuth
path Parameters
timesheetId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique identifier (GUID) of a timesheet header. Corresponds to the SystemId in the Business Central timesheet table.

Request Body schema: application/json
required

New entity

employeeNumber
required
string <= 20 characters
date
required
string <date>
timeActivityCode
required
string <= 10 characters
id
string or null <uuid>
timeActivityId
string or null <uuid>
timeActivityName
string or null <= 100 characters
overtime
boolean or null
description
string or null <= 50 characters
number or string <decimal>
documentType
string or null
documentNumber
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "employeeNumber": "string",
  • "date": "2017-04-13",
  • "timeActivityCode": "string",
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityId": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityName": "string",
  • "overtime": true,
  • "description": "string",
  • "actualHours": 0,
  • "documentType": "string",
  • "documentNumber": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "employeeNumber": "string",
  • "date": "2017-04-13",
  • "timeActivityCode": "string",
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityId": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityName": "string",
  • "overtime": true,
  • "description": "string",
  • "actualHours": 0,
  • "documentType": "string",
  • "documentNumber": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get a timesheet detail

Returns the detail line identified by timesheetDetailId within the parent timesheet timesheetId. Useful for reviewing or validating a single daily time entry.

Authorizations:
BearerAuth
path Parameters
timesheetId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique identifier (GUID) of a timesheet header. Corresponds to the SystemId in the Business Central timesheet table.

timesheetDetailId
required
string <uuid>
Examples:
  • 89abcdef-0123-4567-89ab-cdef01234567 -

Unique identifier (GUID) of a timesheet detail line belonging to a specific timesheet header.

query Parameters
$select
Array of strings unique
Items Enum: "employeeNumber" "date" "timeActivityCode" "id" "timeActivityId" "timeActivityName" "overtime" "description" "actualHours" "documentType" "documentNumber" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "employeeNumber": "string",
  • "date": "2017-04-13",
  • "timeActivityCode": "string",
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityId": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityName": "string",
  • "overtime": true,
  • "description": "string",
  • "actualHours": 0,
  • "documentType": "string",
  • "documentNumber": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update timesheet detail

Updates the specified timesheet detail line. Send only the properties that need to change and include If-Match with the latest ETag to avoid conflicts.

Authorizations:
BearerAuth
path Parameters
timesheetId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique identifier (GUID) of a timesheet header. Corresponds to the SystemId in the Business Central timesheet table.

timesheetDetailId
required
string <uuid>
Examples:
  • 89abcdef-0123-4567-89ab-cdef01234567 -

Unique identifier (GUID) of a timesheet detail line belonging to a specific timesheet header.

Request Body schema: application/json
required

New property values

id
string or null <uuid>
timeActivityId
string or null <uuid>
timeActivityName
string or null <= 100 characters
overtime
boolean or null
description
string or null <= 50 characters
number or string <decimal>
documentType
string or null
documentNumber
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityId": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityName": "string",
  • "overtime": true,
  • "description": "string",
  • "actualHours": 0,
  • "documentType": "string",
  • "documentNumber": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete timesheet detail

Deletes the requested timesheet detail line from the parent timesheet while keeping audit information in ledger tables.

Authorizations:
BearerAuth
path Parameters
timesheetId
required
string <uuid>
Examples:
  • 01234567-89ab-cdef-0123-456789abcdef -

Unique identifier (GUID) of a timesheet header. Corresponds to the SystemId in the Business Central timesheet table.

timesheetDetailId
required
string <uuid>
Examples:
  • 89abcdef-0123-4567-89ab-cdef01234567 -

Unique identifier (GUID) of a timesheet detail line belonging to a specific timesheet header.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

timeactivities

Types of time activities that can be recorded in timesheets (regular work, overtime, night shift, weekend work, etc.).

Get entities from timeactivities

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "code" "code desc" "description" "description desc" "detailedDescription" "detailedDescription desc" "descriptionEnglish" "descriptionEnglish desc" "timesheetCode" "timesheetCode desc" "timeActivityType" "timeActivityType desc" "vacationType" "vacationType desc" "sickLeaveType" "sickLeaveType desc" "paidActivity" "paidActivity desc" "paymentDays" "paymentDays desc" "paymentHours" "paymentHours desc" "elementCode" "elementCode desc" "activityBehaviour" "activityBehaviour desc" "useAccruals" "useAccruals desc" "vacBalanceUsingRule" "vacBalanceUsingRule desc" "checkBalanceOnDate" "checkBalanceOnDate desc" "accrualPeriod" "accrualPeriod desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "code" "description" "detailedDescription" "descriptionEnglish" "timesheetCode" "timeActivityType" "vacationType" "sickLeaveType" "paidActivity" "paymentDays" "paymentHours" "elementCode" "activityBehaviour" "useAccruals" "vacBalanceUsingRule" "checkBalanceOnDate" "accrualPeriod" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Get time activity

Returns the time activity identified by timeActivityId, including configuration flags that drive payroll accruals and absence behaviour.

Authorizations:
BearerAuth
path Parameters
timeActivityId
required
string <uuid>
Examples:
  • 3abcdef0-1234-5c67-3def-0123456789ab -

Unique identifier (GUID) of a time activity definition.

query Parameters
$select
Array of strings unique
Items Enum: "id" "code" "description" "detailedDescription" "descriptionEnglish" "timesheetCode" "timeActivityType" "vacationType" "sickLeaveType" "paidActivity" "paymentDays" "paymentHours" "elementCode" "activityBehaviour" "useAccruals" "vacBalanceUsingRule" "checkBalanceOnDate" "accrualPeriod" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "description": "string",
  • "detailedDescription": "string",
  • "descriptionEnglish": "string",
  • "timesheetCode": "string",
  • "timeActivityType": "Presence",
  • "vacationType": "_x0020_",
  • "sickLeaveType": "_x0020_",
  • "paidActivity": true,
  • "paymentDays": "Calendar_x0020_Days",
  • "paymentHours": true,
  • "elementCode": "string",
  • "activityBehaviour": "Replace",
  • "useAccruals": true,
  • "vacBalanceUsingRule": "_x0020_",
  • "checkBalanceOnDate": true,
  • "accrualPeriod": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

jobtitles

Job titles (positions/roles) dictionary used in the organizational structure. Each job title can have associated classifier codes for official reporting.

List all job titles

Retrieves the dictionary of job titles (positions/roles) used in the organizational structure. Job titles define the roles that can be assigned to positions. Each job title may have associated classifier codes for official reporting (e.g., KP classifier codes for Ukraine). Job titles are referenced when creating positions.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "code" "code desc" "displayName" "displayName desc" "nameEnglish" "nameEnglish desc" "kpName" "kpName desc" "codeKP" "codeKP desc" "professionalTitleOfWork" "professionalTitleOfWork desc" "status" "status desc" "approvalDate" "approvalDate desc" "blocked" "blocked desc" "closedDate" "closedDate desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "code" "displayName" "nameEnglish" "kpName" "codeKP" "professionalTitleOfWork" "status" "approvalDate" "blocked" "closedDate" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to jobtitles

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
code
string <= 10 characters
displayName
string or null <= 250 characters
nameEnglish
string or null <= 100 characters
kpName
string or null <= 250 characters
codeKP
string or null <= 20 characters
professionalTitleOfWork
string or null <= 250 characters
status
string or null (smaJobTitleStatus)
Enum: "Open" "Approved" "Closed"
approvalDate
string or null <date>
blocked
boolean or null
closedDate
string or null <date>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "nameEnglish": "string",
  • "kpName": "string",
  • "codeKP": "string",
  • "professionalTitleOfWork": "string",
  • "status": "Open",
  • "approvalDate": "2017-04-13",
  • "blocked": true,
  • "closedDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "nameEnglish": "string",
  • "kpName": "string",
  • "codeKP": "string",
  • "professionalTitleOfWork": "string",
  • "status": "Open",
  • "approvalDate": "2017-04-13",
  • "blocked": true,
  • "closedDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get job title

Retrieves the job title identified by jobTitleId, including classifier codes and approval status.

Authorizations:
BearerAuth
path Parameters
jobTitleId
required
string <uuid>
Examples:
  • 10fedcba-9876-5432-10fe-dcba98765432 -

Unique identifier (GUID) of a job title dictionary entry.

query Parameters
$select
Array of strings unique
Items Enum: "id" "code" "displayName" "nameEnglish" "kpName" "codeKP" "professionalTitleOfWork" "status" "approvalDate" "blocked" "closedDate" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "nameEnglish": "string",
  • "kpName": "string",
  • "codeKP": "string",
  • "professionalTitleOfWork": "string",
  • "status": "Open",
  • "approvalDate": "2017-04-13",
  • "blocked": true,
  • "closedDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update job title

Updates the job title referenced by jobTitleId. Adjust descriptions, classifier codes, or status flags as needed.

Authorizations:
BearerAuth
path Parameters
jobTitleId
required
string <uuid>
Examples:
  • 10fedcba-9876-5432-10fe-dcba98765432 -

Unique identifier (GUID) of a job title dictionary entry.

Request Body schema: application/json
required

New property values

code
string <= 10 characters
displayName
string or null <= 250 characters
nameEnglish
string or null <= 100 characters
kpName
string or null <= 250 characters
codeKP
string or null <= 20 characters
professionalTitleOfWork
string or null <= 250 characters
status
string or null (smaJobTitleStatus)
Enum: "Open" "Approved" "Closed"
approvalDate
string or null <date>
blocked
boolean or null
closedDate
string or null <date>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "displayName": "string",
  • "nameEnglish": "string",
  • "kpName": "string",
  • "codeKP": "string",
  • "professionalTitleOfWork": "string",
  • "status": "Open",
  • "approvalDate": "2017-04-13",
  • "blocked": true,
  • "closedDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete job title

Deletes the job title. Deletion is restricted when positions reference the title.

Authorizations:
BearerAuth
path Parameters
jobTitleId
required
string <uuid>
Examples:
  • 10fedcba-9876-5432-10fe-dcba98765432 -

Unique identifier (GUID) of a job title dictionary entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action approve

Authorizations:
BearerAuth
path Parameters
jobTitleId
required
string <uuid>
Examples:
  • 10fedcba-9876-5432-10fe-dcba98765432 -

Unique identifier (GUID) of a job title dictionary entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action close

Authorizations:
BearerAuth
path Parameters
jobTitleId
required
string <uuid>
Examples:
  • 10fedcba-9876-5432-10fe-dcba98765432 -

Unique identifier (GUID) of a job title dictionary entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action reopen

Authorizations:
BearerAuth
path Parameters
jobTitleId
required
string <uuid>
Examples:
  • 10fedcba-9876-5432-10fe-dcba98765432 -

Unique identifier (GUID) of a job title dictionary entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

units

Organizational units (departments, divisions) that form the company's organizational structure.

List all organizational units

Retrieves all organizational units (departments, divisions, teams) that form the company's organizational structure. Organizational units are arranged hierarchically with parent-child relationships. Each position must be assigned to an organizational unit. Units can have default settings for payroll calculations, calendars, and employment terms.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "code" "code desc" "displayName" "displayName desc" "fullName" "fullName desc" "alternativeName" "alternativeName desc" "smaNameEnglish" "smaNameEnglish desc" "type" "type desc" "startingDate" "startingDate desc" "endingDate" "endingDate desc" "status" "status desc" "managerNumber" "managerNumber desc" "parentCode" "parentCode desc" "parentId" "parentId desc" "blocked" "blocked desc" "approvalDate" "approvalDate desc" "closedDate" "closedDate desc" "atCodifier" "atCodifier desc" "employeePostingGroup" "employeePostingGroup desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "code" "displayName" "fullName" "alternativeName" "smaNameEnglish" "type" "startingDate" "endingDate" "status" "managerNumber" "parentCode" "parentId" "blocked" "approvalDate" "closedDate" "atCodifier" "employeePostingGroup" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "defaultDimensions"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to units

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
code
string <= 10 characters
displayName
string or null <= 100 characters
fullName
string or null <= 250 characters
alternativeName
string or null <= 50 characters
smaNameEnglish
string or null <= 50 characters
type
string or null (smaOrganizationalUnitType)
Enum: "Unit" "Heading"
startingDate
string or null <date>
endingDate
string or null <date>
status
string or null (smaOrganizationalUnitStatus)
Enum: "Open" "Approved" "Closed"
managerNumber
string or null <= 20 characters
parentCode
string or null <= 10 characters
parentId
string or null <uuid>
blocked
boolean or null
approvalDate
string or null <date>
closedDate
string or null <date>
atCodifier
string or null <= 19 characters
employeePostingGroup
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>
Array of objects (defaultDimension (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "fullName": "string",
  • "alternativeName": "string",
  • "smaNameEnglish": "string",
  • "type": "Unit",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "status": "Open",
  • "managerNumber": "string",
  • "parentCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "blocked": true,
  • "approvalDate": "2017-04-13",
  • "closedDate": "2017-04-13",
  • "atCodifier": "string",
  • "employeePostingGroup": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "fullName": "string",
  • "alternativeName": "string",
  • "smaNameEnglish": "string",
  • "type": "Unit",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "status": "Open",
  • "managerNumber": "string",
  • "parentCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "blocked": true,
  • "approvalDate": "2017-04-13",
  • "closedDate": "2017-04-13",
  • "atCodifier": "string",
  • "employeePostingGroup": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ],
  • "defaultDimensions@odata.count": 0
}

Get organizational unit

Retrieves the organizational unit identified by unitId, including hierarchy information and default payroll settings.

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

query Parameters
$select
Array of strings unique
Items Enum: "id" "code" "displayName" "fullName" "alternativeName" "smaNameEnglish" "type" "startingDate" "endingDate" "status" "managerNumber" "parentCode" "parentId" "blocked" "approvalDate" "closedDate" "atCodifier" "employeePostingGroup" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "defaultDimensions"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "fullName": "string",
  • "alternativeName": "string",
  • "smaNameEnglish": "string",
  • "type": "Unit",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "status": "Open",
  • "managerNumber": "string",
  • "parentCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "blocked": true,
  • "approvalDate": "2017-04-13",
  • "closedDate": "2017-04-13",
  • "atCodifier": "string",
  • "employeePostingGroup": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ],
  • "defaultDimensions@odata.count": 0
}

Update organizational unit

Updates the unit referenced by unitId. Modify hierarchy, scheduling, or payroll defaults while the system maintains referential integrity.

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

Request Body schema: application/json
required

New property values

code
string <= 10 characters
displayName
string or null <= 100 characters
fullName
string or null <= 250 characters
alternativeName
string or null <= 50 characters
smaNameEnglish
string or null <= 50 characters
type
string or null (smaOrganizationalUnitType)
Enum: "Unit" "Heading"
startingDate
string or null <date>
endingDate
string or null <date>
status
string or null (smaOrganizationalUnitStatus)
Enum: "Open" "Approved" "Closed"
managerNumber
string or null <= 20 characters
parentCode
string or null <= 10 characters
parentId
string or null <uuid>
blocked
boolean or null
approvalDate
string or null <date>
closedDate
string or null <date>
atCodifier
string or null <= 19 characters
employeePostingGroup
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "displayName": "string",
  • "fullName": "string",
  • "alternativeName": "string",
  • "smaNameEnglish": "string",
  • "type": "Unit",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "status": "Open",
  • "managerNumber": "string",
  • "parentCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "blocked": true,
  • "approvalDate": "2017-04-13",
  • "closedDate": "2017-04-13",
  • "atCodifier": "string",
  • "employeePostingGroup": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete organizational unit

Deletes the unit identified by unitId. Deletion is prevented if positions or employees reference the unit.

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action approve

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action close

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action reopen

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List default dimensions for unitId

Retrieves all default dimension combinations assigned to the organizational unit identified by unitId. Use query options to highlight dimensions relevant for reporting or posting.

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "dimensionId" "dimensionId desc" "dimensionCode" "dimensionCode desc" "dimensionValueId" "dimensionValueId desc" "dimensionValueCode" "dimensionValueCode desc" "postingValidation" "postingValidation desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "dimensionId" "dimensionCode" "dimensionValueId" "dimensionValueCode" "postingValidation" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create default dimension for unitId

Adds a new default dimension record to the unit referenced by unitId. Provide dimension and dimension value codes along with posting validation preferences.

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
dimensionId
string or null <uuid>
dimensionCode
string <= 20 characters
dimensionValueId
string or null <uuid>
dimensionValueCode
string or null <= 20 characters
postingValidation
string or null (defaultDimensionValuePostingType)
Enum: "_x0020_" "Code_x0020_Mandatory" "Same_x0020_Code" "No_x0020_Code"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get default dimension for unitId

Returns the default dimension identified by defaultDimensionId for the unit unitId.

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

defaultDimensionId
required
string <uuid>
Examples:
  • abcdef01-2345-6789-abcd-ef0123456789 -

Unique identifier (GUID) of an employee default dimension record. Use it when updating or deleting a specific dimension combination assigned to the employee.

query Parameters
$select
Array of strings unique
Items Enum: "id" "dimensionId" "dimensionCode" "dimensionValueId" "dimensionValueCode" "postingValidation" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update employee default dimension

Updates an existing default dimension record for the employee. Include only the fields to change; other values remain untouched.

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

defaultDimensionId
required
string <uuid>
Examples:
  • abcdef01-2345-6789-abcd-ef0123456789 -

Unique identifier (GUID) of an employee default dimension record. Use it when updating or deleting a specific dimension combination assigned to the employee.

Request Body schema: application/json
required

New property values

dimensionId
string or null <uuid>
dimensionCode
string <= 20 characters
dimensionValueId
string or null <uuid>
dimensionValueCode
string or null <= 20 characters
postingValidation
string or null (defaultDimensionValuePostingType)
Enum: "_x0020_" "Code_x0020_Mandatory" "Same_x0020_Code" "No_x0020_Code"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete employee default dimension

Removes the selected default dimension from the employee profile so that it no longer pre-fills new transactions.

Authorizations:
BearerAuth
path Parameters
unitId
required
string <uuid>
Examples:
  • 0fedcba9-8765-4321-0fed-cba987654321 -

Unique identifier (GUID) of an organizational unit.

defaultDimensionId
required
string <uuid>
Examples:
  • abcdef01-2345-6789-abcd-ef0123456789 -

Unique identifier (GUID) of an employee default dimension record. Use it when updating or deleting a specific dimension combination assigned to the employee.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

positions

Position records representing specific jobs/roles in the organizational structure. Positions can be budgeted (planned vacancies) or actual (filled). Each position has one employee maximum.

List all positions in the organizational structure

Retrieves all position records representing specific jobs/roles in the company's organizational structure. Positions can be either budgeted (planned vacancies used for staffing planning) or actual (can be filled by employees). Each actual position can have maximum one employee. Use filters to find open positions, positions in specific departments, or positions with specific job titles.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "number" "number desc" "orgUnitId" "orgUnitId desc" "orgUnitCode" "orgUnitCode desc" "jobTitleId" "jobTitleId desc" "jobTitleCode" "jobTitleCode desc" "startingDate" "startingDate desc" "endingDate" "endingDate desc" "rate" "rate desc" "status" "status desc" "calcGroupCode" "calcGroupCode desc" "calendarCode" "calendarCode desc" "categoryCode" "categoryCode desc" "outOfStaff" "outOfStaff desc" "positionForDisabledPerson" "positionForDisabledPerson desc" "postingGroup" "postingGroup desc" "statisticalGroupCode" "statisticalGroupCode desc" "formOfWork" "formOfWork desc" "worktimeNorm" "worktimeNorm desc" "hireConditions" "hireConditions desc" "kindOfWork" "kindOfWork desc" "currencyCode" "currencyCode desc" "baseSalary" "baseSalary desc" "additionalSalary" "additionalSalary desc" "note" "note desc" "openingReason" "openingReason desc" "approvalDate" "approvalDate desc" "closingDate" "closingDate desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "number" "orgUnitId" "orgUnitCode" "jobTitleId" "jobTitleCode" "startingDate" "endingDate" "rate" "status" "calcGroupCode" "calendarCode" "categoryCode" "outOfStaff" "positionForDisabledPerson" "postingGroup" "statisticalGroupCode" "formOfWork" "worktimeNorm" "hireConditions" "kindOfWork" "currencyCode" "baseSalary" "additionalSalary" "note" "openingReason" "approvalDate" "closingDate" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "defaultDimensions" "laborterms"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create a new position

Creates a new position in the organizational structure. Positions must be approved before they can be used for hiring. Specify whether it's a budgeted position (for planning) or actual position (can be filled). Required fields include organizationalUnitCode, jobTitleCode, rate (FTE), and effective dates. Define salary, calendar, and calculation group settings.

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
number
string or null <= 20 characters
orgUnitId
string or null <uuid>
orgUnitCode
string or null <= 10 characters
jobTitleId
string or null <uuid>
jobTitleCode
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
(number or null) or (string or null) <decimal>
status
string or null (smaPositionStatus)
Enum: "Planned" "Approved" "Closed"
calcGroupCode
string or null <= 10 characters
calendarCode
string or null <= 10 characters
categoryCode
string or null <= 10 characters
outOfStaff
boolean or null
positionForDisabledPerson
boolean or null
postingGroup
string or null <= 20 characters
statisticalGroupCode
string or null <= 10 characters
formOfWork
string or null (smaFormOfWork)
Enum: "_x0020_" "Remote" "Homework"
worktimeNorm
string or null <= 10 characters
hireConditions
string or null <= 20 characters
kindOfWork
string or null (smaLaborKindofWork)
Enum: "_x0020_" "Permanent" "Temporary" "Seasonal"
currencyCode
string or null
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
note
string or null <= 250 characters
openingReason
string or null <= 250 characters
approvalDate
string or null <date>
closingDate
string or null <date>
lastModifiedDateTime
string or null <date-time>
Array of objects (defaultDimension (for create))
Array of objects (laborterms (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "orgUnitId": "01234567-89ab-cdef-0123-456789abcdef",
  • "orgUnitCode": "string",
  • "jobTitleId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "rate": 0,
  • "status": "Planned",
  • "calcGroupCode": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "outOfStaff": true,
  • "positionForDisabledPerson": true,
  • "postingGroup": "string",
  • "statisticalGroupCode": "string",
  • "formOfWork": "_x0020_",
  • "worktimeNorm": "string",
  • "hireConditions": "string",
  • "kindOfWork": "_x0020_",
  • "currencyCode": "string",
  • "baseSalary": 0,
  • "additionalSalary": 0,
  • "note": "string",
  • "openingReason": "string",
  • "approvalDate": "2017-04-13",
  • "closingDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ],
  • "laborterms": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "orgUnitId": "01234567-89ab-cdef-0123-456789abcdef",
  • "orgUnitCode": "string",
  • "jobTitleId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "rate": 0,
  • "status": "Planned",
  • "calcGroupCode": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "outOfStaff": true,
  • "positionForDisabledPerson": true,
  • "postingGroup": "string",
  • "statisticalGroupCode": "string",
  • "formOfWork": "_x0020_",
  • "worktimeNorm": "string",
  • "hireConditions": "string",
  • "kindOfWork": "_x0020_",
  • "currencyCode": "string",
  • "baseSalary": 0,
  • "additionalSalary": 0,
  • "note": "string",
  • "openingReason": "string",
  • "approvalDate": "2017-04-13",
  • "closingDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ],
  • "defaultDimensions@odata.count": 0,
  • "laborterms": [
    ],
  • "laborterms@odata.count": 0
}

Retrieve a specific position

Returns detailed information about the position identified by positionId, including organizational assignment, job title, employment terms, salary settings, and occupancy status.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

query Parameters
$select
Array of strings unique
Items Enum: "id" "number" "orgUnitId" "orgUnitCode" "jobTitleId" "jobTitleCode" "startingDate" "endingDate" "rate" "status" "calcGroupCode" "calendarCode" "categoryCode" "outOfStaff" "positionForDisabledPerson" "postingGroup" "statisticalGroupCode" "formOfWork" "worktimeNorm" "hireConditions" "kindOfWork" "currencyCode" "baseSalary" "additionalSalary" "note" "openingReason" "approvalDate" "closingDate" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "defaultDimensions" "laborterms"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "orgUnitId": "01234567-89ab-cdef-0123-456789abcdef",
  • "orgUnitCode": "string",
  • "jobTitleId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "rate": 0,
  • "status": "Planned",
  • "calcGroupCode": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "outOfStaff": true,
  • "positionForDisabledPerson": true,
  • "postingGroup": "string",
  • "statisticalGroupCode": "string",
  • "formOfWork": "_x0020_",
  • "worktimeNorm": "string",
  • "hireConditions": "string",
  • "kindOfWork": "_x0020_",
  • "currencyCode": "string",
  • "baseSalary": 0,
  • "additionalSalary": 0,
  • "note": "string",
  • "openingReason": "string",
  • "approvalDate": "2017-04-13",
  • "closingDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ],
  • "defaultDimensions@odata.count": 0,
  • "laborterms": [
    ],
  • "laborterms@odata.count": 0
}

Update position

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

Request Body schema: application/json
required

New property values

number
string or null <= 20 characters
orgUnitId
string or null <uuid>
orgUnitCode
string or null <= 10 characters
jobTitleId
string or null <uuid>
jobTitleCode
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
(number or null) or (string or null) <decimal>
status
string or null (smaPositionStatus)
Enum: "Planned" "Approved" "Closed"
calcGroupCode
string or null <= 10 characters
calendarCode
string or null <= 10 characters
categoryCode
string or null <= 10 characters
outOfStaff
boolean or null
positionForDisabledPerson
boolean or null
postingGroup
string or null <= 20 characters
statisticalGroupCode
string or null <= 10 characters
formOfWork
string or null (smaFormOfWork)
Enum: "_x0020_" "Remote" "Homework"
worktimeNorm
string or null <= 10 characters
hireConditions
string or null <= 20 characters
kindOfWork
string or null (smaLaborKindofWork)
Enum: "_x0020_" "Permanent" "Temporary" "Seasonal"
currencyCode
string or null
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
note
string or null <= 250 characters
openingReason
string or null <= 250 characters
approvalDate
string or null <date>
closingDate
string or null <date>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "number": "string",
  • "orgUnitId": "01234567-89ab-cdef-0123-456789abcdef",
  • "orgUnitCode": "string",
  • "jobTitleId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "rate": 0,
  • "status": "Planned",
  • "calcGroupCode": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "outOfStaff": true,
  • "positionForDisabledPerson": true,
  • "postingGroup": "string",
  • "statisticalGroupCode": "string",
  • "formOfWork": "_x0020_",
  • "worktimeNorm": "string",
  • "hireConditions": "string",
  • "kindOfWork": "_x0020_",
  • "currencyCode": "string",
  • "baseSalary": 0,
  • "additionalSalary": 0,
  • "note": "string",
  • "openingReason": "string",
  • "approvalDate": "2017-04-13",
  • "closingDate": "2017-04-13",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete position

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action approve

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action close

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action reopen

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List default dimensions for positionId

Retrieves default dimension combinations assigned to the position identified by positionId.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "dimensionId" "dimensionId desc" "dimensionCode" "dimensionCode desc" "dimensionValueId" "dimensionValueId desc" "dimensionValueCode" "dimensionValueCode desc" "postingValidation" "postingValidation desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "dimensionId" "dimensionCode" "dimensionValueId" "dimensionValueCode" "postingValidation" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create default dimension for positionId

Adds a new default dimension record to the position referenced by positionId. Provide dimension and dimension value codes along with posting validation preferences.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
dimensionId
string or null <uuid>
dimensionCode
string <= 20 characters
dimensionValueId
string or null <uuid>
dimensionValueCode
string or null <= 20 characters
postingValidation
string or null (defaultDimensionValuePostingType)
Enum: "_x0020_" "Code_x0020_Mandatory" "Same_x0020_Code" "No_x0020_Code"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get default dimension for positionId

Returns the default dimension identified by defaultDimensionId for the position positionId.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

defaultDimensionId
required
string <uuid>
Examples:
  • abcdef01-2345-6789-abcd-ef0123456789 -

Unique identifier (GUID) of an employee default dimension record. Use it when updating or deleting a specific dimension combination assigned to the employee.

query Parameters
$select
Array of strings unique
Items Enum: "id" "dimensionId" "dimensionCode" "dimensionValueId" "dimensionValueCode" "postingValidation" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update default dimension for positionId

Updates the selected default dimension record for the position. Provide only fields that must change and include the latest ETag in If-Match.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

defaultDimensionId
required
string <uuid>
Examples:
  • abcdef01-2345-6789-abcd-ef0123456789 -

Unique identifier (GUID) of an employee default dimension record. Use it when updating or deleting a specific dimension combination assigned to the employee.

Request Body schema: application/json
required

New property values

dimensionId
string or null <uuid>
dimensionCode
string <= 20 characters
dimensionValueId
string or null <uuid>
dimensionValueCode
string or null <= 20 characters
postingValidation
string or null (defaultDimensionValuePostingType)
Enum: "_x0020_" "Code_x0020_Mandatory" "Same_x0020_Code" "No_x0020_Code"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "dimensionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionCode": "string",
  • "dimensionValueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "dimensionValueCode": "string",
  • "postingValidation": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete default dimension for positionId

Deletes the default dimension referenced by defaultDimensionId from the position profile.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

defaultDimensionId
required
string <uuid>
Examples:
  • abcdef01-2345-6789-abcd-ef0123456789 -

Unique identifier (GUID) of an employee default dimension record. Use it when updating or deleting a specific dimension combination assigned to the employee.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List labor terms for positionId

Retrieves labor term definitions linked to the position identified by positionId. Use filters to target specific calculation elements or activity codes.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "type" "type desc" "operationType" "operationType desc" "elementCode" "elementCode desc" "timeActivityCode" "timeActivityCode desc" "quantity" "quantity desc" "percent" "percent desc" "currencyCode" "currencyCode desc" "amount" "amount desc" "additionalSalary" "additionalSalary desc" "useOriginalCurrency" "useOriginalCurrency desc" "workMode" "workMode desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "type" "operationType" "elementCode" "timeActivityCode" "quantity" "percent" "currencyCode" "amount" "additionalSalary" "useOriginalCurrency" "workMode" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create labor term for positionId

Adds a new labor term configuration to the position identified by positionId.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
type
string or null (smaLaborContractTermsType)
Enum: "Payroll_x0020_Element" "Vacation_x0020_Accrual" "Vacation_x0020_Compensation"
operationType
string or null (smaDfltLabTermsOperType)
Enum: "All" "Hire" "Transfer" "Combination" "Dismissal"
elementCode
string or null <= 20 characters
timeActivityCode
string or null <= 10 characters
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
currencyCode
string or null
(number or null) or (string or null) <decimal>
additionalSalary
boolean or null
useOriginalCurrency
boolean or null
workMode
string or null (smalcTermsWorkMode)
Enum: "_x0020_" "Primary_x0020_Job" "Internal_x0020_Co_x002D_work" "External_x0020_Co_x002D_work"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "type": "Payroll_x0020_Element",
  • "operationType": "All",
  • "elementCode": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "amount": 0,
  • "additionalSalary": true,
  • "useOriginalCurrency": true,
  • "workMode": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "type": "Payroll_x0020_Element",
  • "operationType": "All",
  • "elementCode": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "amount": 0,
  • "additionalSalary": true,
  • "useOriginalCurrency": true,
  • "workMode": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get labor term for positionId

Returns the labor term identified by positionLaborTermId for the position referenced by positionId.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

positionLaborTermId
required
string <uuid>
Examples:
  • 2abcdef0-1234-5c67-2def-0123456789ab -

Unique identifier (GUID) of a labor term line assigned to a position.

query Parameters
$select
Array of strings unique
Items Enum: "id" "type" "operationType" "elementCode" "timeActivityCode" "quantity" "percent" "currencyCode" "amount" "additionalSalary" "useOriginalCurrency" "workMode" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "type": "Payroll_x0020_Element",
  • "operationType": "All",
  • "elementCode": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "amount": 0,
  • "additionalSalary": true,
  • "useOriginalCurrency": true,
  • "workMode": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update labor term for positionId

Updates the specified labor term record. Provide only the properties that must change and include the latest ETag in If-Match.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

positionLaborTermId
required
string <uuid>
Examples:
  • 2abcdef0-1234-5c67-2def-0123456789ab -

Unique identifier (GUID) of a labor term line assigned to a position.

Request Body schema: application/json
required

New property values

type
string or null (smaLaborContractTermsType)
Enum: "Payroll_x0020_Element" "Vacation_x0020_Accrual" "Vacation_x0020_Compensation"
operationType
string or null (smaDfltLabTermsOperType)
Enum: "All" "Hire" "Transfer" "Combination" "Dismissal"
elementCode
string or null <= 20 characters
timeActivityCode
string or null <= 10 characters
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
currencyCode
string or null
(number or null) or (string or null) <decimal>
additionalSalary
boolean or null
useOriginalCurrency
boolean or null
workMode
string or null (smalcTermsWorkMode)
Enum: "_x0020_" "Primary_x0020_Job" "Internal_x0020_Co_x002D_work" "External_x0020_Co_x002D_work"
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "type": "Payroll_x0020_Element",
  • "operationType": "All",
  • "elementCode": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "amount": 0,
  • "additionalSalary": true,
  • "useOriginalCurrency": true,
  • "workMode": "_x0020_",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete labor term for positionId

Deletes the labor term referenced by positionLaborTermId from the position profile.

Authorizations:
BearerAuth
path Parameters
positionId
required
string <uuid>
Examples:
  • f0edcba9-7654-3210-f0ed-cba987654321 -

Unique identifier (GUID) of a position record within the organization structure.

positionLaborTermId
required
string <uuid>
Examples:
  • 2abcdef0-1234-5c67-2def-0123456789ab -

Unique identifier (GUID) of a labor term line assigned to a position.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

accessdata

Employee time and attendance records from access control systems. Used for automated time tracking and timesheet generation.

List employee time and attendance records

Retrieves time and attendance data imported from access control systems (turnstiles, card readers). Access data records employee entry/exit times and is used for automated timesheet generation and working hours verification. Can be filtered by employee, date range, or access point to analyze attendance patterns.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "employeeNumber" "employeeNumber desc" "employeeId" "employeeId desc" "registrationType" "registrationType desc" "date" "date desc" "time" "time desc" "status" "status desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "employeeNumber" "employeeId" "registrationType" "date" "time" "status"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to accessdata

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
employeeNumber
string or null <= 20 characters
employeeId
string or null <uuid>
registrationType
string or null (smaEmployeeRegistrationType)
Enum: "Entrance" "Out"
date
string or null <date>
time
string or null
status
string or null (smaEmplAccModeStatus)
Enum: "Open" "Released"

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "registrationType": "Entrance",
  • "date": "2017-04-13",
  • "time": "string",
  • "status": "Open"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "registrationType": "Entrance",
  • "date": "2017-04-13",
  • "time": "string",
  • "status": "Open"
}

Get access data record

Retrieves the access control record identified by accessDataId, including registration type and status.

Authorizations:
BearerAuth
path Parameters
accessDataId
required
string <uuid>
Examples:
  • ef0dcba9-6543-210f-ef0d-cba987654321 -

Unique identifier (GUID) of an access control record imported from time tracking systems.

query Parameters
$select
Array of strings unique
Items Enum: "id" "employeeNumber" "employeeId" "registrationType" "date" "time" "status"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "registrationType": "Entrance",
  • "date": "2017-04-13",
  • "time": "string",
  • "status": "Open"
}

Update access data record

Updates the access control record referenced by accessDataId, e.g., to fix registration type or status.

Authorizations:
BearerAuth
path Parameters
accessDataId
required
string <uuid>
Examples:
  • ef0dcba9-6543-210f-ef0d-cba987654321 -

Unique identifier (GUID) of an access control record imported from time tracking systems.

Request Body schema: application/json
required

New property values

employeeNumber
string or null <= 20 characters
employeeId
string or null <uuid>
registrationType
string or null (smaEmployeeRegistrationType)
Enum: "Entrance" "Out"
date
string or null <date>
time
string or null
status
string or null (smaEmplAccModeStatus)
Enum: "Open" "Released"

Responses

Request samples

Content type
application/json
{
  • "employeeNumber": "string",
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "registrationType": "Entrance",
  • "date": "2017-04-13",
  • "time": "string",
  • "status": "Open"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete access data record

Deletes the access data entry identified by accessDataId. Use when removing duplicated or erroneous check-ins.

Authorizations:
BearerAuth
path Parameters
accessDataId
required
string <uuid>
Examples:
  • ef0dcba9-6543-210f-ef0d-cba987654321 -

Unique identifier (GUID) of an access control record imported from time tracking systems.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

elements

Payroll elements (calculation types) used in salary calculations: earnings, deductions, taxes, and benefits. Each element has its own calculation formula and rules.

employeeJournals

Employee payroll journals aggregating all payroll calculations for a specific period. Used as the basis for salary payment and posting.

List employee payroll journals

Retrieves payroll journals aggregating all payroll calculations for employees in a specific period. Employee journals serve as the basis for salary payments and financial posting. Each journal entry contains calculated payroll elements (earnings, deductions, taxes) for an employee. Filter by period, employee, or calculation status.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "code" "code desc" "displayName" "displayName desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "code" "displayName" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "payrolljournallines"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to employeeJournals

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
code
string <= 10 characters
displayName
string or null <= 50 characters
lastModifiedDateTime
string or null <date-time>
Array of objects (payrolljournalline (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "payrolljournallines": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "payrolljournallines": [
    ],
  • "payrolljournallines@odata.count": 0
}

Get employee journal

Retrieves the employee payroll journal identified by employeeJournalId, including posting and period metadata.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

query Parameters
$select
Array of strings unique
Items Enum: "id" "code" "displayName" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "payrolljournallines"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "payrolljournallines": [
    ],
  • "payrolljournallines@odata.count": 0
}

Update employee journal

Updates the employee journal referenced by employeeJournalId. Use to adjust headers before posting.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

Request Body schema: application/json
required

New property values

code
string <= 10 characters
displayName
string or null <= 50 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "displayName": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete employee journal

Deletes the employee journal if it has not been posted.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List payroll journal lines for journalId

Returns payroll journal lines belonging to the journal identified by employeeJournalId.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "journalId" "journalId desc" "journalDisplayName" "journalDisplayName desc" "lineNumber" "lineNumber desc" "employeeId" "employeeId desc" "employeeNumber" "employeeNumber desc" "elementId" "elementId desc" "elementCode" "elementCode desc" "postingDate" "postingDate desc" "periodCode" "periodCode desc" "startingDate" "startingDate desc" "endingDate" "endingDate desc" "documentNumber" "documentNumber desc" "externalDocumentNumber" "externalDocumentNumber desc" "hrNumberSeries" "hrNumberSeries desc" "hrOrderNumber" "hrOrderNumber desc" "hrOrderDate" "hrOrderDate desc" "quantity" "quantity desc" "currencyCode" "currencyCode desc" "amount" "amount desc" "aePeriodFrom" "aePeriodFrom desc" "aePeriodTo" "aePeriodTo desc" "elementType" "elementType desc" "bonusPeriod" "bonusPeriod desc" "postAction" "postAction desc" "description" "description desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "journalId" "journalDisplayName" "lineNumber" "employeeId" "employeeNumber" "elementId" "elementCode" "postingDate" "periodCode" "startingDate" "endingDate" "documentNumber" "externalDocumentNumber" "hrNumberSeries" "hrOrderNumber" "hrOrderDate" "quantity" "currencyCode" "amount" "aePeriodFrom" "aePeriodTo" "elementType" "bonusPeriod" "postAction" "description" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "employeeVacationJournal" "employee" "element" "dimensionSetLines" "employeeJournal"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create payroll journal line

Adds a payroll journal line to the journal referenced by employeeJournalId.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
journalId
string or null <uuid>
journalDisplayName
string or null <= 10 characters
lineNumber
integer or null <int32>
employeeId
string or null <uuid>
employeeNumber
string <= 20 characters
elementId
string or null <uuid>
elementCode
string or null <= 20 characters
postingDate
string or null <date>
periodCode
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
documentNumber
string or null <= 20 characters
externalDocumentNumber
string or null <= 30 characters
hrNumberSeries
string or null <= 20 characters
hrOrderNumber
string or null <= 20 characters
hrOrderDate
string or null <date>
(number or null) or (string or null) <decimal>
currencyCode
string or null
(number or null) or (string or null) <decimal>
aePeriodFrom
string or null <= 10 characters
aePeriodTo
string or null <= 10 characters
elementType
string or null (smaPayrollElementType)
Enum: "Wage" "Bonus" "Income_x0020_Tax" "Netto_x0020_Salary" "Tax_x0020_Deduction" "Deduction" "Other" "Funds" "Reporting" "Military_x0020_Collection" "Vacation_x0020_Reserve" "Pension_x0020_Deduction" "VAT"
bonusPeriod
string or null <= 10 characters
postAction
string or null (smaEmplJnlPostAction)
Enum: "Add" "Update" "Close"
description
string or null <= 100 characters
lastModifiedDateTime
string or null <date-time>
object or null (employeeVacationJournal (for create))
object or null (employee (for create))
object or null (element (for create))
Array of objects (dimensionSetLine (for create))
object or null (employeeJournal (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalId": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalDisplayName": "string",
  • "lineNumber": 0,
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "elementId": "01234567-89ab-cdef-0123-456789abcdef",
  • "elementCode": "string",
  • "postingDate": "2017-04-13",
  • "periodCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "documentNumber": "string",
  • "externalDocumentNumber": "string",
  • "hrNumberSeries": "string",
  • "hrOrderNumber": "string",
  • "hrOrderDate": "2017-04-13",
  • "quantity": 0,
  • "currencyCode": "string",
  • "amount": 0,
  • "aePeriodFrom": "string",
  • "aePeriodTo": "string",
  • "elementType": "Wage",
  • "bonusPeriod": "string",
  • "postAction": "Add",
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "employeeVacationJournal": {
    },
  • "employee": {
    },
  • "element": {
    },
  • "dimensionSetLines": [
    ],
  • "employeeJournal": {
    }
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalId": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalDisplayName": "string",
  • "lineNumber": 0,
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "elementId": "01234567-89ab-cdef-0123-456789abcdef",
  • "elementCode": "string",
  • "postingDate": "2017-04-13",
  • "periodCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "documentNumber": "string",
  • "externalDocumentNumber": "string",
  • "hrNumberSeries": "string",
  • "hrOrderNumber": "string",
  • "hrOrderDate": "2017-04-13",
  • "quantity": 0,
  • "currencyCode": "string",
  • "amount": 0,
  • "aePeriodFrom": "string",
  • "aePeriodTo": "string",
  • "elementType": "Wage",
  • "bonusPeriod": "string",
  • "postAction": "Add",
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "employeeVacationJournal": {
    },
  • "employee": {
    },
  • "element": {
    },
  • "dimensionSetLines": [
    ],
  • "dimensionSetLines@odata.count": 0,
  • "employeeJournal": {
    }
}

Get payroll journal line

Returns the payroll journal line identified by payrollJournalLineId within the journal employeeJournalId.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

payrollJournalLineId
required
string <uuid>
Examples:
  • eabcdef0-1234-5c67-edef-0123456789ab -

Unique identifier (GUID) of a payroll journal line entry.

query Parameters
$select
Array of strings unique
Items Enum: "id" "journalId" "journalDisplayName" "lineNumber" "employeeId" "employeeNumber" "elementId" "elementCode" "postingDate" "periodCode" "startingDate" "endingDate" "documentNumber" "externalDocumentNumber" "hrNumberSeries" "hrOrderNumber" "hrOrderDate" "quantity" "currencyCode" "amount" "aePeriodFrom" "aePeriodTo" "elementType" "bonusPeriod" "postAction" "description" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "employeeVacationJournal" "employee" "element" "dimensionSetLines" "employeeJournal"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalId": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalDisplayName": "string",
  • "lineNumber": 0,
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "elementId": "01234567-89ab-cdef-0123-456789abcdef",
  • "elementCode": "string",
  • "postingDate": "2017-04-13",
  • "periodCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "documentNumber": "string",
  • "externalDocumentNumber": "string",
  • "hrNumberSeries": "string",
  • "hrOrderNumber": "string",
  • "hrOrderDate": "2017-04-13",
  • "quantity": 0,
  • "currencyCode": "string",
  • "amount": 0,
  • "aePeriodFrom": "string",
  • "aePeriodTo": "string",
  • "elementType": "Wage",
  • "bonusPeriod": "string",
  • "postAction": "Add",
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "employeeVacationJournal": {
    },
  • "employee": {
    },
  • "element": {
    },
  • "dimensionSetLines": [
    ],
  • "dimensionSetLines@odata.count": 0,
  • "employeeJournal": {
    }
}

Update payroll journal line

Updates a payroll journal line. Include If-Match to avoid conflicts.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

payrollJournalLineId
required
string <uuid>
Examples:
  • eabcdef0-1234-5c67-edef-0123456789ab -

Unique identifier (GUID) of a payroll journal line entry.

Request Body schema: application/json
required

New property values

journalId
string or null <uuid>
journalDisplayName
string or null <= 10 characters
lineNumber
integer or null <int32>
employeeId
string or null <uuid>
employeeNumber
string <= 20 characters
elementId
string or null <uuid>
elementCode
string or null <= 20 characters
postingDate
string or null <date>
periodCode
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
documentNumber
string or null <= 20 characters
externalDocumentNumber
string or null <= 30 characters
hrNumberSeries
string or null <= 20 characters
hrOrderNumber
string or null <= 20 characters
hrOrderDate
string or null <date>
(number or null) or (string or null) <decimal>
currencyCode
string or null
(number or null) or (string or null) <decimal>
aePeriodFrom
string or null <= 10 characters
aePeriodTo
string or null <= 10 characters
elementType
string or null (smaPayrollElementType)
Enum: "Wage" "Bonus" "Income_x0020_Tax" "Netto_x0020_Salary" "Tax_x0020_Deduction" "Deduction" "Other" "Funds" "Reporting" "Military_x0020_Collection" "Vacation_x0020_Reserve" "Pension_x0020_Deduction" "VAT"
bonusPeriod
string or null <= 10 characters
postAction
string or null (smaEmplJnlPostAction)
Enum: "Add" "Update" "Close"
description
string or null <= 100 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "journalId": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalDisplayName": "string",
  • "lineNumber": 0,
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "elementId": "01234567-89ab-cdef-0123-456789abcdef",
  • "elementCode": "string",
  • "postingDate": "2017-04-13",
  • "periodCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "documentNumber": "string",
  • "externalDocumentNumber": "string",
  • "hrNumberSeries": "string",
  • "hrOrderNumber": "string",
  • "hrOrderDate": "2017-04-13",
  • "quantity": 0,
  • "currencyCode": "string",
  • "amount": 0,
  • "aePeriodFrom": "string",
  • "aePeriodTo": "string",
  • "elementType": "Wage",
  • "bonusPeriod": "string",
  • "postAction": "Add",
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete payroll journal line

Deletes the payroll journal line referenced by payrollJournalLineId before posting.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

payrollJournalLineId
required
string <uuid>
Examples:
  • eabcdef0-1234-5c67-edef-0123456789ab -

Unique identifier (GUID) of a payroll journal line entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action post

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

payrollJournalLineId
required
string <uuid>
Examples:
  • eabcdef0-1234-5c67-edef-0123456789ab -

Unique identifier (GUID) of a payroll journal line entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List dimension set lines for payrollJournalLineId

Returns all dimension set lines linked to the payroll journal line identified by payrollJournalLineId.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

payrollJournalLineId
required
string <uuid>
Examples:
  • eabcdef0-1234-5c67-edef-0123456789ab -

Unique identifier (GUID) of a payroll journal line entry.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "code" "code desc" "consolidationCode" "consolidationCode desc" "parentId" "parentId desc" "parentType" "parentType desc" "displayName" "displayName desc" "valueId" "valueId desc" "valueCode" "valueCode desc" "valueConsolidationCode" "valueConsolidationCode desc" "valueDisplayName" "valueDisplayName desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "code" "consolidationCode" "parentId" "parentType" "displayName" "valueId" "valueCode" "valueConsolidationCode" "valueDisplayName"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "vacationjournalline" "payrolljournalline"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create dimension set line

Adds a dimension set line to the payroll journal line referenced by payrollJournalLineId.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

payrollJournalLineId
required
string <uuid>
Examples:
  • eabcdef0-1234-5c67-edef-0123456789ab -

Unique identifier (GUID) of a payroll journal line entry.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
code
string <= 20 characters
consolidationCode
string or null <= 20 characters
parentId
string or null <uuid>
parentType
string or null (dimensionSetEntryBufferParentType)
Enum: "_x0020_" "Journal_x0020_Line" "Sales_x0020_Order" "Sales_x0020_Order_x0020_Line" "Sales_x0020_Quote" "Sales_x0020_Quote_x0020_Line" "Sales_x0020_Credit_x0020_Memo" "Sales_x0020_Credit_x0020_Memo_x0020_Line" "Sales_x0020_Invoice" "Sales_x0020_Invoice_x0020_Line" "Purchase_x0020_Invoice" "Purchase_x0020_Invoice_x0020_Line" "General_x0020_Ledger_x0020_Entry" "Time_x0020_Registration_x0020_Entry" "Sales_x0020_Shipment" "Sales_x0020_Shipment_x0020_Line" "Purchase_x0020_Receipt" "Purchase_x0020_Receipt_x0020_Line" "Purchase_x0020_Order" "Purchase_x0020_Order_x0020_Line" "Purchase_x0020_Credit_x0020_Memo" "Purchase_x0020_Credit_x0020_Memo_x0020_Line" "SMA_x0020_Employee_x0020_Journal"
displayName
string or null <= 30 characters
valueId
string or null <uuid>
valueCode
string or null
valueConsolidationCode
string or null <= 20 characters
valueDisplayName
string or null <= 50 characters
object or null (vacationjournalline (for create))
object or null (payrolljournalline (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "consolidationCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "parentType": "_x0020_",
  • "displayName": "string",
  • "valueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "valueCode": "string",
  • "valueConsolidationCode": "string",
  • "valueDisplayName": "string",
  • "vacationjournalline": {
    },
  • "payrolljournalline": {
    }
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "consolidationCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "parentType": "_x0020_",
  • "displayName": "string",
  • "valueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "valueCode": "string",
  • "valueConsolidationCode": "string",
  • "valueDisplayName": "string",
  • "vacationjournalline": {
    },
  • "payrolljournalline": {
    }
}

Get dimension set line

Returns the dimension set line identified by dimensionSetLineId for the payroll journal line payrollJournalLineId.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

payrollJournalLineId
required
string <uuid>
Examples:
  • eabcdef0-1234-5c67-edef-0123456789ab -

Unique identifier (GUID) of a payroll journal line entry.

dimensionSetLineId
required
string <uuid>
Examples:
  • fabcdef0-1234-5c67-fdef-0123456789ab -

Unique identifier (GUID) of a dimension set line associated with a journal or document entry.

query Parameters
$select
Array of strings unique
Items Enum: "id" "code" "consolidationCode" "parentId" "parentType" "displayName" "valueId" "valueCode" "valueConsolidationCode" "valueDisplayName"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "vacationjournalline" "payrolljournalline"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "consolidationCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "parentType": "_x0020_",
  • "displayName": "string",
  • "valueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "valueCode": "string",
  • "valueConsolidationCode": "string",
  • "valueDisplayName": "string",
  • "vacationjournalline": {
    },
  • "payrolljournalline": {
    }
}

Update dimension set line

Updates the specified dimension set line. Only altered fields need to be supplied.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

payrollJournalLineId
required
string <uuid>
Examples:
  • eabcdef0-1234-5c67-edef-0123456789ab -

Unique identifier (GUID) of a payroll journal line entry.

dimensionSetLineId
required
string <uuid>
Examples:
  • fabcdef0-1234-5c67-fdef-0123456789ab -

Unique identifier (GUID) of a dimension set line associated with a journal or document entry.

Request Body schema: application/json
required

New property values

code
string <= 20 characters
consolidationCode
string or null <= 20 characters
parentId
string or null <uuid>
parentType
string or null (dimensionSetEntryBufferParentType)
Enum: "_x0020_" "Journal_x0020_Line" "Sales_x0020_Order" "Sales_x0020_Order_x0020_Line" "Sales_x0020_Quote" "Sales_x0020_Quote_x0020_Line" "Sales_x0020_Credit_x0020_Memo" "Sales_x0020_Credit_x0020_Memo_x0020_Line" "Sales_x0020_Invoice" "Sales_x0020_Invoice_x0020_Line" "Purchase_x0020_Invoice" "Purchase_x0020_Invoice_x0020_Line" "General_x0020_Ledger_x0020_Entry" "Time_x0020_Registration_x0020_Entry" "Sales_x0020_Shipment" "Sales_x0020_Shipment_x0020_Line" "Purchase_x0020_Receipt" "Purchase_x0020_Receipt_x0020_Line" "Purchase_x0020_Order" "Purchase_x0020_Order_x0020_Line" "Purchase_x0020_Credit_x0020_Memo" "Purchase_x0020_Credit_x0020_Memo_x0020_Line" "SMA_x0020_Employee_x0020_Journal"
displayName
string or null <= 30 characters
valueId
string or null <uuid>
valueCode
string or null
valueConsolidationCode
string or null <= 20 characters
valueDisplayName
string or null <= 50 characters

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "consolidationCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "parentType": "_x0020_",
  • "displayName": "string",
  • "valueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "valueCode": "string",
  • "valueConsolidationCode": "string",
  • "valueDisplayName": "string"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete dimension set line

Removes the dimension set line from the payroll journal line.

Authorizations:
BearerAuth
path Parameters
employeeJournalId
required
string <uuid>
Examples:
  • d0efcba9-4321-0fed-0efc-ba9876543210 -

Unique identifier (GUID) of an employee payroll journal header.

payrollJournalLineId
required
string <uuid>
Examples:
  • eabcdef0-1234-5c67-edef-0123456789ab -

Unique identifier (GUID) of a payroll journal line entry.

dimensionSetLineId
required
string <uuid>
Examples:
  • fabcdef0-1234-5c67-fdef-0123456789ab -

Unique identifier (GUID) of a dimension set line associated with a journal or document entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

employeeVacationJournals

Vacation journals tracking employee vacation balances, accruals, and usage. Used for vacation planning and compliance with labor legislation.

List employee vacation journals

Retrieves vacation journals tracking employee vacation balances, accruals, and usage. Vacation journals maintain running balances for different vacation types (annual, additional, study leave, etc.) and are used for vacation planning and compliance with Ukrainian labor legislation. Each entry shows accrued days, used days, and remaining balance.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "code" "code desc" "displayName" "displayName desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "code" "displayName" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "vacationjournallines"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to employeeVacationJournals

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
code
string <= 10 characters
displayName
string or null <= 50 characters
lastModifiedDateTime
string or null <date-time>
Array of objects (vacationjournalline (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "vacationjournallines": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "vacationjournallines": [
    ],
  • "vacationjournallines@odata.count": 0
}

Get employee vacation journal

Retrieves the vacation journal identified by employeeVacationJournalId, including balances and status.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

query Parameters
$select
Array of strings unique
Items Enum: "id" "code" "displayName" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "vacationjournallines"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "displayName": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "vacationjournallines": [
    ],
  • "vacationjournallines@odata.count": 0
}

Update employee vacation journal

Updates fields of the vacation journal referenced by employeeVacationJournalId. Use to adjust descriptions, posting dates, or status transitions.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

Request Body schema: application/json
required

New property values

code
string <= 10 characters
displayName
string or null <= 50 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "displayName": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete employee vacation journal

Deletes the vacation journal if it has not been posted. Posted journals remain locked for audit.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List vacation journal lines for journalId

Retrieves vacation journal lines belonging to the journal identified by employeeVacationJournalId.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "journalId" "journalId desc" "journalDisplayName" "journalDisplayName desc" "lineNumber" "lineNumber desc" "employeeId" "employeeId desc" "employeeNumber" "employeeNumber desc" "timeactivityCode" "timeactivityCode desc" "entryType" "entryType desc" "accrualEntryNumber" "accrualEntryNumber desc" "correction" "correction desc" "createTimesheet" "createTimesheet desc" "quantity" "quantity desc" "workingHours" "workingHours desc" "postingDate" "postingDate desc" "periodCode" "periodCode desc" "startingDate" "startingDate desc" "endingDate" "endingDate desc" "documentNumber" "documentNumber desc" "externalDocumentNumber" "externalDocumentNumber desc" "hrNumberSeries" "hrNumberSeries desc" "hrOrderNumber" "hrOrderNumber desc" "hrOrderDate" "hrOrderDate desc" "description" "description desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "journalId" "journalDisplayName" "lineNumber" "employeeId" "employeeNumber" "timeactivityCode" "entryType" "accrualEntryNumber" "correction" "createTimesheet" "quantity" "workingHours" "postingDate" "periodCode" "startingDate" "endingDate" "documentNumber" "externalDocumentNumber" "hrNumberSeries" "hrOrderNumber" "hrOrderDate" "description" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "employeeVacationJournal" "employee" "dimensionSetLines"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create vacation journal line

Adds a new vacation journal line to the journal referenced by employeeVacationJournalId.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
journalId
string or null <uuid>
journalDisplayName
string or null <= 10 characters
lineNumber
integer or null <int32>
employeeId
string or null <uuid>
employeeNumber
string <= 20 characters
timeactivityCode
string or null <= 10 characters
entryType
string or null (smaEmplAbsEntryType)
Enum: "Usage" "Accrual" "Compensation" "Correction" "_x0020_" "Additional_x0020_Accrual"
accrualEntryNumber
integer or null <int32>
correction
boolean or null
createTimesheet
boolean or null
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
postingDate
string or null <date>
periodCode
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
documentNumber
string or null <= 20 characters
externalDocumentNumber
string or null <= 30 characters
hrNumberSeries
string or null <= 20 characters
hrOrderNumber
string or null <= 20 characters
hrOrderDate
string or null <date>
description
string or null <= 100 characters
lastModifiedDateTime
string or null <date-time>
object or null (employeeVacationJournal (for create))
object or null (employee (for create))
Array of objects (dimensionSetLine (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalId": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalDisplayName": "string",
  • "lineNumber": 0,
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "timeactivityCode": "string",
  • "entryType": "Usage",
  • "accrualEntryNumber": 0,
  • "correction": true,
  • "createTimesheet": true,
  • "quantity": 0,
  • "workingHours": 0,
  • "postingDate": "2017-04-13",
  • "periodCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "documentNumber": "string",
  • "externalDocumentNumber": "string",
  • "hrNumberSeries": "string",
  • "hrOrderNumber": "string",
  • "hrOrderDate": "2017-04-13",
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "employeeVacationJournal": {
    },
  • "employee": {
    },
  • "dimensionSetLines": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalId": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalDisplayName": "string",
  • "lineNumber": 0,
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "timeactivityCode": "string",
  • "entryType": "Usage",
  • "accrualEntryNumber": 0,
  • "correction": true,
  • "createTimesheet": true,
  • "quantity": 0,
  • "workingHours": 0,
  • "postingDate": "2017-04-13",
  • "periodCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "documentNumber": "string",
  • "externalDocumentNumber": "string",
  • "hrNumberSeries": "string",
  • "hrOrderNumber": "string",
  • "hrOrderDate": "2017-04-13",
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "employeeVacationJournal": {
    },
  • "employee": {
    },
  • "dimensionSetLines": [
    ],
  • "dimensionSetLines@odata.count": 0
}

Get vacation journal line

Returns the vacation journal line identified by vacationJournalLineId within the journal employeeVacationJournalId.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

vacationJournalLineId
required
string <uuid>
Examples:
  • 0abcdef0-1234-5c67-0def-0123456789ab -

Unique identifier (GUID) of a vacation journal line entry.

query Parameters
$select
Array of strings unique
Items Enum: "id" "journalId" "journalDisplayName" "lineNumber" "employeeId" "employeeNumber" "timeactivityCode" "entryType" "accrualEntryNumber" "correction" "createTimesheet" "quantity" "workingHours" "postingDate" "periodCode" "startingDate" "endingDate" "documentNumber" "externalDocumentNumber" "hrNumberSeries" "hrOrderNumber" "hrOrderDate" "description" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "employeeVacationJournal" "employee" "dimensionSetLines"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalId": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalDisplayName": "string",
  • "lineNumber": 0,
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "timeactivityCode": "string",
  • "entryType": "Usage",
  • "accrualEntryNumber": 0,
  • "correction": true,
  • "createTimesheet": true,
  • "quantity": 0,
  • "workingHours": 0,
  • "postingDate": "2017-04-13",
  • "periodCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "documentNumber": "string",
  • "externalDocumentNumber": "string",
  • "hrNumberSeries": "string",
  • "hrOrderNumber": "string",
  • "hrOrderDate": "2017-04-13",
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "employeeVacationJournal": {
    },
  • "employee": {
    },
  • "dimensionSetLines": [
    ],
  • "dimensionSetLines@odata.count": 0
}

Update vacation journal line

Updates the selected vacation journal line. Include If-Match with the latest ETag to prevent concurrent edits.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

vacationJournalLineId
required
string <uuid>
Examples:
  • 0abcdef0-1234-5c67-0def-0123456789ab -

Unique identifier (GUID) of a vacation journal line entry.

Request Body schema: application/json
required

New property values

journalId
string or null <uuid>
journalDisplayName
string or null <= 10 characters
lineNumber
integer or null <int32>
employeeId
string or null <uuid>
employeeNumber
string <= 20 characters
timeactivityCode
string or null <= 10 characters
entryType
string or null (smaEmplAbsEntryType)
Enum: "Usage" "Accrual" "Compensation" "Correction" "_x0020_" "Additional_x0020_Accrual"
accrualEntryNumber
integer or null <int32>
correction
boolean or null
createTimesheet
boolean or null
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
postingDate
string or null <date>
periodCode
string or null <= 10 characters
startingDate
string or null <date>
endingDate
string or null <date>
documentNumber
string or null <= 20 characters
externalDocumentNumber
string or null <= 30 characters
hrNumberSeries
string or null <= 20 characters
hrOrderNumber
string or null <= 20 characters
hrOrderDate
string or null <date>
description
string or null <= 100 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "journalId": "01234567-89ab-cdef-0123-456789abcdef",
  • "journalDisplayName": "string",
  • "lineNumber": 0,
  • "employeeId": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "timeactivityCode": "string",
  • "entryType": "Usage",
  • "accrualEntryNumber": 0,
  • "correction": true,
  • "createTimesheet": true,
  • "quantity": 0,
  • "workingHours": 0,
  • "postingDate": "2017-04-13",
  • "periodCode": "string",
  • "startingDate": "2017-04-13",
  • "endingDate": "2017-04-13",
  • "documentNumber": "string",
  • "externalDocumentNumber": "string",
  • "hrNumberSeries": "string",
  • "hrOrderNumber": "string",
  • "hrOrderDate": "2017-04-13",
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete vacation journal line

Deletes the vacation journal line referenced by vacationJournalLineId. Posted journals require reversal entries instead of deletion.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

vacationJournalLineId
required
string <uuid>
Examples:
  • 0abcdef0-1234-5c67-0def-0123456789ab -

Unique identifier (GUID) of a vacation journal line entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Invoke action post

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

vacationJournalLineId
required
string <uuid>
Examples:
  • 0abcdef0-1234-5c67-0def-0123456789ab -

Unique identifier (GUID) of a vacation journal line entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List dimension set lines for vacationJournalLineId

Returns the dimension set lines linked to the vacation journal line identified by vacationJournalLineId.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

vacationJournalLineId
required
string <uuid>
Examples:
  • 0abcdef0-1234-5c67-0def-0123456789ab -

Unique identifier (GUID) of a vacation journal line entry.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "code" "code desc" "consolidationCode" "consolidationCode desc" "parentId" "parentId desc" "parentType" "parentType desc" "displayName" "displayName desc" "valueId" "valueId desc" "valueCode" "valueCode desc" "valueConsolidationCode" "valueConsolidationCode desc" "valueDisplayName" "valueDisplayName desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "code" "consolidationCode" "parentId" "parentType" "displayName" "valueId" "valueCode" "valueConsolidationCode" "valueDisplayName"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "vacationjournalline" "payrolljournalline"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create dimension set line

Adds a new dimension set line for the vacation journal line referenced by vacationJournalLineId.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

vacationJournalLineId
required
string <uuid>
Examples:
  • 0abcdef0-1234-5c67-0def-0123456789ab -

Unique identifier (GUID) of a vacation journal line entry.

Request Body schema: application/json
required

New entity

id
required
string <uuid>
code
string <= 20 characters
consolidationCode
string or null <= 20 characters
parentId
string or null <uuid>
parentType
string or null (dimensionSetEntryBufferParentType)
Enum: "_x0020_" "Journal_x0020_Line" "Sales_x0020_Order" "Sales_x0020_Order_x0020_Line" "Sales_x0020_Quote" "Sales_x0020_Quote_x0020_Line" "Sales_x0020_Credit_x0020_Memo" "Sales_x0020_Credit_x0020_Memo_x0020_Line" "Sales_x0020_Invoice" "Sales_x0020_Invoice_x0020_Line" "Purchase_x0020_Invoice" "Purchase_x0020_Invoice_x0020_Line" "General_x0020_Ledger_x0020_Entry" "Time_x0020_Registration_x0020_Entry" "Sales_x0020_Shipment" "Sales_x0020_Shipment_x0020_Line" "Purchase_x0020_Receipt" "Purchase_x0020_Receipt_x0020_Line" "Purchase_x0020_Order" "Purchase_x0020_Order_x0020_Line" "Purchase_x0020_Credit_x0020_Memo" "Purchase_x0020_Credit_x0020_Memo_x0020_Line" "SMA_x0020_Employee_x0020_Journal"
displayName
string or null <= 30 characters
valueId
string or null <uuid>
valueCode
string or null
valueConsolidationCode
string or null <= 20 characters
valueDisplayName
string or null <= 50 characters
object or null (vacationjournalline (for create))
object or null (payrolljournalline (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "consolidationCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "parentType": "_x0020_",
  • "displayName": "string",
  • "valueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "valueCode": "string",
  • "valueConsolidationCode": "string",
  • "valueDisplayName": "string",
  • "vacationjournalline": {
    },
  • "payrolljournalline": {
    }
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "consolidationCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "parentType": "_x0020_",
  • "displayName": "string",
  • "valueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "valueCode": "string",
  • "valueConsolidationCode": "string",
  • "valueDisplayName": "string",
  • "vacationjournalline": {
    },
  • "payrolljournalline": {
    }
}

Get dimension set line

Returns the dimension set line identified by dimensionSetLineId for the vacation journal line vacationJournalLineId.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

vacationJournalLineId
required
string <uuid>
Examples:
  • 0abcdef0-1234-5c67-0def-0123456789ab -

Unique identifier (GUID) of a vacation journal line entry.

dimensionSetLineId
required
string <uuid>
Examples:
  • fabcdef0-1234-5c67-fdef-0123456789ab -

Unique identifier (GUID) of a dimension set line associated with a journal or document entry.

query Parameters
$select
Array of strings unique
Items Enum: "id" "code" "consolidationCode" "parentId" "parentType" "displayName" "valueId" "valueCode" "valueConsolidationCode" "valueDisplayName"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

$expand
Array of strings unique
Items Enum: "*" "vacationjournalline" "payrolljournalline"

Includes related entities inline in the response. Use to retrieve nested data in a single request instead of multiple calls. Example: $expand=timesheetdetails includes all timesheet detail lines. Use $expand=* to expand all available navigations. Can combine with $select for specific nested fields: $expand=timesheetdetails($select=date,hours). See OData Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "code": "string",
  • "consolidationCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "parentType": "_x0020_",
  • "displayName": "string",
  • "valueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "valueCode": "string",
  • "valueConsolidationCode": "string",
  • "valueDisplayName": "string",
  • "vacationjournalline": {
    },
  • "payrolljournalline": {
    }
}

Update dimension set line

Updates the dimension set line associated with the vacation journal line. Include only changed fields.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

vacationJournalLineId
required
string <uuid>
Examples:
  • 0abcdef0-1234-5c67-0def-0123456789ab -

Unique identifier (GUID) of a vacation journal line entry.

dimensionSetLineId
required
string <uuid>
Examples:
  • fabcdef0-1234-5c67-fdef-0123456789ab -

Unique identifier (GUID) of a dimension set line associated with a journal or document entry.

Request Body schema: application/json
required

New property values

code
string <= 20 characters
consolidationCode
string or null <= 20 characters
parentId
string or null <uuid>
parentType
string or null (dimensionSetEntryBufferParentType)
Enum: "_x0020_" "Journal_x0020_Line" "Sales_x0020_Order" "Sales_x0020_Order_x0020_Line" "Sales_x0020_Quote" "Sales_x0020_Quote_x0020_Line" "Sales_x0020_Credit_x0020_Memo" "Sales_x0020_Credit_x0020_Memo_x0020_Line" "Sales_x0020_Invoice" "Sales_x0020_Invoice_x0020_Line" "Purchase_x0020_Invoice" "Purchase_x0020_Invoice_x0020_Line" "General_x0020_Ledger_x0020_Entry" "Time_x0020_Registration_x0020_Entry" "Sales_x0020_Shipment" "Sales_x0020_Shipment_x0020_Line" "Purchase_x0020_Receipt" "Purchase_x0020_Receipt_x0020_Line" "Purchase_x0020_Order" "Purchase_x0020_Order_x0020_Line" "Purchase_x0020_Credit_x0020_Memo" "Purchase_x0020_Credit_x0020_Memo_x0020_Line" "SMA_x0020_Employee_x0020_Journal"
displayName
string or null <= 30 characters
valueId
string or null <uuid>
valueCode
string or null
valueConsolidationCode
string or null <= 20 characters
valueDisplayName
string or null <= 50 characters

Responses

Request samples

Content type
application/json
{
  • "code": "string",
  • "consolidationCode": "string",
  • "parentId": "01234567-89ab-cdef-0123-456789abcdef",
  • "parentType": "_x0020_",
  • "displayName": "string",
  • "valueId": "01234567-89ab-cdef-0123-456789abcdef",
  • "valueCode": "string",
  • "valueConsolidationCode": "string",
  • "valueDisplayName": "string"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete dimension set line

Removes the dimension set line from the vacation journal line. Use when the dimension is no longer applicable.

Authorizations:
BearerAuth
path Parameters
employeeVacationJournalId
required
string <uuid>
Examples:
  • c0defba9-3210-fedc-0def-ba9876543210 -

Unique identifier (GUID) of an employee vacation journal header.

vacationJournalLineId
required
string <uuid>
Examples:
  • 0abcdef0-1234-5c67-0def-0123456789ab -

Unique identifier (GUID) of a vacation journal line entry.

dimensionSetLineId
required
string <uuid>
Examples:
  • fabcdef0-1234-5c67-fdef-0123456789ab -

Unique identifier (GUID) of a dimension set line associated with a journal or document entry.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

payrollElementLedger

Posted payroll element ledger entries. Historical record of all payroll calculations for reporting and auditing.

Get entities from payrollElementLedger

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "employeeNumber" "employeeNumber desc" "periodCode" "periodCode desc" "elementCode" "elementCode desc" "elementType" "elementType desc" "actionStartingDate" "actionStartingDate desc" "actionEndingDate" "actionEndingDate desc" "documentNumber" "documentNumber desc" "postingDate" "postingDate desc" "aePeriodFrom" "aePeriodFrom desc" "aePeriodTo" "aePeriodTo desc" "amount" "amount desc" "bonusType" "bonusType desc" "bonusPeriod" "bonusPeriod desc" "currencyCode" "currencyCode desc" "quantity" "quantity desc" "hrOrderNumber" "hrOrderNumber desc" "hrOrderDate" "hrOrderDate desc" "description" "description desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "employeeNumber" "periodCode" "elementCode" "elementType" "actionStartingDate" "actionEndingDate" "documentNumber" "postingDate" "aePeriodFrom" "aePeriodTo" "amount" "bonusType" "bonusPeriod" "currencyCode" "quantity" "hrOrderNumber" "hrOrderDate" "description" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Get payroll element ledger entry

Retrieves the posted payroll element ledger entry identified by payrollElementLedgerId.

Authorizations:
BearerAuth
path Parameters
payrollElementLedgerId
required
string <uuid>
Examples:
  • b0cdefa9-210f-edcb-0cde-fa9876543210 -

Unique identifier (GUID) of a payroll element ledger entry.

query Parameters
$select
Array of strings unique
Items Enum: "id" "employeeNumber" "periodCode" "elementCode" "elementType" "actionStartingDate" "actionEndingDate" "documentNumber" "postingDate" "aePeriodFrom" "aePeriodTo" "amount" "bonusType" "bonusPeriod" "currencyCode" "quantity" "hrOrderNumber" "hrOrderDate" "description" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "employeeNumber": "string",
  • "periodCode": "string",
  • "elementCode": "string",
  • "elementType": "Wage",
  • "actionStartingDate": "2017-04-13",
  • "actionEndingDate": "2017-04-13",
  • "documentNumber": "string",
  • "postingDate": "2017-04-13",
  • "aePeriodFrom": "string",
  • "aePeriodTo": "string",
  • "amount": 0,
  • "bonusType": "_x0020_",
  • "bonusPeriod": "string",
  • "currencyCode": "string",
  • "quantity": 0,
  • "hrOrderNumber": "string",
  • "hrOrderDate": "2017-04-13",
  • "description": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

employeeAbsences

Employee absence records including vacations, sick leaves, unpaid leaves, business trips, and other types of absences. Used for payroll calculations and compliance reporting.

Get entities from employeeAbsences

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "entryNumber" "entryNumber desc" "entryType" "entryType desc" "employeeNumber" "employeeNumber desc" "timeActivityCode" "timeActivityCode desc" "startDate" "startDate desc" "endDate" "endDate desc" "calendarDays" "calendarDays desc" "workingDays" "workingDays desc" "workingHours" "workingHours desc" "correction" "correction desc" "documentNumber" "documentNumber desc" "documentDate" "documentDate desc" "documentType" "documentType desc" "adjusted" "adjusted desc" "adjustedDocumentNumber" "adjustedDocumentNumber desc" "description" "description desc" "vacationType" "vacationType desc" "sickLeaveType" "sickLeaveType desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "entryNumber" "entryType" "employeeNumber" "timeActivityCode" "startDate" "endDate" "calendarDays" "workingDays" "workingHours" "correction" "documentNumber" "documentDate" "documentType" "adjusted" "adjustedDocumentNumber" "description" "vacationType" "sickLeaveType"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Get employee absence

Retrieves the employee absence identified by employeeAbsenceId, including dates and document references.

Authorizations:
BearerAuth
path Parameters
employeeAbsenceId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of an employee absence record.

query Parameters
$select
Array of strings unique
Items Enum: "id" "entryNumber" "entryType" "employeeNumber" "timeActivityCode" "startDate" "endDate" "calendarDays" "workingDays" "workingHours" "correction" "documentNumber" "documentDate" "documentType" "adjusted" "adjustedDocumentNumber" "description" "vacationType" "sickLeaveType"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "entryNumber": 0,
  • "entryType": "Usage",
  • "employeeNumber": "string",
  • "timeActivityCode": "string",
  • "startDate": "2017-04-13",
  • "endDate": "2017-04-13",
  • "calendarDays": 0,
  • "workingDays": 0,
  • "workingHours": 0,
  • "correction": true,
  • "documentNumber": "string",
  • "documentDate": "2017-04-13",
  • "documentType": "_x0020_",
  • "adjusted": true,
  • "adjustedDocumentNumber": "string",
  • "description": "string",
  • "vacationType": "_x0020_",
  • "sickLeaveType": "_x0020_"
}

hrisEmployees

Operations for managing employee records. Employees represent HRIS employee entities that can be synchronized with eHR systems. Each employee record contains personal information, work details, addresses, documents, and can have associated relatives.

List all hrisEmployees

Retrieves a collection of hrisEmployee records from the HRIS system. This endpoint supports OData query options for filtering, sorting, pagination, and field selection. Use this endpoint to synchronize employee data from Business Central to eHR systems or to retrieve employee information for reporting purposes.

Use Cases:

  • Retrieve all employees for initial synchronization
  • Query employees by specific criteria (department, status, etc.)
  • Export employee data for reporting
  • Check for employee updates since last synchronization
Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filter items by property values, see Filtering

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "state" "state desc" "firstName" "firstName desc" "lastName" "lastName desc" "middleName" "middleName desc" "firstNameSecondLanguage" "firstNameSecondLanguage desc" "lastNameSecondLanguage" "lastNameSecondLanguage desc" "middleNameSecondLanguage" "middleNameSecondLanguage desc" "email" "email desc" "gender" "gender desc" "birthDate" "birthDate desc" "familyStatus" "familyStatus desc" "vatRegistrationNo" "vatRegistrationNo desc" "nationality" "nationality desc" "nativeLanguage" "nativeLanguage desc" "citizenshipCountryRegion" "citizenshipCountryRegion desc" "phoneNo" "phoneNo desc" "mobilePhone" "mobilePhone desc" "address" "address desc" "city" "city desc" "postCode" "postCode desc" "addressEffectiveDate" "addressEffectiveDate desc" "countryCode" "countryCode desc" "county" "county desc" "adminType" "adminType desc" "street" "street desc" "house" "house desc" "building" "building desc" "apartment" "apartment desc" "factaddress" "factaddress desc" "factAddressCity" "factAddressCity desc" "factAddressPostCode" "factAddressPostCode desc" "factAddressEffectiveDate" "factAddressEffectiveDate desc" "factAddressCountryCode" "factAddressCountryCode desc" "factAddressCounty" "factAddressCounty desc" "factAddressAdminType" "factAddressAdminType desc" "factAddressStreet" "factAddressStreet desc" "factAddressHouse" "factAddressHouse desc" "factAddressBuilding" "factAddressBuilding desc" "factAddressApartment" "factAddressApartment desc" "department" "department desc" "jobTitle" "jobTitle desc" "workStartDate" "workStartDate desc" "workEffectiveDate" "workEffectiveDate desc" "managerID" "managerID desc" "useTrialPeriod" "useTrialPeriod desc" "trialPeriodFormula" "trialPeriodFormula desc" "rehiring" "rehiring desc" "baseSalary" "baseSalary desc" "baseSalaryCurrencyCode" "baseSalaryCurrencyCode desc" "terminationDate" "terminationDate desc" "terminationReason" "terminationReason desc" "fte" "fte desc" "disabilityStartingDate" "disabilityStartingDate desc" "disabilityGroup" "disabilityGroup desc" "documentType" "documentType desc" "documentNo" "documentNo desc" "documentSeries" "documentSeries desc" "documentIssueAuthority" "documentIssueAuthority desc" "documentIssueDate" "documentIssueDate desc" "documentValidDate" "documentValidDate desc" "documentValidDateTo" "documentValidDateTo desc" "iban" "iban desc" "bankName" "bankName desc"

Order items by property values, see Sorting

$select
Array of strings unique
Items Enum: "id" "state" "firstName" "lastName" "middleName" "firstNameSecondLanguage" "lastNameSecondLanguage" "middleNameSecondLanguage" "email" "gender" "birthDate" "familyStatus" "vatRegistrationNo" "nationality" "nativeLanguage" "citizenshipCountryRegion" "phoneNo" "mobilePhone" "address" "city" "postCode" "addressEffectiveDate" "countryCode" "county" "adminType" "street" "house" "building" "apartment" "factaddress" "factAddressCity" "factAddressPostCode" "factAddressEffectiveDate" "factAddressCountryCode" "factAddressCounty" "factAddressAdminType" "factAddressStreet" "factAddressHouse" "factAddressBuilding" "factAddressApartment" "department" "jobTitle" "workStartDate" "workEffectiveDate" "managerID" "useTrialPeriod" "trialPeriodFormula" "rehiring" "baseSalary" "baseSalaryCurrencyCode" "terminationDate" "terminationReason" "fte" "disabilityStartingDate" "disabilityGroup" "documentType" "documentNo" "documentSeries" "documentIssueAuthority" "documentIssueDate" "documentValidDate" "documentValidDateTo" "iban" "bankName"

Select properties to be returned, see Select

$expand
Array of strings unique
Items Enum: "*" "hrisEmployeeRelatives"

Expand related entities, see Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create a new hrisEmployee

Creates a new hrisEmployee record in the HRIS system. This endpoint is used when eHR systems need to add new employees to Business Central. The employee ID must be provided and must be unique.

Use Cases:

  • Add new employees from eHR to Business Central
  • Create employee records during onboarding
  • Import employees from external HR systems

Required Fields:

  • id: Unique identifier for the employee (Text, max 36 characters)

Note: All other fields are optional. However, it's recommended to provide at least basic information such as firstName, lastName, and email for complete employee records.

Authorizations:
BearerAuth
Request Body schema: application/json
required

Employee entity to be created. Must include a unique id field. All other fields are optional but recommended for complete employee records.

id
required
string <uuid>
number
string or null <= 20 characters
displayName
string or null
givenName
string or null <= 30 characters
middleName
string or null <= 30 characters
surname
string or null <= 30 characters
addressLine1
string or null <= 100 characters
addressLine2
string or null <= 50 characters
city
string or null <= 30 characters
state
string or null <= 30 characters
country
string or null <= 10 characters
postalCode
string or null <= 20 characters
phoneNumber
string or null <= 30 characters
mobilePhone
string or null <= 30 characters
email
string or null <= 80 characters
personalEmail
string or null <= 80 characters
birthDate
string or null <date>
vatRegistrationNumber
string or null <= 20 characters
gender
string or null (employeeGender)
Enum: "_x0020_" "Female" "Male" "Non_x002D_binary" "Self_x002D_Described" "I_x0020_don_x2019_t_x0020_wish_x0020_to_x0020_answer"
employeePostingGroup
string or null <= 20 characters
calendarCode
string or null <= 10 characters
categoryCode
string or null <= 10 characters
orgUnitCode
string or null <= 10 characters
payrollCalcGroup
string or null <= 10 characters
payrollPostingGroup
string or null <= 20 characters
personNumber
string or null <= 20 characters
personId
string or null <uuid>
positionNumber
string or null <= 20 characters
positionId
string or null <uuid>
contractNumber
string or null <= 20 characters
contractId
string or null <uuid>
jobTitleCode
string or null <= 10 characters
orgUnitName
string or null <= 100 characters
jobTitle
string or null <= 250 characters
employmentDate
string or null <date>
terminationDate
string or null <date>
status
string or null (employeeStatus)
Enum: "Active" "Inactive" "Terminated"
statisticsGroupCode
string or null <= 10 characters
companyBankCode
string or null <= 20 characters
employeeBankCode
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>
Array of objects (defaultDimension (for create))

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "displayName": "string",
  • "givenName": "string",
  • "middleName": "string",
  • "surname": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "postalCode": "string",
  • "phoneNumber": "string",
  • "mobilePhone": "string",
  • "email": "string",
  • "personalEmail": "string",
  • "birthDate": "2017-04-13",
  • "vatRegistrationNumber": "string",
  • "gender": "_x0020_",
  • "employeePostingGroup": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "orgUnitCode": "string",
  • "payrollCalcGroup": "string",
  • "payrollPostingGroup": "string",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractNumber": "string",
  • "contractId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "orgUnitName": "string",
  • "jobTitle": "string",
  • "employmentDate": "2017-04-13",
  • "terminationDate": "2017-04-13",
  • "status": "Active",
  • "statisticsGroupCode": "string",
  • "companyBankCode": "string",
  • "employeeBankCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ]
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "displayName": "string",
  • "givenName": "string",
  • "middleName": "string",
  • "surname": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "postalCode": "string",
  • "phoneNumber": "string",
  • "mobilePhone": "string",
  • "email": "string",
  • "personalEmail": "string",
  • "birthDate": "2017-04-13",
  • "vatRegistrationNumber": "string",
  • "gender": "_x0020_",
  • "employeePostingGroup": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "orgUnitCode": "string",
  • "payrollCalcGroup": "string",
  • "payrollPostingGroup": "string",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractNumber": "string",
  • "contractId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "orgUnitName": "string",
  • "jobTitle": "string",
  • "employmentDate": "2017-04-13",
  • "terminationDate": "2017-04-13",
  • "status": "Active",
  • "statisticsGroupCode": "string",
  • "companyBankCode": "string",
  • "employeeBankCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ],
  • "defaultDimensions@odata.count": 0
}

Get hrisEmployee by ID

Retrieves a specific employee record by its unique identifier. Use this endpoint to fetch detailed information about a single employee, including all associated data. You can use $select to retrieve only specific fields and $expand to include related entities such as employee relatives.

Use Cases:

  • Retrieve specific employee details for synchronization
  • Get employee information for display in eHR systems
  • Verify employee data after updates
  • Fetch employee with related relatives in a single request
Authorizations:
BearerAuth
path Parameters
id
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Employee ID (Text). The unique identifier of the employee record. This is a 36-character Text that uniquely identifies an employee in the HRIS system.

query Parameters
$select
Array of strings unique
Items Enum: "id" "state" "firstName" "lastName" "middleName" "firstNameSecondLanguage" "lastNameSecondLanguage" "middleNameSecondLanguage" "email" "gender" "birthDate" "familyStatus" "vatRegistrationNo" "nationality" "nativeLanguage" "citizenshipCountryRegion" "phoneNo" "mobilePhone" "address" "city" "postCode" "addressEffectiveDate" "countryCode" "county" "adminType" "street" "house" "building" "apartment" "factaddress" "factAddressCity" "factAddressPostCode" "factAddressEffectiveDate" "factAddressCountryCode" "factAddressCounty" "factAddressAdminType" "factAddressStreet" "factAddressHouse" "factAddressBuilding" "factAddressApartment" "department" "jobTitle" "workStartDate" "workEffectiveDate" "managerID" "useTrialPeriod" "trialPeriodFormula" "rehiring" "baseSalary" "baseSalaryCurrencyCode" "terminationDate" "terminationReason" "fte" "disabilityStartingDate" "disabilityGroup" "documentType" "documentNo" "documentSeries" "documentIssueAuthority" "documentIssueDate" "documentValidDate" "documentValidDateTo" "iban" "bankName"

Select properties to be returned, see Select

$expand
Array of strings unique
Items Enum: "*" "hrisEmployeeRelatives"

Expand related entities, see Expand

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "number": "string",
  • "displayName": "string",
  • "givenName": "string",
  • "middleName": "string",
  • "surname": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "postalCode": "string",
  • "phoneNumber": "string",
  • "mobilePhone": "string",
  • "email": "string",
  • "personalEmail": "string",
  • "birthDate": "2017-04-13",
  • "vatRegistrationNumber": "string",
  • "gender": "_x0020_",
  • "employeePostingGroup": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "orgUnitCode": "string",
  • "payrollCalcGroup": "string",
  • "payrollPostingGroup": "string",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractNumber": "string",
  • "contractId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "orgUnitName": "string",
  • "jobTitle": "string",
  • "employmentDate": "2017-04-13",
  • "terminationDate": "2017-04-13",
  • "status": "Active",
  • "statisticsGroupCode": "string",
  • "companyBankCode": "string",
  • "employeeBankCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z",
  • "defaultDimensions": [
    ],
  • "defaultDimensions@odata.count": 0
}

Update an hrisEmployee

Updates an existing hrisEmployee record with new property values. This endpoint is used when eHR systems need to synchronize changes to employee data in Business Central. Only the fields provided in the request body will be updated; all other fields remain unchanged.

Use Cases:

  • Update employee information when changes occur in eHR
  • Synchronize employee data modifications
  • Update employee status, addresses, or work details
  • Modify employee personal information

Note: This is a partial update operation. Only include the fields you want to update. The employee ID is not required in the request body as it's specified in the URL path.

Authorizations:
BearerAuth
path Parameters
id
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Employee ID (Text). The unique identifier of the employee record. This is a 36-character Text that uniquely identifies an employee in the HRIS system.

Request Body schema: application/json
required

Employee properties to update. Only include the fields you want to modify. All other fields will remain unchanged. The employee ID should not be included as it's specified in the URL path.

number
string or null <= 20 characters
displayName
string or null
givenName
string or null <= 30 characters
middleName
string or null <= 30 characters
surname
string or null <= 30 characters
addressLine1
string or null <= 100 characters
addressLine2
string or null <= 50 characters
city
string or null <= 30 characters
state
string or null <= 30 characters
country
string or null <= 10 characters
postalCode
string or null <= 20 characters
phoneNumber
string or null <= 30 characters
mobilePhone
string or null <= 30 characters
email
string or null <= 80 characters
personalEmail
string or null <= 80 characters
birthDate
string or null <date>
vatRegistrationNumber
string or null <= 20 characters
gender
string or null (employeeGender)
Enum: "_x0020_" "Female" "Male" "Non_x002D_binary" "Self_x002D_Described" "I_x0020_don_x2019_t_x0020_wish_x0020_to_x0020_answer"
employeePostingGroup
string or null <= 20 characters
calendarCode
string or null <= 10 characters
categoryCode
string or null <= 10 characters
orgUnitCode
string or null <= 10 characters
payrollCalcGroup
string or null <= 10 characters
payrollPostingGroup
string or null <= 20 characters
personNumber
string or null <= 20 characters
personId
string or null <uuid>
positionNumber
string or null <= 20 characters
positionId
string or null <uuid>
contractNumber
string or null <= 20 characters
contractId
string or null <uuid>
jobTitleCode
string or null <= 10 characters
orgUnitName
string or null <= 100 characters
jobTitle
string or null <= 250 characters
employmentDate
string or null <date>
terminationDate
string or null <date>
status
string or null (employeeStatus)
Enum: "Active" "Inactive" "Terminated"
statisticsGroupCode
string or null <= 10 characters
companyBankCode
string or null <= 20 characters
employeeBankCode
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "number": "string",
  • "displayName": "string",
  • "givenName": "string",
  • "middleName": "string",
  • "surname": "string",
  • "addressLine1": "string",
  • "addressLine2": "string",
  • "city": "string",
  • "state": "string",
  • "country": "string",
  • "postalCode": "string",
  • "phoneNumber": "string",
  • "mobilePhone": "string",
  • "email": "string",
  • "personalEmail": "string",
  • "birthDate": "2017-04-13",
  • "vatRegistrationNumber": "string",
  • "gender": "_x0020_",
  • "employeePostingGroup": "string",
  • "calendarCode": "string",
  • "categoryCode": "string",
  • "orgUnitCode": "string",
  • "payrollCalcGroup": "string",
  • "payrollPostingGroup": "string",
  • "personNumber": "string",
  • "personId": "01234567-89ab-cdef-0123-456789abcdef",
  • "positionNumber": "string",
  • "positionId": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractNumber": "string",
  • "contractId": "01234567-89ab-cdef-0123-456789abcdef",
  • "jobTitleCode": "string",
  • "orgUnitName": "string",
  • "jobTitle": "string",
  • "employmentDate": "2017-04-13",
  • "terminationDate": "2017-04-13",
  • "status": "Active",
  • "statisticsGroupCode": "string",
  • "companyBankCode": "string",
  • "employeeBankCode": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete an hrisEmployee

Deletes an employee record from the HRIS system. Use this endpoint when an employee should be removed from Business Central, typically when they are terminated or their record is no longer needed.

Use Cases:

  • Remove terminated employees
  • Delete duplicate or incorrect employee records
  • Clean up employee data

Warning: This operation permanently deletes the employee record. Ensure that this action is intended and that all related data (including relatives) is handled appropriately.

Authorizations:
BearerAuth
path Parameters
id
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Employee ID (Text). The unique identifier of the employee record. This is a 36-character Text that uniquely identifies an employee in the HRIS system.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

hrisEmployeeRelatives

Operations for managing employee relatives. Relatives represent family members, dependents, or emergency contacts associated with an employee. Relatives include spouses, children, parents, siblings, and other family relationships.

List employee relatives

Retrieves all relatives associated with a specific employee. Relatives include family members, dependents, and emergency contacts. This endpoint supports OData query options for filtering, sorting, and pagination.

Use Cases:

  • Retrieve all relatives for an employee during synchronization
  • Get emergency contact information
  • Export family member data for reporting
  • Verify relative information after updates
Authorizations:
BearerAuth
path Parameters
id
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Employee ID (Text). The unique identifier of the employee whose relatives are being accessed. This must match the employee's HRIS ID.

query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filter items by property values, see Filtering

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "relativeID" "relativeID desc" "hrisID" "hrisID desc" "relativeCode" "relativeCode desc" "gender" "gender desc" "firstName" "firstName desc" "middleName" "middleName desc" "lastName" "lastName desc" "birthDate" "birthDate desc" "phoneNo" "phoneNo desc" "relativeHRISID" "relativeHRISID desc" "relationStartDate" "relationStartDate desc" "relationEndDate" "relationEndDate desc" "firstNameEnglish" "firstNameEnglish desc" "lastNameEnglish" "lastNameEnglish desc"

Order items by property values, see Sorting

$select
Array of strings unique
Items Enum: "hrisID" "relativeCode" "gender" "firstName" "middleName" "lastName" "birthDate" "phoneNo" "relativeHRISID" "relationStartDate" "relationEndDate" "firstNameEnglish" "lastNameEnglish"

Select properties to be returned, see Select

$expand
Array of strings unique
Items Enum: "*" "hrisEmployee"

Expand related entities, see Expand

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add a relative to an employee

Creates a new relative record associated with a specific employee. This endpoint is used when eHR systems need to add family members, dependents, or emergency contacts to an employee's record in Business Central.

Use Cases:

  • Add new relatives when employee family information is updated in eHR
  • Create emergency contact records
  • Add dependents for benefits administration
  • Synchronize relative data from eHR to Business Central

Required Fields:

  • relativeID: Relative's unique identifier (Text, 36 characters)
  • hrisID: Employee's HRIS identifier (must match the employee ID in the URL path, Text, 36 characters)
Authorizations:
BearerAuth
path Parameters
id
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Employee ID (Text). The unique identifier of the employee whose relatives are being accessed. This must match the employee's HRIS ID.

Request Body schema: application/json
required

Employee relative entity to be created. Must include relativeID (unique Text for the relative), hrisID (matching the employee ID in the URL path). All other fields are optional.

relativeID
required
string <= 36 characters

Relative ID (Text). The unique identifier of the relative record. This is the primary key for identifying a specific relative. Must be a valid 36-character Text. Format: '01234567-89ab-cdef-0123-456789abcdef'.

hrisID
required
string <= 36 characters

Employee HRIS ID (Text). The unique identifier of the employee who owns this relative record. This must match the employee ID specified in the URL path. Format: 36-character Text.

relativeCode
string or null (smaRelativeType)
Enum: "_x0020_" "Child" "Parent" "Sibling" "Spouse" "Grandparent" "Grandchild" "Aunt_x002F_Uncle" "Niece_x002F_Nephew"
gender
string or null (employeeGender)
Enum: "_x0020_" "Female" "Male" "Non_x002D_binary" "Self_x002D_Described" "I_x0020_don_x2019_t_x0020_wish_x0020_to_x0020_answer"
firstName
string or null <= 30 characters
middleName
string or null <= 30 characters
lastName
string or null <= 30 characters
birthDate
string or null <date>
phoneNo
string or null <= 30 characters
relativeHRISID
string or null <= 36 characters
relationStartDate
string or null <date>
relationEndDate
string or null <date>
firstNameEnglish
string or null <= 30 characters
lastNameEnglish
string or null <= 30 characters
object or null (hrisEmployee (for create))

Schema for creating a new hrisEmployee. The id field is required and must be a unique Text (max 36 characters). All other fields are optional but should be provided for complete employee records.

Responses

Request samples

Content type
application/json
{
  • "relativeID": "string",
  • "hrisID": "string",
  • "relativeCode": "_x0020_",
  • "gender": "_x0020_",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "birthDate": "2017-04-13",
  • "phoneNo": "string",
  • "relativeHRISID": "string",
  • "relationStartDate": "2017-04-13",
  • "relationEndDate": "2017-04-13",
  • "firstNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "employee": {
    }
}

Response samples

Content type
application/json
{
  • "relativeID": "string",
  • "hrisID": "string",
  • "relativeCode": "_x0020_",
  • "gender": "_x0020_",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "birthDate": "2017-04-13",
  • "phoneNo": "string",
  • "relativeHRISID": "string",
  • "relationStartDate": "2017-04-13",
  • "relationEndDate": "2017-04-13",
  • "firstNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "hrisEmployee": {
    }
}

Get employee relative by key

Retrieves a specific relative record for an employee using the employee ID, relative ID (Text). This endpoint uniquely identifies a relative using a composite key consisting of employee ID, relative ID.

Use Cases:

  • Retrieve specific relative details for synchronization
  • Get relative information for verification
  • Fetch relative data for display in eHR systems

Key Parameters:

  • id: Employee's unique identifier (Text)
  • relativeID: Relative's unique identifier (Text)
Authorizations:
BearerAuth
path Parameters
id
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Employee ID (Text). The unique identifier of the employee who owns this relative record. This must match the employee's HRIS ID.

relativeID
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Relative ID (Text). The unique identifier of the relative record. This is the primary key for identifying a specific relative associated with an employee.

query Parameters
$select
Array of strings unique
Items Enum: "relativeID" "hrisID" "relativeCode" "gender" "firstName" "middleName" "lastName" "birthDate" "phoneNo" "relativeHRISID" "relationStartDate" "relationEndDate" "firstNameEnglish" "lastNameEnglish"

Select properties to be returned, see Select

$expand
Array of strings unique
Items Enum: "*" "hrisEmployee"

Expand related entities, see Expand

Responses

Response samples

Content type
application/json
{
  • "relativeID": "string",
  • "hrisID": "string",
  • "relativeCode": "_x0020_",
  • "gender": "_x0020_",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "birthDate": "2017-04-13",
  • "phoneNo": "string",
  • "relativeHRISID": "string",
  • "relationStartDate": "2017-04-13",
  • "relationEndDate": "2017-04-13",
  • "firstNameEnglish": "string",
  • "lastNameEnglish": "string",
  • "hrisEmployee": {
    }
}

Update an employee relative

Updates an existing relative record with new property values. This endpoint is used when eHR systems need to synchronize changes to relative data in Business Central. Only the fields provided in the request body will be updated.

Use Cases:

  • Update relative information when changes occur in eHR
  • Synchronize relative data modifications
  • Update contact information or relationship details
  • Modify relative personal information

Note: This is a partial update operation. Only include the fields you want to update. The employee ID, relative ID are not required in the request body as they're specified in the URL path.

Authorizations:
BearerAuth
path Parameters
id
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Employee ID (Text). The unique identifier of the employee who owns this relative record. This must match the employee's HRIS ID.

relativeID
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Relative ID (Text). The unique identifier of the relative record. This is the primary key for identifying a specific relative associated with an employee.

Request Body schema: application/json
required

Relative properties to update. Only include the fields you want to modify. All other fields will remain unchanged. The employee ID, relative ID.

relativeCode
string or null (smaRelativeType)
Enum: "_x0020_" "Child" "Parent" "Sibling" "Spouse" "Grandparent" "Grandchild" "Aunt_x002F_Uncle" "Niece_x002F_Nephew"
gender
string or null (employeeGender)
Enum: "_x0020_" "Female" "Male" "Non_x002D_binary" "Self_x002D_Described" "I_x0020_don_x2019_t_x0020_wish_x0020_to_x0020_answer"
firstName
string or null <= 30 characters
middleName
string or null <= 30 characters
lastName
string or null <= 30 characters
birthDate
string or null <date>
phoneNo
string or null <= 30 characters
relativeHRISID
string or null <= 36 characters
relationStartDate
string or null <date>
relationEndDate
string or null <date>
firstNameEnglish
string or null <= 30 characters
lastNameEnglish
string or null <= 30 characters

Responses

Request samples

Content type
application/json
{
  • "relativeCode": "_x0020_",
  • "gender": "_x0020_",
  • "firstName": "string",
  • "middleName": "string",
  • "lastName": "string",
  • "birthDate": "2017-04-13",
  • "phoneNo": "string",
  • "relativeHRISID": "string",
  • "relationStartDate": "2017-04-13",
  • "relationEndDate": "2017-04-13",
  • "firstNameEnglish": "string",
  • "lastNameEnglish": "string"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete an employee relative

Deletes a relative record associated with an employee. Use this endpoint when a relative should be removed from an employee's record, typically when the relationship ends or the relative information is no longer needed.

Use Cases:

  • Remove relatives when relationships change
  • Delete incorrect or duplicate relative records
  • Clean up relative data

Warning: This operation permanently deletes the relative record. Ensure that this action is intended.

Authorizations:
BearerAuth
path Parameters
id
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Employee ID (Text). The unique identifier of the employee who owns this relative record. This must match the employee's HRIS ID.

relativeID
required
string <= 36 characters
Example: 01234567-89ab-cdef-0123-456789abcdef

Relative ID (Text). The unique identifier of the relative record. This is the primary key for identifying a specific relative associated with an employee.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

absenceRequests

Absence request records for managing employee time off. Includes four types: vacation requests (annual leave), sick leave requests (medical certificates), other absence requests (unpaid leave, study leave), and travel requests (business trips). All requests follow Open -> Approved -> Closed workflow.

List all vacation requests

Retrieves a collection of vacation requests. Vacation requests track employee vacation periods and can be linked to the annual vacation schedule. Requests follow Open -> Approved -> Closed workflow. Supports filtering by employee, date range, and status.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startDate ge 2024-01-01 for date range, $filter=employeeNumber eq '000001' for specific employee. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "no" "no desc" "employeeNumber" "employeeNumber desc" "description" "description desc" "startDate" "startDate desc" "endDate" "endDate desc" "calendarDays" "calendarDays desc" "timeActivityCode" "timeActivityCode desc" "scheduledVacNo" "scheduledVacNo desc" "scheduledStartDate" "scheduledStartDate desc" "status" "status desc" "timeActivityGroup" "timeActivityGroup desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=startDate desc sorts newest first, $orderby=employeeNumber,startDate sorts by employee then date. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "no" "employeeNumber" "description" "startDate" "endDate" "calendarDays" "timeActivityCode" "scheduledVacNo" "scheduledStartDate" "status" "timeActivityGroup"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,employeeNumber,startDate,endDate,status returns only those fields. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create a new vacation request

Creates a new vacation request record for an employee. The request starts in Open status and can be linked to a scheduled vacation from the annual vacation schedule. After creation, the request goes through approval workflow.

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>

Unique identifier (GUID) of the vacation request record.

no
string or null <= 20 characters

Document number of the vacation request.

employeeNumber
string or null <= 20 characters

Employee number this vacation request belongs to.

description
string or null <= 50 characters

Description or reason for the vacation.

startDate
string or null <date>

First day of the vacation period.

endDate
string or null <date>

Last day of the vacation period.

(number or null) or (string or null) <decimal>

Total number of calendar days for the vacation.

timeActivityCode
string or null <= 10 characters

Code of the time activity defining the type of vacation.

scheduledVacNo
string or null <= 20 characters

Reference to the scheduled vacation number from the annual vacation schedule.

scheduledStartDate
string or null <date>

Originally scheduled start date from the annual vacation schedule.

status
string or null (smaVacationRequestStatus)
Enum: "Open" "Approved" "Closed"

Current status of the vacation request (Open, Approved, or Closed).

timeActivityGroup
string or null <= 20 characters

Time activity group classification.

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-07-01",
  • "endDate": "2024-07-14",
  • "calendarDays": 14,
  • "timeActivityCode": "string",
  • "scheduledVacNo": "string",
  • "scheduledStartDate": "2024-07-01",
  • "status": "Open",
  • "timeActivityGroup": "string"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-07-01",
  • "endDate": "2024-07-14",
  • "calendarDays": 14,
  • "timeActivityCode": "string",
  • "scheduledVacNo": "string",
  • "scheduledStartDate": "2024-07-01",
  • "status": "Open",
  • "timeActivityGroup": "string"
}

Get vacation request by ID

Retrieves the vacation request identified by vacationRequestId, including dates, status, and scheduled vacation reference.

Authorizations:
BearerAuth
path Parameters
vacationRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of a vacation request record.

query Parameters
$select
Array of strings unique
Items Enum: "id" "no" "employeeNumber" "description" "startDate" "endDate" "calendarDays" "timeActivityCode" "scheduledVacNo" "scheduledStartDate" "status" "timeActivityGroup"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-07-01",
  • "endDate": "2024-07-14",
  • "calendarDays": 14,
  • "timeActivityCode": "string",
  • "scheduledVacNo": "string",
  • "scheduledStartDate": "2024-07-01",
  • "status": "Open",
  • "timeActivityGroup": "string"
}

Update vacation request

Updates specific fields of a vacation request record. Common updates include changing dates or updating the description. Status changes may be restricted based on approval workflow.

Authorizations:
BearerAuth
path Parameters
vacationRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of a vacation request record.

Request Body schema: application/json
required

New property values

no
string or null <= 20 characters

Document number of the vacation request.

employeeNumber
string or null <= 20 characters

Employee number this vacation request belongs to.

description
string or null <= 50 characters

Description or reason for the vacation.

startDate
string or null <date>

First day of the vacation period.

endDate
string or null <date>

Last day of the vacation period.

(number or null) or (string or null) <decimal>

Total number of calendar days for the vacation.

timeActivityCode
string or null <= 10 characters

Code of the time activity defining the type of vacation.

scheduledVacNo
string or null <= 20 characters

Reference to the scheduled vacation number from the annual vacation schedule.

scheduledStartDate
string or null <date>

Originally scheduled start date from the annual vacation schedule.

status
string or null (smaVacationRequestStatus)
Enum: "Open" "Approved" "Closed"

Current status of the vacation request (Open, Approved, or Closed).

timeActivityGroup
string or null <= 20 characters

Time activity group classification.

Responses

Request samples

Content type
application/json
{
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-07-01",
  • "endDate": "2024-07-14",
  • "calendarDays": 14,
  • "timeActivityCode": "string",
  • "scheduledVacNo": "string",
  • "scheduledStartDate": "2024-07-01",
  • "status": "Open",
  • "timeActivityGroup": "string"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete vacation request

Permanently removes a vacation request from the system. This operation may be restricted for approved or closed requests.

Authorizations:
BearerAuth
path Parameters
vacationRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of a vacation request record.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List all sick leave requests

Retrieves a collection of sick leave requests. Sick leave requests track employee sick leaves with medical certificate information. Requests follow Open -> Approved -> Closed workflow. Supports filtering by employee, date range, status, and certificate details.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startDate ge 2024-01-01 for date range, $filter=employeeNumber eq '000001' for specific employee. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "no" "no desc" "employeeNumber" "employeeNumber desc" "description" "description desc" "startDate" "startDate desc" "endDate" "endDate desc" "calendarDays" "calendarDays desc" "timeActivityCode" "timeActivityCode desc" "sickCertificateSeries" "sickCertificateSeries desc" "sickCertificateNo" "sickCertificateNo desc" "sickCertificateCaseNo" "sickCertificateCaseNo desc" "status" "status desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=startDate desc sorts newest first, $orderby=employeeNumber,startDate sorts by employee then date. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "no" "employeeNumber" "description" "startDate" "endDate" "calendarDays" "timeActivityCode" "sickCertificateSeries" "sickCertificateNo" "sickCertificateCaseNo" "status"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,employeeNumber,startDate,endDate,status returns only those fields. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create a new sick leave request

Creates a new sick leave request record for an employee. The request starts in Open status. Include medical certificate information (series, number, case number) for official documentation purposes.

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>

Unique identifier (GUID) of the sick leave request record.

no
string or null <= 20 characters

Document number of the sick leave request.

employeeNumber
string or null <= 20 characters

Employee number this sick leave request belongs to.

description
string or null <= 50 characters

Description or notes for the sick leave.

startDate
string or null <date>

First day of the sick leave period.

endDate
string or null <date>

Last day of the sick leave period.

(number or null) or (string or null) <decimal>

Total number of calendar days for the sick leave.

timeActivityCode
string or null <= 10 characters

Code of the time activity defining the sick leave type.

sickCertificateSeries
string or null <= 10 characters

Series identifier of the sick leave certificate.

sickCertificateNo
string or null <= 30 characters

Number of the sick leave certificate.

sickCertificateCaseNo
string or null <= 7 characters

Case number on the sick leave certificate.

status
string or null (smaVacationRequestStatus)
Enum: "Open" "Approved" "Closed"

Current status of the sick leave request (Open, Approved, or Closed).

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-03-01",
  • "endDate": "2024-03-10",
  • "calendarDays": 10,
  • "timeActivityCode": "string",
  • "sickCertificateSeries": "string",
  • "sickCertificateNo": "string",
  • "sickCertificateCaseNo": "string",
  • "status": "Open"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-03-01",
  • "endDate": "2024-03-10",
  • "calendarDays": 10,
  • "timeActivityCode": "string",
  • "sickCertificateSeries": "string",
  • "sickCertificateNo": "string",
  • "sickCertificateCaseNo": "string",
  • "status": "Open"
}

Get sick leave request by ID

Retrieves the sick leave request identified by sickleaveRequestId, including dates, status, and medical certificate details.

Authorizations:
BearerAuth
path Parameters
sickleaveRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of a sick leave request record.

query Parameters
$select
Array of strings unique
Items Enum: "id" "no" "employeeNumber" "description" "startDate" "endDate" "calendarDays" "timeActivityCode" "sickCertificateSeries" "sickCertificateNo" "sickCertificateCaseNo" "status"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-03-01",
  • "endDate": "2024-03-10",
  • "calendarDays": 10,
  • "timeActivityCode": "string",
  • "sickCertificateSeries": "string",
  • "sickCertificateNo": "string",
  • "sickCertificateCaseNo": "string",
  • "status": "Open"
}

Update sick leave request

Updates specific fields of a sick leave request record. Common updates include changing dates or adding medical certificate information. Status changes may be restricted based on approval workflow.

Authorizations:
BearerAuth
path Parameters
sickleaveRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of a sick leave request record.

Request Body schema: application/json
required

New property values

no
string or null <= 20 characters

Document number of the sick leave request.

employeeNumber
string or null <= 20 characters

Employee number this sick leave request belongs to.

description
string or null <= 50 characters

Description or notes for the sick leave.

startDate
string or null <date>

First day of the sick leave period.

endDate
string or null <date>

Last day of the sick leave period.

(number or null) or (string or null) <decimal>

Total number of calendar days for the sick leave.

timeActivityCode
string or null <= 10 characters

Code of the time activity defining the sick leave type.

sickCertificateSeries
string or null <= 10 characters

Series identifier of the sick leave certificate.

sickCertificateNo
string or null <= 30 characters

Number of the sick leave certificate.

sickCertificateCaseNo
string or null <= 7 characters

Case number on the sick leave certificate.

status
string or null (smaVacationRequestStatus)
Enum: "Open" "Approved" "Closed"

Current status of the sick leave request (Open, Approved, or Closed).

Responses

Request samples

Content type
application/json
{
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-03-01",
  • "endDate": "2024-03-10",
  • "calendarDays": 10,
  • "timeActivityCode": "string",
  • "sickCertificateSeries": "string",
  • "sickCertificateNo": "string",
  • "sickCertificateCaseNo": "string",
  • "status": "Open"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete sick leave request

Permanently removes a sick leave request from the system. This operation may be restricted for approved or closed requests.

Authorizations:
BearerAuth
path Parameters
sickleaveRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of a sick leave request record.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List all other absence requests

Retrieves a collection of other absence requests. Other absence requests track miscellaneous employee absences not covered by vacation or sick leave categories (unpaid leave, study leave, etc.). Requests follow Open -> Approved -> Closed workflow.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startDate ge 2024-01-01 for date range, $filter=employeeNumber eq '000001' for specific employee. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "no" "no desc" "employeeNumber" "employeeNumber desc" "description" "description desc" "startDate" "startDate desc" "endDate" "endDate desc" "timeActivityCode" "timeActivityCode desc" "timeActivityGroup" "timeActivityGroup desc" "status" "status desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=startDate desc sorts newest first, $orderby=employeeNumber,startDate sorts by employee then date. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "no" "employeeNumber" "description" "startDate" "endDate" "timeActivityCode" "timeActivityGroup" "status"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,employeeNumber,startDate,endDate,status returns only those fields. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create a new other absence request

Creates a new other absence request record for an employee. Use this for absences not covered by vacation or sick leave categories. The request starts in Open status and goes through approval workflow.

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>

Unique identifier (GUID) of the other absence request record.

no
string or null <= 20 characters

Document number of the absence request.

employeeNumber
string or null <= 20 characters

Employee number this absence request belongs to.

description
string or null <= 50 characters

Description or reason for the absence.

startDate
string or null <date>

First day of the absence period.

endDate
string or null <date>

Last day of the absence period.

timeActivityCode
string or null <= 10 characters

Code of the time activity defining the absence type.

timeActivityGroup
string or null <= 20 characters

Time activity group classification.

status
string or null (smaVacationRequestStatus)
Enum: "Open" "Approved" "Closed"

Current status of the absence request (Open, Approved, or Closed).

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-05-01",
  • "endDate": "2024-05-03",
  • "timeActivityCode": "string",
  • "timeActivityGroup": "string",
  • "status": "Open"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-05-01",
  • "endDate": "2024-05-03",
  • "timeActivityCode": "string",
  • "timeActivityGroup": "string",
  • "status": "Open"
}

Get other absence request by ID

Retrieves the other absence request identified by otherabsenceRequestId, including dates, status, and time activity details.

Authorizations:
BearerAuth
path Parameters
otherabsenceRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of an other absence request record.

query Parameters
$select
Array of strings unique
Items Enum: "id" "no" "employeeNumber" "description" "startDate" "endDate" "timeActivityCode" "timeActivityGroup" "status"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-05-01",
  • "endDate": "2024-05-03",
  • "timeActivityCode": "string",
  • "timeActivityGroup": "string",
  • "status": "Open"
}

Update other absence request

Updates specific fields of an other absence request record. Common updates include changing dates or description. Status changes may be restricted based on approval workflow.

Authorizations:
BearerAuth
path Parameters
otherabsenceRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of an other absence request record.

Request Body schema: application/json
required

New property values

no
string or null <= 20 characters

Document number of the absence request.

employeeNumber
string or null <= 20 characters

Employee number this absence request belongs to.

description
string or null <= 50 characters

Description or reason for the absence.

startDate
string or null <date>

First day of the absence period.

endDate
string or null <date>

Last day of the absence period.

timeActivityCode
string or null <= 10 characters

Code of the time activity defining the absence type.

timeActivityGroup
string or null <= 20 characters

Time activity group classification.

status
string or null (smaVacationRequestStatus)
Enum: "Open" "Approved" "Closed"

Current status of the absence request (Open, Approved, or Closed).

Responses

Request samples

Content type
application/json
{
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-05-01",
  • "endDate": "2024-05-03",
  • "timeActivityCode": "string",
  • "timeActivityGroup": "string",
  • "status": "Open"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete other absence request

Permanently removes an other absence request from the system. This operation may be restricted for approved or closed requests.

Authorizations:
BearerAuth
path Parameters
otherabsenceRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of an other absence request record.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

List all travel requests

Retrieves a collection of travel (business trip) requests. Travel requests track employee business trips with destination, purpose, and authorizing document references. Requests follow Open -> Approved -> Closed workflow.

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startDate ge 2024-01-01 for date range, $filter=employeeNumber eq '000001' for specific employee. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "no" "no desc" "employeeNumber" "employeeNumber desc" "description" "description desc" "startDate" "startDate desc" "endDate" "endDate desc" "calendarDays" "calendarDays desc" "timeActivityCode" "timeActivityCode desc" "timeActivityGroup" "timeActivityGroup desc" "travelDestination" "travelDestination desc" "travelPurpose" "travelPurpose desc" "travelReasonDocument" "travelReasonDocument desc" "status" "status desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=startDate desc sorts newest first, $orderby=employeeNumber,startDate sorts by employee then date. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "no" "employeeNumber" "description" "startDate" "endDate" "calendarDays" "timeActivityCode" "timeActivityGroup" "travelDestination" "travelPurpose" "travelReasonDocument" "status"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,employeeNumber,startDate,endDate,travelDestination returns only those fields. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Create a new travel request

Creates a new travel (business trip) request record for an employee. Include destination, purpose, and authorizing document for proper documentation. The request starts in Open status and goes through approval workflow.

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>

Unique identifier (GUID) of the travel request record.

no
string or null <= 20 characters

Document number of the travel request.

employeeNumber
string or null <= 20 characters

Employee number this travel request belongs to.

description
string or null <= 50 characters

Description or purpose summary of the business trip.

startDate
string or null <date>

First day of the business trip.

endDate
string or null <date>

Last day of the business trip.

(number or null) or (string or null) <decimal>

Total number of calendar days for the trip.

timeActivityCode
string or null <= 10 characters

Code of the time activity defining the travel type.

timeActivityGroup
string or null <= 20 characters

Time activity group classification.

travelDestination
string or null <= 100 characters

Destination city or location for the business trip.

travelPurpose
string or null <= 100 characters

Detailed purpose or goal of the business trip.

travelReasonDocument
string or null <= 100 characters

Reference to the document authorizing the trip.

status
string or null (smaVacationRequestStatus)
Enum: "Open" "Approved" "Closed"

Current status of the travel request (Open, Approved, or Closed).

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-04-15",
  • "endDate": "2024-04-20",
  • "calendarDays": 6,
  • "timeActivityCode": "string",
  • "timeActivityGroup": "string",
  • "travelDestination": "string",
  • "travelPurpose": "string",
  • "travelReasonDocument": "string",
  • "status": "Open"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-04-15",
  • "endDate": "2024-04-20",
  • "calendarDays": 6,
  • "timeActivityCode": "string",
  • "timeActivityGroup": "string",
  • "travelDestination": "string",
  • "travelPurpose": "string",
  • "travelReasonDocument": "string",
  • "status": "Open"
}

Get travel request by ID

Retrieves the travel request identified by travelRequestId, including dates, status, destination, purpose, and authorizing document.

Authorizations:
BearerAuth
path Parameters
travelRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of a travel request record.

query Parameters
$select
Array of strings unique
Items Enum: "id" "no" "employeeNumber" "description" "startDate" "endDate" "calendarDays" "timeActivityCode" "timeActivityGroup" "travelDestination" "travelPurpose" "travelReasonDocument" "status"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-04-15",
  • "endDate": "2024-04-20",
  • "calendarDays": 6,
  • "timeActivityCode": "string",
  • "timeActivityGroup": "string",
  • "travelDestination": "string",
  • "travelPurpose": "string",
  • "travelReasonDocument": "string",
  • "status": "Open"
}

Update travel request

Updates specific fields of a travel request record. Common updates include changing dates, destination, or purpose. Status changes may be restricted based on approval workflow.

Authorizations:
BearerAuth
path Parameters
travelRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of a travel request record.

Request Body schema: application/json
required

New property values

no
string or null <= 20 characters

Document number of the travel request.

employeeNumber
string or null <= 20 characters

Employee number this travel request belongs to.

description
string or null <= 50 characters

Description or purpose summary of the business trip.

startDate
string or null <date>

First day of the business trip.

endDate
string or null <date>

Last day of the business trip.

(number or null) or (string or null) <decimal>

Total number of calendar days for the trip.

timeActivityCode
string or null <= 10 characters

Code of the time activity defining the travel type.

timeActivityGroup
string or null <= 20 characters

Time activity group classification.

travelDestination
string or null <= 100 characters

Destination city or location for the business trip.

travelPurpose
string or null <= 100 characters

Detailed purpose or goal of the business trip.

travelReasonDocument
string or null <= 100 characters

Reference to the document authorizing the trip.

status
string or null (smaVacationRequestStatus)
Enum: "Open" "Approved" "Closed"

Current status of the travel request (Open, Approved, or Closed).

Responses

Request samples

Content type
application/json
{
  • "no": "string",
  • "employeeNumber": "string",
  • "description": "string",
  • "startDate": "2024-04-15",
  • "endDate": "2024-04-20",
  • "calendarDays": 6,
  • "timeActivityCode": "string",
  • "timeActivityGroup": "string",
  • "travelDestination": "string",
  • "travelPurpose": "string",
  • "travelReasonDocument": "string",
  • "status": "Open"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete travel request

Permanently removes a travel request from the system. This operation may be restricted for approved or closed requests.

Authorizations:
BearerAuth
path Parameters
travelRequestId
required
string <uuid>
Examples:
  • a0bcdef9-10fe-dcba-0bcd-ef9876543210 -

Unique identifier (GUID) of a travel request record.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

timesheetdetails

Get entities from timesheetdetails

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "employeeNumber" "employeeNumber desc" "date" "date desc" "timeActivityCode" "timeActivityCode desc" "id" "id desc" "timeActivityId" "timeActivityId desc" "timeActivityName" "timeActivityName desc" "overtime" "overtime desc" "description" "description desc" "actualHours" "actualHours desc" "documentType" "documentType desc" "documentNumber" "documentNumber desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "employeeNumber" "date" "timeActivityCode" "id" "timeActivityId" "timeActivityName" "overtime" "description" "actualHours" "documentType" "documentNumber" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to timesheetdetails

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

employeeNumber
required
string <= 20 characters
date
required
string <date>
timeActivityCode
required
string <= 10 characters
id
string or null <uuid>
timeActivityId
string or null <uuid>
timeActivityName
string or null <= 100 characters
overtime
boolean or null
description
string or null <= 50 characters
number or string <decimal>
documentType
string or null
documentNumber
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "employeeNumber": "string",
  • "date": "2017-04-13",
  • "timeActivityCode": "string",
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityId": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityName": "string",
  • "overtime": true,
  • "description": "string",
  • "actualHours": 0,
  • "documentType": "string",
  • "documentNumber": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "employeeNumber": "string",
  • "date": "2017-04-13",
  • "timeActivityCode": "string",
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityId": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityName": "string",
  • "overtime": true,
  • "description": "string",
  • "actualHours": 0,
  • "documentType": "string",
  • "documentNumber": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get timesheet detail by timesheetDetailId

Retrieves a standalone timesheet detail line using its timesheetDetailId. Use when you need a specific daily record without navigating through the parent timesheet.

Authorizations:
BearerAuth
path Parameters
timesheetDetailId
required
string <uuid>
Examples:
  • 89abcdef-0123-4567-89ab-cdef01234567 -

Unique identifier (GUID) of a timesheet detail line belonging to a specific timesheet header.

query Parameters
$select
Array of strings unique
Items Enum: "employeeNumber" "date" "timeActivityCode" "id" "timeActivityId" "timeActivityName" "overtime" "description" "actualHours" "documentType" "documentNumber" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "employeeNumber": "string",
  • "date": "2017-04-13",
  • "timeActivityCode": "string",
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityId": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityName": "string",
  • "overtime": true,
  • "description": "string",
  • "actualHours": 0,
  • "documentType": "string",
  • "documentNumber": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update timesheet detail

Applies partial updates to the timesheet detail referenced by timesheetDetailId. The resource follows optimistic concurrency via ETags.

Authorizations:
BearerAuth
path Parameters
timesheetDetailId
required
string <uuid>
Examples:
  • 89abcdef-0123-4567-89ab-cdef01234567 -

Unique identifier (GUID) of a timesheet detail line belonging to a specific timesheet header.

Request Body schema: application/json
required

New property values

id
string or null <uuid>
timeActivityId
string or null <uuid>
timeActivityName
string or null <= 100 characters
overtime
boolean or null
description
string or null <= 50 characters
number or string <decimal>
documentType
string or null
documentNumber
string or null <= 20 characters
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityId": "01234567-89ab-cdef-0123-456789abcdef",
  • "timeActivityName": "string",
  • "overtime": true,
  • "description": "string",
  • "actualHours": 0,
  • "documentType": "string",
  • "documentNumber": "string",
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete timesheet detail

Removes the timesheet detail identified by timesheetDetailId. Deletion is subject to payroll period locking rules.

Authorizations:
BearerAuth
path Parameters
timesheetDetailId
required
string <uuid>
Examples:
  • 89abcdef-0123-4567-89ab-cdef01234567 -

Unique identifier (GUID) of a timesheet detail line belonging to a specific timesheet header.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

contractterms

Get entities from contractterms

Authorizations:
BearerAuth
query Parameters
$top
integer >= 0
Example: $top=50

Limits the number of items returned in the response. Use for pagination to control result set size. Default behavior returns all items if not specified. Example: $top=10 returns first 10 records. Combine with $skip for page-based navigation. See OData Paging - Top

$skip
integer >= 0

Skips the first n items in the result set. Use with $top for pagination. Example: $skip=20&$top=10 returns items 21-30 (page 3 when using 10 items per page). Useful for implementing infinite scroll or page navigation. See OData Paging - Skip

$search
string
Example: $search=Smith

Performs full-text search across searchable fields. The search is case-insensitive and uses system-defined search logic. Example: $search=John finds all records containing 'John' in searchable fields like name or description. Can be combined with filters for refined searches. See OData Search

$filter
string

Filters the collection based on a boolean expression. Only items matching the criteria are returned. Supports operators: eq, ne, gt, ge, lt, le, and, or, not. Examples: $filter=status eq 'Open' for exact match, $filter=startingDate ge 2024-01-01 for date range, $filter=contains(lastName,'Smith') for text search. Combine multiple conditions: $filter=status eq 'Open' and startingDate ge 2024-01-01. See OData Filter

$count
boolean
Example: $count=true

When set to true, includes the total count of items matching the query in the response as @odata.count property. Useful for calculating total pages in pagination or showing 'X of Y results'. Note: Counting can impact performance on large datasets. Example: $count=true adds total count to response. See OData Count

$orderby
Array of strings unique
Items Enum: "id" "id desc" "contractLineId" "contractLineId desc" "lineType" "lineType desc" "elementCode" "elementCode desc" "description" "description desc" "timeActivityCode" "timeActivityCode desc" "quantity" "quantity desc" "percent" "percent desc" "currencyCode" "currencyCode desc" "useOriginalCurrency" "useOriginalCurrency desc" "amount" "amount desc" "lastModifiedDateTime" "lastModifiedDateTime desc"

Sorts the collection by one or more properties. Specify property names with optional 'desc' for descending order. Default is ascending. Examples: $orderby=lastName sorts by last name A-Z, $orderby=startingDate desc sorts newest first, $orderby=lastName,firstName sorts by multiple fields. Useful for displaying sorted lists or finding top/bottom records. See OData OrderBy

$select
Array of strings unique
Items Enum: "id" "contractLineId" "lineType" "elementCode" "description" "timeActivityCode" "quantity" "percent" "currencyCode" "useOriginalCurrency" "amount" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "@odata.count": 0,
  • "value": [
    ]
}

Add new entity to contractterms

Authorizations:
BearerAuth
Request Body schema: application/json
required

New entity

id
required
string <uuid>
contractLineId
string or null <uuid>
lineType
string or null (smaLaborContractTermsType)
Enum: "Payroll_x0020_Element" "Vacation_x0020_Accrual" "Vacation_x0020_Compensation"
elementCode
string or null <= 20 characters
description
string or null <= 100 characters
timeActivityCode
string or null <= 10 characters
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
currencyCode
string or null
useOriginalCurrency
boolean or null
(number or null) or (string or null) <decimal>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Get contract term

Returns the labor contract term identified by contractTermId, including element links and calculation parameters.

Authorizations:
BearerAuth
path Parameters
contractTermId
required
string <uuid>
Examples:
  • 1abcdef0-1234-5c67-1def-0123456789ab -

Unique identifier (GUID) of a labor contract term line.

query Parameters
$select
Array of strings unique
Items Enum: "id" "contractLineId" "lineType" "elementCode" "description" "timeActivityCode" "quantity" "percent" "currencyCode" "useOriginalCurrency" "amount" "lastModifiedDateTime"

Specifies which properties to include in the response. Reduces payload size by returning only requested fields. Use comma-separated list. Example: $select=id,firstName,lastName returns only those three fields. Improves performance and reduces bandwidth. See OData Select

Responses

Response samples

Content type
application/json
{
  • "id": "01234567-89ab-cdef-0123-456789abcdef",
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Update contract term

Updates properties of the contract term referenced by contractTermId. Send only properties that should change and include If-Match for concurrency.

Authorizations:
BearerAuth
path Parameters
contractTermId
required
string <uuid>
Examples:
  • 1abcdef0-1234-5c67-1def-0123456789ab -

Unique identifier (GUID) of a labor contract term line.

Request Body schema: application/json
required

New property values

contractLineId
string or null <uuid>
lineType
string or null (smaLaborContractTermsType)
Enum: "Payroll_x0020_Element" "Vacation_x0020_Accrual" "Vacation_x0020_Compensation"
elementCode
string or null <= 20 characters
description
string or null <= 100 characters
timeActivityCode
string or null <= 10 characters
(number or null) or (string or null) <decimal>
(number or null) or (string or null) <decimal>
currencyCode
string or null
useOriginalCurrency
boolean or null
(number or null) or (string or null) <decimal>
lastModifiedDateTime
string or null <date-time>

Responses

Request samples

Content type
application/json
{
  • "contractLineId": "01234567-89ab-cdef-0123-456789abcdef",
  • "lineType": "Payroll_x0020_Element",
  • "elementCode": "string",
  • "description": "string",
  • "timeActivityCode": "string",
  • "quantity": 0,
  • "percent": 0,
  • "currencyCode": "string",
  • "useOriginalCurrency": true,
  • "amount": 0,
  • "lastModifiedDateTime": "2017-04-13T15:51:04Z"
}

Response samples

Content type
application/json
{
  • "error": {
    }
}

Delete contract term

Deletes the specified contract term line. Historical payroll entries keep references for audit.

Authorizations:
BearerAuth
path Parameters
contractTermId
required
string <uuid>
Examples:
  • 1abcdef0-1234-5c67-1def-0123456789ab -

Unique identifier (GUID) of a labor contract term line.

Responses

Response samples

Content type
application/json
{
  • "error": {
    }
}

Batch Requests

Send a group of requests

Group multiple requests into a single request payload, see Batch Requests.

Please note that "Try it out" is not supported for this request.

Authorizations:
BearerAuth
Request Body schema: multipart/mixed;boundary=request-separator
required

Batch request

string

Responses

Request samples

Content type
multipart/mixed;boundary=request-separator
--request-separator
Content-Type: application/http
Content-Transfer-Encoding: binary

GET entityDefinitions HTTP/1.1
Accept: application/json


--request-separator--

Response samples

Content type
multipart/mixed
--response-separator
Content-Type: application/http

HTTP/1.1 200 OK
Content-Type: application/json

{...}
--response-separator--
© 2008 - 2023 SMART business