Webhooks
Subscribes to change events for the clockings collection.
Caution
Read the Webhooks page. There is important information on required implementation!
Tip
Check the Swagger page for more technical information on the endpoints.
Endpoint details
https://<tenant>.myprotime.eu/connector/protimeapi/api/v1/webhooks
Headers: Authorization: Bearer {token}, User-Agent: {agent}
Scope: connector-protimeapi-webhooks.write and connector-protimeapi-clockings.read
Body properties
| Field | Type | Required | Writable | Description |
|---|---|---|---|---|
destinationUrl |
string | Yes | Yes | The URL where webhook notifications will be sent. |
collectionName |
string | Yes | Yes | The name of the collection to subscribe to (clockings). |
Event properties
| Field | Type | Required | Writable | Description |
|---|---|---|---|---|
changeVersion |
string | — | Read-only | Property to indicate the order of changes. |
id |
integer | — | Read-only | Unique identifier for the clocking. |
calculatedTimeOfDayInMinutes |
integer | — | Read-only | The time of day in minutes after any corrections or calculations. |
isGenerated |
boolean | — | Read-only | Indicates if the clocking was generated by the system. |
originalTimeOfDayInMinutes |
integer | — | Read-only | Original time of the clocking as registered by the terminal or input source. Only present if the clocking has been edited. |
status |
string | — | Read-only | Status of the clocking (Unknown, Active, Deleted). |
person.id |
integer | — | Read-only | Internal ID of the person who performed the clocking. |
date |
string | — | Read-only | Date of the clocking (YYYY-MM-DD). |
timeOfDayInMinutes |
integer | — | Read-only | Minutes since midnight (-1440 and 2880) representing the time of the clocking on the specified date. |
terminal.id |
integer | — | Read-only | Internal ID of the terminal on which the clocking occurred. |
geolocation.longitude |
number | — | Read-only | Longitude coordinate where the clocking was registered. |
geolocation.latitude |
number | — | Read-only | Latitude coordinate where the clocking was registered. |
reason.id |
integer | — | Read-only | Internal ID of the reason for the clocking (only present if kind is Reason). |
isOpen |
boolean | — | Read-only | Indicates if the reason clocking is open (only present if kind is Reason). |
activityLevels |
array | — | Read-only | Array of activity levels, each with a level and an activityDefinition.id (only present if kind is Activity). |
kind |
string | — | Read-only | Type of clocking (InOut, Reason, Activity, ActivityEnd, or NotSupported for a clocking type that the API does not expose). |
Important
A soft-deleted clocking is sent as an event with "changeType": "InsertOrUpdate" and "status": "Deleted", not with "changeType": "Delete". Check both fields to detect every deletion. See Soft-deleted clockings.
External references
The endpoint supports predefined and custom external references. See the external references page for details and the predefined options list.
The following collections are supported for this endpoint:
| Collection | Predefined | Custom |
|---|---|---|
people |
@badge-number, @employee-number |
Supported |
terminals |
@external-code |
Supported |
activity-definitions |
@data-entry-code, @external-reference |
Supported |
absence-definitions |
@absence-code |
Supported |
Error responses
| Status | Condition |
|---|---|
400 |
Invalid destination URL or unknown collection name |
401 |
Missing or invalid access token, or insufficient scope |
Success response
201 Created with webhookKey and validUntil in the response body.
Examples
A webhook for clockings
Example for creating a webhook for clockings:
https://<tenant>.myprotime.eu/connector/protimeapi/api/v1/webhooks
{
"destinationUrl": "https://www.fictional-customer.com/protime/clockings",
"collectionName": "clockings"
}