Simployer API documentation
Welcome to our API documentation!
This page contains information about our REST endpoints and details regarding webhook endpoints. We are currently in a phase where we will replace our existing WCF’s with REST and will continuously publish new endpoints on this page.
Not a developer?
Please visit our webpage to learn more about our products.
Simployer Access and SSO
Looking for our SSO options? Please look here for product description.
Person API v1.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Base URLs:
https://apis.dev.simployer.com
- Host - Default: unknown
Authentication
- API Key (apiKey)
- Parameter Name: X-ApiKey, in: header. API Key Authentication
Person
getPersons
Code samples
## You can also use wget
curl -X GET https:///v1/person \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/person', headers = headers)
print(r.json())
GET /v1/person
Example responses
200 Response
[
{
"id": "00000000-0000-0000-0000-000000000000",
"firstname": "string",
"lastname": "string",
"shortname": "string",
"birthdate": "2019-08-24T14:15:22Z",
"gender": {
"label": "string",
"id": "00000000-0000-0000-0000-000000000000"
},
"nationality": "string"
}
]
<?xml version="1.0" encoding="UTF-8" ?>
<id>00000000-0000-0000-0000-000000000000</id>
<firstname>string</firstname>
<lastname>string</lastname>
<shortname>string</shortname>
<birthdate>2019-08-24T14:15:22Z</birthdate>
<gender>
<label>string</label>
<id>00000000-0000-0000-0000-000000000000</id>
</gender>
<nationality>string</nationality>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Person] | false | none | none |
» id | string(uuid) | false | none | none |
» firstname | string | false | none | none |
» lastname | string | false | none | none |
» shortname | string | false | none | none |
» birthdate | string(date-time) | false | none | none |
» gender | Gender | false | none | none |
»» label | string | false | none | none |
»» id | string(uuid) | false | none | none |
» nationality | string | false | none | none |
getPersonById
Code samples
## You can also use wget
curl -X GET https:///v1/person/{id} \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/person/{id}', headers = headers)
print(r.json())
GET /v1/person/{id}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string(uuid) | true | none |
Example responses
200 Response
{
"id": "00000000-0000-0000-0000-000000000000",
"firstname": "string",
"lastname": "string",
"shortname": "string",
"birthdate": "2019-08-24T14:15:22Z",
"gender": {
"label": "string",
"id": "00000000-0000-0000-0000-000000000000"
},
"nationality": "string"
}
<?xml version="1.0" encoding="UTF-8" ?>
<Person>
<id>00000000-0000-0000-0000-000000000000</id>
<firstname>string</firstname>
<lastname>string</lastname>
<shortname>string</shortname>
<birthdate>2019-08-24T14:15:22Z</birthdate>
<gender>
<label>string</label>
<id>00000000-0000-0000-0000-000000000000</id>
</gender>
<nationality>string</nationality>
</Person>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Person |
PersonAddress
getPersonAddresses
Code samples
## You can also use wget
curl -X GET https:///v1/person/{personId}/address \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/person/{personId}/address', headers = headers)
print(r.json())
GET /v1/person/{personId}/address
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
personId | path | string(uuid) | true | none |
Example responses
200 Response
[
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"countryCode": "string",
"streetName1": "string",
"streetName2": "string",
"streetName3": "string",
"postalCode": "string",
"postalPlace": "string"
}
]
<?xml version="1.0" encoding="UTF-8" ?>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<isPrimary>true</isPrimary>
<countryCode>string</countryCode>
<streetName1>string</streetName1>
<streetName2>string</streetName2>
<streetName3>string</streetName3>
<postalCode>string</postalCode>
<postalPlace>string</postalPlace>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [PersonAddress] | false | none | none |
» id | string(uuid) | false | none | none |
» label | string | false | none | none |
» isPrimary | boolean | false | none | none |
» countryCode | string | false | none | none |
» streetName1 | string | false | none | none |
» streetName2 | string | false | none | none |
» streetName3 | string | false | none | none |
» postalCode | string | false | none | none |
» postalPlace | string | false | none | none |
getPersonAddressById
Code samples
## You can also use wget
curl -X GET https:///v1/person/{personId}/address/{addressId} \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/person/{personId}/address/{addressId}', headers = headers)
print(r.json())
GET /v1/person/{personId}/address/{addressId}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
personId | path | string(uuid) | true | none |
addressId | path | string(uuid) | true | none |
Example responses
200 Response
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"countryCode": "string",
"streetName1": "string",
"streetName2": "string",
"streetName3": "string",
"postalCode": "string",
"postalPlace": "string"
}
<?xml version="1.0" encoding="UTF-8" ?>
<PersonAddress>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<isPrimary>true</isPrimary>
<countryCode>string</countryCode>
<streetName1>string</streetName1>
<streetName2>string</streetName2>
<streetName3>string</streetName3>
<postalCode>string</postalCode>
<postalPlace>string</postalPlace>
</PersonAddress>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | PersonAddress |
PersonElectronicAddress
getPersonEmailAddresses
Code samples
## You can also use wget
curl -X GET https:///v1/person/{personId}/email \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/person/{personId}/email', headers = headers)
print(r.json())
GET /v1/person/{personId}/email
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
personId | path | string(uuid) | true | none |
Example responses
200 Response
[
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"address": "string"
}
]
<?xml version="1.0" encoding="UTF-8" ?>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<isPrimary>true</isPrimary>
<address>string</address>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [PersonElectronicAddress] | false | none | none |
» id | string(uuid) | false | none | none |
» label | string | false | none | none |
» isPrimary | boolean | false | none | none |
» address | string | false | none | none |
getPersonEmailAddressById
Code samples
## You can also use wget
curl -X GET https:///v1/person/{personId}/email/{emailId} \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/person/{personId}/email/{emailId}', headers = headers)
print(r.json())
GET /v1/person/{personId}/email/{emailId}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
personId | path | string(uuid) | true | none |
emailId | path | string(uuid) | true | none |
Example responses
200 Response
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"address": "string"
}
<?xml version="1.0" encoding="UTF-8" ?>
<PersonElectronicAddress>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<isPrimary>true</isPrimary>
<address>string</address>
</PersonElectronicAddress>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | PersonElectronicAddress |
PersonPhone
getPersonPhones
Code samples
## You can also use wget
curl -X GET https:///v1/person/{personId}/phone \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/person/{personId}/phone', headers = headers)
print(r.json())
GET /v1/person/{personId}/phone
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
personId | path | string(uuid) | true | none |
Example responses
200 Response
[
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"number": "string"
}
]
<?xml version="1.0" encoding="UTF-8" ?>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<isPrimary>true</isPrimary>
<number>string</number>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [PersonPhone] | false | none | none |
» id | string(uuid) | false | none | none |
» label | string | false | none | none |
» isPrimary | boolean | false | none | none |
» number | string | false | none | none |
getPersonPhoneById
Code samples
## You can also use wget
curl -X GET https:///v1/person/{personId}/phone/{phoneId} \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/person/{personId}/phone/{phoneId}', headers = headers)
print(r.json())
GET /v1/person/{personId}/phone/{phoneId}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
personId | path | string(uuid) | true | none |
phoneId | path | string(uuid) | true | none |
Example responses
200 Response
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"number": "string"
}
<?xml version="1.0" encoding="UTF-8" ?>
<PersonPhone>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<isPrimary>true</isPrimary>
<number>string</number>
</PersonPhone>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | PersonPhone |
Schemas
Person
{
"id": "00000000-0000-0000-0000-000000000000",
"firstname": "string",
"lastname": "string",
"shortname": "string",
"birthdate": "2019-08-24T14:15:22Z",
"gender": {
"label": "string",
"id": "00000000-0000-0000-0000-000000000000"
},
"nationality": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
firstname | string | false | none | none |
lastname | string | false | none | none |
shortname | string | false | none | none |
birthdate | string(date-time) | false | none | none |
gender | Gender | false | none | none |
nationality | string | false | none | none |
Gender
{
"label": "string",
"id": "00000000-0000-0000-0000-000000000000"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
label | string | false | none | none |
id | string(uuid) | false | none | none |
PersonAddress
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"countryCode": "string",
"streetName1": "string",
"streetName2": "string",
"streetName3": "string",
"postalCode": "string",
"postalPlace": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
label | string | false | none | none |
isPrimary | boolean | false | none | none |
countryCode | string | false | none | none |
streetName1 | string | false | none | none |
streetName2 | string | false | none | none |
streetName3 | string | false | none | none |
postalCode | string | false | none | none |
postalPlace | string | false | none | none |
PersonElectronicAddress
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"address": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
label | string | false | none | none |
isPrimary | boolean | false | none | none |
address | string | false | none | none |
PersonPhone
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"number": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
label | string | false | none | none |
isPrimary | boolean | false | none | none |
number | string | false | none | none |
Unit API v1.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Base URLs:
https://apis.dev.simployer.com
- Host - Default: unknown
Authentication
- API Key (apiKey)
- Parameter Name: X-ApiKey, in: header. API Key Authentication
LegalUnit
getLegalUnits
Code samples
## You can also use wget
curl -X GET https:///v1/legalunit \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/legalunit', headers = headers)
print(r.json())
GET /v1/legalunit
Example responses
200 Response
[
{
"id": "00000000-0000-0000-0000-000000000000",
"organizationNumber": "string",
"name": "string"
}
]
<?xml version="1.0" encoding="UTF-8" ?>
<id>00000000-0000-0000-0000-000000000000</id>
<organizationNumber>string</organizationNumber>
<name>string</name>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [LegalUnit] | false | none | none |
» id | string(uuid) | false | none | none |
» organizationNumber | string | false | none | none |
» name | string | false | none | none |
getLegalUnitById
Code samples
## You can also use wget
curl -X GET https:///v1/legalunit/{id} \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/legalunit/{id}', headers = headers)
print(r.json())
GET /v1/legalunit/{id}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string(uuid) | true | none |
Example responses
200 Response
{
"id": "00000000-0000-0000-0000-000000000000",
"organizationNumber": "string",
"name": "string"
}
<?xml version="1.0" encoding="UTF-8" ?>
<LegalUnit>
<id>00000000-0000-0000-0000-000000000000</id>
<organizationNumber>string</organizationNumber>
<name>string</name>
</LegalUnit>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | LegalUnit |
Unit
getUnits
Code samples
## You can also use wget
curl -X GET https:///v1/unit \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/unit', headers = headers)
print(r.json())
GET /v1/unit
Example responses
200 Response
[
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"name": "string"
}
]
<?xml version="1.0" encoding="UTF-8" ?>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<name>string</name>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [Unit] | false | none | none |
» id | string(uuid) | false | none | none |
» label | string | false | none | none |
» name | string | false | none | none |
getUnitById
Code samples
## You can also use wget
curl -X GET https:///v1/unit/{id} \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/unit/{id}', headers = headers)
print(r.json())
GET /v1/unit/{id}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string(uuid) | true | none |
Example responses
200 Response
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"name": "string"
}
<?xml version="1.0" encoding="UTF-8" ?>
<Unit>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<name>string</name>
</Unit>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Unit |
UnitAddress
getUnitAddresses
Code samples
## You can also use wget
curl -X GET https:///v1/unit/{unitId}/address \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/unit/{unitId}/address', headers = headers)
print(r.json())
GET /v1/unit/{unitId}/address
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
unitId | path | string(uuid) | true | none |
Example responses
200 Response
[
{
"id": "00000000-0000-0000-0000-000000000000",
"isPrimary": true,
"label": "string",
"countryCode": "string",
"streetName1": "string",
"streetName2": "string",
"streetName3": "string",
"postalCode": "string",
"postalPlace": "string"
}
]
<?xml version="1.0" encoding="UTF-8" ?>
<id>00000000-0000-0000-0000-000000000000</id>
<isPrimary>true</isPrimary>
<label>string</label>
<countryCode>string</countryCode>
<streetName1>string</streetName1>
<streetName2>string</streetName2>
<streetName3>string</streetName3>
<postalCode>string</postalCode>
<postalPlace>string</postalPlace>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [UnitAddress] | false | none | none |
» id | string(uuid) | false | none | none |
» isPrimary | boolean | false | none | none |
» label | string | false | none | none |
» countryCode | string | false | none | none |
» streetName1 | string | false | none | none |
» streetName2 | string | false | none | none |
» streetName3 | string | false | none | none |
» postalCode | string | false | none | none |
» postalPlace | string | false | none | none |
getUnitAddressById
Code samples
## You can also use wget
curl -X GET https:///v1/unit/{unitId}/address/{addressId} \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/unit/{unitId}/address/{addressId}', headers = headers)
print(r.json())
GET /v1/unit/{unitId}/address/{addressId}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
unitId | path | string(uuid) | true | none |
addressId | path | string(uuid) | true | none |
Example responses
200 Response
{
"id": "00000000-0000-0000-0000-000000000000",
"isPrimary": true,
"label": "string",
"countryCode": "string",
"streetName1": "string",
"streetName2": "string",
"streetName3": "string",
"postalCode": "string",
"postalPlace": "string"
}
<?xml version="1.0" encoding="UTF-8" ?>
<UnitAddress>
<id>00000000-0000-0000-0000-000000000000</id>
<isPrimary>true</isPrimary>
<label>string</label>
<countryCode>string</countryCode>
<streetName1>string</streetName1>
<streetName2>string</streetName2>
<streetName3>string</streetName3>
<postalCode>string</postalCode>
<postalPlace>string</postalPlace>
</UnitAddress>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UnitAddress |
UnitElectronicAddress
getUnitEmailAddresses
Code samples
## You can also use wget
curl -X GET https:///v1/unit/{unitId}/email \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/unit/{unitId}/email', headers = headers)
print(r.json())
GET /v1/unit/{unitId}/email
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
unitId | path | string(uuid) | true | none |
Example responses
200 Response
[
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"address": "string"
}
]
<?xml version="1.0" encoding="UTF-8" ?>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<isPrimary>true</isPrimary>
<address>string</address>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [UnitElectronicAddress] | false | none | none |
» id | string(uuid) | false | none | none |
» label | string | false | none | none |
» isPrimary | boolean | false | none | none |
» address | string | false | none | none |
getUnitEmailAddressById
Code samples
## You can also use wget
curl -X GET https:///v1/unit/{unitId}/email/{emailId} \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/unit/{unitId}/email/{emailId}', headers = headers)
print(r.json())
GET /v1/unit/{unitId}/email/{emailId}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
unitId | path | string(uuid) | true | none |
emailId | path | string(uuid) | true | none |
Example responses
200 Response
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"address": "string"
}
<?xml version="1.0" encoding="UTF-8" ?>
<UnitElectronicAddress>
<id>00000000-0000-0000-0000-000000000000</id>
<label>string</label>
<isPrimary>true</isPrimary>
<address>string</address>
</UnitElectronicAddress>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UnitElectronicAddress |
UnitPhone
getUnitPhones
Code samples
## You can also use wget
curl -X GET https:///v1/unit/{unitId}/phone \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/unit/{unitId}/phone', headers = headers)
print(r.json())
GET /v1/unit/{unitId}/phone
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
unitId | path | string(uuid) | true | none |
Example responses
200 Response
[
{
"id": "00000000-0000-0000-0000-000000000000",
"isPrimary": true,
"label": "string",
"number": "string"
}
]
<?xml version="1.0" encoding="UTF-8" ?>
<id>00000000-0000-0000-0000-000000000000</id>
<isPrimary>true</isPrimary>
<label>string</label>
<number>string</number>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [UnitPhone] | false | none | none |
» id | string(uuid) | false | none | none |
» isPrimary | boolean | false | none | none |
» label | string | false | none | none |
» number | string | false | none | none |
getUnitPhoneById
Code samples
## You can also use wget
curl -X GET https:///v1/unit/{unitId}/phone/{phoneId} \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('https://apis.dev.simployer.com/v1/unit/{unitId}/phone/{phoneId}', headers = headers)
print(r.json())
GET /v1/unit/{unitId}/phone/{phoneId}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
unitId | path | string(uuid) | true | none |
phoneId | path | string(uuid) | true | none |
Example responses
200 Response
{
"id": "00000000-0000-0000-0000-000000000000",
"isPrimary": true,
"label": "string",
"number": "string"
}
<?xml version="1.0" encoding="UTF-8" ?>
<UnitPhone>
<id>00000000-0000-0000-0000-000000000000</id>
<isPrimary>true</isPrimary>
<label>string</label>
<number>string</number>
</UnitPhone>
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UnitPhone |
Schemas
LegalUnit
{
"id": "00000000-0000-0000-0000-000000000000",
"organizationNumber": "string",
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
organizationNumber | string | false | none | none |
name | string | false | none | none |
Unit
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"name": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
label | string | false | none | none |
name | string | false | none | none |
UnitAddress
{
"id": "00000000-0000-0000-0000-000000000000",
"isPrimary": true,
"label": "string",
"countryCode": "string",
"streetName1": "string",
"streetName2": "string",
"streetName3": "string",
"postalCode": "string",
"postalPlace": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
isPrimary | boolean | false | none | none |
label | string | false | none | none |
countryCode | string | false | none | none |
streetName1 | string | false | none | none |
streetName2 | string | false | none | none |
streetName3 | string | false | none | none |
postalCode | string | false | none | none |
postalPlace | string | false | none | none |
UnitElectronicAddress
{
"id": "00000000-0000-0000-0000-000000000000",
"label": "string",
"isPrimary": true,
"address": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
label | string | false | none | none |
isPrimary | boolean | false | none | none |
address | string | false | none | none |
UnitPhone
{
"id": "00000000-0000-0000-0000-000000000000",
"isPrimary": true,
"label": "string",
"number": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string(uuid) | false | none | none |
isPrimary | boolean | false | none | none |
label | string | false | none | none |
number | string | false | none | none |
Getting started with Analytics API
What is Analytics API
Analytics API is a REST API that enable our customers to read and then analyze their Simployer HRM data. Analytics API implements OData open standard. It can be accessed using various third party tools e.g. Excel, Power BI, as well as consumed by customer’s internal systems.
How to use Analytics API
URL
OData endpoint:
Documentation/test site (for more information see Swagger UI section later in this document):
Usage in Self-Service BI Tools
For specific SSBI tool, user should check if it supports OData Feed. Alternatively you can try to treat API as typical REST endpoints, but note, that API has a paging mechanism and a limit of results per query (see FAQ section for more details).
Authentication methods
Analytics API supports multiple authentication methods to support various integration tools. Users can choose to use:
- X-ApiKey header and provide API key as it’s value
- Basic authentication and provide API key as password, leaving user name empty
- api-key query parameter and provide API key as parameter value. This means you put it into URL (i.e.
https://analytics-api.simployer.com/v1/person?$top=1&api-key={api-key-here}
). Note that it may lead to leakage of api-key. Web browsers save query parameters in browser history, it may also be logged by some network monitors, etc.
Excel, Power BI
Below you can find examples of two approaches to authenticate and connect to Analytics API using Excel. For Power BI it is similar as both of these solutions use Power Query.
Basic authentication
Go to Data > Get Data > From Other Sources > From OData Feed (Power BI: Home > Get Data > OData feed)
In the pop up, provide Analytics API endpoint URL and press OK: https://analytics-api.simployer.com/v1/person
User will be prompted for credentials. Switch to "Basic" tab and provide API key in the "Password" box, leaving "User name" empty:
Click "Connect" and the data should be fetched from the Analytics API.
Web API
Go to Data > Get Data > From Other Sources > Blank Query (Power BI: Home > Get Data > Blank Query)
In the formula bar, provide OData Feed function with proper Analytics API URL and press Enter:
= OData.Feed("https://analytics-api.simployer.com/v1/person", null, [ApiKeyName="api-key"])
User will be prompted for credentials.
Click "Edit Credentials", switch to "Web API" tab and provide API key in the "Key" box.
Click "Connect" and the data should be fetched from the Analytics API.
OData Standard
Analytics API is a REST API based on open data protocol OData V4. This protocol allows users to use number of features:
- $filter - restricts the set of items returned. The maximum number of expressions is 100.
- $orderby - specifies the order in which items are returned.
- $top - limits the number of items returned from a collection.
- $skip - excludes the specified number of items of the queried collection from the result.
- $count - indicates whether the total count of items within a collection are returned in the result.
- $expand - indicates the related entities to be represented inline. The maximum depth is 2.
- $select - limits the properties returned in the result.
All of these features are described in OData documentation available here: https://www.odata.org/getting-started/basic-tutorial/. Below we will describe most common use cases for the solution.
Swagger UI
There is Swagger UI integrated in the solution which allows user to test the endpoints before connecting using any Self-Service BI solution.
Overall look at Swagger UI
All available endpoints are listed in Swagger UI, including corresponding schemas. Below there is an example with limited number of entities:
When expanding any of schemas, user will see detailed description of each property inside. If there are any references to other entities, user will also see them as expandable properties - see absences, immediateSupervisor, affiliationUnit, employees and directReports below. User can make use of these properties using $expand OData feature to include referenced entities to the result set.
Using Swagger UI
To use Swagger UI to make calls to the endpoints, user has to be authorized. To do so, he should use Authorize button just above endpoints declaration. User will be prompted to provide API key which is unique for each of our customer.
Once authorized, user can test Analytics API endpoints using Try it out button (available when expanding each endpoint). Sample usage below:
According to the setup above, we want to fetch one Person (sk = 1) including his Affiliation Unit details. For both these entities we want to limit the properties returned to only few columns listed (this can be nested for $expand feature as shown above). Sample response from Analytics API below:
FAQ
I get {"error":"Missing API key"}
error when trying to connect to OData endpoint.
Please follow instructions specific to tool you’re using:
- Internet browser - Internet browser can not be used to utilize OData endpoint, it should be only utilized using specialized applications (Excel, Power BI, etc.). If you want to explore analytics model’s data or documentation using your browser, you can use Swagger UI which is available as separate endpoint (you can find it URL section of the document).
- any specialized BI tool - please refer to Excel, Power BI section of this document to check if you provided correct parameters when establishing the connection (note: API key name "api-key" has to be provided, not only URL).
- Swagger UI - please make sure you provided correct API key when clicking Authorize button before calling any endpoint.
Where can I find data model’s documentation?
Data model’s documentation is available in Swagger UI ("Schemas" paragraph, just below endpoints list).
How to use filter in the query?
To use filter feature, you have to use "$filter" keyword in your query. You can refer to the OData basic tutorial here, e.g. if you want to select only Person with first name "Anna", you can use this filter: v1/Person?$filter=firstName eq 'Anna'
.
There are also other filter logical operators available, you can refer to OData URL Conventions document here to get a list of them.
How to include related entities in the results?
To use this feature, you have to use "$expand" keyword in your query. You can refer to the OData basic tutorial here. See Using Swagger UI section above, this approach can be used in any other tool capable to utilize OData endpoints. When you fetch data for entity that has some relationship set (e.g. Person as shown in one of previous paragraphs), you may also get extra columns in Excel (affiliationUnit in this example):
= OData.Feed("https://analytics-api.simployer.com/v1/person?$filter=sk eq 1", null, [ApiKeyName="api-key"])
but if you try to expand them by clicking, you will see that they’re not populated:
To fix it, you can include $expand keyword and state which entity you want to be expanded:
= OData.Feed("https://analytics-api.simployer.com/v1/person?$filter=sk eq 1&$expand=affiliationUnit", null, [ApiKeyName="api-key"])
My dataset is large, and it seems that I don’t get all the data from the endpoint. Why?
Our API use OData paging mechanism. It means that you can get limited number of records per one query. This limit is currently set to 100 000 rows. In general OData connectors (e.g. connector in Power BI) should handle it by their own. If you are utilizing API manually you have two options to handle it:
- use
@odata.nextLink
field from response to get URL for the next page of records - use
$skip
keyword in your query to get the next page of records
Solution for my issues is not listed here. How can I get an additional help?
You can reach out to the support team at analytics-support@simployer.com.
Analytics API v1.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Analytics API is a REST API that enable our customers to read and then analyze their Simployer HRM data. Analytics API implements OData open standard. It can be accessed using various third party tools e.g. Excel, Power BI, as well as consumed by customer’s internal systems.
Authentication
API Key (X-ApiKey Header)
- Parameter Name: X-ApiKey, in: header.
API Key (api-key Query Parameter)
- Parameter Name: api-key, in: query.
HTTP Authentication, scheme: basic Enter API key in Password field; note that Username field is ignored, you can fill it with any text
Absence
getAbsence
Code samples
## You can also use wget
curl -X GET /v1/absence \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/absence', headers = headers)
print(r.json())
GET /v1/absence
Returns Absence entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z",
"percentageAssignment": 0,
"status": "string",
"absenceCategory": "string",
"absenceType": "string",
"isFteReduction": "string",
"isAbsent": "string",
"employmentAbsences": [],
"person": {}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | AbsenceIEnumerableODataValue |
Employee
getEmployee
Code samples
## You can also use wget
curl -X GET /v1/employee \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/employee', headers = headers)
print(r.json())
GET /v1/employee
Returns Employee entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"unitSk": 0,
"personSk": 0,
"person": {},
"number": "string",
"unit": {},
"employments": []
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | EmployeeIEnumerableODataValue |
Employment
getEmployment
Code samples
## You can also use wget
curl -X GET /v1/employment \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/employment', headers = headers)
print(r.json())
GET /v1/employment
Returns Employment entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"unitSk": 0,
"unit": {},
"employeeSk": 0,
"categoryName": "string",
"includeInFte": "string",
"positionName": "string",
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z",
"percentageAssignment": 0,
"hoursPerWeekAssignment": 0,
"continuity": "string",
"isActive": "string",
"employee": {},
"employmentAbsences": []
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | EmploymentIEnumerableODataValue |
EmploymentAbsence
getEmploymentAbsence
Code samples
## You can also use wget
curl -X GET /v1/employmentAbsence \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/employmentAbsence', headers = headers)
print(r.json())
GET /v1/employmentAbsence
Returns EmploymentAbsence entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"absenceSk": 0,
"employmentSk": 0,
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z",
"percentageAssignment": 0,
"absence": {},
"employment": {}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | EmploymentAbsenceIEnumerableODataValue |
FteByMonth
getFteByMonth
Code samples
## You can also use wget
curl -X GET /v1/fteByMonth \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/fteByMonth', headers = headers)
print(r.json())
GET /v1/fteByMonth
Returns monthly FTE and Actual FTE statistics
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"employmentSk": 0,
"employment": {},
"unitSk": 0,
"employeeSk": 0,
"startOfMonth": "2019-08-24T14:15:22Z",
"fte": 0,
"actualFte": 0,
"unit": {},
"employee": {}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | FteByMonthIEnumerableODataValue |
LoadStatus
getLoadStatus
Code samples
## You can also use wget
curl -X GET /v1/loadStatus \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/loadStatus', headers = headers)
print(r.json())
GET /v1/loadStatus
Returns status of latest data load. It returns only one entry with Id = 1.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"id": 0,
"status": "string",
"updateTimeUtc": "2019-08-24T14:15:22Z"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | LoadStatusIEnumerableODataValue |
Person
getPerson
Code samples
## You can also use wget
curl -X GET /v1/person \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/person', headers = headers)
print(r.json())
GET /v1/person
Returns Person entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"firstName": "string",
"lastName": "string",
"fullName": "string",
"shortName": "string",
"birthDate": "2019-08-24T14:15:22Z",
"age": "string",
"gender": "string",
"nationality": "string",
"civilStatus": "string",
"isActive": "string",
"seniorityMonths": 0,
"immediateSupervisorSk": 0,
"affiliationUnitSk": 0,
"additionalInfo": "string",
"primaryBankAccountCountry": "string",
"primaryBankAccount": "string",
"secondaryBankAccountCountry": "string",
"secondaryBankAccount": "string",
"absences": [],
"addresses": [],
"electronicAddresses": [],
"phoneNumbers": [],
"nextOfKin": [],
"children": [],
"immediateSupervisor": {},
"affiliationUnit": {},
"employees": [],
"directReports": []
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | PersonIEnumerableODataValue |
PersonAddress
getPersonAddress
Code samples
## You can also use wget
curl -X GET /v1/personAddress \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/personAddress', headers = headers)
print(r.json())
GET /v1/personAddress
Returns PersonAddress entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"addressKind": "string",
"address": "string",
"postalCode": "string",
"postalPlace": "string",
"country": "string",
"person": {}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | PersonAddressIEnumerableODataValue |
PersonChild
getPersonChild
Code samples
## You can also use wget
curl -X GET /v1/personChild \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/personChild', headers = headers)
print(r.json())
GET /v1/personChild
Returns PersonChild entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"firstName": "string",
"lastName": "string",
"fullName": "string",
"birthDate": "2019-08-24T14:15:22Z",
"age": "string",
"gender": "string",
"livesWithPerson": "string",
"isSharedCustody": "string",
"sharedCustodyPercentageAssignment": 0,
"isChronicallyIll": "string",
"isStepchild": "string",
"comment": "string",
"person": {}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | PersonChildIEnumerableODataValue |
PersonElectronicAddress
getPersonElectronicAddress
Code samples
## You can also use wget
curl -X GET /v1/personElectronicAddress \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/personElectronicAddress', headers = headers)
print(r.json())
GET /v1/personElectronicAddress
Returns PersonElectronicAddress entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"type": "string",
"address": "string",
"person": {}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | PersonElectronicAddressIEnumerableODataValue |
PersonNextOfKin
getPersonNextOfKin
Code samples
## You can also use wget
curl -X GET /v1/personNextOfKin \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/personNextOfKin', headers = headers)
print(r.json())
GET /v1/personNextOfKin
Returns PersonNextOfKin entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"relationType": "string",
"firstName": "string",
"lastName": "string",
"fullName": "string",
"email": "string",
"phoneNumber": "string",
"address": "string",
"postalCode": "string",
"postalPlace": "string",
"country": "string",
"person": {}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | PersonNextOfKinIEnumerableODataValue |
PersonPhoneNumber
getPersonPhoneNumber
Code samples
## You can also use wget
curl -X GET /v1/personPhoneNumber \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/personPhoneNumber', headers = headers)
print(r.json())
GET /v1/personPhoneNumber
Returns PersonPhoneNumber entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"type": "string",
"number": "string",
"person": {}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | PersonPhoneNumberIEnumerableODataValue |
Unit
getUnit
Code samples
## You can also use wget
curl -X GET /v1/unit \
-H 'Accept: application/json' \
-H 'X-ApiKey: API_KEY'
import requests
headers = {
'Accept': 'application/json',
'X-ApiKey': 'API_KEY'
}
r = requests.get('/v1/unit', headers = headers)
print(r.json())
GET /v1/unit
Returns Unit entities
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
$select | query | string | false | Limits the properties returned in the result. |
$expand | query | string | false | Indicates the related entities to be represented inline. The maximum depth is 2. |
$filter | query | string | false | Restricts the set of items returned. The maximum number of expressions is 100. The allowed functions are: allfunctions. |
$orderby | query | string | false | Specifies the order in which items are returned. The maximum number of expressions is 5. |
$top | query | integer(int32) | false | Limits the number of items returned from a collection. |
$skip | query | integer(int32) | false | Excludes the specified number of items of the queried collection from the result. |
$count | query | boolean | false | Indicates whether the total count of items within a collection are returned in the result. |
Example responses
200 Response
{
"value": [
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"parentUnitSk": 0,
"unitName": "string",
"alias": "string",
"organizationNumber": "string",
"unitType": "string",
"employees": [],
"managerSk": 0,
"parentUnit": {},
"subunits": [],
"employments": [],
"managers": []
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | Success | UnitIEnumerableODataValue |
Schemas
Absence
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z",
"percentageAssignment": 0,
"status": "string",
"absenceCategory": "string",
"absenceType": "string",
"isFteReduction": "string",
"isAbsent": "string",
"employmentAbsences": [],
"person": {}
}
A registered period of person's absence or their limited availability at work
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | Simployer HRM system identifier of the entity |
personSk | integer(int32) | true | none | Identifier of the person for whom this absence is registered |
startDate | string(date-time) | true | none | First day of absence |
endDate | string(date-time)¦null | true | none | Last day of absence, null if absence is still in progress |
percentageAssignment | number(double) | true | none | Percentage of person absence (i.e. fully absent or half day, etc.) Values: * between 0 and 1; 1 meaning person is absent the whole period |
status | string | true | none | Absence status Values: * Unhandled * Approved * Declined * Proposed * Deleted (obsolete) * In progress * Conflicted * Child unit statistics |
absenceCategory | string | true | none | Categorization of absence. It's an indicator of Simployer's module where absence was registered Values: * Vacation * Leave & absence * Sick leave |
absenceType | string | true | none | Absence type |
isFteReduction | string | true | none | If the absence should be treated as FTE reduction period (based on absence type) Values: * Yes * No |
isAbsent | string | true | none | If the person was absent at the period. This is based on few factors (e.g. absence type, status). If yes, absence is used in e.g. lost FTE calculations Values: * Yes * No |
employmentAbsences | [EmploymentAbsence]¦null | false | none | Employment-absences that occured for this absence - can be used with $expand OData query option |
person | Person | false | none | A physical person |
AbsenceIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [Absence] | false | none | [A registered period of person's absence or their limited availability at work] |
Employee
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"unitSk": 0,
"personSk": 0,
"person": {},
"number": "string",
"unit": {},
"employments": []
}
Represents a relation between a person and their employer (a legal unit)
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | Simployer HRM id of employee as used in Simployer systems |
unitSk | integer(int32) | true | none | Affiliation unit's identifier |
personSk | integer(int32) | true | none | Identifier of the person whose relation with employer is represented by this employee |
person | Person | false | none | A physical person |
number | string | true | none | Employee number |
unit | Unit | false | none | A logical grouping within the company. Unit can, but doesn't have to, have a legal identity |
employments | [Employment]¦null | false | none | Employments assigned to this employee - can be used with $expand OData query option |
EmployeeIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [Employee] | false | none | [Represents a relation between a person and their employer (a legal unit)] |
Employment
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"unitSk": 0,
"unit": {},
"employeeSk": 0,
"categoryName": "string",
"includeInFte": "string",
"positionName": "string",
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z",
"percentageAssignment": 0,
"hoursPerWeekAssignment": 0,
"continuity": "string",
"isActive": "string",
"employee": {},
"employmentAbsences": []
}
Employment information for employee in unit and period of time
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | Simployer HRM id for the entity |
unitSk | integer(int32) | true | none | Unit's, where this employment is registered, identifier |
unit | Unit | false | none | A logical grouping within the company. Unit can, but doesn't have to, have a legal identity |
employeeSk | integer(int32) | true | none | Identifier of the employee that's one of the parties in the employment |
categoryName | string | true | none | Employment category |
includeInFte | string | true | none | If the employment should be included in FTE calculations Values: * Yes * No |
positionName | string | true | none | Position on the employment contract |
startDate | string(date-time) | true | none | Employment contract start date |
endDate | string(date-time)¦null | true | none | Employment end date, null if not specified |
percentageAssignment | number(double) | true | none | Percentage assigment of full-time position Values: * between 0 and 1; 1 meaning employee is employed full-time |
hoursPerWeekAssignment | number(double) | true | none | Assignment in hours per week |
continuity | string | true | none | Status of employment's continuity. It gives an insight of employee's situation in the organization at the end of this employment. Values: * No - there's no other ongoing employment at the end of this employment. This means that employee is no longer employed in organization * Same legal unit - there's another ongoing employment within the same legal unit at the end of this employment * Different legal unit - there's another ongoing employment within different legal unit at the end of this employment * Ongoing - this employment is still ongoing, there's no end date set, therefore no way to determine further employments |
isActive | string | true | none | If the employment is active in the system Values: * Yes * No |
employee | Employee | false | none | Represents a relation between a person and their employer (a legal unit) |
employmentAbsences | [EmploymentAbsence]¦null | false | none | Employment-absences that occured for this employment - can be used with $expand OData query option |
EmploymentAbsence
{
"sk": 0,
"absenceSk": 0,
"employmentSk": 0,
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z",
"percentageAssignment": 0,
"absence": {},
"employment": {}
}
Employment-absence information, based on absence and employment data.
Entries available here are intersection of absence and employment periods.
If no employment is present during absence, there will be no employment-absence entry for it
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
absenceSk | integer(int32) | true | none | Related absence's identifier |
employmentSk | integer(int32) | true | none | Related employment's identifier |
startDate | string(date-time) | true | none | First day of employment-absence |
endDate | string(date-time)¦null | true | none | Last day of employment-absence, null if employment-absence is still in progress |
percentageAssignment | number(double) | true | none | Percentage assigment Values: * between 0 and 1; 1 meaning employee is fully absent. This is a result of multiplying absence's and employment's PercentageAssignment properties |
absence | Absence | false | none | A registered period of person's absence or their limited availability at work |
employment | Employment | false | none | Employment information for employee in unit and period of time |
EmploymentAbsenceIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [EmploymentAbsence] | false | none | [Employment-absence information, based on absence and employment data. Entries available here are intersection of absence and employment periods. If no employment is present during absence, there will be no employment-absence entry for it] |
EmploymentIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [Employment] | false | none | [Employment information for employee in unit and period of time] |
FteByMonth
{
"employmentSk": 0,
"employment": {},
"unitSk": 0,
"employeeSk": 0,
"startOfMonth": "2019-08-24T14:15:22Z",
"fte": 0,
"actualFte": 0,
"unit": {},
"employee": {}
}
Monthly FTE and actual FTE per employment, based on employment and absence information
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
employmentSk | integer(int32) | true | none | Employment's identifier |
employment | Employment | false | none | Employment information for employee in unit and period of time |
unitSk | integer(int32) | true | none | Unit's identifier |
employeeSk | integer(int32) | true | none | Employee's identifier |
startOfMonth | string(date-time) | true | none | First day of month |
fte | number(double) | true | none | FTE value for specified month Values: * between 0 and 1; 1 meaning one man-month |
actualFte | number(double) | true | none | Actual FTE value for specified month Values: * between 0 and 1; 1 meaning one man-month |
unit | Unit | false | none | A logical grouping within the company. Unit can, but doesn't have to, have a legal identity |
employee | Employee | false | none | Represents a relation between a person and their employer (a legal unit) |
FteByMonthIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [FteByMonth] | false | none | [Monthly FTE and actual FTE per employment, based on employment and absence information] |
LoadStatus
{
"id": 0,
"status": "string",
"updateTimeUtc": "2019-08-24T14:15:22Z"
}
Data load status (last load status and update time)
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer(int32) | true | none | Id of entry (internal) |
status | string | true | none | Status of last load. Values: * Succeeded - data is loaded correctly; * Failed - data is currently in inconsistent state, try again later. |
updateTimeUtc | string(date-time)¦null | true | none | Date of last status update (UTC) |
LoadStatusIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [LoadStatus] | false | none | [Data load status (last load status and update time)] |
Person
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"firstName": "string",
"lastName": "string",
"fullName": "string",
"shortName": "string",
"birthDate": "2019-08-24T14:15:22Z",
"age": "string",
"gender": "string",
"nationality": "string",
"civilStatus": "string",
"isActive": "string",
"seniorityMonths": 0,
"immediateSupervisorSk": 0,
"affiliationUnitSk": 0,
"additionalInfo": "string",
"primaryBankAccountCountry": "string",
"primaryBankAccount": "string",
"secondaryBankAccountCountry": "string",
"secondaryBankAccount": "string",
"absences": [],
"addresses": [],
"electronicAddresses": [],
"phoneNumbers": [],
"nextOfKin": [],
"children": [],
"immediateSupervisor": {},
"affiliationUnit": {},
"employees": [],
"directReports": []
}
A physical person
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | System GUID of person entity as used in Simployer HRM |
firstName | string¦null | true | none | First name |
lastName | string¦null | true | none | Last name |
fullName | string | true | none | Full name |
shortName | string | true | none | Short name |
birthDate | string(date-time)¦null | true | none | Date of birth (or null if not set) |
age | string | true | none | Age in full years |
gender | string | true | none | Gender Values: * Female * Male |
nationality | string | true | none | Nationality |
civilStatus | string | true | none | Civil status Values: * Unmarried * Married * Live-in * Live-in with common children * Separated * Divorced * Widow * Widower * Partnership * Not set |
isActive | string | true | none | If the person's account is active in the system Values: * Yes * No |
seniorityMonths | integer(int32) | true | none | Seniority in full months. It's based on person's employments, and seniority date - if provided |
immediateSupervisorSk | integer(int32) | true | none | Immediate supervisor's person entry identifier |
affiliationUnitSk | integer(int32) | true | none | Affiliation unit's identifier |
additionalInfo | string | true | none | Additional information |
primaryBankAccountCountry | string | true | none | Primary bank account's country of origin |
primaryBankAccount | string | true | none | Primary bank account number |
secondaryBankAccountCountry | string | true | none | Secondary bank account's country of origin |
secondaryBankAccount | string | true | none | Secondary bank account number |
absences | [Absence]¦null | false | none | Absences registered for that person - can be used with $expand OData query option |
addresses | [PersonAddress]¦null | false | none | Persons's addresses - can be used with $expand OData query option |
electronicAddresses | [PersonElectronicAddress]¦null | false | none | Person's electronic addresses - can be used with $expand OData query option |
phoneNumbers | [PersonPhoneNumber]¦null | false | none | Person's phone numbers - can be used with $expand OData query option |
nextOfKin | [PersonNextOfKin]¦null | false | none | Person's next of kin - can be used with $expand OData query option |
children | [PersonChild]¦null | false | none | Person's children - can be used with $expand OData query option |
immediateSupervisor | Person | false | none | A physical person |
affiliationUnit | Unit | false | none | A logical grouping within the company. Unit can, but doesn't have to, have a legal identity |
employees | [Employee]¦null | false | none | Employees that represent this person - can be used with $expand OData query option |
directReports | [Person]¦null | false | none | Persons for whom this person is immediate supervisor - can be used with $expand OData query option |
PersonAddress
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"addressKind": "string",
"address": "string",
"postalCode": "string",
"postalPlace": "string",
"country": "string",
"person": {}
}
Person's address details
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | System GUID of person address entity as used in Simployer HRM |
personSk | integer(int32) | true | none | Identifier of the person whose address is represented by this entity |
addressKind | string | true | none | Address kind Values: * Primary * Commuter home * Delivery * Department * Home * Post * Vacation * Visit |
address | string | true | none | Address |
postalCode | string | true | none | Postal code |
postalPlace | string | true | none | Postal place |
country | string | true | none | Country |
person | Person | false | none | A physical person |
PersonAddressIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [PersonAddress] | false | none | [Person's address details] |
PersonChild
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"firstName": "string",
"lastName": "string",
"fullName": "string",
"birthDate": "2019-08-24T14:15:22Z",
"age": "string",
"gender": "string",
"livesWithPerson": "string",
"isSharedCustody": "string",
"sharedCustodyPercentageAssignment": 0,
"isChronicallyIll": "string",
"isStepchild": "string",
"comment": "string",
"person": {}
}
Person's child details
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | System GUID of person next of kin entity as used in Simployer HRM |
personSk | integer(int32) | true | none | Identifier of the person whose child is represented by this entity |
firstName | string¦null | true | none | First name |
lastName | string¦null | true | none | Last name |
fullName | string | true | none | Full name |
birthDate | string(date-time)¦null | true | none | Date of birth (or null if not set) |
age | string | true | none | Age in full years |
gender | string | true | none | Gender Values: * Female * Male |
livesWithPerson | string | true | none | If the person and child live together Values: * Yes * No |
isSharedCustody | string | true | none | If the person shares custody with other parent Values: * Yes * No |
sharedCustodyPercentageAssignment | number(double)¦null | true | none | Shared custody percentage assigment Values: * between 0 and 1; 1 meaning person is the only child's caregiver * null if not applicable |
isChronicallyIll | string | true | none | If the child is chronically ill or disabled Values: * Yes * No |
isStepchild | string | true | none | If it's a stepchild Values: * Yes * No |
comment | string | true | none | Comment |
person | Person | false | none | A physical person |
PersonChildIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [PersonChild] | false | none | [Person's child details] |
PersonElectronicAddress
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"type": "string",
"address": "string",
"person": {}
}
Person's electronic address details
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | System GUID of person electronic address entity as used in Simployer HRM |
personSk | integer(int32) | true | none | Identifier of the person whose electronic address is represented by this entity |
type | string | true | none | Address type Values: * Undefined * Homepage * Email primary * Messenger * Email alternative * ExternalId * ExternalId alternative |
address | string | true | none | Address |
person | Person | false | none | A physical person |
PersonElectronicAddressIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [PersonElectronicAddress] | false | none | [Person's electronic address details] |
PersonIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [Person] | false | none | [A physical person] |
PersonNextOfKin
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"relationType": "string",
"firstName": "string",
"lastName": "string",
"fullName": "string",
"email": "string",
"phoneNumber": "string",
"address": "string",
"postalCode": "string",
"postalPlace": "string",
"country": "string",
"person": {}
}
Person's next of kin details
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | System GUID of person next of kin entity as used in Simployer HRM |
personSk | integer(int32) | true | none | Identifier of the person whose next of kin is represented by this entity |
relationType | string | true | none | Person and next of kin relation type |
firstName | string¦null | true | none | First name |
lastName | string¦null | true | none | Last name |
fullName | string | true | none | Full name |
string | true | none | Email address | |
phoneNumber | string | true | none | Phone number |
address | string | true | none | Address |
postalCode | string | true | none | Postal code |
postalPlace | string | true | none | Postal place |
country | string | true | none | Country |
person | Person | false | none | A physical person |
PersonNextOfKinIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [PersonNextOfKin] | false | none | [Person's next of kin details] |
PersonPhoneNumber
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"personSk": 0,
"type": "string",
"number": "string",
"person": {}
}
Person's phone numbers
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | System GUID of person phone number entity as used in Simployer HRM |
personSk | integer(int32) | true | none | Identifier of the person whose phone number is represented by this entity |
type | string | true | none | Phone number type Values: * Home * Call center * Direct number * Mobile primary * Fax * Mobile alternative |
number | string | true | none | Phone number |
person | Person | false | none | A physical person |
PersonPhoneNumberIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [PersonPhoneNumber] | false | none | [Person's phone numbers] |
Unit
{
"sk": 0,
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"parentUnitSk": 0,
"unitName": "string",
"alias": "string",
"organizationNumber": "string",
"unitType": "string",
"employees": [],
"managerSk": 0,
"parentUnit": {},
"subunits": [],
"employments": [],
"managers": []
}
A logical grouping within the company. Unit can, but doesn't have to, have a legal identity
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
sk | integer(int32) | true | none | Unique identifier of the entity (a Surrogate Key used in analytics API) |
id | string(uuid) | true | none | Unique identifier of the unit as used in Simployer systems |
parentUnitSk | integer(int32) | true | none | Parent unit's in default (legal) structure identifier, or -1 if there is no parent unit or unit is not a part of default structure |
unitName | string | true | none | Name |
alias | string | true | none | Alias |
organizationNumber | string | true | none | Organization number (valid for legal units) |
unitType | string | true | none | Unit type Values: * Enterprise * Legal unit * Internal department |
employees | [Employee]¦null | false | none | Employees employed in this unit - can be used with $expand OData query option |
managerSk | integer(int32) | true | none | First unit's manager's identifier. If no manager defined then this is ManagerSk from ParentUnit |
parentUnit | Unit | false | none | A logical grouping within the company. Unit can, but doesn't have to, have a legal identity |
subunits | [Unit]¦null | false | none | Subunits - can be used with $expand OData query option |
employments | [Employment]¦null | false | none | Employments registered in this unit - can be used with $expand OData query option Note that employee may be affiliated to different unit (i.e.legal unit) than the employment (unit where the employee actually works) |
managers | [Person]¦null | false | none | Unit managers - can be used with $expand OData query option Note that currently only one unit manager can be defined, thus the list consist of one element - referenced by ManagerSk |
UnitIEnumerableODataValue
{
"value": []
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
value | [Unit] | false | none | [A logical grouping within the company. Unit can, but doesn't have to, have a legal identity] |