For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
SupportDeel Home
OverviewPlatformEmployer of RecordContractorsGlobal PayrollHREmbeddedDeel ITAPI ReferenceChangelog
OverviewPlatformEmployer of RecordContractorsGlobal PayrollHREmbeddedDeel ITAPI ReferenceChangelog
  • Resources
    • Blog
    • Community
    • API spec
  • HRIS Guides
    • Introduction
  • HRIS Common Use Cases
    • Sync Deel users to identity providers
  • SCIM API
    • Overview
  • HRIS Endpoints
      • POSTApprove/Reject time-off requests
      • DELCancel time-off request
      • POSTCreate time-off request
      • POSTExternal HR Time Off Synchronization
      • GETGet Profile Entitlements
      • GETGet Time Off Events for Profile
      • GETGet Work Schedule and Holidays
      • GETList policies
      • GETList time-off requests
      • GETRetrieve policy validation templates
      • PATCHUpdate time-off request
      • POSTValidate time-off request
  • ATS Guides
    • Introduction
    • Getting started
    • Manage jobs
    • Manage candidates and applications
    • Webhooks
  • ATS Common Use Cases
    • From candidate to contract
  • ATS Endpoints
LogoLogo
SupportDeel Home
HRIS EndpointsTime Off

External HR Time Off Synchronization

POST
/time_offs/global-payroll/sync
POST
/rest/v2/time_offs/global-payroll/sync
$curl -X POST https://api.letsdeel.com/rest/v2/time_offs/global-payroll/sync \
> -H "Authorization: Bearer <token>" \
> -H "Content-Type: application/json" \
> -d '{
> "body": {
> "data": {
> "time_offs": [
> {
> "external_id": "a1b2c3d4-e5f6-7890-abcd-1234567890ef",
> "contract_oid": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
> "start_date": "2024-07-01",
> "end_date": "2024-07-05",
> "policy_type": "Vacation",
> "amount": 4,
> "is_paid": true,
> "approved_at": "2024-06-20",
> "description": "Family summer vacation",
> "policy_name": "Annual leave",
> "requested_at": "2024-06-15",
> "entitlement_unit": "BUSINESS_DAY"
> },
> {
> "external_id": "b2c3d4e5-f678-9012-abcd-2345678901fa",
> "contract_oid": "d94f3f01-2c1b-4a7a-9f3e-1a2b3c4d5e6f",
> "start_date": "2024-08-15",
> "end_date": "2024-08-15",
> "policy_type": "Sick leave",
> "amount": 1,
> "is_paid": true,
> "approved_at": "2024-08-14",
> "description": "Flu recovery day",
> "policy_name": "Sick leave",
> "requested_at": "2024-08-13",
> "entitlement_unit": "BUSINESS_DAY"
> },
> {
> "external_id": "c3d4e5f6-7890-1234-abcd-3456789012fb",
> "contract_oid": "a1234567-89ab-cdef-0123-456789abcdef",
> "deleted": true
> }
> ]
> }
> }
>}'
1{
2 "data": {
3 "deleted": 1,
4 "updated": 1,
5 "inserted": 1
6 }
7}
Synchronizes time-off requests from an external HRIS into Deel for Global Payroll contracts only. Each record is upserted or deleted based on its external ID — records carrying `deleted: true` are removed while all others are inserted or updated — and Deel calculates the payroll cycle impact of each operation. **Token scopes**: `time-off:write`
Was this page helpful?
Previous

Get Profile Entitlements

Next
Built with

Synchronizes time-off requests from an external HRIS into Deel for Global Payroll contracts only. Each record is upserted or deleted based on its external ID — records carrying deleted: true are removed while all others are inserted or updated — and Deel calculates the payroll cycle impact of each operation. Token scopes: time-off:write

Authentication

AuthorizationBearer
## Authentication The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail. ```curl curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \ -H 'Authorization: Bearer YOUR-TOKEN-HERE' ``` [Learn more about authentication](/api/authentication)
OR
AuthorizationBearer

Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/

Request

This endpoint expects an object.
dataobjectOptional

Response

Successful operation time offs returned
dataobject

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
500
Internal Server Error

Authentication

The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.

1curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
2 -H 'Authorization: Bearer YOUR-TOKEN-HERE'

Learn more about authentication