Introduction
People First captures many events that occur as a result of business actions within the system (e.g. a person being created, an absence being deleted, etc.). These events are stored and exposed via an event stream api. The api contains events from multiple microservices within people first. The event stream enables consumers to identify exactly what has happened in the system and when it happened. Its purpose is for systems integration: to facilitate the synchronisation of information between multiple software systems. It is not an audit facility as it does not record all events, nor does it always record before and after information.
Accessing the Event Stream API
Like all People First APIs, the Event Stream API requires authentication in order for an application to access it and make API calls. This is achieved in three parts:
Application Configuration
In order to acquire an access token and access the event stream api, the following tasks need to be carried out:
- An application needs to be configured within People First.
- An access token, permissioned with the appropriate role, needs to be acquired for that application.
For details of how to do this, please refer to the REST API Integration section in the main API documentation.
Application Authentication
An API client authenticates itself with the Event Stream service by providing a valid token within the Authorization header of each HTTP request. For details of how to do this, please refer to the Authentication section in the main API documentation.
API Authorisation
In order to access People First events via the Event Stream API, you will need an access token that has been granted the "System Integration" role.
Event Stream API
The Event Stream API is comprised of a single RESTful endpoint. The endpoint takes the form:
PEOPLE_FIRST_BASE_URI/api/v1/rtpi/eventstream
Where:
PEOPLE_FIRST_BASE_URI
is the base URI for your People First system (see: API Requests).
Please refer to the API Requests section in the main API documentation for details of how to construct a People First API request.
In addition to the following query parameters, the Event Stream API also supports the pagination of results (see: Pagination).
API Parameters
Input type | Name | Description | Required |
---|---|---|---|
Querystring | eventTypes |
Events of this type will be included in the response. Multiple event types can be provided
as separate querystring parameters (e.g. eventTypes=SalaryChanged&eventTypes=PersonNameChanged ).
|
Optional |
Querystring | timeOfCreationFrom |
Events created on or after this dateTime will be included in the response. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) | Optional |
Querystring | timeOfCreationTo |
Events created on or before this dateTime will be included in the response. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) | Optional |
Querystring | timeOfReceiptFrom |
Events received by the event stream on or after this dateTime will be included in the response. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) | Optional |
Querystring | timeOfReceiptTo |
Events received by the event stream on or before this dateTime will be included in the response. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) | Optional |
Schema Definition
The event stream schema has a similar shape to other people first apis. The eventData object contains the actual event data for which the schema will vary depending on the eventType. The schema for each eventType is defined in the events section of this page.
Field lengths
The field lengths for string based fields are listed in the documentation for each event type. These field lengths are to assist integrators when consuming data from the event stream. Some fields have limitations for business purposes (such as driving licence id or ni number), others are purely technical limitations. The technical limitations are generally higher than would be expected for a given piece of data, however it is possible that these field lengths could be increased at some point. The field lengths will never decrease.
Casing
All fields are case insensitive.
Example schema for the event stream api
{
"data": {
"eventStream": [{
"id": "80e3ef54-2905-42f7-87ac-eaaed55df144",
"eventType": "personCreated",
"timeOfCreation": "2019-11-07T09:15:11.28Z",
"timeOfReceipt": "2019-11-07T09:15:11.29Z",
"eventData": {
}
}]
},
"meta": {
"links": {
"self": {
"href": "/rtpi/eventstream"
},
"first": {
"href": "/rtpi/eventstream?page%5BLimit%5D=2&page%5BOffset%5D=0"
},
"last": {
"href": "/rtpi/eventstream?page%5BLimit%5D=2&page%5BOffset%5D=6"
},
"next": {
"href": "/rtpi/eventstream?page%5BLimit%5D=2&page%5BOffset%5D=4"
},
"previous": {
"href": "/rtpi/eventstream?page%5BLimit%5D=2&page%5BOffset%5D=2"
}
},
"paging": {
"pageLimit": 2,
"pageOffset": 2,
"totalCount": 8
}
}
}
The timeOfCreation and timeOfReceipt are dateTimes stored in coordinated universal time (UTC).
Eventual Consistency
Event stream events are eventually consistent and will not necessarily appear in the order the events occurred in the source microservice. However, the TimeOfCreation property does indicate when the event occurred in the source microservice.
Resource Identity
All events in the event stream are related to either a person, job or occupancy. These owning resources are referenced in all events by means of a resource id and a resource reference. The id is the resource identifier within the people first apis, which is typically a guid. The reference is a customer defined identifier, which is typically a string. The resource reference allows consumers to associate resources in the two system by an identifier that may already exist in another system, rather than having to use the people first identifier.
Reference Data
Many fields in people first are reference data (aka lookup lists). All event stream events that contain reference data will have a field containing the reference data code. This will always be the api field name suffixed with "Code".
An example of a reference data field is title.
The event stream entry MUST contain a "titleCode" (e.g. 'TITLE0001').
The event stream entry MAY contain a "title". (e.g. 'Mr')
API Compatibility Considerations
As with the other People First APIs, consumers of the Event Stream API will need to be aware of the type of changes that are considered to be backwards compatible, and will need to code their applications to handle them. This applies equally to consumers of the Event Stream REST API and consumers of Event Stream Webhook requests. Further details are available here.
Webhooks
Overview
People first can be configured to send event stream data to external systems. This is commonly used to satisfy real time systems integration requirements. Webhooks can be configured for any event type and are digitally signed for security. For details of how to configure and verify webhooks see: Webhook API Integration.
Webhook request payload
When a webhook POST request is issued, the event stream data is included in the http request body. The payload also includes the eventType and the timeOfCreation. A sample webhook request payload is shown below.
Sample webhook request payload for occupancySalaryTimelineChanged
{
"EventData": {
"occupancyId": "763b6741-9435-4af7-8936-a9b30101f38e",
"personalReference": "TT1136",
"jobReference": "TR0001",
"startDate": "2001-01-01",
"endDate": null,
"salaryRevisions": [
{
"startDate": "2001-01-01",
"endDate": null,
"rateOfPay": 10000,
"frequencyCode": "A"
}
]
},
"EventType": "OccupancySalaryTimelineChanged",
"TimeOfCreation": "2020-04-06T08:16:05.034765Z"
}
Events
This section explores each individual event in the event stream. It describes the event schemas and explains what system actions invoke the event.
PersonCreated and PersonNameChanged event
A PersonCreated event will be raised when:
- a person is created in hrm
- a person is onboarded into hrm via recruitment
A PersonNameChanged event will be raised when:
- any property of a person's name is changed in hrm
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReference | string | max-length: 20 |
firstName | string | max-length: 80 |
lastName | string | max-length: 80 |
otherNames | string | max-length: 160 |
knownAs | string | max-length: 80 |
previousLastName | string | max-length: 80 |
titleCode | string | max-length: 40; reference-data |
Example of this event
{
"personId": "",
"personalReference": "",
"firstName": "",
"lastName": "",
"otherNames": "",
"knownAs": "",
"previousLastName": "",
"titleCode": ""
}
PersonDeleted event
A PersonDeleted event will be raised when:
- a person is deleted from hrm
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReference | string | max-length: 20 |
Example of this event
{
"personId": "",
"personalReference": ""
}
PersonAddressCreated and PersonAddressChanged event
A PersonAddressCreated event will be raised when:
- the first address is created in hrm
A PersonAddressChanged event will be raised when:
- any property of a person's address is changed in hrm
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReference | string | max-length: 20 |
addressLine1 | string | max-length: 80 |
addressLine2 | string | max-length: 80 |
addressLine3 | string | max-length: 80 |
addressLine4 | string | max-length: 80 |
addressLine5 | string | max-length: 80 |
addressLine6 | string | max-length: 80 |
countryCode | string | max-length: 40; reference-data |
Example of this event
{
"personId": "",
"personalReference": "",
"addressLine1": "",
"addressLine2": "",
"addressLine3": "",
"addressLine4": "",
"addressLine5": "",
"addressLine6": "",
"countryCode": ""
}
PersonContactDetailCreated and PersonContactDetailChanged event
A PersonContactDetailCreated event will be raised when:
- a person's contact details are edited for a first time in hrm
A PersonContactDetailChanged event will be raised when:
- a person's contact details are updated
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
contactType | string | max-length: 40; reference-data |
contactDetail | string | max-length: 80. Depending on the contactType, field contains an email or phone number. |
internationalDialingCode | string | max-length: 160 |
Example of this event
{
"personId": "",
"contactType": "",
"contactDetail": "",
"internationalDialingCode": ""
}
SocialSecurityNumberChanged event
A SocialSecurityNumberChanged event will be raised when:
- a new social security number is added
- any property relating to an existing social security number is changed
- a social security number is deleted
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReference | string | max-length: 20 |
socialSecurityNumber | string | max-length: 80 |
legislationCode | string | max-length: 40; reference-data |
Example of this event
{
"personId": "",
"personalReference": "",
"socialSecurityNumbers": [{
"socialSecurityNumber": "",
"legislationCode": ""
}
]
}
EmploymentPeriodStartDateChanged event
The payload for this event contains the Person id and reference number of the person whose employment start date has been changed and the revised start date.
An EmploymentPeriodStartDateChanged event will be raised when:
- The Employment start date of an employee is modified
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReferenceNumber | string | max-length: 20 |
employmentStartDate | date | the revised start date of the person's Employment Period. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
employmentPeriodId | guid | the identify of the employment period |
Example of this event
{
"personId": "",
"personalReferenceNumber": "",
"employmentStartDate": ""
"employmentPeriodId": ""
}
SensitiveInformationChanged event
A SensitiveInformationChanged event will be raised when:
- a person's sensitive information is added or changed
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReference | string | max-length: 20 |
dateOfBirth | date | The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
countryOfCitizenshipCode | string | max-length: 40; reference-data |
religionCode | string | max-length: 40; reference-data |
countryOfBirthCode | string | max-length: 40; reference-data |
nationalityCode | string | max-length: 40; reference-data |
genderCode | string | max-length: 40; reference-data |
sexualOrientationCode | string | max-length: 40; reference-data |
maritalStatusCode | string | max-length: 40; reference-data |
selfCertifiedDisabilityDescription | string | max-length: 255 |
legalGenderCode | string | max-length: 40; reference-data |
regionCode | string | max-length: 40; reference-data |
usEthnicOriginCode | string | max-length: 40; reference-data |
singaporeanEthnicOriginCode | string | max-length: 40; reference-data |
ukEthnicOriginCode | string | max-length: 40; reference-data |
veteranStatusCode | string | max-length: 40; reference-data |
Example of this event
{
"personId": "",
"personalReference": "",
"dateOfBirth": "",
"countryOfCitizenshipCode": "",
"religionCode": "",
"countryOfBirthCode": "",
"nationalityCode": "",
"genderCode": "",
"sexualOrientationCode": "",
"maritalStatusCode": "",
"selfCertifiedDisabilityDescription": "",
"regionalSensitiveInformations": [{
"regionCode": "US",
"usEthnicOriginCode": "",
"veteranStatusCode": "",
"legalGenderCode": ""
},
{
"regionCode": "Singapore",
"singaporeanEthnicOriginCode": "",
"legalGenderCode": ""
},
{
"regionCode": "UK",
"ukEthnicOriginCode": "",
"legalGenderCode": ""
}
]
}
EmploymentPeriodCreated, EmploymentPeriodEnded and EmploymentPeriodReinstated event
An EmploymentPeriodCreated event will be raised when:
- an employment period is created in hrm (currently in people first, this automatically happens when a person is created)
An EmploymentPeriodEnded event will be raised when:
- a person is made a leaver (this effectively occurs when and end date is added to an employment period)
An EmploymentPeriodReinstated event will be raised when:
- the action of making a person a leaver action is reverted (this effectively occurs when the end date is removed from an employment period)
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReference | string | max-length: 20 |
startDate | date | The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
employerName | string | 80 |
isExitInterviewCompleted | boolean | n/a |
lastPaymentDate | date | The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
lastWorkingDate | date | The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
reEmployable | string | max-length: 80 |
reEmployableCode | string | max-length: 40; reference-data |
reasonForLeaving | string | max-length: 80 |
reasonForLeavingCode | string | max-length: 40; reference-data |
forwardingAddressType | string | max-length: 80 |
forwardingAddressTypeCode | string | max-length: 40; reference-data |
line1 | string | max-length: 80 |
line2 | string | max-length: 80 |
line3 | string | max-length: 80 |
line4 | string | max-length: 80 |
line5 | string | max-length: 80 |
line6 | string | max-length: 80 |
Example of this event
{
"personId": "",
"personalReference": "",
"startDate": "",
"endDate": "",
"employerName": "",
"isExitInterviewCompleted": "",
"lastPaymentDate": "",
"lastWorkingDate": "",
"reEmployable": "",
"reEmployableCode": "",
"reasonForLeaving": "",
"reasonForLeavingCode": "",
"forwardingAddressType": "",
"forwardingAddressTypeCode": "",
"forwardingAddress": ""{
"line1": "",
"line2": "",
"line3": "",
"line4": "",
"line5": "",
"line6": ""
}
}
JobLeaverCreated and JobLeaverReinstated event
A JobLeaverCreated event will be raised when:
- a user with multiple occupancies leaves one of their jobs
A JobLeaverReinstated event will be raised when:
- the action of making a person a leaver from a job action is reverted
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReferenceNumber | string | max-length: 20 |
jobReferenceNumber | string | max-length: 20 |
occupancyId | guid | n/a |
leaveDate | date | The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
lastWorkingDate | date | The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
lastPaymentDate | date | The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
reasonForLeaving | string | max-length: 80 |
isReEmployable | string | max-length: 80 |
isExitInterviewCompleted | boolean | n/a |
Example of this event
{
"personId": "",
"personalReferenceNumber": "",
"jobReferenceNumber": "",
"occupancyId": "",
"leaveDate": "",
"lastWorkingDate": "",
"lastPaymentDate": "",
"reasonForLeaving": "",
"isReEmployable": "",
"isExitInterviewCompleted": ""
}
OccupancyCreated, OccupancyEnded, OccupancyReinstated and OccupancyDeleted events
The payload for these events contains an array of job titles, showing the changes to job title over time. The array for the jobTitleChanged event will only contain the jobTitles after and including the one that was changed. The reason for this is that changing a job title can have an effect on a subsequent job title revisions, but it cannot affect previous ones.
An OccupancyCreated event will be raised when:
- a person starts a new job (this effectively creates a new occupancy resource)
An OccupancyEnded event will be raised when:
- a person finishes in a job (this effectively occurs when an end date is applied to an existing occupancy)
An OccupancyReinstated event will be raised when:
- the ending of a person in a job is reverted (this effectively occurs when an end date is removed from an existing occupancy)
An OccupancyDeleted event will be raised when:
- a person's association with a job is deleted (this is not the same as ending an occupancy)
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
occupancyId | guid | n/a |
personalReference | string | max-length: 20 |
jobReference | string | max-length: 20 |
startDate | date | the start date of the occupancy. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | the end date of the occupancy. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
name | string | max-length: 80. The job title of the assigned job on the given revision dates |
startDate | date | the start date of the job title revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | the end date of the job title revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
Example of this event
{
"occupancyId": "",
"personalReference": "",
"jobReference": "",
"startDate": "",
"endDate": "",
"jobTitleRevisions": [{
"name": "",
"startDate": ""
"endDate": ""
}
]
}
OccupancyStartDateChanged event
The payload for this event contains the Person id and reference number of the person whose occupancy start date has been changed along with the Occupancy id and the revised start date.
An OccupancyStartDateChanged event will be raised when:
- The Occupancy start date of an employee has been modified
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReferenceNumber | string | max-length: 20 |
occupancyId | guid | the identify of the occupancy |
occupancyStartDate | date | the revised start date of the person's Occupancy. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
Example of this event
{
"personId": "",
"personalReferenceNumber": "",
"occupancyId": ""
"occupancyStartDate": ""
}
ReckonableServiceDateCreated and ReckonableServiceDateChanged event
A ReckonableServiceDateCreated event will be raised when:
- A reckonable service date is added for an employment period that does not already have one
A ReckonableServiceDateChanged event will be raised when:
- A reckonable service date is changed for an employment period
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReferenceNumber | string | max-length: 20 |
employmentPeriodId | guid | n/a |
reckonableServiceDate | date | the revised reckonable service date. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
Example of this event
{
"personId": "",
"personalReferenceNumber": "",
"employmentPeriodId": ""
"reckonableServiceDate": ""
}
ReckonableServiceDateDeleted event
A ReckonableServiceDateDeleted event will be raised when:
- A reckonable service date is deleted for an employment period
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReferenceNumber | string | max-length: 20 |
employmentPeriodId | guid | n/a |
Example of this event
{
"personId": "",
"personalReferenceNumber": "",
"employmentPeriodId": ""
}
OccupancyHoursAndBasisCreated and OccupancyHoursAndBasisChanged events
The payload for these events contains an array of hours and basis revisions, showing the changes to the hours and basis over time. The array will only contain the hours and bases after and including the one that was changed. The reason for this is that changing hours and bases can have an effect on a subsequent hours and basis revisions, but it cannot affect previous ones.
An OccupancyHoursAndBasisCreated event will be raised when:
- a person is assigned to a job
An OccupancyHoursAndBasisChanged event will be raised when:
- the hours and basis for a person is changed (hours and basis can be inherited attributes and therefore changes to the source/inherited values will raise this event)
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
occupancyId | guid | n/a |
personalReference | string | max-length: 20 |
personId | guid | n/a |
jobReference | string | max-length: 20 |
startDate | date | the start date of the occupancy. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | the end date of the occupancy. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
startDate | date | the start date of the hours and basis revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | the end date of the hours and basis revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
contractualHours | decimal | |
fteHours | decimal | |
fteValue | decimal | |
annualWeeksWorked | decimal | |
categoryCode | string | max-length: 40; reference-data |
basisCode | string | max-length: 40; reference-data |
typeCode | string | max-length: 40; reference-data |
employmentIsTermTimeOnly | boolean | n/a |
Example of this event
{
"occupancyId": "",
"personalReference": "",
"jobReference": "",
"startDate": "",
"endDate": "",
"hoursAndBasisRevisions": [{
"startDate": "",
"endDate": "",
"contractualHours": "",
"fteHours": "",
"fteValue": "",
"annualWeeksWorked": "",
"categoryCode": "",
"basisCode": "",
"typeCode": "",
"employmentIsTermTimeOnly": ""
}
]
}
OccupancySalaryTimelineCreated and OccupancySalaryTimelineChanged events
The payload for these events contains an array of salary revisions, showing the changes to the salary over time. The array will only contain the salaries after and including the one that was changed. The reason for this is that changing salary can have an effect on a subsequent salary revisions, but it cannot affect previous ones.
An OccupancySalaryTimelineCreated event will be raised when:
- a person is added to their first job
An OccupancySalaryTimelineChanged event will be raised when:
- the salary for a person is changed (salary can have inherited attributes and therefore changes to the source/inherited values will raise this event)
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
occupancyId | guid | n/a |
personalReference | string | max-length: 20 |
jobReference | string | max-length: 20 |
startDate | date | the start date of the occupancy. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | the end date of the occupancy. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
startDate | date | the start date of the salary revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | the end date of the salary revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
rateOfPay | decimal | |
frequencyCode | string | reference-data |
Example of this event
{
"occupancyId": "",
"personalReference": "",
"jobReference": "",
"startDate": "",
"endDate": "",
"salaryRevisions": [{
"startDate": "",
"endDate": "",
"rateOfPay": "",
"frequencyCode": ""
}
]
}
WorkingPatternCreated and WorkingPatternChanged events
The payload for these events contains an array of working pattern revisions, showing the changes to the working pattern over time. The array will only contain the working patterns after and including the one that was changed. The reason for this is that changing working pattern can have an effect on a subsequent working pattern revisions, but it cannot affect previous ones.
A WorkingPatternCreated event will be raised when:
- a person is added to their first job
A WorkingPatternChanged event will be raised when:
- the working pattern for a person is changed (working pattern can be inherited attributes and therefore changes to the source/inherited values will raise this event)
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
occupancyId | guid | n/a |
personalReference | string | max-length: 20 |
jobReference | string | max-length: 20 |
startDate | date | the start date of the occupancy. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | the end date of the occupancy. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
startDate | date | the start date of the hours and basis revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | the end date of the hours and basis revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
name | string | max-length: 80 |
startDayNumber | integer | n/a |
numberOfDays | integer | n/a |
dayNumber | integer | n/a |
totalMinutes | integer | n/a |
Example of this event
{
"occupancyId": "",
"personalReference": "",
"jobReference": "",
"startDate": "",
"endDate": "",
"workingPatternRevisions": [{
"startDate": "",
"endDate": "",
"name": "",
"startDayNumber": "",
"numberOfDays": [{
"dayNumber": "",
"totalMinutes": ""
}
]
}
]
}
AbsenceLeaveCreated, AbsenceSicknessCreated, and AbsenceOtherCreated events
An AbsenceLeaveCreated, AbsenceSicknessCreated or AbsenceOtherCreated event will be raised when:
- a leave|sickness|other absence is created for a person
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | Unique Person Identifier |
personalReference | string | max-length: 20 |
occupancyId | guid | Unique Occupancy Identifier |
jobReference | string | max-length: 20 |
absenceId | guid | Unique Absence Identifier |
absenceTypeCode | string | max-length: 40; reference-data |
absenceTypeName | string | max-length: 80; reference-data |
absenceCategoryCode | string | max-length: 40; Indicator of category the absence type is allocated to (i.e. Leave, Sickness, Family or Other) |
startDate | date | The start date of the absence in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
startDatePartCode | string | max-length: 40; reference-data |
startDateTotalMinutes | integer | Duration of the start day of the absence (in minutes) [booking in hours only] |
endDate | date | The end date of the absence in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDatePartCode | string | max-length: 40; reference-data |
endDateTotalMinutes | integer | Duration of the end day of the absence (in minutes) [booking in hours only] |
absenceStateCode | string | max-length: 40; reference-data. The approval state of the absence. |
expectedEndDate | date | The expected end date (if open ended absence) in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
sicknessReason | string | max-length: 80; reference-data |
absenceBookedDate | datetime | The date and time the absence was booked in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
lostHours | integer | (Deprecated. Replaced by totals in minutes fields) |
totalExpectedWorkingTimeInMinutes | integer | Sum of the hours worked over period according to their working pattern in minutes |
totalLostTimeInMinutes | integer | Sum of the hours booked as absence over the period in minutes |
Example of this event
{
"personId": "",
"personalReference": "",
"occupancyId": "",
"jobReference": "",
"absenceId": "",
"absenceTypeCode": "",
"absenceTypeName": "",
"absenceCategoryCode": "",
"startDate": "",
"startDatePartCode": "",
"startDateTotalMinutes": "",
"endDate": "",
"endDatePartCode": "",
"endDateTotalMinutes": "",
"absenceStateCode": "",
"expectedEndDate": "",
"sicknessReason": "",
"absenceBookedDate": "",
"lostHours": "",
"totalExpectedWorkingTimeInMinutes": "",
"totalLostTimeInMinutes": ""
}
AbsenceLeaveChanged, AbsenceSicknessChanged and AbsenceOtherChanged events
An AbsenceLeaveChanged, AbsenceSicknessChanged or AbsenceOtherChanged event will be raised when:
- any properties on a leave|sickness|other absence are changed
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | Unique Person Identifier |
personalReference | string | max-length: 20 |
occupancyId | guid | Unique Occupancy Identifier |
jobReference | string | max-length: 20 |
absenceId | guid | Unique Absence Identifier |
absenceTypeCode | string | max-length: 40; reference-data |
absenceTypeName | string | max-length: 80; reference-data |
absenceCategoryCode | string | max-length: 40; Indicator of the category the absence type is allocated to (i.e. Leave, Sickness, Family or Other) |
originalStartDate | date | The start date prior to the change in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
originalStartDatePartCode | string | max-length: 40; reference-data. The start day part code prior to the change. |
originalStartDateTotalMinutes | integer | Duration of the start day of the absence (in minutes) prior to the change [booking in hours only] |
startDate | date | The start date of the absence in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
startDatePartCode | string | max-length: 40; reference-data |
startDateTotalMinutes | integer | Duration of the start day of the absence (in minutes) [booking in hours only] |
originalEndDate | date | The end date prior to the change in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
originalEndDatePartCode | string | max-length: 40; reference-data. The end day part code prior to the change. |
originalEndDateTotalMinutes | integer | Duration of the end day of the absence (in minutes) prior to the change [booking in hours only] |
endDate | date | The end date of the absence is in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDatePartCode | string | max-length: 40; reference-data |
endDateTotalMinutes | integer | Duration of the end day of the absence (in minutes) [booking in hours only] |
absenceStateCode | string | max-length: 40; reference-data. The approval state of the absence. |
previousAbsenceStateCode | string | max-length: 40; reference-data. The approval state prior to the change. |
expectedEndDate | date | The expected end date of the absence (if open ended) in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
sicknessReason | string | max-length: 80; reference-data |
absenceBookedDate | datetime | The date and time the absence was booked in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
lostHours | integer | (Deprecated. Replaced by totals in minutes fields) |
totalExpectedWorkingTimeInMinutes | integer | Sum of the hours worked over period according to their working pattern in minutes |
totalLostTimeInMinutes | integer | Sum of the hours booked as absence over the period in minutes |
Example of this event
{
"personId": "",
"personalReference": "",
"occupancyId": "",
"jobReference": "",
"absenceId": "",
"absenceTypeCode": "",
"absenceTypeName": "",
"absenceCategoryCode": "",
"originalStartDate": "",
"originalStartDatePartCode": "",
"originalStartDateTotalMinutes": "",
"startDate": "",
"startDatePartCode": "",
"startDateTotalMinutes": "",
"originalEndDate": "",
"originalEndDatePartCode": "",
"originalEndDateTotalMinutes": "",
"endDate": "",
"endDatePartCode": "",
"endDateTotalMinutes": "",
"absenceStateCode": "",
"previousAbsenceStateCode": "",
"expectedEndDate": "",
"sicknessReason": "",
"absenceBookedDate": "",
"lostHours": "",
"totalExpectedWorkingTimeInMinutes": "",
"totalLostTimeInMinutes": ""
}
AbsenceLeaveDeleted, AbsenceSicknessDeleted and AbsenceOtherDeleted events
An AbsenceLeaveDeleted, AbsenceSicknessDeleted or AbsenceOtherDeleted event will be raised when:
- a leave|sickness|other absence is deleted
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | Unique Person Identifier |
personalReference | string | max-length: 20 |
occupancyId | guid | Unique Occupancy Identifier |
jobReference | string | max-length: 20 |
absenceId | guid | Unique Absence Identifier |
absenceTypeCode | string | max-length: 40; reference-data |
absenceTypeName | string | max-length: 80; reference-data |
absenceCategoryCode | string | max-length: 40; Indicator of category the absence type is allocated to (i.e. Leave, Sickness, Family or Other) |
startDate | date | The date is in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
startDatePartCode | string | max-length: 40; reference-data |
startDateTotalMinutes | integer | Duration of the start day of the absence (in minutes) [booking in hours only] |
endDate | date | The date is in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDatePartCode | string | max-length: 40; reference-data |
endDateTotalMinutes | integer | Duration of the end day of the absence (in minutes) [booking in hours only] |
expectedEndDate | date | The expected end date of the absence (if open ended) in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
sicknessReason | string | max-length: 80; reference-data |
absenceBookedDate | datetime | The date and time the absence was booked in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
lostHours | integer | (Deprecated. Replaced by totals in minutes fields) |
totalExpectedWorkingTimeInMinutes | integer | Sum of the hours worked over period according to their working pattern in minutes |
totalLostTimeInMinutes | integer | Sum of the hours booked as absence over the period in minutes |
Example of this event
{
"personId": "",
"personalReference": "",
"occupancyId": "",
"jobReference": "",
"absenceId": "",
"absenceTypeCode": "",
"absenceTypeName": "",
"absenceCategoryCode": "",
"startDate": "",
"startDatePartCode": "",
"startDateTotalMinutes": "",
"endDate": "",
"endDatePartCode": "",
"endDateTotalMinutes": "",
"expectedEndDate": "",
"sicknessReason": "",
"absenceBookedDate": "",
"lostHours": "",
"totalExpectedWorkingTimeInMinutes": "",
"totalLostTimeInMinutes": ""
}
AbsenceLeaveRejected, AbsenceSicknessRejected and AbsenceOtherRejected events
An AbsenceLeaveRejected, AbsenceSicknessRejected or AbsenceOtherRejected event will be raised when:
- a leave|sickness|other absence is rejected
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | Unique Person Identifier |
personalReference | string | max-length: 20 |
occupancyId | guid | Unique Occupancy Identifier |
jobReference | string | max-length: 20 |
absenceId | guid | Unique Absence Identifier |
absenceTypeCode | string | max-length: 40; reference-data |
absenceTypeName | string | max-length: 80; reference-data |
absenceCategoryCode | string | max-length: 40; Indicator of category the absence type is allocated to (i.e. Leave, Sickness, Family or Other) |
startDate | date | The start date of the absence in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
startDatePartCode | string | max-length: 40; reference-data |
startDateTotalMinutes | integer | Duration of the start day of the absence (in minutes) [booking in hours only] |
endDate | date | The end date of the absence in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDatePartCode | string | max-length: 40; reference-data |
endDateTotalMinutes | integer | Duration of the end day of the absence (in minutes) [booking in hours only] |
expectedEndDate | date | The expected end date of the absence (if open ended) in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
sicknessReason | string | max-length: 80; reference-data |
absenceBookedDate | datetime | The date and time the absence was booked in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
lostHours | integer | (Deprecated. Replaced by totals in minutes fields) |
totalExpectedWorkingTimeInMinutes | integer | Sum of the hours worked over period according to their working pattern in minutes |
totalLostTimeInMinutes | integer | Sum of the hours booked as absence over the period in minutes |
Example of this event
{
"personId": "",
"personalReference": "",
"occupancyId": "",
"jobReference": "",
"absenceId": "",
"absenceTypeCode": "",
"absenceTypeName": "",
"absenceCategoryCode": "",
"startDate": "",
"startDatePartCode": "",
"startDateTotalMinutes": "",
"endDate": "",
"endDatePartCode": "",
"endDateTotalMinutes": "",
"expectedEndDate": "",
"sicknessReason": "",
"absenceBookedDate": "",
"lostHours": "",
"totalExpectedWorkingTimeInMinutes": "",
"totalLostTimeInMinutes": ""
}
AbsenceLeaveApproved, AbsenceSicknessApproved and AbsenceOtherApproved events
An AbsenceLeaveApproved, AbsenceSicknessApproved or AbsenceOtherApproved event will be raised when:
- a leave|sickness|other absence is approved
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | Unique Person Identifier |
personalReference | string | max-length: 20 |
occupancyId | guid | Unique Occupancy Identifier |
jobReference | string | max-length: 20 |
absenceId | guid | Unique Absence Identifier |
absenceTypeCode | string | max-length: 40; reference-data |
startDate | date | The start date of the absence in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
startDatePartCode | string | max-length: 40; reference-data |
startDateTotalMinutes | integer | Duration of the start day of the absence (in minutes) [booking in hours only] |
endDate | date | The end date of the absence in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDatePartCode | string | max-length: 40; reference-data |
endDateTotalMinutes | integer | Duration of the end day of the absence (in minutes) [booking in hours only] |
expectedEndDate | date | The expected end date of the absence (if open ended) in ISO format in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
sicknessReason | string | max-length: 80; reference-data |
absenceBookedDate | datetime | The date and time the absence was booked in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
lostHours | integer | (Deprecated. Replaced by totals in minutes fields) |
totalExpectedWorkingTimeInMinutes | integer | Sum of the hours worked over period according to their working pattern in minutes |
totalLostTimeInMinutes | integer | Sum of the hours booked as absence over the period in minutes |
Example of this event
{
"personId": "",
"personalReference": "",
"occupancyId": "",
"jobReference": "",
"absenceId": "",
"absenceTypeCode": "",
"absenceTypeName": "",
"absenceCategoryCode": "",
"startDate": "",
"startDatePartCode": "",
"startDateTotalMinutes": "",
"endDate": "",
"endDatePartCode": "",
"endDateTotalMinutes": "",
"expectedEndDate": "",
"sicknessReason": "",
"absenceBookedDate": "",
"lostHours": "",
"totalExpectedWorkingTimeInMinutes": "",
"totalLostTimeInMinutes": ""
}
BankAccountCreated, BankAccountChanged and BankAccountDeleted events
The payload for these events contains an array of bank accounts related to a person.
A BankAccountCreated event will be raised when:
- a person adds a new bank account
A BankAccountChanged event will be raised when:
- the person updates an existing bank account
A BankAccountDeleted event will be raised when:
- the person deletes an existing bank account
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
personId | guid | n/a |
personalReference | string | max-length: 20 |
abaNumber | string | |
accountHolderName | string | |
accountNumber | string | |
accountTypeCode | string | |
bankAccountCountryCode | string | |
bankAddress | string | |
bankName | string | |
bic | string | |
branchName | string | |
clabeNumber | string | |
iban | string | |
isPrimary | boolean | |
percentageSplit | int | |
rollNumber | string | |
routingCode | string | |
sortCode | string |
Example of this event
{
"personId": "",
"personalReference": "",
"abaNumber": "",
"accountHolderName": "",
"accountNumber": "",
"accountTypeCode": "",
"bankAccountCountryCode": "",
"bankAddress": "",
"bankName": "",
"bic": "",
"branchName": "",
"clabeNumber": "",
"iban": "",
"isPrimary": "",
"percentageSplit": "",
"rollNumber": "",
"routingCode": "",
"sortCode": ""
}
CustomCardDataCreated, CustomCardDataChanged and CustomCardDataDeleted events
The payload for these events contains custom card data.
A CustomCardDataCreated event will be raised when:
- a new record is added against a card with integration enabled.
A CustomCardDataChanged event will be raised when:
- an existing record is updated against a card with integration enabled.
A CustomCardDataDeleted event will be raised when:
- a record is deleted against a card with integration enabled.
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
cardId | guid | The ID of the card schema. |
cardName | string | The name of the card schema. |
entityId | guid | The ID of the linked entity. |
entityType | string | The entity type defined in the card schema. For example, it could be employee, occupancy, page... |
dynamic | dynamic | Repeatable, each field name and data type are dynamic, based on the design of the card schema. |
Example of this event
{
"cardId": "00000001-0001-0001-0001-000000000001",
"cardName": "Card Name",
"entityId": "00000002-0002-0002-0002-000000000002",
"entityType": "employee",
"*textField": "Text goes here",
"*checkboxField": true,
"*numberField": 1234
}
*The field names would match the card schema field labels, the example mentions the data type as the field name only to illustrate the dynamic property value.
OccupancySalaryAndHoursTimelineChanged event
The payload for this event contains an array of calculated values based on the 'salary' and the 'hours and basis' revisions, showing the changes over time. The array will only contain the changes after and including the one that was changed. The reason for this is that changes can have an effect on a subsequent revisions, but it cannot affect previous ones.
An OccupancySalaryAndHoursTimelineChanged event will be raised when:
- the salary for a person is changed (salary can have inherited attributes and therefore changes to the source/inherited values will raise this event)
- and/or the hours and basis for a person is changed (again this can have inherited attributes and therefore changes to the source/inherited values will raise this event)
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
occupancyId | guid | n/a |
personId | guid | n/a |
personalReferenceNumber | string | max-length: 20 |
startDate | date | the start date of the salary and/or hours and basis revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
endDate | date | the end date of the salary and/or hours and basis revision. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
proRatedSalary | decimal | |
annualHoursWorked | decimal | |
fteValue | decimal | |
hourlyRate | decimal | |
hourlyRateDaily | decimal | |
frequencyCode | string | reference-data |
currencyCode | string | reference-data |
Example of this event
{
"occupancyId": "",
"personId": "",
"personalReferenceNumber": "",
"salaryRevisions": [{
"startDate": "",
"endDate": "",
"proRatedSalary": "",
"annualHoursWorked": "",
"fteValue": "",
"hourlyRate": "",
"hourlyRateDaily": "",
"frequencyCode": ""
"currencyCode": ""
}
]
}
OpenTimePairCreated event
The payload for this event contains the Time-pair details.
An OpenTimePairCreated event will be raised when:
- a person clocks-in
- an open time-pair is manually created
An OpenTimePairCreated event will only ever contain start time details - the end time details will be null.
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
PersonalReferenceNumber | string | The reference number of the person to whom the time-pair belongs. Max-length: 20 |
PersonFirstname | string | The first name of the person to whom the time-pair belongs. Max-length: 80 |
PersonLastname | string | The last name of the person to whom the time-pair belongs. Max-length: 80 |
TimePairType | string | Standard or Overtime |
StartTime | datetime | The start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
StartTimeZone | string | The starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
StartLongitude | decimal | The starting Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
StartLatitude | decimal | The starting Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
StartAccuracy | decimal | The starting Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
StartTimeEntryType | string | The starting Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
EndTime | datetime | the end date of the Time-Pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
EndTimeZone | string | The end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
EndLongitude | decimal | The end Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
EndLatitude | decimal | The end Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
EndAccuracy | decimal | The end Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
EndTimeEntryType | string | The end Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
Duration | integer | The difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. |
PreviousDuration | integer | The previous difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. Only applies to time-pairs which have been modified. |
PreviousStartTime | datetime | The previous start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousStartTimeZone | string | The previous starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
PreviousEndTime | datetime | The previous end date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousEndTimeZone | string | The previous end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
CurrentApprovalStatus | string | The current approval status of the Time-pair. Values are AwaitingApproval, Approved, Rejected, or Deleted. |
PreviousApprovalStatus | string | The previous approval status of the Time-pair. Values are null, AwaitingApproval, Approved, Rejected, or Deleted. |
WorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
PreviousWorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
OvertimeReason | string | When the time-pair is for overtime, then this is the reason e.g. 'Not Provided' Max-length: 40. |
OvertimeReasonDetails | string | Represents additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
PreviousOvertimeReason | string | When the time-pair is for overtime, then this is the previous reason e.g. 'Not Provided'. Max-length: 40. |
PreviousOvertimeReasonDetails | string | Represents the previous additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
TimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
PreviousTimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
TimeType | string | Time type associated with time-pair. Max-length: 255. |
TimeCategory | string | Standard, Overtime or Special. |
PayslipItemCode | string | Payslip item code associated with time-pair, can be used in payroll to pay employees. Max-length: 255. |
RateOfPay | decimal | Rate of pay's value overriden by manager. |
CurrencyIsoCode | string | Currency which is associated to provided rate of pay. Currency is in ISO format i.e. GBP. |
WorkType | string | Work type field value describes the activity that was undertaken during the work period. Max-length: 255. |
ExternalLocation | string | External location field value describes relevant external location where employees worked during their shift. Max-length: 255. |
WorkReference | string | Field contains relevant work reference for the work they have done during their shift. Max-length: 255. |
Customer | string | Customer field value describes relevant customer or project, which employee was working on. Max-length: 255. |
Example of this event
{
"EventData": {
"PersonalReferenceNumber": "P100",
"PersonFirstname": "Mark",
"PersonLastname": "Hemingway",
"TimePairType": "Standard",
"StartTime": "2022-05-25T12:48:00Z",
"StartTimeZone": "Europe/London",
"StartLongitude": -1.1423692,
"StartLatitude": 52.8842841,
"StartAccuracy": 14.188,
"StartTimeEntryType": "Automatic",
"EndTime": null,
"EndTimeZone": null,
"EndLongitude": null,
"EndLatitude": null,
"EndAccuracy": null,
"EndTimeEntryType": null,
"Duration": null,
"PreviousDuration": null,
"PreviousStartTime": null,
"PreviousStartTimeZone": null,
"PreviousEndTime": null,
"PreviousEndTimeZone": null,
"CurrentApprovalStatus": "AwaitingApproval",
"PreviousApprovalStatus": "",
"WorkingFromHome": false,
"PreviousWorkingFromHome": null,
"OvertimeReason": null,
"OvertimeReasonDetails": "",
"PreviousOvertimeReason": null,
"PreviousOvertimeReasonDetails": null,
"TimeType": "Normal hours",
"TimeCategory": "Standard",
"PayslipItemCode": "PI0021",
"RateOfPay": 15.21,
"CurrencyIsoCode": "GBP",
"WorkType": "Engineering",
"ExternalLocation": "",
"WorkReference": "38959p8ncr498bv",
"Customer": "Project One"
},
"EventType": "OpenTimePairCreated",
"TimeOfCreation": "2022-05-25T12:48:40.0660308Z"
}
ClosedTimePairCreated event
The payload for this event contains the Time-pair details.
A ClosedTimePairCreated event will be raised when:
- a closed time-pair is manually created
A ClosedTimePairCreated event will always contain both the start time details and the end time details.
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
PersonalReferenceNumber | string | The reference number of the person to whom the time-pair belongs. Max-length: 20 |
PersonFirstname | string | The first name of the person to whom the time-pair belongs. Max-length: 80 |
PersonLastname | string | The last name of the person to whom the time-pair belongs. Max-length: 80 |
TimePairType | string | Standard or Overtime |
StartTime | datetime | The start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
StartTimeZone | string | The starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
StartLongitude | decimal | The starting Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
StartLatitude | decimal | The starting Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
StartAccuracy | decimal | The starting Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
StartTimeEntryType | string | The starting Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
EndTime | datetime | the end date of the Time-Pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
EndTimeZone | string | The end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
EndLongitude | decimal | The end Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
EndLatitude | decimal | The end Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
EndAccuracy | decimal | The end Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
EndTimeEntryType | string | The end Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
Duration | integer | The difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. |
PreviousDuration | integer | The previous difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. Only applies to time-pairs which have been modified. |
PreviousStartTime | datetime | The previous start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousStartTimeZone | string | The previous starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
PreviousEndTime | datetime | The previous end date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousEndTimeZone | string | The previous end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
CurrentApprovalStatus | string | The current approval status of the Time-pair. Values are AwaitingApproval, Approved, Rejected, or Deleted. |
PreviousApprovalStatus | string | The previous approval status of the Time-pair. Values are null, AwaitingApproval, Approved, Rejected, or Deleted. |
WorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
PreviousWorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
OvertimeReason | string | When the time-pair is for overtime, then this is the reason e.g. 'Not Provided' Max-length: 40. |
OvertimeReasonDetails | string | Represents additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
PreviousOvertimeReason | string | When the time-pair is for overtime, then this is the previous reason e.g. 'Not Provided'. Max-length: 40. |
PreviousOvertimeReasonDetails | string | Represents the previous additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
TimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
PreviousTimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
TimeType | string | Time type associated with time-pair. Max-length: 255. |
TimeCategory | string | Standard, Overtime or Special. |
PayslipItemCode | string | Payslip item code associated with time-pair, can be used in payroll to pay employees. Max-length: 255. |
RateOfPay | decimal | Rate of pay's value overriden by manager. |
CurrencyIsoCode | string | Currency which is associated to provided rate of pay. Currency is in ISO format i.e. GBP. |
WorkType | string | Work type field value describes the activity that was undertaken during the work period. Max-length: 255. |
ExternalLocation | string | External location field value describes relevant external location where employees worked during their shift. Max-length: 255. |
WorkReference | string | Field contains relevant work reference for the work they have done during their shift. Max-length: 255. |
Customer | string | Customer field value describes relevant customer or project, which employee was working on. Max-length: 255. |
Example of this event
{
"EventData": {
"PersonalReferenceNumber": "P100",
"PersonFirstname": "Mark",
"PersonLastname": "Hemingway",
"TimePairType": "Standard",
"StartTime": "2022-05-25T12:48:00Z",
"StartTimeZone": "Europe/London",
"StartLongitude": -1.1423692,
"StartLatitude": 52.8842841,
"StartAccuracy": 14.188,
"StartTimeEntryType": "Automatic",
"EndTime": "2022-05-25T13:57:00Z",
"EndTimeZone": "Europe/London",
"EndLongitude": -1.1423693,
"EndLatitude": 52.8842857,,
"EndAccuracy": 14.301,
"EndTimeEntryType": "Automatic",
"Duration": 5632,
"PreviousDuration": null,
"PreviousStartTime": null,
"PreviousStartTimeZone": null,
"PreviousEndTime": null,
"PreviousEndTimeZone": null,
"CurrentApprovalStatus": "AwaitingApproval",
"PreviousApprovalStatus": "",
"WorkingFromHome": false,
"PreviousWorkingFromHome": null,
"OvertimeReason": null,
"OvertimeReasonDetails": "",
"PreviousOvertimeReason": null,
"PreviousOvertimeReasonDetails": null,
"TimeType": "Normal hours",
"TimeCategory": "Standard",
"PayslipItemCode": "PI0021",
"RateOfPay": 15.21,
"CurrencyIsoCode": "GBP",
"WorkType": "Engineering",
"ExternalLocation": "",
"WorkReference": "38959p8ncr498bv",
"Customer": "Project One"
},
"EventType": "ClosedTimePairCreated",
"TimeOfCreation": "2022-05-25T12:48:40.0660308Z"
}
TimePairApproved event
The payload for this event contains the details of the approved Time-pair.
A TimePairApproved event will be raised when:
- a closed standard or overtime time-pair is manually approved
- a closed standard time-pair is auto-approved when the system is configured appropriately
A TimePairApproved event will always contain both the start time details and the end time details, as well as the current & previous approval states.
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
PersonalReferenceNumber | string | The reference number of the person to whom the time-pair belongs. Max-length: 20 |
PersonFirstname | string | The first name of the person to whom the time-pair belongs. Max-length: 80 |
PersonLastname | string | The last name of the person to whom the time-pair belongs. Max-length: 80 |
TimePairType | string | Standard or Overtime |
StartTime | datetime | The start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
StartTimeZone | string | The starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
StartLongitude | decimal | The starting Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
StartLatitude | decimal | The starting Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
StartAccuracy | decimal | The starting Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
StartTimeEntryType | string | The starting Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
EndTime | datetime | the end date of the Time-Pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
EndTimeZone | string | The end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
EndLongitude | decimal | The end Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
EndLatitude | decimal | The end Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
EndAccuracy | decimal | The end Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
EndTimeEntryType | string | The end Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
Duration | integer | The difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. |
PreviousDuration | integer | The previous difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. Only applies to time-pairs which have been modified. |
PreviousStartTime | datetime | The previous start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousStartTimeZone | string | The previous starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
PreviousEndTime | datetime | The previous end date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousEndTimeZone | string | The previous end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
CurrentApprovalStatus | string | The current approval status of the Time-pair. Values are AwaitingApproval, Approved, Rejected, or Deleted. |
PreviousApprovalStatus | string | The previous approval status of the Time-pair. Values are null, AwaitingApproval, Approved, Rejected, or Deleted. |
WorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
PreviousWorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
OvertimeReason | string | When the time-pair is for overtime, then this is the reason e.g. 'Not Provided' Max-length: 40. |
OvertimeReasonDetails | string | Represents additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
PreviousOvertimeReason | string | When the time-pair is for overtime, then this is the previous reason e.g. 'Not Provided'. Max-length: 40. |
PreviousOvertimeReasonDetails | string | Represents the previous additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
TimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
PreviousTimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
TimeType | string | Time type associated with time-pair. Max-length: 255. |
TimeCategory | string | Standard, Overtime or Special. |
PayslipItemCode | string | Payslip item code associated with time-pair, can be used in payroll to pay employees. Max-length: 255. |
RateOfPay | decimal | Rate of pay's value overriden by manager. |
CurrencyIsoCode | string | Currency which is associated to provided rate of pay. Currency is in ISO format i.e. GBP. |
WorkType | string | Work type field value describes the activity that was undertaken during the work period. Max-length: 255. |
ExternalLocation | string | External location field value describes relevant external location where employees worked during their shift. Max-length: 255. |
WorkReference | string | Field contains relevant work reference for the work they have done during their shift. Max-length: 255. |
Customer | string | Customer field value describes relevant customer or project, which employee was working on. Max-length: 255. |
Example of this event
{
"EventData": {
"PersonalReferenceNumber": "P100",
"PersonFirstname": "Mark",
"PersonLastname": "Hemingway",
"TimePairType": "Standard",
"StartTime": "2022-05-25T12:48:00Z",
"StartTimeZone": "Europe/London",
"StartLongitude": -1.1423692,
"StartLatitude": 52.8842841,
"StartAccuracy": 14.188,
"StartTimeEntryType": "Automatic",
"EndTime": "2022-05-25T13:57:00Z",
"EndTimeZone": "Europe/London",
"EndLongitude": -1.1423693,
"EndLatitude": 52.8842857,,
"EndAccuracy": 14.301,
"EndTimeEntryType": "Automatic",
"Duration": 3552,
"PreviousDuration": null,
"PreviousStartTime": null,
"PreviousStartTimeZone": null,
"PreviousEndTime": null,
"PreviousEndTimeZone": null,
"CurrentApprovalStatus": "Approved",
"PreviousApprovalStatus": "AwaitingApproval",
"WorkingFromHome": false,
"PreviousWorkingFromHome": null,
"OvertimeReason": null,
"OvertimeReasonDetails": "",
"PreviousOvertimeReason": null,
"PreviousOvertimeReasonDetails": null,
"TimeType": "Normal hours",
"TimeCategory": "Standard",
"PayslipItemCode": "PI0021",
"RateOfPay": 15.21,
"CurrencyIsoCode": "GBP",
"WorkType": "Engineering",
"ExternalLocation": "",
"WorkReference": "38959p8ncr498bv",
"Customer": "Project One"
},
"EventType": "TimePairApproved",
"TimeOfCreation": "2022-05-25T12:48:40.0660308Z"
}
TimePairRejected event
The payload for this event contains the details of the rejected Time-pair.
A TimePairApproved event will be raised when:
- a closed time-pair is manually rejected
A TimePairRejected event will always contain both the start time details and the end time details, as well as the current & previous approval states.
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
PersonalReferenceNumber | string | The reference number of the person to whom the time-pair belongs. Max-length: 20 |
PersonFirstname | string | The first name of the person to whom the time-pair belongs. Max-length: 80 |
PersonLastname | string | The last name of the person to whom the time-pair belongs. Max-length: 80 |
TimePairType | string | Standard or Overtime |
StartTime | datetime | The start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
StartTimeZone | string | The starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
StartLongitude | decimal | The starting Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
StartLatitude | decimal | The starting Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
StartAccuracy | decimal | The starting Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
StartTimeEntryType | string | The starting Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
EndTime | datetime | the end date of the Time-Pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
EndTimeZone | string | The end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
EndLongitude | decimal | The end Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
EndLatitude | decimal | The end Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
EndAccuracy | decimal | The end Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
EndTimeEntryType | string | The end Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
Duration | integer | The difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. |
PreviousDuration | integer | The previous difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. Only applies to time-pairs which have been modified. |
PreviousStartTime | datetime | The previous start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousStartTimeZone | string | The previous starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
PreviousEndTime | datetime | The previous end date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousEndTimeZone | string | The previous end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
CurrentApprovalStatus | string | The current approval status of the Time-pair. Values are AwaitingApproval, Approved, Rejected, or Deleted. |
PreviousApprovalStatus | string | The previous approval status of the Time-pair. Values are null, AwaitingApproval, Approved, Rejected, or Deleted. |
WorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
PreviousWorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
OvertimeReason | string | When the time-pair is for overtime, then this is the reason e.g. 'Not Provided' Max-length: 40. |
OvertimeReasonDetails | string | Represents additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
PreviousOvertimeReason | string | When the time-pair is for overtime, then this is the previous reason e.g. 'Not Provided'. Max-length: 40. |
PreviousOvertimeReasonDetails | string | Represents the previous additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
TimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
PreviousTimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
TimeType | string | Time type associated with time-pair. Max-length: 255. |
TimeCategory | string | Standard, Overtime or Special. |
PayslipItemCode | string | Payslip item code associated with time-pair, can be used in payroll to pay employees. Max-length: 255. |
RateOfPay | decimal | Rate of pay's value overriden by manager. |
CurrencyIsoCode | string | Currency which is associated to provided rate of pay. Currency is in ISO format i.e. GBP. |
WorkType | string | Work type field value describes the activity that was undertaken during the work period. Max-length: 255. |
ExternalLocation | string | External location field value describes relevant external location where employees worked during their shift. Max-length: 255. |
WorkReference | string | Field contains relevant work reference for the work they have done during their shift. Max-length: 255. |
Customer | string | Customer field value describes relevant customer or project, which employee was working on. Max-length: 255. |
Example of this event
{
"EventData": {
"PersonalReferenceNumber": "P100",
"PersonFirstname": "Mark",
"PersonLastname": "Hemingway",
"TimePairType": "Standard",
"StartTime": "2022-05-25T12:48:00Z",
"StartTimeZone": "Europe/London",
"StartLongitude": -1.1423692,
"StartLatitude": 52.8842841,
"StartAccuracy": 14.188,
"StartTimeEntryType": "Automatic",
"EndTime": "2022-05-25T13:57:00Z",
"EndTimeZone": "Europe/London",
"EndLongitude": -1.1423693,
"EndLatitude": 52.8842857,,
"EndAccuracy": 14.301,
"EndTimeEntryType": "Automatic",
"Duration": 1342,
"PreviousDuration": null,
"PreviousStartTime": null,
"PreviousStartTimeZone": null,
"PreviousEndTime": null,
"PreviousEndTimeZone": null,
"CurrentApprovalStatus": "Rejected",
"PreviousApprovalStatus": "AwaitingApproval",
"WorkingFromHome": false,
"PreviousWorkingFromHome": null,
"OvertimeReason": null,
"OvertimeReasonDetails": "",
"PreviousOvertimeReason": null,
"PreviousOvertimeReasonDetails": null,
"TimeType": "Normal hours",
"TimeCategory": "Standard",
"PayslipItemCode": "PI0021",
"RateOfPay": 15.21,
"CurrencyIsoCode": "GBP",
"WorkType": "Engineering",
"ExternalLocation": "",
"WorkReference": "38959p8ncr498bv",
"Customer": "Project One"
},
"EventType": "TimePairRejected",
"TimeOfCreation": "2022-05-25T12:48:40.0660308Z"
}
TimePairChanged event
The payload for this event contains the details of the changed Time-pair, and details of the previous values.
A TimePairChanged event will be raised when:
- an open or closed time-pair is manually edited.
- an open time-pair is clocked-out.
A TimePairChanged event will always contain the start time details, but will only contain the end time details if it is a closed time-pair.
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
PersonalReferenceNumber | string | The reference number of the person to whom the time-pair belongs. Max-length: 20 |
PersonFirstname | string | The first name of the person to whom the time-pair belongs. Max-length: 80 |
PersonLastname | string | The last name of the person to whom the time-pair belongs. Max-length: 80 |
TimePairType | string | Standard or Overtime |
StartTime | datetime | The start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
StartTimeZone | string | The starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
StartLongitude | decimal | The starting Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
StartLatitude | decimal | The starting Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
StartAccuracy | decimal | The starting Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
StartTimeEntryType | string | The starting Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
EndTime | datetime | the end date of the Time-Pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
EndTimeZone | string | The end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
EndLongitude | decimal | The end Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
EndLatitude | decimal | The end Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
EndAccuracy | decimal | The end Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
EndTimeEntryType | string | The end Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
Duration | integer | The difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. |
PreviousDuration | integer | The previous difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. Only applies to time-pairs which have been modified. |
PreviousStartTime | datetime | The previous start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousStartTimeZone | string | The previous starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
PreviousEndTime | datetime | The previous end date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousEndTimeZone | string | The previous end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
CurrentApprovalStatus | string | The current approval status of the Time-pair. Values are AwaitingApproval, Approved, Rejected, or Deleted. |
PreviousApprovalStatus | string | The previous approval status of the Time-pair. Values are null, AwaitingApproval, Approved, Rejected, or Deleted. |
WorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
PreviousWorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
OvertimeReason | string | When the time-pair is for overtime, then this is the reason e.g. 'Not Provided' Max-length: 40. |
OvertimeReasonDetails | string | Represents additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
PreviousOvertimeReason | string | When the time-pair is for overtime, then this is the previous reason e.g. 'Not Provided'. Max-length: 40. |
PreviousOvertimeReasonDetails | string | Represents the previous additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
TimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
PreviousTimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
TimeType | string | Time type associated with time-pair. Max-length: 255. |
TimeCategory | string | Standard, Overtime or Special. |
PayslipItemCode | string | Payslip item code associated with time-pair, can be used in payroll to pay employees. Max-length: 255. |
RateOfPay | decimal | Rate of pay's value overriden by manager. |
CurrencyIsoCode | string | Currency which is associated to provided rate of pay. Currency is in ISO format i.e. GBP. |
WorkType | string | Work type field value describes the activity that was undertaken during the work period. Max-length: 255. |
ExternalLocation | string | External location field value describes relevant external location where employees worked during their shift. Max-length: 255. |
WorkReference | string | Field contains relevant work reference for the work they have done during their shift. Max-length: 255. |
Customer | string | Customer field value describes relevant customer or project, which employee was working on. Max-length: 255. |
Example of this event
{
"EventData": {
"PersonalReferenceNumber": "P100",
"PersonFirstname": "Mark",
"PersonLastname": "Hemingway",
"TimePairType": "Standard",
"StartTime": "2022-05-25T12:41:00Z",
"StartTimeZone": "Europe/London",
"StartLongitude": -1.14239,
"StartLatitude": 52.884293,
"StartAccuracy": 17.13,
"StartTimeEntryType": "Automatic",
"EndTime": "2022-05-25T12:41:00Z",
"EndTimeZone": "Europe/London",
"EndLongitude": -1.1423902,
"EndLatitude": 52.8842929,
"EndAccuracy": 17.127,
"EndTimeEntryType": "Automatic",
"Duration": 0,
"PreviousDuration": null,
"PreviousStartTime": "2022-05-25T12:41:00Z",
"PreviousStartTimeZone": "Europe/London",
"PreviousEndTime": "",
"PreviousEndTimeZone": null,
"CurrentApprovalStatus": "AwaitingApproval",
"PreviousApprovalStatus": "",
"WorkingFromHome": false,
"PreviousWorkingFromHome": false,
"OvertimeReason": null,
"OvertimeReasonDetails": "",
"PreviousOvertimeReason": null,
"PreviousOvertimeReasonDetails": "",
"TimeType": "Normal hours",
"TimeCategory": "Standard",
"PayslipItemCode": "PI0021",
"RateOfPay": 15.21,
"CurrencyIsoCode": "GBP",
"WorkType": "Engineering",
"ExternalLocation": "",
"WorkReference": "38959p8ncr498bv",
"Customer": "Project One"
},
"EventType": "TimePairChanged",
"TimeOfCreation": "2022-05-25T12:41:46.6038592Z"
}
TimePairDeleted event
The payload for this event contains the details of the deleted Time-pair.
A TimePairDeleted event will be raised when:
- an open or closed time-pair is manually deleted.
A TimePairDeleted event will always contain the start time details, but will only contain the end time details if it is a closed time-pair.
Field definitions for this event
Field Name | Data Type | Additional information |
---|---|---|
PersonalReferenceNumber | string | The reference number of the person to whom the time-pair belongs. Max-length: 20 |
PersonFirstname | string | The first name of the person to whom the time-pair belongs. Max-length: 80 |
PersonLastname | string | The last name of the person to whom the time-pair belongs. Max-length: 80 |
TimePairType | string | Standard or Overtime |
StartTime | datetime | The start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
StartTimeZone | string | The starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
StartLongitude | decimal | The starting Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
StartLatitude | decimal | The starting Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
StartAccuracy | decimal | The starting Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
StartTimeEntryType | string | The starting Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
EndTime | datetime | the end date of the Time-Pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
EndTimeZone | string | The end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
EndLongitude | decimal | The end Geolocation Longitude of the Time-pair. The value is in decimal degrees format and ranges from -180 to 180. For example, Washington DC has a longitude -77.0364. |
EndLatitude | decimal | The end Geolocation Latitude of the Time-pair. The value is in decimal degrees format and ranges from -90 to 90. For example, Washington DC has a latitude 38.8951. |
EndAccuracy | decimal | The end Geolocation Accuracy of the Time-pair. The value is in decimal format and represents the radius of a circle around the longitude and latitude co-ordinates. The location of the clock-in could be anywhere within that circle. |
EndTimeEntryType | string | The end Time Entry Type of the Time-pair. The value can only be Automatic or Manual. Automatic implies entered by clicking on a button or some other automatic process, whereas Manual means the time-pair was entered by manually editing values. |
Duration | integer | The difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. |
PreviousDuration | integer | The previous difference in seconds between the time-pair's StartTime and the EndTime. Will always be a positive non-zero whole number. Only applies to time-pairs which have been modified. |
PreviousStartTime | datetime | The previous start date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousStartTimeZone | string | The previous starting Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
PreviousEndTime | datetime | The previous end date of the Time-pair. The dateTime is in ISO format and should be in coordinated universal time (UTC) (e.g. 2019-05-02T15:17:00Z) |
PreviousEndTimeZone | string | The previous end Time Zone of the Time-pair. The Time Zone is in IANA format i.e. continent or ocean followed by the name of the largest city within the region e.g. Pacific/Honolulu. |
CurrentApprovalStatus | string | The current approval status of the Time-pair. Values are AwaitingApproval, Approved, Rejected, or Deleted. |
PreviousApprovalStatus | string | The previous approval status of the Time-pair. Values are null, AwaitingApproval, Approved, Rejected, or Deleted. |
WorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
PreviousWorkingFromHome | boolean | Will be true if the time-pair represent time spent working at home, or at some other location away from the normal place of work. False otherwise. |
OvertimeReason | string | When the time-pair is for overtime, then this is the reason e.g. 'Not Provided' Max-length: 40. |
OvertimeReasonDetails | string | Represents additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
PreviousOvertimeReason | string | When the time-pair is for overtime, then this is the previous reason e.g. 'Not Provided'. Max-length: 40. |
PreviousOvertimeReasonDetails | string | Represents the previous additional information for why the overtime was worked, e.g. "Behind schedule". Max-length: 40. |
TimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
PreviousTimeOffInLieu | boolean | Will be true if the time-pair is associated with Time Off In Lieu. False otherwise. |
TimeType | string | Time type associated with time-pair. Max-length: 255. |
TimeCategory | string | Standard, Overtime or Special. |
PayslipItemCode | string | Payslip item code associated with time-pair, can be used in payroll to pay employees. Max-length: 255. |
RateOfPay | decimal | Rate of pay's value overriden by manager. |
CurrencyIsoCode | string | Currency which is associated to provided rate of pay. Currency is in ISO format i.e. GBP. |
WorkType | string | Work type field value describes the activity that was undertaken during the work period. Max-length: 255. |
ExternalLocation | string | External location field value describes relevant external location where employees worked during their shift. Max-length: 255. |
WorkReference | string | Field contains relevant work reference for the work they have done during their shift. Max-length: 255. |
Customer | string | Customer field value describes relevant customer or project, which employee was working on. Max-length: 255. |
Example of this event
{
"EventData": {
"PersonalReferenceNumber": "P100",
"PersonFirstname": "Mark",
"PersonLastname": "Hemingway",
"TimePairType": "Standard",
"StartTime": "2022-05-25T12:48:00Z",
"StartTimeZone": "Europe/London",
"StartLongitude": -1.1423692,
"StartLatitude": 52.8842841,
"StartAccuracy": 14.188,
"StartTimeEntryType": "Automatic",
"EndTime": null,
"EndTimeZone": null,
"EndLongitude": null,
"EndLatitude": null,
"EndAccuracy": null,
"EndTimeEntryType": null,
"Duration": null,
"PreviousDuration": null,
"PreviousStartTime": null,
"PreviousStartTimeZone": null,
"PreviousEndTime": null,
"PreviousEndTimeZone": null,
"CurrentApprovalStatus": "Deleted",
"PreviousApprovalStatus": "AwaitingApproval",
"WorkingFromHome": false,
"PreviousWorkingFromHome": null,
"OvertimeReason": null,
"OvertimeReasonDetails": "",
"PreviousOvertimeReason": null,
"PreviousOvertimeReasonDetails": null,
"TimeType": "Normal hours",
"TimeCategory": "Standard",
"PayslipItemCode": "PI0021",
"RateOfPay": 15.21,
"CurrencyIsoCode": "GBP",
"WorkType": "Engineering",
"ExternalLocation": "",
"WorkReference": "38959p8ncr498bv",
"Customer": "Project One"
},
"EventType": "TimePairDeleted",
"TimeOfCreation": "2022-05-25T12:48:40.0660308Z"
}