Leave API
30 endpoints, generated from packages/core/openapi/v1.snapshot.json (OpenAPI 3.1.0, contract version 1.0). Conventions for lists, errors, money and authentication are on the API conventions page.
POST/api/v1/leave/adjustments
Adjust an employee's balance (positive or negative, with a reason; audited)
Request body
application/json, object, required
employeeIdstring (uuid)requiredleaveTypeIdstring (uuid)requiredyearintegerrequiredmin 2000 · max 2100
amountnumberrequiredchildIdstring (uuid) or nullreasonstringrequiredmin length 3 · max length 300
Responses
201 Success. object
idstring (uuid)requiredquantitynumberrequiredunitenumrequiredone of "days", "hours"
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required,self_change_requires_approval - 404
not_found
GET/api/v1/leave/balances
Leave balances for an employee and year (default: your own, this year)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
employeeId | query | string (uuid) | no |
year | query | integer | no |
Responses
200 Success. object
itemsarray of objectrequiredtypeIdstring (uuid)requiredcodestringrequirednamestringrequiredstatutoryCodestring | nullrequiredunitenumrequiredone of "days", "hours"
trackedbooleanrequiredeligiblebooleanrequiredeligibleFromstring | nullrequiredyearnumberrequiredchildIdstring (uuid) or nullrequiredentitlementnumberrequiredcarriedForwardnumberrequiredexpirednumberrequiredadjustmentsnumberrequiredtakennumberrequiredpendingnumberrequiredavailablenumber | nullrequiredcarryExpiresOnstring | nullrequiredexplanationarray of stringrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
GET/api/v1/leave/calendar
Who is on leave (types shown only where you may see them)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
from | query | string | yes |
to | query | string | yes |
view | query | enum | no |
Responses
200 Success. object
fromstringrequiredtostringrequiredholidaysarray of objectrequireddatestringrequirednamestringrequired
peoplearray of objectrequiredemployeeIdstring (uuid)requirednamestringrequiredselfbooleanrequiredentriesarray of objectrequireddatestringrequiredsessionenumrequiredone of "full", "am", "pm"
statusenumrequiredone of "approved", "pending"
labelstringrequiredtypeCodestring | nullrequiredrequestIdstring (uuid) or nullrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
GET/api/v1/leave/children
An employee's children (for parental and childcare leave)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
employeeId | query | string (uuid) | no |
Responses
200 Success. object
itemsarray of objectrequiredidstring (uuid)requiredemployeeIdstring (uuid)requirednamestringrequiredbirthDatestring | nullrequiredexpectedDeliveryDatestring | nullrequiredisCitizenbooleanrequiredbirthOrdernumberrequiredstillbornbooleanrequiredadoptionIntentDatestring | nullrequiredmarriedToMotherboolean | nullrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required - 404
not_found
POST/api/v1/leave/children
Add a child (yours, or an employee's as owner or HR admin)
Request body
application/json, object, required
employeeIdstring (uuid)namestringrequiredmin length 1 · max length 80
birthDatestring | nullexpectedDeliveryDatestring | nullisCitizenbooleanrequiredbirthOrderintegerrequiredmin 1 · max 20
stillbornbooleandefault false
adoptionIntentDatestring | nullmarriedToMotherboolean | null
Responses
201 Success. object
idstring (uuid)requiredemployeeIdstring (uuid)requirednamestringrequiredbirthDatestring | nullrequiredexpectedDeliveryDatestring | nullrequiredisCitizenbooleanrequiredbirthOrdernumberrequiredstillbornbooleanrequiredadoptionIntentDatestring | nullrequiredmarriedToMotherboolean | nullrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required
PUT/api/v1/leave/children/{id}
Update a child's details
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Request body
application/json, object, required
employeeIdstring (uuid)namestringrequiredmin length 1 · max length 80
birthDatestring | nullexpectedDeliveryDatestring | nullisCitizenbooleanrequiredbirthOrderintegerrequiredmin 1 · max 20
stillbornbooleandefault false
adoptionIntentDatestring | nullmarriedToMotherboolean | null
Responses
200 Success. object
idstring (uuid)requiredemployeeIdstring (uuid)requirednamestringrequiredbirthDatestring | nullrequiredexpectedDeliveryDatestring | nullrequiredisCitizenbooleanrequiredbirthOrdernumberrequiredstillbornbooleanrequiredadoptionIntentDatestring | nullrequiredmarriedToMotherboolean | nullrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found
GET/api/v1/leave/encashments
List your encashment requests, or an employee's as HR
Parameters
| Name | In | Type | Required |
|---|---|---|---|
employeeId | query | string (uuid) | no |
Responses
200 Success. object
itemsarray of objectrequiredidstring (uuid)requiredemployeeIdstring (uuid)requiredleaveTypeIdstring (uuid)requiredleaveYearnumberrequiredunitenumrequiredone of "days", "hours"
quantitynumberrequiredamountCentsintegerrequiredmin -9007199254740991
rateTextstringrequiredrateDatestringrequiredstatusenumrequiredone of "pending", "approved", "rejected", "withdrawn", "reserved", "paid"
approvalRequestIdstring (uuid) or nullrequiredpayrollRunIdstring (uuid) or nullrequired
candidatesarray of objectrequiredledgerEntryIdstring (uuid)requiredleaveTypeIdstring (uuid)requiredleaveYearnumberrequiredunitenumrequiredone of "days", "hours"
quantitynumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
POST/api/v1/leave/encashments
Request leave encashment for approval under the leave policy
Request body
application/json, object, required
employeeIdstring (uuid)leaveTypeIdstring (uuid)requireddaysnumberrequiredmax 365
ledgerEntryIdstring (uuid)workingDaysPerWeeknumbermin 0.5 · max 7
Responses
201 Success. object
idstring (uuid)requiredemployeeIdstring (uuid)requiredleaveTypeIdstring (uuid)requiredleaveYearnumberrequiredunitenumrequiredone of "days", "hours"
quantitynumberrequiredamountCentsintegerrequiredmin -9007199254740991
rateTextstringrequiredrateDatestringrequiredstatusenumrequiredone of "pending", "approved", "rejected", "withdrawn", "reserved", "paid"
approvalRequestIdstring (uuid) or nullrequiredpayrollRunIdstring (uuid) or nullrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 409
conflict - 422
insufficient_balance
POST/api/v1/leave/encashments/{id}/withdraw
Withdraw pending encashment and release its leave balance
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Responses
204 No content.
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 409
conflict
GET/api/v1/leave/holidays
Singapore public holidays and the organisation's extra holidays for a year
Parameters
| Name | In | Type | Required |
|---|---|---|---|
year | query | integer | no |
Responses
200 Success. object
itemsarray of objectrequiredidstring (uuid) or nullrequireddatestringrequirednamestringrequiredsourceenumrequiredone of "gazetted", "organisation"
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
mfa_enrolment_required
POST/api/v1/leave/holidays
Add an extra public holiday (such as Polling Day)
Request body
application/json, object, required
datestringrequirednamestringrequiredmin length 1 · max length 80
Responses
201 Success. object
idstring (uuid) or nullrequireddatestringrequirednamestringrequiredsourceenumrequiredone of "gazetted", "organisation"
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 409
conflict
DELETE/api/v1/leave/holidays/{id}
Remove an extra holiday
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Responses
204 No content.
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found
GET/api/v1/leave/payroll-input
Approved unpaid leave per employee and date for a pay period (payroll pro-ration)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
periodStart | query | string | yes |
periodEnd | query | string | yes |
Responses
200 Success. object
itemsarray of objectrequiredsourceIdstring (uuid)requiredrequestIdstring (uuid)requiredemployeeIdstring (uuid)requireddatestringrequireddaysnumberrequiredleaveTypeCodestringrequiredleaveTypeNamestringrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
GET/api/v1/leave/policies
Leave types with their policies (Settings → Leave policies)
Responses
200 Success. object
itemsarray of objectrequiredidstring (uuid)requiredcodestringrequirednamestringrequiredstatutoryCodestring | nullrequiredpaidbooleanrequiredhalfDaysbooleanrequiredattachmentenumrequiredone of "none", "optional", "required"
attachmentLabelstring | nullrequiredsensitivebooleanrequiredneedsChildbooleanrequiredperChildbooleanrequiredunlimitedbooleanrequiredarchivedbooleanrequiredencashablebooleanrequiredemployeeEncashmentRequestsbooleanrequiredkindenumrequiredone of "statutory", "company"
dayCountingenumrequiredone of "working_days", "working_days_including_holidays"
policyobjectrequiredentitlementobject | object | object | objectrequiredminServiceMonthsintegerrequiredmin 0 · max 24
proratebooleanrequiredaccrualenumrequiredone of "upfront", "monthly"
carryForwardobject or nullrequiredmaxDaysnumber or nullrequiredmin 0 · max 365
expiresAfterMonthsinteger or nullrequiredmin 1 · max 36
encashablebooleanrequiredemployeeEncashmentRequestsboolean
sortOrdernumberrequired
- 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
POST/api/v1/leave/policies
Add a company leave type (birthday, marriage, volunteering…)
Request body
application/json, object, required
codestringrequirednamestringrequiredmin length 1 · max length 60
paidbooleandefault true
halfDaysbooleandefault true
attachmentenumone of "none", "optional", "required" · default "none"
attachmentLabelstring or nullmax length 80
sensitivebooleandefault false
policyobjectrequiredentitlementobject | object | object | objectrequiredminServiceMonthsintegerrequiredmin 0 · max 24
proratebooleanrequiredaccrualenumrequiredone of "upfront", "monthly"
carryForwardobject or nullrequiredmaxDaysnumber or nullrequiredmin 0 · max 365
expiresAfterMonthsinteger or nullrequiredmin 1 · max 36
encashablebooleanrequiredemployeeEncashmentRequestsboolean
Responses
201 Success. object
idstring (uuid)requiredcodestringrequirednamestringrequiredstatutoryCodestring | nullrequiredpaidbooleanrequiredhalfDaysbooleanrequiredattachmentenumrequiredone of "none", "optional", "required"
attachmentLabelstring | nullrequiredsensitivebooleanrequiredneedsChildbooleanrequiredperChildbooleanrequiredunlimitedbooleanrequiredarchivedbooleanrequiredencashablebooleanrequiredemployeeEncashmentRequestsbooleanrequiredkindenumrequiredone of "statutory", "company"
dayCountingenumrequiredone of "working_days", "working_days_including_holidays"
policyobjectrequiredentitlementobject | object | object | objectrequiredminServiceMonthsintegerrequiredmin 0 · max 24
proratebooleanrequiredaccrualenumrequiredone of "upfront", "monthly"
carryForwardobject or nullrequiredmaxDaysnumber or nullrequiredmin 0 · max 365
expiresAfterMonthsinteger or nullrequiredmin 1 · max 36
encashablebooleanrequiredemployeeEncashmentRequestsboolean
sortOrdernumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 409
conflict
PATCH/api/v1/leave/policies/{id}
Update a leave type's policy (never below the statutory minimum)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Request body
application/json, object, required
namestringmin length 1 · max length 60
halfDaysbooleanattachmentenumone of "none", "optional", "required"
attachmentLabelstring or nullmax length 80
sensitivebooleanpaidbooleanpolicyobjectentitlementobject | object | object | objectrequiredminServiceMonthsintegerrequiredmin 0 · max 24
proratebooleanrequiredaccrualenumrequiredone of "upfront", "monthly"
carryForwardobject or nullrequiredmaxDaysnumber or nullrequiredmin 0 · max 365
expiresAfterMonthsinteger or nullrequiredmin 1 · max 36
encashablebooleanrequiredemployeeEncashmentRequestsboolean
Responses
200 Success. object
idstring (uuid)requiredcodestringrequirednamestringrequiredstatutoryCodestring | nullrequiredpaidbooleanrequiredhalfDaysbooleanrequiredattachmentenumrequiredone of "none", "optional", "required"
attachmentLabelstring | nullrequiredsensitivebooleanrequiredneedsChildbooleanrequiredperChildbooleanrequiredunlimitedbooleanrequiredarchivedbooleanrequiredencashablebooleanrequiredemployeeEncashmentRequestsbooleanrequiredkindenumrequiredone of "statutory", "company"
dayCountingenumrequiredone of "working_days", "working_days_including_holidays"
policyobjectrequiredentitlementobject | object | object | objectrequiredminServiceMonthsintegerrequiredmin 0 · max 24
proratebooleanrequiredaccrualenumrequiredone of "upfront", "monthly"
carryForwardobject or nullrequiredmaxDaysnumber or nullrequiredmin 0 · max 365
expiresAfterMonthsinteger or nullrequiredmin 1 · max 36
encashablebooleanrequiredemployeeEncashmentRequestsboolean
sortOrdernumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 422
below_statutory
POST/api/v1/leave/policies/{id}/archive
Archive or restore a company leave type
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Request body
application/json, object, required
archivedbooleanrequired
Responses
200 Success. object
idstring (uuid)requiredcodestringrequirednamestringrequiredstatutoryCodestring | nullrequiredpaidbooleanrequiredhalfDaysbooleanrequiredattachmentenumrequiredone of "none", "optional", "required"
attachmentLabelstring | nullrequiredsensitivebooleanrequiredneedsChildbooleanrequiredperChildbooleanrequiredunlimitedbooleanrequiredarchivedbooleanrequiredencashablebooleanrequiredemployeeEncashmentRequestsbooleanrequiredkindenumrequiredone of "statutory", "company"
dayCountingenumrequiredone of "working_days", "working_days_including_holidays"
policyobjectrequiredentitlementobject | object | object | objectrequiredminServiceMonthsintegerrequiredmin 0 · max 24
proratebooleanrequiredaccrualenumrequiredone of "upfront", "monthly"
carryForwardobject or nullrequiredmaxDaysnumber or nullrequiredmin 0 · max 365
expiresAfterMonthsinteger or nullrequiredmin 1 · max 36
encashablebooleanrequiredemployeeEncashmentRequestsboolean
sortOrdernumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 422
below_statutory
POST/api/v1/leave/quote
Work out an application without submitting it (days counted, balance before and after)
Request body
application/json, object, required
employeeIdstring (uuid)leaveTypeIdstring (uuid)requiredstartDatestringrequiredendDatestringrequiredstartSessionenumone of "full", "am", "pm" · default "full"
endSessionenumone of "full", "am", "pm" · default "full"
childIdstring (uuid) or null
Responses
200 Success. object
employeeIdstring (uuid)requiredtypeobjectrequiredidstring (uuid)requiredcodestringrequirednamestringrequiredstatutoryCodestring | nullrequiredpaidbooleanrequiredhalfDaysbooleanrequiredattachmentenumrequiredone of "none", "optional", "required"
attachmentLabelstring | nullrequiredsensitivebooleanrequiredneedsChildbooleanrequiredperChildbooleanrequiredunlimitedbooleanrequiredarchivedbooleanrequiredencashablebooleanrequiredemployeeEncashmentRequestsbooleanrequired
unitenumrequiredone of "days", "hours"
quantitynumberrequireddaysarray of objectrequireddatestringrequiredsessionenumrequiredone of "full", "am", "pm"
quantitynumberrequirednotestring | nullrequired
yearsarray of objectrequiredyearnumberrequiredquantitynumberrequiredtrackedbooleanrequiredavailablenumber | nullrequiredafternumber | nullrequired
issuesarray of objectrequiredcodestringrequiredpathstringrequiredmessagestringrequired
warningsarray of stringrequiredokbooleanrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found
GET/api/v1/leave/reports/government-paid
Government-paid leave days to claim on the MSF portal (and NS make-up pay)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
from | query | string | yes |
to | query | string | yes |
Responses
200 Success. object
itemsarray of objectrequiredrequestIdstring (uuid)requiredemployeeIdstring (uuid)requiredemployeeNamestringrequiredleaveTypestringrequiredschemestringrequiredchildstring | nullrequiredstartDatestringrequiredendDatestringrequireddaysnumberrequiredemployerDaysnumberrequiredgovernmentDaysnumberrequiredunpaidDaysnumberrequiredclaimBystring | nullrequiredclaimViastringrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
GET/api/v1/leave/reports/government-paid.csv
Government-paid leave days as CSV
Parameters
| Name | In | Type | Required |
|---|---|---|---|
from | query | string | yes |
to | query | string | yes |
Responses
200 CSV file text/csv
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
GET/api/v1/leave/requests
List leave requests you can see (yours; your team's; everyone's for admins)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
employeeId | query | string (uuid) | no |
status | query | string | no |
from | query | string | no |
to | query | string | no |
limit | query | integer | no |
Responses
200 Success. object
itemsarray of objectrequiredidstring (uuid)requiredemployeeobjectrequiredidstring (uuid)requirednamestringrequired
typeobjectrequiredidstring (uuid)requiredcodestringrequirednamestringrequired
startDatestringrequiredendDatestringrequiredstartSessionenumrequiredone of "full", "am", "pm"
endSessionenumrequiredone of "full", "am", "pm"
unitenumrequiredone of "days", "hours"
quantitynumberrequiredreasonstring | nullrequiredstatusenumrequiredone of "pending", "approved", "rejected", "withdrawn", "cancellation_pending", "cancelled"
childobject or nullrequiredidstring (uuid)requirednamestringrequired
attachmentsarray of objectrequiredidstring (uuid)requiredfilenamestringrequiredcontentTypestringrequiredsizeBytesnumberrequired
approvalRequestIdstring (uuid) or nullrequiredcancellationRequestIdstring (uuid) or nullrequiredonBehalfbooleanrequiredcancelReasonstring | nullrequiredcreatedAtstringrequireddecidedAtstring | nullrequireddaysarray of objectdatestringrequiredsessionenumrequiredone of "full", "am", "pm"
quantitynumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
POST/api/v1/leave/requests
Apply for leave (your own, or on behalf of an employee as owner or HR admin)
Request body
application/json, object, required
employeeIdstring (uuid)leaveTypeIdstring (uuid)requiredstartDatestringrequiredendDatestringrequiredstartSessionenumone of "full", "am", "pm" · default "full"
endSessionenumone of "full", "am", "pm" · default "full"
childIdstring (uuid) or nullreasonstring or nullmax length 500
attachmentsarray of objectfilenamestringrequiredmin length 1 · max length 120
contentTypeenumrequiredone of "application/pdf", "image/jpeg", "image/png", "image/webp", "image/heic"
dataBase64stringrequiredmin length 1 · max length 6990571
Responses
201 Success. object
idstring (uuid)requiredemployeeobjectrequiredidstring (uuid)requirednamestringrequired
typeobjectrequiredidstring (uuid)requiredcodestringrequirednamestringrequired
startDatestringrequiredendDatestringrequiredstartSessionenumrequiredone of "full", "am", "pm"
endSessionenumrequiredone of "full", "am", "pm"
unitenumrequiredone of "days", "hours"
quantitynumberrequiredreasonstring | nullrequiredstatusenumrequiredone of "pending", "approved", "rejected", "withdrawn", "cancellation_pending", "cancelled"
childobject or nullrequiredidstring (uuid)requirednamestringrequired
attachmentsarray of objectrequiredidstring (uuid)requiredfilenamestringrequiredcontentTypestringrequiredsizeBytesnumberrequired
approvalRequestIdstring (uuid) or nullrequiredcancellationRequestIdstring (uuid) or nullrequiredonBehalfbooleanrequiredcancelReasonstring | nullrequiredcreatedAtstringrequireddecidedAtstring | nullrequireddaysarray of objectdatestringrequiredsessionenumrequiredone of "full", "am", "pm"
quantitynumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 409
leave_overlap - 422
insufficient_balance,not_eligible
GET/api/v1/leave/requests/{id}
Get a leave request
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Responses
200 Success. object
idstring (uuid)requiredemployeeobjectrequiredidstring (uuid)requirednamestringrequired
typeobjectrequiredidstring (uuid)requiredcodestringrequirednamestringrequired
startDatestringrequiredendDatestringrequiredstartSessionenumrequiredone of "full", "am", "pm"
endSessionenumrequiredone of "full", "am", "pm"
unitenumrequiredone of "days", "hours"
quantitynumberrequiredreasonstring | nullrequiredstatusenumrequiredone of "pending", "approved", "rejected", "withdrawn", "cancellation_pending", "cancelled"
childobject or nullrequiredidstring (uuid)requirednamestringrequired
attachmentsarray of objectrequiredidstring (uuid)requiredfilenamestringrequiredcontentTypestringrequiredsizeBytesnumberrequired
approvalRequestIdstring (uuid) or nullrequiredcancellationRequestIdstring (uuid) or nullrequiredonBehalfbooleanrequiredcancelReasonstring | nullrequiredcreatedAtstringrequireddecidedAtstring | nullrequireddaysarray of objectdatestringrequiredsessionenumrequiredone of "full", "am", "pm"
quantitynumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required - 404
not_found
POST/api/v1/leave/requests/{id}/attachments
Attach files (such as an MC) to a pending or approved leave request
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Request body
application/json, object, required
attachmentsarray of objectrequiredfilenamestringrequiredmin length 1 · max length 120
contentTypeenumrequiredone of "application/pdf", "image/jpeg", "image/png", "image/webp", "image/heic"
dataBase64stringrequiredmin length 1 · max length 6990571
Responses
200 Success. object
idstring (uuid)requiredemployeeobjectrequiredidstring (uuid)requirednamestringrequired
typeobjectrequiredidstring (uuid)requiredcodestringrequirednamestringrequired
startDatestringrequiredendDatestringrequiredstartSessionenumrequiredone of "full", "am", "pm"
endSessionenumrequiredone of "full", "am", "pm"
unitenumrequiredone of "days", "hours"
quantitynumberrequiredreasonstring | nullrequiredstatusenumrequiredone of "pending", "approved", "rejected", "withdrawn", "cancellation_pending", "cancelled"
childobject or nullrequiredidstring (uuid)requirednamestringrequired
attachmentsarray of objectrequiredidstring (uuid)requiredfilenamestringrequiredcontentTypestringrequiredsizeBytesnumberrequired
approvalRequestIdstring (uuid) or nullrequiredcancellationRequestIdstring (uuid) or nullrequiredonBehalfbooleanrequiredcancelReasonstring | nullrequiredcreatedAtstringrequireddecidedAtstring | nullrequireddaysarray of objectdatestringrequiredsessionenumrequiredone of "full", "am", "pm"
quantitynumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 409
conflict
GET/api/v1/leave/requests/{id}/attachments/{attachmentId}
Download an attachment (requester, approvers, owners and HR admins only: medical)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
attachmentId | path | string (uuid) | yes |
Responses
200 The file application/octet-stream
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required - 404
not_found
POST/api/v1/leave/requests/{id}/cancel
Cancel approved leave (sent for approval; owners and HR admins may cancel directly)
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Request body
application/json, object, required
reasonstring or nullmax length 300
directbooleandefault false
Responses
200 Success. object
idstring (uuid)requiredemployeeobjectrequiredidstring (uuid)requirednamestringrequired
typeobjectrequiredidstring (uuid)requiredcodestringrequirednamestringrequired
startDatestringrequiredendDatestringrequiredstartSessionenumrequiredone of "full", "am", "pm"
endSessionenumrequiredone of "full", "am", "pm"
unitenumrequiredone of "days", "hours"
quantitynumberrequiredreasonstring | nullrequiredstatusenumrequiredone of "pending", "approved", "rejected", "withdrawn", "cancellation_pending", "cancelled"
childobject or nullrequiredidstring (uuid)requirednamestringrequired
attachmentsarray of objectrequiredidstring (uuid)requiredfilenamestringrequiredcontentTypestringrequiredsizeBytesnumberrequired
approvalRequestIdstring (uuid) or nullrequiredcancellationRequestIdstring (uuid) or nullrequiredonBehalfbooleanrequiredcancelReasonstring | nullrequiredcreatedAtstringrequireddecidedAtstring | nullrequireddaysarray of objectdatestringrequiredsessionenumrequiredone of "full", "am", "pm"
quantitynumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required,self_change_requires_approval - 404
not_found - 409
conflict
POST/api/v1/leave/requests/{id}/withdraw
Withdraw a pending leave request
Parameters
| Name | In | Type | Required |
|---|---|---|---|
id | path | string (uuid) | yes |
Responses
200 Success. object
idstring (uuid)requiredemployeeobjectrequiredidstring (uuid)requirednamestringrequired
typeobjectrequiredidstring (uuid)requiredcodestringrequirednamestringrequired
startDatestringrequiredendDatestringrequiredstartSessionenumrequiredone of "full", "am", "pm"
endSessionenumrequiredone of "full", "am", "pm"
unitenumrequiredone of "days", "hours"
quantitynumberrequiredreasonstring | nullrequiredstatusenumrequiredone of "pending", "approved", "rejected", "withdrawn", "cancellation_pending", "cancelled"
childobject or nullrequiredidstring (uuid)requirednamestringrequired
attachmentsarray of objectrequiredidstring (uuid)requiredfilenamestringrequiredcontentTypestringrequiredsizeBytesnumberrequired
approvalRequestIdstring (uuid) or nullrequiredcancellationRequestIdstring (uuid) or nullrequiredonBehalfbooleanrequiredcancelReasonstring | nullrequiredcreatedAtstringrequireddecidedAtstring | nullrequireddaysarray of objectdatestringrequiredsessionenumrequiredone of "full", "am", "pm"
quantitynumberrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required - 404
not_found - 409
conflict
GET/api/v1/leave/settings
Leave settings (holidays on off days, no-pay leave and service, part-time reference)
Responses
200 Success. object
offDayHolidayenumrequiredone of "extra_pay", "next_working_day"
unpaidServiceRuleenumrequiredone of "none", "whole_month", "any_day"
fullTimeScheduleIdstring (uuid) or nullrequired
- 401
session_expired,session_revoked,unauthenticated - 403
forbidden,mfa_enrolment_required
PUT/api/v1/leave/settings
Update leave settings
Request body
application/json, object, required
offDayHolidayenumrequiredone of "extra_pay", "next_working_day"
unpaidServiceRuleenumrequiredone of "none", "whole_month", "any_day"
fullTimeScheduleIdstring (uuid) or nullrequired
Responses
200 Success. object
offDayHolidayenumrequiredone of "extra_pay", "next_working_day"
unpaidServiceRuleenumrequiredone of "none", "whole_month", "any_day"
fullTimeScheduleIdstring (uuid) or nullrequired
- 400
validation_failed - 401
session_expired,session_revoked,unauthenticated - 403
csrf_rejected,forbidden,mfa_enrolment_required
GET/api/v1/leave/types
List the leave types employees can apply for
Responses
200 Success. object
itemsarray of objectrequiredidstring (uuid)requiredcodestringrequirednamestringrequiredstatutoryCodestring | nullrequiredpaidbooleanrequiredhalfDaysbooleanrequiredattachmentenumrequiredone of "none", "optional", "required"
attachmentLabelstring | nullrequiredsensitivebooleanrequiredneedsChildbooleanrequiredperChildbooleanrequiredunlimitedbooleanrequiredarchivedbooleanrequiredencashablebooleanrequiredemployeeEncashmentRequestsbooleanrequired
- 401
session_expired,session_revoked,unauthenticated - 403
mfa_enrolment_required