Webhooks
Subscribes to change events for the hours to validate requests 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
POST
https://<tenant>.myprotime.eu/connector/protimeapi/api/v1/webhooks
Headers: Authorization: Bearer {token}, User-Agent: {agent}
Scope: connector-protimeapi-webhooks.write and connector-protimeapi-hours-to-validate.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 (hours-to-validate-requests). |
Event properties
| Field | Type | Required | Writable | Description |
|---|---|---|---|---|
changeVersion |
string | — | Read-only | Property to indicate the order of changes. |
id |
string | — | Read-only | Unique identifier (GUID) for the hours to validate request. |
person.id |
integer | — | Read-only | Internal ID of the person the request applies to. |
date |
string | — | Read-only | Date the requested hours are registered on (YYYY-MM-DD). |
durations |
array | — | Read-only | The durations covered by the request. |
durations[].id |
integer | — | Read-only | Identifier of the requested duration. |
durations[].startTimeInMinutes |
integer | — | Read-only | Start time of the requested duration (minutes since midnight). Empty when the duration is not bound to a start time. |
durations[].endTimeInMinutes |
integer | — | Read-only | End time of the requested duration (minutes since midnight). Empty when the duration is not bound to an end time. |
durations[].durationInMinutes |
integer | — | Read-only | Requested duration, in minutes. |
durations[].originalDurationInMinutes |
integer | — | Read-only | Duration before the request was raised, in minutes. |
status |
string | — | Read-only | Status of the request. Possible values: Uninitialized, Requested, Deleted, Approved, Refused. |
requested.person.id |
integer | — | Read-only | Internal ID of the person who raised the request. |
requested.requestedAt |
string | — | Read-only | Date and time the request was raised (ISO 8601 format). |
isStale |
boolean | — | Read-only | Indicates whether the request has become stale. |
conversation |
array | — | Read-only | Comments exchanged on the request. Empty when no comments were made. |
conversation[].person.id |
integer | — | Read-only | Internal ID of the person who made the comment. |
conversation[].commentedAt |
string | — | Read-only | Date and time the comment was made (ISO 8601 format). |
conversation[].comment |
string | — | Read-only | Text of the comment. |
External references
The endpoint supports predefined and custom external references. See the external references page for details.
The following collections are supported for this endpoint:
| Collection | Predefined | Custom |
|---|---|---|
people |
@badge-number, @employee-number |
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
Creating a webhook for hours to validate requests
POST
https://<tenant>.myprotime.eu/connector/protimeapi/api/v1/webhooks
{
"destinationUrl": "https://www.fictional-customer.com/protime/hours-to-validate-requests",
"collectionName": "hours-to-validate-requests"
}