Introduction
The v2 API will be shut down on March 31, 2026, and will no longer respond after this date.
- suffers from significant performance issues, that also affect other API endpoints;
- relies on older technology, that may suffer from security vulnerabilities.
- offers faster response times;
- gives you additional features (pagination, sorting);
- shares the same authentication system than v2.
/api/leaves API endpoint in your integration, then you are affected by this and
must migrate to /api/v3/leaves before 2026-03-31. Otherwise, you are free to skip this.
Changes
Routes
| V2 | V3 |
|---|---|
/api/leaves | /api/v3/leaves |
Query parameters
| api v2 | api v3 | Description |
|---|---|---|
owner.id | leavePeriod.ownerId | Filter leaves by the employee ID they belong to. |
Response
In V2, all responses are a JSON object with adata property which is:
- a JSON object for a response containing a singular resource;
- a JSON array for a response containing a collection of resources.
data property which is always a JSON object. For collections,
it contains an items property, which is a JSON aray which contains the representations of resources in the collection.
Fields
Some of the fields were renamed, moved, removed and/or changed type.| V2 | V3 Equivalent | Description |
|---|---|---|
id: string | id: string | ID generation pattern changed-see below. |
status: string<enum> | status: string<enum> | Represents the approval status of the leave. The enum was changed-see below. |
owner.id: integer | leavePeriod.ownerId: integer | ID of the employee this leave belongs to. The owner is now a property of the leavePeriod. |
owner.name: string | leavePeriod.owner.name: string | Name of the employee this leave belongs to. |
owner.mail: string<email> | N/A | No longer available for security reasons*. |
owner.login: string | N/A | No longer available for security reasons*. |
owner.matricule: string | N/A | No longer available for security reasons*. |
name: string | leaveAccount.name: string | In v2, the name was equal to the name of the leave account. |
duration: integer | duration: string<time> | Duration of the leave, in minutes in v2 (e.g. 720), as a time in v3 (e.g. "12:00:00"). |
accountCode: string | leaveAccount.id: integer | Unique identifier of the leave account. |
accountLabel: string | leaveAccount.name: string | Name of the leave account (e.g. “Vacations”, “Sickness” …) |
| N/A | isActive | Whether the leave was deleted. A deleted leave used to completely disappear in v2, but it can still be retrieved in v3. |
leaveScope: string = ‘AM’ | ‘PM’ | isAM: boolean | Whether the leave belong to the morning or the afternoon. |
About Leave ID
V2 ABNF Syntax for Leave ID
V3 ABNF Syntax for Leave ID
About Leave Status
V2 Leave Status Enum
V3 Leave Status Enum