{"openapi":"3.0.1","info":{"title":"Deel REST API","description":"Deel REST API","contact":{"name":"Deel API Team","email":"apiteam@deel.com"},"termsOfService":"https://www.letsdeel.com/terms-of-service","version":"1.25.0"},"externalDocs":{"description":"Find out more about Deel APIs.","url":"https://developer.deel.com"},"servers":[{"url":"https://api.letsdeel.com/rest","description":"Production server"},{"url":"https://api-sandbox.demo.deel.com/rest","description":"Demo server"}],"tags":[{"name":"Organizations","description":"API endpoints related to Organizations.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Contracts","description":"API endpoints related to Contracts.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Webhooks","description":"API endpoints related to Webhooks.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Payouts","description":"API endpoints related to Payouts.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"EOR","description":"API endpoints related to EOR.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Contractors","description":"API endpoints related to Contractors.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Workers","description":"API endpoints related to Workers.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Projects","description":"API endpoints related to Projects.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Global Payroll","description":"API endpoints related to Global Payroll.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Deel As a Service","description":"API endpoints related to Deel As a Service.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Offboarding","description":"API endpoints related to Offboarding.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Lookups","description":"API endpoints related to Lookups.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Accounting","description":"API endpoints related to Accounting.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Documents","description":"API endpoints related to Documents.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Equity Tokens","description":"API endpoints related to Equity Tokens.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Time Tracking Rates","description":"API endpoints related to Time Tracking Rates.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Legal Entities","description":"API endpoints related to Legal Entities.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"IT assets","description":"API endpoints related to IT assets.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Custom Fields","description":"API endpoints related to Custom Fields.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"ATS","description":"API endpoints related to ATS.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Worker Relations","description":"API endpoints related to Worker Relations.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Positions","description":"API endpoints related to Positions.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Timesheets","description":"API endpoints related to Timesheets.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Time Off","description":"API endpoints related to Time Off.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Groups","description":"API endpoints related to Groups.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"IT policies","description":"API endpoints related to IT policies.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"People","description":"API endpoints related to People.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Milestones","description":"API endpoints related to Milestones.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Treasury","description":"API endpoints related to Treasury.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Organization structure","description":"API endpoints related to Organization structure.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Managers","description":"API endpoints related to Managers.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Invoices","description":"API endpoints related to Invoices.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"On-Demand Payroll","description":"API endpoints related to On-Demand Payroll.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Off-cycle Payments","description":"API endpoints related to Off-cycle Payments.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Organization Tasks","description":"API endpoints related to Organization Tasks.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Tasks","description":"API endpoints related to Tasks.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"IT orders","description":"API endpoints related to IT orders.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Adjustments","description":"API endpoints related to Adjustments.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Time Tracking Timesheets","description":"API endpoints related to Time Tracking Timesheets.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Immigration","description":"API endpoints related to Immigration.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Consent","description":"API endpoints related to Consent.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Screenings","description":"API endpoints related to Screenings.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"HRX Documents","description":"API endpoints related to HRX Documents.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Files","description":"API endpoints related to Files.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Cost Centers","description":"API endpoints related to Cost Centers.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Payments","description":"API endpoints related to Payments.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Forms","description":"API endpoints related to Forms.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Time Tracking Shifts","description":"API endpoints related to Time Tracking Shifts.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Knowledge Hub","description":"API endpoints related to Knowledge Hub.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Terminations","description":"API endpoints related to Terminations.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Onboarding","description":"API endpoints related to Onboarding.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Refund Statements","description":"API endpoints related to Refund Statements.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Employee Information","description":"API endpoints related to Employee Information.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"IC invoicing taxes","description":"API endpoints related to IC invoicing taxes.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"List Cycles","description":"API endpoints related to List Cycles.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Worker Session","description":"API endpoints related to Worker Session.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Reports","description":"API endpoints related to Reports.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"@eng-platform-be","description":"API endpoints related to @eng-platform-be.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Talent","description":"API endpoints related to Talent.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Candidates","description":"API endpoints related to Candidates.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Organization Structure","description":"API endpoints related to Organization Structure.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Learning","description":"API endpoints related to Learning.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Integrations","description":"API endpoints related to Integrations.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Worker HR","description":"API endpoints related to Worker HR.","externalDocs":{"description":"See","url":"https://developer.deel.com"}}],"paths":{"/roles/{roleId}":{"patch":{"path":"/rest/roles/{roleId}","tags":["Organizations"],"method":"patch","summary":"Update organization custom role","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number","example":1,"description":"ID of the role"},"name":{"type":"string","example":"Admin","description":"Name of the role"},"scope":{"type":"string","example":"organization","description":"Scope of the role"},"description":{"type":"string","example":"Admin role","description":"Description of the role"},"permissionSets":{"type":"array","items":{"type":"string","example":"manageUsers","description":"Permission set"}}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"roleId","schema":{"type":"string"},"example":"1","required":true,"description":"ID of the role"}],"description":"Applies a partial update to the custom role, modifying only the fields supplied in the request body.\n\n **Token scopes**: `organizations:write`","operationId":"UpdateOrganizationRole-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"name":{"type":"string","example":"Admin","description":"Name of the role"},"description":{"type":"string","example":"Admin role","description":"Description of the role"},"permissionSets":{"type":"array","items":{"type":"string","example":"manageUsers","description":"Permission set"}}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/contracts/termination-reasons":{"get":{"path":"/rest/contracts/termination-reasons","tags":["Contracts"],"method":"get","summary":"List contract termination reasons","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","frequency","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"Unique identifier for the termination reason"},"name":{"type":"string","example":"Project has ended","description":"The display text for the termination reason that can be shown to users"},"frequency":{"enum":["COMMON","MOST_COMMON","LESS_COMMON"],"type":"string","example":"MOST_COMMON","description":"How commonly this reason is used"},"created_at":{"type":"string","format":"date-time","example":"2024-01-15T10:30:00Z","description":"Timestamp when the termination reason was created"},"updated_at":{"type":"string","format":"date-time","example":"2024-01-15T10:30:00Z","description":"Timestamp when the termination reason was last updated"}},"additionalProperties":false}},"has_more":{"type":"boolean","example":true,"description":"Indicates whether there are more results available"},"next_cursor":{"type":"string","example":"eyJmcmVxdWVuY3kiOiJNT1NUX0NPTU1PTiIsImlkIjoyfQ==","nullable":true,"description":"Cursor to use for fetching the next page. Null if there are no more results."},"total_count":{"type":"integer","example":15,"description":"Total number of termination reasons available"}},"additionalProperties":false}}},"description":"Paginated list of termination reasons"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"description":"Number of items to return per page (default: 20, max: 100)"},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJmcmVxdWVuY3kiOiJNT1NUX0NPTU1PTiIsImlkIjoyfQ==","description":"Cursor for pagination. Use the value from `next_cursor` in the previous response to fetch the next page."},{"in":"query","name":"order_by","schema":{"enum":["frequency"],"type":"string","default":"frequency"},"example":"frequency","description":"Field to order results by"},{"in":"query","name":"order","schema":{"enum":["asc","desc"],"type":"string","default":"asc"},"example":"asc","description":"Sort direction for results"}],"description":"Retrieves the standardized list of termination reasons to present when initiating a contract termination\n\n **Token scopes**: `contracts:read`","operationId":"listContractTerminationReasons-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/webhooks":{"post":{"path":"/rest/webhooks","tags":["Webhooks"],"method":"post","summary":"Create a webhook","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name","description","status","url","signing_key","api_version","events","id","created_at","updated_at"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"url":{"type":"string","example":"https://mywebhook.com/listening","description":"Endpoint to receive webhook."},"name":{"type":"string","example":"My webhooks","nullable":true,"description":"Webhook subscription name."},"events":{"type":"array","items":{"type":"string"},"example":["contract.created"],"description":"The list of events to enable for this subscription."},"hidden":{"type":"boolean","example":false,"nullable":true,"description":"Property to hide the webhook from frontend view. Commonly by Deel 3rd party apps"},"status":{"enum":["enabled","disabled"],"type":"string","example":"enabled","description":"Status of webhook."},"internal":{"type":"boolean","example":false,"description":"Indicates whether the webhook is internal to Deel."},"created_at":{"type":"string","example":"2024-01-01T12:00:00Z","description":"Time at which the webhook was created."},"deleted_at":{"type":"string","example":"2024-01-03T12:00:00Z","nullable":true,"description":"Time at which the webhook was deleted."},"updated_at":{"type":"string","example":"2024-01-02T12:00:00Z","description":"Time at which the webhook was updated."},"api_version":{"type":"string","default":"v2","example":"v2","nullable":false,"description":"Deel API version. Currently Deel accepts v1 or v2 version."},"description":{"type":"string","example":"My first webhook","nullable":true,"description":"Webhook subscription description."},"signing_key":{"type":"string","example":"abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGH","nullable":true,"description":"The webhook's signing key, used to generate webhook signatures."},"include_child_orgs":{"type":"boolean","example":false,"nullable":true,"description":"When true, the webhook will also receive events from child organizations."}},"description":"The webhook subscription."}}}}},"description":"successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Unauthorized. Authentication credentials were missing or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Forbidden. You do not have permission to access this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Not Found. The requested resource could not be found."},"405":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Method Not Allowed. The HTTP method is not supported for this resource."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Too Many Requests. The rate limit has been exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Internal Server Error. An unexpected error occurred."}},"description":"Creates a new webhook subscription with the specified URL, events, and configuration. Returns the created webhook, including its signing key for verifying incoming event payloads.\n\n **Token scopes**: `webhooks:write`","operationId":"createWebhook-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","description","status","url","api_version","events"],"properties":{"url":{"type":"string","example":"https://mywebhook.com","description":"Endpoint to receive webhook."},"name":{"type":"string","example":"My first webhook.","nullable":true,"description":"Webhook subscription name."},"events":{"type":"array","items":{"type":"string"},"example":["contract.created"],"description":"The list of events to enable for this subscription."},"status":{"enum":["enabled","disabled"],"type":"string","example":"enabled","description":"Status of webhook."},"api_version":{"type":"string","default":"v2","example":"v2","nullable":false,"description":"Deel API version. Only v2 is accepted."},"description":{"type":"string","example":"I like it very much.","nullable":true,"description":"Webhook subscription description."},"signing_key":{"type":"string","example":"abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGH","nullable":true,"maxLength":128,"minLength":32,"description":"The webhook's signing key, used to generate webhook signatures. Auto-generated if omitted."},"include_child_orgs":{"type":"boolean","example":false,"nullable":true,"description":"When true, the webhook will also receive events from child organizations."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["webhooks:write"]}]},"get":{"path":"/rest/webhooks","tags":["Webhooks"],"method":"get","summary":"List webhooks","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["name","description","status","url","signing_key","api_version","events","id","created_at","updated_at"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"url":{"type":"string","example":"https://mywebhook.com/listening","description":"Endpoint to receive webhook."},"name":{"type":"string","example":"My webhooks","nullable":true,"description":"Webhook subscription name."},"events":{"type":"array","items":{"type":"string"},"example":["contract.created"],"description":"The list of events to enable for this subscription."},"hidden":{"type":"boolean","example":false,"nullable":true,"description":"Property to hide the webhook from frontend view. Commonly by Deel 3rd party apps"},"status":{"enum":["enabled","disabled"],"type":"string","example":"enabled","description":"Status of webhook."},"internal":{"type":"boolean","example":false,"description":"Indicates whether the webhook is internal to Deel."},"created_at":{"type":"string","example":"2024-01-01T12:00:00Z","description":"Time at which the webhook was created."},"deleted_at":{"type":"string","example":"2024-01-03T12:00:00Z","nullable":true,"description":"Time at which the webhook was deleted."},"updated_at":{"type":"string","example":"2024-01-02T12:00:00Z","description":"Time at which the webhook was updated."},"api_version":{"type":"string","default":"v2","example":"v2","nullable":false,"description":"Deel API version. Currently Deel accepts v1 or v2 version."},"description":{"type":"string","example":"My first webhook","nullable":true,"description":"Webhook subscription description."},"signing_key":{"type":"string","example":"abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGH","nullable":true,"description":"The webhook's signing key, used to generate webhook signatures."},"include_child_orgs":{"type":"boolean","example":false,"nullable":true,"description":"When true, the webhook will also receive events from child organizations."}}},"description":"The list of webhook subscriptions."}}}}},"description":"successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Unauthorized. Authentication credentials were missing or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Forbidden. You do not have permission to access this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Not Found. The requested resource could not be found."},"405":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Method Not Allowed. The HTTP method is not supported for this resource."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Too Many Requests. The rate limit has been exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Internal Server Error. An unexpected error occurred."}},"description":"Returns all webhook subscriptions configured for the organization, including their current status, endpoint URLs, and subscribed events.\n\n **Token scopes**: `webhooks:read`","operationId":"getAllWebhooks-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["webhooks:read"]}]}},"/payouts/contractors/settings/auto_withdraw":{"post":{"path":"/rest/payouts/contractors/settings/auto_withdraw","tags":["Payouts"],"method":"post","summary":"Update auto withdraw setting for contractor","responses":{"200":{"description":"Auto withdraw setting updated successfully"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Updates the auto-withdrawal configuration for the authenticated contractor.\n\n **Token scopes**: `worker:read`, `worker:write`","operationId":"updateAutoWithdrawSetting-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"is_auto_withdraw_enabled":true}},"required":["data"],"properties":{"data":{"type":"object","required":["is_auto_withdraw_enabled"],"properties":{"is_auto_withdraw_enabled":{"type":"boolean","description":"Sets auto withdraw to enabled or disabled for contractor"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}":{"patch":{"path":"/rest/eor/contracts/{contract_id}/amendments/{amendment_id}","tags":["EOR"],"method":"patch","summary":"Update a specific EOR contract amendment","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"b9fd7198-7e81-4e57-bcf9-de6315194327","description":"Id of amendment"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED",null],"type":"string","example":"OPS","nullable":true,"description":"Type of amendment"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"8e6ba281-c703-4af3-ad93-b27434b70c7d","description":"Id of amendment item"},"item":{"type":"string","example":"SALARY_INCREASE","description":"Amendment item"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED"],"type":"string","example":"OPS","description":"Type of amendment"},"new_value":{"type":"string","example":"62382.93","description":"The new valid value after the attempted change."},"data_point":{"type":"string","example":"salary","description":"The field that is selected for amendment."},"previous_value":{"type":"string","example":"68.9170","description":"The previous valid value before the attempted change."}}},"description":"Items of amendment"},"scope":{"type":"string","example":"Project scope details","description":"Scope of the amendment."},"salary":{"type":"string","example":"50000.00","description":"Salary for the amendment.","x-sensitive-employment":true},"source":{"enum":["APP","PUBLIC_API","APP_BULK_AMENDMENT",null],"type":"string","example":"APP","nullable":true,"description":"Source of amendment flow creation."},"currency":{"type":"string","example":"GBP","description":"Contract currency."},"end_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","nullable":true,"description":"End date of the employment."},"holidays":{"type":"integer","example":20,"nullable":true,"description":"Number of holidays."},"job_code":{"type":"string","example":"49589","nullable":true,"description":"Job code associated with the job title."},"job_title":{"type":"string","example":"Software Engineer","maxLength":1000,"description":"Job title associated with the amendment.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date of the amendment."},"net_salary":{"type":"string","example":"95000.0000","nullable":true,"description":"Net salary for the amendment.","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Start date of the employment."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Date when amendment is updated"},"description":{"type":"string","example":"Reason or note for the amendment.","nullable":true,"description":"Free-text description of the amendment."},"hourly_rate":{"type":"string","example":"50000.00","nullable":true,"description":"Hourly rate of the amendment","x-sensitive-employment":true},"custom_items":{"type":"array","items":{"type":"object","required":["id","type","status"],"properties":{"id":{"type":"string","format":"uuid","example":"e7b45fa6-9a72-4ab6-b163-ef50ccaba7fb","description":"Unique identifier for the custom amendment item"},"type":{"type":"string","example":"START_DATE","description":"Type/context of the custom amendment item"},"status":{"enum":["REJECTED","APPROVED","PENDING_REVIEW","PENDING_LEGAL"],"type":"string","example":"PENDING_REVIEW","description":"Current status of the custom amendment item"},"description":{"type":"string","example":"Please change the start date to 20th November 2025.","nullable":true,"description":"Detailed description of the custom amendment item"},"rejection_reason":{"type":"string","example":"Start date cannot be moved this far in advance.","nullable":true,"description":"Reason for rejection if the item was rejected"}}},"description":"Custom amendment items associated with the amendment flow"},"job_category":{"type":"string","example":"Engineering","nullable":true,"description":"Job category associated with the job title."},"requested_by":{"type":"string","example":"John Doe","nullable":true,"description":"Profile name of the user who requested the change"},"seniority_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true,"description":"Seniority level identifier."},"document_type":{"enum":["EA","SOW","SOW_EA",null],"type":"string","example":"SOW_EA","nullable":true,"description":"Amendment document type"},"legal_context":{"type":"object","example":{"status":"REQUEST_LEGAL_REVIEW","details":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","jira_ticket":"COHDSB-9600","jira_web_url":"https://letsdeel.atlassian.net/browse/COHDSB-9600","requested_at":"2025-04-23T10:40:25.527Z"},"nullable":true,"properties":{"status":{"enum":["REQUEST_LEGAL_REVIEW","WAITING_FOR_ANOTHER_TEAM","WAITING_FOR_HRX_ACTION","DECLINED","SOLVED"],"type":"string","example":"REQUEST_LEGAL_REVIEW","description":"Current status of the legal review process"},"details":{"type":"string","example":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","description":"Details regarding the legal request"},"jira_ticket":{"type":"string","example":"COHDSB-9600","description":"Jira ticket identifier linked to the legal context"},"jira_web_url":{"type":"string","format":"uri","example":"https://letsdeel.atlassian.net/browse/COHDSB-9600","description":"Link to the Jira ticket for tracking"},"requested_at":{"type":"string","format":"date-time","example":"2025-04-23T10:40:25.527Z","description":"Timestamp when legal review was requested"}},"description":"Additional details needed for legal input"},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","description":"Type of time off."},"void_deadline":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Deadline this SOW to be voided"},"effective_date":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Effective date of the amendment."},"seniority_date":{"type":"string","format":"date","example":"2023-01-01","nullable":true,"description":"The seniority date represents the employee’s original start date with a previous employer. It is used to preserve employment tenure when the employee transfers to this company. Can be null if not applicable."},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Type of employment."},"sick_leave_days":{"type":"integer","format":"number","example":12,"nullable":true,"description":"Number of sick leave days"},"employment_state":{"type":"string","example":"Active","nullable":true,"description":"State of employment."},"probation_period":{"type":"integer","example":3,"nullable":true,"description":"Duration of the probation period."},"work_schedule_id":{"type":"string","format":"uuid","example":"2b786de3-9b25-42d9-8a2d-61583bcfc09e","nullable":true,"description":"Work schedule id"},"fixed_adjustments":{"type":"array","items":{"type":"object","required":["id","value","description","is_recurring","status","is_amended","is_country_specific","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmfo0hqd5bw00cqs1b1jd7eag","description":"System-generated unique identifier for the fixed adjustment record in an amendment request."},"value":{"type":"string","example":"1200.50","pattern":"^(?!0+(\\.0+)?$)\\d+(?:\\.\\d+)?$","description":"Value of the fixed adjustment."},"status":{"enum":["WAITING_FOR_SIGNING","ACTIVE","OUTDATED","CANCELLED"],"type":"string","example":"WAITING_FOR_SIGNING","description":"Current status of the fixed adjustment."},"created_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was created."},"is_amended":{"type":"boolean","example":true,"description":"Whether this fixed adjustment was amended from a previous one."},"is_deleted":{"type":"boolean","example":false,"description":"True if the fixed adjustment was deleted as part of the amendment; otherwise false."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was last updated."},"description":{"type":"string","example":"Housing allowance for employee relocation","maxLength":256,"minLength":1,"description":"Description of the fixed adjustment."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the fixed adjustment is recurring. If set to false, it will be treated as a one-time fixed allowance."},"is_country_specific":{"type":"boolean","example":false,"description":"Whether this fixed adjustment applies only to a specific country."},"parent_fixed_adjustment_id":{"type":"string","example":"cmfo0hqd5i9kbhfvk8fn7aniy","nullable":true,"description":"Reference to the parent fixed adjustment, if applicable."}}},"description":"List of fixed adjustments associated with the amendment request."},"rejection_context":{"type":"object","example":{"rejected_at":"2025-02-24T11:08:57.433Z","rejection_reason":"Client requested a different start date."},"nullable":true,"properties":{"rejected_at":{"type":"string","format":"date-time","example":"2025-02-24T11:08:57.433Z","description":"Timestamp of when the rejection occurred"},"rejection_reason":{"type":"string","example":"Client requested a different start date.","nullable":true,"description":"Reason provided when the amendment was rejected. Null when the amendment was cancelled rather than rejected by an admin."}},"description":"Additional details containing rejection reason"},"amendment_statuses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"PREPARING_DOCUMENTS","description":"Logical, system-oriented identifier of the amendment status. Can be used to group statuses under a parent category and subgroup them for more granular state tracking. The structure typically follows a dot-separated hierarchy (e.g., 'PARENT','PARENT.CHILD', 'PARENT.CHILD.CHILD.CHILD', ...), which allows logical grouping and filtering of related statuses."},"friendly_name":{"type":"string","example":"PREPARING_DOCUMENTS","description":"Friendly name of amendment status"},"amendment_flow_status":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date"}},"description":"Metadata about the amendment status, including when it was created."}}},"description":"List of amendment statuses representing the history and progression of an amendment."},"notice_period_type":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"CUSTOM","nullable":true,"description":"Type of notice period."},"void_deadline_type":{"enum":["CUTOFF","START_DATE","END_DATE","EXPIRY",null],"type":"string","example":"CUTOFF","nullable":true,"description":"Type of void deadline"},"work_hours_per_week":{"type":"string","example":"40.00","description":"Number of work hours per week.","x-sensitive-employment":true},"employee_nationality":{"type":"string","example":"GB","description":"Nationality of the employee.","x-sensitive-pii":true},"is_hrx_action_needed":{"type":"boolean","example":false,"description":"Is HRX action needed."},"variable_compensation":{"type":"object","required":["id","title","amount","type","timeline","parent_id","effective_date","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","description":"The unique ID assigned by the system to this variable compensation record."},"type":{"enum":["FIXED","PERCENTAGE"],"type":"string","example":"FIXED","description":"The way the compensation is calculated. `FIXED` means a fixed amount (like $1000). `PERCENTAGE` means it’s based on a percentage of the salary."},"title":{"type":"string","example":"Bonus","description":"Title or name of the variable compensation."},"amount":{"type":"string","format":"decimal","example":"100000.0000","description":"The value of the compensation. Shown as a string to keep the exact number of decimals."},"timeline":{"enum":["MONTHLY","QUARTERLY","ANNUALLY","BIANNUALLY"],"type":"string","example":"ANNUALLY","description":"How often the compensation is paid — for example monthly, quarterly, annually, or twice a year."},"parent_id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","nullable":true,"description":"Reference to the parent variable compensation, if applicable. Null if this compensation is not linked to any compensation."},"created_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was first created in the system."},"is_amended":{"type":"boolean","example":true,"description":"Shows whether this compensation has been changed as part of an amendment."},"is_deleted":{"type":"boolean","example":true,"description":"Shows whether this compensation has been deleted."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was last updated."},"effective_date":{"type":"string","format":"date-time","example":"2025-10-18T00:00:00.000Z","description":"The date when this compensation starts being valid."},"incentive_plan":{"type":"object","properties":{"details":{"type":"string","example":"Year-end performance bonus based on quarterly targets.","description":"Extra details about the incentive plan, if any."},"employee_signature":{"type":"string","example":"John Doe","description":"The employee’s signature for the incentive plan, if collected."},"employee_signed_at":{"type":"string","format":"date-time","example":"2025-12-15T14:30:00.000Z","description":"The date and time when the employee signed the incentive plan. Empty if not signed."}},"description":"Details of the incentive plan linked to this compensation, if any."}},"description":"Represents a variable compensation record (such as a bonus, commission, or incentive) within a contract. It contains details like the amount, type, frequency, and whether it is part of an incentive plan. The record also tracks when it was created, updated, and whether it has been amended."},"notice_period_time_unit":{"enum":["DAY","WEEK","MONTH",null],"type":"string","example":"WEEK","nullable":true,"description":"Notice period time unit."},"is_effective_date_updated":{"type":"boolean","example":false,"description":"Is Effective Date updated."},"work_schedule_rules_version":{"type":"string","example":"2","nullable":true,"description":"Work schedule rule version."},"notice_period_after_probation":{"type":"string","example":"30","nullable":true,"description":"Notice period after probation."},"notice_period_during_probation":{"type":"string","example":"15","nullable":true,"description":"Notice period during probation."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"STANDARD","nullable":true,"description":"Type of probation period for definite contracts."}}}}}}},"description":"Amendment info"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"RESOURCE_NOT_FOUND","description":"Unique error code identifying the type of not-found error."},"field":{"type":"string","example":"contract_id","nullable":true,"description":"The field or identifier that caused the error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}},"examples":{"Contract Not Found":{"value":{"errors":[{"code":"CONTRACT_NOT_FOUND","field":"contract_id","message":"Contract not found."}]},"summary":"When a contract cannot be located"},"Amendment Not Found":{"value":{"errors":[{"code":"AMENDMENT_NOT_FOUND","field":"amendment_flow_id","message":"Amendment not found."}]},"summary":"When an amendment cannot be located"}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"409":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"CHANGE_REQUEST_CONFIRMED"},"field":{"type":"string","example":"change_request_id"},"details":{"type":"object","additionalProperties":true},"message":{"type":"string","example":"Change request is already confirmed."}}}}}},"example":{"errors":[{"code":"CHANGE_REQUEST_CONFIRMED","field":"change_request_id","message":"Change request is already confirmed."}]}}},"description":"Conflict error. Indicates that the requested operation conflicts with the current state of the resource."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ITEM_VALIDATION_FAILED","description":"Unique error code identifying the type of error."},"field":{"type":"string","example":"holidays","nullable":true,"description":"The field where the error occurred (if applicable)."},"details":{"type":"object","example":{"new_value":"2","previous_value":"6"},"properties":{"new_value":{"type":"string","example":"2","description":"The new value that caused the validation error."},"previous_value":{"type":"string","example":"6","description":"The previous valid value before the attempted change."}},"description":"Additional structured details about the error."},"message":{"type":"string","example":"The minimum holidays for NG is 6 day(s)","description":"Human-readable description of the error."}}},"description":"List of validation or business rule errors."}}},"examples":{"Multiple Validation Errors":{"value":{"errors":[{"code":"AMENDMENT_ITEM_VALIDATION_FAILED","field":"holidays","details":{"new_value":"2","previous_value":"6"},"message":"The minimum holidays for NG is 6 day(s) (previous: 6, new: 2)"},{"code":"AMENDMENT_ITEM_DISABLED","field":"salary_increase","details":{"new_value":"20000","previous_value":"10000"},"message":"salary_increase is disabled in country United States"}]},"summary":"Two errors in one response"},"Single Disabled Data point Error":{"value":{"errors":[{"code":"AMENDMENT_ITEM_DISABLED","field":"salary","message":"salary is not enabled for white label API"}]},"summary":"Example with one disabled data point error for whitelabel API"}}}},"description":"Validation errors or disabled amendments."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of EOR worker contract."},{"in":"path","name":"amendment_id","schema":{"type":"string","format":"uuid"},"example":"77733bb9-9e17-4dfd-ba1b-1315f77cd7f7","required":true,"description":"A unique identifier for the employee contract amendment. This string is either supplied by the client or generated by the system and is used to uniquely identify the amendment during upsert operations."}],"description":"Applies a partial update to a specific EOR contract amendment. The amendment must be in DRAFT status; updates to amendments in any other state will be rejected. This operation overwrites existing draft data and cannot be undone.\n\n **Token scopes**: `contracts:write`","operationId":"updateASpecificEorContractAmendment-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"scope":{"type":"string","example":"Project scope details","maxLength":20000,"description":"Scope of the amendment."},"custom":{"type":"array","items":{"type":"object","required":["description","type"],"properties":{"id":{"type":"string","format":"uuid","example":"21baf29c-4468-435d-93a4-f1bd76dd2d65","description":"An optional identifier for the custom object."},"type":{"type":"string","example":"START_DATE","description":"The type of the custom object. Must be one of the valid custom types."},"description":{"type":"string","example":"Please change the start date to 20th November 2025","maxLength":1000,"minLength":50,"description":"A required description for the custom object."}}},"description":"An optional array of custom objects."},"salary":{"type":"number","example":50000,"description":"Salary for the amendment."},"end_date":{"type":"string","format":"date","example":"2023-12-31","description":"End date of the employment."},"holidays":{"type":"number","example":20,"description":"Number of holidays."},"job_title":{"type":"string","example":"Software Engineer","maxLength":1000,"description":"Job title associated with the amendment."},"start_date":{"type":"string","format":"date","example":"2023-01-01","description":"Start date of the employment."},"hourly_rate":{"type":"number","example":50000,"description":"Hourly rate of the amendment. The max value supported is 1e19"},"seniority_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Public Id of the seniority level."},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","description":"Type of time off."},"effective_date":{"type":"string","format":"date","example":"2023-01-01","description":"Effective date for the amendment."},"seniority_date":{"type":"string","format":"date","example":"2023-01-01","nullable":true,"description":"The seniority date represents the employee’s original start date with a previous employer. It is used to preserve employment tenure when the employee transfers to this company. Can be null if not applicable."},"additional_info":{"type":"object","example":{"ai_scope_check_public_id":"ecf930fe-d9be-412c-9345-61dd80dc6822","job_categorization_log_id":"550e8400-e29b-41d4-a716-446655440000"},"nullable":true,"properties":{"ai_scope_check_public_id":{"type":"string","format":"uuid","example":"ecf930fe-d9be-412c-9345-61dd80dc6822","description":"Identifier or flag for AI scope validation check"},"job_categorization_log_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Identifier for job categorisation log"}},"description":"Additional metadata related to job validation and categorisation"},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Type of employment."},"employment_state":{"type":"string","example":"Active","description":"State of employment."},"probation_period":{"type":"number","example":3,"description":"Duration of the probation period."},"fixed_adjustments":{"type":"array","items":{"type":"object","required":["value","description","is_recurring"],"properties":{"id":{"type":"string","example":"cmfo0hqd5bw00cqs1b1jd7eag","description":"The ID of an existing active fixed adjustment to update or delete. Include this in the request only if you are updating or deleting an existing adjustment. Do not include it when creating a new one."},"value":{"type":"string","example":"1200.50","pattern":"^(?!0+(\\.0+)?$)\\d+(?:\\.\\d+)?$","description":"Value of the fixed adjustment. Must be a positive number, not zero."},"is_deleted":{"type":"boolean","example":false,"description":"Flag to mark the fixed adjustment as deleted. Required only when the fixed adjustment needs to be removed; omit it otherwise."},"description":{"type":"string","example":"Housing allowance for employee relocation","maxLength":256,"minLength":1,"description":"Description of the fixed adjustment."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the fixed adjustment is recurring. If set to false, it will be treated as a one-time fixed allowance."}}},"description":"Array of fixed adjustments to be submitted for the amendment request."},"notice_period_type":{"enum":["STANDARD","CUSTOM"],"type":"string","example":"CUSTOM","description":"Type of notice period."},"work_hours_per_week":{"type":"number","example":40,"description":"Number of work hours per week."},"variable_compensation":{"type":"object","required":["amount","type"],"properties":{"id":{"type":"string","example":"9cmfo0hqd5bw00cqs1b1jd7eag","description":"The ID of an existing active variable compensation to update or delete. Include this in the request only if you are updating or deleting an existing compensation. Do not include it when creating a new one."},"type":{"enum":["PERCENTAGE","FIXED"],"type":"string","example":"PERCENTAGE","description":"Type of variable compensation."},"title":{"type":"string","example":"Performance Bonus","maxLength":250,"minLength":1,"description":"The title of the compensation. Required when creating a new compensation. Optional when updating an existing compensation."},"amount":{"type":"number","format":"double","example":5000.75,"minimum":0,"description":"Positive amount for the variable compensation."},"timeline":{"enum":["MONTHLY","QUARTERLY","ANNUALLY","BIANNUALLY"],"type":"string","example":"ANNUALLY","description":"How often this compensation occurs. Required when creating a new compensation. Forbidden when updating an existing compensation."},"is_deleted":{"type":"boolean","example":false,"description":"Flag to mark the variable compensation as deleted. Required only when the variable compensation needs to be removed; omit it otherwise"},"effective_date":{"type":"string","format":"date","example":"2025-01-01","description":"The date when this compensation starts or becomes effective. Required when creating a new compensation. Optional when updating an existing compensation."}},"description":"Represents a change to an employee’s variable compensation (e.g., bonus or commission). This schema is used for creating new variable compensation items or updating existing ones. Some fields are required when creating, optional when updating, and forbidden when updating, as specified in each field description."},"notice_period_after_probation":{"type":"number","example":4,"description":"Notice period after probation."},"notice_period_during_probation":{"type":"number","example":2,"description":"Notice period during probation."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM"],"type":"string","example":"STANDARD","description":"Type of probation period for definite contracts."}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"delete":{"path":"/rest/eor/contracts/{contract_id}/amendments/{amendment_id}","tags":["EOR"],"method":"delete","summary":"Cancel amendment","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean","example":true}}}}}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of EOR worker contract."},{"in":"path","name":"amendment_id","schema":{"type":"string","format":"uuid"},"example":"77733bb9-9e17-4dfd-ba1b-1315f77cd7f7","required":true,"description":"A unique identifier for the employee contract amendment."}],"description":"Cancels a pending EOR contract amendment, voiding the request and preventing it from being reviewed or applied to the contract.\n\n **Token scopes**: `contracts:write`","operationId":"cancelAmendment-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"get":{"path":"/rest/eor/contracts/{contract_id}/amendments/{amendment_id}","tags":["EOR"],"method":"get","summary":"Retrieve amendment information","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"b9fd7198-7e81-4e57-bcf9-de6315194327","description":"Id of amendment"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED",null],"type":"string","example":"OPS","nullable":true,"description":"Type of amendment"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"8e6ba281-c703-4af3-ad93-b27434b70c7d","description":"Id of amendment item"},"item":{"type":"string","example":"SALARY_INCREASE","description":"Amendment item"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED"],"type":"string","example":"OPS","description":"Type of amendment"},"new_value":{"type":"string","example":"62382.93","description":"The new valid value after the attempted change."},"data_point":{"type":"string","example":"salary","description":"The field that is selected for amendment."},"previous_value":{"type":"string","example":"68.9170","description":"The previous valid value before the attempted change."}}},"description":"Items of amendment"},"scope":{"type":"string","example":"Project scope details","description":"Scope of the amendment."},"salary":{"type":"string","example":"50000.00","description":"Salary for the amendment.","x-sensitive-employment":true},"source":{"enum":["APP","PUBLIC_API","APP_BULK_AMENDMENT",null],"type":"string","example":"APP","nullable":true,"description":"Source of amendment flow creation."},"currency":{"type":"string","example":"GBP","description":"Contract currency."},"end_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","nullable":true,"description":"End date of the employment."},"holidays":{"type":"integer","example":20,"nullable":true,"description":"Number of holidays."},"job_code":{"type":"string","example":"49589","nullable":true,"description":"Job code associated with the job title."},"job_title":{"type":"string","example":"Software Engineer","maxLength":1000,"description":"Job title associated with the amendment.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date of the amendment."},"net_salary":{"type":"string","example":"95000.0000","nullable":true,"description":"Net salary for the amendment.","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Start date of the employment."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Date when amendment is updated"},"description":{"type":"string","example":"Reason or note for the amendment.","nullable":true,"description":"Free-text description of the amendment."},"hourly_rate":{"type":"string","example":"50000.00","nullable":true,"description":"Hourly rate of the amendment","x-sensitive-employment":true},"custom_items":{"type":"array","items":{"type":"object","required":["id","type","status"],"properties":{"id":{"type":"string","format":"uuid","example":"e7b45fa6-9a72-4ab6-b163-ef50ccaba7fb","description":"Unique identifier for the custom amendment item"},"type":{"type":"string","example":"START_DATE","description":"Type/context of the custom amendment item"},"status":{"enum":["REJECTED","APPROVED","PENDING_REVIEW","PENDING_LEGAL"],"type":"string","example":"PENDING_REVIEW","description":"Current status of the custom amendment item"},"description":{"type":"string","example":"Please change the start date to 20th November 2025.","nullable":true,"description":"Detailed description of the custom amendment item"},"rejection_reason":{"type":"string","example":"Start date cannot be moved this far in advance.","nullable":true,"description":"Reason for rejection if the item was rejected"}}},"description":"Custom amendment items associated with the amendment flow"},"job_category":{"type":"string","example":"Engineering","nullable":true,"description":"Job category associated with the job title."},"requested_by":{"type":"string","example":"John Doe","nullable":true,"description":"Profile name of the user who requested the change"},"seniority_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true,"description":"Seniority level identifier."},"document_type":{"enum":["EA","SOW","SOW_EA",null],"type":"string","example":"SOW_EA","nullable":true,"description":"Amendment document type"},"legal_context":{"type":"object","example":{"status":"REQUEST_LEGAL_REVIEW","details":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","jira_ticket":"COHDSB-9600","jira_web_url":"https://letsdeel.atlassian.net/browse/COHDSB-9600","requested_at":"2025-04-23T10:40:25.527Z"},"nullable":true,"properties":{"status":{"enum":["REQUEST_LEGAL_REVIEW","WAITING_FOR_ANOTHER_TEAM","WAITING_FOR_HRX_ACTION","DECLINED","SOLVED"],"type":"string","example":"REQUEST_LEGAL_REVIEW","description":"Current status of the legal review process"},"details":{"type":"string","example":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","description":"Details regarding the legal request"},"jira_ticket":{"type":"string","example":"COHDSB-9600","description":"Jira ticket identifier linked to the legal context"},"jira_web_url":{"type":"string","format":"uri","example":"https://letsdeel.atlassian.net/browse/COHDSB-9600","description":"Link to the Jira ticket for tracking"},"requested_at":{"type":"string","format":"date-time","example":"2025-04-23T10:40:25.527Z","description":"Timestamp when legal review was requested"}},"description":"Additional details needed for legal input"},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","description":"Type of time off."},"void_deadline":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Deadline this SOW to be voided"},"effective_date":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Effective date of the amendment."},"seniority_date":{"type":"string","format":"date","example":"2023-01-01","nullable":true,"description":"The seniority date represents the employee’s original start date with a previous employer. It is used to preserve employment tenure when the employee transfers to this company. Can be null if not applicable."},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Type of employment."},"sick_leave_days":{"type":"integer","format":"number","example":12,"nullable":true,"description":"Number of sick leave days"},"employment_state":{"type":"string","example":"Active","nullable":true,"description":"State of employment."},"probation_period":{"type":"integer","example":3,"nullable":true,"description":"Duration of the probation period."},"work_schedule_id":{"type":"string","format":"uuid","example":"2b786de3-9b25-42d9-8a2d-61583bcfc09e","nullable":true,"description":"Work schedule id"},"fixed_adjustments":{"type":"array","items":{"type":"object","required":["id","value","description","is_recurring","status","is_amended","is_country_specific","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmfo0hqd5bw00cqs1b1jd7eag","description":"System-generated unique identifier for the fixed adjustment record in an amendment request."},"value":{"type":"string","example":"1200.50","pattern":"^(?!0+(\\.0+)?$)\\d+(?:\\.\\d+)?$","description":"Value of the fixed adjustment."},"status":{"enum":["WAITING_FOR_SIGNING","ACTIVE","OUTDATED","CANCELLED"],"type":"string","example":"WAITING_FOR_SIGNING","description":"Current status of the fixed adjustment."},"created_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was created."},"is_amended":{"type":"boolean","example":true,"description":"Whether this fixed adjustment was amended from a previous one."},"is_deleted":{"type":"boolean","example":false,"description":"True if the fixed adjustment was deleted as part of the amendment; otherwise false."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was last updated."},"description":{"type":"string","example":"Housing allowance for employee relocation","maxLength":256,"minLength":1,"description":"Description of the fixed adjustment."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the fixed adjustment is recurring. If set to false, it will be treated as a one-time fixed allowance."},"is_country_specific":{"type":"boolean","example":false,"description":"Whether this fixed adjustment applies only to a specific country."},"parent_fixed_adjustment_id":{"type":"string","example":"cmfo0hqd5i9kbhfvk8fn7aniy","nullable":true,"description":"Reference to the parent fixed adjustment, if applicable."}}},"description":"List of fixed adjustments associated with the amendment request."},"rejection_context":{"type":"object","example":{"rejected_at":"2025-02-24T11:08:57.433Z","rejection_reason":"Client requested a different start date."},"nullable":true,"properties":{"rejected_at":{"type":"string","format":"date-time","example":"2025-02-24T11:08:57.433Z","description":"Timestamp of when the rejection occurred"},"rejection_reason":{"type":"string","example":"Client requested a different start date.","nullable":true,"description":"Reason provided when the amendment was rejected. Null when the amendment was cancelled rather than rejected by an admin."}},"description":"Additional details containing rejection reason"},"amendment_statuses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"ACTIVE","description":"Logical, system-oriented identifier of the amendment status. Can be used to group statuses under a parent category and subgroup them for more granular state tracking. The structure typically follows a dot-separated hierarchy (e.g., 'PARENT','PARENT.CHILD', 'PARENT.CHILD.CHILD.CHILD', ...), which allows logical grouping and filtering of related statuses."},"friendly_name":{"type":"string","example":"ACTIVE","description":"Human-readable label of the amendment status (e.g., DRAFT, PENDING, APPROVED)."},"amendment_flow_status":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"The timestamp when this amendment status was created."}},"description":"Metadata about the amendment status, including when it was created."}},"description":"Details of a specific amendment status in the lifecycle of the amendment."},"description":"List of amendment statuses representing the history and progression of an amendment."},"notice_period_type":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"CUSTOM","nullable":true,"description":"Type of notice period."},"void_deadline_type":{"enum":["CUTOFF","START_DATE","END_DATE","EXPIRY",null],"type":"string","example":"CUTOFF","nullable":true,"description":"Type of void deadline"},"work_hours_per_week":{"type":"string","example":"40.00","description":"Number of work hours per week.","x-sensitive-employment":true},"employee_nationality":{"type":"string","example":"GB","description":"Nationality of the employee.","x-sensitive-pii":true},"is_hrx_action_needed":{"type":"boolean","example":false,"description":"Is HRX action needed."},"variable_compensation":{"type":"object","required":["id","title","amount","type","timeline","parent_id","effective_date","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","description":"The unique ID assigned by the system to this variable compensation record."},"type":{"enum":["FIXED","PERCENTAGE"],"type":"string","example":"FIXED","description":"The way the compensation is calculated. `FIXED` means a fixed amount (like $1000). `PERCENTAGE` means it’s based on a percentage of the salary."},"title":{"type":"string","example":"Bonus","description":"Title or name of the variable compensation."},"amount":{"type":"string","format":"decimal","example":"100000.0000","description":"The value of the compensation. Shown as a string to keep the exact number of decimals."},"timeline":{"enum":["MONTHLY","QUARTERLY","ANNUALLY","BIANNUALLY"],"type":"string","example":"ANNUALLY","description":"How often the compensation is paid — for example monthly, quarterly, annually, or twice a year."},"parent_id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","nullable":true,"description":"Reference to the parent variable compensation, if applicable. Null if this compensation is not linked to any compensation."},"created_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was first created in the system."},"is_amended":{"type":"boolean","example":true,"description":"Shows whether this compensation has been changed as part of an amendment."},"is_deleted":{"type":"boolean","example":true,"description":"Shows whether this compensation has been deleted."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was last updated."},"effective_date":{"type":"string","format":"date-time","example":"2025-10-18T00:00:00.000Z","description":"The date when this compensation starts being valid."},"incentive_plan":{"type":"object","properties":{"details":{"type":"string","example":"Year-end performance bonus based on quarterly targets.","description":"Extra details about the incentive plan, if any."},"employee_signature":{"type":"string","example":"John Doe","description":"The employee’s signature for the incentive plan, if collected."},"employee_signed_at":{"type":"string","format":"date-time","example":"2025-12-15T14:30:00.000Z","description":"The date and time when the employee signed the incentive plan. Empty if not signed."}},"description":"Details of the incentive plan linked to this compensation, if any."}},"description":"Represents a variable compensation record (such as a bonus, commission, or incentive) within a contract. It contains details like the amount, type, frequency, and whether it is part of an incentive plan. The record also tracks when it was created, updated, and whether it has been amended."},"notice_period_time_unit":{"enum":["DAY","WEEK","MONTH",null],"type":"string","example":"WEEK","nullable":true,"description":"Notice period time unit."},"is_effective_date_updated":{"type":"boolean","example":false,"description":"Is Effective Date updated."},"work_schedule_rules_version":{"type":"string","example":"2","nullable":true,"description":"Work schedule rule version."},"notice_period_after_probation":{"type":"string","example":"30","nullable":true,"description":"Notice period after probation."},"notice_period_during_probation":{"type":"string","example":"15","nullable":true,"description":"Notice period during probation."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"STANDARD","nullable":true,"description":"Type of probation period for definite contracts."}}}}}}},"description":"Amendment info"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of EOR worker contract."},{"in":"path","name":"amendment_id","schema":{"type":"string","format":"uuid"},"example":"77733bb9-9e17-4dfd-ba1b-1315f77cd7f7","required":true,"description":"A unique identifier for the employee contract amendment."}],"description":"Retrieves the full details of a single amendment on an EOR contract by its ID, including its current status, requested changes, effective date, and rejection context. Use it to inspect an amendment after creating, updating, or acting on it.\n\n **Token scopes**: `contracts:read`","operationId":"viewInformationAboutAmendment-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/contracts/{contract_id}/preview":{"get":{"path":"/rest/contracts/{contract_id}/preview","tags":["Contractors"],"method":"get","summary":"Preview a contract agreement","responses":{"200":{"content":{"text/html":{"schema":{"type":"string"}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"templateId","schema":{"type":"string","format":"uuid"},"example":"9585241d-2387-4d80-abea-cea4dde4807d","required":false,"description":"ID of an existing contract template."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Returns the rendered HTML content of an IC or EOR contract agreement for a given contract_id. If no templateId is provided, the default or currently assigned template is used. Global Payroll contract types are not supported.\n\n **Token scopes**: `contracts:read`, `worker:read`","operationId":"previewAContractAgreement-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","worker:read"]}]}},"/payouts/employees/methods":{"post":{"path":"/rest/payouts/employees/methods","tags":["Payouts"],"method":"post","summary":"Add/Edit Bank Details","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"230e7bf0-6c3e-426a-992c-7cff124561ff","description":"Unique identifier for the bank details"},"data":{"type":"object","properties":{"city":{"type":"string","example":"City","description":"Name of the city"},"iban":{"type":"string","example":"IT60X0542811101000000123456","description":"International Bank Account Number"},"postal":{"type":"string","example":"102030","description":"Postal code"},"bank_name":{"type":"string","example":"BANK NAME","description":"Name of the bank"},"full_name":{"type":"string","example":"FULL NAME","description":"Full name of the account holder"},"swift_bic":{"type":"string","example":"FIXXXXFI","description":"SWIFT/BIC code"},"country_code":{"type":"string","example":"IT","description":"Country code"},"address_line1":{"type":"string","example":"Address Line","description":"Address line 1"},"original_name":{"type":"string","example":"ORIGINAL NAME","description":"Original name of the account holder"},"province_state":{"type":"string","example":"Province","description":"Province or state"},"bank_country_code":{"type":"string","example":"IT","description":"Country code of the bank"}}},"status":{"type":"string","example":"APPROVED","description":"Status of the bank details"},"version":{"type":"string","example":"f278fcff-0ffb-420c-8207-929b926638a0","description":"Version identifier"},"created_at":{"type":"string","example":"2024-11-28T11:56:54.057Z","description":"Creation timestamp"},"updated_at":{"type":"string","example":"2024-11-28T11:56:54.091Z","description":"Last update timestamp"},"is_active_version":{"type":"boolean","example":true,"description":"Indicates if this is the active version"},"funds_distribution":{"type":"number","example":100,"description":"Funds distribution percentage"}}}}},"examples":{"Add Bank Details":{"value":{"data":{"id":"230e7bf0-6c3e-426a-992c-7cff124561ff","data":{"city":"City","iban":"IT60X0542811101000000123456","postal":"102030","bank_name":"BANK NAME","full_name":"FULL NAME","swift_bic":"FIXXXXFI","country_code":"IT","address_line1":"Address Line","original_name":"ORIGINAL NAME","province_state":"Province","bank_country_code":"IT"},"status":"APPROVED","version":"f278fcff-0ffb-420c-8207-929b926638a0","created_at":"2024-11-28T11:56:54.057Z","updated_at":"2024-11-28T11:56:54.091Z","is_active_version":true,"funds_distribution":100}}},"Edit Bank Details":{"value":{"data":{"id":"230e7bf0-6c3e-426a-992c-7cff124561ff","data":{"city":"City","iban":"IT60X0542811101000000123456","postal":"102030","bank_name":"BANK NAME","full_name":"FULL NAME","swift_bic":"FIXXXXFI","country_code":"IT","address_line1":"Address Line","original_name":"EDITED ORIGINAL NAME","province_state":"Province","bank_country_code":"IT"},"status":"APPROVED","version":"4a4c5b41-ef11-42ea-b905-6f4beb1d4173","created_at":"2024-11-28T12:21:31.712Z","updated_at":"2024-11-28T12:21:31.818Z","is_active_version":true,"funds_distribution":100}}}}}},"description":"Add Bank Details / Edit Bank Details"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Creates or updates an employee's bank payout method. If a method already exists, the existing record is superseded and the response includes a version identifier and activation status reflecting the updated state.\n\n **Token scopes**: `worker:read`, `worker:write`","operationId":"addEditBankDetails-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"230e7bf0-6c3e-426a-992c-7cff124561ff","description":"Unique identifier for the bank details"},"payload":{"type":"object","properties":{"city":{"type":"string","example":"City","description":"Name of the city"},"iban":{"type":"string","example":"IT60X0542811101000000123456","description":"International Bank Account Number"},"postal":{"type":"string","example":"102030","description":"Postal code"},"bank_name":{"type":"string","example":"BANK NAME","description":"Name of the bank"},"full_name":{"type":"string","example":"FULL NAME","description":"Full name of the account holder"},"swift_bic":{"type":"string","example":"FIXXXXFI","description":"SWIFT/BIC code"},"country_code":{"type":"string","example":"IT","description":"Country code"},"address_line1":{"type":"string","example":"Address Line","description":"Address line 1"},"original_name":{"type":"string","example":"EDITED ORIGINAL NAME","description":"Original name of the account holder"},"province_state":{"type":"string","example":"Province","description":"Province or state"},"bank_country_code":{"type":"string","example":"IT","description":"Country code of the bank"}},"description":"Payload containing bank details"}},"description":"Request data"}}},"examples":{"Add/Edit Bank Details":{"value":{"data":{"id":"230e7bf0-6c3e-426a-992c-7cff124561ff","payload":{"city":"City","iban":"IT60X0542811101000000123456","postal":"102030","bank_name":"BANK NAME","full_name":"FULL NAME","swift_bic":"FIXXXXFI","country_code":"IT","address_line1":"Address Line","original_name":"EDITED ORIGINAL NAME","province_state":"Province","bank_country_code":"IT"}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]},"get":{"path":"/rest/payouts/employees/methods","tags":["Payouts"],"method":"get","summary":"Get Bank Details","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"fd64ee5a-d4bf-49c4-a83e-60ab24a80b99","description":"Unique identifier for the bank details"},"data":{"type":"object","properties":{"city":{"type":"string","example":"City","description":"Name of the city"},"iban":{"type":"string","example":"FI6300001111222233","description":"International Bank Account Number"},"postal":{"type":"string","example":"102030","description":"Postal code"},"bank_name":{"type":"string","example":"BANK NAME","description":"Name of the bank"},"full_name":{"type":"string","example":"FULL NAME","description":"Full name of the account holder"},"swift_bic":{"type":"string","example":"FIXXXXFI","description":"SWIFT/BIC code"},"country_code":{"type":"string","example":"FI","description":"Country code"},"address_line1":{"type":"string","example":"Address Line","description":"Address line 1"},"original_name":{"type":"string","example":"ORIGINAL NAME V2","description":"Original name of the account holder"},"province_state":{"type":"string","example":"Province","description":"Province or state"},"bank_country_code":{"type":"string","example":"FI","description":"Country code of the bank"}}},"status":{"type":"string","example":"APPROVED","description":"Status of the bank details"},"version":{"type":"string","example":"8fb84054-9100-40cb-b0cf-a180decbbfc7","description":"Version identifier"},"created_at":{"type":"string","example":"2024-11-28T11:22:11.499Z","description":"Creation timestamp"},"updated_at":{"type":"string","example":"2024-11-28T11:56:54.082Z","description":"Last update timestamp"},"is_active_version":{"type":"boolean","example":true,"description":"Indicates if this is the active version"},"funds_distribution":{"type":"number","example":0,"description":"Funds distribution percentage"}}},"example":[{"id":"fd64ee5a-d4bf-49c4-a83e-60ab24a80b99","data":{"city":"City","iban":"FI6300001111222233","postal":"102030","bank_name":"BANK NAME","full_name":"FULL NAME","swift_bic":"FIXXXXFI","country_code":"FI","address_line1":"Address Line","original_name":"ORIGINAL NAME V2","province_state":"Province","bank_country_code":"FI"},"status":"APPROVED","version":"8fb84054-9100-40cb-b0cf-a180decbbfc7","created_at":"2024-11-28T11:22:11.499Z","updated_at":"2024-11-28T11:56:54.082Z","is_active_version":true,"funds_distribution":0},{"id":"cddad0e1-97f1-446c-b322-5d6acd24fbca","data":{"city":"City","iban":"ES60X0542811101000000123456","postal":"102030","bank_name":"BANK NAME","full_name":"FULL NAME","swift_bic":"FIXXXXFI","country_code":"ES","address_line1":"Address Line","original_name":"ORIGINAL NAME","province_state":"Province","bank_country_code":"ES"},"status":"APPROVED","version":"12d1145d-dc5e-4753-97ab-4bd9596e1543","created_at":"2024-11-28T11:55:44.322Z","updated_at":"2024-11-28T11:56:54.082Z","is_active_version":true,"funds_distribution":0},{"id":"230e7bf0-6c3e-426a-992c-7cff124561ff","data":{"city":"City","iban":"IT60X0542811101000000123456","postal":"102030","bank_name":"BANK NAME","full_name":"FULL NAME","swift_bic":"FIXXXXFI","country_code":"IT","address_line1":"Address Line","original_name":"ORIGINAL NAME","province_state":"Province","bank_country_code":"IT"},"status":"APPROVED","version":"f278fcff-0ffb-420c-8207-929b926638a0","created_at":"2024-11-28T11:56:54.057Z","updated_at":"2024-11-28T11:56:54.091Z","is_active_version":true,"funds_distribution":100}]}}},"examples":{"Get Bank Details":{"value":{"data":[{"id":"fd64ee5a-d4bf-49c4-a83e-60ab24a80b99","data":{"city":"City","iban":"FI6300001111222233","postal":"102030","bank_name":"BANK NAME","full_name":"FULL NAME","swift_bic":"FIXXXXFI","country_code":"FI","address_line1":"Address Line","original_name":"ORIGINAL NAME V2","province_state":"Province","bank_country_code":"FI"},"status":"APPROVED","version":"8fb84054-9100-40cb-b0cf-a180decbbfc7","created_at":"2024-11-28T11:22:11.499Z","updated_at":"2024-11-28T11:56:54.082Z","is_active_version":true,"funds_distribution":0},{"id":"cddad0e1-97f1-446c-b322-5d6acd24fbca","data":{"city":"City","iban":"ES60X0542811101000000123456","postal":"102030","bank_name":"BANK NAME","full_name":"FULL NAME","swift_bic":"FIXXXXFI","country_code":"ES","address_line1":"Address Line","original_name":"ORIGINAL NAME","province_state":"Province","bank_country_code":"ES"},"status":"APPROVED","version":"12d1145d-dc5e-4753-97ab-4bd9596e1543","created_at":"2024-11-28T11:55:44.322Z","updated_at":"2024-11-28T11:56:54.082Z","is_active_version":true,"funds_distribution":0},{"id":"230e7bf0-6c3e-426a-992c-7cff124561ff","data":{"city":"City","iban":"IT60X0542811101000000123456","postal":"102030","bank_name":"BANK NAME","full_name":"FULL NAME","swift_bic":"FIXXXXFI","country_code":"IT","address_line1":"Address Line","original_name":"ORIGINAL NAME","province_state":"Province","bank_country_code":"IT"},"status":"APPROVED","version":"f278fcff-0ffb-420c-8207-929b926638a0","created_at":"2024-11-28T11:56:54.057Z","updated_at":"2024-11-28T11:56:54.091Z","is_active_version":true,"funds_distribution":100}]}}}}},"description":"Get Bank Details"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Retrieves the configured bank payout methods for an employee.\n\n **Token scopes**: `worker:read`, `worker:write`","operationId":"getBankDetails-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/workers/contracts/{contract_id}/compliance-documents/{document_id}":{"delete":{"path":"/rest/workers/contracts/{contract_id}/compliance-documents/{document_id}","tags":["Workers"],"method":"delete","summary":"Delete the submission of one compliance document of a worker contract","responses":{"204":{"description":"Submission deleted successfully. No response body."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"limit must be an integer between 1 and 100","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Bad request — the requirement has nothing submitted against it, so there is nothing to delete."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Authentication required.","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unauthorized — the access token is missing, expired or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Forbidden — the worker does not hold this contract, or the token lacks the required scope."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Compliance document not found for this contract","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Not found — `document_id` is not part of the contract."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"WORKER_TYPE_NOT_SUPPORTED","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Compliance documents are not supported for this contract type on this endpoint yet","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unprocessable entity — the contract is not a Global Payroll contract, so compliance documents are not available on this endpoint. The error code is `WORKER_TYPE_NOT_SUPPORTED`."},"429":{"description":"Too many deletions from this worker in a short window. Deletions are rate limited per authenticated worker, on a budget separate from submissions: back off and retry rather than looping."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","maxLength":64,"minLength":1},"example":"37nex2x","required":true,"description":"Public id of the Global Payroll contract the documents belong to."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the compliance document requirement, as returned in `id` by the list endpoint."}],"description":"Deletes what the authenticated worker submitted against a compliance document of one of their Global Payroll contracts. This removes EVERY file of the requirement, not one file: there is no per-file delete on this endpoint. The action is permanent and the files cannot be recovered. The requirement itself is not removed — after the delete it is still listed, as a requirement with nothing submitted, and it can be submitted again. The response carries no body. Only Global Payroll contracts are supported.\n\n **Token scopes**: `worker:write`","operationId":"deleteWorkerContractComplianceDocumentSubmission-v2026-08-25","security":[{"deelToken":[]},{"oauth2":["worker:write"]}]},"get":{"path":"/rest/workers/contracts/{contract_id}/compliance-documents/{document_id}","tags":["Workers"],"method":"get","summary":"Retrieve one compliance document of a worker contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","name","description","country","is_required","has_template","filenames","uploaded_at","created_at","updated_at","submission_status","is_acknowledgement_only_document"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the compliance document requirement. Use it as `document_id` on the other endpoints."},"name":{"type":"string","example":"Passport or National ID","description":"Display name of the document, in the worker language."},"country":{"type":"string","example":"US","nullable":true,"description":"ISO 3166-1 alpha-2 country code the requirement applies to. Null for a requirement that applies everywhere."},"filenames":{"type":"array","items":{"type":"string"},"example":["passport_scan.pdf"],"description":"Names of the files submitted against this requirement. Empty array when nothing has been submitted."},"created_at":{"type":"string","format":"date-time","example":"2026-01-05T14:30:00.000Z","nullable":true,"description":"When the submission was created. Carries the same value as `uploaded_at`."},"updated_at":{"type":"string","format":"date-time","example":"2026-01-06T08:15:00.000Z","nullable":true,"description":"When the submission was last changed. Null when nothing has been submitted."},"description":{"type":"string","example":"Please upload a clear copy of your passport or national ID card.","description":"What the document asks for, in the worker language. Empty string when the requirement has no description."},"is_required":{"type":"boolean","example":true,"description":"Whether the worker has to submit this document. A requirement with a 30-day grace period after the employment start reads `true`: it is required, only not immediately."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-01-05T14:30:00.000Z","nullable":true,"description":"When the submission was created. Null when nothing has been submitted."},"has_template":{"type":"boolean","example":true,"description":"Whether a template is provided for this document."},"submission_status":{"type":"string","example":"REVIEWING","nullable":true,"description":"Reads `REVIEWING` while a submission is not final yet. Null at every other time."},"is_consent_required":{"type":"boolean","example":true,"description":"Whether the worker has to consent. Present only for acknowledgement-only documents that declare the flag."},"is_acknowledgement_only_document":{"type":"boolean","example":false,"description":"Whether the document only has to be acknowledged, with no file to submit."}}}}},"example":{"data":{"id":"c106a26a-21bb-5538-8bf2-57095d1976c1","name":"Passport or National ID","country":"US","filenames":["passport_scan.pdf"],"created_at":"2026-01-05T14:30:00.000Z","updated_at":"2026-01-06T08:15:00.000Z","description":"Please upload a clear copy of your passport or national ID card.","is_required":true,"uploaded_at":"2026-01-05T14:30:00.000Z","has_template":false,"submission_status":"REVIEWING","is_acknowledgement_only_document":false}}}},"description":"Compliance document returned successfully. `created_at` and `updated_at` come from the submission; `created_at` carries the same value as `uploaded_at`, and all three are null until something is submitted against the requirement. The language of `name` and `description` follows the language preference of the authenticated worker. It cannot be selected per request, and the same document may read differently for two workers of the same organization. Text falls back to English when no published translation exists for that language."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"limit must be an integer between 1 and 100","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Authentication required.","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unauthorized — the access token is missing, expired or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Forbidden — the worker does not hold this contract, or the token lacks the required scope."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Compliance document not found for this contract","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Not found — `document_id` is not part of the contract, or it is a requirement that no longer applies to it."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"WORKER_TYPE_NOT_SUPPORTED","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Compliance documents are not supported for this contract type on this endpoint yet","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unprocessable entity — the contract is not a Global Payroll contract, so compliance documents are not available on this endpoint. The error code is `WORKER_TYPE_NOT_SUPPORTED`."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","maxLength":64,"minLength":1},"example":"37nex2x","required":true,"description":"Public id of the Global Payroll contract the documents belong to."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the compliance document requirement, as returned in `id` by the list endpoint."}],"description":"Returns a single compliance document of one of the authenticated worker Global Payroll contracts, in the same shape the list endpoint returns. Use it to poll one requirement after a submission instead of fetching the whole list. Only Global Payroll contracts are supported.\n\n **Token scopes**: `worker:read`","operationId":"getWorkerContractComplianceDocument-v2026-08-25","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]},"post":{"path":"/rest/workers/contracts/{contract_id}/compliance-documents/{document_id}","tags":["Workers"],"method":"post","summary":"Submit files for one compliance document of a worker contract","responses":{"204":{"description":"Files submitted successfully. No response body — read the document back through the list or the single document endpoint to confirm the filenames, where `submission_status` can read `REVIEWING` until the submission is final."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"limit must be an integer between 1 and 100","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Bad request — an unusable `file_id` or `one_time_secret`, or a file type outside pdf, png, jpg, jpeg and heic. Multipart bodies and raw storage keys are not accepted."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Authentication required.","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unauthorized — the access token is missing, expired or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Forbidden — the requirement is not open for submission, the worker does not hold this contract, or the token lacks the required scope."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Compliance document not found for this contract","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Not found — `document_id` is not part of the contract."},"412":{"description":"The files could not be stored against the requirement. Nothing was submitted, so the request can be retried."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"WORKER_TYPE_NOT_SUPPORTED","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Compliance documents are not supported for this contract type on this endpoint yet","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unprocessable entity — the contract is not a Global Payroll contract, so compliance documents are not available on this endpoint. The error code is `WORKER_TYPE_NOT_SUPPORTED`."},"429":{"description":"Too many submissions from this worker in a short window. Submissions are rate limited per authenticated worker: back off and retry rather than looping."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","maxLength":64,"minLength":1},"example":"37nex2x","required":true,"description":"Public id of the Global Payroll contract the documents belong to."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the compliance document requirement, as returned in `id` by the list endpoint."}],"description":"Submits one or more files against a compliance document of one of the authenticated worker Global Payroll contracts. Upload the bytes to the File Service first, then reference each file here by `file_id` and its `one_time_secret`; the Files endpoints of this API issue both. Side effects: the files replace whatever was previously submitted against the requirement, and the previous version is archived when document versioning is enabled for the organization. Only Global Payroll contracts are supported.\n\n **Token scopes**: `worker:write`","operationId":"submitWorkerContractComplianceDocumentFiles-v2026-08-25","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"type":"object","required":["file_id","one_time_secret","original_filename","content_type"],"properties":{"file_id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"File Service file id."},"content_type":{"type":"string","example":"application/pdf","maxLength":255,"description":"MIME type of the file."},"one_time_secret":{"type":"string","example":"example-one-time-secret-value","maxLength":1024,"minLength":1,"description":"File Service one-time secret for that file."},"original_filename":{"type":"string","example":"i9.pdf","maxLength":500,"minLength":1,"description":"Original filename, extension included."}},"additionalProperties":false},"maxItems":20,"minItems":1,"description":"Files to submit against the requirement. Allowed types: pdf, png, jpg, jpeg, heic."}},"additionalProperties":false}},"additionalProperties":false},"example":{"data":{"files":[{"file_id":"c106a26a-21bb-5538-8bf2-57095d1976c1","content_type":"application/pdf","one_time_secret":"example-one-time-secret-value","original_filename":"passport_scan.pdf"}]}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/timesheets/root-presets":{"get":{"path":"/rest/timesheets/root-presets","tags":["Projects"],"method":"get","summary":"Get Hourly Report Root Presets","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","title","description","hourly_report_presets_count","contracts_count"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the hourly report root preset"},"file":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the file"},"name":{"type":"string","example":"your_file_name","description":"The name of the file"},"type":{"type":"string","example":"pdf","description":"The type of the file"}}},"type":{"enum":["RATE","TRACKING"],"type":"string","example":"RATE","description":"The type of preset, RATE – indicates a preset that overrides the default contract rate, TRACKING - used exclusively for tracking, applying the default contract rate"},"title":{"type":"string","example":"Standard Monthly Template","description":"The title of the hourly report root preset"},"description":{"type":"string","example":"Base template for monthly timesheet reporting","description":"Detailed description of the hourly report root preset"},"contracts_count":{"type":"integer","example":5,"description":"Number of contracts using this root preset"},"hourly_report_presets_count":{"type":"integer","example":12,"description":"Number of hourly report presets created from this root preset"}}}},"page":{"type":"object","required":["total_rows","cursor"],"properties":{"cursor":{"type":"string","example":"next_page_token_123","description":"Pagination cursor for fetching the next set of results"},"total_rows":{"type":"integer","example":100,"description":"Total number of root presets available"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Organization is required"}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":10,"maximum":100},"example":20,"description":"Maximum number of items to return per page (max: 100)"},{"in":"query","name":"order_by","schema":{"enum":["created_at"],"type":"string","default":"created_at"},"example":"created_at","description":"Field to order the results by"},{"in":"query","name":"order_direction","schema":{"enum":["ASC","DESC"],"type":"string","default":"DESC"},"example":"DESC","description":"Direction to order the results (ascending or descending)"},{"in":"query","name":"work_statement_statuses","schema":{"type":"array","items":{"type":"string"},"default":["ACTIVE","PENDING","INITIAL"]},"example":["ACTIVE","PENDING"],"description":"Filter results by work statement status"},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"next_page_token_123","description":"Pagination cursor for fetching the next page of results"}],"description":"Returns a cursor-paginated list of hourly report root presets, with optional filtering by work_statement_statuses and result ordering.\n\n **Token scopes**: `timesheets:read`","operationId":"getHourlyReportRootPresets-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]},"post":{"path":"/rest/timesheets/root-presets","tags":["Projects"],"method":"post","summary":"Create Hourly Report Root Preset","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the created root preset"},"async_task":{"type":"object","properties":{"id":{"type":"integer","example":12345,"description":"The identifier of the asynchronous task processing this request"}}}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Organization is required"}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates a new hourly report root preset and initiates asynchronous processing; the response includes an async_task object that can be used to track completion.\n\n **Token scopes**: `timesheets:write`","operationId":"createHourlyReportRootPreset-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["title"],"properties":{"file":{"type":"string","format":"binary","example":"template.pdf","nullable":true,"description":"Optional file attachment for the root preset"},"type":{"enum":["RATE","TRACKING"],"type":"string","example":"RATE","description":"The type of preset, RATE – indicates a preset that overrides the default contract rate, TRACKING - used exclusively for tracking, applying the default contract rate"},"title":{"type":"string","example":"Standard Monthly Timesheet Template","maxLength":255,"description":"The title of the hourly report root preset (maximum 255 characters)"},"description":{"type":"string","example":"Base template for monthly timesheet reporting across all contracts","maxLength":30000,"description":"Detailed description of the root preset's purpose and usage (maximum 30000 characters)"},"hourly_report_presets":{"type":"array","items":{"type":"object","required":["contract_id"],"properties":{"file":{"type":"string","format":"binary","example":"contract_specific_template.pdf","nullable":true,"description":"Optional file attachment for this specific preset instance"},"rate":{"type":"number","example":75.5,"minimum":0.1,"description":"The hourly rate for this preset (must be greater than 0)"},"title":{"type":"string","example":"Client A Monthly Timesheet","maxLength":255,"description":"The title for this specific preset instance (maximum 255 characters)"},"action_type":{"enum":["ADD"],"type":"string","default":"ADD","example":"ADD","description":"The action to perform with this preset (currently only ADD is supported)"},"contract_id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the contract this preset is associated with"},"description":{"type":"string","example":"Monthly timesheet template customized for Client A's reporting requirements","nullable":true,"maxLength":30000,"description":"Detailed description for this specific preset instance (maximum 30000 characters)"}}},"default":[],"description":"Array of preset configurations to be created along with the root preset"},"hourly_report_presets_processing_type":{"enum":["ASYNC","SYNC"],"type":"string","default":"SYNC","example":"SYNC","description":"Determines whether presets should be processed synchronously or asynchronously"}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]}},"/payouts/contractors/methods":{"post":{"path":"/rest/payouts/contractors/methods","tags":["Payouts"],"method":"post","summary":"Create a bank transfer method","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Unique identifier for the bank transfer method"},"status":{"enum":["pending","verifying","failed","approved"],"type":"string","example":"approved","description":"Status of the bank transfer method"}}}}},"example":{"data":{"id":"123e4567-e89b-12d3-a456-426614174000","status":"approved"}}}},"description":"Bank transfer method created successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"BAD_REQUEST","description":"Machine-readable error code."},"message":{"type":"string","example":"Invalid input","description":"Human-readable explanation."}}}}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Registers a new bank transfer payout method; the request payload structure is dynamic and determined by the selected option, so callers should retrieve field requirements before submitting.\n\n **Token scopes**: `worker:read`, `worker:write`","operationId":"createABankTransferMethod-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["payment_method","address","payload","selected_option"],"properties":{"address":{"type":"object","required":["first_line","country","post_code","city"],"properties":{"city":{"type":"string","example":"San Francisco","description":"City name"},"state":{"type":"string","example":"CA","description":"State code"},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","description":"Country code"},"post_code":{"type":"string","example":"210000","description":"Post code"},"first_line":{"type":"string","example":"First Line","description":"First line of the address"}}},"payload":{"type":"object","example":{"currency":"US","swiftCode":"DBDBRSBG","intermediary":{"bic":"RSDASDS","country":"DE"},"accountNumber":"SA0380000000608010167222","accountHolderName":"John Doe"},"description":"Dynamic properties based on selected option. For example, if `selectedOption` is `swift_code`, payload may include `swiftCode`, `accountHolderName`, and `accountNumber`.","additionalProperties":true},"is_default":{"type":"boolean","example":true,"description":"Specifies if the method is the default payout method - if true, autowithdrawal will be enabled for the contractor using this method"},"method_name":{"type":"string","example":"Bank Method","description":"Name for method"},"payment_method":{"enum":["bank_transfer"],"type":"string","example":"bank_transfer","description":"Specifies the type of payment method"},"selectedOption":{"type":"string","example":"swift_code","description":"Specifies the type of bank transfer method. Maps from requirements type field"}}}}},"example":{"data":{"name":"Bank Method","address":{"city":"San Francisco","state":"CA","country":"US","post_code":"22406","first_line":"First Line"},"payload":{"currency":"USD","swiftCode":"DBDBRSBG","intermediary":{"bic":"RSDASDS","country":"US"},"accountNumber":"SA0380000000608010165443","accountHolderName":"John Doe"},"is_default":true,"payment_method":"bank_transfer","selected_option":"swift_code"}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]},"get":{"path":"/rest/payouts/contractors/methods","tags":["Payouts"],"method":"get","summary":"Fetch all payout methods","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","version","status","payment_method","selected_option","is_default","created_at","updated_at","payload"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"Unique identifier of the payout method (method chain ID)."},"status":{"type":"string","example":"APPROVED","description":"Current status of the payout method (e.g. PENDING, VERIFYING, APPROVED, FAILED)."},"address":{"type":"object","nullable":true,"properties":{"city":{"type":"string","example":"San Francisco","description":"City name"},"state":{"type":"string","example":"CA","description":"State code"},"country":{"type":"string","example":"US","description":"Country code"},"post_code":{"type":"string","example":"210000","description":"Post code"},"first_line":{"type":"string","example":"First Line","description":"First line of the address"}},"description":"Address associated with the payout method, when available.","additionalProperties":true},"payload":{"type":"object","example":{"currency":"USD","swiftCode":"DBDBRSBG","intermediary":{"bic":"RSDASDS","country":"DE"},"accountNumber":"SA0380000000608010167222","accountHolderName":"John Doe"},"description":"Dynamic properties based on selected option. For example, if `selected_option` is `SWIFT CODE`, payload may include `swiftCode`, `accountHolderName`, and `accountNumber`.","additionalProperties":true},"version":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440001","description":"Unique identifier of the specific version of the payout method."},"created_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00.000Z","description":"Timestamp when the payout method was created."},"is_default":{"type":"boolean","example":true,"description":"Specifies if the method is the default payout method - if true, autowithdrawal will be enabled for the contractor using this method"},"updated_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00.000Z","description":"Timestamp when the payout method was last updated."},"method_name":{"type":"string","example":"Bank Method","nullable":true,"description":"Name for the method."},"payment_method":{"type":"string","example":"BANK TRANSFER","description":"Type of payout method."},"selected_option":{"type":"string","example":"SWIFT CODE","description":"Specifies the type of bank transfer method. Maps from the requirements type field."}}},"description":"List of payout methods associated with the account."}}},"example":{"data":[{"id":"123e4567-e89b-12d3-a456-426614174000","status":"APPROVED","address":{"city":"San Francisco","state":"CA","country":"US","post_code":"22406","first_line":"First Line"},"payload":{"currency":"USD","swiftCode":"DBDBRSBG","accountNumber":"SA0380000000608010167222","accountHolderName":"John Doe"},"version":"550e8400-e29b-41d4-a716-446655440001","created_at":"2024-01-01T00:00:00.000Z","is_default":true,"updated_at":"2024-01-01T00:00:00.000Z","method_name":"Bank Method","payment_method":"BANK TRANSFER","selected_option":"SWIFT CODE"},{"id":"223e4567-e89b-12d3-a456-426614174001","status":"VERIFYING","address":{"city":"San Francisco","state":"CA","country":"US","post_code":"22406","first_line":"Second Line"},"payload":{"currency":"USD","swiftCode":"DBDBRSBG","accountNumber":"SA0380000000608010165443","accountHolderName":"John Doe"},"version":"660e8400-e29b-41d4-a716-446655440002","created_at":"2024-01-01T00:00:00.000Z","is_default":false,"updated_at":"2024-01-01T00:00:00.000Z","method_name":"Backup Method","payment_method":"BANK TRANSFER","selected_option":"SWIFT CODE"}]}}},"description":"List of payout methods retrieved successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"BAD_REQUEST","description":"Machine-readable error code."},"message":{"type":"string","example":"Invalid input","description":"Human-readable explanation."}}}}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"is_default","schema":{"type":"boolean"},"example":true,"required":false,"description":"Filter by whether the method is default. If true, only default methods will be returned."}],"description":"Returns all payout methods associated with the authenticated account, with optional filtering to return only the default method.\n\n **Token scopes**: `worker:read`, `worker:write`","operationId":"fetchAllPayoutMethods-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/gp/workers/{worker_id}/banks/{bank_id}":{"patch":{"path":"/rest/gp/workers/{worker_id}/banks/{bank_id}","tags":["Global Payroll"],"method":"patch","summary":"Modify bank account","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","description":"Unique identifier for the modified bank account."},"status":{"type":"string","example":"success","description":"The status of the modified bank account."},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Timestamp of when the bank account was created, in ISO-8601 format."},"updated_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Timestamp of the last update to the bank account, in ISO-8601 format."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for a worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for a worker in UUID format."},{"in":"path","name":"bank_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for the bank account in UUID format."},"example":"a3b33c4d-8c02-4f7d-92b5-123abc456def","required":true,"description":"Unique identifier for the bank account in UUID format."}],"description":"Partially updates the bank account for the worker; only fields provided in the request body are modified.\n\n **Token scopes**: `people:write`","operationId":"patchGpBankAccount-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"city":{"type":"string","example":"Springfield","description":"The city of the user's address."},"iban":{"type":"string","example":"GB29NWBK60161331926819","description":"The International Bank Account Number (IBAN)."},"email":{"type":"string","example":"john.doe@example.com","description":"The user's email address."},"phone":{"type":"string","example":"+1234567890","description":"The user's phone number."},"postal":{"type":"string","example":"12345","description":"The user's postal or ZIP code."},"tax_id":{"type":"string","example":"123-45-6789","description":"The user's tax identification number."},"bank_code":{"type":"string","example":"123","description":"The bank code."},"bank_name":{"type":"string","example":"Bank of Examples","description":"Name of the user's bank."},"full_name":{"type":"string","example":"John Doe","description":"Full name of the user."},"swift_bic":{"type":"string","example":"EXAMPLEBIC","description":"SWIFT/BIC code for the bank."},"rib_number":{"type":"string","example":"12345678901","description":"The RIB (Relevé d'Identité Bancaire)."},"branch_code":{"type":"string","example":"001","description":"The branch code of the user's bank."},"account_type":{"type":"string","example":"Savings","description":"Bank account type."},"country_code":{"type":"string","example":"US","description":"The country code of the user's address."},"address_line1":{"type":"string","example":"1234 Main St","description":"The primary address line."},"address_line2":{"type":"string","example":"Apartment 101","description":"The secondary address line."},"currency_code":{"type":"string","example":"USD","description":"The currency code for transactions."},"original_name":{"type":"string","example":"Johnathan Doe","description":"The original name of the user."},"account_number":{"type":"string","example":"123456789012","description":"The user's bank account number."},"province_state":{"type":"string","example":"Ontario","description":"The state or province of the user's address."},"bank_branch_name":{"type":"string","example":"Main Street Branch","description":"The name of the user's bank branch."},"bank_country_code":{"type":"string","example":"US","description":"The country code where the bank is located."},"ach_routing_number":{"type":"string","example":"12345678901","description":"The ACH (Automated Clearing House) Routing Number."}}}}},"required":true,"description":"Request body to modify an existing bank account for an employee."},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/daas/payslips":{"get":{"path":"/rest/daas/payslips","tags":["Deel As a Service"],"method":"get","summary":"Get list of payslips for an EOR employee","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","from","to","filename","status","rejected_at","reject_reason","uploaded_at","published_at","schedule_publishing_date","created_at","updated_at","url"],"properties":{"id":{"type":"string","example":"9K1rw5vwkZX2","description":"Unique identifier for the payslip record."},"to":{"type":"string","format":"date-time","example":"2023-08-01T00:00:00.000Z","description":"End date of the payment period."},"url":{"type":"string","example":"http://example.com/file.pdf","description":"URL"},"from":{"type":"string","format":"date-time","example":"2023-08-01T00:00:00.000Z","description":"Start date of the payment period."},"status":{"type":"string","example":"PENDING","description":"Status of the payslip (e.g., 'Pending', 'Processed')."},"created_at":{"type":"string","format":"date-time","example":"2023-08-01T00:00:00.000Z","description":"Creation date"},"updated_at":{"type":"string","format":"date-time","example":"2023-08-01T00:00:00.000Z","description":"Last update date"},"rejected_at":{"type":"string","format":"date-time","example":"2023-08-01T00:00:00.000Z","description":"Rejection date"},"uploaded_at":{"type":"string","format":"date-time","example":"2023-08-01T00:00:00.000Z","description":"Upload date"},"published_at":{"type":"string","format":"date-time","example":"2023-08-01T00:00:00.000Z","description":"Publish date"},"reject_reason":{"type":"string","example":"Something went wrong","description":"Rejection reason"},"schedule_publishing_date":{"type":"string","format":"date-time","example":"2023-08-01T00:00:00.000Z","description":"Scheduled for publishing date"}}}}}}}},"description":"Payslip records successfully retrieved."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns all payslips for an EOR employee.\n\n **Token scopes**: `worker:read`","operationId":"getEorEmployeePayslips-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/offboarding/tracker":{"get":{"path":"/rest/offboarding/tracker","tags":["Offboarding"],"method":"get","summary":"Retrieve offboarding list","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"John Doo","description":"The name of the individual associated with the offboarding."},"contract":{"type":"object","properties":{"id":{"type":"string","example":"m7yg6zp","description":"The contract ID associated with the individual."}}},"progress":{"type":"object","properties":{"status":{"type":"string","example":"OFFBOARDING_IN_PROGRESS","description":"The current status of the offboarding process (e.g., OFFBOARDING_IN_PROGRESS)."},"reference_date":{"type":"string","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"The reference date for the offboarding status (e.g., the termination date)."},"reference_date_type":{"type":"string","example":"2021-07-14T22:00:00+00:00","description":"The type of reference date (e.g., END_DATE)."},"reference_date_timezone":{"type":"string","example":"Europe/Belgrade","nullable":true,"description":"The timezone of the reference date."}}},"unique_id":{"type":"string","format":"base64url","example":"eyJjb250cmFjdE9pZCI6Im03eWc2enAiLCJoaXJpbmdUeXBlIjoiZW9yIn0","description":"Base64url-encoded JSON token identifying this offboarding tracker. Decodes to `{\"contractOid\":\"<oid>\",\"hiringType\":\"<type>\"}`. Pass as the `id` path parameter to tracker detail or checklist endpoints. Obtain from the API — never construct manually."},"hiring_type":{"type":"string","example":"contractor","description":"The hiring type for the individual (e.g., contractor)."},"hris_profile":{"type":"object","properties":{"oid":{"type":"string","example":"b550b7e5-d6e1-4613-93ba-a7ee5f75887c","nullable":true,"description":"The object ID for the HRIS profile of the individual. Null for hiring types without an associated HRIS profile (e.g. contractor, EOR, PEO)."}}},"app_experience":{"type":"object","properties":{"is_minimal_requirements":{"type":"boolean","example":true,"description":"Indicates whether the individual meets the minimal experience requirements for the role."}}},"termination_id":{"type":"string","example":"b550b7e5-d6e1-4613-93ba-a7ee5f75887c","nullable":true,"description":"The termination ID if the individual has been terminated."},"offboarding_type":{"enum":["TERMINATION","RESIGNATION","ENDING_CONTRACT"],"type":"string","example":"ENDING_CONTRACT","description":"The type of offboarding."}}},"description":"A list of offboarding items."},"page":{"type":"object","properties":{"cursor":{"type":"string","example":"eyJsaW1pdCI6MiwicGFnaW5hdGlvbiI6eyJwcm9ncmVzc1N0YXR1c1dlaWdodCI6MSwicmVmZXJlbmNlRGF0ZSI6IjIwMjEtMDctMThUMjI6MDA6MDArMDA6MDAiLCJlZmZlY3RpdmVEYXRlIjoiMjAyMS0wNy0xOFQyMjowMDowMCswMDowMCIsImNvbnRyYWN0SWQiOiJONzZsWHdreiJ9LCJzb3J0T3JkZXIiOiJBU0MifQ","nullable":true,"description":"Cursor for pagination to fetch the next page of contractors"},"total_rows":{"type":"integer","example":86,"description":"The total number of contractors available"}}}}}}},"description":"Successfully retrieved list of offboarding"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","maxLength":255,"description":"Machine-readable error code"},"message":{"type":"string","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or malformed query parameters."},"401":{"description":"Unauthorized — missing or invalid authentication token."},"403":{"description":"Forbidden — caller lacks permission to view offboarding data."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"search","schema":{"type":"string"},"example":"John Doe","required":false,"description":"Search term to filter contracts by name or other attributes"},{"in":"query","name":"hiring_types","style":"form","schema":{"type":"array","items":{"enum":["contractor","eor","peo","hris_direct_employee","direct_employee","person_without_contract"],"type":"string"},"default":[]},"example":["eor"],"explode":true,"required":false,"description":"Filter by hiring type."},{"in":"query","name":"progress_statuses","style":"form","schema":{"type":"array","items":{"enum":["IN_REVIEW","DOCUMENT_PROCESSING","EMPLOYEE_OFFBOARDING","FINAL_PAYMENT_AND_REFUND","COMPLETED","AWAITING_CLIENT_SIGNATURE","AWAITING_CONTRACTOR_SIGNATURE","TERMINATION_LETTER_REJECTED","CONTRACT_ENDING","CONTRACT_ENDED","OFFBOARDING","INACTIVE","AWAITING_TERMINATION_DETAILS"],"type":"string"},"default":[]},"example":["IN_REVIEW"],"explode":true,"required":false,"description":"Filter by offboarding progress status."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Number of results to return per page (maximum 100; values above this are silently clamped to 100)"},{"in":"query","name":"sort_by","schema":{"enum":["progressStatusWeight"],"type":"string","default":"progressStatusWeight"},"example":"progressStatusWeight","required":false,"description":"Field to sort by"},{"in":"query","name":"sort_order","schema":{"enum":["ASC","DESC"],"type":"string","default":"ASC"},"example":"DESC","required":false,"description":"Sorting order"},{"in":"query","name":"pagination","schema":{"type":"object","properties":{"contractId":{"type":"string","example":"contract12345","description":"Contract ID for pagination"},"effectiveDate":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z","description":"Effective date for pagination"},"referenceDate":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z","description":"Reference date for pagination"},"progressStatusWeight":{"type":"integer","example":1,"description":"Progress status weight for pagination"}}},"example":{"contractId":"contract12345","effectiveDate":"2024-01-01T00:00:00Z","referenceDate":"2024-01-01T00:00:00Z","progressStatusWeight":1},"required":false,"deprecated":true,"description":"Deprecated. Use `cursor` instead."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":2048},"example":"eyJsaW1pdCI6MjAsInBhZ2luYXRpb24iOnsuLi59fQ","required":false,"description":"Opaque pagination cursor from the previous response's `page.cursor`. Pass it back verbatim to fetch the next page; omit it for the first page."},{"in":"query","name":"include_overview","schema":{"type":"boolean","default":false},"example":false,"required":false,"description":"Include an overview of the contract"},{"in":"query","name":"ignore_date_range","schema":{"type":"boolean","default":false},"example":false,"required":false,"description":"Ignore the default 45-day date range and retrieve all terminations"}],"description":"Returns a list of contracts currently in the offboarding process. By default, results are scoped to a 45-day date range; set `ignore_date_range` to `true` to retrieve all terminations regardless of date.\n\n **Token scopes**: `contracts:read`, `people:read`","operationId":"retrieveOffboardingList-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/lookups/seniorities":{"get":{"path":"/rest/lookups/seniorities","tags":["Lookups"],"method":"get","summary":"Retrieve Seniority Levels","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"integer","format":"int64","example":1,"description":"A unique identifier for the seniority level."},"name":{"type":"string","example":"Mid (Individual Contributor Level 2)","nullable":false,"minLength":1,"description":"The name of the seniority level, e.g., 'Mid (Individual Contributor Level 2)'."},"level":{"type":"number","example":2,"nullable":true,"description":"The hierarchical level of seniority, where higher numbers indicate greater seniority."}}},"description":"List of predefined seniority levels supported by the Deel platform."}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"is_eor_contract","schema":{"type":"boolean","default":true},"example":true,"required":false,"description":"when `true`, exclude C-level seniorities for EOR contracts. Set to `false` to return all seniorities"}],"description":"Returns predefined seniority levels including their names, hierarchical positions, and identifiers. When `is_eor_contract` is `true`, C-level seniorities are excluded from the response.","operationId":"retrieveSeniorityLevels-v2026-01-01","security":[{"deelToken":[]},{"oauth2":[]}]}},"/invoices/{invoice_id}":{"get":{"path":"/rest/invoices/{invoice_id}","tags":["Accounting"],"method":"get","summary":"Get invoice by id","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"h6tNU34NabNyFB5MmkE6e","description":"Unique identifier for the invoice"},"label":{"type":"string","example":"INV-2025-1255892","description":"Human-readable label or reference number for the invoice"},"total":{"type":"string","example":"5.00","description":"Total amount of the invoice","x-sensitive-employment":true},"status":{"enum":["open","pending","skipped","preprocessing","processing","credited","processed","paid","failed","cancelled","refunded","unpayable","awaiting_payment"],"type":"string","example":"paid","description":"Current payment status of the invoice."},"paid_at":{"type":"string","format":"date-time","example":"2025-04-28T00:23:18.618Z","description":"Date and time when the invoice was paid"},"currency":{"type":"string","example":"USD","description":"Currency code for the invoice total"},"due_date":{"type":"string","format":"date-time","example":"2025-05-03T00:00:00.000Z","description":"The due date for the invoice payment"},"issued_at":{"type":"string","format":"date-time","example":"2025-04-28T00:23:18.800Z","description":"Date and time when the invoice was issued"},"worker_id":{"type":"string","format":"uuid","example":"2c275e07-4846-490e-b2e4-6e84139032c3","description":"Unique identifier for the worker profile"},"created_at":{"type":"string","format":"date-time","example":"2025-04-28T00:23:18.704Z","description":"Timestamp of when the invoice was created in the system"},"line_items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"4nrrh24GYU6JFtBEPa4Hy","description":"Unique identifier for the line item"},"type":{"enum":["AI_WORKFORCE_MONTHLY_FEE","ANON_REPORT_FEE","ANYTIME_PAY_GP_RESERVE","ASO_FEE","ASO_PAYROLL_FUNDING","ATS_LINKEDIN_PREMIUM_FEE","BACKGROUND_CHECK_FEE","BANK_ACCOUNT_OPENING_FEE","BANK_FILE_FEE","BENEFITS_ADMIN_MONTHLY_PLATFORM_FEE","CLIENT_PREFUNDING_AMOUNT","COR_LOCAL_COLLECTION_FEE","COR_START_DELAY","CUSTOM_DOMAIN_FEE","CUSTOM_ONE_OFF_COST","CUSTOM_ONE_OFF_FEE","DEEL_ATS_SUBSCRIPTIONS","DEEL_COMPENSATION_FEE","DEEL_ENGAGE_ATS_FEE","DEEL_ENGAGE_MONTHLY_SUBSCRIPTION_FEE","DEEL_FIELD_SERVICES_EOR_FEES","DEEL_FIELD_SERVICES_PASSTHROUGH_FEES","DEEL_FIELD_SERVICES_SWM_FEES","DEEL_HR_FEE","DEEL_HRIS_FEE","DEEL_IT_ACCESSORY_REPLACEMENT","DEEL_IT_APP_RESALE","DEEL_IT_ASSEMBLED_DELIVERY","DEEL_IT_BYOD_ACTIVATION_FEE","DEEL_IT_BYOD_STORAGE_FEE","DEEL_IT_CANCELLATION","DEEL_IT_CERTIFIED_DATA_ERASURE","DEEL_IT_CLEARANCE","DEEL_IT_CUSTOM_SHIPPING","DEEL_IT_CUSTOM_SOURCING","DEEL_IT_DEVICE_UNLOCK_FEE","DEEL_IT_ENDPOINT_PROTECTION_FEES","DEEL_IT_ENDPOINT_PROTECTION_FEES_OVERAGES","DEEL_IT_END_OF_CONTRACT_PURCHASE","DEEL_IT_EXPRESS_SHIPPING","DEEL_IT_EXTENDED_WARRANTY","DEEL_IT_IDENTITY_FEES","DEEL_IT_IDENTITY_FEES_OVERAGES","DEEL_IT_IT_SEAT","DEEL_IT_IT_SERVICE_DESK","DEEL_IT_JC_PLATFORM_FEES","DEEL_IT_JC_PLATFORM_FEES_OVERAGES","DEEL_IT_JC_PLATFORMPRIME_FEES","DEEL_IT_JC_PLATFORMPRIME_FEES_OVERAGES","DEEL_IT_LAPTOP_CONFIG","DEEL_IT_LOANER","DEEL_IT_MDM","DEEL_IT_MDM_OVERAGES","DEEL_IT_NON_DEEL_IT_DEVICE_CHARGE","DEEL_IT_PACKAGING","DEEL_IT_PURCHASE","DEEL_IT_REDISTRIBUTION_FEE","DEEL_IT_RENTAL","DEEL_IT_REPAIR","DEEL_IT_REPAIR_WITH_PARTS","DEEL_IT_REPLACEMENT","DEEL_IT_SAAS","DEEL_IT_SERVICE","DEEL_IT_SERVICE_BUNDLE","DEEL_IT_SHIPPING","DEEL_IT_SINGLE_ITEM_FEE","DEEL_IT_STOREFRONT_FEE","DEEL_IT_STORE_AND_REUSE_CUSTOMER_OWNED_FEE","DEEL_IT_STORE_AND_REUSE_CUSTOMER_OWNED_STORAGE_FEE","DEEL_IT_STORE_AND_REUSE_FEE","DEEL_IT_VAT","DEEL_IT_WELCOME_PACK","DEEL_MAINTENANCE_FEE","DEEL_TALENT_CLIENT_SAAS_FEE_ONE_OFF","DEEL_TALENT_CLIENT_SAAS_FEE_RECURRING","DEEL_TALENT_TP_SAAS_FEE_ONE_OFF","DEEL_TALENT_TP_SAAS_FEE_RECURRING","DEEL_WORKFORCE_PLANNING_SUBSCRIPTIONS","DEPOSIT_REFUND","DISCOUNT","DPA_AGREEMENT_FEE","EMPLOYEE_NAVIGATOR_IMPLEMENTATION_FEE","EMPLOYEE_NAVIGATOR_PEPM_FEE","ENGAGE_HR_SUITE_SUBSCRIPTION_FEE","ENGAGE_PLUGINS_SUBSCRIPTION_FEE","ENGAGE_ZAVVY_LEGACY_SUBSCRIPTION_FEE","ENTITY_MANAGEMENT_PLATFORM_FEE","ENTITY_SETUP_FEE","EOR_13_TH_14_TH_MONTH_SALARY","EOR_13_TH_MONTH_SALARY","EOR_ACCIDENT_AND_DISABILITY","EOR_ACCIDENT_AND_DISABILITY_FEE","EOR_ACCRUED_HOLIDAY","EOR_ADDITIONAL_FEE","EOR_ALLOWANCE","EOR_ANYTIME_PAYROLL_FEE","EOR_BENEFIT_IN_KIND_WITHHELD_AMOUNT","EOR_BONUS","EOR_COMPANY_DOCTOR_COST","EOR_DEDUCTION","EOR_DEPOSIT","EOR_EARLY_INVOICING_FUNDING_AMOUNT","EOR_EMPLOYER_COST","EOR_EQUITY_TAX_WITHHELD","EOR_EXPENSE","EOR_EXTERNAL_LEGAL_ADVISORY_COST","EOR_FERTILITY","EOR_FERTILITY_FEE","EOR_FERTILITY_PLAN_COST","EOR_FOREIGN_CURRENCY_CONTRACT_FEE","EOR_FOREIGN_CURRENCY_FEE","EOR_HEALTH_ALLOWANCE","EOR_HEALTH_ALLOWANCE_PLAN_COST","EOR_HEALTH_AND_SAFETY_TRAINING_COST","EOR_HEALTH_BENEFIT","EOR_HEALTH_BENEFIT_PLAN_COST","EOR_HEALTH_INSURANCE_FEE","EOR_LEGAL_FEE","EOR_LEGAL_SETTLEMENT_PAYOUT","EOR_LIFE_INSURANCE","EOR_LIFE_INSURANCE_FEE","EOR_LIFE_INSURANCE_PLAN_COST","EOR_LOCAL_COLLECTION_FEE","EOR_MANAGEMENT_FEE","EOR_MEAL_VOUCHER","EOR_MEAL_VOUCHER_FEE","EOR_MEAL_VOUCHER_PLAN_COST","EOR_MEDICAL_ONBOARDING_COST","EOR_MENTAL_HEALTH","EOR_MENTAL_HEALTH_FEE","EOR_MENTAL_HEALTH_PLAN_COST","EOR_NON_STATUTORY_EMPLOYER_COST","EOR_OFFCYCLE","EOR_OFF_BOARDING_FEE","EOR_OTHER","EOR_PENSION","EOR_PENSION_FEE","EOR_PENSION_PLAN_COST","EOR_QES_FEE","EOR_SALARY_ADVANCE","EOR_SETUP_FEE","EOR_SEVERANCE","EOR_SIGNING_BONUS","EOR_SIGNING_BONUS_DEDUCTION","EOR_SIGNING_BONUS_EMPLOYER_COST","EOR_SIGNING_BONUS_EMPLOYER_COST_DEDUCTION","EOR_SINGLE_TERMINATION_FEE","EOR_START_DELAY","EOR_STUDY_FUND","EOR_STUDY_FUND_FEE","EOR_STUDY_FUND_PLAN_COST","EOR_TAX_RULING","EOR_TAX_VAT","EOR_TIME_OFF","EOR_TRAVEL_INSURANCE_ANNUAL_SUBSCRIPTION_FEE","EOR_TRAVEL_INSURANCE_MONTHLY_SUBSCRIPTION_FEE","EOR_VISA_MANAGEMENT_FEE","EOR_WET_INK_FEE","EOR_WORK","EQUITY_ANNUAL_SUBSCRIPTION_FEE","EQUITY_EOR_PER_HEAD_FEE","EQUITY_IMPLEMENTATION_FEE","EQUITY_MAINTENANCE_FEE","EXPENSE_CARD","EXPENSE_CARD_FEE","G2N_BENEFITS","G2N_BENEFIT_IN_KIND","G2N_EMPLOYER_CONTRIBUTIONS","G2N_EOR_NET_PAY_WITHOUT_EXPENSES","G2N_GROSS_DEDUCTIONS","G2N_GROSS_TAXABLE","G2N_NET_ADDITIONS","G2N_NET_DEDUCTIONS","G2N_NET_PAY","G2N_ODP_OFFSET","G2N_ON_CALL_OVERTIME","G2N_OTHER_ADJUSTMENTS","G2N_PAY_RATE","G2N_SEVERANCE","G2N_TOTAL_EXPENSES","G2N_VACATION_PAYOUT","G2N_WAGE_ADDITIONS","G2N_WORKER_TAX_AND_CONTRIBUTIONS","GLOBAL_HR_CONSULTING_ANNUAL_SUBSCRIPTION_FEE","GLOBAL_HR_CONSULTING_EOR_MASS_TERMINATION_FEE","GLOBAL_HR_CONSULTING_MANAGED_HR_MONTHLY_SUBSCRIPTION_FEE","GLOBAL_HR_CONSULTING_MONTHLY_SUBSCRIPTION_FEE","GLOBAL_HR_CONSULTING_PROJECT_FEE","GLOBAL_HR_DPO_AS_A_SERVICE_ANNUAL_SUBSCRIPTION_FEE","GLOBAL_HR_EU_UK_REPRESENTATIVE_SERVICE_ANNUAL_SUBSCRIPTION_FEE","GLOBAL_HR_PRIVACY_CONSULTING_SERVICES_ANNUAL_SUBSCRIPTION_FEE","GLOBAL_HR_PRIVACY_SERVICES_ANNUAL_SUBSCRIPTION_FEE","GL_CUSTOM_CONFIGURATION","GP_ADD_ON_FEE","GP_ADVANCE_PAYMENTS_FEE","GP_BANK_ACCOUNTS_OPENED","GP_CHINA_DECLARATIONS","GP_DEEL_LIABILITY","GP_DEPOSIT","GP_EARLY_TERMINATION_FEE","GP_ELECTRONIC_SAFE_PAYSLIPS","GP_EMPLOYEE_AGREEMENTS_EFE","GP_EMPLOYEE_FUNDING","GP_EXCEPTIONAL_MATTERS_HOURS_FEE","GP_EXPENSES_FEE","GP_GB_PENSION_FUND_MANAGEMENT","GP_GLOBAL_RERUN_OF_PAYROLL_REPORTS_FEE","GP_LEGAL_CONTROL_ASSISTANCE_HOURS_FEE","GP_MEAL_VOUCHERS","GP_MEDICAL_VISITS","GP_NEW_BRANCH_CREATION_ASSISTANCES","GP_NEW_REPORTS_AND_MODIFICATIONS_FEE","GP_NON_AUTOMATED_LODGEMENTS_FEE","GP_OFFCYCLE_MODIFICATIONS_OR_RERUN_FEE","GP_PARALLEL_RUN_FEE","GP_PAYROLL_CONNECT_FEE","GP_PAYROLL_CONNECT_SETUP_ENTITY_FEE_FLAT","GP_PAYROLL_EMPLOYEE_FEE","GP_PAYROLL_EMPLOYEE_SERVICE_FEE","GP_PAYROLL_ENTITY_SETUP_FEE","GP_PAYROLL_FEE","GP_PAYROLL_FEE_PER_COUNTRY","GP_PAYROLL_FUNDING_FEE","GP_PAYROLL_OFFBOARDING_FEE","GP_PAYROLL_ONBOARDING_FEE","GP_PAYROLL_SOFTWARE_FEE","GP_START_DELAY","GP_VAT_TAX","GP_WORK_VISAS","GP_YEARLY_CLOSING_FEE","HEALTH_INSURANCE_ANNUAL_SUBSCRIPTION_FEE","HEALTH_INSURANCE_FEE","HEALTH_INSURANCE_MONTHLY_SUBSCRIPTION_FEE","HOFY_EQUIPMENT_MONTHLY_SUBSCRIPTION_FEE","HOFY_EQUIPMENT_SEMIANNUAL_SUBSCRIPTION_FEE","HOFY_EQUIPMENT_SERVICE","HOFY_EQUIPMENT_TERMINATION_FEE","IC_BONUS","IC_COMMISSION","IC_DEDUCTION","IC_DEEL_PERCENTAGE_FEE","IC_DEEL_PREMIUM","IC_EXPENSE","IC_MILESTONE","IC_OFFCYCLE","IC_OTHER","IC_OVERTIME","IC_PRO_RATA","IC_SAAS_FLAT","IC_SAAS_MISSING_FEES","IC_SAAS_PER_CONTRACT","IC_START_DELAY","IC_TASK","IC_TAX_VAT","IC_TIME_OFF","IC_WITHHOLDING_TAX","IC_WORK","INTEGRATION_HRIS_FEE","INTERCOMPANY_MARKUP_SALARY_EXPENSES","INTERCOMPANY_OTHER_FINANCIAL_EXPENSES","INTERCOMPANY_OTHER_FINANCIAL_INCOME","INTERCOMPANY_PAYMENTS_LEASE_SERVICES","INTERCOMPANY_PAYMENTS_MARKET_PENETRATION","INTERCOMPANY_PAYMENT_EOR_GP_SERVICES","INTERCOMPANY_PAYMENT_EOR_SERVICES","INTERCOMPANY_PAYMENT_GP_SERVICES","INTERCOMPANY_PAYMENT_TECHNOLOGY_BASED_SERVICES","INTERCOMPANY_PROVISION_COGS_SERVICES","INTERCOMPANY_PROVISION_G_AND_A_SERVICES","INTERCOMPANY_PROVISION_PRE_POST_SALES_SERVICES","INTERCOMPANY_PROVISION_R_AND_D_SERVICES","INTERCOMPANY_SALARY_EXPENSES_PARTICIPATION","LATE_PAYMENT_FEE","LOCAL_TAX_REIMBURSEMENT_FEE","MANAGED_HR_MONTHLY_SUBSCRIPTION_FEE","MOBILITY_BUSINESS_VISA_APPLICATION","MOBILITY_BUSINESS_VISA_DOCUMENT_PREPARATION","MOBILITY_BUSINESS_VISA_ISSUANCE","MOBILITY_BUSINESS_VISA_TRAVEL_LETTER","MOBILITY_DOCUMENTATION_FEE","MOBILITY_DOCUMENT_A_ONE_CERTIFICATE","MOBILITY_DOCUMENT_COLLECTION","MOBILITY_DOCUMENT_ISSUANCE","MOBILITY_DOCUMENT_MANAGEMENT","MOBILITY_DOCUMENT_PREPARATION","MOBILITY_DOCUMENT_REVIEW","MOBILITY_EXPENSE_GOVERNMENT_FEES","MOBILITY_EXPENSE_MAIL_TRANSPORTATION","MOBILITY_EXPENSE_OTHER","MOBILITY_EXPENSE_PRINTING","MOBILITY_EXPENSE_TRANSLATION","MOBILITY_GOVERNMENT_STATUTORY_LEGAL_FEE","MOBILITY_H1_B_LOTTERY","MOBILITY_IMMIGRATION_CONSULTATION","MOBILITY_IMMIGRATION_DEPENDANT","MOBILITY_IMMIGRATION_DEPENDANT_RENEWAL","MOBILITY_IMMIGRATION_EMPLOYER_TRANSFER","MOBILITY_IMMIGRATION_FAST_TRACK","MOBILITY_IMMIGRATION_PROCESSING_FEE","MOBILITY_IMMIGRATION_RENEWAL_EXTENSION","MOBILITY_IMMIGRATION_VISA_CANCELLATION","MOBILITY_IMMIGRATION_WORK_PERMIT","MOBILITY_NOTIFICATION_CHANGE_OF_EMPLOYER","MOBILITY_NOTIFICATION_GENERAL","MOBILITY_NOTIFICATION_PREFECTURE","MOBILITY_USCIS_PREMIUM_PROCESSING","NETX_FEE","OFFICE_SOLUTION_COST","OFFICE_SOLUTION_FEE","PAYGROUP_ASTUTE_CUSTOM_DEVELOPMENT_FEE","PAYGROUP_ASTUTE_FEE","PAYGROUP_ASTUTE_IMPLEMENTATION_FEE","PAYGROUP_ASTUTE_INTEGRATION_FEE","PAYGROUP_COR_CONTRACTOR_COST","PAYGROUP_COR_MANAGEMENT_FEE","PAYGROUP_EOR_DEPOSIT","PAYGROUP_EOR_EMPLOYEE_COST","PAYGROUP_EOR_MANAGEMENT_FEE","PAYGROUP_FLARE_REFERRAL_FEE","PAYGROUP_GP_ADDITIONAL_PROCESSING_FEE_OFFCYCLES","PAYGROUP_GP_ADDITIONAL_PROCESSING_FEE_ONBOARDING","PAYGROUP_GP_ADDITIONAL_PROCESSING_FEE_TERMINATIONS","PAYGROUP_GP_ANNUAL_LODGEMENT_PROCESSING_FEE","PAYGROUP_GP_ANNUAL_PAYMENT_SUMMARY_FEE","PAYGROUP_GP_EMPLOYEE_REPORT_FEE","PAYGROUP_GP_IMPLEMENTATION_FEE","PAYGROUP_GP_LODGEMENT_FEE","PAYGROUP_GP_TREASURY_FEE","PAYGROUP_HR_MANAGEMENT_FEE","PAYGROUP_HR_MANAGER_FEE","PAYGROUP_IWS_BAS_LODGEMENT_FEE","PAYGROUP_IWS_BOOKKEEPING_FEE","PAYGROUP_IWS_IMPLEMENTATION_FEE","PAYGROUP_IWS_ROSTERING_FEE","PAYGROUP_PAYROLL_PROCESSING_FEE","PAYGROUP_RECRUITMENT_FEE","PAYGROUP_SMS_FEE","PAYGROUP_TALENTOZ_ANNUAL_SUBSCRIPTION_FEE","PAYGROUP_TALENTOZ_IMPLEMENTATION_FEE","PAYGROUP_TAX_CGST","PAYGROUP_TAX_CONSUMPTION","PAYGROUP_TAX_GST","PAYGROUP_TAX_IGST","PAYGROUP_TAX_SGST","PAYGROUP_TAX_SST","PAYGROUP_TAX_VAT","PAYMENT_PROCESSING_FEE","PEO_CARROT_FERTILITY_JOURNEY_FEE","PEO_COBRA_CONTINUATION_FEE","PEO_EARLY_TERMINATION_FEE","PEO_EMPLOYEE_FUNDING","PEO_EXPENSES_FEE","PEO_FEE","PEO_LATE_PAYMENT_FEE","PEO_OFFCYCLE_FEE","PEO_NON_PEO_EE_MINERAL_ACCESS_FEE","PEO_PAYROLL_COST","PEO_POSTERS","PEO_RETIREMENT_PLAN_ADMIN_FEE","PEO_RETIREMENT_PLAN_ESTABLISHMENT_FEE","PEO_RETROACTIVE_FEE","PEO_TIMECO_FEE","PEO_WC_BILLING_ND","PEO_WC_BILLING_OH","PEO_WC_BILLING_WA","PEO_WC_BILLING_WY","PEO_DELIVERY_FEE","PEO_IMPLEMENTATION_FEE","POST_REGISTRATION_FEE","PREPAID_BILLING_CONTRACTOR","PREPAID_BILLING_EOR","PREPAID_BILLING_EXPIRED_CREDITS","PREPAID_BILLING_FUNDING_AMOUNT","PRE_REGISTRATION_FEE","REFUND","SAAS_PER_EQUIPMENT_FEE","SERVICE_REFUND","SHIELD_DEPOSIT","SHIELD_MANAGEMENT_FEE","SHIELD_PAYROLL_COSTS","SYSTEM_INTEGRATOR_FEE","TALENT_FEE","TAX_CUSTOM","TRAVEL_INSURANCE_ANNUAL_SUBSCRIPTION_FEE","TRAVEL_INSURANCE_FEE","TRAVEL_INSURANCE_MONTHLY_SUBSCRIPTION_FEE","UNSPECIFIED","US_OFFCYCLE_MODIFICATIONS_OR_RERUN_FEE","US_PAYROLL_CERTIFICATE_OF_GOOD_STANDING_FEE","US_PAYROLL_DUPLICATE_FILING_FEE","US_PAYROLL_EMPLOYEE_FEE","US_PAYROLL_EMPLOYEE_FUNDING","US_PAYROLL_EXPENSES_FEE","US_PAYROLL_FRANCHISE_REGISTRATION_SETUP_FEE","US_PAYROLL_FRANCHISE_REGISTRATION_STATE_FILING_FEE","US_PAYROLL_FUNDING_FEE","US_PAYROLL_MAILING_FEE","US_PAYROLL_OFFBOARDING_FEE","US_PAYROLL_ONBOARDING_FEE","US_PAYROLL_PAYROLL_REGISTRATION_SETUP_FEE","US_PAYROLL_PLATFORM_FEE","US_PAYROLL_REGISTERED_AGENT_ANNUAL_SUBSCRIPTION_FEE","VMS_TALENT_PARTNER_FEE","WEWORK_ACCESS_FEE","WITHHOLDING_TAX","EOR_HEALTH_AND_SAFETY_TRAINING_FEE"],"type":"string","example":"EOR_WORK","description":"The type of this line item"},"total":{"type":"string","example":"5.00","description":"Total amount for this line item","x-sensitive-employment":true},"fx_rate":{"type":"string","example":"0.8425667","description":"Exchange rate used for this line item"},"quantity":{"type":"integer","example":1,"description":"Quantity of units billed in this line item","x-sensitive-employment":true},"tax_rate":{"type":"string","example":"0.00","description":"Tax rate applied to this line item","x-sensitive-employment":true},"tax_type":{"type":"string","example":"vat","nullable":true,"description":"Type of tax applied (if any); can be null"},"description":{"type":"string","example":"2C2O2EZQQ8","description":"Main description of the line item","x-sensitive-pii":true},"price_per_unit":{"type":"number","example":5,"description":"Price charged per unit","x-sensitive-employment":true},"sub_description":{"type":"string","example":"EROZA5ZECO","description":"Optional additional description or detail","x-sensitive-pii":true}}},"description":"The individual line items associated with the invoice"},"recipient_legal_entity_id":{"type":"string","format":"uuid","example":"2c275e07-4846-490e-b2e4-6e84139032c3","description":"Unique identifier for the recipient legal entity"}},"description":"The invoice resource returned"}}}}},"description":"The invoice resource returned"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Invoice not found","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"GET","description":"Method of the API"},"status":{"type":"number","example":404,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Invoice not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"invoice_id","schema":{"type":"string"},"example":"abcd1234efgh5678","required":true,"description":"The invoice ID used to identify the invoice to be retireved."}],"description":"Retrieves the details of a single invoice by `invoice_id`.\n\n **Token scopes**: `accounting:read`","operationId":"getInvoiceById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/organizations/secure-vault/folders":{"post":{"path":"/rest/organizations/secure-vault/folders","tags":["Documents"],"method":"post","summary":"Create Organization Secure Vault Folder","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the created folder."}},"description":"The created folder."}}}}},"description":"Folder created successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Parent folder not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Creates a folder in the Organization Secure Vault. Omit `parent_folder_id` to create a root folder, or provide it to create a sub-folder.\n\n **Token scopes**: `organizations:write`","operationId":"createOrganizationSecureVaultFolder-v2026-08-05","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"Contracts","maxLength":255,"minLength":1,"description":"Folder name."},"description":{"type":"string","example":"Signed customer contracts","nullable":true,"maxLength":2000,"description":"Optional folder description."},"parent_folder_id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the parent folder. Omit to create a root folder."}},"description":"The folder to create.","additionalProperties":false}},"additionalProperties":false}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/equity-grants":{"get":{"path":"/rest/equity-grants","tags":["Equity Tokens"],"method":"get","summary":"List equity grants with tax events","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"The unique identifier of the equity grant"},"value":{"type":"number","example":50000,"nullable":true,"description":"The total grant value at the time of issuance, in grant currency"},"source":{"type":"string","example":"MANUAL","nullable":true,"description":"The system of record the grant originated from"},"quantity":{"type":"number","example":1000,"nullable":true,"description":"The total quantity granted"},"tranches":{"type":"number","example":4,"nullable":true,"description":"The number of vesting tranches"},"grant_date":{"type":"string","format":"date","example":"2025-01-15","nullable":true,"description":"The date the grant was issued"},"grant_name":{"type":"string","example":"RSU Grant 2025","nullable":true,"description":"The name of the grant"},"tax_events":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f12345678901","description":"The unique identifier of the tax event"},"note":{"type":"string","example":"Reviewed by payroll team","nullable":true,"description":"A free-text note attached to the tax event"},"email":{"type":"string","format":"email","example":"jane.doe@example.com","description":"The worker's email address"},"country":{"type":"string","example":"US","nullable":true,"description":"The ISO 3166-1 alpha-2 country code of the worker's employment country"},"fx_rate":{"type":"string","example":"0.95904862","nullable":true,"description":"The exchange rate used to convert local currency to payroll currency"},"pic_url":{"type":"string","example":"https://cdn.deel.com/avatars/jane-doe.png","nullable":true,"description":"URL of the worker's profile picture"},"grant_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","nullable":true,"description":"The unique identifier of the associated grant"},"tax_rate":{"type":"string","example":"0.25","nullable":true,"description":"The tax rate applied to the benefit in kind"},"unit_fmv":{"type":"string","example":"11","nullable":true,"description":"The fair market value per unit at the time of the event"},"last_name":{"type":"string","example":"Doe","nullable":true,"description":"The worker's last name"},"created_at":{"type":"string","format":"date-time","example":"2024-04-02T10:00:00Z","nullable":true,"description":"The date and time the tax event was created"},"event_date":{"type":"string","format":"date","example":"2024-04-01","nullable":true,"description":"The date of the tax event"},"first_name":{"type":"string","example":"Jane","nullable":true,"description":"The worker's first name"},"grant_date":{"type":"string","format":"date","example":"2024-01-01","nullable":true,"description":"The date the associated grant was issued"},"grant_type":{"type":"string","example":"RSU","nullable":true,"description":"The equity instrument type of the associated grant (e.g. RSU, NSO, ISO)"},"sale_price":{"type":"string","example":"10","nullable":true,"description":"The price at which the equity was sold"},"updated_at":{"type":"string","format":"date-time","example":"2024-04-03T10:00:00Z","nullable":true,"description":"The date and time the tax event was last updated"},"archived_at":{"type":"string","format":"date-time","example":"2024-07-01T09:00:00Z","nullable":true,"description":"The date and time the tax event was archived"},"contract_id":{"type":"string","example":"meyv8ek","description":"The unique identifier of the contract associated with the tax event"},"external_id":{"type":"string","example":"ext-12345","nullable":true,"description":"An external system identifier for the worker, such as an ID from a cap-table provider"},"gross_value":{"type":"string","example":"100000","nullable":true,"description":"The gross value of the equity event, calculated as unit FMV multiplied by quantity exercised or released"},"is_archived":{"type":"boolean","example":false,"nullable":true,"description":"Whether the tax event has been archived"},"middle_name":{"type":"string","example":"Ann","nullable":true,"description":"The worker's middle name"},"plan_currency":{"type":"string","example":"USD","nullable":true,"description":"The currency in which the equity plan was issued"},"exercise_price":{"type":"string","example":"4.34","nullable":true,"description":"The price at which the equity was exercised"},"contract_status":{"type":"string","example":"in_progress","description":"The lifecycle status of the associated worker contract (e.g. in_progress, completed, cancelled)"},"hris_profile_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"The unique identifier of the worker who holds the grant"},"instrument_type":{"type":"string","example":"RSU","nullable":true,"description":"The type of equity instrument (e.g. RSU, NSO, ISO, PHANTOM, SARS)"},"organization_id":{"type":"string","format":"uuid","example":"c3d4e5f6-a7b8-9012-cdef-123456789012","description":"The unique identifier of the organization"},"settlement_date":{"type":"string","format":"date","example":"2024-06-01","nullable":true,"description":"The date the equity event was settled (i.e. when shares were transferred or cash was received)"},"created_by_email":{"type":"string","format":"email","example":"admin@example.com","nullable":true,"description":"The email of the user who created the tax event"},"payroll_currency":{"type":"string","example":"EUR","nullable":true,"description":"The currency in which payroll is processed"},"tax_jurisdiction":{"type":"string","example":"US","nullable":true,"description":"The ISO 3166-1 alpha-2 country code of the worker's contract jurisdiction at the time of the event"},"transaction_fees":{"type":"string","example":"25","nullable":true,"description":"Brokerage or transaction fees associated with the equity event, in plan currency"},"organization_name":{"type":"string","example":"Acme Corp","nullable":true,"description":"The name of the organization"},"grant_reference_id":{"type":"number","example":1024,"nullable":true,"description":"The human-readable reference number of the associated grant"},"quantity_remaining":{"type":"string","example":"5000","nullable":true,"description":"The quantity of equity remaining"},"verification_status":{"type":"string","example":"VERIFIED","nullable":true,"description":"The current verification status of the tax event (PENDING_VERIFICATION, VERIFIED, SENT_FOR_PROCESSING, PROCESSED, MISMATCH)"},"taxable_gain_or_loss":{"type":"string","example":"15000","nullable":true,"description":"The taxable gain or loss on the event, typically gross value minus the total exercise price"},"total_exercise_price":{"type":"string","example":"225000","nullable":true,"description":"The total exercise price paid for the equity, calculated as exercise price per unit multiplied by quantity exercised"},"total_taxes_withheld":{"type":"string","example":"1000","nullable":true,"description":"The total amount of income tax and social contributions withheld on behalf of the worker"},"equity_service_status":{"type":"string","example":"ONBOARDED","description":"The equity service enrollment status for the worker (ONBOARDED, OFFBOARDED, NOT_ONBOARDED, NOT_ELIGIBLE, MORE_INFO_REQUIRED)"},"method_of_tax_coverage":{"type":"string","example":"BIK_WITHHOLDING_AT_SOURCE_CLIENT","nullable":true,"description":"How the benefit-in-kind (BIK) tax on this equity event is collected. BIK_WITHHOLDING_* values indicate the employer withholds tax from payroll; the suffix identifies the mechanism (e.g. at-source deduction, salary deduction, net settlement, grossed-up bonus). BIK_REPORTING_ONLY reports the BIK without withholding. NO_BIK_NO_WITHHOLDING applies when no taxable benefit arises. AD_HOC covers special cases outside the standard methods."},"sent_for_processing_at":{"type":"string","format":"date-time","example":"2024-06-05T10:00:00Z","nullable":true,"description":"The date and time the event was sent for payroll processing"},"actual_payroll_cycle_id":{"type":"string","format":"uuid","example":"f6a7b8c9-d0e1-2345-f123-456789012345","nullable":true,"description":"The unique identifier of the actual payroll cycle"},"supporting_documents_id":{"type":"string","format":"uuid","example":"d4e5f6a7-b8c9-0123-def1-234567890123","nullable":true,"description":"The unique identifier of the supporting documents attached to the event"},"actual_payroll_cycle_end":{"type":"string","format":"date","example":"2024-06-30","nullable":true,"description":"The end date of the actual payroll cycle"},"contract_completion_date":{"type":"string","format":"date-time","example":"2026-01-01T10:00:00Z","nullable":true,"description":"The completion date of the associated contract"},"expected_payroll_cycle_id":{"type":"string","format":"uuid","example":"e5f6a7b8-c9d0-1234-ef12-345678901234","nullable":true,"description":"The unique identifier of the expected payroll cycle"},"quantity_withheld_or_sold":{"type":"string","example":"5000","nullable":true,"description":"The quantity of equity withheld or sold"},"actual_payroll_cycle_start":{"type":"string","format":"date","example":"2024-06-01","nullable":true,"description":"The start date of the actual payroll cycle"},"expected_payroll_cycle_end":{"type":"string","format":"date","example":"2024-06-30","nullable":true,"description":"The end date of the expected payroll cycle"},"actual_payroll_cycle_cutoff":{"type":"string","format":"date-time","example":"2024-06-21T06:59:59Z","nullable":true,"description":"The cutoff date of the actual payroll cycle"},"withheld_tax_local_currency":{"type":"string","example":"959.05","nullable":true,"description":"The income tax and social contributions withheld, expressed in the worker's local payroll currency"},"expected_payroll_cycle_start":{"type":"string","format":"date","example":"2024-06-01","nullable":true,"description":"The start date of the expected payroll cycle"},"expected_payroll_cycle_cutoff":{"type":"string","format":"date-time","example":"2024-06-21T06:59:59Z","nullable":true,"description":"The cutoff date of the expected payroll cycle"},"benefit_in_kind_local_currency":{"type":"string","example":"14385.73","nullable":true,"description":"The benefit-in-kind (BIK) value reported to payroll, expressed in the worker's local payroll currency"},"quantity_exercised_or_released":{"type":"string","example":"10000","nullable":true,"description":"The quantity of equity exercised or released"}}},"description":"The tax events reported against this grant"},"cliff_period":{"type":"number","example":12,"nullable":true,"description":"The cliff period in months before any shares vest"},"grant_status":{"type":"string","example":"GRANTED","nullable":true,"description":"The lifecycle status of the grant (e.g. GRANTED, PENDING_APPROVAL)"},"hris_profile":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"The unique identifier of the worker"},"email":{"type":"string","format":"email","example":"jane.doe@example.com","description":"The worker's email address"},"pic_url":{"type":"string","example":"https://cdn.deel.com/avatars/jane-doe.png","nullable":true,"description":"URL of the worker's profile picture"},"job_title":{"type":"string","example":"Software Engineer","nullable":true,"description":"The worker's job title"},"last_name":{"type":"string","example":"Doe","nullable":true,"description":"The worker's last name"},"first_name":{"type":"string","example":"Jane","nullable":true,"description":"The worker's first name"},"hiring_type":{"type":"string","example":"employee","nullable":true,"description":"The worker's engagement type within Deel (e.g. employee, contractor)"},"middle_name":{"type":"string","example":"Ann","nullable":true,"description":"The worker's middle name"}},"description":"Profile information for the EOR worker who holds the grant"},"reference_id":{"type":"number","example":1024,"nullable":true,"description":"The human-readable reference number of the grant"},"vested_events":{"type":"array","items":{"type":"object","properties":{"quantity":{"type":"number","example":100,"nullable":true,"description":"The quantity that vested on this date"},"vesting_date":{"type":"string","format":"date","example":"2025-03-01","nullable":true,"description":"The date this tranche vested"}}},"description":"The individual vesting events recorded for this grant"},"exercise_price":{"type":"number","example":1.5,"nullable":true,"description":"The per-unit price at which the option or warrant can be exercised, in exercise price currency"},"grant_currency":{"type":"string","example":"USD","nullable":true,"description":"The currency of the grant value"},"vesting_length":{"type":"number","example":48,"nullable":true,"description":"The total vesting length in months"},"vested_quantity":{"type":"number","example":400,"nullable":true,"description":"The quantity vested so far"},"fmv_when_granted":{"type":"number","example":3.2,"nullable":true,"description":"The fair market value of the underlying instrument at grant time"},"equity_grant_type":{"type":"string","example":"RSU","nullable":true,"description":"The type of equity instrument granted"},"option_expiration":{"type":"string","format":"date","example":"2035-01-15","nullable":true,"description":"The date the option expires"},"vesting_start_date":{"type":"string","format":"date","example":"2025-02-01","nullable":true,"description":"The date vesting begins"},"equity_grant_type_name":{"type":"string","example":"Standard RSU","nullable":true,"description":"The organization's custom label for the grant type"},"exercise_price_currency":{"type":"string","example":"USD","nullable":true,"description":"The currency of the exercise price"},"additional_grant_requirements_and_restrictions":{"type":"string","example":"Subject to board approval upon exercise","nullable":true,"description":"Free-text additional requirements or restrictions on the grant"}}}},"limit":{"type":"integer","example":100,"description":"The limit applied to this page of results"},"total":{"type":"integer","example":42,"description":"The total number of grants matching the query, independent of limit/offset"},"offset":{"type":"integer","example":0,"description":"The offset applied to this page of results"}}}}},"description":"A paginated list of equity grants, each including its vesting events and associated tax events."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"A machine-readable code identifying the type of error"},"field":{"type":"string","example":"limit","description":"The name of the request field that caused the error"},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"A human-readable description of the error"}}}}}}}},"description":"One or more query parameters are invalid. See the errors array for detail."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"forbidden","description":"A machine-readable code identifying the type of error"},"message":{"type":"string","example":"Access denied","description":"A human-readable description of the error"}}}}}}}},"description":"The token does not grant `equities.view` at the organization level."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":100,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of grants to return"},{"in":"query","name":"offset","schema":{"type":"integer","default":0,"minimum":0},"example":0,"required":false,"description":"Number of grants to skip before starting to return results"},{"in":"query","name":"search","schema":{"type":"string","maxLength":255},"example":"Jane Doe","required":false,"description":"Free-text search across grant/worker name and email"}],"description":"Retrieves the equity grants for an organization, each including its vesting events and associated tax events. Requires the `equities.view` permission at the organization level.\n\n **Token scopes**: `equities:read`","operationId":"listEquityGrantsWithTaxEvents-v2026-08-10","security":[{"deelToken":[]},{"oauth2":["equities:read"]}]}},"/organizations/secure-vault/folders/{folder_id}":{"patch":{"path":"/rest/organizations/secure-vault/folders/{folder_id}","tags":["Documents"],"method":"patch","summary":"Update Organization Secure Vault Folder","responses":{"204":{"description":"Folder updated successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Folder not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"folder_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the folder."}],"description":"Renames an Organization Secure Vault folder and updates its description. The system-managed \"Other Files\" folder cannot be modified.\n\n **Token scopes**: `organizations:write`","operationId":"updateOrganizationSecureVaultFolder-v2026-08-05","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"Signed Contracts","maxLength":255,"minLength":1,"description":"New folder name."},"description":{"type":"string","example":"Countersigned customer contracts","nullable":true,"maxLength":2000,"description":"New folder description."}},"description":"Fields to update on the folder.","additionalProperties":false}},"additionalProperties":false}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]},"delete":{"path":"/rest/organizations/secure-vault/folders/{folder_id}","tags":["Documents"],"method":"delete","summary":"Delete Organization Secure Vault Folder","responses":{"204":{"description":"Folder deleted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Folder not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"folder_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the folder."}],"description":"Deletes an Organization Secure Vault folder that is no longer needed, such as a temporary or misfiled folder structure, along with all of its sub-folders. Files that can be deleted are permanently removed and cannot be recovered; files that cannot be deleted (e.g. signed documents) are moved into the \"Other Files\" folder instead. The system-managed \"Other Files\" folder cannot be deleted.\n\n **Token scopes**: `organizations:write`","operationId":"deleteOrganizationSecureVaultFolder-v2026-08-05","security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]},"get":{"path":"/rest/organizations/secure-vault/folders/{folder_id}","tags":["Documents"],"method":"get","summary":"Get Organization Secure Vault Folder","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","name","ancestors"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the folder."},"name":{"type":"string","example":"Contracts","nullable":true,"description":"Folder name."},"ancestors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"f2d1b0c4-8a3e-4c11-9f77-2b6c5e1a90d3","description":"Public UUID of the ancestor folder."},"name":{"type":"string","example":"Legal","description":"Name of the ancestor folder."}},"description":"An ancestor folder."},"description":"Ancestor folders ordered from the root down to the direct parent."},"item_type":{"enum":["CUSTOM_FOLDER","REGISTRATION_DOC_FOLDER","DOCUMENTS_TO_SIGN_FOLDER"],"type":"string","example":"CUSTOM_FOLDER","nullable":true,"description":"Kind of folder."},"description":{"type":"string","example":"Signed customer contracts","nullable":true,"description":"Folder description."},"is_sub_folder":{"type":"boolean","example":false,"description":"Whether the folder is nested under another folder."},"parent_folder_id":{"type":"string","format":"uuid","example":"f2d1b0c4-8a3e-4c11-9f77-2b6c5e1a90d3","nullable":true,"description":"Public UUID of the parent folder."},"has_upload_permission":{"type":"boolean","example":true,"description":"Whether the caller may upload files into this folder."}},"description":"The folder."}}}}},"description":"Folder returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Folder not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"folder_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the folder."}],"description":"Returns a single Organization Secure Vault folder, including its ancestor chain from the root folder down to its parent.\n\n **Token scopes**: `organizations:read`","operationId":"getOrganizationSecureVaultFolder-v2026-08-05","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/v2/time_tracking/shift_rates":{"post":{"path":"/rest/v2/time_tracking/shift_rates","tags":["Time Tracking Rates"],"method":"post","summary":"Create a New Shift Rate","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"name":{"type":"string","example":"Night Shift Bonus","description":"The name of the created shift rate."},"type":{"type":"string","example":"MULTIPLIER_PERCENTAGE","description":"The type of the created shift rate."},"value":{"type":"number","example":80.2,"description":"The value of the created shift rate."},"external_id":{"type":"string","example":"rate-unique-id-1234","description":"The unique identifier of the created shift rate."}}}}},"example":{"data":{"name":"Night Shift Bonus","type":"MULTIPLIER_PERCENTAGE","value":80.2,"external_id":"rate-unique-id-1234"}}}},"description":"Shift rate created successfully."},"400":{"content":{"application/json":{"example":{"error":"The provided 'value' must be a positive number."}}},"description":"Invalid input provided for the shift rate creation."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"example":{"error":"A shift rate with the provided external ID already exists."}}},"description":"Conflict occurred, likely due to a duplicate external ID."},"500":{"content":{"application/json":{"example":{"error":"An unexpected error occurred. Please try again later."}}},"description":"Internal server error encountered while creating the shift rate."}},"parameters":[],"description":"Create a new shift rate with the specified attributes such as name, type, value, and a unique external identifier.\n\n **Token scopes**: `time-tracking:write`","operationId":"createANewShiftRate-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name","external_id"],"properties":{"name":{"type":"string","example":"Night Shift Bonus","description":"The name of the shift rate."},"type":{"enum":["MULTIPLIER_PERCENTAGE","PER_HOUR_FLAT_RATE","PER_UNIT_FLAT_RATE"],"example":"MULTIPLIER_PERCENTAGE","description":"The type of the shift rate."},"value":{"type":"number","example":80.2,"description":"The value of the shift rate."},"external_id":{"type":"string","example":"rate-unique-id-1234","description":"A unique identifier for the shift rate."}}}}},"example":{"data":{"name":"Night Shift Bonus","type":"MULTIPLIER_PERCENTAGE","value":80.2,"external_id":"rate-unique-id-1234"}}}},"description":"Details of the shift rate to create."},"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]},"get":{"path":"/rest/v2/time_tracking/shift_rates","tags":["Time Tracking Rates"],"method":"get","summary":"Retrieve a Paginated List of Shift Rates","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["external_id","name","type","value","created_at","updated_at"],"properties":{"name":{"type":"string","example":"Weekend Bonus","description":"Name of the shift rate."},"type":{"type":"string","example":"FLAT_RATE","description":"Type of the shift rate (e.g., MULTIPLIER_PERCENTAGE or FLAT_RATE)."},"value":{"type":"number","example":150,"description":"The value associated with the shift rate."},"created_at":{"type":"string","example":"2024-11-15T05:51:18.000Z","description":"Timestamp indicating when the shift rate was created."},"updated_at":{"type":"string","example":"2024-11-20T12:34:56.000Z","description":"Timestamp indicating when the shift rate was last updated."},"external_id":{"type":"string","example":"rate-5678","description":"External identifier of the shift rate."}}}},"page":{"type":"object","required":["total_rows","items_per_page","offset"],"properties":{"offset":{"type":"integer","example":0,"description":"The offset/index for the current page of records."},"total_rows":{"type":"integer","example":100,"description":"Total number of shift rates available in the dataset."},"items_per_page":{"type":"integer","example":10,"description":"The number of items returned per page."}}}}},"example":{"data":[{"name":"Weekend Bonus","type":"FLAT_RATE","value":150,"created_at":"2024-11-15T05:51:18.000Z","updated_at":"2024-11-20T12:34:56.000Z","external_id":"rate-5678"}],"page":{"offset":0,"total_rows":100,"items_per_page":10}}}},"description":"Paginated list of shift rates retrieved successfully."},"400":{"content":{"application/json":{"example":{"error":"Invalid query parameter: limit must be a positive number."}}},"description":"Invalid query parameters provided (e.g., non-numeric limit or offset)."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"example":{"error":"An unexpected error occurred. Please try again later."}}},"description":"Internal server error encountered while retrieving shift rates."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"10","description":"The maximum number of records to return per page. For example, '10' to return up to 10 records."},{"in":"query","name":"offset","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"10","description":"The starting index for the records to retrieve. For example, '0' for the first page or '10' for the second page when limit=10."}],"description":"Retrieve a paginated list of shift rates, including details such as rate name, type, value, and timestamps. Pagination parameters can be used to control the size and position of the result set.\n\n **Token scopes**: `time-tracking:read`","operationId":"retrieveAPaginatedListOfShiftRates-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]}},"/legal-entities/{id}":{"patch":{"path":"/rest/legal-entities/{id}","tags":["Legal Entities"],"method":"patch","summary":"Edit a legal entity","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the legal entity."},"name":{"type":"string","example":"Deel Inc.","description":"The name of the legal entity."},"phone":{"type":"string","example":"+18001234567","description":"The phone number of the legal entity.","x-sensitive-pii":true},"address":{"type":"object","properties":{"city":{"type":"string","example":"San Francisco","description":"The city.","x-sensitive-pii":true},"state":{"type":"string","example":"CA","description":"The state.","x-sensitive-pii":true},"street":{"type":"string","example":"123 Main St","description":"The street address.","x-sensitive-pii":true},"country":{"type":"string","example":"US","description":"The ISO 2-letter country code.","x-sensitive-pii":true}},"x-sensitive-pii":true},"sic_number":{"type":"string","example":"1234","description":"The SIC number of the legal entity."},"entity_type":{"type":"string","example":"Corporation","description":"The type of the legal entity."},"industry_name":{"type":"string","example":"Software Development","description":"The industry name of the legal entity."},"company_identifiers":{"type":"object","properties":{"tax_number":{"type":"string","example":"123456789","description":"The tax identification number of the legal entity."},"registration_number":{"type":"string","example":"987654321","description":"The registration number of the legal entity."}}}}}}}}},"description":"Successfully updated the legal entity."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Invalid request parameters.","description":"Error message explaining what went wrong."}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"User must be a manager of the organization to update an entity.","description":"Error message explaining why access is denied."}}}}},"description":"Permission denied."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The ID of the legal entity to update."}],"description":"Applies a partial update to an existing legal entity identified by id; only fields included in the request body are modified.\n\n **Token scopes**: `legal-entity:write`","operationId":"editALegalEntity-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"name":{"type":"string","example":"Deel Inc.","description":"The name of the legal entity."},"phone":{"type":"string","example":"+18001234567","description":"The phone number of the legal entity."},"address":{"type":"object","properties":{"city":{"type":"string","example":"San Francisco","description":"The city."},"state":{"type":"string","example":"CA","description":"The state."},"street":{"type":"string","example":"123 Main St","description":"The street address."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","description":"The ISO 2-letter country code."}}},"sic_number":{"type":"string","example":"1234","description":"The SIC number of the legal entity."},"entity_type":{"type":"string","example":"Corporation","description":"The type of the legal entity."},"industry_name":{"type":"string","example":"Software Development","description":"The industry name of the legal entity."},"company_identifiers":{"type":"object","properties":{"tax_number":{"type":"string","example":"123456789","description":"The tax identification number of the legal entity."},"registration_number":{"type":"string","example":"987654321","description":"The registration number of the legal entity."}},"description":"Identifiers associated with the legal entity."},"deel_industry_subcategory_id":{"type":"string","example":"8174a182-16fb-41a2-8d07-c28d01f0d611","description":"Reference to the Deel Industry Code (NAICS)."}}}}}}},"required":false},"security":[{"deelToken":[]},{"oauth2":["legal-entity:write"]}]},"delete":{"path":"/rest/legal-entities/{id}","tags":["Legal Entities"],"method":"delete","summary":"Delete a legal entity","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"archived_at":{"type":"string","format":"date-time","example":"2024-11-29T12:00:00Z","description":"The timestamp when the legal entity was archived."}}}}},"description":"Successfully archived the legal entity."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Invalid request parameters.","description":"Error message explaining what went wrong."}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"User does not have sufficient permissions to delete this entity.","description":"Error message explaining why access is denied."}}}}},"description":"Permission denied."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the legal entity."},"required":true,"description":"The ID of the legal entity to archive."}],"description":"Archives the legal entity identified by id, marking it as inactive without permanently removing it; the response includes the archived_at timestamp.\n\n **Token scopes**: `legal-entity:read`, `legal-entity:write`","operationId":"deleteLegalEntity-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["legal-entity:read","legal-entity:write"]}]}},"/legal-entities/{legal_entity_id}/registration-documents/{document_id}/files":{"delete":{"path":"/rest/legal-entities/{legal_entity_id}/registration-documents/{document_id}/files","tags":["Documents"],"method":"delete","summary":"Delete Legal Entity Registration Document Files","responses":{"204":{"description":"Files deleted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Submission not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the legal entity."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the document submission."}],"description":"Removes specific files from a submission while leaving the submission itself in place. Use this to drop a page that was uploaded by mistake without withdrawing the whole document. Removal is permanent — the files cannot be recovered. Removing every file leaves the submission with none attached, so delete the submission instead when that is the intent.\n\n **Token scopes**: `legal-entity:write`","operationId":"deleteLegalEntityRegistrationDocumentFiles-v2026-08-17","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["file_ids"],"properties":{"file_ids":{"type":"array","items":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of a file."},"maxItems":200,"minItems":1,"description":"Public UUIDs of the files to remove."}},"additionalProperties":false}},"additionalProperties":false}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["legal-entity:write"]}]}},"/workers/tax-forms":{"get":{"path":"/rest/workers/tax-forms","tags":["Workers"],"method":"get","summary":"List tax forms for the authenticated worker","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"oneOf":[{"type":"object","title":"W9_INDIVIDUAL","required":["id","form_type","client_legal_entity_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The public ID (UUID) of the tax form."},"city":{"type":"string","example":"New York","nullable":true,"description":"City name."},"state":{"type":"string","example":"NY","nullable":true,"description":"State or province code."},"address":{"type":"string","example":"123 Main Street","description":"Street address of permanent residence.","x-sensitive-pii":true},"country":{"type":"string","example":"US","description":"ISO 3166-1 alpha-2 country code of permanent residence."},"pdf_url":{"type":"string","example":"https://files.deel.com/download/abc123","nullable":true,"description":"Pre-signed download URL for the generated form PDF. The link expires about 15 minutes after the response is issued — download promptly or request the list again. Null while the PDF has not been generated yet.","x-sensitive-pii":true,"x-sensitive-employment":true},"zip_code":{"type":"string","example":"10001","description":"ZIP/postal code.","x-sensitive-pii":true},"form_type":{"enum":["W9_INDIVIDUAL"],"type":"string","example":"W9_INDIVIDUAL","description":"Tax form type for US individuals."},"last_name":{"type":"string","example":"Doe","description":"Legal last name. Present on W9_INDIVIDUAL and W8_BEN forms.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was created."},"first_name":{"type":"string","example":"John","description":"Legal first name. Present on W9_INDIVIDUAL and W8_BEN forms.","x-sensitive-pii":true},"tax_number":{"type":"object","properties":{"type":{"enum":["SSN","ITIN","EIN"],"type":"string","example":"SSN","description":"Tax ID type."},"value":{"type":"string","example":"219-09-9999","description":"Tax ID value, unmasked."}},"description":"Taxpayer identification number. Returned unmasked.","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was last updated."},"middle_name":{"type":"string","example":"Michael","description":"Legal middle name. Present on W9_INDIVIDUAL and W8_BEN forms.","x-sensitive-pii":true},"business_name":{"type":"string","example":"Acme Corp","nullable":true,"description":"Business name. Present on W9_COMPANY forms and disregarded-entity W9_INDIVIDUAL forms.","x-sensitive-pii":true},"contractor_signature":{"type":"string","example":"John Doe","description":"The signer's digital signature.","x-sensitive-pii":true},"is_disregarded_entity":{"type":"boolean","example":false,"description":"Whether this is a disregarded entity. Present on W9_INDIVIDUAL and W8_BEN forms."},"client_legal_entity_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Public ID of the client's legal entity the form was submitted against."},"is_subject_backup_withholding":{"type":"boolean","example":false,"description":"Whether the contractor is subject to backup withholding. Present on W-9 forms."}},"x-sensitive-pii":true},{"type":"object","title":"W9_COMPANY","required":["id","form_type","client_legal_entity_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The public ID (UUID) of the tax form."},"city":{"type":"string","example":"New York","nullable":true,"description":"City name."},"state":{"type":"string","example":"NY","nullable":true,"description":"State or province code."},"address":{"type":"string","example":"123 Main Street","description":"Street address of permanent residence.","x-sensitive-pii":true},"country":{"type":"string","example":"US","description":"ISO 3166-1 alpha-2 country code of permanent residence."},"pdf_url":{"type":"string","example":"https://files.deel.com/download/abc123","nullable":true,"description":"Pre-signed download URL for the generated form PDF. The link expires about 15 minutes after the response is issued — download promptly or request the list again. Null while the PDF has not been generated yet.","x-sensitive-pii":true,"x-sensitive-employment":true},"zip_code":{"type":"string","example":"10001","description":"ZIP/postal code.","x-sensitive-pii":true},"form_type":{"enum":["W9_COMPANY"],"type":"string","example":"W9_COMPANY","description":"Tax form type for US entities."},"created_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was created."},"tax_number":{"type":"object","properties":{"type":{"enum":["SSN","ITIN","EIN"],"type":"string","example":"SSN","description":"Tax ID type."},"value":{"type":"string","example":"219-09-9999","description":"Tax ID value, unmasked."}},"description":"Taxpayer identification number. Returned unmasked.","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was last updated."},"business_name":{"type":"string","example":"Acme Corp","nullable":true,"description":"Business name. Present on W9_COMPANY forms and disregarded-entity W9_INDIVIDUAL forms.","x-sensitive-pii":true},"doing_business_as":{"type":"string","example":"Acme","nullable":true,"description":"DBA name. Present on W9_COMPANY forms.","x-sensitive-pii":true},"contractor_signature":{"type":"string","example":"John Doe","description":"The signer's digital signature.","x-sensitive-pii":true},"client_legal_entity_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Public ID of the client's legal entity the form was submitted against."},"federal_tax_classification":{"type":"object","properties":{"type":{"enum":["C_CORPORATION","S_CORPORATION","OTHER","PARTNERSHIP","LLC","TRUST_ESTATE"],"type":"string","example":"LLC","description":"Federal tax classification type."},"llc_classification":{"enum":["P","S","C"],"type":"string","example":"C","description":"LLC sub-classification. Present when type is 'LLC'."},"other_additional_information":{"type":"string","example":"Nonprofit organization exempt under section 501(c)","description":"Additional information. Present when type is 'OTHER'."}},"description":"Federal tax classification. Present on W9_COMPANY forms."},"is_subject_backup_withholding":{"type":"boolean","example":false,"description":"Whether the contractor is subject to backup withholding. Present on W-9 forms."}},"x-sensitive-pii":true},{"type":"object","title":"W8_BEN","required":["id","form_type","client_legal_entity_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The public ID (UUID) of the tax form."},"city":{"type":"string","example":"New York","nullable":true,"description":"City name."},"state":{"type":"string","example":"NY","nullable":true,"description":"State or province code."},"address":{"type":"string","example":"123 Main Street","description":"Street address of permanent residence.","x-sensitive-pii":true},"country":{"type":"string","example":"US","description":"ISO 3166-1 alpha-2 country code of permanent residence."},"pdf_url":{"type":"string","example":"https://files.deel.com/download/abc123","nullable":true,"description":"Pre-signed download URL for the generated form PDF. The link expires about 15 minutes after the response is issued — download promptly or request the list again. Null while the PDF has not been generated yet.","x-sensitive-pii":true,"x-sensitive-employment":true},"zip_code":{"type":"string","example":"10001","description":"ZIP/postal code.","x-sensitive-pii":true},"form_type":{"enum":["W8_BEN"],"type":"string","example":"W8_BEN","description":"Tax form type for non-US individuals."},"last_name":{"type":"string","example":"Doe","description":"Legal last name. Present on W9_INDIVIDUAL and W8_BEN forms.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was created."},"first_name":{"type":"string","example":"John","description":"Legal first name. Present on W9_INDIVIDUAL and W8_BEN forms.","x-sensitive-pii":true},"tax_number":{"type":"object","properties":{"type":{"enum":["FTIN"],"type":"string","example":"FTIN","description":"Tax ID type."},"value":{"type":"string","example":"123456789","description":"Tax ID value, unmasked."}},"description":"Foreign taxpayer identification number. Returned unmasked.","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was last updated."},"middle_name":{"type":"string","example":"Michael","description":"Legal middle name. Present on W9_INDIVIDUAL and W8_BEN forms.","x-sensitive-pii":true},"address_line2":{"type":"string","example":"Apt 4B","nullable":true,"description":"Street address line 2. Present on W8_BEN and W8_BEN_E forms.","x-sensitive-pii":true},"date_of_birth":{"type":"string","format":"date-time","example":"1990-01-15T00:00:00.000Z","nullable":true,"description":"Date of birth. Present on W8_BEN and W8_BEN_E forms.","x-sensitive-pii":true},"us_tax_number":{"type":"object","properties":{"type":{"enum":["SSN","ITIN"],"type":"string","example":"ITIN","description":"US tax ID type."},"value":{"type":"string","example":"900-70-1234","description":"US tax ID value, unmasked."}},"description":"US Taxpayer Identification Number. Present on W8_BEN and W8_BEN_E forms. Returned unmasked.","x-sensitive-pii":true},"mailing_address":{"type":"object","nullable":true,"properties":{"city":{"type":"string","example":"Madrid","nullable":true,"description":"Mailing address city."},"state":{"type":"string","example":"Madrid","nullable":true,"description":"Mailing address state."},"address":{"type":"string","example":"Gran Via 45","description":"Mailing address."},"country":{"type":"string","example":"ES","description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"28013","description":"Mailing address ZIP/postal code."},"address_line2":{"type":"string","example":"Floor 2","nullable":true,"description":"Mailing address line 2."}},"description":"Mailing address if different from permanent residence. Present on W8_BEN and W8_BEN_E forms.","x-sensitive-pii":true},"contractor_signature":{"type":"string","example":"John Doe","description":"The signer's digital signature.","x-sensitive-pii":true},"print_name_of_signer":{"type":"string","example":"John Doe","nullable":true,"description":"Printed name of the signer. Present on W-8 forms.","x-sensitive-pii":true},"is_disregarded_entity":{"type":"boolean","example":false,"description":"Whether this is a disregarded entity. Present on W9_INDIVIDUAL and W8_BEN forms."},"is_tax_treaty_enabled":{"type":"boolean","example":false,"nullable":true,"description":"Whether tax treaty benefits are claimed. Present on W-8 forms."},"client_legal_entity_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Public ID of the client's legal entity the form was submitted against."},"country_of_citizenship":{"type":"string","example":"ES","description":"ISO 3166-1 alpha-2 country code of citizenship (W8_BEN) or incorporation (W8_BEN_E)."},"is_certified_and_agreed":{"type":"boolean","example":true,"nullable":true,"description":"Certification that the signer has read and agrees with the certification information. Present on W8_BEN forms."},"referencing_information":{"type":"string","example":"Contract 12345","nullable":true,"description":"Reference number for the form. Present on W-8 forms."},"tax_treaty_benefits_form":{"type":"object","nullable":true,"properties":{"details":{"type":"string","example":"Income is not attributable to a permanent establishment in the United States.","description":"Additional details about the treaty claim."},"type_of_income":{"type":"string","example":"Business profits","description":"Type of income covered by the treaty."},"withholding_rate":{"type":"number","example":0,"description":"Withholding rate under the treaty (percentage)."},"article_and_paragraph":{"type":"string","example":"Article 7, Paragraph 1","description":"Article and paragraph of the applicable tax treaty."},"owner_resident_country":{"type":"string","example":"ES","description":"Country of residence of the beneficial owner."}},"description":"Tax treaty benefits details. Present when treaty benefits are claimed."},"is_ftin_not_legally_required":{"type":"boolean","example":false,"description":"Whether an FTIN is not legally required in the country of residence. Present on W-8 forms."}},"x-sensitive-pii":true},{"type":"object","title":"W8_BEN_E","required":["id","form_type","client_legal_entity_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The public ID (UUID) of the tax form."},"city":{"type":"string","example":"New York","nullable":true,"description":"City name."},"giin":{"type":"string","example":"98Q96B.00000.LE.250","nullable":true,"description":"Global Intermediary Identification Number. Present on W8_BEN_E forms.","x-sensitive-pii":true},"state":{"type":"string","example":"NY","nullable":true,"description":"State or province code."},"address":{"type":"string","example":"123 Main Street","description":"Street address of permanent residence.","x-sensitive-pii":true},"country":{"type":"string","example":"US","description":"ISO 3166-1 alpha-2 country code of permanent residence."},"pdf_url":{"type":"string","example":"https://files.deel.com/download/abc123","nullable":true,"description":"Pre-signed download URL for the generated form PDF. The link expires about 15 minutes after the response is issued — download promptly or request the list again. Null while the PDF has not been generated yet.","x-sensitive-pii":true,"x-sensitive-employment":true},"zip_code":{"type":"string","example":"10001","description":"ZIP/postal code.","x-sensitive-pii":true},"form_type":{"enum":["W8_BEN_E"],"type":"string","example":"W8_BEN_E","description":"Tax form type for non-US entities."},"created_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was created."},"tax_number":{"type":"object","properties":{"type":{"enum":["FTIN"],"type":"string","example":"FTIN","description":"Tax ID type."},"value":{"type":"string","example":"123456789","description":"Tax ID value, unmasked."}},"description":"Foreign taxpayer identification number. Returned unmasked.","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was last updated."},"entity_type":{"enum":["CORPORATION","DISREGARDED_ENTITY","PARTNERSHIP","SIMPLE_TRUST","GRANTOR_TRUST","COMPLEX_TRUST","ESTATE","GOVERNMENT","CENTRAL_BANK_OF_ISSUE","TAX_EXEMPT","PRIVATE_FOUNDATION","INTERNATIONAL","FOREIGN_GOVERNMENT_CONTROLLED","FOREIGN_GOVERNMENT_INTEGRAL"],"type":"string","example":"CORPORATION","description":"Chapter 3 entity type. Present on W8_BEN_E forms."},"fatca_status":{"enum":["ACTIVE_NFFE","PASSIVE_NFFE"],"type":"string","example":"ACTIVE_NFFE","description":"FATCA (Foreign Account Tax Compliance Act) status. Present on W8_BEN_E forms."},"address_line2":{"type":"string","example":"Apt 4B","nullable":true,"description":"Street address line 2. Present on W8_BEN and W8_BEN_E forms.","x-sensitive-pii":true},"date_of_birth":{"type":"string","format":"date-time","example":"1990-01-15T00:00:00.000Z","nullable":true,"description":"Date of birth. Present on W8_BEN and W8_BEN_E forms.","x-sensitive-pii":true},"us_tax_number":{"type":"object","properties":{"type":{"enum":["SSN","ITIN"],"type":"string","example":"ITIN","description":"US tax ID type."},"value":{"type":"string","example":"900-70-1234","description":"US tax ID value, unmasked."}},"description":"US Taxpayer Identification Number. Present on W8_BEN and W8_BEN_E forms. Returned unmasked.","x-sensitive-pii":true},"entity_country":{"type":"string","example":"PT","nullable":true,"description":"ISO 3166-1 alpha-2 country code of the entity. Present on W8_BEN_E forms."},"mailing_address":{"type":"object","nullable":true,"properties":{"city":{"type":"string","example":"Madrid","nullable":true,"description":"Mailing address city."},"state":{"type":"string","example":"Madrid","nullable":true,"description":"Mailing address state."},"address":{"type":"string","example":"Gran Via 45","description":"Mailing address."},"country":{"type":"string","example":"ES","description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"28013","description":"Mailing address ZIP/postal code."},"address_line2":{"type":"string","example":"Floor 2","nullable":true,"description":"Mailing address line 2."}},"description":"Mailing address if different from permanent residence. Present on W8_BEN and W8_BEN_E forms.","x-sensitive-pii":true},"contractor_signature":{"type":"string","example":"John Doe","description":"The signer's digital signature.","x-sensitive-pii":true},"name_of_organization":{"type":"string","example":"Continental Ltd.","description":"Name of the organization. Present on W8_BEN_E forms.","x-sensitive-pii":true},"print_name_of_signer":{"type":"string","example":"John Doe","nullable":true,"description":"Printed name of the signer. Present on W-8 forms.","x-sensitive-pii":true},"is_tax_treaty_enabled":{"type":"boolean","example":false,"nullable":true,"description":"Whether tax treaty benefits are claimed. Present on W-8 forms."},"client_legal_entity_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Public ID of the client's legal entity the form was submitted against."},"country_of_citizenship":{"type":"string","example":"ES","description":"ISO 3166-1 alpha-2 country code of citizenship (W8_BEN) or incorporation (W8_BEN_E)."},"referencing_information":{"type":"string","example":"Contract 12345","nullable":true,"description":"Reference number for the form. Present on W-8 forms."},"has_substantial_us_owner":{"type":"boolean","example":false,"description":"Whether the entity has a substantial US owner. Present on W8_BEN_E forms."},"tax_treaty_benefits_form":{"type":"object","nullable":true,"properties":{"details":{"type":"string","example":"Income is not attributable to a permanent establishment in the United States.","description":"Additional details about the treaty claim."},"type_of_income":{"type":"string","example":"Business profits","description":"Type of income covered by the treaty."},"limitation_type":{"enum":["GOVERNMENT","PENSION_TRUST","TAX_EXEMPT","PUBLICLY_TRADED_CORPORATION","SUBSIDIARY","OWNERSHIP_TEST","DERIVATIVE_TEST","ACTIVE_TRADE_TEST","FAVORABLE","NO_ARTICLE","OTHER"],"type":"string","example":"OTHER","nullable":true,"description":"Limitation on benefits (LOB) type."},"withholding_rate":{"type":"number","example":0,"description":"Withholding rate under the treaty (percentage)."},"article_and_paragraph":{"type":"string","example":"Article 7, Paragraph 1","description":"Article and paragraph of the applicable tax treaty."},"owner_resident_country":{"type":"string","example":"ES","description":"Country of residence of the beneficial owner."},"is_tax_residency_certified":{"type":"boolean","example":true,"nullable":true,"description":"Whether tax residency is certified."},"other_article_and_paragraph":{"type":"string","example":"Article 24, Paragraph 3","nullable":true,"description":"Other article and paragraph. Present when limitation_type is 'OTHER'."}},"description":"Tax treaty benefits details. Present when treaty benefits are claimed."},"name_of_disregarded_entity":{"type":"string","example":"Continental Branch Ltd.","nullable":true,"description":"Name of the disregarded entity, if applicable. Present on W8_BEN_E forms.","x-sensitive-pii":true},"is_ftin_not_legally_required":{"type":"boolean","example":false,"description":"Whether an FTIN is not legally required in the country of residence. Present on W-8 forms."},"is_entity_certification_confirmed":{"type":"boolean","example":true,"nullable":true,"description":"Certification that the entity is the beneficial owner of all income. Present on W8_BEN_E forms."}},"x-sensitive-pii":true}],"discriminator":{"propertyName":"form_type"}},"description":"The worker's tax forms, newest first.","x-sensitive-pii":true,"x-sensitive-employment":true},"has_more":{"type":"boolean","example":false,"description":"Whether more tax forms exist beyond this page."},"next_cursor":{"type":"string","example":"eyJpZCI6MTIzfQ","nullable":true,"description":"Cursor to pass as the cursor query parameter to fetch the next page. Null when has_more is false."},"total_count":{"type":"integer","example":3,"description":"Total number of the worker's tax forms across all pages."}}}}},"description":"A page of the worker's tax forms."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Invalid or malformed cursor","description":"Human-readable explanation of the error"}}}}}}}},"description":"Validation failed — for example the cursor is malformed or the limit is out of range."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"resource_not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"Resource not found","description":"Human-readable explanation of the error"}}}}}}}},"description":"The authenticated worker was not found in the calling organization, or has no contractor profile."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of tax forms to return per page (1-100)."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJpZCI6MTIzfQ","required":false,"description":"Opaque pagination cursor returned as next_cursor by a previous page. Omit to fetch the first page."}],"description":"List the tax forms of the worker resolved from the access token, ordered by creation date descending, using cursor pagination (limit + cursor). Each item contains the resource fields (id, created_at, updated_at, client_legal_entity_id, pdf_url) and the full form data in the same public shape the create endpoint accepts; the fields present depend on the item's form_type. Each form appears once, carrying its current data. Tax identification numbers are unmasked because the authenticated worker owns the data.\n\n **Token scopes**: `worker:read`","operationId":"listTaxFormsForAWorker-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]},"post":{"path":"/rest/workers/tax-forms","tags":["Workers"],"method":"post","summary":"Create a tax form for the authenticated worker","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The public ID (UUID) of the created tax form."},"created_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was created."}},"x-sensitive-pii":true,"x-sensitive-employment":true}}}}},"description":"Tax form created successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Validation failed — for example a request body field is missing or malformed, the client_legal_entity_id does not exist, or the form_type does not match the contractor's tax residency (e.g. a W-8BEN submitted for a US contractor)."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"forbidden","description":"Machine-readable error code"},"message":{"type":"string","example":"No active contract found for the given contractor and legal entity","description":"Human-readable explanation of the error"}}}}}}}},"description":"No live contract exists between the contractor and the specified client legal entity. A tax form can only be submitted for a contractor who has a non-terminated contract with that legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"resource_not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"Resource not found","description":"Human-readable explanation of the error"}}}}}}}},"description":"The authenticated worker was not found in the calling organization, or has no contractor profile."},"409":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"conflict","description":"Machine-readable error code"},"message":{"type":"string","example":"Tax form already exists for this contractor and entity pair","description":"Human-readable explanation of the error"}}}}}}}},"description":"A tax form already exists for this contractor and client legal entity. Only one tax form can exist per contractor/legal-entity pair."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Internal server error."}},"description":"Submit a new US tax form for the authenticated worker against a specific client legal entity, typically during onboarding or when a fresh form must be recorded for a worker/legal-entity pair. The worker is resolved from the access token; the target legal entity is set via client_legal_entity_id. Select the form type based on the worker's US tax status: W-9 for US individuals or entities, W-8BEN for non-US individuals, W-8BEN-E for non-US entities. The worker must have an active (non-terminated) contract with the legal entity, and only one tax form may exist per worker/legal-entity pair.\n\n **Token scopes**: `worker:write`","operationId":"createATaxFormForAWorker-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","oneOf":[{"type":"object","title":"W9_INDIVIDUAL","required":["form_type","client_legal_entity_id","first_name","last_name","address","country","city","zip_code","tax_number","contractor_signature"],"properties":{"city":{"type":"string","example":"New York","maxLength":40,"minLength":1,"description":"City name."},"state":{"type":"string","example":"NY","nullable":true,"maxLength":10,"description":"US state code."},"address":{"type":"string","example":"123 Main Street","maxLength":40,"description":"Street address. Maximum 40 characters for 1099 reporting compliance."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"10001","description":"ZIP/postal code. Must be a valid US ZIP code for US addresses."},"form_type":{"enum":["W9_INDIVIDUAL"],"type":"string","example":"W9_INDIVIDUAL","description":"Tax form type for US individuals."},"last_name":{"type":"string","example":"Doe","maxLength":40,"description":"Legal last name."},"first_name":{"type":"string","example":"John","maxLength":40,"description":"Legal first name."},"tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["SSN","ITIN","EIN"],"type":"string","example":"SSN","description":"Tax ID type. SSN/ITIN for individuals; EIN also allowed for disregarded entities."},"value":{"type":"string","example":"219-09-9999","description":"Tax ID value."}},"description":"Taxpayer identification number."},"middle_name":{"type":"string","example":"Michael","maxLength":100,"description":"Legal middle name."},"business_name":{"type":"string","example":"John Doe LLC","nullable":true,"maxLength":40,"description":"Business name. Only applicable when is_disregarded_entity is true."},"contractor_signature":{"type":"string","example":"John Doe","maxLength":100,"minLength":1,"description":"Contractor's digital signature."},"is_disregarded_entity":{"type":"boolean","default":false,"example":true,"description":"Whether this is a disregarded entity."},"client_legal_entity_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Public ID of the client's legal entity."},"is_subject_backup_withholding":{"type":"boolean","default":false,"example":false,"description":"Whether the contractor is subject to backup withholding."}}},{"type":"object","title":"W9_COMPANY","required":["form_type","client_legal_entity_id","business_name","address","federal_tax_classification","country","city","zip_code","tax_number","contractor_signature"],"properties":{"city":{"type":"string","example":"New York","maxLength":40,"minLength":1,"description":"City name."},"state":{"type":"string","example":"NY","nullable":true,"maxLength":10,"description":"US state code."},"address":{"type":"string","example":"456 Corporate Blvd","maxLength":40,"description":"Street address."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"10001","description":"ZIP/postal code."},"form_type":{"enum":["W9_COMPANY"],"type":"string","example":"W9_COMPANY","description":"Tax form type for US entities/companies."},"tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["SSN","ITIN","EIN"],"type":"string","example":"EIN","description":"Tax ID type. EIN for most entities; SSN/ITIN/EIN for LLC."},"value":{"type":"string","example":"12-3456780","description":"Tax ID value."}},"description":"Taxpayer identification number."},"business_name":{"type":"string","example":"Acme Corp","maxLength":40,"minLength":1,"description":"Business name."},"doing_business_as":{"type":"string","example":"Acme","nullable":true,"maxLength":50,"description":"DBA name."},"contractor_signature":{"type":"string","example":"Jane Smith","maxLength":100,"minLength":1,"description":"Authorized signer's digital signature."},"client_legal_entity_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Public ID of the client's legal entity."},"federal_tax_classification":{"type":"object","required":["type"],"properties":{"type":{"enum":["C_CORPORATION","S_CORPORATION","OTHER","PARTNERSHIP","LLC","TRUST_ESTATE"],"type":"string","example":"LLC","description":"Federal tax classification type."},"llc_classification":{"enum":["P","S","C"],"type":"string","example":"C","description":"LLC sub-classification. Required when type is 'LLC'."},"other_additional_information":{"type":"string","example":"Nonprofit organization exempt under section 501(c)","maxLength":100,"description":"Additional information. Required when type is 'OTHER'."}},"description":"Federal tax classification."},"is_subject_backup_withholding":{"type":"boolean","default":false,"example":false,"description":"Whether the contractor is subject to backup withholding."}}},{"type":"object","title":"W8_BEN","required":["form_type","client_legal_entity_id","first_name","last_name","country_of_citizenship","country","zip_code","address","contractor_signature"],"properties":{"city":{"type":"string","example":"Madrid","nullable":true,"maxLength":50,"minLength":1,"description":"City name."},"state":{"type":"string","example":"Madrid","nullable":true,"maxLength":10,"description":"State or province code."},"address":{"type":"string","example":"Calle Mayor 1","maxLength":100,"description":"Street address."},"country":{"type":"string","example":"ES","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of permanent residence."},"zip_code":{"type":"string","example":"28001","description":"ZIP/postal code."},"form_type":{"enum":["W8_BEN"],"type":"string","example":"W8_BEN","description":"Tax form type for non-US individuals."},"last_name":{"type":"string","example":"Garcia","maxLength":100,"description":"Legal last name."},"first_name":{"type":"string","example":"Maria","maxLength":100,"description":"Legal first name."},"tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["FTIN"],"type":"string","example":"FTIN","description":"Foreign tax ID type."},"value":{"type":"string","example":"X1234567L","maxLength":20,"description":"Foreign tax identifying number."}},"description":"Foreign tax identifying number. At least one of us_tax_number or tax_number is required unless is_ftin_not_legally_required is true."},"middle_name":{"type":"string","example":"Isabel","nullable":true,"maxLength":100,"description":"Legal middle name."},"address_line2":{"type":"string","example":"Apt 4B","nullable":true,"maxLength":100,"description":"Street address line 2."},"date_of_birth":{"type":"string","format":"date-time","example":"1990-01-15T00:00:00.000Z","nullable":true,"description":"Date of birth. Must be at least 18 years ago and no more than 100 years ago."},"us_tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["SSN","ITIN"],"type":"string","example":"ITIN","description":"US tax ID type."},"value":{"type":"string","example":"900-70-1234","description":"US tax ID value."}},"description":"US Taxpayer Identification Number."},"mailing_address":{"type":"object","nullable":true,"required":["address","country","zip_code"],"properties":{"city":{"type":"string","example":"Madrid","nullable":true,"maxLength":50,"minLength":1,"description":"Mailing address city."},"state":{"type":"string","example":"Madrid","nullable":true,"maxLength":10,"description":"Mailing address state."},"address":{"type":"string","example":"Gran Via 45","maxLength":100,"description":"Mailing address."},"country":{"type":"string","example":"ES","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"28013","description":"Mailing address ZIP/postal code."},"address_line2":{"type":"string","example":"Floor 2","nullable":true,"maxLength":100,"description":"Mailing address line 2."}},"description":"Mailing address if different from permanent residence."},"contractor_signature":{"type":"string","example":"Maria Garcia","maxLength":100,"minLength":1,"description":"Contractor's digital signature."},"print_name_of_signer":{"type":"string","example":"Maria Garcia","nullable":true,"maxLength":100,"description":"Printed name of the signer."},"is_disregarded_entity":{"type":"boolean","default":false,"example":false,"description":"Whether this is a disregarded entity."},"is_tax_treaty_enabled":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Whether the contractor claims tax treaty benefits."},"client_legal_entity_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Public ID of the client's legal entity."},"country_of_citizenship":{"type":"string","example":"ES","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of citizenship."},"is_certified_and_agreed":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Certification that the signer has read and agrees with the certification information."},"referencing_information":{"type":"string","example":"Contract 12345","nullable":true,"maxLength":100,"description":"Reference number for the form."},"tax_treaty_benefits_form":{"type":"object","nullable":true,"properties":{"details":{"type":"string","example":"Income is not attributable to a permanent establishment in the United States.","maxLength":400,"description":"Additional details about the treaty claim."},"type_of_income":{"type":"string","example":"Independent personal services","maxLength":100,"description":"Type of income covered by the treaty."},"withholding_rate":{"type":"number","example":0,"maximum":100,"minimum":0,"description":"Withholding rate under the treaty (percentage)."},"article_and_paragraph":{"type":"string","example":"Article 7, Paragraph 1","maxLength":100,"description":"Article and paragraph of the applicable tax treaty."},"owner_resident_country":{"type":"string","example":"ES","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country of residence of the beneficial owner. Must be a US income tax treaty country."}},"description":"Tax treaty benefits details. Applicable when is_tax_treaty_enabled is true."},"is_ftin_not_legally_required":{"type":"boolean","default":false,"example":false,"description":"Check if FTIN is not legally required in your country of residence."}}},{"type":"object","title":"W8_BEN_E","required":["form_type","client_legal_entity_id","name_of_organization","country_of_citizenship","entity_country","entity_type","fatca_status","country","city","zip_code","address","contractor_signature"],"properties":{"city":{"type":"string","example":"Lisbon","maxLength":50,"minLength":1,"description":"City of residence."},"giin":{"type":"string","example":"98Q96B.00000.LE.250","nullable":true,"maxLength":19,"minLength":19,"description":"Global Intermediary Identification Number (19 characters)."},"state":{"type":"string","example":"Lisboa","nullable":true,"maxLength":10,"description":"State or province code."},"address":{"type":"string","example":"Rua Augusta 100","maxLength":100,"description":"Street address."},"country":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of permanent residence."},"zip_code":{"type":"string","example":"1000","description":"ZIP/postal code."},"form_type":{"enum":["W8_BEN_E"],"type":"string","example":"W8_BEN_E","description":"Tax form type for non-US entities."},"tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["FTIN"],"type":"string","example":"FTIN","description":"Foreign tax ID type."},"value":{"type":"string","example":"501234567","maxLength":20,"description":"Foreign tax identifying number."}},"description":"Foreign tax identifying number. At least one of us_tax_number, tax_number, or giin is required unless is_ftin_not_legally_required is true."},"entity_type":{"enum":["CORPORATION","DISREGARDED_ENTITY","PARTNERSHIP","SIMPLE_TRUST","GRANTOR_TRUST","COMPLEX_TRUST","ESTATE","GOVERNMENT","CENTRAL_BANK_OF_ISSUE","TAX_EXEMPT","PRIVATE_FOUNDATION","INTERNATIONAL","FOREIGN_GOVERNMENT_CONTROLLED","FOREIGN_GOVERNMENT_INTEGRAL"],"type":"string","example":"CORPORATION","description":"Chapter 3 entity type."},"fatca_status":{"enum":["ACTIVE_NFFE","PASSIVE_NFFE"],"type":"string","example":"ACTIVE_NFFE","description":"FATCA (Foreign Account Tax Compliance Act) status."},"address_line2":{"type":"string","example":"Apt 4B","nullable":true,"maxLength":100,"description":"Street address line 2."},"date_of_birth":{"type":"string","format":"date-time","example":"1985-06-15T00:00:00.000Z","nullable":true,"description":"Date of birth of the beneficial owner."},"us_tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["SSN","ITIN"],"type":"string","example":"ITIN","description":"US tax ID type."},"value":{"type":"string","example":"900-70-1234","description":"US tax ID value."}},"description":"US Taxpayer Identification Number."},"entity_country":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the entity."},"mailing_address":{"type":"object","nullable":true,"required":["address","country","zip_code"],"properties":{"city":{"type":"string","example":"Lisbon","nullable":true,"maxLength":50,"minLength":1,"description":"Mailing address city."},"state":{"type":"string","example":"Lisboa","nullable":true,"maxLength":10,"description":"Mailing address state."},"address":{"type":"string","example":"Avenida da Liberdade 200","maxLength":100,"description":"Mailing address."},"country":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"1250","description":"Mailing address ZIP/postal code."},"address_line2":{"type":"string","example":"Floor 2","nullable":true,"maxLength":100,"description":"Mailing address line 2."}},"description":"Mailing address if different from permanent residence."},"contractor_signature":{"type":"string","example":"Continental Ltd.","maxLength":100,"minLength":1,"description":"Authorized signer's digital signature."},"name_of_organization":{"type":"string","example":"Continental Ltd.","maxLength":100,"description":"Name of the organization."},"print_name_of_signer":{"type":"string","example":"Joao Silva","nullable":true,"maxLength":100,"description":"Printed name of the authorized signer."},"is_tax_treaty_enabled":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Whether the entity claims tax treaty benefits."},"client_legal_entity_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Public ID of the client's legal entity."},"country_of_citizenship":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of incorporation/organization."},"referencing_information":{"type":"string","example":"Contract 12345","nullable":true,"maxLength":100,"description":"Reference number for the form."},"has_substantial_us_owner":{"type":"boolean","default":false,"example":false,"description":"Whether the entity has a substantial US owner. Required when fatca_status is 'PASSIVE_NFFE'."},"tax_treaty_benefits_form":{"type":"object","nullable":true,"properties":{"details":{"type":"string","example":"Income is not attributable to a permanent establishment in the United States.","maxLength":400,"description":"Additional details about the treaty claim."},"type_of_income":{"type":"string","example":"Business profits","maxLength":25,"description":"Type of income covered by the treaty."},"limitation_type":{"enum":["GOVERNMENT","PENSION_TRUST","TAX_EXEMPT","PUBLICLY_TRADED_CORPORATION","SUBSIDIARY","OWNERSHIP_TEST","DERIVATIVE_TEST","ACTIVE_TRADE_TEST","FAVORABLE","NO_ARTICLE","OTHER"],"type":"string","example":"OTHER","nullable":true,"description":"Limitation on benefits (LOB) type."},"withholding_rate":{"type":"number","example":0,"maximum":100,"minimum":0,"description":"Withholding rate under the treaty (percentage)."},"article_and_paragraph":{"type":"string","example":"Article 7, Paragraph 1","maxLength":100,"description":"Article and paragraph of the applicable tax treaty."},"owner_resident_country":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country of residence of the beneficial owner."},"is_tax_residency_certified":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Whether tax residency is certified."},"other_article_and_paragraph":{"type":"string","example":"Article 24, Paragraph 3","nullable":true,"maxLength":50,"description":"Other article and paragraph. Required when limitation_type is 'OTHER'."}},"description":"Tax treaty benefits details."},"name_of_disregarded_entity":{"type":"string","example":"Continental Branch Ltd.","nullable":true,"maxLength":100,"description":"Name of the disregarded entity, if applicable."},"is_ftin_not_legally_required":{"type":"boolean","default":false,"example":false,"description":"Check if FTIN is not legally required in your country."},"is_entity_certification_confirmed":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Certification that the entity is the beneficial owner of all income."}}}],"required":["form_type"],"discriminator":{"propertyName":"form_type"}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/it/assets/{asset_id}":{"get":{"path":"/rest/it/assets/{asset_id}","tags":["IT assets"],"method":"get","summary":"Retrieve an IT asset","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the item"},"grade":{"enum":["NEW","A","B","C","D","F"],"type":"string","example":"A","description":"The condition grade of the asset"},"status":{"enum":["ACTIVE","SUPPLIER_RETURN","STOLEN","LOST_IN_TRANSIT","WAITING_FOR_CLEARANCE","CLEARED","BINNED","LEFT_WITH_USER","SHRINKAGE","DAMAGED_BY_USER","DAMAGED_IN_TRANSIT","DAMAGED_AT_WAREHOUSE","BEING_REPAIRED","BROKEN_BY_USER","BROKEN_IN_TRANSIT","BROKEN_AT_WAREHOUSE","ADDED_BY_MISTAKE","RETURNED_TO_DEEL"],"type":"string","example":"ACTIVE","description":"Current state of the asset"},"product":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the product"},"name":{"type":"string","example":"MacBook Pro","description":"Product name"},"brand":{"type":"string","example":"Apple","description":"Product brand"},"category":{"enum":["ADAPTER","CABLE","CHAIR","CHARGER","DESK","DESK_RISER","DESK_TIDY","DESKTOP","DOCKING_STATION","DONGLE","FOOTREST","HEADSET","KEYBOARD","LAPTOP","LAPTOP_STAND","MICE_TRACKPAD","MOBILE_DEVICE","MONITOR","MONITOR_ARM","OTHER","PRINTER","SHREDDER","STANDING_MAT","TABLET","TASK_LIGHT","WEBCAM","WIFI_RANGE_EXTENDER","WELCOME_PACK"],"type":"string","example":"LAPTOP","description":"Product category"},"specifications":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"processor","description":"Specification name"},"value":{"type":"string","example":"M1 Pro","description":"Specification value"}}},"description":"Specifications of the product"}},"description":"Product details"},"location":{"enum":["WITH_USER","AT_WAREHOUSE","DEEL_WAREHOUSE","ORGANIZATION_WAREHOUSE","CLEARANCE_WAREHOUSE","SUPPLIER","WITH_COURIER","WRITE_OFF"],"type":"string","example":"WITH_USER","description":"Current location type of the asset"},"ownership":{"type":"object","properties":{"name":{"type":"string","example":"Deel","description":"Asset owner name"},"type":{"enum":["DEEL","ORGANIZATION"],"type":"string","example":"DEEL","description":"Asset owner type"}},"description":"Asset owner"},"created_at":{"type":"string","format":"date-time","example":"2025-08-08T09:49:01.000Z","description":"Creation timestamp of the asset"},"updated_at":{"type":"string","format":"date-time","example":"2025-08-08T09:49:01.000Z","description":"Last update timestamp of the asset"},"assigned_user":{"type":"object","nullable":true,"properties":{"emails":{"type":"array","items":{"type":"string","format":"email"},"example":["bruce.wayne@wayne-enterprise.com","batman@gotham.com"],"description":"Array of user email addresses","x-sensitive-pii":true,"x-sensitive-employment":true},"address":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the address"},"city":{"type":"string","example":"Gotham","nullable":true,"description":"City name","x-sensitive-pii":true},"type":{"enum":["PII","PARTIAL","DELIVERY","COLLECTION","ENTITY","SUPPLIER","BILLING"],"type":"string","example":"DELIVERY","description":"Type of the address"},"line1":{"type":"string","example":"1007 Mountain Drive","nullable":true,"description":"Address line 1","x-sensitive-pii":true,"x-sensitive-employment":true},"line2":{"type":"string","example":"Stately Wayne Manor","nullable":true,"description":"Address line 2","x-sensitive-pii":true,"x-sensitive-employment":true},"state":{"type":"string","example":"New Jersey","nullable":true,"description":"State code or name","x-sensitive-pii":true},"country":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","XK","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"Country code","x-sensitive-pii":true},"is_valid":{"type":"boolean","example":true,"description":"Whether the address passes validation"},"post_code":{"type":"string","example":"12345","nullable":true,"description":"Post code","x-sensitive-pii":true},"phone_number":{"type":"string","example":"+1-212-456-7890","nullable":true,"description":"Phone number","x-sensitive-pii":true,"x-sensitive-employment":true},"date_of_birth":{"type":"string","format":"date","example":"1997-12-18","nullable":true,"description":"Date of birth (applicable for some address types)","x-sensitive-pii":true},"tax_id_number":{"type":"string","example":"BAT123456","nullable":true,"description":"Tax ID number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"passport_number":{"type":"string","example":"P123456789","nullable":true,"description":"Passport number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"delivery_instructions":{"type":"string","example":"Use the Bat-Signal if urgent","nullable":true,"description":"Special instructions for deliveries","x-sensitive-pii":true,"x-sensitive-employment":true}},"description":"User address details"},"last_name":{"type":"string","example":"Wayne","description":"Last name of the user","x-sensitive-pii":true,"x-sensitive-employment":true},"first_name":{"type":"string","example":"Bruce","description":"First name of the user","x-sensitive-pii":true,"x-sensitive-employment":true},"hris_profile_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"The unique identifier of the HRIS profile of the assigned user"}},"description":"Details of the user with asset possession"},"purchase_date":{"type":"string","format":"date","example":"2025-08-08","nullable":true,"description":"Purchase date of the asset"},"serial_number":{"type":"string","example":"SN123456","nullable":true,"description":"Asset serial number","x-sensitive-pii":true},"purchase_value":{"type":"object","nullable":true,"properties":{"amount":{"type":"string","example":"1999.99","description":"Amount"},"currency":{"enum":["EUR","AED","AFN","XCD","ALL","AMD","AOA","ARS","USD","AUD","AWG","AZN","BAM","BDT","XOF","BGN","BHD","BIF","BMD","SGD","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","XAF","CHF","NZD","CLP","CNY","COP","CRC","CUC","CVE","ANG","CZK","DJF","DOP","DZD","EGP","MAD","ERN","ETB","FJD","FKP","DKK","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","WST","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LYD","MDL","MGA","MKD","MMK","MNT","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","XPF","NGN","NIO","NOK","NPR","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","UYU","UZS","VEF","VND","VUV","YER","ZAR","ZMW","ZWD"],"type":"string","example":"EUR","description":"Three-letter currency code for the price"}},"description":"Purchase value of the asset"},"assigned_warehouse":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the warehouse"},"name":{"type":"string","example":"Batcave Warehouse","description":"Warehouse or storage location name","x-sensitive-employment":true},"address":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the address"},"city":{"type":"string","example":"Gotham","nullable":true,"description":"City name","x-sensitive-pii":true},"type":{"enum":["PII","PARTIAL","DELIVERY","COLLECTION","ENTITY","SUPPLIER","BILLING"],"type":"string","example":"DELIVERY","description":"Type of the address"},"line1":{"type":"string","example":"1007 Mountain Drive","nullable":true,"description":"Address line 1","x-sensitive-pii":true,"x-sensitive-employment":true},"line2":{"type":"string","example":"Stately Wayne Manor","nullable":true,"description":"Address line 2","x-sensitive-pii":true,"x-sensitive-employment":true},"state":{"type":"string","example":"New Jersey","nullable":true,"description":"State code or name","x-sensitive-pii":true},"country":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","XK","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"Country code","x-sensitive-pii":true},"is_valid":{"type":"boolean","example":true,"description":"Whether the address passes validation"},"post_code":{"type":"string","example":"12345","nullable":true,"description":"Post code","x-sensitive-pii":true},"phone_number":{"type":"string","example":"+1-212-456-7890","nullable":true,"description":"Phone number","x-sensitive-pii":true,"x-sensitive-employment":true},"date_of_birth":{"type":"string","format":"date","example":"1997-12-18","nullable":true,"description":"Date of birth (applicable for some address types)","x-sensitive-pii":true},"tax_id_number":{"type":"string","example":"BAT123456","nullable":true,"description":"Tax ID number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"passport_number":{"type":"string","example":"P123456789","nullable":true,"description":"Passport number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"delivery_instructions":{"type":"string","example":"Use the Bat-Signal if urgent","nullable":true,"description":"Special instructions for deliveries","x-sensitive-pii":true,"x-sensitive-employment":true}},"description":"Warehouse address details","x-sensitive-employment":true},"ownership":{"enum":["DEEL","ORGANIZATION"],"type":"string","example":"DEEL","description":"Warehouse ownership type"},"warehouse_type":{"enum":["DEEL","ORGANIZATION","CLEARANCE"],"type":"string","example":"DEEL","description":"Warehouse type"}},"description":"Details of the warehouse with asset possession"}}}}}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"asset_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"Unique identifier of the IT asset"}],"description":"Retrieves the details of a specific IT asset by `asset_id`.\n\n **Token scopes**: `it-assets:read`","operationId":"retrieveAnItAsset-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["it-assets:read"]}]}},"/workers/contracts/{contract_id}/compliance-documents/{document_id}/download":{"get":{"path":"/rest/workers/contracts/{contract_id}/compliance-documents/{document_id}/download","tags":["Workers"],"method":"get","summary":"Get a download URL for one compliance document of a worker contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url","expires_at"],"properties":{"url":{"type":"string","example":"https://files.example.com/i9.pdf?token=abc123","description":"Time-limited download URL, valid for about 15 minutes. Fetch it rather than storing it."},"expires_at":{"type":"string","format":"date-time","example":"2026-01-05T14:45:00.000Z","nullable":true,"description":"When the URL stops working. Null when the URL is not time-limited."},"updated_at":{"type":"string","format":"date-time","example":"2026-01-05T14:30:00.000Z","nullable":true,"description":"Reserved. Not populated on this endpoint today."},"is_external_url":{"type":"boolean","example":false,"nullable":true,"description":"Reserved. Not populated on this endpoint today."}}}}},"example":{"data":{"url":"https://files.example.com/passport_scan.pdf?token=abc123","expires_at":"2026-01-05T14:45:00.000Z"}}}},"description":"Download URL returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"limit must be an integer between 1 and 100","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Authentication required.","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unauthorized — the access token is missing, expired or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Forbidden — the document is in the `PASSPORT_OR_NATIONAL_ID` category, the worker does not hold this contract, or the token lacks the required scope."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Compliance document not found for this contract","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Not found — `document_id` is not part of the contract."},"412":{"description":"Nothing is submitted against this requirement, or the requested `file` index is beyond the submitted files."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"WORKER_TYPE_NOT_SUPPORTED","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Compliance documents are not supported for this contract type on this endpoint yet","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unprocessable entity — the contract is not a Global Payroll contract, so compliance documents are not available on this endpoint. The error code is `WORKER_TYPE_NOT_SUPPORTED`."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","maxLength":64,"minLength":1},"example":"37nex2x","required":true,"description":"Public id of the Global Payroll contract the documents belong to."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the compliance document requirement, as returned in `id` by the list endpoint."},{"in":"query","name":"file","schema":{"type":"integer","default":0,"minimum":0},"example":0,"required":false,"description":"Zero-based index of the submitted file to download. Defaults to the first file."}],"description":"Returns a short-lived URL for the file submitted against a compliance document of one of the authenticated worker Global Payroll contracts. The URL is valid for about 15 minutes: fetch the file with it rather than storing the URL. Pass `file` to pick a specific file when several were submitted; the first file is returned by default. Documents in the `PASSPORT_OR_NATIONAL_ID` category are never downloadable through this API, for any token type. Only Global Payroll contracts are supported.\n\n **Token scopes**: `worker:read`","operationId":"downloadWorkerContractComplianceDocument-v2026-08-25","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/legal-entities/country-fields/{country_code}":{"get":{"path":"/rest/legal-entities/country-fields/{country_code}","tags":["Legal Entities"],"method":"get","summary":"Get registration/tax identifier fields for a country","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"object","properties":{"kind":{"enum":["registration_id","tax_id"],"type":"string","example":"tax_id","description":"Whether this field is a registration or tax identifier."},"name":{"type":"string","example":"Employer Identification Number (EIN)","description":"Human-readable name of the identifier field."},"requirement":{"enum":["mandatory","optional","bypass"],"type":"string","example":"mandatory","description":"`mandatory` — must be collected and submitted. `optional` — may be submitted but is not required. `bypass` — not required; clients should omit it unless they have a value, since if provided it may still be validated."},"validation_regex":{"type":"string","example":"^\\d{2}-\\d{7}$","nullable":true,"description":"Regex the submitted value must match. `null` when the field has no format restriction."}}},"description":"Empty when the country is recognized but has no configured identifier fields."},"country_code":{"type":"string","example":"US","description":"ISO 3166-1 alpha-2 country code, uppercased."}}}}}}},"description":"Registration/tax identifier fields for the given country."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Error code identifier"},"field":{"type":"string","example":"country_code","description":"Name of the field that failed validation"},"details":{"type":"object","description":"Additional error details"},"message":{"type":"string","example":"\"country\" must match the required pattern","description":"Human-readable explanation of the error."}}}}}}}},"description":"Malformed country code (not two ASCII letters)."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Error code identifier"},"field":{"type":"string","example":"country_code","description":"Name of the field that failed validation"},"details":{"type":"object","description":"Additional error details"},"message":{"type":"string","example":"Unknown country code: ZZ","description":"Human-readable explanation of the error."}}}}}}}},"description":"Well-formed country code that is not a recognized ISO 3166-1 alpha-2 country."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"country_code","schema":{"type":"string","pattern":"^[A-Za-z]{2}$"},"example":"US","required":true,"description":"ISO 3166-1 alpha-2 country code. Case-insensitive."}],"description":"Returns the registration and tax identifier fields Deel requires for a given country — name, kind (`registration_id`/`tax_id`), an optional validation regex, and a requirement level (`mandatory`/`optional`/`bypass`).\n\n **Token scopes**: `legal-entity:read`","operationId":"getCountryFieldsForALegalEntity-v2026-09-11","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/workers/contracts/{contract_id}/pdf":{"get":{"path":"/rest/workers/contracts/{contract_id}/pdf","tags":["Contracts"],"method":"get","summary":"Retrieve contract PDF download link","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://deel.com/contracts/1234567890.pdf","description":"A pre-signed URL to download the PDF version of the specified contract"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"32yn4e6","required":true,"description":"The unique public identifier of the contract."}],"description":"Returns a secure, time-limited URL for downloading the PDF version of the contract identified by contract_id. The URL is accessible only to the authenticated worker associated with that contract.\n\n **Token scopes**: `worker:read`","operationId":"retrieveContractPdfDownloadLink-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/timesheets/root-presets/{id}":{"get":{"path":"/rest/timesheets/root-presets/{id}","tags":["Projects"],"method":"get","summary":"Get Hourly Report Root Preset by ID","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","title","status","description"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the hourly report root preset"},"file":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the file"},"name":{"type":"string","example":"your_file_name","description":"The name of the file"},"type":{"type":"string","example":"pdf","description":"The type of the file"}}},"type":{"enum":["RATE","TRACKING"],"type":"string","example":"RATE","description":"The type of preset, RATE – indicates a preset that overrides the default contract rate, TRACKING - used exclusively for tracking, applying the default contract rate"},"title":{"type":"string","example":"Standard Monthly Timesheet","description":"The title of the hourly report root preset"},"status":{"type":"string","example":"active","description":"The current status of the hourly report root preset"},"description":{"type":"string","example":"Base template for monthly timesheet reporting","description":"Detailed description of the hourly report root preset's purpose and contents"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Organization is required"}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Not Found"}}}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The unique identifier of the hourly report root preset to retrieve"}],"description":"Retrieves a single hourly report root preset by its id, including its current status.\n\n **Token scopes**: `timesheets:read`","operationId":"getHourlyReportRootPresetById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]}},"/contracts/custom_fields":{"get":{"path":"/rest/contracts/custom_fields","tags":["Custom Fields"],"method":"get","summary":"List all custom fields","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","type","settings","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"7015d676-6e53-47a1-8b01-2f0b2c550790","description":"Unique identifier of the custom field"},"name":{"type":"string","example":"Employment Status","description":"Name of the custom field"},"type":{"oneOf":[{"type":"object","required":["name"],"properties":{"name":{"enum":["text","number","date","percentage"],"type":"string","example":"text","description":"Simple types"}}},{"type":"object","required":["name","is_fixed"],"properties":{"name":{"enum":["currency"],"type":"string","example":"currency","description":"Currency type"},"currency":{"type":"string","example":"USD","nullable":true,"maxLength":3,"description":"Currency code (null when is_fixed is false)"},"is_fixed":{"type":"boolean","example":false,"description":"When currency is fixed, only the amount can be edited by the users"}}},{"type":"object","required":["name","options"],"properties":{"name":{"enum":["list","multiselect"],"type":"string","example":"list","description":"List types"},"options":{"type":"array","items":{"type":"string"},"example":["Option 1","Option 2"],"description":"List of options for the custom field"}}}],"description":"Type configuration of the custom field including its data type and type-specific properties"},"settings":{"type":"object","required":["required","is_enabled","access"],"properties":{"access":{"type":"object","required":["is_sensitive"],"properties":{"provided_by":{"enum":["organization","worker"],"type":"string","example":"organization","nullable":true,"description":"Entity providing access to the custom field"},"is_sensitive":{"type":"boolean","example":false,"description":"Whether the custom field is sensitive"},"group_permission_set":{"type":"string","example":"custom_fields_set1","nullable":true,"description":"Permission set identifier for the custom field"}},"description":"Access settings for the custom field"},"required":{"type":"boolean","example":true,"description":"Whether the custom field is required"},"countries":{"type":"array","items":{"type":"string"},"example":["CO","PH"],"description":"Countries for which the custom field is applicable. Omitted when applicable to all."},"is_enabled":{"type":"boolean","example":true,"description":"Whether the custom field is enabled"},"worker_types":{"type":"array","items":{"enum":["eor","contractor","hris_direct_employee","direct_employee"],"type":"string"},"example":["direct_employee","hris_direct_employee"],"description":"Worker types for which the custom field is applicable. Omitted when applicable to all."}},"description":"Configuration settings for the custom field including requirements, visibility, and access controls"},"placement":{"enum":["profile","contract"],"type":"string","example":"contract","nullable":true,"description":"Valid placements for custom field"},"created_at":{"type":"string","format":"date-time","example":"2025-10-14T13:47:22.851Z","description":"Creation date of the custom field"},"description":{"type":"string","example":"Custom Field Description","nullable":true,"maxLength":140,"description":"Description of the custom field"}}}}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns the list of custom field definitions configured for contracts within the organization. The response includes field metadata, not specific contract field values. It provides definitions with contract placement for supported types such as text, list, multiselect, number, percentage, currency, and date.\n\n **Token scopes**: `contracts:read`","operationId":"listAllCustomFields-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/ats/departments":{"get":{"path":"/rest/ats/departments","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS departments","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the department"},"name":{"type":"string","example":"Engineering","description":"Name of the department","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","description":"Timestamp when the department was created"},"updated_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","description":"Timestamp when the department was last updated"}}},"description":"Page of departments."},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more departments available"},"next_cursor":{"type":"string","example":null,"nullable":true,"description":"Cursor for pagination to get the next set of results; null when there are no more pages"},"total_count":{"type":"integer","example":42,"description":"Total number of departments available"}}}}},"description":"Successful response with departments data"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"cursor123","required":false,"description":"Cursor for pagination to get the next set of results"},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of records returned in one response"}],"description":"Returns a paginated list of all departments configured in the organization's ATS. Use it to resolve the department IDs accepted by the `department_ids` filter when listing jobs and by job creation, and page through results with the `cursor` and `limit` query parameters.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfAtsDepartments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/hris/worker_relations/profile/external/{profile_id}":{"get":{"path":"/rest/hris/worker_relations/profile/external/{profile_id}","tags":["Worker Relations"],"method":"get","summary":"Fetch Worker Relations of a given HrisProfile by external id","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"f7b3b2b3-6b1b-4b3b-8b3b-3b3b3b3b3b3b","description":"The ID of the relation type"},"name":{"type":"string","example":"Parent","description":"The name of the relation type"},"is_parent":{"type":"boolean","example":true,"description":"Whether this relation is the parent or not"},"is_default":{"type":"boolean","example":true,"description":"Whether this relation is default or not"},"child_relationships":{"type":"array","items":{"type":"object","properties":{"last_name":{"type":"string","example":"Doe","description":"The last name of the child profile"},"first_name":{"type":"string","example":"John","description":"The first name of the child profile"},"profile_id":{"type":"string","format":"uuid","example":"f7b3b2b3-6b1b-4b3b-8b3b-3b3b3b3b3b3b","description":"The ID of the child profile"},"external_id":{"type":"string","example":"f7b3b2b3-6b1b-4b3b-8b3b-3b3b3b3b3b3b","description":"The external ID of the child profile"},"relation_id":{"type":"string","format":"uuid","example":"f7b3b2b3-6b1b-4b3b-8b3b-3b3b3b3b3b3b","description":"The ID of the relation between the profiles"}}},"description":"An array containing the information about the child profiles in the relation."},"parent_relationship":{"type":"object","properties":{"last_name":{"type":"string","example":"Doe","description":"The last name of the parent profile"},"first_name":{"type":"string","example":"Jane","description":"The first name of the parent profile"},"profile_id":{"type":"string","format":"uuid","example":"f7b3b2b3-6b1b-4b3b-8b3b-3b3b3b3b3b3b","description":"The ID of the parent profile"},"relation_id":{"type":"string","format":"uuid","example":"f7b3b2b3-6b1b-4b3b-8b3b-3b3b3b3b3b3b","description":"The ID of the relation between the profiles"},"profile_external_id":{"type":"string","example":"f7b3b2b3-6b1b-4b3b-8b3b-3b3b3b3b3b3b","description":"The external ID of the parent profile"},"relation_external_id":{"type":"string","example":"f7b3b2b3-6b1b-4b3b-8b3b-3b3b3b3b3b3b","description":"The external ID of the relation"}},"description":"An object that has information about the parent profile in the relation."}}},"description":"An array containing the Worker Relations of the profile. It includes either the parent or child relations."}}}}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"profileId"},"message":{"type":"string","example":"\"profileId\" is required"}}}}}}}},"description":"Bad request - The provided profileId parameter is invalid or missing."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found"},"field":{"type":"string","example":"profileId"},"message":{"type":"string","example":"HRIS profile with externalId 'emp-001' was not found."}}}}}}}},"description":"Not found - No HRIS profile exists for the provided externalId."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"profile_id","schema":{"type":"string"},"example":"f7b3b2b3-6b1b-4b3b-8b3b-3b3b3b3b3b3b","required":true,"description":"HrisProfile external ID"}],"description":"Retrieves all worker relationships for a given HRIS profile identified by its external identifier, including parent and child relationships.\n\n **Token scopes**: `profile:read`","operationId":"fetchWorkerRelationsOfAGivenHrisProfileByExternalId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["profile:read"]}]}},"/hris/positions/profile/{hris_profile_id}":{"get":{"path":"/rest/hris/positions/profile/{hris_profile_id}","tags":["Positions"],"method":"get","summary":"Fetch HrisPositions from a HrisProfile","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"HRIS Position ID"},"role":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Role ID"},"name":{"type":"string","example":"Software Engineer","description":"Role Name"}}},"team":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Team ID"},"name":{"type":"string","example":"Engineering","description":"Team Name"},"organization_structure":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Organization Structure ID"},"name":{"type":"string","example":"Engineering","description":"Organization Structure Name"}}}}},"is_supportive":{"type":"boolean","example":false,"description":"Is Supportive Position"}}}}}}}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"hrisProfileId"},"message":{"type":"string","example":"\"hrisProfileId\" must be a valid GUID"}}}}}}}},"description":"Bad request - The provided hrisProfileId or hrisOrgStructureId is invalid."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found"},"field":{"type":"string","example":"hrisProfileId"},"message":{"type":"string","example":"HRIS profile was not found."}}}}}}}},"description":"Not found - No HRIS profile exists for the provided ID."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"hris_profile_id","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"HRIS Profile ID"}],"description":"Retrieves all positions assigned to a given HRIS profile, including the associated role, team, and organization structure for each position.\n\n **Token scopes**: `profile:read`","operationId":"fetchHrisPositionsFromAHrisProfile-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["profile:read"]}]}},"/payments/{payment_id}/breakdown":{"get":{"path":"/rest/payments/{payment_id}/breakdown","tags":["Accounting"],"method":"get","summary":"Retrieve a payment breakdown","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string","format":"date-time","example":"2022-10-01T00:59:28.482Z","description":"Date associated with the payment breakdown."},"work":{"type":"string","example":"3000.00","description":"Base payment amount for work performed, including regular salary/wages and off-cycle payments.","x-sensitive-employment":true},"bonus":{"type":"string","example":"500.00","description":"Additional bonus payment amount awarded to the worker.","x-sensitive-employment":true},"total":{"type":"string","example":"3500.00","description":"Total payment due for this breakdown item.","x-sensitive-employment":true},"others":{"type":"string","example":"0.00","description":"Other payment amounts.","x-sensitive-employment":true},"currency":{"type":"string","example":"USD","description":"Currency code for this payment."},"expenses":{"type":"string","example":"0.00","description":"Expenses related to the payment.","x-sensitive-employment":true},"group_id":{"oneOf":[{"type":"string","format":"uuid"},{"enum":[""],"type":"string"}],"example":"4fd2daf5-7d59-4990-ba17-5dfc5f1034d0","description":"Unique identifier for the group associated with this payment. Empty for organization-level payments, individual payments, and standalone service fees that are not associated with a specific group."},"overtime":{"type":"string","example":"0.00","description":"Overtime payment amount.","x-sensitive-employment":true},"pro_rata":{"type":"string","example":"0.00","description":"Pro-rated payment amount.","x-sensitive-employment":true},"approvers":{"type":"string","example":"John Smith, Jane Doe","description":"Comma-separated list of names of people who approved this payment. May be empty if no approvals were required or recorded.","x-sensitive-pii":true},"frequency":{"enum":["hourly","daily","weekly","biweekly","semimonthly","monthly","custom",""],"type":"string","example":"monthly","description":"Work unit scale from the contractor's work statement. Indicates how work is measured and reported (hourly, daily, weekly, monthly, or custom units). Empty for contracts with fixed payments that don't require work quantity tracking, such as milestone-based contracts and consulting agreements."},"adjustment":{"type":"string","example":"0.00","description":"Adjustment amount for the payment.","x-sensitive-employment":true},"deductions":{"type":"string","example":"0.00","description":"Deductions from the payment.","x-sensitive-employment":true},"invoice_id":{"type":"string","example":"GqaY5BHQJUAM2Jg9kq2j2","description":"Unique identifier of this resource."},"commissions":{"type":"string","example":"0.00","description":"Commissions included in the payment.","x-sensitive-employment":true},"contract_id":{"type":"string","example":"37nex2x","nullable":true,"description":"Public identifier of the contract this line item belongs to. Null for service-fee and similar non-contract line items."},"approve_date":{"oneOf":[{"type":"string","format":"date-time"},{"enum":[""],"type":"string"}],"example":"2022-10-28T14:32:15.847Z","description":"Date when the work report was approved by designated approvers. Empty for payments that don't require work report approval, such as service fees, management fees, and automated payments."},"payment_date":{"type":"string","format":"date-time","example":"2022-11-01T17:20:32.837Z","description":"Date when the payment was made."},"contract_type":{"enum":["milestones","time_based","ongoing_time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","peo","peo_csa","unknown","employee","global_payroll","shield_msa","gp_client_agreement","ep_client_agreement","power_of_attorney","debt_authorization","hris_direct_employee","hris_service_agreement","hofy_standalone_payment","wework_standalone_payment","travel_insurance_standalone_payment","health_insurance_standalone_payment","prepaid_billing","missing_saas_fees","one_off_service_fee","eor_management_fee","eor_one_off_management_fee","engage_monthly_subscription_fee","ats_subscription_fee","benefits_admin_monthly_platform_fee","contractor_outside_deel","late_payment_fee","background_check_standalone_payment","peo_service_fee","payment_processing_fee","deel_percentage_fee","netx_fee","prepaid_funding_statement","one_off_mobility_service_fee","prepaid_billing_expired_credits","implementation_delay","managed_hr_monthly_subscription_fee","expense_card","anon_report_fee","ic_maintenance_platform_fee","deel_it_order_statement"],"type":"string","example":"ongoing_time_based","nullable":true,"description":"Type of contract this payment relates to. Determines the nature of the work relationship and payment structure."},"processing_fee":{"type":"string","example":"0.00","description":"Processing fee amount applied to the payment.","x-sensitive-employment":true},"contract_country":{"type":"string","example":"US","description":"Country where the contract is established."},"contractor_email":{"type":"string","example":"name@email.com","description":"Email address of the worker.","x-sensitive-pii":true},"payment_currency":{"type":"string","example":"USD","description":"Currency in which the payment was processed."},"contractor_pic_url":{"type":"string","example":"https://cdn.deel.com/avatars/user-123.jpg","nullable":true,"description":"URL to the worker's Deel avatar. Null if the worker has no avatar set or for non-worker line items.","x-sensitive-pii":true},"contract_start_date":{"oneOf":[{"type":"string","format":"date-time"},{"enum":[""],"type":"string"}],"example":"2020-03-31T10:58:49.780Z","description":"Start date of the contract. Empty for service agreements and fee-related contracts (such as equipment payments, insurance payments, and management fees) that don't have traditional contract start dates."},"general_ledger_account":{"type":"string","example":"6000 - Office Expenses","description":"General ledger account code or name for accounting purposes. May be configured at the group, company, or organization level. Empty if not configured."},"total_payment_currency":{"type":"string","example":"1000.00","description":"Total payment in the payment currency.","x-sensitive-employment":true},"contractor_employee_name":{"type":"string","example":"Jane Doe","description":"Name of the worker.","x-sensitive-pii":true},"contractor_unique_identifier":{"oneOf":[{"type":"string","format":"uuid"},{"enum":[""],"type":"string"}],"example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier for the worker. May be empty for certain contract types such as service agreements and fees."}}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"INTERNAL_SERVER_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"payment_id","schema":{"type":"string"},"example":"YJdYFAA586JYf8A324T57","required":true,"description":"Unique identifier for the payment to retrieve the breakdown."}],"description":"Returns a breakdown of a payment made to Deel, with individual invoices and the Deel fee included as discrete line items.\n\n **Token scopes**: `accounting:read`","operationId":"retrieveAPaymentBreakdown-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/timesheets/{timesheet_id}":{"patch":{"path":"/rest/timesheets/{timesheet_id}","tags":["Timesheets"],"method":"patch","summary":"Update a timesheet entry","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"type":"boolean","example":true,"description":"Confirms the update."}},"description":"Container object confirming the outcome of the update operation."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","message":"\"amount\" must be a number"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"\"amount\" must be a number","description":"Human-readable description of the validation or business rule violation."}}},"description":"Validation or business rule errors describing why the timesheet could not be updated, such as invalid input or its current status."}}}}},"description":"Bad Request - The request payload failed validation or violated a business rule for the timesheet entry."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"ACCESS_DENIED","message":"Access denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"ACCESS_DENIED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access denied","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why the timesheet could not be found or accessed."}}}}},"description":"Forbidden - The specified timesheet does not exist or the requester does not have access to it."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"NOT_FOUND","message":"Timesheet not found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Timesheet not found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the timesheet could not be found."}}}}},"description":"Not Found - The specified timesheet does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the timesheet cannot be updated."}}}}},"description":"Internal Server Error - The timesheet could not be updated due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"timesheet_id","schema":{"type":"string"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"ID of an existing timesheet."}],"description":"Partially updates an existing timesheet entry; only fields supplied in the request body are modified. Both clients and contractors may perform this operation.\n\n **Token scopes**: `timesheets:write`","operationId":"updateATimesheetEntry-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["quantity","description"],"properties":{"quantity":{"type":"number","example":1,"nullable":false,"description":"Number of work units (typically hours) to record based on the scale defined in the associated contract work statement."},"description":{"type":"string","example":"string","nullable":false,"maxLength":255,"description":"Detailed human-readable explanation of the work performed."},"hourly_report_preset_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Id of an existing timesheets preset. Created through /rest/v2/timesheets/presets"}},"description":"Fields to update on the existing timesheet entry."}},"description":"Details of the timesheet to update. Both a client or a contractor may update a timesheet."}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]},"get":{"path":"/rest/timesheets/{timesheet_id}","tags":["Timesheets"],"method":"get","summary":"Retrieve a single timesheet entry","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"type":"object","required":["id","type","status","description","date_submitted","created_at","currency_code","total_amount","quantity","contract","worksheet","reported_by","reviewed_by","attachment"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}],"example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"type":{"type":"string","example":"work","description":"Deprecated - it is always \"work\""},"scale":{"type":"string","example":"custom","nullable":true,"description":"Predefined scale used to calculate the timesheet amount (e.g. hourly, daily, custom)."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","example":"approved","nullable":true,"description":"Status of this entry."},"contract":{"type":"object","required":["id","title","type"],"properties":{"id":{"type":"string","example":"abcdefg","nullable":false,"description":"Unique identifier of the contract."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"ongoing_time_based","description":"Type of a contract"},"title":{"type":"string","example":"Senior Backend Engineer","nullable":false,"description":"Human-readable title of the contract."}},"description":"Contract associated with this timesheet."},"quantity":{"type":"number","example":8,"nullable":true,"description":"Quantity of work units (hours, days, etc.) used to calculate the total amount."},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","example":0,"minimum":0,"description":"Number of days reported."},"hours":{"type":"number","example":8,"minimum":0,"description":"Number of hours reported."},"weeks":{"type":"number","example":0,"minimum":0,"description":"Number of weeks reported."},"minutes":{"type":"number","example":0,"minimum":0,"description":"Number of minutes reported."}},"description":"Breakdown of time worked across different units."},"attachment":{"type":"object","nullable":true,"required":["filename","key"],"properties":{"key":{"type":"string","example":"attachments/timesheet_receipt.pdf","nullable":false,"description":"You can call attachments end-point, get key and URL to upload your file."},"filename":{"type":"string","example":"timesheet_receipt.pdf","nullable":false,"description":"Original filename you used to upload using attachments end-point."}},"description":"This object is used for linking file attachments to your records."},"created_at":{"type":"string","example":"2022-05-04T03:45:27.108Z","nullable":false,"description":"Timestamp when the timesheet was created (ISO-8601)."},"description":{"type":"string","example":"Backend development work for sprint 42","nullable":false,"description":"Human-readable description of the work performed."},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}],"example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the reporting user."},"full_name":{"type":"string","example":"John Smith","nullable":false,"description":"Full name of the user who submitted the timesheet.","x-sensitive-pii":true}},"description":"User who submitted the timesheet."},"reviewed_by":{"type":"object","nullable":true,"required":["id","reviewed_at","remarks"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}],"example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the reviewer."},"remarks":{"type":"string","example":"Approved after verification","nullable":false,"description":"Reviewer remarks or decision notes."},"full_name":{"type":"string","example":"Jane Smith","description":"Full name of the reviewer.","x-sensitive-pii":true},"reviewed_at":{"type":"string","example":"2022-05-04T03:45:27.899Z","description":"Timestamp when the review occurred (ISO-8601)."}},"description":"Reviewer information if the timesheet has been reviewed."},"custom_scale":{"type":"string","example":"night_shift","nullable":true,"description":"Custom scale label defined by the client for non-standard billing rates."},"total_amount":{"type":"string","example":"200.0000","nullable":false,"description":"is equal to quantity times rate of active work statement + bonus in this record"},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"ISO 4217 currency code used for the amount."},"payment_cycle":{"type":"object","properties":{"end_date":{"type":"string","format":"date-time","example":"2022-05-24T03:45:27.899Z","nullable":true,"description":"Long date-time format following ISO-8601"},"start_date":{"type":"string","format":"date-time","example":"2022-05-04T03:45:27.899Z","nullable":true,"description":"Long date-time format following ISO-8601"}},"description":"Payment cycle associated with this timesheet."},"date_submitted":{"type":"string","format":"date-time","example":"2022-05-24T03:45:27.899Z","nullable":false,"description":"Long date-time format following ISO-8601"},"hourly_report_preset":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"unique identifier of the related timesheet preset"},"rate":{"type":"number","example":50,"nullable":true,"description":"the hourly rate of the related timesheet preset"},"title":{"type":"string","example":"Standard Rate","nullable":true,"description":"the title of the related timesheet preset"},"description":{"type":"string","example":"Default hourly rate for backend engineers","nullable":true,"description":"the description of the related timesheet preset"}},"description":"Timesheet preset linked to this entry, if any."}}},{"type":"object","required":["approvers"],"properties":{"approvers":{"type":"array","items":{"type":"object","required":["approved"],"properties":{"email":{"type":"string","example":"jane.smith@example.com","description":"Email address of the approver.","x-sensitive-pii":true},"approved":{"type":"boolean","example":true,"description":"Whether the approver has approved the timesheet."},"full_name":{"type":"string","example":"Jane Smith","description":"Full name of the approver.","x-sensitive-pii":true}}},"description":"List of approvers and their decisions recorded against this timesheet."}}}],"example":{"id":"00000000-0000-0000-0000-000000000000","type":"work","status":"approved","contract":{"id":"abcdefg","type":"ongoing_time_based","title":"Senior Backend Engineer"},"quantity":8,"approvers":[{"email":"jane.smith@example.com","approved":true,"full_name":"Jane Smith"}],"worksheet":{"days":0,"hours":8,"weeks":0,"minutes":0},"attachment":{"key":"attachments/timesheet_receipt.pdf","filename":"timesheet_receipt.pdf"},"created_at":"2022-05-04T03:45:27.108Z","description":"Backend development work for sprint 42","reported_by":{"id":"00000000-0000-0000-0000-000000000000","full_name":"John Smith"},"reviewed_by":{"id":"00000000-0000-0000-0000-000000000000","remarks":"Approved after verification","reviewed_at":"2022-05-04T03:45:27.899Z"},"total_amount":"200.0000","currency_code":"GBP","date_submitted":"2022-05-24T03:45:27.899Z"},"description":"Timesheet entry combining its core fields with any approver decisions recorded against it."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","message":"\"id\" must be a valid identifier"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"\"id\" must be a valid identifier","description":"Human-readable description of the validation error."}}},"description":"Validation errors describing why the timesheet could not be retrieved."}}}}},"description":"Bad Request - The id parameter failed validation."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"ACCESS_DENIED","message":"Access denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"ACCESS_DENIED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access denied","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why the timesheet could not be found or accessed."}}}}},"description":"Forbidden - The specified timesheet does not exist or the requester does not have access to it."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the timesheet cannot be retrieved."}}}}},"description":"Internal Server Error - The timesheet could not be retrieved due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"timesheet_id","schema":{"type":"string"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"ID of an existing timesheet"}],"description":"Returns a single timesheet entry.\n\n **Token scopes**: `timesheets:read`","operationId":"getTimesheetById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]},"delete":{"path":"/rest/timesheets/{timesheet_id}","tags":["Timesheets"],"method":"delete","summary":"Delete a timesheet entry","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","example":true,"nullable":false,"description":"Confirms the deletion."}},"description":"Container object confirming the outcome of the delete operation."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"CANNOT_MANUALLY_REMOVE_HOURLY_REPORT_TYPE","message":"This type of adjustment cannot be manually removed"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"CANNOT_MANUALLY_REMOVE_HOURLY_REPORT_TYPE","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"This type of adjustment cannot be manually removed","description":"Human-readable description of the business rule violation."}}},"description":"Business rule errors describing why the timesheet could not be deleted, such as its current status or type."}}}}},"description":"Bad Request - The timesheet cannot be deleted given its current status."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"ACCESS_DENIED","message":"Access denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"ACCESS_DENIED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access denied","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why the timesheet could not be found or accessed."}}}}},"description":"Forbidden - The specified timesheet does not exist or the requester does not have access to it."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"NOT_FOUND","message":"Timesheet not found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Timesheet not found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the timesheet could not be found."}}}}},"description":"Not Found - The specified timesheet does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the timesheet cannot be deleted."}}}}},"description":"Internal Server Error - The timesheet could not be deleted due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"timesheet_id","schema":{"type":"string"},"example":"string","required":true,"description":"ID of an existing timesheet"},{"in":"query","name":"reason","schema":{"type":"string"},"example":"string","required":false,"description":"Reason for deleting an existing task"}],"description":"Permanently deletes a timesheet entry. An optional `reason` query parameter may be provided to record the rationale for deletion.\n\n **Token scopes**: `timesheets:write`","operationId":"deleteTimesheetById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]}},"/ats/jobs":{"post":{"path":"/rest/ats/jobs","tags":["ATS"],"method":"post","summary":"Create ATS Job","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","title","status","approval_rule_id","approval_request_id","is_confidential","created_by_hris_organization_user_id","job_employment_types","job_locations","job_teams"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the created job"},"title":{"type":"string","example":"Senior Software Engineer","description":"The job title","x-sensitive-employment":true},"status":{"enum":["DRAFT","WAITING_FOR_APPROVAL","APPROVED","NOT_APPROVED","OPEN","CLOSED","ARCHIVED"],"type":"string","example":"DRAFT","description":"Current status of the job","x-sensitive-employment":true},"job_teams":{"type":"array","items":{"type":"object","required":["id","team"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job team"},"team":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the team"},"name":{"type":"string","example":"Engineering Team","description":"Team name"}}}}},"description":"Teams associated with the job"},"created_at":{"type":"string","format":"date-time","example":"2024-07-29T10:30:00Z","description":"Timestamp when the job was created"},"updated_at":{"type":"string","format":"date-time","example":"2024-07-29T10:30:00Z","description":"Timestamp when the job was last updated"},"job_locations":{"type":"array","items":{"type":"object","required":["id","location"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job location"},"location":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the location"},"name":{"type":"string","example":"New York","description":"Location name"}}}}},"description":"Locations associated with the job"},"is_confidential":{"type":"boolean","example":false,"description":"Whether the job posting is confidential","x-sensitive-employment":true},"job_departments":{"type":"array","items":{"type":"object","required":["id","department"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job department"},"department":{"type":"object","nullable":true,"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the department"},"name":{"type":"string","example":"Sales","description":"Department name"}}}}},"nullable":true,"description":"Departments associated with the job"},"approval_rule_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","nullable":true,"description":"ID of the approval rule applied to this job"},"approval_request_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","nullable":true,"description":"ID of the approval request for this job"},"job_employment_types":{"type":"array","items":{"type":"object","required":["id","employment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job employment type"},"employment_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the employment type"},"name":{"type":"string","example":"Full-time","description":"Employment type name"}}}}},"description":"Employment types associated with the job"},"richtext_description":{"type":"string","example":"<p>We are looking for a senior software engineer...</p>","nullable":true,"description":"Rich text description of the job","x-sensitive-employment":true},"work_arrangement_enum":{"enum":["ON_SITE","HYBRID","REMOTE"],"type":"string","example":"HYBRID","nullable":true,"description":"Work arrangement of the job. Null when unspecified.","x-sensitive-employment":true},"created_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","nullable":true,"description":"ID of the user who created the job"}}}}}}},"description":"Job successfully created"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"description":"Creates a new job in the ATS once an interview plan, team, location, and employment type have been determined. Use this after those prerequisites are set; the response includes the job's id, initial status, and associated approval identifiers.\n\n **Token scopes**: `ats:write`","operationId":"createAtsJob-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["title","employment_type_ids","team_ids","location_ids","interview_plan_id"],"properties":{"title":{"type":"string","example":"Senior Software Engineer","maxLength":100,"minLength":1,"description":"The job title"},"status":{"enum":["DRAFT","WAITING_FOR_APPROVAL","APPROVED","NOT_APPROVED","OPEN","CLOSED","ARCHIVED"],"type":"string","example":"DRAFT","description":"Initial status of the job. Defaults to the status derived from the applicable approval rule when omitted."},"team_ids":{"type":"array","items":{"type":"string","format":"uuid"},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"minItems":1,"description":"Array of team IDs (at least one required)"},"location_ids":{"type":"array","items":{"type":"string","format":"uuid"},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"minItems":1,"description":"Array of location IDs (at least one required)"},"department_ids":{"type":"array","items":{"type":"string","format":"uuid"},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"description":"Array of department IDs (optional)"},"is_confidential":{"type":"boolean","default":false,"example":false,"description":"Whether the job posting is confidential"},"interview_plan_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Interview Plan ID must be a valid UUID"},"employment_type_ids":{"type":"array","items":{"type":"string","format":"uuid"},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"minItems":1,"description":"Array of employment type IDs (at least one required)"},"richtext_description":{"type":"string","example":"<p>We are looking for a senior software engineer...</p>","nullable":true,"maxLength":20000,"description":"Rich text description of the job"},"work_arrangement_enum":{"enum":["ON_SITE","HYBRID","REMOTE"],"type":"string","example":"HYBRID","nullable":true,"description":"Work arrangement of the job. Omit or send null to leave it unspecified."}},"additionalProperties":false}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["ats:write"]}]},"get":{"path":"/rest/ats/jobs","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS jobs","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job"},"title":{"type":"string","example":"Software Engineer","description":"Job title","x-sensitive-employment":true},"status":{"enum":["OPEN","CLOSED","DRAFT","WAITING_FOR_APPROVAL","APPROVED","NOT_APPROVED","ARCHIVED"],"type":"string","example":"OPEN","description":"Job status","x-sensitive-employment":true},"job_teams":{"type":"array","items":{"type":"object","required":["id","team"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job team"},"team":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the team"},"name":{"type":"string","example":"Engineering Team","description":"Team name"}}}}},"nullable":true,"description":"Teams associated with the job","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-01T12:00:00Z","description":"Timestamp when the job was created"},"updated_at":{"type":"string","format":"date-time","example":"2023-10-02T12:00:00Z","description":"Timestamp when the job was last updated"},"job_locations":{"type":"array","items":{"type":"object","required":["id","location"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job location"},"location":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the location"},"name":{"type":"string","example":"New York","description":"Location name"}}}}},"description":"Locations associated with the job","x-sensitive-employment":true},"hiring_members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the hiring member"},"hris_organization_user_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the HRIS organization user"}}},"nullable":true,"description":"Hiring members associated with the job","x-sensitive-employment":true},"is_confidential":{"type":"boolean","example":false,"description":"Indicates if the job is confidential"},"job_departments":{"type":"array","items":{"type":"object","required":["id","department"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job department"},"department":{"type":"object","nullable":true,"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the department"},"name":{"type":"string","example":"Sales","description":"Department name"}}}}},"nullable":true,"description":"Departments associated with the job","x-sensitive-employment":true},"approval_rule_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","nullable":true,"description":"Unique identifier for the approval rule"},"applications_count":{"type":"integer","format":"int32","example":10,"nullable":true,"description":"Number of applications for the job","x-sensitive-employment":true},"approval_request_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","nullable":true,"description":"Unique identifier for the approval request"},"current_compensation":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the compensation"},"job_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Job ID associated with the compensation"},"max_amount":{"type":"number","example":120000,"nullable":true,"description":"Maximum compensation amount"},"min_amount":{"type":"number","example":80000,"nullable":true,"description":"Minimum compensation amount"},"period_slug":{"enum":["ANNUALLY","MONTHLY","SEMIMONTHLY","BIWEEKLY","WEEKLY","DAILY","HOURLY"],"type":"string","example":"ANNUALLY","description":"Compensation period"},"currency_iso_code":{"type":"string","example":"USD","description":"ISO code of the currency"}}},"job_employment_types":{"type":"array","items":{"type":"object","required":["id","employment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job employment type"},"employment_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the employment type"},"name":{"type":"string","example":"Full-time","description":"Employment type name"}}}}},"description":"Employment types associated with the job","x-sensitive-employment":true},"richtext_description":{"type":"string","example":"<div>Job description in rich text format</div>","nullable":true,"description":"Rich text description of the job","x-sensitive-employment":true},"interview_plan_stages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the interview plan stage"},"name":{"type":"string","example":"Phone Screen","description":"Interview plan stage name"},"position_number":{"type":"integer","format":"int32","example":1,"nullable":true,"description":"Position number of the stage in the interview plan"},"default_type_slug":{"type":"string","example":"phone_screen","nullable":true,"description":"Default type slug of the interview plan stage"},"interview_plan_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Interview plan ID associated with this stage"},"category_type_slug":{"enum":["LEAD","ACTIVE","COMPLETED"],"type":"string","example":"ACTIVE","description":"Category type of the interview plan stage"}}},"nullable":true,"description":"Interview plan stages","x-sensitive-employment":true},"work_arrangement_enum":{"enum":["ON_SITE","HYBRID","REMOTE"],"type":"string","example":"HYBRID","nullable":true,"description":"Work arrangement of the job. Null when unspecified.","x-sensitive-employment":true},"approval_request_stringified":{"type":"string","example":"Approval request details in string format","nullable":true,"description":"Stringified approval request"},"created_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","nullable":true,"description":"Unique identifier of the user who created the job"},"hiring_member_job_permissions_by_type_slug":{"type":"object","nullable":true,"properties":{"hiring_team":{"type":"string","example":"read","description":"Hiring team permissions"},"job_posting":{"type":"string","example":"write","description":"Job posting permissions"},"compensation":{"type":"string","example":"read","description":"Compensation permissions"},"interview_plan":{"type":"string","example":"write","description":"Interview plan permissions"},"application_form_submission":{"type":"string","example":"read","description":"Application form submission permissions"},"application_form_submission_sensitive_fields":{"type":"string","example":"none","description":"Application form submission sensitive fields permissions"}}}}},"description":"Page of jobs."},"has_more":{"type":"boolean","example":false,"description":"Whether more pages are available."},"next_cursor":{"type":"string","example":null,"nullable":true,"description":"Cursor to fetch the next page; null when there are no more pages."},"total_count":{"type":"integer","example":42,"description":"Total number of jobs matching filters."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"cursorValue","description":"The cursor for pagination"},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1},"example":50,"description":"Maximum number of records returned in one response"},{"in":"query","name":"search","schema":{"type":"string"},"example":"engineer","description":"Text to search for in job records (optional)"},{"in":"query","name":"interview_plan_id","schema":{"type":"string","format":"uuid"},"example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Interview plan UUID (optional)"},{"in":"query","name":"location_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"description":"Array of location UUIDs (optional)"},{"in":"query","name":"team_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"description":"Array of team UUIDs (optional)"},{"in":"query","name":"employment_type_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"description":"Array of employment type UUIDs (optional)"},{"in":"query","name":"department_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"description":"Array of department UUIDs (optional)"},{"in":"query","name":"updated_after","schema":{"type":"string","format":"date-time"},"example":"2025-06-18T00:00:00.000Z","required":false,"description":"Filter jobs updated after this timestamp (ISO 8601 format)"},{"in":"query","name":"status","schema":{"type":"array","items":{"enum":["OPEN","CLOSED","DRAFT","WAITING_FOR_APPROVAL","APPROVED","NOT_APPROVED","ARCHIVED"],"type":"string"}},"example":["OPEN","CLOSED"],"description":"Array of job status values (optional)"},{"in":"query","name":"work_arrangements","schema":{"type":"array","items":{"enum":["ON_SITE","HYBRID","REMOTE"],"type":"string"}},"example":["REMOTE","HYBRID"],"required":false,"description":"Array of work arrangement values to filter by (optional)"}],"description":"Use this endpoint to look up ATS jobs when you need to filter postings by search text, interview plan, location, team, employment type, department, status, or last-updated time.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfAtsJobs-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/legal-entities/{legal_entity_id}":{"get":{"path":"/rest/legal-entities/{legal_entity_id}","tags":["Legal Entities"],"method":"get","summary":"Retrieve a legal entity","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the legal entity."},"name":{"type":"string","example":"Deel Inc.","description":"The name of the legal entity."},"phone":{"type":"string","example":"+18001234567","nullable":true,"description":"The phone number of the legal entity.","x-sensitive-pii":true},"status":{"enum":["archived","active","draft","processing","processing_draft","pending_verification","awaiting_review","unknown"],"type":"string","example":"active","description":"The mapped legal entity lifecycle status."},"vat_id":{"type":"string","example":"P051709055R","nullable":true,"description":"The VAT identifier of the legal entity."},"address":{"type":"object","nullable":true,"properties":{"zip":{"type":"string","example":"94105","nullable":true,"description":"The zip code.","x-sensitive-pii":true},"city":{"type":"string","example":"San Francisco","nullable":true,"description":"The city.","x-sensitive-pii":true},"state":{"type":"string","example":"CA","nullable":true,"description":"The state.","x-sensitive-pii":true},"street":{"type":"string","example":"123 Main St","nullable":true,"description":"The street address.","x-sensitive-pii":true},"country":{"type":"string","example":"US","nullable":true,"description":"The ISO 2-letter country code.","x-sensitive-pii":true}},"x-sensitive-pii":true},"country":{"type":"string","example":"US","nullable":true,"description":"The country of the legal entity (ISO 2-letter code)."},"cdd_status":{"enum":["NOT_REQUIRED","PENDING","PENDING_ASYNC_TASKS","DRAFT","SUBMITTED","APPROVED","REJECTED","EDD"],"type":"string","example":"APPROVED","nullable":true,"description":"The raw CDD verification status. When verification has not started it is coalesced to a tier-dependent initial value: PENDING when CDD is required, NOT_REQUIRED for Tier-0/SaaS entities."},"created_at":{"type":"string","format":"date-time","example":"2024-01-01T12:00:00Z","description":"The timestamp when the legal entity was created."},"legal_name":{"type":"string","example":"Deel Inc.","nullable":true,"description":"The registered legal name of the entity."},"legal_type":{"enum":["individual","company","light"],"type":"string","example":"company","nullable":true,"description":"The legal type of the entity."},"updated_at":{"type":"string","format":"date-time","example":"2024-01-02T12:00:00Z","description":"The timestamp when the legal entity was last updated."},"archived_at":{"type":"string","format":"date-time","example":"2024-01-06T12:00:00Z","nullable":true,"description":"The timestamp when the legal entity was archived, if any."},"entity_type":{"type":"string","example":"corporation","nullable":true,"description":"The entity subtype."},"industry_name":{"type":"string","example":"Software Development","nullable":true,"description":"The industry name of the legal entity."},"incorporation_date":{"type":"string","format":"date","example":"2020-01-15","nullable":true,"description":"The incorporation date of the legal entity."},"registration_number":{"type":"string","example":"987654321","nullable":true,"description":"The registration number of the legal entity."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Invalid request parameters.","description":"Error message explaining what went wrong."}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Profile has no access to this organization","description":"Error message explaining why access is denied."}}}}},"description":"The legal entity belongs to another organization."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"No legal entity found","description":"Error message returned when the legal entity does not exist."}}}}},"description":"Legal entity not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The ID of the legal entity to retrieve."}],"description":"Returns the full record for a single legal entity by id: registration and tax identifiers, address, industry, incorporation date and lifecycle status. `cdd_status` carries the raw Customer Due Diligence value (coalesced to `PENDING` when CDD is required, `NOT_REQUIRED` for Tier-0/SaaS entities before verification starts) and `status` the mapped lifecycle status, so integrations can poll entity clearance.\n\n **Token scopes**: `legal-entity:read`","operationId":"getLegalEntity-v2026-09-09","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/time_offs/profile/{hris_profile_id}/entitlements":{"get":{"path":"/rest/time_offs/profile/{hris_profile_id}/entitlements","tags":["Time Off"],"method":"get","summary":"Get Profile Entitlements","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["hris_profile_id","entitlements"],"properties":{"entitlements":{"type":"array","items":{"type":"object","required":["tracking_period","tracking_period_end_date","total_entitlements","available","is_allowance_unlimited"],"properties":{"id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Entitlement ID"},"used":{"type":"string","example":"0","description":"Used time off"},"events":{"type":"array","items":{"type":"object","required":["id","profile_id","policy_id","tracking_period","type","amount","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Event ID"},"type":{"enum":["ACCRUAL","ACCRUAL_DEDUCTION","ACCRUAL_PRORATE","ACCRUAL_TERMINATION","MANUAL_ADJUSTMENT","NO_ROLLOVER","ROLLOVER_ADJUSTMENT","ROLLOVER_CARRY_OVER","ROLLOVER_EXPIRATION","ROLLOVER_PAYOUT","ROLLOVER_PROJECTED","TIME_OFF"],"type":"string","example":"ACCRUAL","description":"Event type"},"amount":{"type":"number","format":"float","example":"8","description":"Event amount"},"policy_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy ID"},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Event creation date"},"event_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Event date"},"profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Profile ID"},"updated_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Event update date"},"description":{"type":"string","example":"Event description","description":"Event description"},"time_off_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off ID"},"accrual_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Accrual date"},"expiration_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Expiration date"},"tracking_period":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Tracking period"},"rollover_tracking_period":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Rollover tracking period"}}},"nullable":true},"policy":{"type":"object","required":["id","name","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy ID"},"name":{"type":"string","example":"Policy name","description":"Policy name"},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Policy creation date"},"leave_type":{"enum":["SHORT_TERM_LEAVE","LONG_TERM_LEAVE"],"type":"string","example":"SHORT_TERM_LEAVE","description":"Leave type"},"updated_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Policy update date"},"description":{"type":"string","example":"Policy description","description":"Policy description"},"policy_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy type ID"},"name":{"type":"string","example":"Policy type name","description":"Policy type name"}}},"tracking_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"HOUR","description":"Tracking unit"},"policy_type_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy type ID"},"time_off_types":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off type ID"},"name":{"type":"string","example":"Time off type name","description":"Time off type name"}}}},"tracking_cadence":{"enum":["FIXED_DAY","ANNIVERSARY","NOT_SPECIFIED"],"type":"string","example":"FIXED_DAY","description":"Tracking cadence"},"tracking_start_date":{"type":"string","format":"date","example":"2022-01-01","description":"Tracking start date"},"tracking_unit_amount":{"type":"number","format":"float","example":"8","description":"Tracking unit amount"}}},"accrued":{"type":"string","example":"0","nullable":true,"description":"Accrued time off"},"expired":{"type":"string","example":"0","description":"Expired time off"},"approved":{"type":"string","example":"0","description":"Approved time off"},"allowance":{"type":"string","example":"0","nullable":true,"description":"Time off allowance"},"available":{"type":"string","example":"0","nullable":true,"description":"Available time off. Will be null if is_allowance_unlimited is true"},"requested":{"type":"string","example":"0","description":"Requested time off"},"rollovers":{"type":"array","items":{"type":"object","required":["rollover_tracking_period","amount"],"properties":{"amount":{"anyOf":[{"type":"number","format":"float"},{"type":"string"}]},"expiration_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Rollover expiration date"},"rollover_tracking_period":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Rollover tracking period"}}},"nullable":true},"accrual_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"HOUR","description":"Accrual unit"},"future_events":{"type":"array","items":{"type":"object","required":["id","profile_id","policy_id","tracking_period","type","amount","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Event ID"},"type":{"enum":["ACCRUAL","ACCRUAL_DEDUCTION","ACCRUAL_PRORATE","ACCRUAL_TERMINATION","MANUAL_ADJUSTMENT","NO_ROLLOVER","ROLLOVER_ADJUSTMENT","ROLLOVER_CARRY_OVER","ROLLOVER_EXPIRATION","ROLLOVER_PAYOUT","ROLLOVER_PROJECTED","TIME_OFF"],"type":"string","example":"ACCRUAL","description":"Event type"},"amount":{"type":"number","format":"float","example":"8","description":"Event amount"},"policy_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy ID"},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Event creation date"},"event_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Event date"},"profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Profile ID"},"updated_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Event update date"},"description":{"type":"string","example":"Event description","description":"Event description"},"time_off_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off ID"},"accrual_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Accrual date"},"expiration_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Expiration date"},"tracking_period":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Tracking period"},"rollover_tracking_period":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Rollover tracking period"}}},"nullable":true},"accrual_amount":{"type":"string","example":"0","description":"Accrual amount"},"tracking_period":{"type":"string","example":"2022-01-01T00:00:00Z","description":"Tracking period"},"balance_adjusted":{"type":"string","example":"0","nullable":true,"description":"Balance adjusted"},"time_off_event_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off event ID"},"upcoming_accruals":{"type":"string","example":"0","description":"Upcoming accruals"},"total_entitlements":{"type":"string","example":"0","description":"Total entitlements"},"past_tracking_periods":{"type":"array","items":{"type":"string"}},"is_allowance_unlimited":{"type":"boolean","example":false,"nullable":false,"description":"True when the allowance is unlimited"},"tracking_period_end_date":{"type":"string","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Tracking period end date. Null when the entitlement never expires."}}}},"hris_profile_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"HRIS profile ID"}}}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"policy_type_name","schema":{"enum":["Adoption leave","Advanced vacation","Bereavement leave","Blood donation leave","Breastfeeding leave","Childbirth leave","Childcare leave","Civic/public duty leave","Compensatory leave","Disability leave","Doctor's appointment leave","Family & domestic violence leave","Family responsibility leave","Floating Holiday Allowance","Hajj leave","Hospitalization leave","Long Service Leave","Marriage/wedding leave","Maternity leave","Menstrual leave","Military leave","Moving leave","Other leave","Paid leave","Parental leave","Paternity leave","Personal leave","Pregnancy leave","Regional holiday","RTT","Sick leave","Study leave","Supplementary Leave","Unpaid leave","Vacation","Vacation - public holidays replacement","Volunteer leave","Work accident leave","Work Location"],"type":"string","nullable":true,"maxLength":255},"example":"Moving leave","description":"Policy type name"},{"in":"query","name":"tracking_period_date","schema":{"type":"string","format":"date","nullable":true},"example":"2022-01-01","description":"Tracking period date"},{"in":"path","name":"hris_profile_id","schema":{"type":"string","format":"uuid","maxItems":100,"minItems":1},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"HRIS profile ID"}],"description":"Returns time-off entitlements for the specified hris_profile_id, including available balances, used days, and remaining allocation per time-off type. Results can be scoped to a specific policy type or tracking period date.\n\n **Token scopes**: `time-off:read`","operationId":"getProfileEntitlements-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/time_offs/{time_off_id}":{"patch":{"path":"/rest/time_offs/{time_off_id}","tags":["Time Off"],"method":"patch","summary":"Update time-off request","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["time_off"],"properties":{"time_off":{"type":"object","example":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","amount":1,"reason":"Vacation","status":"REQUESTED","is_paid":false,"end_date":"2021-08-01","created_at":"2021-07-01T00:00:00Z","start_date":"2021-07-01","updated_at":"2021-07-01T00:00:00Z","approved_at":"2021-07-01T00:00:00Z","attachments":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","filename":"vacation-request.pdf","created_at":"2021-07-01T11:22:33Z","updated_at":"2021-07-01T33:44:33Z"}],"description":"Vacation","contract_oid":"d290f1ee-6c54-4b01-90e6-d701748f0851","requested_at":"2021-07-01","half_end_date":false,"half_start_date":false,"deduction_amount":1,"entitlement_unit":"CALENDAR_DAY","time_off_dailies":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","date":"2021-07-01","type":"WORKING_DAY","amount":1,"created_at":"2021-07-01T00:00:00Z","updated_at":"2021-07-01T00:00:00Z","description":"Vacation","time_off_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"}],"time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","recipient_profile":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","client_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"requester_profile":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","client_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"time_off_percentage":1,"is_end_date_estimated":false,"other_type_description":"Vacation"},"required":["time_off_type_id","requested_at","start_date","end_date","is_paid","half_start_date","half_end_date","amount","created_at","updated_at","entitlement_unit"],"properties":{"amount":{"type":"number","format":"float","example":1,"description":"Amount of time off taken. This is the total amount of time off taken. For example, if you take 2 days off, this will be 2. If you take 1 day off, this will be 1."},"reason":{"type":"string","example":"Sick leave - Doctor appointment","description":"Reason for taking time off. This is complementary information for the time-off description. Useful to provide sub categories for the same policy."},"status":{"enum":["REQUESTED","APPROVED","REJECTED","USED","CANCELED","DELETED"],"type":"string","example":"REQUESTED","description":"Status of the time off request. Can be REQUESTED, APPROVED, REJECTED, USED or CANCELED."},"is_paid":{"type":"boolean","example":false,"description":"Whether the time off is paid or unpaid."},"end_date":{"type":"string","format":"date","example":"2021-08-01","description":"End date of the time off request. This is the date when the time off ends. For example, if you take 2 days off, this will be the end date of the second day."},"created_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the time off request was created in the database."},"deleted_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Time off deletion date. Present only when the time-off is soft-deleted and include_deleted_time_offs was requested."},"start_date":{"type":"string","format":"date","example":"2021-08-01","description":"Start date of the time off request. This is the date when the time off starts. For example, if you take 2 days off, this will be the start date of the first day."},"updated_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the time off request was last updated in the database."},"approved_at":{"type":"string","format":"date-time","example":"2021-07-01T00:00:00Z","nullable":true,"description":"This is the date when the time off request was approved. This will be null if the time off request is not approved yet."},"attachments":{"type":"array","items":{"type":"object","example":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","filename":"vacation-request.pdf","created_at":"2021-07-01T11:22:33Z","updated_at":"2021-07-01T33:44:33Z"},"required":["id","filename","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Attachment id"},"filename":{"type":"string","example":"vacation-request.pdf","description":"Filename of the attachment"},"created_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the attachment was created in the database."},"updated_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the attachment was last updated in the database."}},"description":"An attachment associated with the time off request."},"example":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","filename":"vacation-request.pdf","created_at":"2021-07-01T11:22:33Z","updated_at":"2021-07-01T33:44:33Z"}],"description":"List of attachments associated with the time off request."},"canceled_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Time off cancellation date"},"description":{"type":"string","example":"Vacation","description":"Description of the time off request. Some policies require that a description is provided."},"contract_oid":{"type":"string","example":"d290f1ee6c54","description":"Contract id. This is the id of the contract associated with the time off request."},"requested_at":{"type":"string","format":"date","example":"2021-07-01","description":"This is the date when the time off request was made."},"half_end_date":{"type":"boolean","example":false,"description":"Whether the end date is a half day or not."},"time_off_type":{"type":"object","example":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"Vacation","policy":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"Vacation Policy","policy_type":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"VACATION"}}},"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off type id."},"name":{"type":"string","example":"Vacation","description":"Time off type name. Basically the reason or category of time-off taken. For SICK leave, it can be doctor appointment, surgery etc."},"policy":{"type":"object","example":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"Vacation Policy","policy_type":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"VACATION"}},"required":["id","name","policy_type"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy id"},"name":{"type":"string","example":"Vacation Policy","description":"The custom name given to policy during policy creation."},"policy_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy type id"},"name":{"type":"string","example":"VACATION","description":"Depicts the type of policy, like VACATION, SICK etc"}}}},"description":"The policy associated with the time off type."}},"description":"The type of time off taken."},"time_off_event":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The time off event id. This is used to link the time off request to an event."},"type":{"enum":["PARENTAL_LEAVE"],"type":"string","example":"PARENTAL_LEAVE","description":"The type of the time off event."},"policy_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The policy id associated with the time off event. Same as the policy_id in the time off type."},"created_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"The date when the time off event was created in the database."},"updated_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"The date when the time off event was last updated in the database."},"event_details":{"type":"object","required":["was_premature_birth","had_multiple_children"],"properties":{"birth_date":{"type":"string","format":"date","example":"2025-05-13","description":"The birth date of the child. This is used for parental leave requests."},"adoption_date":{"type":"string","format":"date","example":"2025-05-13","description":"The date of adoption. This is used for parental leave requests."},"was_premature_birth":{"type":"boolean","example":false,"description":"Whether the birth was premature or not. This is used for parental leave requests."},"estimated_birth_date":{"type":"string","format":"date","example":"2025-05-13","description":"The estimated birth date of the child. Birth is estimated when the birth date has not been confirmed yet."},"had_multiple_children":{"type":"boolean","example":false,"description":"Whether the birth was multiple or not. This is used for parental leave requests."},"estimated_adoption_date":{"type":"string","format":"date","example":"2025-05-13","description":"The estimated adoption date of the child. Birth is estimated when the adoption date has not been confirmed yet."}},"description":"Details of the event associated with the time off request. Required for event based policies such as parental leave."},"hris_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The HRIS profile id of the worker associated with the time off event. Same as the hris_profile_id in the recipient_profile."},"time_off_type_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The time off type id associated with the time off event. Same as the time_off_type_id in the time off request."}}},"half_start_date":{"type":"boolean","example":false,"description":"Whether the start date is a half day or not."},"deduction_amount":{"type":"number","format":"float","example":1,"description":"Deduction amount. Available for independent contractor's policies"},"entitlement_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"CALENDAR_DAY","description":"The unit in which the time off usage and entitlement are calculated."},"time_off_dailies":{"type":"array","items":{"type":"object","required":["id","time_off_id","amount","date","type","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off daily id"},"date":{"type":"string","format":"date","example":"2021-08-01","description":"Date of the time off daily. This is the date when the time off was taken."},"type":{"enum":["WORKING_DAY","NON_WORKING_DAY","HOLIDAY","FORFAIT_HOUR_DAY"],"type":"string","example":"WORKING_DAY","description":"Type of the time off daily. Can be WORKING_DAY, NON_WORKING_DAY, HOLIDAY or FORFAIT_HOUR_DAY."},"amount":{"type":"number","format":"float","example":1,"description":"Amount of time off taken in this specific date."},"created_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the time off daily was created in the database."},"updated_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the time off daily was last updated in the database."},"description":{"type":"string","example":"Labour day","nullable":true,"description":"Description of the time off daily. When it is a HOLIDAY this is the holiday name."},"time_off_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off id. This is the id of the time off request associated with the time off daily."}}},"description":"Used to break down the time off request into daily records. Each entry represents a single day within the time off period, allowing for detailed tracking of working days, non-working days, and holidays included in the request."},"time_off_type_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off type id. This is the id of the time off type associated with the time off request."},"recipient_profile":{"type":"object","example":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"required":["hris_profile_id","organization_id"],"properties":{"hris_profile_id":{"type":"string","format":"uuid","description":"The worker HRIS profile id in the given organization."},"organization_id":{"type":"string","format":"uuid","description":"Id of the organization the profile belongs to."}},"description":"The time off profile of the recipient of the time off request. Must be a worker profile."},"requester_profile":{"type":"object","example":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"required":["organization_id"],"properties":{"hris_profile_id":{"type":"string","format":"uuid","description":"The worker HRIS profile id in the given organization. Available when the requester is a worker."},"organization_id":{"type":"string","format":"uuid","description":"Id of the organization the profile belongs to."},"client_profile_id":{"type":"string","format":"uuid","description":"Id of the client profile. Available when the requester is a client."}},"description":"The time off profile of the requester of the time off request. Can be either a client or worker profile."},"time_off_percentage":{"type":"number","format":"float","example":1,"maximum":1,"minimum":0,"description":"Used to specify the percentage of time off taken relative to full-time employment. This value ranges from 0 to 1, where 1 represents full-time (100%) and 0.5 represents part-time (50%). This is useful for part-time workers or when taking partial time off."},"is_end_date_estimated":{"type":"boolean","example":false,"description":"Used to indicate if the end date is an estimate rather than a confirmed date. This is particularly important for event-based policies such as Parental Leave, where the actual end date may depend on the actual birth or adoption date, which may not be known at the time of request submission."},"other_type_description":{"type":"string","example":"Study leave","description":"Used to provide a custom description when the time off type is categorized as 'OTHER'. This allows users to specify the nature of time off that doesn't fit into standard categories, providing flexibility for unique or organization-specific time off types."}},"description":"Used to return the updated time off request after modification. Contains all the time off details including status, dates, amounts, and associated metadata."}},"description":"Time off data to be updated"}}},"description":"Time off updated"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"A machine-readable error code"},"field":{"type":"string","example":"start_date","nullable":true,"description":"The field associated with the error, if applicable"},"details":{"type":"object","nullable":true,"description":"Additional error details, if applicable"},"message":{"type":"string","example":"There is already a time-off for the dates 2026-03-05 and 2026-03-05","description":"A description of the returned error"}}},"description":"List of errors describing what went wrong"},"request":{"type":"object","properties":{"url":{"type":"string","example":"/v2/time_offs/time_off","description":"Request URL path"},"docs":{"type":"string","example":"no match","description":"Documentation reference"},"method":{"type":"string","example":"PATCH","description":"HTTP method"},"source":{"type":"string","example":"http","description":"Request source"},"status":{"type":"integer","example":400,"description":"HTTP status code"},"api_req_id":{"type":"string","example":"e986b19942682de2de9234de3ca360d1","description":"Unique API request identifier"}},"description":"Request metadata"}}},"example":{"errors":[{"code":"GENERIC_ERROR","message":"There is already a time-off for the dates 2026-03-05 and 2026-03-05"}],"request":{"url":"/v2/time_offs/time_off","docs":"no match","method":"POST","source":"http","status":400,"api_req_id":"e986b19942682de2de9234de3ca360d1"}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"time_off_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Time off request id"}],"description":"Corrects details of an existing time-off request, such as its dates, amount, reason, or time-off type, without requiring the worker to cancel and resubmit it. Applies a partial update identified by time_off_id; only fields included in the request body are modified.\n\n **Token scopes**: `time-off:write`, `worker:write`","operationId":"updateTimeOffRequest-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"amount":30,"reason":"Vacation","is_paid":true,"end_date":"2021-04-30","start_date":"2021-04-01","time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"}},"properties":{"data":{"type":"object","example":{"amount":1,"reason":"Vacation","is_paid":false,"end_date":"2021-08-01","start_date":"2021-07-01","requested_at":"2021-07-01","half_end_date":false,"half_start_date":false,"time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"required":["recipient_profile_id","start_date","end_date"],"properties":{"dates":{"type":"array","items":{"type":"object","example":{"date":"2025-05-13","type":"WORKING_DAY","amount":8,"time_off_percentage":1},"required":["date"],"properties":{"date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2025-05-13","description":"An specific date in the time-off request"},"hours":{"type":"number","format":"float","example":8,"description":"The amount taken in hours during this specific date. It can not exceed the maximum allowed hours for the date."},"amount":{"type":"number","format":"float","example":1,"description":"The amount of time off requested for the date. It must be in the same time unit as in the total amount for the time off request."},"day_type":{"enum":["HALF_DAY","FULL_DAY","PERCENTAGE","HOURLY"],"type":"string","example":"FULL_DAY","description":"The type of day for the time off request. All dates must follow the same type."}},"description":"The dates breakdown for the time off request."},"example":[{"date":"2025-05-13","type":"WORKING_DAY","amount":8,"time_off_percentage":1},{"date":"2025-05-14","type":"WORKING_DAY","amount":8,"time_off_percentage":1},{"date":"2025-05-15","type":"WORKING_DAY","amount":8,"time_off_percentage":1}],"description":"The dates breakdown for the time off request."},"reason":{"type":"string","example":"Sick leave - Doctor appointment","nullable":true,"maxLength":500,"description":"Reason for taking time off. This is complementary information for the time-off description. Useful to provide sub categories for the same policy."},"is_paid":{"type":"boolean","example":false,"description":"Whether the time off is paid or unpaid. By default it follows the policy configuration."},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2021-08-02","description":"End date of the time off request. This is the date when the time off ends. For example, if you take 2 days off, this will be the end date of the second day."},"policy_id":{"type":"string","format":"uuid","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off policy id. Can be used in place of time_off_type_id"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2021-08-01","description":"Start date of the time off request. This is the date when the time off starts. For example, if you take 2 days off, this will be the start date of the first day."},"description":{"type":"string","example":"Vacation","nullable":true,"maxLength":500,"description":"Description of the time off request. Some policies require that a description is provided."},"contract_oid":{"type":"string","example":"d290f1ee6c54","nullable":true,"maxLength":24,"description":"Contract id. This is the id of the contract associated with the time off request."},"event_details":{"type":"object","required":["birth_date","was_premature_birth","had_multiple_children"],"properties":{"birth_date":{"type":"string","format":"date","example":"2025-05-13","description":"The birth date of the child. This is used for parental leave requests."},"adoption_date":{"type":"string","format":"date","example":"2025-05-13","description":"The date of adoption. This is used for parental leave requests."},"is_confirmation":{"type":"boolean","example":false,"description":"Whether the event date are a confirmed or not. This is used for parental leave requests when either the birth date or adoption date are not estimated anymore but actually confirmed."},"was_premature_birth":{"type":"boolean","example":false,"description":"Whether the birth was premature or not. This is used for parental leave requests."},"had_multiple_children":{"type":"boolean","example":false,"description":"Whether the birth was multiple or not. This is used for parental leave requests."}},"description":"Details of the event associated with the time off request. Required for event based policies such as parental leave."},"deduction_amount":{"type":"number","format":"float","example":1,"minimum":1,"nullable":true,"description":"Deduction amount. Available for independent contractor's policies"},"time_off_type_id":{"type":"string","format":"uuid","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off type id. Required when policy_id is not provided"},"time_off_event_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The time off event id. This is used to link the time off request to an event."},"time_off_percentage":{"type":"number","format":"double","example":1,"maximum":1,"minimum":0,"nullable":true,"description":"This is the percentage of time off taken. This is used when the time off request is a percentage."},"recipient_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The hris profile id of the recipient"},"other_type_description":{"type":"string","example":"Study leave","nullable":true,"maxLength":255,"description":"Description of the time off type. This is used when the policy is OTHER."}},"description":"Time off update request data"}},"description":"Time off update request data"}},"multipart/form-data":{"schema":{"type":"object","example":{"data":{"amount":30,"reason":"Vacation","is_paid":true,"end_date":"2021-04-30","start_date":"2021-04-01","time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"}},"properties":{"data":{"type":"object","example":{"amount":1,"reason":"Vacation","is_paid":false,"end_date":"2021-08-01","start_date":"2021-07-0","requested_at":"2021-07-01","half_end_date":false,"half_start_date":false,"time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"required":["recipient_profile_id","start_date","end_date","file"],"properties":{"file":{"type":"string","format":"binary","example":"file","minLength":1,"description":"File of attached to the time off. Supported files (png, pdf, jpg)"},"dates":{"type":"array","items":{"type":"object","example":{"date":"2025-05-13","type":"WORKING_DAY","amount":8,"time_off_percentage":1},"required":["date"],"properties":{"date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2025-05-13","description":"An specific date in the time-off request"},"hours":{"type":"number","format":"float","example":8,"description":"The amount taken in hours during this specific date. It can not exceed the maximum allowed hours for the date."},"amount":{"type":"number","format":"float","example":1,"description":"The amount of time off requested for the date. It must be in the same time unit as in the total amount for the time off request."},"day_type":{"enum":["HALF_DAY","FULL_DAY","PERCENTAGE","HOURLY"],"type":"string","example":"FULL_DAY","description":"The type of day for the time off request. All dates must follow the same type."}},"description":"The dates breakdown for the time off request."},"example":[{"date":"2025-05-13","type":"WORKING_DAY","amount":8,"time_off_percentage":1},{"date":"2025-05-14","type":"WORKING_DAY","amount":8,"time_off_percentage":1},{"date":"2025-05-15","type":"WORKING_DAY","amount":8,"time_off_percentage":1}],"description":"The dates breakdown for the time off request."},"reason":{"type":"string","example":"Sick leave - Doctor appointment","nullable":true,"maxLength":500,"description":"Reason for taking time off. This is complementary information for the time-off description. Useful to provide sub categories for the same policy."},"is_paid":{"type":"boolean","example":false,"description":"Whether the time off is paid or unpaid. By default it follows the policy configuration."},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2021-08-02","description":"End date of the time off request. This is the date when the time off ends. For example, if you take 2 days off, this will be the end date of the second day."},"policy_id":{"type":"string","format":"uuid","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off policy id. Can be used in place of time_off_type_id"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2021-08-01","description":"Start date of the time off request. This is the date when the time off starts. For example, if you take 2 days off, this will be the start date of the first day."},"description":{"type":"string","example":"Vacation","nullable":true,"maxLength":500,"description":"Description of the time off request. Some policies require that a description is provided."},"contract_oid":{"type":"string","example":"d290f1ee6c54","nullable":true,"maxLength":24,"description":"Contract id. This is the id of the contract associated with the time off request."},"event_details":{"type":"object","required":["birth_date","was_premature_birth","had_multiple_children"],"properties":{"birth_date":{"type":"string","format":"date","example":"2025-05-13","description":"The birth date of the child. This is used for parental leave requests."},"adoption_date":{"type":"string","format":"date","example":"2025-05-13","description":"The date of adoption. This is used for parental leave requests."},"is_confirmation":{"type":"boolean","example":false,"description":"Whether the event date are a confirmed or not. This is used for parental leave requests when either the birth date or adoption date are not estimated anymore but actually confirmed."},"was_premature_birth":{"type":"boolean","example":false,"description":"Whether the birth was premature or not. This is used for parental leave requests."},"had_multiple_children":{"type":"boolean","example":false,"description":"Whether the birth was multiple or not. This is used for parental leave requests."}},"description":"Details of the event associated with the time off request. Required for event based policies such as parental leave."},"deduction_amount":{"type":"number","format":"float","example":1,"minimum":1,"nullable":true,"description":"Deduction amount. Available for independent contractor's policies"},"time_off_type_id":{"type":"string","format":"uuid","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off type id. Required when policy_id is not provided"},"time_off_event_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The time off event id. This is used to link the time off request to an event."},"time_off_percentage":{"type":"number","format":"double","example":1,"maximum":1,"minimum":0,"nullable":true,"description":"This is the percentage of time off taken. This is used when the time off request is a percentage."},"recipient_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The hris profile id of the recipient"},"other_type_description":{"type":"string","example":"Study leave","nullable":true,"maxLength":255,"description":"Description of the time off type. This is used when the policy is OTHER."}},"description":"Time off update request data"}},"description":"Time off update request data"}}},"required":true,"description":"Time off update request data"},"security":[{"deelToken":[]},{"oauth2":["time-off:write","worker:write"]}]},"delete":{"path":"/rest/time_offs/{time_off_id}","tags":["Time Off"],"method":"delete","summary":"Cancel time-off request","responses":{"204":{"description":"time off deleted"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Time off not found","description":"Error message"}}}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"time_off_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"Time off request id"}],"description":"Cancels the time-off request identified by time_off_id. Use this when a previously submitted or approved time off needs to be withdrawn. This action immediately sets the request to CANCELED regardless of its current status and cannot be reversed.\n\n **Token scopes**: `time-off:write`, `worker:write`","operationId":"cancelTimeOffRequest-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-off:write","worker:write"]}]}},"/groups":{"post":{"path":"/rest/groups","tags":["Groups"],"method":"post","summary":"Create a group","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","name":"Reload","created_at":"2024-03-07T11:42:22.342Z","updated_at":"2024-03-07T11:42:22.342Z","external_metadata":{"showInReport":"true"}}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","description":"The unique identifier of the created group."},"name":{"type":"string","example":"Reload","description":"The name of the created group."},"created_at":{"type":"string","format":"date-time","example":"2024-03-07T11:42:22.342Z","description":"The timestamp when the group was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-03-07T11:42:22.342Z","description":"The timestamp when the group was last updated."},"external_metadata":{"type":"object","example":{"showInReport":"true"},"nullable":true,"description":"Extra information of the group."}}}}}}},"description":"Group created successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"error":{"message":"Invalid payload"}},"properties":{"error":{"type":"object","properties":{"message":{"type":"string","description":"Description of the error."}}}}}}},"description":"Invalid request payload"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Creates a new group within the organization and returns the created group record, including its assigned `id`.\n\n **Token scopes**: `groups:read`, `groups:write`","operationId":"createGroup-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"Walmart","maxLength":48,"description":"The name of the group to be created."},"external_metadata":{"type":"object","example":{"showInReport":"true"},"nullable":true,"description":"The extra information of the group to be created."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["groups:read","groups:write"]}]},"get":{"path":"/rest/groups","tags":["Groups"],"method":"get","summary":"Return list of groups","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","description":"The unique identifier of the group."},"name":{"type":"string","example":"Engineering","description":"The name of the group."},"status":{"enum":["active","archived"],"type":"string","example":"active","description":"The current status of the group (active or archived)."},"managers":{"type":"number","example":3,"description":"The number of managers associated with the group."},"created_at":{"type":"string","format":"date-time","example":"2024-01-15T10:30:00Z","description":"The timestamp when the group was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-06-01T08:00:00Z","description":"The timestamp when the group was last updated."},"archived_at":{"type":"string","format":"date-time","example":"2024-06-15T10:30:00Z","nullable":true,"description":"The timestamp when the group was archived (if applicable)."},"external_metadata":{"type":"object","example":{"source":"hr-system"},"nullable":true,"description":"Extra information about the group."}}}},"page":{"type":"object","properties":{"cursor":{"type":"string","example":"eyJpZCI6IjEyMyJ9","nullable":true,"description":"An opaque cursor to fetch the next set of results."},"total_rows":{"type":"integer","example":42,"description":"The total number of groups available for the current query (including pagination)."}}}}}}},"description":"A list of groups in the organization."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Invalid request parameters.","description":"Error message explaining what went wrong."}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":100,"maximum":100,"minimum":1},"example":50,"required":false,"description":"The maximum number of groups to return (between 1 and 100)"},{"in":"query","name":"sort_order","schema":{"enum":["ASC","DESC"],"type":"string","default":"ASC"},"example":"ASC","required":false,"description":"Sort the results in ascending (ASC) or descending (DESC) order based on the group name."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJpZCI6IjEyMyJ9","required":false,"description":"The encoded cursor for paginated results. This is an opaque string that allows fetching the next set of results."},{"in":"query","name":"include_archived_groups","schema":{"type":"boolean","default":true},"example":true,"required":false,"description":"Include archived groups (soft deleted records). Defaults to `true`."},{"in":"query","name":"external_metadata","schema":{"type":"string"},"example":"{\"source\":\"hr-system\"}","required":false,"description":"Extra information about the group."}],"description":"Returns a paginated list of groups in the organization. Archived groups are included by default and can be excluded via the `include_archived_groups` parameter.\n\n **Token scopes**: `groups:read`","operationId":"getGroups-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["groups:read"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/pdf":{"get":{"path":"/rest/eor/contracts/{contract_id}/amendments/{amendment_id}/pdf","tags":["EOR"],"method":"get","summary":"Get EOR Contract Amendment PDF Download Link for Client and Employee","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"url":{"type":"string","format":"uri","example":"https://files.example.com/contracts/amendments/1234.pdf","description":"Pre-signed URL to download the exported PDF (valid for 15 minutes)."}}}}}}},"description":"URL of exported PDF(valid for 15m)"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of EOR worker contract."},{"in":"path","name":"amendment_id","schema":{"type":"string","format":"uuid"},"example":"77733bb9-9e17-4dfd-ba1b-1315f77cd7f7","required":true,"description":"A unique identifier for the employee contract amendment."}],"description":"Generates a secure, time-limited download URL for the PDF of a specific EOR contract amendment. The returned URL is valid for 15 minutes from the time of generation.\n\n **Token scopes**: `contracts:read`","operationId":"getEorContractAmendmentPdfDownloadLinkForClientAndEmployee-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/timesheets/{timesheet_id}/reviews":{"post":{"path":"/rest/timesheets/{timesheet_id}/reviews","tags":["Timesheets"],"method":"post","summary":"Review a single timesheet","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean","example":true,"description":"Confirms the review was recorded."}},"description":"Container object confirming the outcome of the review operation."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"OLD_APPROVAL_FLOW_USED_WITH_APPROVAL_POLICY","message":"Your organization has approval policies enabled. Please use /approval-requests screen for review."}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"OLD_APPROVAL_FLOW_USED_WITH_APPROVAL_POLICY","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Your organization has approval policies enabled. Please use /approval-requests screen for review.","description":"Human-readable description of the validation or business rule violation."}}},"description":"Validation or business rule errors describing why the timesheet review could not be processed, such as invalid input or the organization requiring the approval-requests workflow instead."}}}}},"description":"Bad Request - The request payload failed validation or violated a business rule for the timesheet review."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"APPROVAL_REQUESTS_REPORTS_NOT_FOUND","message":"No items to approve found for the given Ids"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"APPROVAL_REQUESTS_REPORTS_NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"No items to approve found for the given Ids","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the timesheet to review could not be found."}}}}},"description":"Not Found - The specified timesheet id could not be found for review."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the timesheet review cannot be processed."}}}}},"description":"Internal Server Error - The timesheet review could not be processed due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"timesheet_id","schema":{"type":"string"},"example":"string","required":true,"description":"ID of an existing timesheet"}],"description":"Submits an approve or reject decision for a timesheet entry. Approved timesheets are queued for inclusion in the next payment cycle.\n\n **Token scopes**: `timesheets:write`","operationId":"createTimesheetReview-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["status"],"properties":{"reason":{"type":"string","example":"Hours do not match the submitted worksheet.","nullable":true,"description":"Optional reason accompanying the review decision, typically used when declining a timesheet."},"status":{"enum":["approved","declined"],"type":"string","example":"approved","nullable":false,"description":"Review decision to apply to the timesheet."}},"description":"Review decision payload to apply to the timesheet entry."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]}},"/it/policies":{"get":{"path":"/rest/it/policies","tags":["IT policies"],"method":"get","summary":"List IT hardware policies","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier for the policy"},"name":{"type":"string","example":"Engineering","description":"Policy name"}}}}}}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[],"description":"Returns all available IT hardware policies, which define the equipment eligible for ordering.\n\n **Token scopes**: `it-policies:read`","operationId":"listItHardwarePolicies-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["it-policies:read"]}]}},"/ats/job-postings":{"get":{"path":"/rest/ats/job-postings","tags":["ATS"],"method":"get","summary":"Retrieve ATS job postings","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","job_id","title","richtext_description","is_compensation_visible","job","publications","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job posting"},"job":{"type":"object","required":["id","job_locations","job_employment_types","compensation"],"properties":{"id":{"type":"string","format":"uuid","example":"5f3cbc4b-2c51-4b48-a2c5-141f581dbf8a","description":"Unique identifier for the job"},"job_teams":{"type":"array","items":{"type":"object","required":["id","team"],"properties":{"id":{"type":"string","format":"uuid","example":"53e4d5bb-65e3-42ff-ada7-65badeeb9d8f","description":"Unique identifier for the job team"},"team":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"127ee4e0-3776-46c8-8999-5e045e2ae1cf","description":"Unique identifier for the team"},"name":{"type":"string","example":"Product Design Team","description":"Team name"}},"description":"Details for the team assigned to the job"}}},"nullable":true,"description":"Teams associated with the job"},"compensation":{"type":"object","nullable":true,"required":["id","currency_iso_code"],"properties":{"id":{"type":"string","format":"uuid","example":"9a8b7c6d-5e4f-4321-abcd-9876543210ff","description":"Unique identifier for the compensation record"},"max_amount":{"type":"number","example":105000,"nullable":true,"description":"Maximum compensation amount"},"min_amount":{"type":"number","example":85000,"nullable":true,"description":"Minimum compensation amount"},"currency_iso_code":{"type":"string","example":"USD","description":"Currency ISO code for the compensation"}},"description":"Compensation information for the job"},"job_locations":{"type":"array","items":{"type":"object","required":["id","location"],"properties":{"id":{"type":"string","format":"uuid","example":"ae5ea0d8-300b-4027-9d14-0330ac5e527c","description":"Unique identifier for the job location"},"location":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"f61a2d36-2790-45d0-b9c9-988c6c234b9b","description":"Unique identifier for the location"},"name":{"type":"string","example":"France","description":"Location name"}},"description":"Details for the location assigned to the job"}}},"description":"Locations associated with the job"},"job_departments":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Job-department association row identifier."},"department":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Department identifier."},"name":{"type":"string","example":"Product","maxLength":100,"description":"Display name of the department."}}}}},"nullable":true,"description":"Departments associated with the job"},"job_employment_types":{"type":"array","items":{"type":"object","required":["id","employment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"33a13504-ec08-4f2a-98cf-64c0cc20f20b","description":"Unique identifier for the job employment type"},"employment_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"5ed1ab2a-395f-4cf1-854f-7aa060a31db3","description":"Unique identifier for the employment type"},"name":{"type":"string","example":"Temporary","description":"Employment type name"}},"description":"Details for the employment type assigned to the job"}}},"description":"Employment types associated with the job"}},"description":"Associated job information"},"title":{"type":"string","example":"Product Designer","maxLength":200,"description":"Job posting title"},"job_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Identifier of the underlying job this posting belongs to."},"created_at":{"type":"string","format":"date-time","example":"2025-07-24T16:28:46.063Z","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","example":"2025-07-25T10:11:12.613Z","description":"Last update timestamp"},"publications":{"type":"array","items":{"type":"object","required":["id","job_board","current_state"],"properties":{"id":{"type":"string","format":"uuid","example":"07e7f02c-e10f-4751-a1af-a7d110617e27","description":"Unique identifier for the job posting publication"},"job_board":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"95858e6b-3971-408c-97d6-73ca4fce10b7","description":"Unique identifier for the job board"}},"description":"Job board where the posting is published"},"current_state":{"type":"object","required":["id","state_slug","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"958e9211-5944-49df-a9df-af43967b233f","description":"Unique identifier for the publication state"},"created_at":{"type":"string","format":"date-time","example":"2025-07-24T16:28:46.063Z","description":"Timestamp when the publication was created"},"created_by":{"type":"string","format":"uuid","example":"42d103ea-9367-432a-8e6f-7ab548eeddcd","nullable":true,"description":"User who created the publication"},"state_slug":{"enum":["PUBLISHED_BASIC","PUBLISHED_PREMIUM","UNPUBLISHED","EXPIRED","IN_PROGRESS","FAILED"],"type":"string","example":"PUBLISHED_BASIC","description":"Current publication state"},"error_message":{"type":"string","example":"Publication failed due to invalid job board credentials","nullable":true,"description":"Error message if publication failed"}},"description":"Current publication state details"}},"description":"Publication information for different job boards"},"description":"Publication rows for this posting, one per job board integration, with current state."},"application_form":{"type":"object","nullable":true,"required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"6bfbc928-8d34-46a0-8bca-6503f0e7128c","description":"Unique identifier for the application form"},"title":{"type":"string","example":"Standard Application","description":"Title of the application form"}},"description":"Application form assigned to the job posting"},"richtext_description":{"type":"string","example":"<p>Some description</p>","nullable":true,"description":"Rich text description of the job posting"},"is_compensation_visible":{"type":"boolean","example":false,"description":"Indicates if compensation details are visible to candidates"}},"description":"Job posting with nested job details and publication status."}},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more results available"},"next_cursor":{"type":"string","example":null,"nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"integer","example":1,"minimum":0,"description":"Total number of job postings"}}}}},"description":"Successful operation. Returns job postings for the requested job board (and optional job filter), with nested job details and publication state per board."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"job_board_id","schema":{"type":"string","format":"uuid"},"example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","required":false,"description":"Job board to list postings from (UUID)."},{"in":"query","name":"job_id","schema":{"type":"string","format":"uuid"},"example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","required":false,"description":"When set, only postings for this job are returned (UUID)."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1000},"example":"eyJwYWdlIjoyfQ==","required":false,"description":"Opaque cursor for pagination. Use the value from next_cursor of the previous response to fetch the next page."},{"in":"query","name":"limit","schema":{"type":"integer","maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of job postings to return per page (min: 1, max: 100)."}],"description":"List job postings across your organization, optionally filtered by job board or job ID. Omit filters to retrieve all postings; use the job-board-scoped endpoint instead for queries by board alone.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAtsJobPostings-v2026-04-10","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/people/external/{worker_id}/personal":{"get":{"path":"/rest/people/external/{worker_id}/personal","tags":["People"],"method":"get","summary":"Get worker profile by external ID","responses":{"204":{"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string"},"example":"123456","required":true,"description":"System-wide external identifier for a worker record."}],"description":"Retrieves a worker profile record using a system-wide external worker identifier.\n\n **Token scopes**: `people:read`","operationId":"getWorkerProfileSummaryByExternalId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:read"]}]},"patch":{"path":"/rest/people/external/{worker_id}/personal","tags":["People"],"method":"patch","summary":"Update personal information by external id","responses":{"204":{"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string"},"example":"96768afd-cdbd-4941-be60-dc70be36983d","required":true,"description":"Unique identifier for a worker (External ID)."}],"description":"Partially updates a worker's personal information using an external identifier. Only fields included in the request body are modified.\n\n **Token scopes**: `people:write`","operationId":"updatePeoplePersonalInformationByExternalId-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"date_of_birth":{"type":"string","format":"date","example":"1990-01-01","description":"The date of birth of the worker. Format: YYYY-MM-DD."},"personal_email":{"type":"string","format":"email","example":"test@example.com","maxLength":255,"description":"The personal email of the worker."},"preferred_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"The preferred name of the worker."},"legal_last_name":{"type":"string","example":"Doe","maxLength":100,"description":"The legal last name of the worker."},"legal_first_name":{"type":"string","example":"John","maxLength":100,"description":"The legal first name of the worker."}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/equity-valuations":{"get":{"path":"/rest/equity-valuations","tags":["Equity Tokens"],"method":"get","summary":"List equity grant valuations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","source_file_id","grant_name","plan_name","award_type","grant_date","employee_grant_number","original_vest_date","original_performance_rule","original_granted","expense_valuation_model","amortization_method","valuation_type","expense_amortization_start_date","fair_value_per_share","forfeiture_rate_percent","forfeiture_rate_calculation_method","grant_price","market_price","expected_life","expected_life_type","volatility_percent","volatility_type","risk_free_rate_percent","risk_free_rate_type","risk_free_rate_source","dividend_yield_percent","dividend_yield_type","occurrence_index","row_hash","last_seen_dataset_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"The unique identifier of the record."},"row_hash":{"type":"string","example":"9f2c1a7e4b6d8f0a2c4e6b8d0f2a4c6e8b0d2f4a6c8e0b2d4f6a8c0e2b4d6f8a","description":"Hash of the reported values on this record. Compare it between syncs to detect a change without diffing every field."},"plan_name":{"type":"string","example":"2020 Stock Plan","description":"Equity plan name, as reported by the ingested file."},"award_type":{"type":"string","example":"Options (NQ)","description":"Award type (e.g. Restricted Stock - Standard), as reported by the ingested file."},"created_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was first ingested."},"grant_date":{"type":"string","format":"date","example":"2022-06-18","description":"Date the grant was issued, as reported by the ingested file.","x-sensitive-employment":true},"grant_name":{"type":"string","example":"06/18/2022 - NQSO - $4.7","description":"Grant name, as reported by the ingested file."},"updated_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was last upserted, for incremental sync."},"grant_price":{"type":"number","example":4.7,"description":"Strike/grant price per unit, as reported by the ingested file.","x-sensitive-employment":true},"market_price":{"type":"number","example":4.7,"description":"Market price per unit, as reported by the ingested file.","x-sensitive-employment":true},"expected_life":{"type":"number","example":1000,"nullable":true,"description":"Expected life of the award (years), as reported by the ingested file. Sparsely populated (measured: 14,353 of 15,090 real rows)."},"source_file_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"Identifier of the ingested Shareworks report file this record was last upserted from."},"valuation_type":{"type":"string","example":"Standard","description":"Valuation type, as reported by the ingested file."},"volatility_type":{"type":"string","example":"Standard","nullable":true,"description":"Volatility type, as reported by the ingested file. Sparsely populated (measured: 14,353 of 15,090 real rows)."},"occurrence_index":{"type":"integer","example":1,"description":"Discriminates several records the source file reports for the same natural key. Starts at 1, in the order the rows appear in the file."},"original_granted":{"type":"number","example":1000,"description":"Original granted share count, as reported by the ingested file.","x-sensitive-employment":true},"expected_life_type":{"type":"string","example":"Standard","nullable":true,"description":"Expected life type, as reported by the ingested file. Sparsely populated (measured: 14,353 of 15,090 real rows)."},"original_vest_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"Original vest date, as reported by the ingested file. Sparsely populated (measured: 4,477 of 15,090 real rows) - deliberately NOT part of the uniqueness key, since a Null value would not conflict with another Null under Postgres unique-constraint semantics.","x-sensitive-employment":true},"volatility_percent":{"type":"number","example":5.5,"nullable":true,"description":"Volatility, stored as the percent NUMBER itself, NOT a fraction. See parseShareworksPercent. Sparsely populated (measured: 14,353 of 15,090 real rows)."},"amortization_method":{"type":"string","example":"Black-Scholes","description":"Amortization method (e.g. Straight-Line), as reported by the ingested file."},"dividend_yield_type":{"type":"string","example":"Standard","nullable":true,"description":"Dividend yield type, as reported by the ingested file. Sparsely populated (measured: 14,353 of 15,090 real rows)."},"risk_free_rate_type":{"type":"string","example":"Standard","nullable":true,"description":"Risk-free rate type, as reported by the ingested file. Sparsely populated (measured: 14,353 of 15,090 real rows)."},"fair_value_per_share":{"type":"number","example":4.7,"description":"Fair market value per share, as reported by the ingested file.","x-sensitive-employment":true},"last_seen_dataset_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","nullable":true,"description":"Identifier of the most recent ingested dataset in which this record still appeared. Null for records ingested before dataset tracking began."},"employee_grant_number":{"type":"string","example":"ES-0001","description":"Shareworks grant number for this employee, as reported by the ingested file.","x-sensitive-pii":true},"risk_free_rate_source":{"type":"string","example":"Reported value","nullable":true,"description":"Risk-free rate source, as reported by the ingested file. Sparsely populated (measured: 8,308 of 15,090 real rows)."},"dividend_yield_percent":{"type":"number","example":5.5,"nullable":true,"description":"Dividend yield, stored as the percent NUMBER itself, NOT a fraction. See parseShareworksPercent. Sparsely populated (measured: 14,353 of 15,090 real rows)."},"risk_free_rate_percent":{"type":"number","example":5.5,"nullable":true,"description":"Risk-free rate, stored as the percent NUMBER itself, NOT a fraction. See parseShareworksPercent. Sparsely populated (measured: 14,353 of 15,090 real rows)."},"expense_valuation_model":{"type":"string","example":"Black-Scholes","description":"Expense valuation model (e.g. Black-Scholes), as reported by the ingested file."},"forfeiture_rate_percent":{"type":"number","example":5.5,"description":"Forfeiture rate, stored as the percent NUMBER itself (e.g. 5.25 means 5.25%), NOT a fraction. See parseShareworksPercent.","x-sensitive-employment":true},"original_performance_rule":{"type":"string","example":"Reported value","nullable":true,"description":"Original performance rule, as reported by the ingested file. Sparsely populated (measured: 25 of 15,090 real rows)."},"expense_amortization_start_date":{"type":"string","format":"date","example":"2022-06-18","description":"Expense amortization start date, as reported by the ingested file.","x-sensitive-employment":true},"forfeiture_rate_calculation_method":{"type":"string","example":"Black-Scholes","description":"Forfeiture rate calculation method, as reported by the ingested file."}}},"description":"Page of grant valuation records, one per grant occurrence."},"has_more":{"type":"boolean","example":false,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","nullable":true,"description":"Cursor for the next page. Null when has_more is false."}}}}},"description":"List equity grant valuations returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid cursor","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"validation_error","message":"Invalid cursor"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"unauthorized","message":"Unauthorized"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Insufficient permissions to view equity grant valuations","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"forbidden","message":"Insufficient permissions to view equity grant valuations"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — caller lacks the equities.view permission, or the caller's organization is not permitted to access this endpoint."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Not found","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"not_found","message":"Not found"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found — the requested resource does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"internal_server_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Internal server error","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"internal_server_error","message":"Internal server error"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of records to return in this page."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":2048},"example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","required":false,"description":"Opaque pagination cursor returned as next_cursor by a previous response. Omit to fetch the first page."},{"in":"query","name":"employee_grant_number","schema":{"type":"string","maxLength":100},"example":"ES-0001","required":false,"description":"Only return records for this exact Shareworks grant number."},{"in":"query","name":"grant_date_from","schema":{"type":"string","format":"date"},"example":"2026-01-01","required":false,"description":"Only return records with a grant_date on or after this date (inclusive), in YYYY-MM-DD format."},{"in":"query","name":"grant_date_to","schema":{"type":"string","format":"date"},"example":"2026-12-31","required":false,"description":"Only return records with a grant_date on or before this date (inclusive), in YYYY-MM-DD format."}],"description":"Retrieves the expense valuation inputs for each equity grant in an organization, as ingested from Shareworks, in ascending employee_grant_number order. Use it to reproduce or audit a grant expense figure: it carries the valuation model, amortization method, fair value per share, forfeiture rate, and the volatility, expected life, risk-free rate and dividend yield assumptions behind them. Requires the `equities.view` permission at the organization level.\n\n **Token scopes**: `equities:read`","operationId":"listEquityValuations-v2026-09-09","security":[{"deelToken":[]},{"oauth2":["equities:read"]}]}},"/payments":{"get":{"path":"/rest/payments","tags":["Accounting"],"method":"get","summary":"Retrieve payment receipts","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"rows":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"34d7Y48Ymu44g66fghN9F","nullable":false,"description":"Unique identifier of the payment."},"label":{"type":"string","example":"REC-2024-3","description":"A descriptive label for the payment."},"total":{"type":"string","example":"1500.00","description":"Original invoice total before any credits or balance were applied."},"status":{"enum":["paid","processing"],"type":"string","example":"paid","description":"Status of the payment. Either 'paid' or 'processing'."},"paid_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Date and time when the payment was completed, in ISO-8601 format."},"workers":{"type":"array","items":{"type":"object","title":"The worker for the payment","required":["picUrl"],"properties":{"id":{"type":"string","format":"uuid","example":"f2f31dd9-06d7-4944-89bd-449b0fd54855","nullable":true,"description":"Unique identifier for the worker."},"name":{"type":"string","default":"","example":"Jane Doe","description":"Full name of the worker.","x-sensitive-pii":true},"picUrl":{"type":"string","default":null,"example":"https://cdn.deel.com/avatars/user-123.jpg","nullable":true,"description":"URL to the worker's Deel avatar."},"contract_id":{"type":"string","example":"37nex2x","nullable":true,"description":"The unique identifier of the employee contract."}}},"description":"Array of workers associated with this payment."},"invoices":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","example":"invoice-001","description":"Unique identifier of the invoice."}}},"description":"Array of invoices associated with this payment."},"timezone":{"type":"string","example":"+02:00","pattern":"^[+-]\\d{2}:\\d{2}$","description":"Timezone offset in ISO 8601 format (e.g., +02:00, -05:00)."},"total_due":{"type":"string","example":"1400.00","description":"Amount due for the payment after applying any credits or balance. Equals 'total' when no credits were used."},"created_at":{"type":"string","format":"date-time","example":"2022-05-23T14:45:30.123Z","description":"Date and time when the payment was created, in ISO-8601 format."},"deel_reference":{"type":"string","example":"DEEL72T6KJ","nullable":true,"description":"Deel reference identifier for the payment."},"payment_method":{"type":"object","properties":{"type":{"enum":["stripe_bacs_debit","pay_pal","stripe_card","bt_card","stripe_ach","coinbase","go_cardless","brex","stripe_sepa_debit","transferwise","go_cardless_becs","bank_transfer","mercury_wire","bt_pay_pal","ach","client_balance","fee_credits","eor_funding_balance","alviere_ach","adyen_card","stablecoin_transfer"],"type":"string","example":"ach","nullable":false,"description":"Type of payment method used for the transaction."}},"description":"Payment method details for the transaction."},"payment_currency":{"type":"string","example":"GBP","pattern":"^[A-Z]{3,4}$","maxLength":4,"minLength":3,"description":"Three or four-letter currency code for the payment, following ISO 4217 (e.g., USD, USDC)."},"general_funds_used":{"type":"object","properties":{"amount":{"type":"string","example":"50.00","description":"Amount deducted from general funds, in the payment currency. '0.00' if not used."},"original_amount":{"type":"string","example":"50.00","nullable":true,"description":"Amount deducted from general funds, in the original currency it was held in. Null if not used."},"original_currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3,4}$","nullable":true,"maxLength":4,"minLength":3,"description":"Currency in which the general funds were held, following ISO 4217 (e.g., USD, USDC). Null if not used."}},"description":"Amount paid using the client's general balance funds."},"deel_granted_credits_used":{"type":"object","properties":{"amount":{"type":"string","example":"0.00","description":"Amount deducted from Deel-granted credits, in the payment currency. '0.00' if not used."},"original_amount":{"type":"string","example":"25.00","nullable":true,"description":"Amount deducted from Deel-granted credits, in the original currency they were held in. Null if not used."},"original_currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3,4}$","nullable":true,"maxLength":4,"minLength":3,"description":"Currency in which the Deel-granted credits were held, following ISO 4217 (e.g., USD, USDC). Null if not used."}},"description":"Amount paid using Deel-granted credits."},"prepaid_billing_credits_used":{"type":"object","properties":{"amount":{"type":"string","example":"40.00","description":"Amount deducted from prepaid billing credits, in the payment currency. '0.00' if not used."},"original_amount":{"type":"string","example":"40.00","nullable":true,"description":"Amount deducted from prepaid billing credits, in the original currency they were held in. Null if not used."},"original_currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3,4}$","nullable":true,"maxLength":4,"minLength":3,"description":"Currency in which the prepaid billing credits were held, following ISO 4217 (e.g., USD, USDC). Null if not used."}},"description":"Amount paid using prepaid billing credits."},"eor_early_invoicing_funds_used":{"type":"object","properties":{"amount":{"type":"string","example":"10.00","description":"Amount deducted from EOR early invoicing funds, in the payment currency. '0.00' if not used."},"original_amount":{"type":"string","example":"10.00","nullable":true,"description":"Amount deducted from EOR early invoicing funds, in the original currency they were held in. Null if not used."},"original_currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3,4}$","nullable":true,"maxLength":4,"minLength":3,"description":"Currency in which the EOR early invoicing funds were held, following ISO 4217 (e.g., USD, USDC). Null if not used."}},"description":"Amount paid using EOR early invoicing funds."}}},"description":"Array of payment receipts matching the query criteria."},"total":{"type":"number","example":150,"nullable":false,"description":"The total number of payments matching the query."},"has_more":{"type":"boolean","example":"true","nullable":false,"description":"Inform if there are more entries to be fetched using next cursor,."},"next_cursor":{"type":"string","example":"BHF2gkMEMT8D9UQDmty66","nullable":true,"description":"A cursor for pagination. Use the value returned in the 'next_cursor' field to get the next page of results. If there are no more results, this will be null."},"total_count":{"type":"number","example":150,"nullable":false,"description":"The total number of payments matching the query."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"INTERNAL_SERVER_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"date_from","schema":{"type":"string","format":"date"},"example":"2022-01-01","description":"Filters results to include payments created on or after this date (in ISO 8601 format)."},{"in":"query","name":"date_to","schema":{"type":"string","format":"date"},"example":"2022-12-31","description":"Filters results to include payments created before this date (in ISO 8601 format)."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"BHF2gkMEMT8D9UQDmty66","description":"A cursor for pagination. Use the value returned in the 'next_cursor' field to get the next page of results."},{"in":"query","name":"currencies","schema":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3}},"example":["USD","EUR"],"description":"Filters payments by their currency codes. Can be a single currency code or an array of codes."},{"in":"query","name":"entities","schema":{"type":"array","items":{"enum":["individual","company"],"type":"string"}},"example":["company"],"description":"Filters payments by legal entity type (e.g., 'individual' or 'company'). Can be a single entity type or an array."},{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["paid","processing"],"type":"string"}},"example":["paid","processing"],"description":"Filters payments by their status (e.g., 'paid' or 'processing'). Can be a single status type or an array."}],"description":"Returns a cursor-paginated list of payments to Deel, including worker details, payment status, and payment methods. Use the `next_cursor` value from the response to retrieve subsequent pages.\n\n **Token scopes**: `accounting:read`","operationId":"retrievePaymentReceipts-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/ats/applications/{application_id}/notes":{"post":{"path":"/rest/ats/applications/{application_id}/notes","tags":["ATS"],"method":"post","summary":"Add note to an application","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"The unique identifier of the application note"},"created_at":{"type":"string","format":"date-time","example":"2025-11-27T10:30:00.000Z","description":"The timestamp when the application note was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-11-27T10:30:00.000Z","description":"The timestamp when the application note was last updated"}},"description":"The created application note"}}}}},"description":"Application note created successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"application_id","schema":{"type":"string","format":"uuid"},"example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","required":true,"description":"Id of the application which the note will be added"}],"description":"Adds a note to a specific application. The `author_id` must correspond to a valid HRIS user.\n\n **Token scopes**: `ats:write`, `ats.applications.notes:write`","operationId":"addNoteToAnApplication-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["richtext_content","author_id"],"properties":{"author_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The UUID of the HRIS organization user creating the note"},"richtext_content":{"type":"string","example":"<p>Great communication skills. <strong>Highly recommended</strong>.</p>","description":"The content of the note in rich text HTML format"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["ats:write","ats.applications.notes:write"]}]}},"/invoices/{id}/download":{"get":{"path":"/rest/invoices/{id}/download","tags":["Accounting"],"method":"get","summary":"Download invoice PDF","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url"],"properties":{"id":{"type":"string","example":"abcd1234efgh5678","description":"Unique identifier of the invoice."},"url":{"type":"string","example":"https://s3URL/letsdeel.com/invoices/abcd1234efgh5678.pdf","nullable":true,"description":"URL to the requested invoice for download. This URL may expire after a certain duration."},"expires_at":{"type":"string","format":"date-time","example":"2024-11-30T10:58:49.780Z","description":"The expiration date and time of the download URL, after which the URL will no longer be accessible."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"A machine-readable error code"},"field":{"type":"string","description":"The request field the error relates to, when applicable"},"details":{"type":"object","description":"Additional error context, when applicable"},"message":{"type":"string","example":"Invoice not found","description":"A description of the returned error"}}},"minItems":1}}}}},"description":"Invoice not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"abcd1234efgh5678","required":true,"description":"The invoice ID used to identify the invoice to be downloaded."}],"description":"Returns a temporary download URL for an invoice PDF. Use this endpoint when a caller needs to fetch or display the PDF for a specific invoice; the URL expires at the time indicated by `expires_at` in the response, after which it must be re-requested.\n\n **Token scopes**: `accounting:read`","operationId":"getBillingInvoiceDownloadLink-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/eor/start-date":{"get":{"path":"/rest/eor/start-date","tags":["EOR"],"method":"get","summary":"Fetch Start Date for EOR Contracts","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["min_start_date","first_payroll_lock","start_date_buffer","is_same_month_payment_country"],"properties":{"min_start_date":{"type":"string","format":"date-time","example":"2025-05-19T21:09:54.630Z","description":"The earliest possible employment start date"},"start_date_buffer":{"type":"integer","example":1,"description":"Number of business days to buffer from today"},"first_payroll_lock":{"type":"integer","example":20,"description":"Day of month when payroll gets locked"},"is_same_month_payment_country":{"type":"boolean","example":false,"description":"Whether the employment country requires start date within the same month"}}}}}}},"description":"Start date details"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"employment_country","schema":{"type":"string","pattern":"^[A-Z]{2}$"},"example":"US","required":true,"description":"Employment country in ISO 3166-1 alpha-2 format"},{"in":"query","name":"employee_nationality","schema":{"type":"string","pattern":"^[A-Z]{2}$"},"example":"BR","required":false,"description":"Employee nationality in ISO 3166-1 alpha-2 format"},{"in":"query","name":"work_visa","schema":{"type":"boolean"},"example":true,"required":false,"description":"Whether a work visa is required"},{"in":"query","name":"team_id","schema":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174001","required":true,"description":"Team ID"},{"in":"query","name":"legal_entity_id","schema":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174001","required":false,"description":"Legal entity ID"},{"in":"query","name":"employment_state","schema":{"type":"string"},"example":"CA","required":false,"description":"State or province of employment"},{"in":"query","name":"special_job_id","schema":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174001","required":false,"description":"Special job ID (if applicable)"}],"description":"Returns the earliest allowed start date for a new EOR contract quote based on the specified employment country, nationality, and visa requirements. The response also includes payroll timing parameters — `start_date_buffer`, `first_payroll_lock`, and `is_same_month_payment_country` — that govern when the contract can take effect.\n\n **Token scopes**: `contracts:read`","operationId":"fetchStartDateForEorContracts-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/organizations/secure-vault/files":{"post":{"path":"/rest/organizations/secure-vault/files","tags":["Documents"],"method":"post","summary":"Upload Organization Secure Vault Files","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["file_ids"],"properties":{"folder":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"f2d1b0c4-8a3e-4c11-9f77-2b6c5e1a90d3","nullable":true,"description":"Public UUID of the folder."},"name":{"type":"string","example":"Other Files","nullable":true,"description":"Folder name."}},"description":"Folder the files were stored in. When no folder is given, files land in the organization's \"Other Files\" folder."},"file_ids":{"type":"array","items":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of a created file."},"description":"Public UUIDs of the created Organization Secure Vault files, in upload order."}},"description":"Result of the upload."}}}}},"description":"Files uploaded successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Folder not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"joi.s3.invalid-file","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"files","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid file type for the attachment. Please submit a valid attachment and do not manually change the file name extension before uploading.","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1}}}}},"description":"Unprocessable entity — a file has an unsupported type or its content does not match its extension."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Uploads one or more files to the Organization Secure Vault root. Files are stored in the organization's \"Other Files\" folder. To upload into a specific folder, use the folder-scoped upload endpoint instead. Upload the file contents to the File Service first, then reference each file here by its `file_id` and `one_time_secret`.\n\n **Token scopes**: `organizations:write`","operationId":"uploadOrganizationSecureVaultFiles-v2026-08-05","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"type":"object","required":["file_id","one_time_secret","original_filename","content_type"],"properties":{"file_id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"File Service file id."},"content_type":{"type":"string","example":"application/pdf","maxLength":255,"description":"MIME type."},"one_time_secret":{"type":"string","example":"a1b2c3d4e5f6","maxLength":1024,"minLength":1,"description":"File Service one-time secret."},"original_filename":{"type":"string","example":"nda.pdf","maxLength":500,"description":"Original filename."}},"additionalProperties":false},"maxItems":20,"minItems":1,"description":"Files previously uploaded to the File Service. Allowed types: pdf, jpg, jpeg, png, doc, docx, csv, xls, xlsx, txt, xml, zip, mov, mp4."}},"description":"The files to attach to the Organization Secure Vault.","additionalProperties":false}},"additionalProperties":false}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/payouts/withdrawals":{"post":{"path":"/rest/payouts/withdrawals","tags":["Payouts"],"method":"post","summary":"Request to withdraw funds","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"ID of the created transaction"},"amount":{"type":"number","example":100,"description":"Amount of the transaction","x-sensitive-employment":true},"currency":{"type":"string","example":"USD","description":"Currency of the transaction","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2021-01-01T00:00:00.000Z","description":"Timestamp of the transaction creation"},"updated_at":{"type":"string","format":"date-time","example":"2021-01-01T00:00:00.000Z","description":"Timestamp of the transaction update"}}}}}}},"description":"Withdrawal successfully initiated"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","description":"Error message"}}}}}}}},"description":"Internal server error"}},"parameters":[],"description":"Initiates a withdrawal of available funds to the employee's configured payout method. The operation is asynchronous; the outcome is delivered via webhook rather than the synchronous response.\n\n **Token scopes**: `worker:write`","operationId":"requestToWithdrawFunds-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["withdrawal_method_id","amount","currency"],"properties":{"amount":{"type":"number","example":100,"description":"Amount to withdraw (must be positive)"},"currency":{"type":"string","example":"USD","description":"Currency code for the withdrawal amount"},"withdrawal_method_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"Id of the withdrawal method to use"}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/contracts/{contract_id}/milestones":{"get":{"path":"/rest/contracts/{contract_id}/milestones","tags":["Milestones"],"method":"get","summary":"Retrieve Milestones by Contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","nullable":false,"required":["id","title","amount","status","created_at","description","reported_by","reviewed_by","approval_requested"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this milestone."},{"type":"integer","format":"int64","description":"Unique identifier of this milestone."}],"example":"12345"},"title":{"type":"string","example":"Initial Design Phase","nullable":false,"description":"The title of the milestone."},"amount":{"type":"string","example":"5000.00","description":"The amount to be paid for completing this milestone."},"status":{"type":"string","example":"Pending Approval","nullable":false,"description":"The current status of the milestone, such as 'Pending Approval', 'Approved', or 'Completed'."},"created_at":{"type":"string","example":"2024-11-26T15:30:00Z","pattern":"^\\d{4}-\\d{2}-\\d{2}([T ]\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})?)?$","nullable":true,"description":"The creation date of the milestone in ISO-8601 format."},"description":{"type":"string","example":"Design the initial prototype of the application.","nullable":false,"description":"A detailed description of the milestone."},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of the reporter."},{"type":"integer","format":"int64","description":"Unique identifier of the reporter."}],"example":"78910"},"full_name":{"type":"string","example":"Jane Smith","nullable":false,"description":"The full name of the person who reported the milestone.","x-sensitive-pii":true}},"description":"Information about the creator of the milestone."},"reviewed_by":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of the reviewer."},{"type":"integer","format":"int64","description":"Unique identifier of the reviewer."}],"example":"112233"},"full_name":{"type":"string","example":"John Doe","nullable":false,"description":"The full name of the person who reviewed the milestone.","x-sensitive-pii":true}},"description":"Information about the person who reviewed the milestone."},"approval_requested":{"type":"boolean","example":true,"description":"Indicates whether approval has been requested for the milestone."}}},"description":"An array of milestone objects associated with the contract."}}},"examples":{"successful":{"value":{"data":[{"id":"00000000-0000-0000-0000-000000000000","title":"Initial Design Phase","amount":"5000.00","status":"Pending Approval","created_at":"2024-11-26T15:30:00Z","description":"Design the initial prototype of the application.","reported_by":{"id":"00000000-0000-0000-0000-000000000000","full_name":"Jane Smith"},"reviewed_by":{"id":"00000000-0000-0000-0000-000000000000","full_name":"John Doe"},"approval_requested":true}]},"summary":"Example response for milestones"}}}},"description":"A list of milestones for the specified contract."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","message":"\"contract_id\" must be a valid identifier"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"\"contract_id\" must be a valid identifier","description":"Human-readable description of the validation error."}}},"description":"Validation errors describing why the contract milestones could not be retrieved."}}}}},"description":"Bad Request - The contract_id parameter failed validation."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"ACCESS_DENIED","message":"Access denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"ACCESS_DENIED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access denied","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why access to the contract milestones was denied."}}}}},"description":"Forbidden - The requesting token does not have access to this organization."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"NOT_FOUND","message":"Not Found. The requested resource could not be found."}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Not Found. The requested resource could not be found.","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the contract could not be found."}}}}},"description":"Not Found - The specified contract does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the contract milestones cannot be retrieved."}}}}},"description":"Internal Server Error - The contract milestones could not be retrieved due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcdefg","required":true,"description":"The unique identifier of the Deel contract for which milestones are being retrieved."}],"description":"Retrieves all milestones associated with a specific contract, including each milestone's title, amount, status, relevant dates, and creator and reviewer information.\n\n **Token scopes**: `milestones:read`","operationId":"getMilestonesByContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["milestones:read"]}]},"post":{"path":"/rest/contracts/{contract_id}/milestones","tags":["Milestones"],"method":"post","summary":"Create a Milestone","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"created":true}},"required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean","example":true,"description":"Indicates whether the milestone was successfully created."}}}}}}},"description":"Milestone created successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","message":"\"data.title\" is required"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"\"data.title\" is required","description":"Human-readable description of the validation or business rule violation."}}},"description":"Validation or business rule errors describing why the milestone could not be created, such as invalid input, an unsupported contract type, or an amount exceeding the allowed maximum."}}}}},"description":"Bad Request - The request payload failed validation or violated a business rule, such as the contract not supporting milestones."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"ACCESS_DENIED","message":"Access denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"ACCESS_DENIED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access denied","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why the milestone could not be created for this contract."}}}}},"description":"Forbidden - The requester does not own this contract."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"NOT_FOUND","message":"Preset not found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Preset not found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why a referenced resource, such as the contract or reporting preset, could not be found."}}}}},"description":"Not Found - The specified contract or an associated resource does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the milestone cannot be created."}}}}},"description":"Internal Server Error - The milestone could not be created due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcdefg","required":true,"description":"The unique identifier of the Deel contract where the milestone will be added."}],"description":"Creates a new payment milestone on a milestone-based contract. After creation, the milestone enters a review workflow before payment is processed.\n\n **Token scopes**: `milestones:write`","operationId":"createMilestone-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","nullable":false,"required":["amount","title","description"],"properties":{"title":{"type":"string","example":"Sprint 2","nullable":false,"description":"The title of the milestone."},"amount":{"oneOf":[{"type":"string","example":"900.00","description":"The amount to be paid for the milestone."},{"type":"number","example":900,"description":"The amount to be paid for the milestone."}]},"description":{"type":"string","example":"Complete all tasks associated with Sprint #2.","nullable":false,"description":"A detailed description of the milestone."}}}}}},"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"type":"object","nullable":false,"required":["amount","title","description"],"properties":{"title":{"type":"string","example":"Sprint 2","nullable":false,"description":"The title of the milestone."},"amount":{"oneOf":[{"type":"string","example":"900.00","description":"The amount to be paid for the milestone."},{"type":"number","example":900,"description":"The amount to be paid for the milestone."}]},"description":{"type":"string","example":"Complete all tasks associated with Sprint #2.","nullable":false,"description":"A detailed description of the milestone."}}},{"type":"object","properties":{"file":{"type":"string","format":"binary","example":"milestone-attachment.pdf","nullable":false,"description":"An optional file to attach to the milestone entry."}},"description":"An optional file attachment for the milestone."}],"example":{"title":"Sprint 2","amount":"900.00","description":"Complete all tasks associated with Sprint #2."},"description":"The milestone object containing the required details to be added to the contract, optionally accompanied by a file attachment."}}}}},"required":true,"description":"The milestone object containing the required details to be added to the contract."},"security":[{"deelToken":[]},{"oauth2":["milestones:write"]}]}},"/accounts-payable/vendor-bills/{vendor_bill_id}/attachments":{"post":{"path":"/rest/accounts-payable/vendor-bills/{vendor_bill_id}/attachments","tags":["Treasury"],"method":"post","summary":"Upload Vendor Bill Attachment","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the uploaded attachment"},"created_at":{"type":"string","format":"date-time","example":"2025-01-15T10:30:00.000Z","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-15T10:30:00.000Z","description":"Last update timestamp"}}}}}}},"description":"File uploaded successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"file","description":"Name of the field causing the error"},"message":{"type":"string","example":"File is required","description":"Human-readable explanation"}}},"example":[{"code":"invalid_parameter","field":"file","message":"File is required"},{"code":"invalid_parameter","field":"file","message":"File size exceeds the 8MB limit"},{"code":"invalid_parameter","field":"file","message":"File type application/octet-stream is not allowed"}]}}}}},"description":"Bad request - validation error"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"vendor_bill_id","description":"Name of the field causing the error"},"message":{"type":"string","example":"Vendor bill with ID 9b9fc43a-a90c-4615-ac50-baf1e314b53e not found","description":"Human-readable explanation"}}},"example":[{"code":"invalid_parameter","field":"vendor_bill_id","message":"Vendor bill with ID 9b9fc43a-a90c-4615-ac50-baf1e314b53e not found"}]}}}}},"description":"Vendor bill not found"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"internal_server_error","description":"Machine-readable error code"},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable explanation"}}},"example":[{"code":"internal_server_error","message":"An unexpected error occurred"}]}}}}},"description":"Internal server error"}},"parameters":[{"in":"path","name":"vendor_bill_id","schema":{"type":"string","format":"uuid","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","description":"Unique identifier of the vendor bill"},"required":true,"description":"Vendor bill id to attach the file to"}],"description":"Attaches a PDF invoice file to an existing vendor bill, submitted as multipart/form-data. The target bill must already exist before this call is made.\n\n **Token scopes**: `treasury-vendorbill:write`","operationId":"uploadVendorBillAttachment-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"file":{"type":"string","format":"binary","example":"invoice.pdf","description":"PDF file to upload (max 8MB)"}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["treasury-vendorbill:write"]}]}},"/ats/candidates/{candidate_id}/tags":{"post":{"path":"/rest/ats/candidates/{candidate_id}/tags","tags":["ATS"],"method":"post","summary":"Create candidate tags","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","tag_id","created_at","candidate_id"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier of the candidate-tag association."},"tag_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier of the tag."},"created_at":{"type":"string","format":"date-time","example":"2026-02-26T12:00:00.000Z","description":"When the association was created."},"candidate_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier of the candidate."}}},"description":"List of created candidate-tag associations."}}}}},"description":"Successfully created"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"candidate_id","schema":{"type":"string","format":"uuid"},"example":"c3d4e5f6-a7b8-9012-cdef-123456789012","required":true,"description":"The unique identifier of the candidate."}],"description":"Replaces all existing tags on a candidate with the provided set of `tag_ids`. This is a full replacement — any tags not included in the request body will be removed.\n\n **Token scopes**: `ats:write`","operationId":"createCandidateTags-v2024-06-12","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["tag_ids"],"properties":{"tag_ids":{"type":"array","items":{"type":"string","format":"uuid"},"minItems":1,"description":"List of tag IDs to associate with the candidate"}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["ats:write"]}]}},"/people/custom_fields/{id}":{"get":{"path":"/rest/people/custom_fields/{id}","tags":["Custom Fields"],"method":"get","summary":"Get custom field from people by id","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"f7b3b3b3-4b3b-4b3b-4b3b-4b3b4b3b4b3b","description":"Custom field id"},"name":{"type":"string","example":"Custom field name","description":"Name of the custom field"},"type":{"oneOf":[{"type":"object","properties":{"name":{"enum":["text","number","date","percentage"],"type":"string","example":"text","description":"Simple types"}}},{"type":"object","properties":{"name":{"enum":["currency"],"type":"string","example":"currency","description":"Currency type"},"currency":{"type":"string","example":"USD","description":"Currency code"},"is_fixed":{"type":"boolean","example":true,"description":"When currency is fixed, only the amount can be edited by the users"}}},{"type":"object","properties":{"name":{"enum":["list","multiselect"],"type":"string","example":"list","description":"List types"},"options":{"type":"array","items":{"type":"string","example":"Option 1"},"description":"List of options for the custom field"}}}]},"settings":{"type":"object","properties":{"access":{"type":"object","properties":{"provided_by":{"type":"array","items":{"enum":["organization","worker"],"type":"string","example":"organization"},"description":"Entities providing access to the custom field"},"is_sensitive":{"type":"boolean","example":true,"description":"Whether the custom field is sensitive"}},"description":"Access settings for the custom field"},"required":{"type":"boolean","example":true,"description":"Whether the custom field is required"},"countries":{"type":"array","items":{"type":"string"},"example":["CA","GB","US"],"description":"Countries for which the custom field is applicable."},"is_enabled":{"type":"boolean","example":true,"description":"Whether the custom field is enabled"},"worker_types":{"type":"array","items":{"enum":["eor","contractor","hris_direct_employee","direct_employee"],"type":"string","example":"eor"},"description":"Worker types for which the custom field is applicable"}}},"placement":{"enum":["profile","contract"],"type":"string","example":"profile","description":"Valid placements for custom field"},"created_at":{"type":"string","format":"date","example":"2022-01-01T00:00:00Z","description":"Creation date of the custom field"},"description":{"type":"string","example":"Custom field description","description":"Description of the custom field"}}}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"f7b3b3b3-4b3b-4b3b-4b3b-4b3b4b3b4b3b","required":true,"description":"Custom field id."}],"description":"\"Retrieves a single person custom field definition by its `id`.\n\n **Token scopes**: `people:read`","operationId":"getCustomFieldFromPeopleById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/workers/compliance-documents":{"get":{"path":"/rest/workers/compliance-documents","tags":["Workers"],"method":"get","summary":"List of worker compliance documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["documents"],"properties":{"documents":{"type":"array","items":{"type":"object","required":["id","name","description","is_optional","required_in_30_days","country","has_template","fillable","filenames","uploaded_at","status","rejection_message","is_acknowledgement_only_document"],"properties":{"id":{"type":"string","format":"uuid","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","description":"Unique identifier for the compliance document requirement."},"name":{"type":"string","example":"Passport or National ID","description":"Display name of the compliance document."},"status":{"enum":["AWAITING_EX_REVIEW","AWAITING_EXTERNAL_REVIEW","REJECTED","APPROVED","ON_HOLD",null],"type":"string","example":"APPROVED","nullable":true,"description":"Review status of the uploaded document, null if no document has been uploaded yet.","x-sensitive-employment":true},"country":{"type":"string","example":"US","nullable":true,"description":"ISO 3166-1 alpha-2 country code where the document is required."},"fillable":{"type":"boolean","example":false,"description":"Whether the document can be filled through the Deel platform."},"filenames":{"type":"array","items":{"type":"string"},"example":["passport_scan.pdf"],"description":"List of uploaded file names. Empty array when no files have been uploaded."},"description":{"type":"string","example":"Please upload a clear copy of your passport or national ID card.","description":"Description of the document requirement. Empty string when no description exists."},"is_optional":{"type":"boolean","example":false,"description":"Whether the document is optional for the worker. Also true when the document is required within 30 days."},"uploaded_at":{"type":"string","format":"date-time","example":"2025-01-05T14:30:00.000Z","nullable":true,"description":"ISO 8601 timestamp when the document was uploaded, null if no document has been uploaded."},"has_template":{"type":"boolean","example":true,"description":"Whether a template is available for this document."},"rejection_message":{"type":"string","example":"Document is not clearly readable","description":"Plain text message explaining why the document was rejected. Empty string when no rejection message exists."},"is_consent_required":{"type":"boolean","example":true,"description":"Whether consent is required for acknowledgement-only documents. Only present when is_acknowledgement_only_document is true."},"required_in_30_days":{"type":"boolean","example":false,"description":"Whether the document is required within 30 days of employment start."},"is_acknowledgement_only_document":{"type":"boolean","example":false,"description":"Whether this document only requires acknowledgement without file upload."}}},"description":"List of compliance documents required for the worker."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code."},"field":{"type":"string","example":"/data/document_id","description":"Name of the field causing the error, if applicable."},"message":{"type":"string","example":"Must have required property 'field'","description":"Human-readable error message."}}}}}}}},"description":"Forbidden. The caller does not have the required profile type (employee or contractor)."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code."},"field":{"type":"string","example":"/data/document_id","description":"Name of the field causing the error, if applicable."},"message":{"type":"string","example":"Must have required property 'field'","description":"Human-readable error message."}}}}}}}},"description":"Internal server error."}},"parameters":[],"description":"Retrieve the list of compliance document requirements for a worker, grouped by country. Returns all required and optional documents with their current submission status. Applicable for both independent contractors and EOR employees.\n\n **Token scopes**: `worker:read`","operationId":"listOfWorkerComplianceDocuments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/accounts-payable/vendor-bills":{"post":{"path":"/rest/accounts-payable/vendor-bills","tags":["Treasury"],"method":"post","summary":"Create Vendor Bill","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","vendor_id","subsidiary_id","amount","subtotal","currency","date","description","due_date","reference","external_id","exchange_rate","is_active","created_at","updated_at","line_items"],"properties":{"id":{"type":"string","format":"uuid","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","description":"Unique identifier for the vendor in the treasury system"},"date":{"type":"string","format":"date","example":"2025-01-15","description":"Invoice/bill date"},"amount":{"type":"number","example":1500,"description":"Total amount including VAT"},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code"},"due_date":{"type":"string","format":"date","example":"2025-02-15","description":"Due date for payment"},"subtotal":{"type":"number","example":1500,"description":"Subtotal amount excluding VAT"},"is_active":{"type":"boolean","example":true,"description":"Whether the vendor bill is active"},"reference":{"type":"string","example":"BF-2025-001","description":"Vendor bill reference"},"vendor_id":{"type":"string","example":"123","description":"Vendor ID"},"created_at":{"type":"string","format":"date-time","example":"2025-01-15T10:30:00Z","description":"Creation timestamp"},"line_items":{"type":"array","items":{"type":"object","required":["id","amount","description","quantity","unit_price","vat_amount","vat_rate","vendor_bill_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"9dd4c31a-7613-477e-bf67-3b56ec8879d9","description":"Unique identifier of the line item"},"amount":{"type":"number","example":1500,"description":"Total amount for this line item"},"quantity":{"type":"number","example":10,"description":"Quantity of items"},"vat_code":{"type":"string","example":"S-GB","nullable":true,"description":"VAT code name"},"vat_rate":{"type":"number","example":0,"description":"VAT rate percentage"},"created_at":{"type":"string","format":"date-time","example":"2025-01-15T10:30:00Z","description":"Creation timestamp"},"unit_price":{"type":"number","example":150,"description":"Price per unit"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-15T10:30:00Z","description":"Last update timestamp"},"vat_amount":{"type":"number","example":0,"description":"VAT amount for this line item"},"description":{"type":"string","example":"Legal consultation services","description":"Description of the line item"},"department_id":{"type":"string","example":"99","nullable":true,"description":"Unique identifier for the Financial department"},"vendor_bill_id":{"type":"string","format":"uuid","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","description":"Reference to parent vendor bill"},"expense_account_id":{"type":"string","example":"250","nullable":true,"description":"Unique identifier for the expense account"}}},"description":"Line items for the vendor bill"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-15T10:30:00Z","description":"Last update timestamp"},"description":{"type":"string","example":"Legal services for Q1 2025","description":"General description of the vendor bill"},"external_id":{"type":"string","example":"brightflag-invoice-12345","description":"External system identifier (e.g., Brightflag ID)"},"exchange_rate":{"type":"number","example":1,"nullable":true,"description":"Exchange rate to USD"},"subsidiary_id":{"type":"string","example":"456","description":"Unique identifier for the Deel legal entity/subsidiary"}}}}}}},"description":"Vendor bill created successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"vendor_id","description":"Name of the field causing the error"},"message":{"type":"string","example":"vendor_id is required","description":"Human-readable explanation"}}},"example":[{"code":"invalid_parameter","field":"vendor_id","message":"vendor_id is required"},{"code":"invalid_parameter","field":"amount","message":"amount must be a positive number"}]}}}}},"description":"Bad request - validation error"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"duplicate_reference","description":"Machine-readable error code"},"field":{"type":"string","example":"reference","description":"Name of the field causing the error"},"message":{"type":"string","example":"Vendor bill with reference BF-2025-001 already exists","description":"Human-readable explanation"}}},"example":[{"code":"duplicate_reference","field":"reference","message":"Vendor bill with reference BF-2025-001 already exists"}]}}}}},"description":"Conflict - duplicate reference"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"internal_server_error","description":"Machine-readable error code"},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable explanation"}}},"example":[{"code":"internal_server_error","message":"An unexpected error occurred"}]}}}}},"description":"Internal server error"}},"parameters":[],"description":"Creates a new vendor bill in accounts payable, associating it with your organization. Attachments can be added to the bill via a subsequent call using the returned id.\n\n **Token scopes**: `treasury-vendorbill:write`","operationId":"createVendorBill-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["vendor_id","subsidiary_id","amount","subtotal","currency","date","description","due_date","reference","external_id","line_items"],"properties":{"date":{"type":"string","format":"date","example":"2025-01-15","description":"Invoice/bill date"},"amount":{"type":"number","example":1500,"description":"Total amount including VAT"},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"ISO 4217 currency code"},"due_date":{"type":"string","format":"date","example":"2025-02-15","description":"Due date for payment"},"subtotal":{"type":"number","example":1500,"description":"Subtotal amount excluding VAT"},"reference":{"type":"string","example":"BF-2025-001","maxLength":100,"minLength":1,"description":"Vendor bill reference"},"vendor_id":{"type":"string","example":"123","minimum":1,"description":"Unique identifier for the Vendor"},"line_items":{"type":"array","items":{"type":"object","required":["amount","description","quantity","unit_price","vat_rate"],"properties":{"amount":{"type":"number","example":1500,"description":"Total amount for this line item"},"quantity":{"type":"number","example":10,"description":"Quantity of items"},"vat_code":{"type":"string","example":"S-GB","description":"VAT Code name"},"vat_rate":{"type":"number","example":0,"minimum":0,"description":"VAT rate percentage"},"unit_price":{"type":"number","example":150,"description":"Price per unit"},"vat_amount":{"type":"number","example":0,"description":"VAT amount for this line item"},"description":{"type":"string","example":"Legal consultation services","minLength":1,"description":"Description of the line item"},"department_id":{"type":"string","example":"99","minimum":1,"description":"Unique Identifier for the Financial department"},"expense_account_id":{"type":"string","example":"250","minimum":1,"description":"Unique Identifier for the Expense account"}}},"minItems":1,"description":"Line items for the vendor bill"},"description":{"type":"string","example":"Legal services for Q1 2025","minLength":1,"description":"General description of the vendor bill"},"external_id":{"type":"string","example":"brightflag-invoice-12345","minLength":1,"description":"External system identifier (e.g., Brightflag ID)"},"subsidiary_id":{"type":"string","example":"456","minimum":1,"description":"Unique identifier for the Deel legal entity/subsidiary"}}}}}}},"required":true,"description":"Create vendor bills from external invoice provider data"},"security":[{"deelToken":[]},{"oauth2":["treasury-vendorbill:write"]}]}},"/time_tracking/shift_rates/{external_id}":{"delete":{"path":"/rest/time_tracking/shift_rates/{external_id}","tags":["Time Tracking Rates"],"method":"delete","summary":"Delete a Shift Rate by external ID","responses":{"204":{"description":"Successfully deleted"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"example":{"error":"Shift rate not found."}}},"description":"Shift rate with the given external ID not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"external_id","schema":{"type":"string"},"example":"external_id1","required":true,"description":"external ID"}],"description":"Deletes a shift rate identified by its external_id, which is the custom identifier assigned at creation time. Deletion is blocked if the shift rate is currently associated with any active shift.\n\n **Token scopes**: `time-tracking:write`","operationId":"deleteAShiftRateByExternalId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]},"patch":{"path":"/rest/time_tracking/shift_rates/{external_id}","tags":["Time Tracking Rates"],"method":"patch","summary":"Update a shift rate","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"name":"dcba","type":"MULTIPLIER_PERCENTAGE","value":80.2,"created_at":"2024-10-17T10:48:20.314Z","updated_at":"2024-11-01T12:08:25.731Z","external_id":"12345678g"}},"properties":{"data":{"type":"object","properties":{"name":{"type":"string","example":"abcd","description":"The updated name of the shift rate."},"type":{"type":"string","example":"MULTIPLIER_PERCENTAGE","description":"The type of shift rate, e.g., MULTIPLIER_PERCENTAGE."},"value":{"type":"number","example":80.2,"description":"The updated value of the shift rate."},"created_at":{"type":"string","format":"date-time","example":"2024-11-01T12:08:25.731Z","description":"The timestamp when the shift rate was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-11-01T12:08:25.731Z","description":"The timestamp when the shift rate was last updated."},"external_id":{"type":"string","example":"abcd","description":"The unique identifier of the updated shift rate."}}}}}}},"description":"Shift rate updated successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"error":{"message":"Invalid payload"}},"properties":{"error":{"type":"object","properties":{"message":{"type":"string","description":"Description of the error."}}}}}}},"description":"Invalid request payload"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"external_id","schema":{"type":"string"},"example":"12345678g","required":true,"description":"Unique identifier of the shift rate to be updated."}],"description":"Applies a partial update to an existing shift rate, modifying only the fields provided in the request body.\n\n **Token scopes**: `time-tracking:write`","operationId":"updateAShiftRate-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"name":{"type":"string","example":"dcba","description":"The updated name of the shift rate."},"type":{"enum":["MULTIPLIER_PERCENTAGE","PER_HOUR_FLAT_RATE","PER_UNIT_FLAT_RATE"],"example":"MULTIPLIER_PERCENTAGE","description":"The updated type of shift rate."},"value":{"type":"number","example":80.2,"description":"The updated value of the shift rate."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]},"get":{"path":"/rest/time_tracking/shift_rates/{external_id}","tags":["Time Tracking Rates"],"method":"get","summary":"Retrieve a Shift Rate by External ID","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"name":{"type":"string","example":"Night Shift Bonus","description":"The name of the shift rate."},"type":{"type":"string","example":"MULTIPLIER_PERCENTAGE","description":"The type of the shift rate (e.g., MULTIPLIER_PERCENTAGE or FLAT_RATE)."},"value":{"type":"number","example":80.2,"description":"The value of the shift rate."},"external_id":{"type":"string","example":"rate-1234","description":"The unique external identifier of the shift rate."}}}}},"example":{"data":{"name":"Night Shift Bonus","type":"MULTIPLIER_PERCENTAGE","value":80.2,"external_id":"rate-1234"}}}},"description":"Shift rate retrieved successfully."},"400":{"content":{"application/json":{"example":{"error":"Invalid external ID format."}}},"description":"Invalid external ID provided or the request is malformed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"example":{"error":"Shift rate not found."}}},"description":"Shift rate with the given external ID not found."},"500":{"content":{"application/json":{"example":{"error":"An unexpected error occurred. Please try again later."}}},"description":"Internal server error occurred while retrieving the shift rate."}},"parameters":[{"in":"path","name":"external_id","schema":{"type":"string"},"example":"external_id1","required":true,"description":"The unique external identifier of the shift rate to retrieve."}],"description":"Retrieves a shift rate.\n\n **Token scopes**: `time-tracking:read`","operationId":"retrieveAShiftRateByExternalId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]}},"/hris/organization_structures":{"get":{"path":"/rest/hris/organization_structures","tags":["Organization structure"],"method":"get","summary":"Get Organization Structure","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The unique identifier of the Org Structure."},"name":{"type":"string","example":"Engineering","description":"The name of the Org Structure."},"type":{"type":"string","example":"department","description":"The type of the Org Structure."},"roles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"85b54219-8456-4072-bee8-71e2d88452fa","description":"The unique identifier of the Role."},"name":{"type":"string","example":"Software Engineer","description":"The name of the Role."}}}},"teams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"ba46af84-2f15-42f3-b171-d7d9e0abb274","description":"The unique identifier of the Team."},"name":{"type":"string","example":"Software Engineer","description":"The name of the Team."},"parent":{"type":"string","example":"Business","nullable":true,"description":"The name of the parent Org Structure."},"children":{"type":"array","items":{"type":"object"}},"created_at":{"type":"string","format":"date-time","example":"2023-10-01T12:00:00Z","description":"The date and time when the Org Structure was created."},"name_route":{"type":"string","example":"software-engineer","nullable":true,"description":"The route name of the Team."},"external_id":{"type":"string","example":"ba46af84-2f15-42f3-b171-d7d9e0abb274","nullable":true,"description":"The external identifier of the Team."}}}},"created_at":{"type":"string","format":"date-time","example":"2023-10-01T12:00:00Z","description":"The date and time when the Org Structure was created."},"external_id":{"type":"string","example":"engineering","nullable":true,"description":"The external identifier of the Org Structure."},"teams_count":{"type":"integer","example":3,"description":"The number of Teams in the Org Structure."},"enable_roles":{"type":"boolean","example":true,"description":"Whether the Org Structure has Roles enabled."},"is_multiselect":{"type":"boolean","example":false,"description":"Whether the Org Structure is multiselect."}}}}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"offset","schema":{"type":"number","format":"int64","default":0,"maximum":999999999,"minimum":0},"description":"Return a page of results with given number of records."},{"in":"query","name":"limit","schema":{"type":"number","maximum":200,"minimum":1},"description":"Return a page of results with given number of records."}],"description":"Returns the organization's hierarchical structure, including departments and teams, with offset-based pagination.\n\n **Token scopes**: `organizations:read`","operationId":"getAllOrgStructures-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"post":{"path":"/rest/hris/organization_structures","tags":["Organization structure"],"method":"post","summary":"Create a new HRIS Organization Structure.","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The unique identifier of the organization structure."},"name":{"type":"string","example":"Engineering","description":"The name of the organization structure."},"type":{"type":"string","example":"team","description":"The type of the organization structure."},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"The date and time when the organization structure was created."},"updated_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"The date and time when the organization structure was last updated."},"external_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0853","description":"The external identifier of the organization structure."},"enable_roles":{"type":"boolean","example":true,"description":"Whether roles are enabled for the organization structure."},"is_multi_select":{"type":"boolean","example":true,"description":"Whether multiple selection is enabled for the organization structure."},"organization_id":{"type":"integer","example":1,"description":"The unique identifier of the organization."}}}}}}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Creates a new organization structure within the HRIS, returning the created record including its assigned `id` and `organization_id`. The `is_multi_select` and `enable_roles` flags on the request body control whether the structure supports multiple team assignments and role management respectively.\n\n **Token scopes**: `organizations:write`","operationId":"createANewHrisOrganizationStructure-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"name":{"type":"string","example":"Engineering","description":"The name of the organization structure."},"teams":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Engineering","description":"The name of the team."},"external_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0853","description":"The external identifier of the team."}}}},"external_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0853","description":"The external identifier of the organization structure."},"enable_roles":{"type":"boolean","default":true,"example":true,"description":"Whether roles are enabled for the organization structure."},"is_multiple_select":{"type":"boolean","default":true,"example":true,"description":"Whether multiple selection is enabled for the organization structure."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/people/{worker_id}/custom_fields":{"get":{"path":"/rest/people/{worker_id}/custom_fields","tags":["Custom Fields"],"method":"get","summary":"Retrieve custom fields for a worker","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","type","data"],"properties":{"id":{"type":"string","format":"uuid","description":"UUID for the custom field value"},"data":{"anyOf":[{"type":"object","properties":{"value":{"type":"string"}},"description":"Text type"},{"type":"object","properties":{"value":{"type":"number"}},"description":"Number type"},{"type":"object","properties":{"value":{"type":"string","format":"date","example":"2021-01-01"}},"description":"Date type: YYYY-MM-DD"},{"type":"object","properties":{"text":{"type":"string","example":"10%"},"value":{"type":"number"}},"description":"Percentage type"},{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string","example":["USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","SEK","NZD","BRL"],"description":"The currency code in ISO 4217 format"}},"description":"Currency type"},{"type":"object","properties":{"option":{"type":"string"}},"description":"List type"},{"type":"object","properties":{"options":{"type":"array","items":{"type":"string"},"uniqueItems":true}},"description":"Multiselect type"}]},"name":{"type":"string","description":"Name of the custom field"},"type":{"enum":["text","number","currency","date","percentage","list","multiselect"],"type":"string","description":"Type of the custom field"}}}}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Worker id."}],"description":"Returns all custom field values currently set for the specified worker.\n\n **Token scopes**: `people:read`","operationId":"retrieveCustomFieldsForAWorker-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:read"]}]},"put":{"path":"/rest/people/{worker_id}/custom_fields","tags":["Custom Fields"],"method":"put","summary":"Update custom field value","responses":{"200":{"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"description":"Not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Worker id."}],"description":"Creates or updates a custom field value for a worker; if a value for the specified field already exists it is overwritten.\n\n **Token scopes**: `people:write`","operationId":"UpsertCustomFieldValueFromWorker-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","data"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"UUID for the custom field value"},"data":{"anyOf":[{"type":"object","properties":{"value":{"type":"string","example":"Some text","description":"Text type"}},"description":"Text type"},{"type":"object","properties":{"value":{"type":"number","example":123,"description":"Number type"}},"description":"Number type"},{"type":"object","properties":{"value":{"type":"string","format":"date","example":"2021-01-01","description":"Date type: YYYY-MM-DD"}},"description":"Date type: YYYY-MM-DD"},{"type":"object","properties":{"value":{"type":"number","example":1,"description":"Percentage type"}},"description":"Percentage type"},{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string","example":["USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","SEK","NZD","BRL"],"pattern":"^[A-Z]{3}$","description":"Important: When currency type is fixed, the currency field is ignored. "}},"description":"Currency type"},{"type":"object","properties":{"option":{"type":"string","example":"Option 1","description":"Option type"}},"description":"List type"},{"type":"object","properties":{"options":{"type":"array","items":{"type":"string","example":["Option 1","Option 2","Option 3"],"description":"Multiselect type"},"uniqueItems":true}},"description":"Multiselect type"}]}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/eor/workers/{worker_id}/payslips/{payslip_id}/download":{"get":{"path":"/rest/eor/workers/{worker_id}/payslips/{payslip_id}/download","tags":["EOR"],"method":"get","summary":"Retrieve payslip PDF download link","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url"],"properties":{"url":{"type":"string","description":"The URL to download the payslip PDF."}}}}},"examples":{"success":{"value":{"data":{"url":"https://example.com/payslip/pay-001/download"}},"summary":"Example of a successful response."}}}},"description":"Successfully retrieved the payslip download link."},"400":{"content":{"application/json":{"examples":{"invalidParameters":{"value":{"error":"The provided worker ID or payslip ID is invalid. Please check the format."},"summary":"Invalid parameters."}}}},"description":"Invalid request. Either the worker ID or payslip ID is malformed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"examples":{"notFound":{"value":{"error":"No payslip found for the specified worker ID and payslip ID."},"summary":"Payslip not found."}}}},"description":"Payslip not found. The specified worker ID or payslip ID does not match any records."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Unique identifier for the worker."},"required":true,"description":"The ID of the worker whose payslip download link is being requested."},{"in":"path","name":"payslip_id","schema":{"type":"string","example":"pay-001","description":"Unique identifier for the payslip."},"required":true,"description":"The ID of the specific payslip to download."}],"description":"Returns a URL for downloading the specified payslip as a PDF.\n\n **Token scopes**: `payslips:read`","operationId":"getEORWorkerPayslipDownloadUrl-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["payslips:read"]}]}},"/managers/magic-links":{"post":{"path":"/rest/managers/magic-links","tags":["Managers"],"method":"post","summary":"Generate magic link for manager login","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created_at","magic_link","expires_at"],"properties":{"created_at":{"type":"string","format":"date-time","example":"2025-07-06T19:46:54.000Z","description":"When the magic link was created (ISO 8601 format)"},"expires_at":{"type":"string","format":"date-time","example":"2025-07-06T19:51:54.000Z","description":"When the magic link expires (ISO 8601 format)"},"magic_link":{"type":"string","example":"https://app.deel.com/login/session?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ3b3JrZXJJZCI6IjEzNDI1NTEi...","description":"The magic link URL that managers can click to log in to Deel automatically"}}}}}}},"description":"Magic link generated successfully"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"unauthorized","description":"Machine-readable error code"},"message":{"type":"string","example":"Unauthorized call: invalid token","description":"Human-readable error message"}}}}}}}},"description":"Unauthorized - Invalid or missing authentication token"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden","description":"Machine-readable error code"},"message":{"type":"string","example":"Insufficient permissions","description":"Human-readable error message"}}}}}}}},"description":"Forbidden - Not allowed to generate magic link for this manager"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"Manager not found","description":"Human-readable error message"}}}}}}}},"description":"Not Found - Manager does not exist or is not in organization"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"internal_server_error","description":"Machine-readable error code"},"message":{"type":"string","example":"Token generation failed","description":"Human-readable error message"}}}}}}}},"description":"Internal Server Error"}},"parameters":[],"description":"Generates a single-use magic link that authenticates a manager into the platform without credentials. The target manager must belong to the requesting organization and cannot be an organization admin; this operation is restricted to White Label–enabled organizations, Partners, and Child organizations. The link expires 5 minutes after creation.\n\n **Token scopes**: `auth:write`","operationId":"generateMagicLinkForManagerLogin-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["manager_id"],"properties":{"manager_id":{"type":"string","format":"uuid","example":"882cc059-6126-4279-8adc-629d4c876597","maxLength":100,"description":"Manager id."},"redirect_path":{"type":"string","example":"/dashboard/team","maxLength":1000,"description":"Optional path to redirect the manager to after login. Must start with /."}}}}}}},"required":true,"description":"Details for magic link for managers generation."},"security":[{"deelToken":[]},{"oauth2":["auth:write"]}]}},"/invoice-adjustments":{"get":{"path":"/rest/invoice-adjustments","tags":["Invoices"],"method":"get","summary":"List invoice adjustments","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","status","description","created_at","currency_code","quantity","total_amount","contract","worksheet","reported_by","reviewed_by","payment_cycle","attachment"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true,"description":"Unique identifier of this invoice adjustment."},"type":{"enum":["accrued_holiday","additional_fee","allowance","bonus","commission","deduction","deposit","deposit_refund","employer_cost","expense","health_allowance","health_benefit","health_insurance_fee","legal_fee","management_fee","milestone","offcycle","other","overtime","pension","pro_rata","setup_fee","severance","shield_service","signing_bonus","signing_bonus_employer_cost","refund","task","time_off","vat","withholding_tax","work"],"type":"string","example":"bonus","description":"Type of invoice adjustment."},"scale":{"type":"string","example":"hourly","nullable":true,"description":"Predefined scale used to calculate the adjustment amount."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","example":"approved","nullable":true,"description":"Current processing status of the invoice adjustment."},"contract":{"type":"object","required":["id","title","type"],"properties":{"id":{"type":"string","example":"contract_123","description":"Unique identifier of the contract."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"time_based","description":"Type of the contract."},"title":{"type":"string","example":"Senior Backend Engineer","description":"Human-readable contract title."}},"description":"Contract associated with this invoice adjustment."},"quantity":{"type":"number","example":8,"nullable":true,"description":"Quantity used to calculate the total amount."},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","example":5,"description":"Number of days reported."},"hours":{"type":"number","example":40,"description":"Number of hours reported."},"weeks":{"type":"number","example":1,"description":"Number of weeks reported."},"minutes":{"type":"number","example":0,"description":"Number of minutes reported."}},"description":"Breakdown of time used for time-based calculations."},"attachment":{"type":"object","nullable":true,"required":["filename","key"],"properties":{"key":{"type":"string","example":"attachments/receipt_123.pdf","description":"Storage key returned from the attachments endpoint, can be used as a unique identifier for the file"},"filename":{"type":"string","example":"receipt.pdf","description":"Original filename of the uploaded attachment, download link can be found on the individual invoice adjustment endpoint"}},"description":"File attachment linked to the invoice adjustment."},"created_at":{"type":"string","format":"date-time","example":"2025-12-19T10:30:00Z","nullable":false,"description":"Timestamp when the adjustment was created (ISO-8601)."},"invoice_id":{"type":"number","example":102938,"nullable":true,"description":"Identifier of the generated invoice this adjustment belongs to."},"description":{"type":"string","example":"Performance bonus for September","nullable":true,"description":"Human-readable explanation of the invoice adjustment."},"reported_by":{"type":"object","required":["id"],"properties":{"id":{"oneOf":[{"type":"string"},{"type":"integer","format":"int64"}],"example":"user_456","description":"Unique identifier of the reporting user."},"full_name":{"type":"string","example":"John Doe","description":"Full name of the reporting user.","x-sensitive-pii":true}},"description":"User who reported the invoice adjustment."},"reviewed_by":{"type":"object","nullable":true,"required":["id","reviewed_at","remarks"],"properties":{"id":{"oneOf":[{"type":"string"},{"type":"integer","format":"int64"}],"example":"admin_789","description":"Unique identifier of the reviewer."},"remarks":{"type":"string","example":"Approved after verification","nullable":true,"description":"Reviewer remarks or decision notes."},"full_name":{"type":"string","example":"Jane Smith","description":"Full name of the reviewer.","x-sensitive-pii":true},"reviewed_at":{"type":"string","example":"2025-12-19T11:00:00Z","nullable":true,"description":"Timestamp when the review occurred."}},"description":"Reviewer information if the adjustment has been reviewed."},"custom_scale":{"type":"string","example":"night_shift","nullable":true,"description":"Custom scale label defined by the client."},"total_amount":{"type":"string","example":"200.00","nullable":false,"description":"Total monetary value of the invoice adjustment."},"currency_code":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"ISO 4217 currency code used for the amount."},"payment_cycle":{"type":"object","nullable":false,"properties":{"end":{"type":"string","format":"date-time","example":"2025-12-31T23:59:59Z","nullable":true,"description":"End date of the payment cycle."},"start":{"type":"string","format":"date-time","example":"2025-12-01T00:00:00Z","nullable":true,"description":"Start date of the payment cycle."}},"description":"Payment cycle associated with this adjustment."},"date_submitted":{"type":"string","format":"date-time","example":"2025-12-18T09:15:00Z","nullable":true,"description":"Timestamp when the adjustment was submitted for review."},"hourlyReportPreset":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"aabbccdd-eeff-0011-2233-445566778899","description":"Id of assigned preset"},"rate":{"type":"number","example":"Preset rate","nullable":true,"description":"Assigned preset rate"},"title":{"type":"string","example":"Preset name","description":"Description of assigned preset"}}}}},"description":"List of invoice adjustments returned for the request."},"page":{"type":"object","required":["total_rows","items_per_page","offset"],"properties":{"offset":{"type":"number","example":0,"maximum":999999999,"minimum":0,"description":"Index of the first record in the current page."},"total_rows":{"type":"number","example":120,"description":"Total number of records available."},"items_per_page":{"type":"number","example":20,"maximum":100,"minimum":1,"description":"Number of records returned per page."}},"description":"Pagination metadata for the response."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","example":"Limit cannot be bigger than 100"}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"contract_id","schema":{"type":"string"},"example":"string","description":"Id of an Deel contract."},{"in":"query","name":"contract_types","schema":{"type":"array","items":{"enum":["ongoing_time_based","pay_as_you_go_time_based","payg_milestones","payg_tasks"],"type":"string","description":"Type of a contract"},"description":"List of contract types"},"example":"milestones","description":"types of contracts to filter"},{"in":"query","name":"types","schema":{"type":"array","items":{"enum":["accrued_holiday","additional_fee","allowance","bonus","commission","deduction","deposit","deposit_refund","employer_cost","expense","health_allowance","health_benefit","health_insurance_fee","legal_fee","management_fee","milestone","offcycle","other","overtime","pension","pro_rata","setup_fee","severance","shield_service","signing_bonus","signing_bonus_employer_cost","refund","task","time_off","vat","withholding_tax","work"],"type":"string","description":"Type of invoice adjustment."}},"example":"milestone","description":"types of invoice adjustments to filter"},{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"status of invoice adjustment"}},"example":"approved","description":"statuses of invoice adjustment to filter"},{"in":"query","name":"invoice_id","schema":{"type":"string"},"example":"string","description":"ID of an existing invoice"},{"in":"query","name":"reporter_id","schema":{"type":"string","format":"uuid"},"example":"string","description":"ID of an existing profile"},{"in":"query","name":"date_from","schema":{"type":"string","format":"date","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example 2022-12-31."},"example":"2022-12-31","description":"To get invoice adjustments submitted on or after given start date (inclusive). Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},{"in":"query","name":"date_to","schema":{"type":"string","format":"date","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example 2022-12-31."},"example":"2022-12-31","description":"To get invoice adjustments submitted before given end date (excludes records submitted on this date). Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},{"in":"query","name":"limit","schema":{"type":"string","pattern":"^[1-9][0-9]?$|^100$"},"example":"20","description":"Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings"},{"in":"query","name":"offset","schema":{"type":"string"},"example":"1","description":"Return a page of results after given index of row; NOTE: technically ALL query parameters are strings or array of strings"}],"description":"Returns invoice adjustments, optionally filtered by contract, adjustment type, status, invoice, reporter, or submission date range.\n\n **Token scopes**: `invoice-adjustments:read`","operationId":"listInvoiceAdjustments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:read"]}]},"post":{"path":"/rest/invoice-adjustments","tags":["Invoices"],"method":"post","summary":"Create an invoice adjustment","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"id":"abcdef01-2345-6789-abcd-ef0123456789","status":"approved","created":true,"created_at":"2026-06-29T14:22:08.512Z"},"required":["created"],"properties":{"id":{"oneOf":[{"type":"string","example":"abcdef01-2345-6789-abcd-ef0123456789","description":"UUID identifier variant returned when the invoice adjustment is stored under a string-based primary key."},{"type":"integer","format":"int64","example":8472193,"description":"Numeric identifier variant returned when the invoice adjustment is stored under a legacy integer primary key."}],"example":"abcdef01-2345-6789-abcd-ef0123456789","description":"Unique identifier returned for the created invoice adjustment resource after persistence succeeds."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","example":"approved","nullable":true,"description":"Current processing status assigned to the invoice adjustment after the create workflow finishes executing."},"created":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the invoice adjustment record was successfully created by this request."},"created_at":{"type":"string","format":"date-time","example":"2026-06-29T14:22:08.512Z","nullable":true,"description":"ISO-8601 timestamp recording the exact moment the invoice adjustment was created in the system."}},"description":"Container object with identifiers, status, and creation metadata for the newly created invoice adjustment."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"message":"\"data.contract_id\" is required"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Optional machine-readable error code returned by the upstream service when available."},"message":{"type":"string","example":"\"data.contract_id\" is required","description":"Human-readable description of the validation or business rule violation."}}},"description":"Validation or business rule errors describing why the invoice adjustment could not be created."}}}}},"description":"Bad Request - The request payload failed validation or violated a business rule for invoice adjustments."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"UPSTREAM_GENERIC_ERROR","message":"Something went wrong"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"UPSTREAM_GENERIC_ERROR","description":"Stable machine-readable error code identifying the upstream or internal failure category."},"message":{"type":"string","example":"Something went wrong","description":"Human-readable error message describing the unexpected condition that prevented completing the request."}}},"description":"Generic upstream or internal errors emitted when the invoice adjustment cannot be processed."}}}}},"description":"Internal Server Error - The invoice adjustment could not be created due to an unexpected upstream or internal failure."}},"parameters":[{"in":"query","name":"recurring","schema":{"type":"string"},"example":"true","required":false,"description":"Add this invoice adjustment as recurring"}],"description":"Creates an invoice adjustment — such as a bonus, commission, VAT percentage, or deduction — against a contract. Pass the `recurring` query parameter to apply the adjustment automatically to future invoices.\n\n **Token scopes**: `invoice-adjustments:write`, `worker:write`","operationId":"createAnInvoiceAdjustment-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"type":"bonus","amount":1500,"group_key":"bonus-batch-2026-q2","contract_id":"37nex2x","description":"Q2 2026 performance bonus for exceeding sprint delivery targets.","date_submitted":"2026-06-29","paymentCycleId":"11223344-5566-4778-8899-aabbccddeeff","is_auto_approved":true,"hourly_report_preset_id":"aabbccdd-eeff-0011-2233-445566778899"},"required":["contract_id","date_submitted","type","description","amount"],"properties":{"type":{"enum":["bonus","commission","deduction","expense","other","overtime","time_off","vat"],"type":"string","example":"bonus","description":"Invoice adjustment category that determines business rules and downstream invoicing behavior."},"amount":{"type":"number","example":1500,"minimum":0,"nullable":false,"description":"Monetary amount to apply for this invoice adjustment, expressed in the contract currency as a positive number."},"group_key":{"type":"string","example":"bonus-batch-2026-q2","nullable":true,"maxLength":300,"description":"When provided, invoice adjustments sharing the same group_key within the same payment cycle are merged into a single aggregated line item on the invoice. Requires is_auto_approved to be true."},"contract_id":{"type":"string","example":"37nex2x","nullable":false,"description":"Unique Deel contract identifier (public id) that receives this invoice adjustment line item."},"description":{"type":"string","example":"Q2 2026 performance bonus for exceeding sprint delivery targets.","maxLength":30000,"description":"Detailed human-readable explanation that appears on invoices and audit records visible to both parties."},"date_submitted":{"type":"string","format":"date","example":"2026-06-29","description":"Submission date in ISO-8601 short-date format (YYYY-MM-DD) used for filtering, reporting, and approvals."},"paymentCycleId":{"type":"string","format":"uuid","example":"11223344-5566-4778-8899-aabbccddeeff","nullable":true,"description":"Public id (UUID) of the active payment cycle required when creating VAT-related invoice adjustment entries against a specific cycle."},"is_auto_approved":{"type":"boolean","example":true,"description":"When true, the created invoice adjustment skips manual approval and is approved immediately on creation."},"hourly_report_preset_id":{"type":"string","format":"uuid","example":"aabbccdd-eeff-0011-2233-445566778899","nullable":true,"description":"Identifier of an existing hourly report preset used to link standardized rate and scale metadata to this entry."}},"description":"Payload attributes required to create one invoice adjustment with optional approval, preset, and grouping metadata."}}}},"multipart/form-data":{"schema":{"allOf":[{"type":"object","required":["contract_id","date_submitted","type","description","amount"],"properties":{"type":{"enum":["bonus","commission","deduction","expense","other","overtime","time_off","vat"],"type":"string","example":"expense","description":"Invoice adjustment category selected when submitting a multipart payload that includes a supporting receipt attachment."},"amount":{"type":"number","example":87.5,"minimum":0,"nullable":false,"description":"Monetary amount to apply for this multipart invoice adjustment submission, expressed in the contract currency."},"group_key":{"type":"string","example":"expense-batch-2026-q2","nullable":true,"maxLength":300,"description":"When provided, invoice adjustments sharing the same group_key within the same payment cycle are merged into a single aggregated line item on the invoice. Requires is_auto_approved to be true."},"contract_id":{"type":"string","example":"37nex2x","nullable":false,"description":"Unique Deel contract identifier (public id) that receives this multipart invoice adjustment entry."},"description":{"type":"string","example":"Client lunch reimbursement on 2026-06-25, receipt attached as PDF.","maxLength":30000,"description":"Detailed narrative describing why this multipart invoice adjustment is being requested and what evidence is attached."},"date_submitted":{"type":"string","format":"date","example":"2026-06-29","description":"Submission date in ISO-8601 short-date format (YYYY-MM-DD) for this multipart invoice adjustment."},"paymentCycleId":{"type":"string","format":"uuid","example":"11223344-5566-4778-8899-aabbccddeeff","nullable":true,"description":"Public id (UUID) of the active payment cycle required when the multipart payload creates a VAT invoice adjustment entry."},"is_auto_approved":{"type":"boolean","example":false,"description":"When true, this multipart invoice adjustment is approved automatically without requiring any reviewer action."}},"description":"Multipart payload fields used to create an invoice adjustment with optional grouping behavior and an attached supporting file."},{"type":"object","properties":{"file":{"type":"string","format":"binary","example":"client-lunch-receipt-2026-06-25.pdf","nullable":false,"description":"Binary file attachment (receipt, invoice, or supporting document) submitted alongside this invoice adjustment."}},"description":"Wrapper object holding the binary file uploaded together with the multipart invoice adjustment fields."}]}}},"required":true,"description":"InvoiceAdjustment object that needs to be created"},"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write","worker:write"]}]}},"/gp/workers/{worker_id}/compensation":{"patch":{"path":"/rest/gp/workers/{worker_id}/compensation","tags":["Global Payroll"],"method":"patch","summary":"Update compensation","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"scale":{"enum":["YEAR","MONTH","HOUR"],"type":"string","example":"YEAR","description":"The scale to which a given salary applies."},"salary":{"type":"string","example":"50000","description":"Compensation salary."},"status":{"enum":["ACTIVE","UPCOMING","OUTDATED"],"type":"string","example":"ACTIVE","description":"The status of a salary amendment."},"effective_date":{"type":"string","format":"date","example":"1999-12-31","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for a worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for a worker in UUID format."}],"description":"Updates the compensation for the GP employee and returns the complete compensation history including the applied change.\n\n **Token scopes**: `people:write`","operationId":"updateCompensation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["scale","salary","effective_date"],"properties":{"scale":{"enum":["YEAR","MONTH","HOUR"],"type":"string","example":"YEAR","nullable":false,"description":"The scale to which a given salary applies."},"salary":{"type":"number","example":50000,"nullable":false,"description":"Compensation salary."},"effective_date":{"type":"string","format":"date","example":"1999-12-31","nullable":false,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}}}}}},"required":true,"description":"Request body containing the data to update the compensation of the employee."},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/legal-entities/{legal_entity_id}/registration-documents/{document_id}":{"put":{"path":"/rest/legal-entities/{legal_entity_id}/registration-documents/{document_id}","tags":["Documents"],"method":"put","summary":"Update Legal Entity Registration Document Files","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"parent":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the superseded submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"REJECTED","description":"Status of the superseded submission."}},"description":"The submission this one replaced, when it is a resubmission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"children":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."}}},"description":"Superseded revisions of this submission, newest first."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"requirement":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the requirement."},"name":{"type":"string","example":"Certificate of Incorporation","nullable":true,"description":"Requirement name."},"description":{"type":"string","example":"A copy of the certificate issued at registration.","nullable":true,"description":"What the requirement asks for."},"is_disabled":{"type":"boolean","example":false,"description":"Whether the requirement is no longer requested."},"has_template":{"type":"boolean","example":false,"description":"Whether a template is provided. Fetch it from the requirement template endpoint."},"product_type":{"enum":["EMBEDDED_PAYROLL","GLOBAL_PAYROLL","PEO"],"type":"string","example":"GLOBAL_PAYROLL","nullable":true,"description":"Product the requirement applies to."},"applicable_at":{"enum":["BEFORE_FIRST_PAYROLL","ANYTIME"],"type":"string","example":"BEFORE_FIRST_PAYROLL","nullable":true,"description":"When the document becomes due."},"reference_url":{"type":"string","example":"https://example.gov/certificates","nullable":true,"description":"External reference for the requirement."},"is_approval_required":{"type":"boolean","example":true,"description":"Whether a submission against this requirement is reviewed. False means a submission is accepted immediately as COMPLETED."},"is_submission_required":{"type":"boolean","example":true,"description":"Whether the document is mandatory rather than optional."},"how_the_document_is_used":{"enum":["PAYROLL_PURPOSE","ENTITY_ONBOARDING"],"type":"string","example":"PAYROLL_PURPOSE","nullable":true,"description":"How the document is used once submitted."},"why_the_document_is_needed":{"type":"string","example":"Required to register the entity for payroll.","nullable":true,"description":"Why the document is required."},"how_client_obtains_document":{"type":"string","example":"Download it from the companies registry.","nullable":true,"description":"How to obtain it."}},"description":"The document requirement this submission answers."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"legal_entity":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the legal entity."},"name":{"type":"string","example":"Acme BV","nullable":true,"description":"Legal entity name."},"country":{"type":"string","example":"NL","nullable":true,"description":"ISO country code of the entity address."}},"description":"The legal entity the document belongs to."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."},"submission_due_date":{"type":"string","format":"date-time","example":"2026-09-30T00:00:00.000Z","nullable":true,"description":"When the document is due."},"archived_submissions_count":{"type":"integer","example":2,"minimum":0,"description":"How many superseded revisions exist."}}}}}}},"description":"Document resubmitted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Submission not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"joi.s3.invalid-file","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid file type for the attachment. Please submit a valid attachment and do not manually change the file name extension before uploading.","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1}}}}},"description":"Unprocessable entity — a file has an unsupported type or its content does not match its extension."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the legal entity."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the document submission."}],"description":"Replaces the files on a legal entity document with newly uploaded ones, typically after the document was rejected. The previous submission is archived rather than deleted, so the review history is preserved, and a new submission id is returned. Use the add-files endpoint instead when attaching a missing page to a document that is still under review.\n\n **Token scopes**: `legal-entity:write`","operationId":"resubmitLegalEntityRegistrationDocument-v2026-08-17","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"type":"object","required":["file_id","one_time_secret","original_filename","content_type"],"properties":{"file_id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"File Service file id."},"content_type":{"type":"string","example":"application/pdf","maxLength":255,"description":"MIME type."},"one_time_secret":{"type":"string","example":"a1b2c3d4e5f6","maxLength":1024,"minLength":1,"description":"File Service one-time secret."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","maxLength":500,"description":"Original filename."}},"additionalProperties":false},"maxItems":200,"minItems":1,"description":"Files previously uploaded to the File Service. Allowed types: pdf, jpg, jpeg, png, doc, docx, csv, xls, xlsx, txt, xml, mov, mp4."},"submission_reason":{"type":"string","example":"Reuploaded with the signature page included.","maxLength":2000,"description":"Optional note explaining what changed since the previous submission."}},"additionalProperties":false}},"additionalProperties":false}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["legal-entity:write"]}]},"delete":{"path":"/rest/legal-entities/{legal_entity_id}/registration-documents/{document_id}","tags":["Documents"],"method":"delete","summary":"Delete Legal Entity Registration Document","responses":{"204":{"description":"Document deleted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Submission not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the legal entity."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the document submission."}],"description":"Withdraws a document submission and removes its files. Use this when something was submitted in error — against the wrong requirement or for the wrong entity. Deletion is permanent: the submission and its files cannot be recovered, and the underlying requirement returns to being outstanding.\n\n **Token scopes**: `legal-entity:write`","operationId":"deleteLegalEntityRegistrationDocument-v2026-08-17","security":[{"deelToken":[]},{"oauth2":["legal-entity:write"]}]},"patch":{"path":"/rest/legal-entities/{legal_entity_id}/registration-documents/{document_id}","tags":["Documents"],"method":"patch","summary":"Add Files To Legal Entity Registration Document","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"parent":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the superseded submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"REJECTED","description":"Status of the superseded submission."}},"description":"The submission this one replaced, when it is a resubmission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"children":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."}}},"description":"Superseded revisions of this submission, newest first."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"requirement":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the requirement."},"name":{"type":"string","example":"Certificate of Incorporation","nullable":true,"description":"Requirement name."},"description":{"type":"string","example":"A copy of the certificate issued at registration.","nullable":true,"description":"What the requirement asks for."},"is_disabled":{"type":"boolean","example":false,"description":"Whether the requirement is no longer requested."},"has_template":{"type":"boolean","example":false,"description":"Whether a template is provided. Fetch it from the requirement template endpoint."},"product_type":{"enum":["EMBEDDED_PAYROLL","GLOBAL_PAYROLL","PEO"],"type":"string","example":"GLOBAL_PAYROLL","nullable":true,"description":"Product the requirement applies to."},"applicable_at":{"enum":["BEFORE_FIRST_PAYROLL","ANYTIME"],"type":"string","example":"BEFORE_FIRST_PAYROLL","nullable":true,"description":"When the document becomes due."},"reference_url":{"type":"string","example":"https://example.gov/certificates","nullable":true,"description":"External reference for the requirement."},"is_approval_required":{"type":"boolean","example":true,"description":"Whether a submission against this requirement is reviewed. False means a submission is accepted immediately as COMPLETED."},"is_submission_required":{"type":"boolean","example":true,"description":"Whether the document is mandatory rather than optional."},"how_the_document_is_used":{"enum":["PAYROLL_PURPOSE","ENTITY_ONBOARDING"],"type":"string","example":"PAYROLL_PURPOSE","nullable":true,"description":"How the document is used once submitted."},"why_the_document_is_needed":{"type":"string","example":"Required to register the entity for payroll.","nullable":true,"description":"Why the document is required."},"how_client_obtains_document":{"type":"string","example":"Download it from the companies registry.","nullable":true,"description":"How to obtain it."}},"description":"The document requirement this submission answers."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"legal_entity":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the legal entity."},"name":{"type":"string","example":"Acme BV","nullable":true,"description":"Legal entity name."},"country":{"type":"string","example":"NL","nullable":true,"description":"ISO country code of the entity address."}},"description":"The legal entity the document belongs to."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."},"submission_due_date":{"type":"string","format":"date-time","example":"2026-09-30T00:00:00.000Z","nullable":true,"description":"When the document is due."},"archived_submissions_count":{"type":"integer","example":2,"minimum":0,"description":"How many superseded revisions exist."}}}}}}},"description":"Files added successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Submission not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"joi.s3.invalid-file","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid file type for the attachment. Please submit a valid attachment and do not manually change the file name extension before uploading.","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1}}}}},"description":"Unprocessable entity — a file has an unsupported type or its content does not match its extension."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the legal entity."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the document submission."}],"description":"Attaches more files to an existing submission, keeping the files already on it. Use this when a document was submitted incomplete — a missing page or an extra supporting file — and it is still awaiting review. To replace a rejected submission outright, use the replace-files endpoint instead.\n\n **Token scopes**: `legal-entity:write`","operationId":"addLegalEntityRegistrationDocumentFiles-v2026-08-17","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"type":"object","required":["file_id","one_time_secret","original_filename","content_type"],"properties":{"file_id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"File Service file id."},"content_type":{"type":"string","example":"application/pdf","maxLength":255,"description":"MIME type."},"one_time_secret":{"type":"string","example":"a1b2c3d4e5f6","maxLength":1024,"minLength":1,"description":"File Service one-time secret."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","maxLength":500,"description":"Original filename."}},"additionalProperties":false},"maxItems":200,"minItems":1,"description":"Files previously uploaded to the File Service. Allowed types: pdf, jpg, jpeg, png, doc, docx, csv, xls, xlsx, txt, xml, mov, mp4."}},"additionalProperties":false}},"additionalProperties":false}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["legal-entity:write"]}]},"get":{"path":"/rest/legal-entities/{legal_entity_id}/registration-documents/{document_id}","tags":["Documents"],"method":"get","summary":"Get Legal Entity Registration Document","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"parent":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the superseded submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"REJECTED","description":"Status of the superseded submission."}},"description":"The submission this one replaced, when it is a resubmission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"children":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."}}},"description":"Superseded revisions of this submission, newest first."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"requirement":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the requirement."},"name":{"type":"string","example":"Certificate of Incorporation","nullable":true,"description":"Requirement name."},"description":{"type":"string","example":"A copy of the certificate issued at registration.","nullable":true,"description":"What the requirement asks for."},"is_disabled":{"type":"boolean","example":false,"description":"Whether the requirement is no longer requested."},"has_template":{"type":"boolean","example":false,"description":"Whether a template is provided. Fetch it from the requirement template endpoint."},"product_type":{"enum":["EMBEDDED_PAYROLL","GLOBAL_PAYROLL","PEO"],"type":"string","example":"GLOBAL_PAYROLL","nullable":true,"description":"Product the requirement applies to."},"applicable_at":{"enum":["BEFORE_FIRST_PAYROLL","ANYTIME"],"type":"string","example":"BEFORE_FIRST_PAYROLL","nullable":true,"description":"When the document becomes due."},"reference_url":{"type":"string","example":"https://example.gov/certificates","nullable":true,"description":"External reference for the requirement."},"is_approval_required":{"type":"boolean","example":true,"description":"Whether a submission against this requirement is reviewed. False means a submission is accepted immediately as COMPLETED."},"is_submission_required":{"type":"boolean","example":true,"description":"Whether the document is mandatory rather than optional."},"how_the_document_is_used":{"enum":["PAYROLL_PURPOSE","ENTITY_ONBOARDING"],"type":"string","example":"PAYROLL_PURPOSE","nullable":true,"description":"How the document is used once submitted."},"why_the_document_is_needed":{"type":"string","example":"Required to register the entity for payroll.","nullable":true,"description":"Why the document is required."},"how_client_obtains_document":{"type":"string","example":"Download it from the companies registry.","nullable":true,"description":"How to obtain it."}},"description":"The document requirement this submission answers."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"legal_entity":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the legal entity."},"name":{"type":"string","example":"Acme BV","nullable":true,"description":"Legal entity name."},"country":{"type":"string","example":"NL","nullable":true,"description":"ISO country code of the entity address."}},"description":"The legal entity the document belongs to."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."},"submission_due_date":{"type":"string","format":"date-time","example":"2026-09-30T00:00:00.000Z","nullable":true,"description":"When the document is due."},"archived_submissions_count":{"type":"integer","example":2,"minimum":0,"description":"How many superseded revisions exist."}}}}}}},"description":"Document returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Submission not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the legal entity."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the document submission."}],"description":"Returns a single document submission, including its review status, attached files and any superseded revisions. Use this to poll one submission after uploading, rather than re-listing every document for the entity. Archived submissions are returned by this endpoint as well as active ones.\n\n **Token scopes**: `legal-entity:read`","operationId":"getLegalEntityRegistrationDocument-v2026-08-17","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/on-demand-payroll/{odp_id}/entries/attach":{"patch":{"path":"/rest/on-demand-payroll/{odp_id}/entries/attach","tags":["On-Demand Payroll"],"method":"patch","summary":"Attach entries to On-Demand Payroll","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","sla","entries"],"properties":{"id":{"type":"string","example":"odp_abc123","description":"Public ID of the On-Demand Payroll."},"sla":{"type":"object","properties":{"payment_buffer":{"type":"integer","example":1,"nullable":true,"description":"Payment buffer in days."},"payment_processing":{"type":"integer","example":2,"nullable":true,"description":"Payment processing SLA in days."},"payment_settlement":{"type":"integer","example":3,"nullable":true,"description":"Payment settlement SLA in days."},"payroll_processing":{"type":"integer","example":1,"nullable":true,"description":"Payroll processing SLA in days."},"post_termination_buffer":{"type":"integer","example":30,"nullable":true,"description":"Post-termination buffer in days during which an ODP is still allowed."}},"description":"Processing SLAs (in days) configured for the contract EOR entity."},"status":{"enum":["AWAITING_CLIENT_APPROVAL","AWAITING_CLIENT_SUBMISSION","AWAITING_ADJUSTMENTS_TO_BE_READY","AWAITING_DEEL_PROCESSING","DEEL_PROCESSING","REJECTED","CANCELLED","PARTIALLY_APPROVED","APPROVED"],"type":"string","example":"AWAITING_CLIENT_APPROVAL","description":"Lifecycle status of the ODP."},"entries":{"type":"array","items":{"type":"object","required":["amount","currency","title","type","uom","metadata"],"properties":{"uom":{"enum":["CURRENCY"],"type":"string","example":"CURRENCY","description":"Unit of measure of the entry amount. Always CURRENCY."},"type":{"type":"string","example":"BONUS","description":"The adjustment type of the entry."},"title":{"type":"string","example":"Q1 performance bonus","description":"Short human-readable title of the entry."},"amount":{"type":"number","example":150.5,"description":"The entry amount in the contract currency.","x-sensitive-employment":true},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the entry amount."},"metadata":{"type":"object","properties":{"type":{"type":"string","example":"BONUS","description":"The adjustment type of the entry."},"public_id":{"type":"string","example":"adj_abc123","description":"Public ID of the underlying adjustment."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-01-06T10:00:00Z","nullable":true,"description":"Timestamp of the last review of the entry."},"vendor_name":{"type":"string","example":"Acme Inc.","nullable":true,"description":"Vendor associated with the entry, when applicable.","x-sensitive-pii":true},"category_label":{"type":"string","example":"Bonus","nullable":true,"description":"Label of the adjustment category."},"submission_date":{"type":"string","format":"date-time","example":"2026-01-04T09:00:00Z","nullable":true,"description":"Timestamp when the entry was submitted."},"category_group_label":{"type":"string","example":"Compensation","nullable":true,"description":"Label of the adjustment category group."}},"description":"Additional, non-contractual metadata about the entry."},"submitter":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"p_abc123","nullable":true,"description":"Public ID of the submitter, when available."},"name":{"type":"string","example":"John Doe","description":"Full name of the submitter.","x-sensitive-pii":true}},"description":"The person who submitted the entry."},"description":{"type":"string","example":"Bonus awarded for Q1 results","nullable":true,"description":"Free-text description of the entry."},"date_of_entry":{"type":"string","format":"date","example":"2026-01-05","nullable":true,"description":"Date the entry applies to (YYYY-MM-DD). Null when not available for the entry."}},"description":"An On-Demand Payroll entry (an adjustment attached to the ODP)."},"description":"Entries currently attached to the ODP."},"invoice_id":{"type":"string","example":"inv_abc123","nullable":true,"description":"Public ID of the invoice associated with the ODP, when one has been generated. Use the Invoices API to fetch its details."},"submitted_at":{"type":"string","format":"date-time","example":"2026-01-01T00:00:00Z","nullable":true,"description":"Timestamp when the ODP was submitted, when submitted."},"submitted_by":{"type":"string","example":"Jane Doe","nullable":true,"description":"Name of the person who submitted the ODP, when submitted.","x-sensitive-pii":true},"deel_reviewed_at":{"type":"string","format":"date-time","example":"2026-01-08T12:00:00Z","nullable":true,"description":"Timestamp when Deel reviewed the ODP, when reviewed."},"estimated_payday":{"type":"string","format":"date","example":"2026-01-10","nullable":true,"description":"Estimated payday for the ODP (YYYY-MM-DD)."},"next_available_payment_date":{"type":"string","format":"date","example":"2026-01-12","nullable":true,"description":"Next available payment date for the EOR contract (YYYY-MM-DD), when applicable."}},"description":"An On-Demand Payroll for a contract."}}}}},"description":"The updated On-Demand Payroll."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Authentication is required or has failed."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"The caller is not allowed to perform this action."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"On-Demand Payroll not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"odp_id","schema":{"type":"string"},"example":"odp_abc123","required":true,"description":"Public ID of the On-Demand Payroll."}],"description":"Attaches existing eligible entries to an On-Demand Payroll that is awaiting client review before submission.\n\n **Token scopes**: `on-demand-payroll:write`","operationId":"attachOnDemandPayrollEntries-v2026-07-31","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"salary_advance":{"type":"number","example":1000,"description":"Salary advance amount to include in the ODP, in the contract currency.","x-sensitive-employment":true},"existing_entry_ids":{"type":"array","items":{"type":"string","example":"adj_abc123","description":"Public ID of an existing adjustment (entry)."},"example":["adj_abc123","adj_def456"],"description":"Public IDs of existing entries (adjustments) to attach to the ODP."}}}}}}},"required":true,"description":"Existing entries to attach to the On-Demand Payroll."},"security":[{"deelToken":[]},{"oauth2":["on-demand-payroll:write"]}]}},"/ats/interviews":{"get":{"path":"/rest/ats/interviews","tags":["ATS"],"method":"get","summary":"List interviews","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status_enum","application_activity_id","application_activity","application","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the interview."},"ends_at":{"type":"string","format":"date-time","example":"2026-06-01T11:00:00Z","nullable":true,"description":"ISO 8601 datetime when the interview ends."},"timezone":{"type":"string","example":"America/New_York","nullable":true,"description":"IANA timezone of the interview."},"starts_at":{"type":"string","format":"date-time","example":"2026-06-01T10:00:00Z","nullable":true,"description":"ISO 8601 datetime when the interview starts."},"created_at":{"type":"string","format":"date-time","example":"2026-01-15T08:00:00Z","description":"ISO 8601 datetime when the interview record was created."},"updated_at":{"type":"string","format":"date-time","example":"2026-01-20T14:30:00Z","description":"ISO 8601 datetime when the interview record was last updated."},"application":{"type":"object","required":["id","candidate","job"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the application."},"job":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the job."},"title":{"type":"string","example":"Frontend Engineer","description":"Title of the job position."}},"description":"Job linked to the application."},"candidate":{"type":"object","required":["id","first_name","last_name","email"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the candidate."},"email":{"type":"string","format":"email","example":"jane.smith@example.com","description":"Email address of the candidate.","x-sensitive-pii":true},"pic_url":{"type":"string","example":"https://avatars.githubusercontent.com/u/12345678","nullable":true,"description":"Profile picture URL of the candidate.","x-sensitive-pii":true},"last_name":{"type":"string","example":"Smith","description":"Last name of the candidate.","x-sensitive-pii":true},"first_name":{"type":"string","example":"Jane","description":"First name of the candidate.","x-sensitive-pii":true}},"description":"Candidate being interviewed."}},"description":"Application linked to this interview."},"meeting_url":{"type":"string","example":"https://meet.example.com/abc-123","nullable":true,"description":"Video conferencing URL for the interview."},"status_enum":{"enum":["SCHEDULE_NEEDED","LINK_SENT","SCHEDULED","RESCHEDULE_REQUESTED","CANCELLED","COMPLETED"],"type":"string","example":"SCHEDULED","description":"Current status of the interview."},"application_activity":{"type":"object","properties":{"interview_title":{"type":"string","example":"Technical Round","nullable":true,"description":"Title of the interview stage."},"length_in_minutes":{"type":"integer","example":60,"nullable":true,"description":"Planned interview duration in minutes."},"application_activity_participations":{"type":"array","items":{"type":"object","required":["id","participant_hris_organization_user_id"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the participation record."},"application_activity_feedbacks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the feedback record."}}},"description":"Feedback entries submitted by this participant for the interview."},"participant_hris_organization_user_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"HRIS organization user ID of the interviewer."},"participant_hris_organization_user_profile":{"type":"object","nullable":true,"properties":{"type":{"enum":["CLIENT","WORKER"],"type":"string","example":"CLIENT","description":"Participant type within the organization."},"country":{"type":"string","example":"US","nullable":true,"description":"ISO 3166-1 alpha-2 country code.","x-sensitive-employment":true},"pic_url":{"type":"string","example":"https://avatars.githubusercontent.com/u/12345678","nullable":true,"description":"Profile picture URL.","x-sensitive-pii":true},"full_name":{"type":"string","example":"Jane Smith","description":"Full name.","x-sensitive-pii":true},"job_title":{"type":"string","example":"Engineering Manager","nullable":true,"description":"Job title.","x-sensitive-employment":true},"last_name":{"type":"string","example":"Smith","description":"Last name.","x-sensitive-pii":true},"first_name":{"type":"string","example":"Jane","description":"First name.","x-sensitive-pii":true},"work_email":{"type":"string","format":"email","example":"jane.smith@example.com","nullable":true,"description":"Work email.","x-sensitive-pii":true},"hris_organization_user_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"HRIS organization user ID."}}}}},"description":"List of interviewers participating in this interview."}},"description":"Interview activity details including configuration and participants."},"application_activity_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"ID of the application activity linked to this interview."}}},"description":"Page of interviews."},"has_more":{"type":"boolean","example":false,"description":"Whether more pages are available beyond the current page."},"next_cursor":{"type":"string","example":"eyJpZCI6IjEyMzQifQ==","nullable":true,"description":"Cursor to fetch the next page; null when there are no more pages."},"total_count":{"type":"integer","example":42,"description":"Total number of interviews matching the filters."}}}}},"description":"Paginated list of interviews"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"interviewer_hou_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["f47ac10b-58cc-4372-a567-0e02b2c3d479"],"required":false,"description":"Filter interviews by interviewer HRIS organization user IDs."},{"in":"query","name":"job_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["f47ac10b-58cc-4372-a567-0e02b2c3d479"],"required":false,"description":"Filter interviews by job IDs."},{"in":"query","name":"status","schema":{"type":"array","items":{"enum":["SCHEDULE_NEEDED","LINK_SENT","SCHEDULED","RESCHEDULE_REQUESTED","CANCELLED","COMPLETED"],"type":"string"}},"example":["SCHEDULED"],"required":false,"description":"Filter interviews by status."},{"in":"query","name":"candidate_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["f47ac10b-58cc-4372-a567-0e02b2c3d479"],"required":false,"description":"Filter interviews by candidate IDs."},{"in":"query","name":"date_range_start","schema":{"type":"string","format":"date-time"},"example":"2026-01-01T00:00:00Z","required":false,"description":"Lower bound of interview start time (ISO 8601)."},{"in":"query","name":"date_range_end","schema":{"type":"string","format":"date-time"},"example":"2026-12-31T23:59:59Z","required":false,"description":"Upper bound of interview start time (ISO 8601)."},{"in":"query","name":"updated_after","schema":{"type":"string","format":"date-time"},"example":"2026-01-01T00:00:00Z","required":false,"description":"Return interviews updated strictly after this ISO 8601 datetime (incremental sync)."},{"in":"query","name":"sort_order","schema":{"enum":["SCHEDULED_FIRST","NEWEST_FIRST","OLDEST_FIRST"],"type":"string"},"example":"SCHEDULED_FIRST","required":false,"description":"Order interviews by upcoming-first, newest-first, or oldest-first."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJpZCI6IjEyMzQifQ==","required":false,"description":"Pagination cursor returned by a previous response."},{"in":"query","name":"limit","schema":{"type":"integer","maximum":100,"minimum":1},"example":30,"required":false,"description":"Maximum number of interviews to return per page."}],"description":"Returns a paginated list of interviews for the organization. Use the available query parameters to filter by job, candidate, interviewer, status, or date range, or to fetch updates incrementally via updated_after\n\n **Token scopes**: `ats:read`","operationId":"listInterviews-v2026-06-03","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/hris/worker_relations/profile/external/{profile_id}/parent":{"put":{"path":"/rest/hris/worker_relations/profile/external/{profile_id}/parent","tags":["Worker Relations"],"method":"put","summary":"Create a parent worker relation with external id","responses":{"204":{"content":{"application/json":{}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"hris_relationship_type_external_id"},"message":{"type":"string","example":"\"hris_relationship_type_external_id\" is required"}}}}}}}},"description":"Bad request - The request body is invalid or missing required fields."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found"},"field":{"type":"string","example":"profileId"},"message":{"type":"string","example":"HRIS profile with externalId 'emp-001' was not found."}}}}}}}},"description":"Not found - The HRIS profile, relationship type, or parent profile was not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"profile_id","schema":{"type":"string","format":"uuid"},"example":"e3b6f8e8-1b6b-4e1b-8e0b-6f8e81b6b4e1","required":true,"description":"HrisProfile external ID"}],"description":"Sets or replaces the parent relationship for the specified HRIS profile, using external identifiers. Pass null as parent_profile_external_id to remove the existing parent relationship.\n\n **Token scopes**: `profile:write`","operationId":"createAParentWorkerRelationWithExternalId-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["parent_profile_external_id","hris_relationship_type_external_id"],"properties":{"relation_external_id":{"type":"string","example":"rel-emp002-emp001","nullable":true,"maxLength":100,"description":"The external identifier for this specific relation record."},"parent_profile_external_id":{"type":"string","example":"emp-002","nullable":true,"maxLength":100,"description":"The external identifier of the parent HRIS Profile. Pass null to remove the existing parent relationship."},"hris_relationship_type_external_id":{"type":"string","example":"manager-direct-report","maxLength":100,"description":"The external identifier of the relationship type to apply."}},"description":"The request payload containing parent relationship details."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/on-demand-payroll/{odp_id}/entries/detach":{"patch":{"path":"/rest/on-demand-payroll/{odp_id}/entries/detach","tags":["On-Demand Payroll"],"method":"patch","summary":"Detach entries from On-Demand Payroll","responses":{"204":{"description":"Entries detached successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Authentication is required or has failed."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"The caller is not allowed to perform this action."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"On-Demand Payroll not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"odp_id","schema":{"type":"string"},"example":"odp_abc123","required":true,"description":"Public ID of the On-Demand Payroll."}],"description":"Detaches entries from an On-Demand Payroll, keeping or removing the specified entries before the ODP is submitted.\n\n **Token scopes**: `on-demand-payroll:write`","operationId":"detachOnDemandPayrollEntries-v2026-07-31","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"move_to_regular":{"type":"array","items":{"type":"string","example":"adj_abc123","description":"Public ID of an entry to move to the regular payroll cycle."},"example":["adj_abc123"],"description":"Public IDs of the entries to remove from the ODP and move to the regular payroll cycle."},"entries_to_delete":{"type":"array","items":{"type":"string","example":"adj_def456","description":"Public ID of an entry to permanently delete."},"example":["adj_def456"],"description":"Public IDs of the entries to permanently delete from the ODP."}}}}}}},"required":true,"description":"Entries to keep and/or to delete from the On-Demand Payroll."},"security":[{"deelToken":[]},{"oauth2":["on-demand-payroll:write"]}]}},"/gp/legal-entities/{legal_entity_id}/reports":{"get":{"path":"/rest/gp/legal-entities/{legal_entity_id}/reports","tags":["Global Payroll"],"method":"get","summary":"List payroll events by legal entity","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status","start_date","end_date"],"properties":{"id":{"type":"string","example":"clqmd5qb07xwevi01cd5kb6kw","description":"Unique identifier for the payroll event."},"status":{"type":"string","example":"OPEN","description":"Status of the payroll event (e.g., OPEN, CLOSED)."},"end_date":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"End date of the payroll event in ISO-8601 format."},"lock_date":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Date when the payroll event is locked, in ISO-8601 format."},"start_date":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Start date of the payroll event in ISO-8601 format."}}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for the legal entity in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for the legal entity."}],"description":"Retrieves payroll events associated with the specified legal entity, suitable for preparing payroll reports or auditing pay cycles.\n\n **Token scopes**: `global-payroll:read`","operationId":"listPayrollEventsByLegalEntity-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["global-payroll:read"]}]}},"/contracts/{contract_id}/milestones/{milestone_id}":{"get":{"path":"/rest/contracts/{contract_id}/milestones/{milestone_id}","tags":["Milestones"],"method":"get","summary":"Retrieve a single milestone","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","nullable":false,"required":["amount","approval_requested","reviewed_by","reported_by","id","title","description","status","created_at"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64","description":"Unique identifier of this resource."}],"example":"12345"},"title":{"type":"string","example":"Initial Design Phase","nullable":false,"description":"Title of milestone."},"amount":{"type":"string","example":"5000.00","description":"Amount to be paid for the milestone."},"status":{"type":"string","example":"Pending Approval","nullable":false,"description":"Current status of milestone."},"created_at":{"type":"string","example":"2024-11-26T15:30:00Z","pattern":"^\\d{4}-\\d{2}-\\d{2}([T ]\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:?\\d{2})?)?$","nullable":true,"description":"Long date-time format following ISO-8601"},"description":{"type":"string","example":"Design the initial prototype of the application.","nullable":false,"description":"Description of milestone."},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64","description":"Unique identifier of this resource."}],"example":"78910"},"full_name":{"type":"string","example":"Jane Smith","nullable":false,"description":"Reporter's full name.","x-sensitive-pii":true}},"description":"Milestone creator."},"reviewed_by":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64","description":"Unique identifier of this resource."}],"example":"112233"},"full_name":{"type":"string","example":"John Doe","nullable":false,"description":"Reviewer's full name.","x-sensitive-pii":true}},"description":"Reviewer's information."},"approval_requested":{"type":"boolean","example":true,"description":"Indicates if the contractor has requested the approval for the milestone."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","message":"\"milestone_id\" must be a valid identifier"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"\"milestone_id\" must be a valid identifier","description":"Human-readable description of the validation error."}}},"description":"Validation errors describing why the milestone could not be retrieved."}}}}},"description":"Bad Request - The contract_id or milestone_id parameter failed validation."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"NOT_FOUND","message":"Milestone not found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Milestone not found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the milestone could not be found."}}}}},"description":"Not Found - The specified contract or milestone does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the milestone cannot be retrieved."}}}}},"description":"Internal Server Error - The milestone could not be retrieved due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcdefg","required":true,"description":"Deel contract id."},{"in":"path","name":"milestone_id","schema":{"type":"string"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"ID of milestone to return"}],"description":"Retrieves a single milestone identified by milestone_id within a specific contract.\n\n **Token scopes**: `milestones:read`","operationId":"getMilestonesByContractAndId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["milestones:read"]}]},"delete":{"path":"/rest/contracts/{contract_id}/milestones/{milestone_id}","tags":["Milestones"],"method":"delete","summary":"Delete a Milestone","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"deleted":true}},"required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","example":true,"nullable":false,"description":"Confirms that the milestone was successfully deleted."}}}}}}},"description":"Milestone successfully deleted."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"CANT_REMOVE_APPROVED","message":"You can't remove approved milestone"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"CANT_REMOVE_APPROVED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"You can't remove approved milestone","description":"Human-readable description of the business rule violation."}}},"description":"Business rule errors describing why the milestone could not be removed, such as its current review status."}}}}},"description":"Bad Request - The milestone cannot be removed given its current status."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"ACCESS_DENIED","message":"Access denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"ACCESS_DENIED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access denied","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why the milestone could not be deleted."}}}}},"description":"Forbidden - The requester does not own this contract."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"NOT_FOUND","message":"Milestone not found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Milestone not found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the milestone could not be found."}}}}},"description":"Not Found - The specified contract or milestone does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the milestone cannot be deleted."}}}}},"description":"Internal Server Error - The milestone could not be deleted due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcdefg","required":true,"description":"The unique identifier of the Deel contract from which the milestone will be deleted."},{"in":"path","name":"milestone_id","schema":{"type":"string"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"The unique identifier of the milestone that is to be deleted."}],"description":"Permanently deletes a specific milestone from a contract. This operation is irreversible and removes all associated milestone data.\n\n **Token scopes**: `milestones:write`","operationId":"deleteMilestoneById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["milestones:write"]}]}},"/working-locations":{"get":{"path":"/rest/working-locations","tags":["Organizations"],"method":"get","summary":"Retrieve working locations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"number","example":"12345","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Some locations"}}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns the list of available work location labels for the organization. Populate options when creating or editing people or contract records.\n\n **Token scopes**: `organizations:read`","operationId":"retrieveWorkingLocations-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/eor/contracts/{contract_id}/offboarding/review-client-sign-offs":{"post":{"path":"/rest/eor/contracts/{contract_id}/offboarding/review-client-sign-offs","tags":["EOR"],"method":"post","summary":"Review, approve, or request changes to EOR offboarding documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the offboarding request"},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"documents":{"type":"object","nullable":false,"required":["supporting","offboarding"],"properties":{"supporting":{"type":"array","items":{"type":"object","required":["id","name","type","created_at","updated_at","is_additional_supporting_document"],"properties":{"id":{"type":"string","example":"cmddlk1ghehm54l18gejg198r","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Supporting Documentation","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was updated","x-sensitive-pii":true},"is_additional_supporting_document":{"type":"boolean","example":false,"description":"Indicates if this is an additional supporting document added after the initial submission","x-sensitive-pii":true}}},"x-sensitive-pii":true},"offboarding":{"type":"array","items":{"type":"object","required":["files","reviewer_type","is_employee_notification_required","status"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the document set shared with the employee.","x-sensitive-pii":true},"files":{"type":"array","items":{"type":"object","required":["id","name","type","created_at"],"properties":{"id":{"type":"string","example":"cmdeh9wzgvihue4r54n2y51p4","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Employee Sign Off Documents","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was updated","x-sensitive-pii":true}}},"x-sensitive-pii":true},"status":{"enum":["AWAITING_REVIEW","AWAITING_FEEDBACK","FEEDBACK_PROVIDED","APPROVED","CHANGES_REQUESTED_BY_CLIENT","CHANGES_REQUESTED_BY_EMPLOYEE","WAIVED_REVIEW","NOT_RESPONDED","CANCELLED"],"type":"string","example":"AWAITING_REVIEW","description":"The current status of the document review","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was updated","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2025-07-22T12:30:00.000Z","nullable":true,"description":"The date and time when the document was reviewed","x-sensitive-pii":true},"reviewed_by":{"type":"string","example":"John Doe","nullable":true,"description":"The name of the reviewer for this document. If the reviewer is not an employee, it will be the name of the client","x-sensitive-pii":true},"reviewer_type":{"enum":["CLIENT","EMPLOYEE"],"type":"string","example":"EMPLOYEE","description":"The type of reviewer for this document","x-sensitive-pii":true},"reviewer_feedback":{"type":"string","example":"Document needs clarification on section 3","nullable":true,"description":"Feedback provided by the reviewer","x-sensitive-pii":true},"notification_instructions":{"type":"string","example":"<p>Please review and provide feedback on the attached documents.</p>","nullable":true,"description":"HTML instructions for the reviewer notification","x-sensitive-pii":true},"is_employee_notification_required":{"type":"boolean","example":true,"description":"Indicates if the employee should be notified about this document review","x-sensitive-pii":true}}},"description":"Document set shared that requires client or employee review","x-sensitive-pii":true},"resignation_letter":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the resignation letter"},"signature":{"type":"string","example":"John Doe","nullable":true,"description":"The signature of the resignation letter"},"signed_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the resignation letter was signed"},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the resignation letter was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the resignation letter was updated"}},"x-sensitive-pii":true}},"description":"Document management structure for termination workflow including review processes and supporting documents","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was updated"},"contract_id":{"type":"string","example":"5B74FnLM","description":"The unique identifier of the employee contract."},"is_sensitive":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if the offboarding request is sensitive. This is used to restrict access to the request only to the requester and the HRX team."},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"enum":["STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE","nullable":false,"description":"The reason for the termination","x-sensitive-pii":true,"x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request","x-sensitive-pii":true,"x-sensitive-employment":true},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"BUSINESS_DAY","policy_type":"Vacation","tracking_periods":[{"used":0,"end_date":"2025-02-28T00:00:00.000Z","start_date":"2024-03-01T00:00:00.000Z"},{"used":0,"end_date":"2024-02-29T00:00:00.000Z","start_date":"2023-03-01T00:00:00.000Z"},{"used":0,"end_date":"2023-02-28T00:00:00.000Z","start_date":"2022-03-01T00:00:00.000Z"}],"scheduled_until_end_date":0}],"additional_details":null,"is_deel_pto_confirmed":true},"nullable":false,"required":["time_offs","is_deel_pto_confirmed"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["unit","policy_type","tracking_periods","scheduled_until_end_date"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR"],"type":"string","example":"BUSINESS_DAY","description":"The unit of measurement for time off tracking","x-sensitive-employment":true},"policy_type":{"type":"string","example":"Vacation","description":"The type of time-off policy","x-sensitive-employment":true},"tracking_periods":{"type":"array","items":{"type":"object","required":["used","end_date","start_date"],"properties":{"used":{"type":"number","example":0,"description":"The amount of time off used in this tracking period","x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-02-28T00:00:00.000Z","description":"The end date of the tracking period","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2024-03-01T00:00:00.000Z","description":"The start date of the tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"scheduled_until_end_date":{"type":"number","example":0,"description":"The amount of time off scheduled until the end date of the current tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"additional_details":{"type":"object","nullable":true,"properties":{"notes":{"type":"string","example":"Additional notes about time off allocation","nullable":true,"description":"Additional notes or comments about the time-off data","x-sensitive-employment":true},"updated_by":{"type":"string","example":"HR Administrator","nullable":true,"description":"The person or system that last updated the time-off data","x-sensitive-pii":true,"x-sensitive-employment":true},"last_updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the time-off data was last updated","x-sensitive-employment":true}},"x-sensitive-employment":true},"is_deel_pto_confirmed":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the PTO allocation has been confirmed by Deel's system","x-sensitive-employment":true}},"description":"Time-off usage data including policy information and tracking periods","x-sensitive-employment":true},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again","x-sensitive-pii":true},"eligible_for_rehire_reason":{"type":"string","example":"Employee is not eligible for rehire due to performance issues","nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligible_for_rehire","x-sensitive-pii":true}},"x-sensitive-pii":true},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}},"description":"Approval submitted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"5B74FnLM","required":true,"description":"The unique identifier of the employee contract."}],"description":"Submits a client sign-off decision—approval or change request—for the offboarding documents of a specific contract during the client sign-off step.\n\n **Token scopes**: `contracts:write`","operationId":"reviewApproveOrRequestChangesToEorOffboardingDocuments-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["has_client_approved"],"properties":{"reviewer_feedback":{"type":"string","example":"I don't agree witht the severance amount.","nullable":true,"maxLength":2000,"description":"Feedback from the reviewer when the termination is not approved. Required if has_client_approved is false, otherwise optional."},"has_client_approved":{"type":"boolean","example":false,"description":"Indicates if the client has approved the termination request"},"has_employee_been_notified":{"type":"boolean","example":false,"nullable":true,"description":"Indicates if the employee has been notified about the termiantion"}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/eor/workers/compliance-documents/{document_id}":{"post":{"path":"/rest/eor/workers/compliance-documents/{document_id}","tags":["EOR"],"method":"post","summary":"Upload employee compliance document","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"success":{"type":"boolean","example":true,"description":"A flag denoting if the file upload was successful."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"document_id","schema":{"type":"string"},"example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","required":true,"description":"Unique identifier for a compliance document in Deel."}],"description":"Uploads a compliance document file against the specified `document_id` for an EOR employee.\n\n **Token scopes**: `worker:write`","operationId":"UploadEmployeeComplianceDocument-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","example":"file","description":"The employee compliance document to upload."}},"description":"This is the file you will upload in a multi-part form."}}},"required":true,"description":"The employee compliance document data to upload"},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/forms/gp/worker-additional-fields/{country_code}":{"get":{"path":"/rest/forms/gp/worker-additional-fields/{country_code}","tags":["Global Payroll"],"method":"get","summary":"Retrieve additional information fields for GP workers by country","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["key","type","is_required","ui_guide","validation","dependencies"],"properties":{"key":{"type":"string","example":"additional_name","description":"Use this value as the field identifier when submitting additional information. Represents the snake_case version of the internal field name, generated by the API naming convention service."},"type":{"enum":["string","number","boolean",""],"type":"string","example":"string","description":"Use this value to determine the data type expected when submitting field values. Mapped from the raw input type: 'date', 'text', 'select', 'textarea', 'tel', 'phone', and 'string' map to \"string\"; 'number' maps to \"number\"; 'checkbox' maps to \"boolean\". An empty string indicates an unrecognized input type."},"ui_guide":{"type":"object","required":["label","local_label","field_type","order","description","helper_text"],"properties":{"label":{"type":"string","example":"Preferred Name / Additional Name","description":"Use this value as the primary English-language label when rendering the field in the UI."},"order":{"type":"integer","example":1,"minimum":1,"description":"Use this value to determine the display position of the field in the form. Starts at 1 and reflects the position in the response array, which is pre-sorted by the configured display order."},"field_type":{"type":"string","example":"text","description":"Use this value to select the appropriate UI input component. Represents the raw input type from the field configuration. Known values include 'text', 'date', 'select', 'textarea', 'tel', 'phone', 'number', 'checkbox', and 'string'. Additional values may exist."},"description":{"type":"string","example":"Preferred name / Additional name","description":"Use this value to display supplementary context about the field below or beside the input. HTML tags are stripped. Returns an empty string when no description is configured."},"helper_text":{"type":"string","example":"","description":"Use this value to display footnote or instructional text near the field. HTML tags are stripped. Returns an empty string when no helper text is configured."},"local_label":{"type":"string","example":"Imie preferowane","description":"Use this value as the localized field label when rendering the form in the worker's local language."}},"description":"Use this object to control how the field is rendered in the UI. Contains labels, input type, display order, and supplementary text."},"validation":{"type":"array","items":{"type":"object","required":["type","error_message"],"properties":{"type":{"type":"string","example":"REGEX","description":"Use this value to determine which validation strategy to apply. \"REGEX\" indicates the 'value' field contains a regular expression pattern. Any other value indicates a custom validation type identified by its uppercase name."},"value":{"type":"string","example":"^[A-Za-z\\s]+$","description":"Use this value as the validation parameter. For REGEX type, contains the regular expression pattern to validate the field input against. Absent when the validation type is a custom type that does not require a parameter."},"error_message":{"type":"string","example":"Review the value entered","description":"Use this message to display to the user when the field value fails validation. Defaults to 'Review the value entered' when no custom message is configured."}}},"description":"Use this array to apply client-side validation before form submission. Contains zero or one validation rule per field. An empty array means no validation is configured."},"is_required":{"type":"boolean","example":false,"description":"Use this flag to determine whether the field must be provided when submitting additional information. For GP workers, the value considers the GP-specific optionality setting when available, falling back to the general optionality flag."},"required_by":{"type":"string","example":"before_payroll","description":"Use this value to determine at which stage in the payroll lifecycle this field must be collected. Known values: 'before_payroll' (required before payroll processing), 'after_payroll' (can be collected after initial payroll), 'contract_signing' (required at contract signing). Absent from the response when no lifecycle stage is configured."},"dependencies":{"type":"array","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","example":"country","description":"Use this value to identify the field that this dependency refers to. Contains the snake_case key of the dependency field, matching another field's 'key' property in the same response."},"value":{"oneOf":[{"type":"string","example":"UK"},{"type":"number","example":18},{"type":"boolean","example":true},{"type":"object","example":{"op":"gt","value":18},"required":["op","value"],"properties":{"op":{"enum":["eq","ne","gt","lt","notnull","contains"],"type":"string","example":"gt","description":"Use this operator to evaluate the dependency condition against the referenced field's submitted value."},"value":{"example":18,"description":"Use this value as the operand for the dependency condition evaluation."}}}],"example":"UK","description":"Use this value to evaluate the dependency condition. When the value is a primitive (string, number, or boolean), the condition is satisfied when the referenced field equals this value. When the value is an object with 'op' and 'value' properties, apply the specified operator: 'eq' (equals), 'ne' (not equals), 'gt' (greater than), 'lt' (less than), 'notnull' (field is not null), 'contains' (field value contains the specified substring)."}}},"description":"Use this array to implement conditional field visibility. When non-empty, this field should only be displayed and required when the referenced dependency conditions are met. An empty array means the field has no conditional dependencies."},"values_allowed":{"type":"array","items":{"type":"string"},"example":["Single","Married","Divorced","Widowed"],"description":"Use this array to populate dropdown or select options when field_type is 'select'. Only present when the field has predefined options. Absent from the response for free-text, date, number, and other non-select field types."}}},"description":"Use this array to build the form UI. Each item defines one field with its type, validation, and display configuration. Items are pre-sorted by EDM display order. An empty array means no additional fields are configured for the requested country."}}},"example":{"data":[{"key":"additional_name","type":"string","ui_guide":{"label":"Preferred Name / Additional Name","order":1,"field_type":"text","description":"Preferred name / Additional name","helper_text":"","local_label":"Imie preferowane"},"validation":[{"type":"REGEX","value":"^.*$","error_message":"Review the value entered"}],"is_required":false,"required_by":"before_payroll","dependencies":[]},{"key":"dob","type":"string","ui_guide":{"label":"Date of Birth","order":2,"field_type":"date","description":"Date of Birth","helper_text":"","local_label":"Data urodzenia"},"validation":[{"type":"REGEX","value":"^.*$","error_message":"Review the value entered"}],"is_required":true,"required_by":"before_payroll","dependencies":[{"key":"country","value":"UK"}]},{"key":"marital_status","type":"string","ui_guide":{"label":"Marital Status","order":3,"field_type":"select","description":"Marital status of the worker","helper_text":"Select the worker's current marital status","local_label":"Stan cywilny"},"validation":[],"is_required":true,"required_by":"contract_signing","dependencies":[],"values_allowed":["Single","Married","Divorced","Widowed"]}]}}},"description":"Use this response to render dynamic form fields for GP worker onboarding. Contains field configuration, validation rules, display metadata, and dependency logic needed to build country-specific additional information forms."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"key":{"type":"string","example":"country_code","description":"Use this value to identify which parameter caused the validation failure."},"path":{"type":"array","items":{"type":"string"},"example":["params","country_code"],"description":"Use this array to locate the parameter in the request structure. The first element indicates the parameter source (params, query, body)."},"type":{"type":"string","example":"any.only","description":"Use this value to programmatically identify the Joi validation rule that failed."},"message":{"type":"string","example":"\"country_code\" must be one of [US, GB, ES, ...]","description":"Use this message to understand what validation rule was violated."}}},"minItems":1,"description":"Use this array to identify each validation failure. Each item describes one parameter that failed validation."}}},"example":{"errors":[{"key":"country_code","path":["params","country_code"],"type":"any.only","message":"\"country_code\" must be one of [US, GB, ES, ...]"}]}}},"description":"Returned when the country_code path parameter is not a recognized ISO 3166-1 alpha-2 code."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Authentication required. Please provide a valid access token.","description":"Use this message to identify the authentication failure reason."}}},"minItems":1}}},"example":{"errors":[{"message":"Authentication required. Please provide a valid access token."}]}}},"description":"Authentication failed. The access token is missing, expired, or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"You do not have permission to access this resource.","description":"Use this message to identify the authorization failure reason."}}},"minItems":1}}},"example":{"errors":[{"message":"You do not have permission to access this resource."}]}}},"description":"Access denied. The authenticated user does not have the required forms:read scope."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Additional info template not found","description":"Use this message to understand why the request failed. Indicates the country does not have an additional info template configured."}}},"example":{"message":"Additional info template not found"}}},"description":"The country_code is a valid ISO code but no additional information template exists for it in the Employee Data Management system."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Too many requests. Please retry after some time.","description":"Use this message to detect rate limiting. Implement exponential backoff before retrying."}}},"minItems":1}}},"example":{"errors":[{"message":"Too many requests. Please retry after some time."}]}}},"description":"Rate limit exceeded. The client has sent too many requests in a given time window."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Internal Server Error","description":"Use this message for logging and debugging purposes. Contains a general error description."}}},"example":{"message":"Internal Server Error"}}},"description":"Internal server error. Returned when the Employee Data Management service is unreachable, or an unexpected error occurs during field retrieval."}},"parameters":[{"in":"path","name":"country_code","schema":{"type":"string"},"example":"ES","required":true,"description":"ISO 3166-1 alpha-2 country code for which to retrieve GP worker additional fields."}],"description":"Retrieves the country-specific additional information fields required for GP workers to run payroll in compliance with local regulations.\n\n **Token scopes**: `forms:read`","operationId":"retrieveAdditionalInformationFieldsForGpWorkersByCountry-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["forms:read"]}]}},"/ic/workers/invoices/{invoice_id}/pdf":{"get":{"path":"/rest/ic/workers/invoices/{invoice_id}/pdf","tags":["Workers"],"method":"get","summary":"Get signed URL to download worker invoice PDF","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url"],"properties":{"url":{"type":"string","format":"uri","example":"https://storage.example.com/invoices/abc.pdf","description":"HTTPS URL to download the invoice PDF."}},"description":"Payload with the signed download URL.","x-sensitive-pii":true,"x-sensitive-employment":true}},"description":"Envelope containing a time-limited signed URL to the invoice PDF."}}},"description":"Signed PDF URL for download."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"validation_error","description":"Machine-readable error code"},"field":{"type":"string","example":"/query/limit","description":"JSON pointer to the invalid field"},"details":{"type":"object","example":{},"description":"Optional structured details","additionalProperties":true},"message":{"type":"string","example":"Invalid query parameter.","description":"Human-readable explanation of the error"}}},"minItems":1}}}}},"description":"Bad request (invalid query parameters)."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"unauthorized"},"field":{"type":"string","example":"/headers/authorization"},"details":{"type":"object","example":{},"additionalProperties":true},"message":{"type":"string","example":"Missing or invalid token."}}},"minItems":1}}}}},"description":"Unauthorized (missing or invalid worker token)."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden"},"field":{"type":"string","example":"/path/invoice_id"},"details":{"type":"object","example":{},"additionalProperties":true},"message":{"type":"string","example":"You do not have access to this resource."}}},"minItems":1},"request":{"type":"object","properties":{"url":{"type":"string","example":"https://api.deel.com/ic/workers/invoices"},"method":{"type":"string","example":"GET"},"status":{"type":"integer","example":403}},"description":"Present for some public API responses (e.g. when x-is-api-call is set).","additionalProperties":true}}}}},"description":"Forbidden (invoice not found or not accessible to this worker)."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"412":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"precondition_failed"},"field":{"type":"string","example":"/organization"},"details":{"type":"object","example":{},"additionalProperties":true},"message":{"type":"string","example":"Feature is disabled for the organization"}}},"minItems":1}}}}},"description":"Precondition failed (e.g. icEmbeddedWorkerSetup is not enabled for the organization)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"internal_error"},"field":{"type":"string","example":"/"},"details":{"type":"object","example":{},"additionalProperties":true},"message":{"type":"string","example":"An unexpected error occurred."}}},"minItems":1}}}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"invoice_id","schema":{"type":"string","format":"uuid"},"example":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","required":true,"description":"Public invoice identifier (UUID) for the invoice whose PDF URL is returned."}],"description":"This endpoint provides embedded worker flows access to download the PDF for a specific invoice, authenticated with a worker PAT token. It returns a signed, time-limited URL rather than the file itself.\n\n **Token scopes**: `worker:read`","operationId":"icWorkersInvoicesInvoiceIdPdf-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/payouts/contractors/methods/bank_transfers/requirements":{"get":{"path":"/rest/payouts/contractors/methods/bank_transfers/requirements","tags":["Payouts"],"method":"get","summary":"Get bank transfer requirements","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["type","title","fields","total_fee"],"properties":{"type":{"type":"string","example":"swift_code","description":"Type of bank transfer, such as local, swift, iban. Maps to selected_option in method creation data."},"title":{"type":"string","example":"Local bank account","description":"Title of the bank transfer method"},"fields":{"type":"array","items":{"type":"object","required":["name","group"],"properties":{"name":{"type":"string","example":"Recipient's first name","description":"User-facing label for the field group."},"group":{"type":"array","items":{"type":"object","required":["key","name","type","required"],"properties":{"key":{"type":"string","example":"firstName","description":"The key of the field in the method creation payload"},"name":{"type":"string","example":"Recipient's first name","description":"User facing name of property"},"type":{"enum":["text","radio","select","date_local"],"type":"string","example":"text","description":"The type of the field, such as text, radio, select, or date_local."},"example":{"type":"string","example":"John Doe","description":"Example value for the field"},"required":{"type":"boolean","example":true,"description":"Whether the field is required"},"max_length":{"type":"integer","example":50,"nullable":true,"description":"The maximum length of the field"},"min_length":{"type":"integer","example":8,"nullable":true,"description":"The minimum length of the field"},"display_format":{"type":"string","example":"IBAN","nullable":true,"description":"Optional display format hint for the field"},"values_allowed":{"type":"array","items":{"type":"object","required":["key","name"],"properties":{"key":{"type":"string","example":"AL","description":"The country code (e.g., AL for Albania)."},"name":{"type":"string","example":"Albania","description":"The full name of the country (e.g., Albania)."}}},"example":[{"key":"AS","name":"American Samoa"},{"key":"AD","name":"Andorra"}],"nullable":true,"description":"An array of allowed values with corresponding key and name."},"validation_regexp":{"type":"string","example":"^[a-zA-Z]{6}(([a-zA-Z0-9]{2})|([a-zA-Z0-9]{5}))$","nullable":true,"description":"The regular expression to validate the field"},"refresh_requirements_on_change":{"type":"boolean","example":true,"description":"Whether to refresh the requirements when the field value changes with field key as query parameter"}}},"example":[{"key":"firstName","name":"Recipient's first name","type":"text","required":true,"max_length":50}],"description":"List of input field definitions within this group."}}},"description":"Each field key is input field for the bank transfer method creation payload."},"total_fee":{"type":"string","example":"0.0000","description":"Fee preview for amount provided in query parameter"},"intermediary":{"type":"array","items":{"type":"object","required":["name","group"],"properties":{"name":{"type":"string","example":"BIC of the intermediary bank","description":"User facing name of the intermediary object"},"group":{"type":"array","items":{"type":"object","required":["key","name","type","required"],"properties":{"key":{"type":"string","example":"intermediary.bic","description":"The key of the intermediary field in the method creation payload."},"name":{"type":"string","example":"BIC of the intermediary bank","description":"User facing name of the intermediary object"},"type":{"type":"string","example":"text","description":"The type of the field, such as text, radio, select, or date_local."},"example":{"type":"string","example":"BUKBGB22","description":"Example value for the field"},"required":{"type":"boolean","example":true,"description":"Whether the field is required"},"max_length":{"type":"integer","example":11,"description":"The maximum length of the field"},"min_length":{"type":"integer","example":8,"nullable":true,"description":"The minimum length of the field"},"values_allowed":{"type":"array","items":{"type":"object","required":["key","name"],"properties":{"key":{"type":"string","example":"AL","description":"The country code (e.g., AL for Albania)."},"name":{"type":"string","example":"Albania","description":"The full name of the country (e.g., Albania)."}}},"example":[{"key":"AS","name":"American Samoa"},{"key":"AD","name":"Andorra"}],"nullable":true,"description":"An array of allowed values with corresponding key and name."},"validation_regexp":{"type":"string","example":"^[a-zA-Z]{6}(([a-zA-Z0-9]{2})|([a-zA-Z0-9]{5}))$","nullable":true,"description":"The regular expression to validate the field"}}},"example":[{"key":"intermediary.bic","name":"BIC of the intermediary bank","type":"text","required":true,"max_length":11}],"description":"List of input field definitions for the intermediary bank."}}},"description":"Each field is input for the bank transfer method creation payload intermediary object"}}}}}},"example":{"data":[{"type":"turkey","title":"Local bank account","fields":[{"name":"Recipient's first name","group":[{"key":"firstName","name":"Recipient's first name","type":"text","required":true,"max_length":50}]},{"name":"Recipient's last name","group":[{"key":"lastName","name":"Recipient's last name","type":"text","required":true,"max_length":50}]},{"name":"Recipient's phone number","group":[{"key":"phone","name":"Recipient's phone number","type":"text","required":true,"max_length":20}]},{"name":"Account Number (IBAN)","group":[{"key":"bank_account","name":"Recipient's IBAN","type":"text","example":"TR1234567890","required":true,"max_length":26}]}],"total_fee":"0.0000"},{"type":"swift_code","title":"SWIFT","fields":[{"name":"Full name of the account holder","group":[{"key":"beneficiaryName","name":"Full name of the account holder","type":"text","example":"John Doe","required":true,"refresh_requirements_on_change":false}]},{"name":"SWIFT / BIC code","group":[{"key":"swiftCode","name":"SWIFT / BIC code","type":"text","example":"BUKBGB22","required":true,"max_length":11,"min_length":8,"display_format":null,"values_allowed":null,"validation_regexp":"^[a-zA-Z]{6}(([a-zA-Z0-9]{2})|([a-zA-Z0-9]{5}))$","refresh_requirements_on_change":true}]},{"name":"IBAN / Account Number","group":[{"key":"accountNumber","name":"IBAN / Account Number","type":"text","example":"123456789012","required":true,"max_length":34,"min_length":4,"display_format":null,"values_allowed":null,"validation_regexp":"^[a-zA-Z0-9]{4,34}$","refresh_requirements_on_change":false}]}],"total_fee":"5.0000","intermediary":[{"name":"BIC of the intermediary bank","group":[{"key":"intermediary.bic","name":"BIC of the intermediary bank","type":"text","example":"BUKBGB22","required":true,"max_length":11,"min_length":8,"display_format":null,"values_allowed":null,"validation_regexp":"^[a-zA-Z]{6}(([a-zA-Z0-9]{2})|([a-zA-Z0-9]{5}))$","refresh_requirements_on_change":true}]},{"name":"Country of the intermediary bank","group":[{"key":"intermediary.country","name":"Country of the intermediary bank","type":"select","example":"Choose a country","required":true,"max_length":null,"min_length":null,"display_format":null,"values_allowed":[{"key":"AS","name":"American Samoa"},{"key":"AD","name":"Andorra"},{"key":"AO","name":"Angola"}],"validation_regexp":null,"refresh_requirements_on_change":true}]}]}]}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"BAD_REQUEST","description":"Machine-readable error code."},"message":{"type":"string","example":"Invalid input","description":"Human-readable explanation."}}}}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"country","schema":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2},"example":"US","required":true,"description":"Country code"},{"in":"query","name":"currency","schema":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3},"example":"USD","required":true,"description":"Currency code"},{"in":"query","name":"amount","schema":{"type":"number","format":"double"},"example":100,"description":"Amount for calculating fees, if not provided, the default amount of 100.00 is used"}],"description":"Returns the field requirements for creating a bank transfer method for the specified country and currency combination, including fee information calculated against the provided amount or a default of 100.00.\n\n **Token scopes**: `worker:read`","operationId":"getBankTransferRequirements-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/contracts/{contract_id}/off-cycle-payments":{"get":{"path":"/rest/contracts/{contract_id}/off-cycle-payments","tags":["Off-cycle Payments"],"method":"get","summary":"List of off-cycle payments","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status","description","date_submitted","created_at","currency_code","amount","reported_by"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the off-cycle payment."},"amount":{"type":"string","example":"500.00","nullable":false,"description":"The amount of the off-cycle payment."},"status":{"enum":["approved","declined","new","not_payable","paid","pending","processing",null],"type":"string","example":"approved","nullable":true,"description":"The current status of the off-cycle payment."},"created_at":{"type":"string","format":"date-time","example":"2024-11-25T14:30:00.000Z","nullable":false,"description":"The timestamp when the off-cycle payment was created."},"description":{"type":"string","example":"Reimbursement for travel expenses","nullable":false,"description":"A description or reason for the off-cycle payment."},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the reporter."},"full_name":{"type":"string","example":"Jane Doe","nullable":false,"description":"Full name of the individual who reported the payment.","x-sensitive-pii":true}},"description":"Details of the person who reported the off-cycle payment."},"currency_code":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"The three-letter ISO currency code for the payment amount."},"date_submitted":{"type":"string","format":"date-time","example":"2024-11-20T09:00:00.000Z","nullable":false,"description":"The timestamp when the off-cycle payment was submitted."}}},"example":[{"id":"00000000-0000-0000-0000-000000000000","amount":"500.00","status":"approved","created_at":"2024-11-25T14:30:00.000Z","description":"Reimbursement for travel expenses","reported_by":{"id":"00000000-0000-0000-0000-000000000000","full_name":"Jane Doe"},"currency_code":"USD","date_submitted":"2024-11-20T09:00:00.000Z"}],"description":"List of off-cycle payments matching the requested contract."}}},"examples":{"success":{"value":{"data":[{"id":"00000000-0000-0000-0000-000000000000","amount":"500.00","status":"approved","created_at":"2024-11-25T14:30:00.000Z","description":"Reimbursement for travel expenses","reported_by":{"id":"00000000-0000-0000-0000-000000000000","full_name":"Jane Doe"},"currency_code":"USD","date_submitted":"2024-11-20T09:00:00.000Z"},{"id":"00000000-0000-0000-0000-000000000000","amount":"1500.00","status":"pending","created_at":"2024-11-22T10:15:00.000Z","description":"Bonus payment","reported_by":{"id":"00000000-0000-0000-0000-000000000000","full_name":"John Smith"},"currency_code":"EUR","date_submitted":"2024-11-21T15:45:00.000Z"}]},"summary":"Example response"}}}},"description":"Successful retrieval of off-cycle payments."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","message":"\"contract_id\" must be a valid identifier"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"\"contract_id\" must be a valid identifier","description":"Human-readable description of the validation error."}}},"description":"Validation errors describing why the off-cycle payments could not be listed."}}}}},"description":"Bad Request - The contract_id parameter failed validation."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"ACCESS_DENIED","message":"Access Denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"ACCESS_DENIED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access Denied","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why the off-cycle payments could not be accessed."}}}}},"description":"Forbidden - The requesting token is not authorized to list off-cycle payments as a client."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"CONTRACT_NOT_FOUND","message":"Contract not found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"CONTRACT_NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Contract not found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the contract could not be found."}}}}},"description":"Not Found - The specified contract does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the off-cycle payments cannot be listed."}}}}},"description":"Internal Server Error - The off-cycle payments could not be listed due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcdefg","required":true,"description":"The unique identifier (ID) of the Deel contract for which to retrieve off-cycle payments."}],"description":"Retrieves all off-cycle payments for a specified contract. Off-cycle payments represent payments made outside the regular payment schedule, such as exceptional or one-time expenses.\n\n **Token scopes**: `off-cycle-payments:read`","operationId":"getOffCyclePaymentsByContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["off-cycle-payments:read"]}]},"post":{"path":"/rest/contracts/{contract_id}/off-cycle-payments","tags":["Off-cycle Payments"],"method":"post","summary":"Add off-cycle payment","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The unique identifier of the created off-cycle payment."},"created":{"type":"boolean","example":true,"description":"Indicates whether the off-cycle payment was successfully created."}},"description":"Details of the newly created off-cycle payment."}}},"examples":{"success":{"value":{"data":{"id":"00000000-0000-0000-0000-000000000000","created":true}}}}}},"description":"The off-cycle payment was successfully created."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"OFF_CYCLE_PAYMENTS_CREATION_NOT_SUPPORTED","message":"Off-cycle payments creation is not supported for this contract type"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"OFF_CYCLE_PAYMENTS_CREATION_NOT_SUPPORTED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Off-cycle payments creation is not supported for this contract type","description":"Human-readable description of the validation or business rule violation."}}},"description":"Validation or business rule errors describing why the off-cycle payment could not be created, such as invalid input or an unsupported contract type."}}}}},"description":"Bad Request - The request payload failed validation or the contract type does not support off-cycle payments."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"CONTRACT_NOT_FOUND","message":"Cannot find contract"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"CONTRACT_NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Cannot find contract","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the contract could not be found."}}}}},"description":"Not Found - The specified contract does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the off-cycle payment cannot be created."}}}}},"description":"Internal Server Error - The off-cycle payment could not be created due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcdefg","required":true,"description":"The unique identifier (ID) of the Deel contract for which the off-cycle payment is being created."}],"description":"Creates a new invoice line item for an off-cycle payment against a specific contract, for use when a payment must be issued outside the regular payment schedule.\n\n **Token scopes**: `off-cycle-payments:write`","operationId":"addOffCyclePayment-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","nullable":false,"required":["date_submitted","amount","description"],"properties":{"amount":{"type":"number","example":500,"minimum":0,"nullable":false,"description":"The amount of the off-cycle payment."},"description":{"type":"string","example":"Reimbursement for travel expenses","nullable":false,"description":"A description or reason for the off-cycle payment."},"date_submitted":{"type":"string","format":"date","example":"2024-12-01","description":"The date the off-cycle payment is submitted, in ISO-8601 format (YYYY-MM-DD)."},"is_auto_approved":{"type":"boolean","example":true,"description":"If true, the off-cycle payment will be automatically approved as part of the request."},"hourly_report_preset_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Id of an existing preset."}},"description":"The off-cycle payment data to submit."}}},"examples":{"success":{"value":{"data":{"amount":500,"description":"Reimbursement for travel expenses","date_submitted":"2024-12-01"}}}}}},"required":true,"description":"Details of the off-cycle payment to be created."},"security":[{"deelToken":[]},{"oauth2":["off-cycle-payments:write"]}]}},"/ats/locations":{"get":{"path":"/rest/ats/locations","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS locations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","updated_at","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the location"},"city":{"type":"string","example":"New York","nullable":true,"description":"City name","x-sensitive-employment":true},"name":{"type":"string","example":"United States","description":"Name of the location/country","x-sensitive-employment":true},"is_remote":{"type":"boolean","example":false,"description":"Indicates if this is a remote location","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","description":"Timestamp when the location was created"},"updated_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","description":"Timestamp when the location was last updated"},"country_code":{"type":"string","example":"US","nullable":true,"description":"ISO country code","x-sensitive-employment":true},"location_group":{"type":"object","nullable":true,"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the location group"},"name":{"type":"string","example":"Remote","description":"Name of the location group"}},"description":"Location group information"},"province_or_region_text":{"type":"string","example":"New York","nullable":true,"description":"Province or region text","x-sensitive-employment":true}}},"example":[{"id":"550e8400-e29b-41d4-a716-446655440000","city":"New York","name":"United States","is_remote":false,"created_at":"2023-01-01T00:00:00Z","updated_at":"2023-01-01T00:00:00Z","country_code":"US","location_group":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"Remote"},"province_or_region_text":"New York"}],"description":"Page of locations."},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more locations available"},"next_cursor":{"type":"string","example":"cursor123","nullable":true,"description":"Cursor for pagination to get the next set of results"},"total_count":{"type":"integer","format":"int32","example":100,"minimum":0,"description":"Total number of locations available"}}}}},"description":"Successful response with locations data."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"cursorValue","description":"The cursor for pagination"},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1},"example":50,"description":"Maximum number of records returned in one response"}],"description":"Returns a paginated list of all work locations associated with the organization, suitable for use when constructing job postings or filtering by location.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfAtsLocations-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/timesheets":{"post":{"path":"/rest/timesheets","tags":["Timesheets"],"method":"post","summary":"Create a timesheet entry","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"id":"12345678-abcd-fedc-dcba-987654321abc","status":"pending","created":true,"created_at":"2026-06-29T14:22:08.512Z"},"required":["created"],"properties":{"id":{"type":"string","format":"uuid","example":"12345678-abcd-fedc-dcba-987654321abc","description":"Unique identifier returned for the created timesheet entry resource after persistence succeeds."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","example":"pending","nullable":true,"description":"Current processing status assigned to the timesheet entry after the create workflow finishes executing."},"created":{"type":"boolean","example":true,"nullable":false,"description":"Flag indicating whether the timesheet entry record was successfully persisted by this request."},"created_at":{"type":"string","format":"date-time","example":"2026-06-29T14:22:08.512Z","nullable":true,"description":"ISO-8601 timestamp recording the exact moment the timesheet entry was created in the system."}},"description":"Container object with identifiers, status, and creation metadata for the newly created timesheet entry."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"message":"\"data.contract_id\" is required"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Optional machine-readable error code returned by the upstream service when available."},"message":{"type":"string","example":"\"data.contract_id\" is required","description":"Human-readable description of the validation or business rule violation."}}},"description":"Validation or business rule errors describing why the timesheet entry could not be created."}}}}},"description":"Bad Request - The request payload failed validation or violated a business rule for timesheet entries."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"UPSTREAM_GENERIC_ERROR","message":"Something went wrong"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"UPSTREAM_GENERIC_ERROR","description":"Stable machine-readable error code identifying the upstream or internal failure category."},"message":{"type":"string","example":"Something went wrong","description":"Human-readable error message describing the unexpected condition that prevented completing the request."}}},"description":"Generic upstream or internal errors emitted when the timesheet entry cannot be processed."}}}}},"description":"Internal Server Error - The timesheet entry could not be created due to an unexpected upstream or internal failure."}},"parameters":[],"description":"Creates a timesheet entry for an hourly contractor, recording the contract, date, hours worked, and an optional description. The entry is immediately placed into a review workflow upon creation.\n\n **Token scopes**: `timesheets:write`","operationId":"createATimesheetEntry-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"quantity":7.5,"group_key":"weekly-hours-2026-w26","contract_id":"37nex2x","description":"Sprint 42 backend work: implemented payment retry logic and reviewed two PRs.","date_submitted":"2026-06-29","is_auto_approved":true,"hourly_report_preset_id":"aabbccdd-eeff-0011-2233-445566778899"},"required":["contract_id","quantity","date_submitted","description"],"properties":{"quantity":{"type":"number","example":7.5,"minimum":0.01,"nullable":false,"description":"Number of work units (typically hours) to record based on the scale defined in the associated contract work statement."},"group_key":{"type":"string","example":"weekly-hours-2026-w26","nullable":true,"maxLength":300,"description":"When provided, timesheets sharing the same group_key within the same payment cycle are merged into a single aggregated line item on the invoice. Requires is_auto_approved to be true."},"contract_id":{"type":"string","example":"37nex2x","nullable":false,"description":"Unique Deel contract identifier (public id) that receives this timesheet entry line item."},"description":{"type":"string","default":"","example":"Sprint 42 backend work: implemented payment retry logic and reviewed two PRs.","nullable":false,"description":"Detailed human-readable explanation of the work performed that appears on the invoice and audit records."},"date_submitted":{"type":"string","format":"date","example":"2026-06-29","description":"Date the work was performed in ISO-8601 short-date format (YYYY-MM-DD) used for filtering and approvals."},"is_auto_approved":{"type":"boolean","example":true,"description":"When true, the created timesheet entry skips manual approval and is approved immediately on creation."},"hourly_report_preset_id":{"type":"string","example":"aabbccdd-eeff-0011-2233-445566778899","nullable":true,"description":"Identifier of an existing timesheet preset used to link a standardized hourly rate and label to this entry."}},"description":"Payload attributes required to create one timesheet entry with optional approval, preset, and grouping metadata."}}}},"multipart/form-data":{"schema":{"allOf":[{"allOf":[{"type":"object","required":["contract_id","quantity","date_submitted","description"],"properties":{"quantity":{"type":"number","example":7.5,"minimum":0.01,"nullable":false,"description":"Number of work units (typically hours) to record based on the scale defined in the associated contract work statement."},"group_key":{"type":"string","example":"weekly-hours-2026-w26","nullable":true,"maxLength":300,"description":"When provided, timesheets sharing the same group_key within the same payment cycle are merged into a single aggregated line item on the invoice. Requires is_auto_approved to be true."},"contract_id":{"type":"string","example":"37nex2x","nullable":false,"description":"Unique Deel contract identifier (public id) that receives this multipart timesheet entry."},"description":{"type":"string","default":"","example":"Onsite client workshop on 2026-06-25, supporting agenda attached.","nullable":false,"description":"Detailed narrative describing the work performed and the supporting document submitted with this multipart request."},"date_submitted":{"type":"string","format":"date","example":"2026-06-29","description":"Date the work was performed in ISO-8601 short-date format (YYYY-MM-DD) for this multipart timesheet entry."},"is_auto_approved":{"type":"boolean","example":false,"description":"When true, this multipart timesheet entry is approved automatically without requiring any reviewer action."},"hourly_report_preset_id":{"type":"string","example":"aabbccdd-eeff-0011-2233-445566778899","nullable":true,"description":"Identifier of an existing timesheet preset used to link a standardized hourly rate and label to this entry."}},"description":"Multipart payload fields used to create a timesheet entry with optional grouping and approval behavior plus an attached file."},{"type":"object","properties":{"file":{"type":"string","format":"binary","example":"client-workshop-agenda-2026-06-25.pdf","nullable":false,"description":"Binary file attachment (worksheet, signed timesheet, or supporting document) submitted alongside this timesheet entry."}},"description":"Object containing the binary file uploaded alongside multipart timesheet entry fields."}]}]}}},"required":true,"description":"Timesheet object that needs to be created"},"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]},"get":{"path":"/rest/timesheets","tags":["Timesheets"],"method":"get","summary":"List of timesheets","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","status","description","date_submitted","created_at","currency_code","quantity","total_amount","contract","worksheet","reported_by"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"type":{"type":"string","example":"work","description":"Deprecated - it is always \"work\""},"scale":{"type":"string","example":"custom","nullable":true,"description":"Predefined scale used to calculate the timesheet amount (e.g. hourly, daily, custom)."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","example":"approved","nullable":true,"description":"Current processing status of the timesheet."},"contract":{"type":"object","required":["id","title","type"],"properties":{"id":{"type":"string","example":"contract_abc123","nullable":false,"description":"Unique identifier of the contract."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"ongoing_time_based","description":"Type of a contract"},"title":{"type":"string","example":"Senior Backend Engineer","nullable":false,"description":"Human-readable title of the contract."}}},"quantity":{"type":"number","example":8,"nullable":true,"description":"Quantity of work units (hours, days, etc.) used to calculate the total amount."},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","example":0,"minimum":0,"description":"Number of days reported."},"hours":{"type":"number","example":8,"minimum":0,"description":"Number of hours reported."},"weeks":{"type":"number","example":0,"minimum":0,"description":"Number of weeks reported."},"minutes":{"type":"number","example":0,"minimum":0,"description":"Number of minutes reported."}},"description":"Breakdown of time worked across different units."},"attachment":{"type":"object","nullable":true,"required":["filename","key"],"properties":{"key":{"type":"string","example":"attachments/timesheet_receipt.pdf","nullable":false,"description":"You can call attachments end-point, get key and URL to upload your file."},"filename":{"type":"string","example":"timesheet_receipt.pdf","nullable":false,"description":"Original filename you used to upload using attachments end-point."}},"description":"This object is used for linking file attachments to your records."},"created_at":{"type":"string","format":"date-time","example":"2022-05-04T03:45:27.108Z","nullable":false,"description":"Timestamp when the timesheet was created (ISO-8601)."},"description":{"type":"string","example":"Backend development work for sprint 42","nullable":false,"description":"Human-readable description of the work performed."},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the reporting user."},"full_name":{"type":"string","example":"John Smith","nullable":false,"description":"Full name of the user who submitted the timesheet.","x-sensitive-pii":true}},"description":"User who submitted the timesheet."},"reviewed_by":{"type":"object","nullable":true,"required":["id","reviewed_at","remarks"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the reviewer."},"remarks":{"type":"string","example":"Approved after verification","nullable":false,"description":"Reviewer remarks or decision notes."},"full_name":{"type":"string","example":"Jane Smith","description":"Full name of the reviewer.","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2022-05-04T03:45:27.899Z","description":"Timestamp when the review occurred (ISO-8601)."}},"description":"Reviewer information if the timesheet has been reviewed."},"custom_scale":{"type":"string","example":"night_shift","nullable":true,"description":"Custom scale label defined by the client for non-standard billing rates."},"total_amount":{"type":"string","example":"200.0000","nullable":false,"description":"Total monetary value equal to quantity times rate of active work statement plus any bonus."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"ISO 4217 currency code used for the amount."},"payment_cycle":{"type":"object","nullable":false,"properties":{"end_date":{"type":"string","format":"date-time","example":"2022-05-24T03:45:27.899Z","nullable":false,"description":"End date of the payment cycle (ISO-8601)."},"start_date":{"type":"string","format":"date-time","example":"2022-05-04T03:45:27.899Z","nullable":false,"description":"Start date of the payment cycle (ISO-8601)."}},"description":"Payment cycle associated with this timesheet."},"date_submitted":{"type":"string","format":"date-time","example":"2022-05-24T03:45:27.899Z","nullable":false,"description":"Timestamp when the timesheet was submitted for review (ISO-8601)."},"hourly_report_preset":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","nullable":true,"description":"Unique identifier of the related timesheet preset."},"rate":{"type":"number","example":50,"nullable":true,"description":"Hourly rate of the related timesheet preset."},"title":{"type":"string","example":"Standard Rate","nullable":true,"description":"Title of the related timesheet preset."},"description":{"type":"string","example":"Default hourly rate for backend engineers","nullable":true,"description":"Description of the related timesheet preset."}},"description":"Timesheet preset linked to this entry, if any."}}}},"page":{"type":"object","required":["total_rows"],"properties":{"total_rows":{"type":"number","example":100,"nullable":false,"description":"Total number of records available."}},"description":"Pagination metadata for the response."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Invalid query parameters","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"GET","description":"Method of the API"},"status":{"type":"number","example":400,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Bad Request - Validation error or invalid parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"contract_id","schema":{"type":"string"},"example":"contract_abc123","description":"Filter results to timesheets belonging to this Deel contract ID."},{"in":"query","name":"contract_types","schema":{"type":"array","items":{"enum":["ongoing_time_based","pay_as_you_go_time_based","payg_milestones","payg_tasks"],"type":"string","description":"Type of a contract"},"description":"List of contract types"},"example":"ongoing_time_based","description":"Filter results to timesheets associated with the specified contract types."},{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"Current processing status of the timesheet."},"description":"List of statuses to filter by"},"example":"approved","description":"Filter results to timesheets with the specified statuses."},{"in":"query","name":"reporter_id","schema":{"type":"string","format":"uuid"},"example":"00000000-0000-0000-0000-000000000000","description":"Filter results to timesheets submitted by this user ID."},{"in":"query","name":"date_from","schema":{"type":"string","format":"date","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example 2022-12-31."},"example":"2022-12-31","description":"Filter results to timesheets submitted on or after this date (inclusive). Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},{"in":"query","name":"date_to","schema":{"type":"string","format":"date","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example 2022-12-31."},"example":"2022-12-31","description":"Filter results to timesheets submitted before this date (exclusive). Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},{"in":"query","name":"limit","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"20","description":"Maximum number of records to return per page. NOTE: query parameters are passed as strings."},{"in":"query","name":"offset","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"0","description":"Number of records to skip before starting to return results. NOTE: query parameters are passed as strings."}],"description":"Returns a paginated list of timesheets in the account, optionally filtered by contract_id, contract_types, statuses, reporter_id, or date range.\n\n **Token scopes**: `timesheets:read`","operationId":"listOfTimesheets-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]}},"/contracts/{contract_id}":{"patch":{"path":"/rest/contracts/{contract_id}","tags":["Contracts"],"method":"patch","summary":"Add external Id","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["id","title","type","status","created_at","updated_at","special_clause","start_date","termination_date","is_archived","client","worker","invitations","signatures"],"properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","nullable":false,"minLength":1,"description":"Unique identifier for the contract."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","contractor_outside_deel","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"ongoing_time_based","description":"Type of a contract."},"quote":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"fee":{"type":"number","example":200.5,"description":"Fee in local currency."},"name":{"type":"string","example":"Health Insurance","description":"Benefit's name."},"plan":{"type":"string","example":"Premium","description":"Benefit's plan."},"price":{"type":"number","example":150.75,"description":"Price in local currency."},"fee_usd":{"type":"number","example":220,"description":"Fee in USD."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":false,"maxLength":3,"minLength":3,"description":"Currency code."},"price_usd":{"type":"number","example":170.5,"description":"Price in USD."}}},"example":[{"fee":200.5,"name":"Health Insurance","plan":"Premium","price":150.75,"fee_usd":220,"currency":"USD","price_usd":170.5}],"description":"Array of benefits."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency used for the quote."}},"description":"EOR quote approved by Deel."},"title":{"type":"string","example":"Software Development Contract","nullable":false,"minLength":1,"description":"Title of the contract."},"client":{"type":"object","nullable":true,"required":["team"],"properties":{"id":{"type":"string","example":"team-abc123","description":"Unique identifier of this resource."},"team":{"type":"object","required":["id","name"],"properties":{"id":{"oneOf":[{"type":"string","example":"team-xyz789","description":"Unique identifier of this resource (string format)."},{"type":"number","example":4524200,"description":"Unique identifier of this resource (numeric format)."}],"example":"team-xyz789","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Engineering Team","nullable":false,"description":"Name of a team."}},"description":"Team information for the client organization."},"email":{"type":"string","nullable":true,"description":"User's email address. It can be an empty string when no email has been provided for the worker. This can happen for draft contracts or workers with incomplete onboarding."},"full_name":{"type":"string","example":"Acme Corp","description":"Full name of the client."},"legal_entity":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"team-xyz789","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Engineering Team","nullable":false,"description":"Name of a team."},"type":{"type":"string","example":"company","nullable":true,"description":"Type of the legal entity."},"email":{"type":"string","example":"test@example.com","nullable":true,"description":"Email address of the legal entity."},"subtype":{"type":"string","example":"general-partnership","nullable":true,"description":"Sub-type of the legal entity."},"vat_number":{"type":"string","example":"123456789","nullable":true,"description":"VAT number of the legal entity."},"registration_number":{"type":"string","example":"123456789","nullable":true,"description":"Registration number of the legal entity."}},"description":"Legal entity details of the client."}},"description":"Client details associated with the contract."},"status":{"enum":["new","under_review","waiting_for_employee_contract","waiting_for_client_sign","processing_payment","waiting_for_contractor_sign","waiting_for_eor_sign","waiting_for_employee_sign","awaiting_deposit_payment","in_progress","completed","cancelled","user_cancelled","rejected","waiting_for_client_payment","onboarding","waiting_for_approval","onboarded"],"type":"string","example":"in_progress","nullable":false,"description":"Status of a contract in Deel workflow."},"worker":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"team-abc123","description":"Unique identifier of this resource."},"email":{"type":"string","format":"email","example":"client@example.com","nullable":true,"minLength":5,"description":"User's email address.","x-sensitive-pii":true,"x-sensitive-employment":true},"country":{"type":"string","example":"US","nullable":true,"description":"Country of the worker.","x-sensitive-pii":true},"full_name":{"type":"string","example":"Acme Corp","description":"Full name of the client.","x-sensitive-pii":true,"x-sensitive-employment":true},"last_name":{"type":"string","example":"Doe","description":"Last name of the worker.","x-sensitive-pii":true,"x-sensitive-employment":true},"first_name":{"type":"string","example":"John","description":"First name of the worker.","x-sensitive-pii":true,"x-sensitive-employment":true},"nationality":{"type":"string","example":"US","nullable":true,"description":"Nationality of the worker.","x-sensitive-pii":true},"date_of_birth":{"oneOf":[{"type":"string","format":"date-time","example":"1990-01-01T00:00:00Z","description":"Full ISO 8601 date-time."},{"type":"string","format":"date","example":"1990-01-01","description":"Full ISO 8601 date (YYYY-MM-DD)."},{"enum":[""],"type":"string","description":"Empty string for unknown/unset values."}],"description":"Date of birth of the worker. Supports full date-time, date-only, or an empty string.","x-sensitive-pii":true,"x-sensitive-employment":true},"expected_email":{"type":"string","example":"test@example.com","description":"Expected email address of the worker (e.g., invitation target email).","x-sensitive-pii":true,"x-sensitive-employment":true},"alternate_email":{"type":"array","items":{"type":"object","title":"Root Schema","properties":{"email":{"type":"string","example":"test@example.com","description":"Email address of the worker.","x-sensitive-employment":true},"isVerified":{"type":"boolean","title":"True if email has been verified","example":true,"description":"Indicates whether this alternate email address has been verified."}}},"nullable":true,"description":"List of alternate email addresses.","x-sensitive-pii":true}},"description":"Worker details associated with the contract."},"job_title":{"type":"string","example":"Backend Developer","description":"Job title associated with the contract."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"type":"number","example":1,"nullable":true,"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Mid (Individual Contributor Level 2)","nullable":true,"description":"Name of seniority level e.g. Mid (Individual Contributor Level 2)."},"level":{"type":"number","example":2,"nullable":true,"description":"Level of seniority level e.g. 2."}},"description":"Seniority describes level of expertise at a job e.g. junior."},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Date and time when the contract was created."},"signatures":{"type":"object","properties":{"signed_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Date and time when the contract was signed."},"client_signature":{"type":"string","example":"Jane Doe","nullable":false,"description":"Client representative signature (typically a name)."},"client_signed_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Date and time when the client signed the contract."},"worker_signature":{"type":"string","example":"Jane Doe","nullable":false,"description":"Worker signature (typically a name).","x-sensitive-pii":true,"x-sensitive-employment":true},"worker_signed_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Date and time when the worker signed the contract."}},"description":"Signature information for the contract parties."},"start_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Date and time when the contract starts."},"updated_at":{"type":"string","format":"date-time","example":"2022-05-02T00:00:00Z","description":"Date and time when the contract was updated."},"external_id":{"type":"string","example":"external_id","nullable":true,"description":"External identifier of the contract."},"invitations":{"type":"object","properties":{"client_email":{"type":"string","example":"client@example.com","nullable":true,"description":"User's email address."},"worker_email":{"type":"string","example":"worker@example.com","nullable":true,"description":"User's email address.","x-sensitive-pii":true,"x-sensitive-employment":true}},"description":"Invitation email addresses for signing the contract."},"is_archived":{"type":"boolean","example":"false","nullable":true,"description":"Flag to indicate if the contract is archived."},"who_reports":{"type":"string","example":"client","description":"Who reports the hours."},"cost_centers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"6P73USR022JKJ2KU1","description":"Cost center name."},"number":{"type":"string","example":"553","description":"Cost center number."},"allocation_percentage":{"type":"number","example":100,"description":"Percentage of the cost center allocation."}}},"description":"List of cost centers associated with the contract."},"custom_fields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Employee ID","nullable":false,"description":"Custom field property name."},"value":{"type":"string","example":"54234","nullable":false,"description":"Custom field property value."}},"description":"Customized attributes on contracts (Employee ID, Project code, etc)."},"nullable":true,"description":"List of custom fields attached to the contract."},"notice_period":{"type":"number","example":30,"nullable":true,"description":"Notice period in days."},"scope_of_work":{"type":"string","example":"Scope of work","nullable":true,"description":"Scope of work of the contract."},"work_schedule":{"type":"object","nullable":true,"required":["name","work_hours_per_week","country","worker_types","work_schedule_type","days"],"properties":{"days":{"type":"array","items":{"type":"object","required":["day","start","end","work_hours"],"properties":{"day":{"enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"],"type":"string","example":"MONDAY","description":"Day of the week"},"end":{"type":"string","format":"time","example":"17:00:00","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$","nullable":true,"description":"End time for the work day (HH:MM:SS format)"},"start":{"type":"string","format":"time","example":"09:00:00","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$","description":"Start time for the work day (HH:MM:SS format)"},"work_hours":{"type":"number","format":"float","example":8,"maximum":24,"minimum":0,"description":"Number of working hours for this day"}},"description":"Defines working hours for a specific day of the week"},"description":"Working days and hours configuration"},"name":{"type":"string","example":"34ZNYKYL3G","maxLength":50,"description":"Unique identifier or name for the work schedule"},"country":{"type":"string","example":"IN","pattern":"^[A-Z]{2}$","description":"Country code where this work schedule applies (ISO 3166-1 alpha-2)"},"worker_types":{"type":"array","items":{"enum":["SALARIED_DIRECT_EMPLOYEE_PAYROLL","SALARIED_HRIS_DIRECT_EMPLOYEE","SALARIED_EOR_EMPLOYEE","HOURLY_EOR_EMPLOYEE","HOURLY_DIRECT_EMPLOYEE_PAYROLL"],"type":"string"},"minItems":1,"description":"List of worker types that can use this schedule"},"employment_type":{"enum":["FULL_TIME","PART_TIME","CONTRACT","TEMPORARY",null],"type":"string","example":"FULL_TIME","nullable":true,"description":"Type of employment arrangement"},"work_schedule_type":{"type":"string","example":"Fixed work schedule","description":"Work schedule type"},"work_hours_per_week":{"type":"integer","example":40,"maximum":168,"minimum":1,"description":"Total number of working hours per week"}},"description":"Defines a work schedule including working days, hours, and employment details"},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Special clause of the contract."},"employment_type":{"enum":["FULL_TIME","PART_TIME",null],"type":"string","example":"FULL_TIME","nullable":true,"description":"Type of employment."},"termination_date":{"type":"string","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Date and time when the contract ends."},"contract_template":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"37nex2x","description":"Unique identifier of a contract template."},"title":{"type":"string","example":"UK Employment Contract 2022.","description":"Title of a contract template"}},"description":"Contract template details."},"work_statement_id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","nullable":true,"description":"The unique identifier of the associated work statement."},"employment_details":{"type":"object","properties":{"type":{"type":"string","example":"full_time","description":"Type of employment."},"days_per_week":{"type":"number","example":5,"description":"Number of days per week."},"hours_per_day":{"type":"number","example":8,"description":"Number of hours per day."},"probation_period":{"type":"number","example":30,"nullable":true,"description":"Probation period in days."},"paid_vacation_days":{"type":"number","example":20,"description":"Number of paid vacation days."}},"description":"Employment-related details for the contract.","x-sensitive-employment":true},"compensation_details":{"type":"object","properties":{"scale":{"type":"string","example":"hourly","nullable":true,"description":"Scale of the payment."},"amount":{"type":"string","example":100,"nullable":true,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":31,"nullable":true,"description":"Day of the cycle end"},"frequency":{"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","nullable":true,"maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"string","example":"500","nullable":true,"description":"First payment amount."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH",null],"type":"string","example":"DAY_OF_MONTH","nullable":true,"description":" Cycle end type"},"first_payment_date":{"type":"string","example":"2024-08-30T20:59:59.999+00:00","nullable":true,"description":"First payment date."},"gross_annual_salary":{"type":"string","example":"50000","nullable":true,"description":"Gross annual salary."},"gross_signing_bonus":{"type":"string","example":"5000","nullable":true,"description":"Gross signing bonus."},"gross_variable_bonus":{"type":"string","example":"5000","nullable":true,"description":"Gross variable bonus."}},"description":"Compensation and payment configuration for the contract.","x-sensitive-employment":true}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Not found","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"PATCH","description":"Method of the API"},"status":{"type":"number","example":404,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Sets an external identifier. Link your internal reference IDs, such as employee numbers or ERP keys, to a Deel worker. The external ID must be unique and, once set, can be used as a filter when listing contracts to directly look up Deel records from an external system.\n\n **Token scopes**: `contracts:write`","operationId":"addExternalId-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["external_id"],"properties":{"external_id":{"type":"string","example":"5f0b87ae-58bf-4ca6-944a-ecbecf3025d6","nullable":true,"description":"A unique identifier for the object provided by an external system. Use or send null when you want to reset the external id."}}}}}}},"required":true,"description":"Contract object that needs to be created"},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"get":{"path":"/rest/contracts/{contract_id}","tags":["Contracts"],"method":"get","summary":"Retrieve a single contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","title","type","status","created_at","updated_at","special_clause","start_date","termination_date","is_archived","client","worker","invitations","signatures"],"properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","nullable":false,"minLength":1,"description":"Unique identifier for the contract."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","contractor_outside_deel","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"ongoing_time_based","description":"Type of a contract."},"quote":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"fee":{"type":"number","example":200.5,"description":"Fee in local currency."},"name":{"type":"string","example":"Health Insurance","description":"Benefit's name."},"plan":{"type":"string","example":"Premium","description":"Benefit's plan."},"price":{"type":"number","example":150.75,"description":"Price in local currency."},"fee_usd":{"type":"number","example":220,"description":"Fee in USD."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":false,"maxLength":3,"minLength":3,"description":"Currency code."},"price_usd":{"type":"number","example":170.5,"description":"Price in USD."}}},"example":[{"fee":200.5,"name":"Health Insurance","plan":"Premium","price":150.75,"fee_usd":220,"currency":"USD","price_usd":170.5}],"description":"Array of benefits."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency used for the quote."}},"description":"EOR quote approved by Deel."},"title":{"type":"string","example":"Software Development Contract","nullable":false,"minLength":1,"description":"Title of the contract."},"client":{"type":"object","nullable":true,"required":["team"],"properties":{"id":{"type":"string","example":"team-abc123","description":"Unique identifier of this resource."},"team":{"type":"object","required":["id","name"],"properties":{"id":{"oneOf":[{"type":"string","example":"team-xyz789","description":"Unique identifier of this resource (string format)."},{"type":"number","example":4524200,"description":"Unique identifier of this resource (numeric format)."}],"example":"team-xyz789","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Engineering Team","nullable":false,"description":"Name of a team."}},"description":"Team information for the client organization."},"email":{"type":"string","example":"client@example.com","pattern":"^[^\\s@]+@[^\\s@]+\\.[^\\s@]+(_no_mail|_archived)?$","nullable":true,"minLength":5,"description":"User's email address."},"full_name":{"type":"string","example":"Acme Corp","description":"Full name of the client."},"legal_entity":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"team-xyz789","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Engineering Team","nullable":false,"description":"Name of a team."},"type":{"type":"string","example":"company","nullable":true,"description":"Type of the legal entity."},"email":{"type":"string","example":"test@example.com","nullable":true,"description":"Email address of the legal entity."},"subtype":{"type":"string","example":"general-partnership","nullable":true,"description":"Sub-type of the legal entity."},"vat_number":{"type":"string","example":"123456789","nullable":true,"description":"VAT number of the legal entity."},"registration_number":{"type":"string","example":"123456789","nullable":true,"description":"Registration number of the legal entity."}},"description":"Legal entity details of the client."}},"description":"Client details associated with the contract."},"status":{"enum":["new","under_review","waiting_for_employee_contract","waiting_for_client_sign","processing_payment","waiting_for_contractor_sign","waiting_for_eor_sign","waiting_for_employee_sign","awaiting_deposit_payment","in_progress","completed","cancelled","user_cancelled","rejected","waiting_for_client_payment","onboarding","waiting_for_approval","onboarded"],"type":"string","example":"in_progress","nullable":false,"description":"Status of a contract in Deel workflow."},"worker":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"team-abc123","description":"Unique identifier of this resource."},"email":{"type":"string","example":"client@example.com","pattern":"^[^\\s@]+@[^\\s@]+\\.[^\\s@]+(_no_mail|_archived)?$","nullable":true,"minLength":5,"description":"User's email address.","x-sensitive-pii":true},"country":{"type":"string","example":"US","nullable":true,"description":"Country of the worker.","x-sensitive-pii":true},"full_name":{"type":"string","example":"Acme Corp","description":"Full name of the client.","x-sensitive-pii":true},"last_name":{"type":"string","example":"Doe","description":"Last name of the worker.","x-sensitive-pii":true},"first_name":{"type":"string","example":"John","description":"First name of the worker.","x-sensitive-pii":true},"nationality":{"type":"string","example":"US","nullable":true,"description":"Nationality of the worker.","x-sensitive-pii":true},"date_of_birth":{"anyOf":[{"type":"string","format":"date","example":"1990-01-01","description":"Date of birth of the worker.","x-sensitive-pii":true},{"type":"string","example":"","maxLength":0,"description":"Date of birth of the worker.","x-sensitive-pii":true}]},"expected_email":{"type":"string","example":"test@example.com","description":"Expected email address of the worker (e.g., invitation target email).","x-sensitive-pii":true},"alternate_email":{"type":"array","items":{"type":"object","title":"Root Schema","properties":{"email":{"type":"string","example":"test@example.com","description":"Email address of the worker."},"isVerified":{"type":"boolean","title":"True if email has been verified","example":true,"description":"Indicates whether this alternate email address has been verified."}}},"nullable":true,"description":"List of alternate email addresses.","x-sensitive-pii":true}},"description":"Worker details associated with the contract."},"location":{"type":"string","example":"Spain","nullable":true,"description":"Location name associated with the contract."},"job_title":{"type":"string","example":"Backend Developer","description":"Job title associated with the contract."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"type":"number","example":1,"nullable":true,"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Mid (Individual Contributor Level 2)","nullable":true,"description":"Name of seniority level e.g. Mid (Individual Contributor Level 2)."},"level":{"type":"number","example":2,"nullable":true,"description":"Level of seniority level e.g. 2."}},"description":"Seniority describes level of expertise at a job e.g. junior."},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Date and time when the contract was created."},"signatures":{"type":"object","properties":{"signed_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Date and time when the contract was signed."},"client_signature":{"type":"string","example":"Jane Doe","nullable":false,"description":"Client representative signature (typically a name)."},"client_signed_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Date and time when the client signed the contract."},"worker_signature":{"type":"string","example":"Jane Doe","nullable":false,"description":"Worker signature (typically a name).","x-sensitive-pii":true},"worker_signed_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Date and time when the worker signed the contract."}},"description":"Signature information for the contract parties."},"start_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Date and time when the contract starts."},"updated_at":{"type":"string","format":"date-time","example":"2022-05-02T00:00:00Z","description":"Date and time when the contract was updated."},"external_id":{"type":"string","example":"external_id","nullable":true,"description":"External identifier of the contract."},"invitations":{"type":"object","properties":{"client_email":{"type":"string","example":"client@example.com","nullable":true,"description":"User's email address."},"worker_email":{"type":"string","example":"worker@example.com","nullable":true,"description":"User's email address.","x-sensitive-pii":true}},"description":"Invitation email addresses for signing the contract."},"is_archived":{"type":"boolean","example":"false","nullable":true,"description":"Flag to indicate if the contract is archived."},"who_reports":{"type":"string","example":"client","description":"Who reports the hours."},"cost_centers":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"6P73USR022JKJ2KU1","description":"Cost center name."},"number":{"type":"string","example":"553","description":"Cost center number."},"allocation_percentage":{"type":"number","example":100,"description":"Percentage of the cost center allocation."}}},"description":"List of cost centers associated with the contract."},"product_area":{"type":"number","example":1234,"nullable":true,"description":"Product area code associated with the contract."},"custom_fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"64f65ef7-4d4d-4a26-b745-0398bb49f7f5","nullable":true,"description":"Unique identifier of the custom field."},"name":{"type":"string","example":"Employee ID","nullable":false,"description":"Custom field property name."},"value":{"type":"string","example":"54234","nullable":false,"description":"Custom field property value."}},"description":"Customized attributes on contracts (Employee ID, Project code, etc)."},"nullable":true,"description":"List of custom fields attached to the contract."},"notice_period":{"type":"number","example":30,"nullable":true,"description":"Notice period in days."},"scope_of_work":{"type":"string","example":"Scope of work","nullable":true,"description":"Scope of work of the contract."},"work_schedule":{"type":"object","nullable":true,"required":["name","work_hours_per_week","country","worker_types","work_schedule_type","effective_from","days"],"properties":{"days":{"type":"array","items":{"type":"object","required":["day","start","end","work_hours"],"properties":{"day":{"enum":["MONDAY","TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","SATURDAY","SUNDAY"],"type":"string","example":"MONDAY","description":"Day of the week"},"end":{"type":"string","format":"time","example":"17:00:00","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$","nullable":true,"description":"End time for the work day (HH:MM:SS format)"},"start":{"type":"string","format":"time","example":"09:00:00","pattern":"^([01]?[0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]$","description":"Start time for the work day (HH:MM:SS format)"},"work_hours":{"type":"number","format":"float","example":8,"maximum":24,"minimum":0,"description":"Number of working hours for this day"}},"description":"Defines working hours for a specific day of the week"},"description":"Working days and hours configuration"},"name":{"type":"string","example":"34ZNYKYL3G","maxLength":50,"description":"Unique identifier or name for the work schedule"},"country":{"type":"string","example":"IN","pattern":"^[A-Z]{2}$","description":"Country code where this work schedule applies (ISO 3166-1 alpha-2)"},"worker_types":{"type":"array","items":{"enum":["SALARIED_DIRECT_EMPLOYEE_PAYROLL","SALARIED_HRIS_DIRECT_EMPLOYEE","SALARIED_EOR_EMPLOYEE","HOURLY_EOR_EMPLOYEE","HOURLY_DIRECT_EMPLOYEE_PAYROLL"],"type":"string"},"minItems":1,"description":"List of worker types that can use this schedule"},"effective_from":{"type":"string","example":"2026-01-01T00:00:00.000","nullable":false,"description":"Date and time when the contract's work schedule became effective."},"employment_type":{"enum":["FULL_TIME","PART_TIME","CONTRACT","TEMPORARY",null],"type":"string","example":"FULL_TIME","nullable":true,"description":"Type of employment arrangement"},"work_schedule_type":{"type":"string","example":"Fixed work schedule","description":"Work schedule type"},"work_hours_per_week":{"type":"integer","example":40,"maximum":168,"minimum":1,"description":"Total number of working hours per week"}},"description":"Defines a work schedule including working days, hours, and employment details"},"fte_percentage":{"type":"number","example":1,"nullable":true,"description":"Full time percentage"},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Special clause of the contract."},"employment_type":{"enum":["FULL_TIME","PART_TIME",null],"type":"string","example":"FULL_TIME","nullable":true,"description":"Type of employment."},"termination_date":{"type":"string","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Date and time when the contract ends."},"contract_template":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"37nex2x","description":"Unique identifier of a contract template."},"title":{"type":"string","example":"UK Employment Contract 2022.","description":"Title of a contract template"}},"description":"Contract template details."},"work_statement_id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","nullable":true,"description":"The unique identifier of the associated work statement."},"employment_details":{"type":"object","properties":{"type":{"type":"string","example":"full_time","description":"Type of employment."},"days_per_week":{"type":"number","example":5,"description":"Number of days per week."},"hours_per_day":{"type":"number","example":8,"description":"Number of hours per day."},"probation_period":{"type":"number","example":30,"nullable":true,"description":"Probation period in days."},"paid_vacation_days":{"type":"number","example":20,"description":"Number of paid vacation days."}},"description":"Employment-related details for the contract.","x-sensitive-employment":true},"compensation_details":{"type":"object","properties":{"scale":{"type":"string","example":"hourly","nullable":true,"description":"Scale of the payment."},"amount":{"type":"string","example":100,"nullable":true,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":31,"nullable":true,"description":"Day of the cycle end"},"frequency":{"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","nullable":true,"maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"string","example":"500","nullable":true,"description":"First payment amount."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH",null],"type":"string","example":"DAY_OF_MONTH","nullable":true,"description":" Cycle end type"},"first_payment_date":{"type":"string","example":"2024-08-30T20:59:59.999+00:00","nullable":true,"description":"First payment date."},"gross_annual_salary":{"type":"string","example":"50000","nullable":true,"description":"Gross annual salary."},"gross_signing_bonus":{"type":"string","example":"5000","nullable":true,"description":"Gross signing bonus."},"gross_variable_bonus":{"type":"string","example":"5000","nullable":true,"description":"Gross variable bonus."}},"description":"Compensation and payment configuration for the contract.","x-sensitive-employment":true},"platform_payment_type":{"enum":["STANDARD","OFF_PLATFORM"],"type":"string","example":"STANDARD","description":"Whether the contract is paid through Deel (`STANDARD`) or outside Deel (`OFF_PLATFORM`). Applies to IC contracts only."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Not Found","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"GET","description":"Method of the API"},"status":{"type":"number","example":404,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"expand","schema":{"type":"array","items":{"enum":["cost_centers","custom_fields"],"type":"string","description":"Additional fields to include in the response."}},"example":["cost_centers","custom_fields"],"description":"Include additional fields in the response. Multiple values can be passed as comma-separated list."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Unique identifier of the contract."}],"description":"Retrieves the full record for a specific contract by `contract_id`, including status, compensation, worker details, and metadata. Pass `expand=cost_centers` or `expand=custom_fields` as a query parameter to include additional data in the response.\n\n **Token scopes**: `contracts:read`","operationId":"retrieveASingleContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/workers/compliance-documents/{document_id}/download":{"get":{"path":"/rest/eor/workers/compliance-documents/{document_id}/download","tags":["EOR"],"method":"get","summary":"Download submitted compliance document","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"url":{"type":"string","example":"https://api-prod.letsdeel.com/contract_requirement/12345.pdf","description":"The URL for the requested compliance document."},"expires_at":{"type":"string","format":"date-time","example":"2020-03-31T10:58:49.780Z","description":"Expiration date time of download URL."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"document_id","schema":{"type":"string"},"example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","required":true,"description":"Unique identifier for a compliance document in Deel."}],"description":"Returns a time-limited download URL for a submitted compliance document. The URL expires at the time indicated by `expires_at` in the response.\n\n **Token scopes**: `worker:read`","operationId":"downloadSubmittedComplianceDocument-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/onboarding/workers/individual":{"post":{"path":"/rest/onboarding/workers/individual","tags":["Workers"],"method":"post","summary":"Complete individual contractor profile setup","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["profile_id","company_type"],"properties":{"abn":{"type":"string","example":"12345678901","description":"Australian Business Number (11 digits).","x-sensitive-pii":true},"ssn":{"type":"string","example":"123456789","description":"Social Security Number (9 digits).","x-sensitive-pii":true},"zip":{"type":"string","example":"10001","description":"Postal or ZIP code.","x-sensitive-pii":true},"city":{"type":"string","example":"New York","description":"City of residence.","x-sensitive-pii":true},"phone":{"type":"string","example":"+15551234567","description":"Phone number in E.164 format.","x-sensitive-pii":true},"street":{"type":"string","example":"101 Main St","description":"Street address of the contractor.","x-sensitive-pii":true},"citizen":{"type":"string","example":"US","description":"Citizenship country as an ISO 3166-1 alpha-2 code.","x-sensitive-pii":true},"country":{"type":"string","example":"US","description":"Country of residence as an ISO 3166-1 alpha-2 code."},"id_type":{"type":"string","example":"passport","description":"Type of identification document provided."},"province":{"type":"string","example":"NY","description":"Province or state code within the country.","x-sensitive-pii":true},"timezone":{"type":"string","example":"America/New_York","description":"IANA timezone identifier."},"profile_id":{"type":"integer","example":2033569,"description":"Internal profile identifier for the contractor.","x-sensitive-pii":true},"personal_id":{"type":"string","example":"AB1234567","description":"Passport or national ID number.","x-sensitive-pii":true},"company_type":{"type":"string","example":"individual","description":"Type of company set up for the contractor."},"legal_status":{"type":"string","example":"individual","description":"Legal status of the individual contractor."},"address_valid":{"type":"boolean","example":true,"description":"Whether the provided address has been validated."},"tax_residence":{"type":"string","example":"US","description":"Tax residence country as an ISO 3166-1 alpha-2 code."},"onboarding_step":{"type":"string","example":"PROFILE_COMPLETED","nullable":true,"description":"Current onboarding step after setup completes.","x-sensitive-employment":true},"entity_tax_residence":{"type":"string","example":"US","description":"Tax residence country for the entity, if different from the individual."},"address_confirmed_by_user":{"type":"boolean","example":true,"description":"Whether the user has confirmed the address is correct."}}}}}}},"description":"Individual profile setup completed successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/street","description":"Name of the field causing the error"},"message":{"type":"string","example":"Must have required property 'street'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Complete the profile setup for independent contractors including address, tax details, and legal status in a single call during the IC-embedded onboarding flow. This operation requires a worker session token obtained via the worker session endpoint.\n\n **Token scopes**: `worker:write`","operationId":"completeIndividualContractorProfileSetup-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["street","city","zip","country","citizen","legal_status"],"properties":{"abn":{"type":"string","example":"12345678901","description":"Australian Business Number (11 digits). Required when tax_residence is AU."},"ssn":{"type":"string","example":"123456789","description":"Social Security Number (9 digits, no dashes). Required when tax_residence is US."},"zip":{"type":"string","example":"10001","description":"Postal or ZIP code."},"city":{"type":"string","example":"New York","description":"City of residence."},"phone":{"type":"string","example":"+15551234567","description":"Phone number in E.164 format."},"street":{"type":"string","example":"101 Main St","description":"Street address of the contractor."},"citizen":{"type":"string","example":"US","description":"Citizenship country as an ISO 3166-1 alpha-2 code."},"country":{"type":"string","example":"US","description":"Country of residence as an ISO 3166-1 alpha-2 code."},"id_type":{"type":"string","example":"passport","description":"Type of identification document provided."},"province":{"type":"string","example":"NY","description":"Province or state code within the country."},"timezone":{"type":"string","example":"America/New_York","description":"IANA timezone identifier."},"personal_id":{"type":"string","example":"AB1234567","description":"Passport or national ID number. Required when tax_residence is not US."},"legal_status":{"type":"string","example":"individual","description":"Legal status of the individual contractor."},"address_valid":{"type":"boolean","example":true,"description":"Whether the provided address has been validated."},"tax_residence":{"type":"string","example":"US","description":"Tax residence country as an ISO 3166-1 alpha-2 code. Defaults to the country field if omitted."},"entity_tax_residence":{"type":"string","example":"US","description":"Tax residence country for the entity, if different from the individual."},"address_confirmed_by_user":{"type":"boolean","example":true,"description":"Whether the user has confirmed the address is correct."}}}}}}},"required":true,"description":"Individual contractor setup details including address, tax information, and legal status."},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/invoices":{"get":{"path":"/rest/invoices","tags":["Accounting"],"method":"get","summary":"Retrieve invoices","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status","currency","created_at","total","label","paid_at","vat_total","vat_percentage","vat_id","is_overdue","issued_at","due_date","contract_id"],"properties":{"id":{"type":"string","example":"GqaY5BHQJUAM2Jg9kq2j2","description":"Unique identifier of this resource."},"label":{"type":"string","example":"INV-2023-4","description":"Label or reference number of the invoice."},"total":{"type":"string","example":"1000","description":"Total invoice amount, including fees and VAT."},"amount":{"type":"string","example":"1000","nullable":true,"description":"Billed amount of the invoice."},"status":{"enum":["pending","paid","processing","credited","refunded"],"type":"string","example":"paid","nullable":false,"description":"Current status of the invoice."},"vat_id":{"type":"string","example":"123456789","nullable":true,"description":"VAT identification number related to the invoice."},"paid_at":{"anyOf":[{"type":"string","format":"date-time","nullable":true},{"type":"string","nullable":true}],"example":"2022-05-24T09:38:46.235Z","description":"Date/time when the invoice was paid (ISO-8601). May be null or empty string."},"currency":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","nullable":false,"maxLength":3,"minLength":3,"description":"Three-letter currency code for the invoice."},"deel_fee":{"type":"string","example":"10","nullable":true,"description":"Fee charged by Deel."},"due_date":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Date and time when the invoice is due (ISO-8601 format)."},"issued_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Date and time when the invoice was issued (ISO-8601 format)."},"vat_total":{"type":"string","example":"210","nullable":true,"description":"Total amount of VAT charged on the invoice."},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Date and time when the invoice was created (ISO-8601 format)."},"is_overdue":{"type":"boolean","example":true,"nullable":true,"description":"Indicates whether the invoice is overdue."},"contract_id":{"type":"string","example":"37nex2x","nullable":true,"description":"Unique identifier of the related contract."},"vat_percentage":{"type":"string","example":"21","nullable":true,"description":"Percentage of VAT charged on the invoice."},"recipient_legal_entity_id":{"type":"string","format":"uuid","example":"2c275e07-4846-490e-b2e4-6e84139032c3","description":"Unique identifier for the recipient legal entity"}}}},"page":{"type":"object","required":["total_rows","items_per_page","offset"],"properties":{"cursor":{"type":"string","example":"GqaY5BHQJUAM2Jg9kq2j2","nullable":true,"description":"Cursor for paginated results."},"offset":{"type":"number","example":0,"maximum":999999999,"minimum":0,"nullable":false,"description":"The starting position of the current page of results."},"total_rows":{"type":"number","example":500,"nullable":false,"description":"Total number of rows available for the query."},"items_per_page":{"type":"number","example":10,"maximum":99,"minimum":1,"nullable":false,"description":"Number of items displayed per page."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Machine readable error"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"issued_from_date","schema":{"type":"string"},"example":"2022-05-24","description":"Filter invoices issued on or after the specified date."},{"in":"query","name":"issued_to_date","schema":{"type":"string"},"example":"2022-05-24","description":"Filter invoices issued before the specified date."},{"in":"query","name":"status","schema":{"enum":["all"],"type":"string"},"example":"all","required":false,"description":"If status query has value of all, all invoices will be returned. Otherwise only paid invoices will be fetched."},{"in":"query","name":"limit","schema":{"type":"number","default":25,"maximum":50,"minimum":1},"example":10,"description":"Number of records to retrieve per page."},{"in":"query","name":"offset","schema":{"type":"number","format":"int64","default":0,"maximum":999999999,"minimum":0},"example":0,"description":"Index of the first record to return."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"GqaY5BHQJUAM2Jg9kq2j2","required":false,"description":"Return next page of results after the given cursor."},{"in":"query","name":"include","style":"form","schema":{"enum":["cor"],"type":"string"},"example":"include=cor","explode":false,"required":false,"description":"Will include invoices from COR workers in the response."}],"description":"Returns a paginated list of invoices; by default only paid invoices are returned, but passing `status=all` returns invoices in all statuses. Supports both offset- and cursor-based pagination.\n\n **Token scopes**: `accounting:read`","operationId":"retrieveInvoices-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/roles":{"get":{"path":"/rest/roles","tags":["Organizations"],"method":"get","summary":"Get the roles of the current organization.","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":1,"name":"Organization Admin","scope":"ORGANIZATION","hrisOrgStructureId":"org-admin-01"},{"id":2,"name":"HR Manager","scope":"ORGANIZATION","hrisOrgStructureId":null},{"id":3,"name":"Team Lead","scope":"TEAM","hrisOrgStructureId":"team-lead-02"}]},"required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","scope"],"properties":{"id":{"type":"number","example":1001,"description":"The unique identifier for the role."},"name":{"type":"string","example":"Organization Admin","description":"The name of the role."},"scope":{"type":"string","example":"ORGANIZATION","description":"The scope of the role, which can define the level of access. For example, 'ORGANIZATION' represents a global role within the organization."},"hrisOrgStructureId":{"type":"string","example":"987fcdeb-51a2-43d7-9012-3456789abcde","nullable":true,"description":"The HRIS (Human Resource Information System) organization structure ID associated with the role, if applicable."}}}}}}}},"description":"Successful retrieval of the organization roles."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad request. Missing required parameters or invalid request format."}}}}},"description":"Bad request. The request was malformed or missing required parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized. Please provide valid authentication credentials."}}}}},"description":"Unauthorized. The request is missing authentication credentials or the credentials provided are invalid."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Internal server error. Please try again later."}}}}},"description":"Internal server error. An error occurred while processing the request."}},"parameters":[],"description":"Retrieves all roles defined within the current organization.\n\n **Token scopes**: `organizations:read`","operationId":"getTheRolesOfTheCurrentOrganization-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"post":{"path":"/rest/roles","tags":["Organizations"],"method":"post","summary":"Create organization custom role.","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number","example":1,"description":"Organization role id"},"name":{"type":"string","example":"Admin","description":"Organization role name"},"scope":{"type":"string","example":"ORGANIZATION","description":"Organization role scope"},"description":{"type":"string","example":"Admin role","description":"Organization role description"},"permissionSets":{"type":"array","items":{"type":"string","example":"accounting:read","description":"Set of permissions for the organization role"}},"hrisOrgStructureId":{"type":"string","example":"abc123","description":"HRIS organization structure id"}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates a new custom role within the current organization.\n\n **Token scopes**: `organizations:write`","operationId":"CreateOrganizationRole-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["name","description","permissionSets","scope"],"properties":{"name":{"type":"string","example":"Admin","description":"Organization role name"},"scope":{"type":"string","example":"ORGANIZATION","description":"Organization role scope"},"description":{"type":"string","example":"Admin role","description":"Organization role description"},"permissionSets":{"type":"array","items":{"type":"string","example":"accounting:read","description":"Set of permissions for the organization role"}},"hrisOrgStructureId":{"type":"string","example":"abc123","description":"HRIS organization structure id"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/invoice-adjustments/{id}":{"get":{"path":"/rest/invoice-adjustments/{id}","tags":["Invoices"],"method":"get","summary":"Invoice line item by Id","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","type","status","description","date_submitted","created_at","currency_code","quantity","total_amount","contract","worksheet","reported_by","reviewed_by","payment_cycle","attachment"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","nullable":true,"description":"Unique identifier of this resource."},"type":{"enum":["accrued_holiday","additional_fee","allowance","bonus","commission","deduction","deposit","deposit_refund","employer_cost","expense","health_allowance","health_benefit","health_insurance_fee","legal_fee","management_fee","milestone","offcycle","other","overtime","pension","pro_rata","setup_fee","severance","shield_service","signing_bonus","signing_bonus_employer_cost","refund","task","time_off","vat","withholding_tax","work"],"type":"string","example":"bonus","description":"Type of invoice adjustment."},"scale":{"type":"string","example":"hourly","nullable":true,"description":"The scale used for calculation (e.g., hourly, daily)."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","example":"approved","nullable":true,"description":"status of invoice adjustment"},"contract":{"type":"object","required":["id","title","type"],"properties":{"id":{"type":"string","example":"cont_987654321","nullable":false,"description":"The unique identifier of the contract."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"ongoing_time_based","description":"Type of a contract"},"title":{"type":"string","example":"Senior Software Engineer","nullable":false,"description":"The display title of the contract."}}},"quantity":{"type":"number","example":1.5,"nullable":true,"description":"The quantity/number of units applied."},"approvers":{"type":"array","items":{"type":"object","required":["approved"],"properties":{"email":{"type":"string","example":"approver@example.com","description":"Email address of the approver.","x-sensitive-pii":true},"approved":{"type":"boolean","example":true,"description":"Whether the specific approver has approved the adjustment."},"full_name":{"type":"string","example":"John Doe","description":"Full name of the approver.","x-sensitive-pii":true}}}},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","example":2,"minimum":0,"description":"Number of days."},"hours":{"type":"number","example":4,"minimum":0,"description":"Number of hours."},"weeks":{"type":"number","example":0,"minimum":0,"description":"Number of weeks."},"minutes":{"type":"number","example":30,"minimum":0,"description":"Number of minutes."}},"description":"Breakdown of the time/effort involved in the adjustment."},"attachment":{"type":"object","nullable":true,"required":["filename","key"],"properties":{"key":{"type":"string","example":"attachments/receipt_123.pdf","nullable":false,"description":"Storage key returned from the attachments endpoint, can be used as a unique identifier for the file"},"filename":{"type":"string","example":"receipt.pdf","nullable":false,"description":"Original filename of the uploaded attachment"},"download_url":{"type":"string","example":"https://s3.us-east-1.amazonaws.com/attachments/receipt_123.pdf","nullable":true,"description":"URL used to download the uploaded attachment file."}},"description":"File attachment linked to the invoice adjustment."},"created_at":{"type":"string","format":"date-time","example":"2023-10-25T14:30:00Z","nullable":false,"description":"Long date-time format following ISO-8601"},"invoice_id":{"type":"number","example":10293,"nullable":true,"description":"Deprecated. No longer used"},"description":{"type":"string","example":"Travel expense reimbursement for October client visit.","nullable":false,"description":"Details or notes regarding the adjustment."},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"oneOf":[{"type":"string","example":"user_789","description":"Unique identifier of this resource."},{"type":"integer","format":"int64","example":789,"description":"Unique identifier of this resource."}]},"full_name":{"type":"string","example":"Alice Reporter","nullable":false,"description":"Full name of the reporter.","x-sensitive-pii":true}},"description":"The user who reported/submitted the adjustment."},"reviewed_by":{"type":"object","nullable":true,"required":["id","reviewed_at","remarks"],"properties":{"id":{"oneOf":[{"type":"string","example":"reviewer_456","description":"Unique identifier of this resource."},{"type":"integer","format":"int64","example":456,"description":"Unique identifier of this resource."}]},"remarks":{"type":"string","example":"Approved based on provided receipts.","nullable":false,"description":"Comments or notes left by the reviewer."},"full_name":{"type":"string","example":"Jane Smith","description":"Full name of the reviewer.","x-sensitive-pii":true},"reviewed_at":{"type":"string","example":"2023-10-26T09:00:00Z","description":"The timestamp when the review occurred."}},"description":"The user who reviewed the adjustment."},"custom_scale":{"type":"string","example":"per_trip","nullable":true,"description":"A custom unit of measurement if the standard 'scale' is not applicable."},"total_amount":{"type":"string","example":"150.00","nullable":false,"description":"The total monetary value of the adjustment."},"currency_code":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Three-letter ISO-4217 currency code."},"payment_cycle":{"type":"object","nullable":false,"required":["start_date","end_date"],"properties":{"end_date":{"type":"string","format":"date-time","example":"2023-10-31T23:59:59Z","nullable":false,"description":"Long date-time format following ISO-8601"},"start_date":{"type":"string","format":"date-time","example":"2023-10-01T00:00:00Z","nullable":false,"description":"Long date-time format following ISO-8601"}}},"date_submitted":{"type":"string","format":"date-time","example":"2023-10-25T14:30:00Z","nullable":false,"description":"Long date-time format following ISO-8601"},"invoice_public_id":{"type":"string","example":"8ruUDt5rMJQ2frDPnuBQq","nullable":true,"description":"Public Identifier for the associated invoice."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"contract_id","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must be valid UUID","description":"Human-readable explanation of the error"}}}}}}}},"description":"Fetch failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"INV-2025/01","required":true,"description":"ID of an existing invoice"}],"description":"Retrieves a single invoice line item by its `id`.\n\n **Token scopes**: `invoice-adjustments:read`, `worker:read`","operationId":"invoiceLineItemById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:read","worker:read"]}]},"delete":{"path":"/rest/invoice-adjustments/{id}","tags":["Invoices"],"method":"delete","summary":"Delete adjustment","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","nullable":false,"description":"Confirms the deletion."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"required":true,"description":"Invoice adjustment id."}],"description":"Permanently removes an invoice adjustment by its `id`.\n\n **Token scopes**: `invoice-adjustments:write`","operationId":"deleteInvoiceAdjustment-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}]},"patch":{"path":"/rest/invoice-adjustments/{id}","tags":["Invoices"],"method":"patch","summary":"Update an invoice adjustment","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"type":"boolean","example":true,"nullable":false,"description":"Confirms the update."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"Invoice adjustment id."}],"description":"Applies a partial update to an existing invoice adjustment; only fields included in the request body are modified.\n\n **Token scopes**: `invoice-adjustments:write`, `worker:write`","operationId":"updateAnInvoiceAdjustment-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"title":{"type":"string","example":"Your title here","description":"Title of adjustment."},"amount":{"type":"number","example":100.25,"description":"Amount of adjustment."},"description":{"type":"string","example":"Your description here","description":"Description of adjustment."}},"description":"Details of adjustment to update"}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write","worker:write"]}]}},"/organizations/tasks":{"get":{"path":"/rest/organizations/tasks","tags":["Organization Tasks"],"method":"get","summary":"List organization tasks","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","total_count","next_cursor","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the task."},"status":{"enum":["PENDING","COMPLETED","DISMISSED","FAILED"],"type":"string","example":"PENDING","description":"Current status of the task.","x-sensitive-employment":true},"category":{"type":"string","example":"TIME_SHEET_SUBMISSIONS","description":"Category of the task."},"due_date":{"type":"string","format":"date-time","example":"2025-03-15T23:59:59.000Z","nullable":true,"description":"When the task is due."},"assignees":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","example":"2d6I9IfaKbQsJlevzy1LM","description":"Public identifier of the assignee (HRIS profile OID or profile public_id).","x-sensitive-employment":true},"email":{"type":"string","example":"jane.doe@example.com","nullable":true,"description":"Assignee's email address.","x-sensitive-pii":true,"x-sensitive-employment":true},"last_name":{"type":"string","example":"Doe","nullable":true,"description":"Assignee's last name.","x-sensitive-pii":true,"x-sensitive-employment":true},"first_name":{"type":"string","example":"Jane","nullable":true,"description":"Assignee's first name.","x-sensitive-pii":true,"x-sensitive-employment":true}}},"example":[{"id":"2d6I9IfaKbQsJlevzy1LM","email":"jane.doe@example.com","last_name":"Doe","first_name":"Jane"}],"description":"List of users assigned to this task. Each assignee is either an HRIS profile (worker in organization context) or a profile without organization context.","x-sensitive-pii":true,"x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2025-02-01T10:00:00.000Z","description":"When the task was created."},"expired_at":{"type":"string","format":"date-time","example":"2025-03-15T23:59:59.000Z","nullable":true,"description":"When the task expires, if set."},"description":{"type":"string","example":"Please submit your timesheet for the current period.","nullable":true,"description":"Detailed description of the task."},"external_id":{"type":"string","example":"SJDSS-2322-SDFW","nullable":true,"description":"External reference ID, if the task was created with one."},"resolved_at":{"type":"string","format":"date-time","example":"2025-03-15T23:59:59.000Z","nullable":true,"description":"When the task was resolved (completed or dismissed)."},"display_name":{"type":"string","example":"Submit your timesheet","description":"Human-readable title of the task."}}},"example":[{"id":"550e8400-e29b-41d4-a716-446655440000","status":"PENDING","category":"TIME_SHEET_SUBMISSIONS","due_date":"2025-03-15T23:59:59.000Z","assignees":[{"id":"2d6I9IfaKbQsJlevzy1LM","email":"jane.doe@example.com","last_name":"Doe","first_name":"Jane"}],"created_at":"2025-02-01T10:00:00.000Z","expired_at":null,"description":"Please submit your timesheet for the current period.","external_id":null,"resolved_at":null,"display_name":"Submit your timesheet"}],"description":"List of task objects for the organization."},"has_more":{"type":"boolean","example":false,"nullable":false,"description":"Flag to highlight if there are more items to be fetched."},"next_cursor":{"type":"string","example":"eyJvZmZzZXQiOjIwLCJsaW1pdCI6MjB9","nullable":true,"description":"Cursor to request the next page; null if there are no more pages."},"total_count":{"type":"integer","example":42,"minimum":0,"description":"Total number of tasks matching the filter."}}}}},"description":"Successful response. Returns tasks for the organization"},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"BAD_REQUEST","field":"cursor","details":null,"message":"Invalid query parameters"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"BAD_REQUEST","description":"Machine-readable error code."},"field":{"type":"string","example":"cursor","nullable":true,"description":"Request field that caused the error, if applicable."},"details":{"type":"object","example":null,"nullable":true,"description":"Additional error details."},"message":{"type":"string","example":"Invalid query parameters","description":"Human-readable error message."}}},"minItems":1,"description":"List of error entries."}}}}},"description":"Bad request Error"},"401":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"UNAUTHORIZED","field":null,"details":null,"message":"Invalid or expired token"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"UNAUTHORIZED","description":"Machine-readable error code."},"field":{"type":"string","example":null,"nullable":true,"description":"Request field that caused the error, if applicable."},"details":{"type":"object","example":null,"nullable":true,"description":"Additional error details."},"message":{"type":"string","example":"Invalid or expired token","description":"Human-readable error message."}}},"minItems":1,"description":"List of error entries."}}}}},"description":"Invalid, expired, or missing API token."},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"FORBIDDEN","field":null,"details":null,"message":"You do not have permission to access this resource"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"FORBIDDEN","description":"Machine-readable error code."},"field":{"type":"string","example":null,"nullable":true,"description":"Request field that caused the error, if applicable."},"details":{"type":"object","example":null,"nullable":true,"description":"Additional error details."},"message":{"type":"string","example":"You do not have permission to access this resource","description":"Human-readable error message."}}},"minItems":1,"description":"List of error entries."}}}}},"description":"User does not have permission Error"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"422":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","field":"statuses","details":{"allowed_values":["PENDING","COMPLETED","DISMISSED","FAILED"]},"message":"Validation failed"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."},"field":{"type":"string","example":"statuses","nullable":true,"description":"Request field that failed validation."},"details":{"type":"object","example":{"allowed_values":["PENDING","COMPLETED","DISMISSED","FAILED"]},"nullable":true,"description":"Additional validation details."},"message":{"type":"string","example":"Validation failed","description":"Human-readable error message."}}},"minItems":1,"description":"List of validation errors."}}}}},"description":"Validation error"},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"INTERNAL_SERVER_ERROR","field":null,"details":null,"message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"INTERNAL_SERVER_ERROR","description":"Machine-readable error code."},"field":{"type":"string","example":null,"nullable":true,"description":"Request field that caused the error, if applicable."},"details":{"type":"object","example":null,"nullable":true,"description":"Additional error details."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message."}}},"minItems":1,"description":"List of error entries."}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["PENDING","COMPLETED","DISMISSED","FAILED"],"type":"string"},"default":["PENDING"]},"example":["PENDING"],"required":false,"description":"Filter by task statuses."},{"in":"query","name":"category","schema":{"enum":["PAYROLL","PAYMENTS","SETUP","EXPENSE_REQUESTS","TIME_OFF_REQUESTS","TIME_SHEET_SUBMISSIONS","PEOPLE_MANAGEMENT","DOCUMENT_ACTIONS","LEGAL_ENTITY_DOCUMENTS","HIRING","OTHER_TASKS","DEEL_IT","COMPLIANCE","PAYMENT_METHODS","ACCOUNTING"],"type":"string"},"example":"PAYROLL","required":false,"description":"Filter by task category."},{"in":"query","name":"search","schema":{"type":"string"},"example":"Submit timesheet","required":false,"description":"Search string for task display name or description."},{"in":"query","name":"external_id","schema":{"type":"string"},"example":"ext-ref-123","required":false,"description":"Filter by external ID (for tasks created with an external reference)."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJvZmZzZXQiOjIwLCJsaW1pdCI6MjB9","required":false,"description":"Opaque cursor for cursor-based pagination. When provided, use with limit only (do not use offset)."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of records to return (1-100)."}],"description":"Returns a paginated list of all tasks for the current organization, not limited to those assigned to the caller; intended for callers with the `organization.manage` permission. Supports both offset/limit and cursor-based pagination, which are mutually exclusive — do not supply `cursor` together with an offset parameter.\n\n **Token scopes**: `tasks:read`","operationId":"listOrganizationTasks-v2026-03-03","security":[{"deelToken":[]},{"oauth2":["tasks:read"]}]}},"/time_offs/policy-validation-templates":{"get":{"path":"/rest/time_offs/policy-validation-templates","tags":["Time Off"],"method":"get","summary":"Retrieve policy validation templates","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"policy_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"3597fd10-8f72-4ae2-805f-71a8ec39c28e","description":"Unique identifier of the policy type."},"name":{"type":"string","example":"Maternity leave","description":"Name of the policy type."},"description":{"type":"string","example":"Maternity leave","nullable":true,"description":"Description of the policy type."}}},"description":"List of unique policy types associated with the retrieved templates."},"policy_validation_templates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"4a8dd7c5-e2c6-499b-a333-88180e8ada6b","description":"Unique identifier for the policy validation template."},"country":{"type":"string","example":"CA","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"Country code associated with this specific template instance, if applicable."},"leave_type":{"enum":["SHORT_TERM_LEAVE","LONG_TERM_LEAVE"],"type":"string","example":"SHORT_TERM_LEAVE","description":"Classification of the leave duration."},"policy_type":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"3597fd10-8f72-4ae2-805f-71a8ec39c28e","description":"Unique identifier of the policy type."},"name":{"type":"string","example":"Maternity leave","description":"Name of the policy type."},"description":{"type":"string","example":"Maternity leave","nullable":true,"description":"Description of the policy type."}},"description":"Details of the associated policy type."},"template_name":{"type":"string","example":"Canada Maternity Leave Template","nullable":true,"description":"Optional name for this specific template instance."},"tracking_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR",null],"type":"string","example":"YEAR","nullable":true,"description":"The unit used for tracking the policy cycle (e.g., yearly)."},"policy_type_id":{"type":"string","format":"uuid","example":"3597fd10-8f72-4ae2-805f-71a8ec39c28e","description":"Identifier of the associated policy type."},"tracking_cadence":{"enum":["FIXED_DAY","ANNIVERSARY","NOT_SPECIFIED"],"type":"string","example":"ANNIVERSARY","description":"Determines when the tracking cycle starts."},"policy_allowances":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"25a92212-dac7-4410-b709-122164f0647f","description":"Unique identifier for the policy allowance."},"name":{"type":"string","example":"Base Allowance","description":"Name of the allowance."},"type":{"enum":["BASE_ALLOWANCE","ADDITIONAL_ALLOWANCE"],"type":"string","example":"BASE_ALLOWANCE","description":"Type of allowance (base or additional)."},"accrual_type":{"enum":["TIMEFRAME","EVENT","TIME_OFF_IN_LIEU","HOURLY","LUMPSUM","NO_AUTO_ACCRUAL"],"type":"string","example":"TIMEFRAME","description":"How entitlement accrues (over time or based on events)."},"accrual_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR",null],"type":"string","example":"MONTH","nullable":true,"description":"Unit for accrual if type is TIMEFRAME."},"rollover_type":{"enum":["NO_ROLLOVER","LIMITED_ROLLOVER","UNLIMITED_ROLLOVER","PAY_OUT","CARRY_OVER","CARRY_OVER_PAY_OUT",null],"type":"string","example":"NO_ROLLOVER","nullable":true,"description":"Rule for carrying over unused balance to the next cycle."},"entitlement_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR"],"type":"string","example":"CALENDAR_DAY","description":"Unit in which the entitlement is measured."},"termination_type":{"enum":["NO_PAYOUT","PAYOUT_BALANCE"],"type":"string","example":"NO_PAYOUT","description":"Rule for handling the balance upon termination."},"accrual_unit_amount":{"type":"integer","example":2,"nullable":true,"description":"Amount of accrual per unit if type is TIMEFRAME."},"enable_bank_holidays":{"type":"boolean","example":true,"description":"Whether bank holidays affect the entitlement or usage."},"accrual_prorate_types":{"type":"array","items":{"enum":["PRORATE_UNPAID_LEAVE","PRORATE_PAID_LEAVE","NO_PRORATE"],"type":"string"},"example":null,"nullable":true,"description":"Specifies conditions under which accrual should be prorated."},"balance_tracking_type":{"enum":["FLEXIBLE_UP_TO_YEARLY_ALLOWANCE","FLEXIBLE_NO_LIMIT","FLEXIBLE_CUSTOM_AMOUNT","INFLEXIBLE",null],"type":"string","example":"FLEXIBLE_NO_LIMIT","nullable":true,"description":"How the balance is tracked (e.g., flexible, inflexible)."},"entitlement_start_type":{"enum":["IMMEDIATELY","FIXED_PERIOD","FIXED_DATE",null],"type":"string","example":"IMMEDIATELY","nullable":true,"description":"When the entitlement starts."},"entitlement_start_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR",null],"type":"string","example":"MONTH","nullable":true,"description":"Unit for the start period if type is FIXED_PERIOD."},"entitlement_unit_amount":{"type":"number","example":245,"nullable":true,"description":"Amount of entitlement granted in entitlement_unit."},"accrual_application_type":{"enum":["BEGIN_OF_CYCLE","BEGIN_OF_NEXT_CYCLE","END_OF_CYCLE",null],"type":"string","example":"BEGIN_OF_CYCLE","nullable":true,"description":"When the accrued amount is applied to the balance."},"rollover_expiration_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR",null],"type":"string","example":"MONTH","nullable":true,"description":"Unit for the expiration period of rolled-over balance."},"additional_allowance_rules":{"type":"array","items":{"type":"object"},"example":[],"description":"Specific rules governing additional allowances."},"rollover_limit_unit_amount":{"type":"integer","example":5,"nullable":true,"description":"Maximum amount that can be rolled over if type is LIMITED_ROLLOVER."},"entitlement_expiration_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR",null],"type":"string","example":"MONTH","nullable":true,"description":"Unit for entitlement expiration period."},"entitlement_start_unit_amount":{"type":"integer","example":3,"nullable":true,"description":"Amount for the start period if type is FIXED_PERIOD."},"rollover_expiration_unit_amount":{"type":"integer","example":6,"nullable":true,"description":"Amount for the expiration period of rolled-over balance."},"entitlement_expiration_unit_amount":{"type":"integer","example":12,"nullable":true,"description":"Amount for entitlement expiration period."},"zero_out_negative_balances_on_rollover":{"type":"boolean","example":true,"description":"Whether negative balances are reset to zero at rollover."},"part_time_worker_additional_allowance_type":{"enum":["SAME_AS_FTE","PERCENTAGE_OF_FTE","NO_ADDITIONAL_ALLOWANCE"],"type":"string","example":"SAME_AS_FTE","description":"How additional allowances apply to part-time workers."},"balance_tracking_flexible_custom_request_amount":{"type":"integer","example":10,"nullable":true,"description":"Custom amount for flexible balance tracking if applicable."}}},"description":"List of allowances defined within this policy template."},"edit_approved_mode":{"enum":["RESTRICT_FULLY","RESTRICT_BEYOND_CYCLE","NO_RESTRICT"],"type":"string","example":"NO_RESTRICT","nullable":true,"description":"Controls edit/cancel permissions on approved time off requests. Supersedes allow_to_edit_past_time_offs."},"is_payment_top_off":{"type":"boolean","example":false,"description":"Indicates if the policy involves payment top-offs."},"notice_period_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR",null],"type":"string","example":"BUSINESS_DAY","nullable":true,"description":"Unit for the required notice period."},"request_start_type":{"enum":["IMMEDIATELY","FIXED_PERIOD",null],"type":"string","example":"IMMEDIATELY","nullable":true,"description":"When a worker can start requesting time off after becoming eligible."},"request_start_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR",null],"type":"string","example":"MONTH","nullable":true,"description":"Unit for the waiting period if request_start_type is FIXED_PERIOD."},"benefits_payer_type":{"enum":["ORGANIZATION","GOVERNMENT"],"type":"string","example":"ORGANIZATION","description":"Who pays for the benefits associated with this time off."},"tracking_start_date":{"type":"string","format":"date","example":"2023-01-01","nullable":true,"description":"Specific start date for FIXED_DAY tracking cadence (YYYY-MM-DD)."},"attachment_condition":{"enum":["GREATER_THAN","LESS_THAN","GREATER_THAN_OR_EQUAL","LESS_THAN_OR_EQUAL",null],"type":"string","example":"GREATER_THAN","nullable":true,"description":"Comparison operator if attachment is conditionally required."},"overlap_request_type":{"enum":["ALLOWED","NOT_ALLOWED","ALLOWED_WITH_APPROVAL"],"type":"string","example":"NOT_ALLOWED","description":"Rule for requesting time off that overlaps with existing requests."},"enabled_policy_fields":{"type":"array","items":{"type":"string"},"example":null,"nullable":true,"description":"List of specific policy fields that are enabled or configurable."},"require_notice_period":{"type":"boolean","example":false,"nullable":true,"description":"Whether a notice period is required before taking time off."},"time_off_request_type":{"enum":["FULL_DAY","HALF_DAY","HOURLY","PERCENTAGE","FLEXIBLE"],"type":"string","example":"FULL_DAY","description":"Allowed types of time off requests (e.g., full day, hourly)."},"enable_pay_out_balance":{"type":"boolean","example":false,"description":"Whether unused balance can be paid out."},"adoption_date_definition":{"enum":["REQUIRED","OPTIONAL","FORBIDDEN"],"type":"string","example":"FORBIDDEN","description":"Rule regarding the requirement of an adoption date for relevant policies."},"allow_estimated_end_date":{"type":"boolean","example":false,"description":"Whether an estimated end date can be provided for the time off request."},"max_tracking_unit_amount":{"type":"integer","example":1,"nullable":true,"description":"Maximum duration of the tracking cycle in tracking_unit."},"min_tracking_unit_amount":{"type":"integer","example":1,"nullable":true,"description":"Minimum duration of the tracking cycle in tracking_unit."},"attachment_condition_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR",null],"type":"string","example":"BUSINESS_DAY","nullable":true,"description":"Unit for the attachment condition amount."},"max_time_off_per_tracking":{"type":"number","example":30,"nullable":true,"description":"Maximum amount of time off allowed per tracking cycle."},"min_time_off_per_tracking":{"type":"number","example":1,"nullable":true,"description":"Minimum amount of time off required per tracking cycle."},"notice_period_unit_amount":{"type":"integer","example":7,"nullable":true,"description":"Amount for the required notice period."},"time_off_type_validations":{"type":"array","items":{"type":"object"},"example":[],"description":"Specific validation rules applied to time off types under this policy."},"allow_approvers_to_request":{"type":"boolean","example":true,"description":"Whether designated approvers can also request time off under this policy."},"policy_allowance_proration":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"16eb330d-6e89-4e94-ae94-e3800214b2ec","description":"Unique identifier for the proration settings."},"has_partial_prorate":{"type":"boolean","example":true,"description":"Indicates if partial proration rules are applied."},"hire_proration_rule":{"enum":["NO_PRORATION","FULL_AMOUNT","PRORATED_MONTHLY","PRORATED_DAILY","COUNTRY_SPECIFIC","FULL_MONTH_PRORATION_BASED_ON_DAY","TENURE_BOUNDARY_PRORATION"],"type":"string","example":"NO_PRORATION","description":"Rule for prorating entitlement upon hiring."},"is_accrual_prorate_policy":{"type":"boolean","example":false,"description":"Indicates if accrual is prorated based on policy rules."},"termination_proration_rule":{"enum":["NO_PRORATION","FULL_AMOUNT","PRORATED_MONTHLY","PRORATED_DAILY","COUNTRY_SPECIFIC","FULL_MONTH_PRORATION_BASED_ON_DAY","TENURE_BOUNDARY_PRORATION"],"type":"string","example":"NO_PRORATION","description":"Rule for prorating entitlement upon termination."},"hire_proration_cut_off_date":{"type":"integer","example":15,"nullable":true,"description":"Day of the month used as cut-off for hire proration."},"part_time_worker_treatment_type":{"enum":["SAME_AS_FTE","SPECIFIC_AMOUNT","PRO_RATA","PERCENTAGE_OF_FTE","BASED_ON_WORK_HOURS","BASED_ON_WORK_DAYS","CUSTOM_ENTITLEMENT"],"type":"string","example":"SAME_AS_FTE","description":"How part-time workers are treated regarding entitlement."},"termination_proration_cut_off_date":{"type":"integer","example":15,"nullable":true,"description":"Day of the month used as cut-off for termination proration."},"part_time_worker_treatment_specific_amount":{"type":"number","example":20,"nullable":true,"description":"Specific amount if treatment type is SPECIFIC_AMOUNT."},"max_part_time_worker_treatment_specific_amount":{"type":"number","example":30,"nullable":true,"description":"Maximum specific amount for part-time treatment."},"min_part_time_worker_treatment_specific_amount":{"type":"number","example":10,"nullable":true,"description":"Minimum specific amount for part-time treatment."}},"description":"Proration rules applied to the policy allowances."},"retrospective_request_type":{"enum":["ALLOWED","NOT_ALLOWED","ALLOWED_WITH_APPROVAL"],"type":"string","example":"ALLOWED","description":"Rule for requesting time off for past dates."},"attachment_condition_amount":{"type":"integer","example":5,"nullable":true,"description":"Threshold amount for the attachment condition."},"disable_termination_editing":{"type":"boolean","example":false,"description":"Whether editing related to termination is disabled."},"include_in_termination_flow":{"type":"boolean","example":false,"description":"Whether this policy is considered during the termination process."},"max_entitlement_unit_amount":{"type":"number","example":427,"nullable":true,"description":"Maximum allowed entitlement amount."},"min_entitlement_unit_amount":{"type":"number","example":245,"nullable":true,"description":"Minimum allowed entitlement amount."},"upload_attachment_condition":{"enum":["REQUIRED","NOT_REQUIRED","CONDITIONALLY_REQUIRED","REQUIRED_WITH_CONDITION","ALWAYS_REQUIRED"],"type":"string","example":"NOT_REQUIRED","description":"Condition under which an attachment is needed for a request."},"allow_to_edit_past_time_offs":{"type":"boolean","example":true,"description":"Whether past time off requests under this policy can be edited."},"max_request_start_unit_amount":{"type":"integer","example":12,"nullable":true,"description":"Maximum waiting period amount if request_start_type is FIXED_PERIOD."},"min_request_start_unit_amount":{"type":"integer","example":1,"nullable":true,"description":"Minimum waiting period amount if request_start_type is FIXED_PERIOD."},"default_entitlement_unit_amount":{"type":"number","example":245,"nullable":true,"description":"Default amount of entitlement granted per cycle."},"maximum_time_off_request_amount":{"type":"number","example":90,"nullable":true,"description":"Maximum amount that can be requested in a single time off request."},"minimum_time_off_request_amount":{"type":"number","example":0.5,"nullable":true,"description":"Minimum amount that can be requested in a single time off request."},"auto_approval_inactivity_time_unit":{"enum":["YEAR","MONTH","WEEK","DAY","BUSINESS_DAY","CALENDAR_DAY","HOUR",null],"type":"string","example":"BUSINESS_DAY","nullable":true,"description":"Unit for the auto-approval inactivity period."},"enable_absence_percentage_requests":{"type":"boolean","example":false,"description":"Whether requests can be made as a percentage of the workday."},"estimated_end_date_client_reminder":{"type":"array","items":{"type":"integer"},"example":null,"nullable":true,"description":"Days before estimated end date to remind the client/manager."},"estimated_end_date_worker_reminder":{"type":"array","items":{"type":"integer"},"example":null,"nullable":true,"description":"Days before estimated end date to remind the worker."},"policy_validation_template_reminders":{"type":"array","items":{"type":"object"},"example":[],"description":"Configuration for reminders related to this policy template."},"is_auto_approval_on_inactivity_enabled":{"type":"boolean","example":false,"nullable":true,"description":"Whether requests are automatically approved after a period of inactivity."},"allow_time_off_payment_treatment_upsert":{"type":"boolean","example":false,"nullable":true,"description":"Whether payment treatment details can be updated."},"ops_workbench_process_template_reference":{"type":"string","example":"maternity-leave-process-v1","nullable":true,"description":"Reference to an Ops Workbench process template, if applicable."},"auto_approval_inactivity_time_unit_amount":{"type":"integer","example":3,"nullable":true,"description":"Amount for the auto-approval inactivity period."},"enable_accrued_days_for_policy_on_termination_flow":{"type":"boolean","example":false,"description":"Calculate accrued days specifically for this policy during termination."},"enable_high_accuracy_accrued_days_on_termination_flow":{"type":"boolean","example":false,"description":"Use high accuracy calculation for accrued days during termination."}}},"description":"List of policy validation templates matching the criteria."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"countries","schema":{"type":"array","items":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"The ISO 3166-1 alpha-2 country code."},"maxItems":100,"minItems":1},"example":["US","CA"],"required":true,"description":"List of countries (ISO 3166-1 alpha-2 codes) to fetch policy templates and types for."}],"description":"Returns policy validation templates and policy types for one or more countries, specified as ISO 3166-1 alpha-2 codes. Policy types in the response are unique across the result set.\n\n **Token scopes**: `time-off:read`","operationId":"retrievePolicyValidationTemplates-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/contracts/{contract_id}/tasks/{task_id}":{"delete":{"path":"/rest/contracts/{contract_id}/tasks/{task_id}","tags":["Tasks"],"method":"delete","summary":"Delete task","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the task was successfully deleted."}}}}}}},"description":"The task was successfully deleted."},"400":{"description":"Invalid request. For example, missing required parameters or invalid format."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"description":"Permission denied. The user does not have the required access to delete the task."},"404":{"description":"The specified task or contract was not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"The unique identifier of the Deel contract."},{"in":"path","name":"task_id","schema":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The unique identifier of the task to be deleted."},{"in":"query","name":"reason","schema":{"type":"string"},"example":"Task is no longer required due to scope changes.","required":false,"description":"The reason for deleting the task. This can be used for auditing purposes."}],"description":"Deletes a specific task from a contract. An optional `reason` can be supplied for audit or documentation purposes.\n\n **Token scopes**: `contracts:write`","operationId":"deleteContractTaskById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/timesheets/presets/{id}":{"get":{"path":"/rest/timesheets/presets/{id}","tags":["Projects"],"method":"get","summary":"Get Hourly Report Preset by ID","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","title","status","description"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the hourly report preset"},"file":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the file"},"name":{"type":"string","example":"your_file_name","description":"The name of the file"},"type":{"type":"string","example":"pdf","description":"The type of the file"}}},"type":{"enum":["RATE","TRACKING"],"type":"string","example":"RATE","description":"The type of preset based on type of root preset"},"title":{"type":"string","example":"Monthly Hours Summary","description":"The title of the hourly report preset"},"status":{"type":"string","example":"active","description":"The current status of the hourly report preset"},"description":{"type":"string","example":"Monthly summary of billable hours for client projects","description":"A detailed description of the hourly report preset"}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Forbidden"}}}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Not Found"}}}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The unique identifier of the hourly report preset to retrieve"}],"description":"Retrieves a single hourly report preset by its id.\n\n **Token scopes**: `timesheets:read`","operationId":"getHourlyReportPresetById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]},"delete":{"path":"/rest/timesheets/presets/{id}","tags":["Projects"],"method":"delete","summary":"Delete Hourly Report Preset","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","example":true,"description":"Indicates whether the hourly report preset was successfully deleted"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Work statement is not in allowed status"}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Forbidden"}}}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Not Found"}}}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The unique identifier of the hourly report preset to delete"}],"description":"Permanently deletes an hourly report preset identified by id.\n\n **Token scopes**: `timesheets:write`","operationId":"deleteHourlyReportPreset-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]},"patch":{"path":"/rest/timesheets/presets/{id}","tags":["Projects"],"method":"patch","summary":"Update Hourly Report Preset","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the updated hourly report preset"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Work statement is not in allowed status"}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Forbidden"}}}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Not Found"}}}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The unique identifier of the hourly report preset to update"}],"description":"Applies a partial update to an existing hourly report preset identified by id. Only fields included in the request body are modified.\n\n **Token scopes**: `timesheets:write`","operationId":"updateHourlyReportPreset-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"file":{"type":"string","format":"binary","example":"timesheet_template.pdf","nullable":true,"description":"The file to be attached to this hourly report preset (optional)"},"rate":{"type":"number","format":"float","example":75.5,"minimum":0.1,"description":"The hourly rate for this preset (must be greater than 0)"},"title":{"type":"string","example":"Client Project Hours Q1 2024","maxLength":255,"description":"The title of the hourly report preset (maximum 255 characters)"},"description":{"type":"string","example":"Quarterly timesheet template for tracking billable hours on the client's main project","nullable":true,"maxLength":30000,"description":"A detailed description of the hourly report preset's purpose and contents (maximum 30000 characters)"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]}},"/workers/tax-forms/{tax_form_id}":{"put":{"path":"/rest/workers/tax-forms/{tax_form_id}","tags":["Workers"],"method":"put","summary":"Update a tax form for the authenticated worker","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The public ID (UUID) of the tax form."},"created_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was created."},"updated_at":{"type":"string","format":"date-time","example":"2026-01-15T12:00:00.000Z","description":"Timestamp of when the tax form was last updated."}},"x-sensitive-pii":true,"x-sensitive-employment":true}}}}},"description":"Tax form replaced successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Validation failed — for example a request body field is missing or malformed, client_legal_entity_id was supplied (the legal entity cannot be reassigned), contractor_signature was omitted for a form that has no signature on record, or the form_type does not match the contractor's tax residency (e.g. a W-8BEN submitted for a US contractor)."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"forbidden","description":"Machine-readable error code"},"message":{"type":"string","example":"No active contract found for the given contractor and legal entity","description":"Human-readable explanation of the error"}}}}}}}},"description":"No live contract exists between the contractor and the tax form's client legal entity. A tax form can only be edited while the contractor has a non-terminated contract with that legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"resource_not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"Resource not found","description":"Human-readable explanation of the error"}}}}}}}},"description":"The tax form does not exist or does not belong to the authenticated worker, or the worker was not found in the calling organization or has no contractor profile."},"409":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"conflict","description":"Machine-readable error code"},"message":{"type":"string","example":"Tax form was updated concurrently, please retry","description":"Human-readable explanation of the error"}}}}}}}},"description":"The tax form was replaced by another request while this one was in flight. Fetch the current version and retry the edit."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"tax_form_id","schema":{"type":"string","format":"uuid"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"Public ID (UUID) of the tax form to replace, as returned by the create or list endpoints."}],"description":"Replace the authenticated worker's existing tax form with a corrected version, for example to fix a mistyped tax identification number, legal name or address. The worker is resolved from the access token and only their own forms are addressable. The body is the complete form rather than a partial update: an optional field left out is cleared, except contractor_signature, which keeps the value already on file when omitted — it must be supplied when the stored form carries no signature. client_legal_entity_id is not accepted — the legal entity is part of the form's uniqueness key and can never be reassigned. The worker must have an active (non-terminated) contract with the form's legal entity. Editing a form whose 1099 has already been filed with the IRS is permitted but does not refile it.\n\n **Token scopes**: `worker:write`","operationId":"replaceATaxFormForAWorker-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","oneOf":[{"type":"object","title":"W9_INDIVIDUAL","required":["form_type","first_name","last_name","address","country","city","zip_code","tax_number"],"properties":{"city":{"type":"string","example":"New York","maxLength":40,"minLength":1,"description":"City name."},"state":{"type":"string","example":"NY","nullable":true,"maxLength":10,"description":"US state code."},"address":{"type":"string","example":"123 Main Street","maxLength":40,"description":"Street address. Maximum 40 characters for 1099 reporting compliance."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"10001","description":"ZIP/postal code. Must be a valid US ZIP code for US addresses."},"form_type":{"enum":["W9_INDIVIDUAL"],"type":"string","example":"W9_INDIVIDUAL","description":"Tax form type for US individuals."},"last_name":{"type":"string","example":"Doe","maxLength":40,"description":"Legal last name."},"first_name":{"type":"string","example":"John","maxLength":40,"description":"Legal first name."},"tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["SSN","ITIN","EIN"],"type":"string","example":"SSN","description":"Tax ID type. SSN/ITIN for individuals; EIN also allowed for disregarded entities."},"value":{"type":"string","example":"219-09-9999","description":"Tax ID value."}},"description":"Taxpayer identification number."},"middle_name":{"type":"string","example":"Michael","maxLength":100,"description":"Legal middle name."},"business_name":{"type":"string","example":"John Doe LLC","nullable":true,"maxLength":40,"description":"Business name. Only applicable when is_disregarded_entity is true."},"contractor_signature":{"type":"string","example":"John Doe","maxLength":100,"minLength":1,"description":"Contractor's digital signature."},"is_disregarded_entity":{"type":"boolean","default":false,"example":true,"description":"Whether this is a disregarded entity."},"is_subject_backup_withholding":{"type":"boolean","default":false,"example":false,"description":"Whether the contractor is subject to backup withholding."}}},{"type":"object","title":"W9_COMPANY","required":["form_type","business_name","address","federal_tax_classification","country","city","zip_code","tax_number"],"properties":{"city":{"type":"string","example":"New York","maxLength":40,"minLength":1,"description":"City name."},"state":{"type":"string","example":"NY","nullable":true,"maxLength":10,"description":"US state code."},"address":{"type":"string","example":"456 Corporate Blvd","maxLength":40,"description":"Street address."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"10001","description":"ZIP/postal code."},"form_type":{"enum":["W9_COMPANY"],"type":"string","example":"W9_COMPANY","description":"Tax form type for US entities/companies."},"tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["SSN","ITIN","EIN"],"type":"string","example":"EIN","description":"Tax ID type. EIN for most entities; SSN/ITIN/EIN for LLC."},"value":{"type":"string","example":"12-3456780","description":"Tax ID value."}},"description":"Taxpayer identification number."},"business_name":{"type":"string","example":"Acme Corp","maxLength":40,"minLength":1,"description":"Business name."},"doing_business_as":{"type":"string","example":"Acme","nullable":true,"maxLength":50,"description":"DBA name."},"contractor_signature":{"type":"string","example":"Jane Smith","maxLength":100,"minLength":1,"description":"Authorized signer's digital signature."},"federal_tax_classification":{"type":"object","required":["type"],"properties":{"type":{"enum":["C_CORPORATION","S_CORPORATION","OTHER","PARTNERSHIP","LLC","TRUST_ESTATE"],"type":"string","example":"LLC","description":"Federal tax classification type."},"llc_classification":{"enum":["P","S","C"],"type":"string","example":"C","description":"LLC sub-classification. Required when type is 'LLC'."},"other_additional_information":{"type":"string","example":"Nonprofit organization exempt under section 501(c)","maxLength":100,"description":"Additional information. Required when type is 'OTHER'."}},"description":"Federal tax classification."},"is_subject_backup_withholding":{"type":"boolean","default":false,"example":false,"description":"Whether the contractor is subject to backup withholding."}}},{"type":"object","title":"W8_BEN","required":["form_type","first_name","last_name","country_of_citizenship","country","zip_code","address"],"properties":{"city":{"type":"string","example":"Madrid","nullable":true,"maxLength":50,"minLength":1,"description":"City name."},"state":{"type":"string","example":"Madrid","nullable":true,"maxLength":10,"description":"State or province code."},"address":{"type":"string","example":"Calle Mayor 1","maxLength":100,"description":"Street address."},"country":{"type":"string","example":"ES","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of permanent residence."},"zip_code":{"type":"string","example":"28001","description":"ZIP/postal code."},"form_type":{"enum":["W8_BEN"],"type":"string","example":"W8_BEN","description":"Tax form type for non-US individuals."},"last_name":{"type":"string","example":"Garcia","maxLength":100,"description":"Legal last name."},"first_name":{"type":"string","example":"Maria","maxLength":100,"description":"Legal first name."},"tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["FTIN"],"type":"string","example":"FTIN","description":"Foreign tax ID type."},"value":{"type":"string","example":"X1234567L","maxLength":20,"description":"Foreign tax identifying number."}},"description":"Foreign tax identifying number. At least one of us_tax_number or tax_number is required unless is_ftin_not_legally_required is true."},"middle_name":{"type":"string","example":"Isabel","nullable":true,"maxLength":100,"description":"Legal middle name."},"address_line2":{"type":"string","example":"Apt 4B","nullable":true,"maxLength":100,"description":"Street address line 2."},"date_of_birth":{"type":"string","format":"date-time","example":"1990-01-15T00:00:00.000Z","nullable":true,"description":"Date of birth. Must be at least 18 years ago and no more than 100 years ago."},"us_tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["SSN","ITIN"],"type":"string","example":"ITIN","description":"US tax ID type."},"value":{"type":"string","example":"900-70-1234","description":"US tax ID value."}},"description":"US Taxpayer Identification Number."},"mailing_address":{"type":"object","nullable":true,"required":["address","country","zip_code"],"properties":{"city":{"type":"string","example":"Madrid","nullable":true,"maxLength":50,"minLength":1,"description":"Mailing address city."},"state":{"type":"string","example":"Madrid","nullable":true,"maxLength":10,"description":"Mailing address state."},"address":{"type":"string","example":"Gran Via 45","maxLength":100,"description":"Mailing address."},"country":{"type":"string","example":"ES","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"28013","description":"Mailing address ZIP/postal code."},"address_line2":{"type":"string","example":"Floor 2","nullable":true,"maxLength":100,"description":"Mailing address line 2."}},"description":"Mailing address if different from permanent residence."},"contractor_signature":{"type":"string","example":"Maria Garcia","maxLength":100,"minLength":1,"description":"Contractor's digital signature."},"print_name_of_signer":{"type":"string","example":"Maria Garcia","nullable":true,"maxLength":100,"description":"Printed name of the signer."},"is_disregarded_entity":{"type":"boolean","default":false,"example":false,"description":"Whether this is a disregarded entity."},"is_tax_treaty_enabled":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Whether the contractor claims tax treaty benefits."},"country_of_citizenship":{"type":"string","example":"ES","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of citizenship."},"is_certified_and_agreed":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Certification that the signer has read and agrees with the certification information."},"referencing_information":{"type":"string","example":"Contract 12345","nullable":true,"maxLength":100,"description":"Reference number for the form."},"tax_treaty_benefits_form":{"type":"object","nullable":true,"properties":{"details":{"type":"string","example":"Income is not attributable to a permanent establishment in the United States.","maxLength":400,"description":"Additional details about the treaty claim."},"type_of_income":{"type":"string","example":"Independent personal services","maxLength":100,"description":"Type of income covered by the treaty."},"withholding_rate":{"type":"number","example":0,"maximum":100,"minimum":0,"description":"Withholding rate under the treaty (percentage)."},"article_and_paragraph":{"type":"string","example":"Article 7, Paragraph 1","maxLength":100,"description":"Article and paragraph of the applicable tax treaty."},"owner_resident_country":{"type":"string","example":"ES","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country of residence of the beneficial owner. Must be a US income tax treaty country."}},"description":"Tax treaty benefits details. Applicable when is_tax_treaty_enabled is true."},"is_ftin_not_legally_required":{"type":"boolean","default":false,"example":false,"description":"Check if FTIN is not legally required in your country of residence."}}},{"type":"object","title":"W8_BEN_E","required":["form_type","name_of_organization","country_of_citizenship","entity_country","entity_type","fatca_status","country","city","zip_code","address"],"properties":{"city":{"type":"string","example":"Lisbon","maxLength":50,"minLength":1,"description":"City of residence."},"giin":{"type":"string","example":"98Q96B.00000.LE.250","nullable":true,"maxLength":19,"minLength":19,"description":"Global Intermediary Identification Number (19 characters)."},"state":{"type":"string","example":"Lisboa","nullable":true,"maxLength":10,"description":"State or province code."},"address":{"type":"string","example":"Rua Augusta 100","maxLength":100,"description":"Street address."},"country":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of permanent residence."},"zip_code":{"type":"string","example":"1000","description":"ZIP/postal code."},"form_type":{"enum":["W8_BEN_E"],"type":"string","example":"W8_BEN_E","description":"Tax form type for non-US entities."},"tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["FTIN"],"type":"string","example":"FTIN","description":"Foreign tax ID type."},"value":{"type":"string","example":"501234567","maxLength":20,"description":"Foreign tax identifying number."}},"description":"Foreign tax identifying number. At least one of us_tax_number, tax_number, or giin is required unless is_ftin_not_legally_required is true."},"entity_type":{"enum":["CORPORATION","DISREGARDED_ENTITY","PARTNERSHIP","SIMPLE_TRUST","GRANTOR_TRUST","COMPLEX_TRUST","ESTATE","GOVERNMENT","CENTRAL_BANK_OF_ISSUE","TAX_EXEMPT","PRIVATE_FOUNDATION","INTERNATIONAL","FOREIGN_GOVERNMENT_CONTROLLED","FOREIGN_GOVERNMENT_INTEGRAL"],"type":"string","example":"CORPORATION","description":"Chapter 3 entity type."},"fatca_status":{"enum":["ACTIVE_NFFE","PASSIVE_NFFE"],"type":"string","example":"ACTIVE_NFFE","description":"FATCA (Foreign Account Tax Compliance Act) status."},"address_line2":{"type":"string","example":"Apt 4B","nullable":true,"maxLength":100,"description":"Street address line 2."},"date_of_birth":{"type":"string","format":"date-time","example":"1985-06-15T00:00:00.000Z","nullable":true,"description":"Date of birth of the beneficial owner."},"us_tax_number":{"type":"object","required":["type","value"],"properties":{"type":{"enum":["SSN","ITIN"],"type":"string","example":"ITIN","description":"US tax ID type."},"value":{"type":"string","example":"900-70-1234","description":"US tax ID value."}},"description":"US Taxpayer Identification Number."},"entity_country":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the entity."},"mailing_address":{"type":"object","nullable":true,"required":["address","country","zip_code"],"properties":{"city":{"type":"string","example":"Lisbon","nullable":true,"maxLength":50,"minLength":1,"description":"Mailing address city."},"state":{"type":"string","example":"Lisboa","nullable":true,"maxLength":10,"description":"Mailing address state."},"address":{"type":"string","example":"Avenida da Liberdade 200","maxLength":100,"description":"Mailing address."},"country":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code."},"zip_code":{"type":"string","example":"1250","description":"Mailing address ZIP/postal code."},"address_line2":{"type":"string","example":"Floor 2","nullable":true,"maxLength":100,"description":"Mailing address line 2."}},"description":"Mailing address if different from permanent residence."},"contractor_signature":{"type":"string","example":"Continental Ltd.","maxLength":100,"minLength":1,"description":"Authorized signer's digital signature."},"name_of_organization":{"type":"string","example":"Continental Ltd.","maxLength":100,"description":"Name of the organization."},"print_name_of_signer":{"type":"string","example":"Joao Silva","nullable":true,"maxLength":100,"description":"Printed name of the authorized signer."},"is_tax_treaty_enabled":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Whether the entity claims tax treaty benefits."},"country_of_citizenship":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of incorporation/organization."},"referencing_information":{"type":"string","example":"Contract 12345","nullable":true,"maxLength":100,"description":"Reference number for the form."},"has_substantial_us_owner":{"type":"boolean","default":false,"example":false,"description":"Whether the entity has a substantial US owner. Required when fatca_status is 'PASSIVE_NFFE'."},"tax_treaty_benefits_form":{"type":"object","nullable":true,"properties":{"details":{"type":"string","example":"Income is not attributable to a permanent establishment in the United States.","maxLength":400,"description":"Additional details about the treaty claim."},"type_of_income":{"type":"string","example":"Business profits","maxLength":25,"description":"Type of income covered by the treaty."},"limitation_type":{"enum":["GOVERNMENT","PENSION_TRUST","TAX_EXEMPT","PUBLICLY_TRADED_CORPORATION","SUBSIDIARY","OWNERSHIP_TEST","DERIVATIVE_TEST","ACTIVE_TRADE_TEST","FAVORABLE","NO_ARTICLE","OTHER"],"type":"string","example":"OTHER","nullable":true,"description":"Limitation on benefits (LOB) type."},"withholding_rate":{"type":"number","example":0,"maximum":100,"minimum":0,"description":"Withholding rate under the treaty (percentage)."},"article_and_paragraph":{"type":"string","example":"Article 7, Paragraph 1","maxLength":100,"description":"Article and paragraph of the applicable tax treaty."},"owner_resident_country":{"type":"string","example":"PT","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country of residence of the beneficial owner."},"is_tax_residency_certified":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Whether tax residency is certified."},"other_article_and_paragraph":{"type":"string","example":"Article 24, Paragraph 3","nullable":true,"maxLength":50,"description":"Other article and paragraph. Required when limitation_type is 'OTHER'."}},"description":"Tax treaty benefits details."},"name_of_disregarded_entity":{"type":"string","example":"Continental Branch Ltd.","nullable":true,"maxLength":100,"description":"Name of the disregarded entity, if applicable."},"is_ftin_not_legally_required":{"type":"boolean","default":false,"example":false,"description":"Check if FTIN is not legally required in your country."},"is_entity_certification_confirmed":{"type":"boolean","default":false,"example":true,"nullable":true,"description":"Certification that the entity is the beneficial owner of all income."}}}],"required":["form_type"],"discriminator":{"propertyName":"form_type"}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/eor/workers/banks/{bank_id}":{"patch":{"path":"/rest/eor/workers/banks/{bank_id}","tags":["EOR"],"method":"patch","summary":"Modify bank account for an EOR employee","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"dcc7b587-2246-4909-853e-12056e90c451","description":"The unique identifier of the bank account."},"status":{"enum":["NEW","PENDING","APPROVED","FAILED"],"type":"string","example":"PENDING","description":"Bank Account status"},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","description":"Date and time when bank account was created"},"updated_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","description":"Date and time when bank account was last updated"}}}}}}},"description":"Successful operation."},"400":{"description":"Invalid request parameters."},"401":{"description":"Unauthorized."},"403":{"description":"Forbidden."},"404":{"description":"Bank account not found."},"500":{"description":"Internal server error."}},"parameters":[{"in":"path","name":"bank_id","schema":{"type":"string","format":"uuid"},"example":"dcc7b587-2246-4909-853e-12056e90c451","required":true,"description":"Unique identifier for a bank in UUID format."}],"description":"Modify bank account for an EOR employee by providing only those properties whose values you would like to adjust.\n\n **Token scopes**: `worker:write`","operationId":"modifyBankAccountForAnEorEmployee-v2026-08-19","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"beneficiaryName":"John Doe"},"description":"An object where each property name represents a key of bank account property and its value is the field's value to set.","additionalProperties":{"type":"string","example":"John Doe","description":"The value for the given bank account property."}}}}}},"description":"Bank account fields to be modified, provided as key-value pairs."},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/it/orders":{"get":{"path":"/rest/it/orders","tags":["IT orders"],"method":"get","summary":"List IT orders","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the order"},"user":{"type":"object","nullable":true,"properties":{"emails":{"type":"array","items":{"type":"string","format":"email"},"example":["bruce.wayne@wayne-enterprise.com","batman@gotham.com"],"description":"Array of user email addresses","x-sensitive-pii":true},"address":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the address"},"city":{"type":"string","example":"Gotham","nullable":true,"description":"City name","x-sensitive-pii":true},"type":{"enum":["PII","PARTIAL","DELIVERY","COLLECTION","ENTITY","SUPPLIER","BILLING"],"type":"string","example":"DELIVERY","description":"Type of the address"},"line1":{"type":"string","example":"1007 Mountain Drive","nullable":true,"description":"Address line 1","x-sensitive-pii":true},"line2":{"type":"string","example":"Stately Wayne Manor","nullable":true,"description":"Address line 2","x-sensitive-pii":true},"state":{"type":"string","example":"New Jersey","nullable":true,"description":"State code or name","x-sensitive-pii":true},"country":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","XK","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"Country code","x-sensitive-pii":true},"is_valid":{"type":"boolean","example":true,"description":"Whether the address passes validation"},"post_code":{"type":"string","example":"12345","nullable":true,"description":"Post code","x-sensitive-pii":true},"phone_number":{"type":"string","example":"+1-212-456-7890","nullable":true,"description":"Phone number","x-sensitive-pii":true},"date_of_birth":{"type":"string","format":"date","example":"1997-12-18","nullable":true,"description":"Date of birth (applicable for some address types)","x-sensitive-pii":true},"tax_id_number":{"type":"string","example":"BAT123456","nullable":true,"description":"Tax ID number (applicable for some address types)","x-sensitive-pii":true},"passport_number":{"type":"string","example":"P123456789","nullable":true,"description":"Passport number (applicable for some address types)","x-sensitive-pii":true},"delivery_instructions":{"type":"string","example":"Use the Bat-Signal if urgent","nullable":true,"description":"Special instructions for deliveries","x-sensitive-pii":true}},"description":"User address details"},"last_name":{"type":"string","example":"Wayne","description":"Last name of the user","x-sensitive-pii":true},"first_name":{"type":"string","example":"Bruce","description":"First name of the user","x-sensitive-pii":true},"hris_profile_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"The unique identifier of the HRIS profile of the assigned user"}},"description":"Details of the user with asset possession"},"status":{"enum":["REQUESTED","APPROVED","DECLINED","CANCELLED"],"type":"string","example":"REQUESTED","description":"Order status"},"created_at":{"type":"string","format":"date-time","example":"2025-08-08T09:49:01.000Z","description":"Creation timestamp of the order"},"updated_at":{"type":"string","format":"date-time","example":"2025-08-08T09:49:01.000Z","description":"Last update timestamp of the order"},"order_items":{"type":"array","items":{"type":"object","properties":{"status":{"enum":["PLACED","PROCESSING","AWAITING_PAYMENT","READY_TO_SHIP","SHIPPED","COMPLETED","CANCELLED"],"type":"string","example":"SHIPPED","description":"Status of the order item"},"product":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the product"},"name":{"type":"string","example":"MacBook Pro","description":"Product name"},"brand":{"type":"string","example":"Apple","description":"Product brand"},"category":{"enum":["ADAPTER","CABLE","CHAIR","CHARGER","DESK","DESK_RISER","DESK_TIDY","DESKTOP","DOCKING_STATION","DONGLE","FOOTREST","HEADSET","KEYBOARD","LAPTOP","LAPTOP_STAND","MICE_TRACKPAD","MOBILE_DEVICE","MONITOR","MONITOR_ARM","OTHER","PRINTER","SHREDDER","STANDING_MAT","TABLET","TASK_LIGHT","WEBCAM","WIFI_RANGE_EXTENDER","WELCOME_PACK"],"type":"string","example":"LAPTOP","description":"Product category"}},"description":"Product details"},"is_approved":{"type":"boolean","example":false,"description":"Is the order item approved"},"pricing_details":{"type":"object","properties":{"asset_price":{"type":"object","nullable":true,"properties":{"amount":{"type":"string","example":"1999.99","description":"Amount"},"currency":{"enum":["EUR","AED","AFN","XCD","ALL","AMD","AOA","ARS","USD","AUD","AWG","AZN","BAM","BDT","XOF","BGN","BHD","BIF","BMD","SGD","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","XAF","CHF","NZD","CLP","CNY","COP","CRC","CUC","CVE","ANG","CZK","DJF","DOP","DZD","EGP","MAD","ERN","ETB","FJD","FKP","DKK","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","WST","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LYD","MDL","MGA","MKD","MMK","MNT","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","XPF","NGN","NIO","NOK","NPR","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","UYU","UZS","VEF","VND","VUV","YER","ZAR","ZMW","ZWD"],"type":"string","example":"EUR","description":"Three-letter currency code for the price"}},"description":"Price of the order item"},"storefront_fee":{"type":"object","nullable":true,"properties":{"amount":{"type":"string","example":"1999.99","description":"Amount"},"currency":{"enum":["EUR","AED","AFN","XCD","ALL","AMD","AOA","ARS","USD","AUD","AWG","AZN","BAM","BDT","XOF","BGN","BHD","BIF","BMD","SGD","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","XAF","CHF","NZD","CLP","CNY","COP","CRC","CUC","CVE","ANG","CZK","DJF","DOP","DZD","EGP","MAD","ERN","ETB","FJD","FKP","DKK","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","WST","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LYD","MDL","MGA","MKD","MMK","MNT","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","XPF","NGN","NIO","NOK","NPR","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","UYU","UZS","VEF","VND","VUV","YER","ZAR","ZMW","ZWD"],"type":"string","example":"EUR","description":"Three-letter currency code for the price"}},"description":"Storefront fee associated with the order item"},"acquisition_type":{"enum":["RENTAL","PURCHASE","REUSE"],"type":"string","example":"PURCHASE","description":"Acquisition type of the order item"}},"description":"Order item pricing details"},"is_express_delivery_requested":{"type":"boolean","example":true,"description":"Is express delivery requested for the order item"}}},"description":"Order's items details"}}}},"has_more":{"type":"boolean","example":true,"description":"Whether there are more results available"},"next_cursor":{"type":"string","example":"d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m","nullable":true,"description":"Cursor to the next page"},"total_count":{"type":"integer","example":133,"description":"Total number of records"}}}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m","description":"Indicates where the next page of results starts, as returned in a paginated list response"},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":10,"description":"Return a page of results with given number of records"}],"description":"Returns a cursor-paginated list of all IT equipment orders for the organization, spanning both historical and current procurement requests.\n\n **Token scopes**: `it-orders:read`","operationId":"listItOrders-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["it-orders:read"]}]}},"/on-demand-payroll/{odp_id}/submit":{"post":{"path":"/rest/on-demand-payroll/{odp_id}/submit","tags":["On-Demand Payroll"],"method":"post","summary":"Submit On-Demand Payroll","responses":{"204":{"description":"On-Demand Payroll submitted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Authentication is required or has failed."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"The caller is not allowed to perform this action."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"On-Demand Payroll not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"odp_id","schema":{"type":"string"},"example":"odp_abc123","required":true,"description":"Public ID of the On-Demand Payroll."}],"description":"Submits an On-Demand Payroll for Deel processing after the client has reviewed and approved all of its entries.\n\n **Token scopes**: `on-demand-payroll:write`","operationId":"submitOnDemandPayroll-v2026-07-17","security":[{"deelToken":[]},{"oauth2":["on-demand-payroll:write"]}]}},"/adjustments/{id}":{"get":{"path":"/rest/adjustments/{id}","tags":["Adjustments"],"method":"get","summary":"Retrieve an adjustment","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the adjustment"},"file":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the file"},"name":{"type":"string","example":"your_file_name","description":"The name of the file"},"fileType":{"type":"string","example":"pdf","description":"The type of the file"}},"description":"Info about the attachment of adjustment"},"title":{"type":"string","example":"Your title here","description":"The title of the adjustment","x-sensitive-employment":true},"amount":{"type":"string","example":"1234.56","description":"The amount of the adjustment","x-sensitive-employment":true},"status":{"enum":["open","pending_approval","overwritten","failed","success","DRAFT","PENDING","APPROVED","DENIED","DISBURSE_SCHEDULED","REIMBURSED","UNDER_REVIEW","ERRORS_FOUND","PENDING_DEEL_REVIEW","AI_CHECK_IN_PROGRESS"],"type":"string","example":"open","description":"Adjustment status"},"created_at":{"type":"string","format":"date-time","example":"2020-11-02T12:00:00.000Z","description":"The date and time when the adjustment was created"},"updated_at":{"type":"string","format":"date-time","example":"2020-11-02T12:00:00.000Z","description":"The date and time when the adjustment was last updated"},"contract_id":{"type":"string","example":"m3jk2j","description":"The identifier of the contract associated with the adjustment"},"description":{"type":"string","example":"Your description here","description":"The description of the adjustment","x-sensitive-employment":true},"cycle_reference":{"type":"string","example":"your_cycle_reference","nullable":true,"description":"The reference to the cycle associated with the adjustment"},"move_next_cycle":{"type":"boolean","example":true,"description":"If an adjustments can belong to another payroll cycle"},"date_of_adjustment":{"type":"string","format":"date-time","example":"2023-11-15T00:00:00.000Z","description":"The date of the adjustment"},"actual_end_cycle_date":{"type":"string","example":"2023-11-15T00:00:00.000Z","description":"The date of the actual end cycle date"},"adjustment_category_id":{"type":"string","example":"c9cf4c2c0165f48f494415390c3b49","description":"The identifier of the adjustment category associated with the adjustment"},"actual_start_cycle_date":{"type":"string","example":"2023-11-01T00:00:00.000Z","description":"The date of the actual start cycle date"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"Not Authorized","description":"You must have access to the contract sent"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"Deel adjustment id."}],"description":"Retrieves a specific adjustment by its id, including its amount, status, payment cycle dates, and associated contract_id.\n\n **Token scopes**: `adjustments:read`","operationId":"retrieveAnAdjustment-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["adjustments:read"]}]},"patch":{"path":"/rest/adjustments/{id}","tags":["Adjustments"],"method":"patch","summary":"Update an adjustment","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"type":"boolean","example":true,"description":"Confirms the update was successful."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"Bad Request","description":"Error message describing the validation or update failure"}}}}}}}},"description":"Bad Request – failed to update adjustment"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"5f4e1b2b-4b7b-4b7b-4b7b-4b7b4b7b4b7b","required":true,"description":"Deel adjustment id."}],"description":"Applies a partial update to an existing adjustment. Only fields included in the request body are modified; omitted fields retain their current values.\n\n **Token scopes**: `adjustments:write`","operationId":"updateAdjustment-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"file":{"type":"string","format":"binary","example":"Your file here","minLength":1,"description":"File of adjustment."},"title":{"type":"string","example":"Your title here","maxLength":255,"minLength":3,"description":"Title of adjustment."},"amount":{"oneOf":[{"type":"string"},{"type":"number"}],"example":100.25,"minimum":1,"minLength":1,"description":"Amount of adjustment."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"description":{"type":"string","example":"Your description here","maxLength":255,"minLength":3,"description":"Description of adjustment."},"vendor_name":{"type":"string","example":"Bar CO.","maxLength":255,"minLength":1,"description":"Vendor name of adjustment."},"adjustment_category_id":{"type":"string","example":"c9cf4c2c0165f48f494415390c3b49","minLength":25,"description":"Adjustment category id."}},"description":"Details of adjustment to update"}}}}},"required":true,"description":"Adjustment object that needs to be updated"},"security":[{"deelToken":[]},{"oauth2":["adjustments:write"]}]},"delete":{"path":"/rest/adjustments/{id}","tags":["Adjustments"],"method":"delete","summary":"Delete an adjustment","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","example":true,"nullable":false,"description":"Confirms the deletion."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"5f4e1f77-0f1c-4f6d-8b0f-1b1b4b1b1b1b","required":true,"description":"Deel adjustment id."}],"description":"Permanently deletes an adjustment by its id.\n\n **Token scopes**: `adjustments:write`","operationId":"deleteAdjustment-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["adjustments:write"]}]}},"/timesheets/many/reviews":{"post":{"path":"/rest/timesheets/many/reviews","tags":["Timesheets"],"method":"post","summary":"Review multiple timesheets","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean","example":true,"description":"Indicates if the timesheet review was created successfully"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"No items to approve found for the given Ids"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"No items to approve found for the given Ids","description":"Human-readable description of the validation or business rule violation."}}},"description":"Validation or business rule errors describing why the timesheet reviews could not be created."}}}}},"description":"Bad Request - The request payload failed validation or violated a business rule for the timesheet reviews."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"text/html":{"schema":{"type":"string","example":"Access Denied","description":"Bare message emitted by the role check."}},"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"Access denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access denied","description":"Human-readable description of the authorization failure."}}},"description":"Errors describing why the caller may not review these timesheets, emitted when contract access is denied."}}}}},"description":"Forbidden - The caller does not hold a client role on this organization (bare text/html body), or has no access to the contract (JSON error envelope)."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"APPROVAL_REQUESTS_REPORTS_NOT_FOUND","message":"No items to approve found for the given Ids"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"APPROVAL_REQUESTS_REPORTS_NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"No items to approve found for the given Ids","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why none of the referenced timesheets could be reviewed."}}}}},"description":"Not Found - None of the supplied ids has a pending approval request to review."},"409":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"A batch approval is already in progress for this approver"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"A batch approval is already in progress for this approver","description":"Human-readable description of the conflict."}}},"description":"Errors describing why the batch review conflicts with work already in progress."}}}}},"description":"Conflict - A previous batch approval for this approver is still being processed."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the timesheet reviews cannot be processed."}}}}},"description":"Internal Server Error - The timesheet reviews could not be processed due to an unexpected upstream or internal failure."}},"description":"Review a batch of timesheets to approve or reject submitted work.\n\n **Token scopes**: `timesheets:write`","operationId":"createtimesheetreviews-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["status","ids"],"properties":{"ids":{"type":"array","items":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"ID of an existing timesheet record"},"maxItems":1000,"minItems":1,"nullable":false},"reason":{"type":"string","example":"The work was completed as requested.","nullable":true,"description":"The reason for review status"},"status":{"enum":["approved","declined"],"type":"string","example":"approved","nullable":false,"description":"The status to set for the timesheets"}}}}}}},"description":"Timesheet review objects that need to be created"},"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]}},"/time-tracking/timesheets/{timesheet_id}/review":{"post":{"path":"/rest/time-tracking/timesheets/{timesheet_id}/review","tags":["Time Tracking Timesheets"],"method":"post","summary":"Review a submitted timesheet","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","review_status","reviewed_at"],"properties":{"id":{"type":"string","format":"uuid","example":"880e8400-e29b-41d4-a716-446655440003","description":"Unique identifier for the timesheet"},"reviewed_at":{"type":"string","format":"date-time","example":"2025-07-10T13:22:45.000Z","description":"Timestamp when the timesheet was reviewed"},"review_reason":{"type":"string","example":"Client's reason for rejection","nullable":true,"description":"Reason provided by the reviewer when rejecting the timesheet. Only present when review_status is REJECTED."},"review_status":{"enum":["PENDING_CREATION","PENDING_REVIEW","APPROVED","REJECTED"],"type":"string","example":"APPROVED","description":"Current status of the timesheet review"}},"description":"Updated timesheet details after review"}}}}},"description":"Timesheet reviewed successfully. Returns updated timesheet details with review status and review timestamp."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message","code","field"],"properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"field":{"type":"string","example":"timesheet_id","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Timesheet not found, please verify the timesheet_id","description":"Human-readable explanation of the error"}}}}}}}},"description":"Timesheet not found."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message","code","details"],"properties":{"code":{"type":"string","example":"not_available_for_review","description":"Machine-readable error code"},"field":{"type":"string","example":null,"nullable":true,"description":"Name of the field causing the error (for validation issues)"},"details":{"type":"object","example":{"timesheet":{"id":"880e8400-e29b-41d4-a716-446655440003","contract_id":"JvUc0hPV","reviewed_at":"2025-07-10T13:22:345.000Z","review_status":"REJECTED","submission_status":"SUBMITTED"}},"required":["timesheet"],"properties":{"timesheet":{"type":"object","required":["id","contract_id","submission_status","review_status"],"properties":{"id":{"type":"string","format":"uuid","description":"Unique identifier for the timesheet"},"contract_id":{"type":"string","description":"External id of the worker's contract associated with the timesheet"},"reviewed_at":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp when the timesheet was reviewed (if already reviewed)"},"review_status":{"enum":["PENDING_CREATION","PENDING_REVIEW","APPROVED","REJECTED"],"type":"string","description":"Current status of the timesheet review"},"submission_status":{"enum":["UPLOADING","UPLOAD_FAILED","PROCESSING","SUBMITTED","INVALID","FAILED"],"type":"string","description":"Current status of the timesheet submission"}},"description":"Current state of the timesheet that cannot be reviewed"}},"description":"Additional details about the error, including the current timesheet state"},"message":{"type":"string","example":"Only PENDING_REVIEW timesheets can be reviewed, please check timesheet's status","description":"Human-readable explanation of the error"}}}}}}}},"description":"Unprocessable entity. Timesheet cannot be reviewed in its current state."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"timesheet_id","schema":{"type":"string","format":"uuid"},"example":"880e8400-e29b-41d4-a716-446655440003","required":true,"description":"ID of the timesheet to review"}],"description":"Approves or rejects a submitted timesheet; only timesheets in `PENDING_REVIEW` status are eligible, and all associated hours are approved or rejected as a single operation.\n\n **Token scopes**: `time-tracking:write`","operationId":"reviewASubmittedTimesheet-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["review_status"],"properties":{"review_reason":{"type":"string","example":"Client's reason for rejection","nullable":true,"maxLength":30000,"minLength":0,"description":"Reason for rejecting the timesheet. Required when review_status is REJECTED, optional when APPROVED."},"review_status":{"enum":["APPROVED","REJECTED"],"type":"string","example":"APPROVED","description":"The review status for the timesheet. Must be APPROVED or REJECTED."}}}}}}},"required":true,"description":"Review information for the timesheet. review_reason is required when review_status is REJECTED."},"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]}},"/immigration/client/cases/{id}":{"get":{"path":"/rest/immigration/client/cases/{id}","tags":["Immigration"],"method":"get","summary":"Get immigration case details","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of immigration case."},"status":{"enum":["OPEN","CLOSED","ON_HOLD"],"type":"string","example":"OPEN","description":"Status of the immigration case."},"process":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the current active process."},"name":{"type":"string","example":"Document check","description":"Name of the current active process."},"status":{"type":"string","example":"In Review","description":"Status of the current active process."}}},"applicant":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the applicant profile id."},"external_id":{"type":"string","example":"123456","nullable":true,"description":"External identifier of the applicant."}}},"case_type":{"type":"string","example":"Right to Work","description":"Name of the case type"},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the document."},"status":{"enum":["IN_REVIEW","ACTIVE","EXPIRED","EXPIRING","UNKNOWN"],"type":"string","example":"IN_REVIEW","description":"Status of the document."},"document_type":{"type":"string","example":"Eu blue card","nullable":true,"description":"The type of the document. Represents the visa type for right to work cases."},"expiration_date":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","nullable":true,"description":"Expiry date of the document."}}},"x-sensitive-pii":true},"visa_type":{"type":"string","example":"Eu blue card","nullable":true,"description":"The type of the the visa."},"country_code":{"type":"string","example":"DE","description":"The country of the immigration case."},"last_update_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Last activity on the immigration case."},"case_created_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Creation date of the immigration case."},"estimated_completion_date":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","nullable":true,"description":"Estimated completion date of the immigration case."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"e9b4ce94-2e3e-4d41-9faf-1ad2389cac1d","required":true,"description":"Immigration case id"}],"description":"Retrieves the details of an immigration case by its case ID.\n\n **Token scopes**: `immigration:read`","operationId":"getImmigrationCaseDetails-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/eor/contracts/{contract_id}/amendments/validate":{"post":{"path":"/rest/eor/contracts/{contract_id}/amendments/validate","tags":["EOR"],"method":"post","summary":"Validate amendment data points","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","example":{"scope":{"valid":false,"message":"Scope exceeds maximum length of 20,000 characters."},"job_title":{"valid":true,"message":null}},"description":"Validation results keyed by amendment field","additionalProperties":{"type":"object","example":{"valid":false,"message":"Scope exceeds maximum length of 20,000 characters."},"properties":{"valid":{"type":"boolean","example":true,"nullable":true},"message":{"type":"string","example":"Scope exceeds maximum length of 20,000 characters.","nullable":true}}}}}}}},"description":"Validation result"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of the employee contract."}],"description":"Validates amendment data points for a given contract against any external validation rules before an amendment is submitted. This call should be made prior to creating an amendment to confirm that the proposed data points are acceptable.\n\n **Token scopes**: `contracts:write`","operationId":"validateAmendmentDataPoints-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","description":"Dynamic object containing amendment fields. Supports flexible keys such as scope, job_title, or others.","additionalProperties":{}}}},"examples":{"withScope":{"value":{"data":{"scope":"Responsible for project planning, resource allocation, and ensuring quality delivery."}},"summary":"Example with scope"},"withJobTitle":{"value":{"data":{"job_title":"Product Manager"}},"summary":"Example with job title"}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/managers":{"get":{"path":"/rest/managers","tags":["Managers"],"method":"get","summary":"Retrieve List of Managers","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","nullable":false,"description":"Unique identifier of the manager."},"email":{"type":"string","format":"email","example":"john.doe@example.com","description":"The email address of the manager.","x-sensitive-pii":true},"last_name":{"type":"string","example":"Doe","nullable":false,"description":"The last name of the manager.","x-sensitive-pii":true},"first_name":{"type":"string","example":"John","nullable":false,"description":"The first name of the manager.","x-sensitive-pii":true}}},"description":"List of managers in the organization."},"page":{"type":"object","required":["total_rows"],"properties":{"offset":{"type":"number","example":10,"nullable":true,"description":"The offset/index of the current page."},"total_rows":{"type":"number","example":50,"nullable":false,"description":"Total number of rows available for this resource."},"items_per_page":{"type":"number","example":10,"nullable":true,"description":"Number of items returned per page."}},"description":"Pagination details for the response."}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized. Please provide valid authentication credentials.","description":"An error message indicating that the authentication failed."}}}}},"description":"Unauthorized. The request is missing authentication credentials or the credentials provided are invalid."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"No managers found in this organization.","description":"An error message indicating that no managers were found."}}}}},"description":"No managers found. There are no managers associated with the current organization."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Internal server error.","description":"A general error message indicating that the server encountered an unexpected issue."}}}}},"description":"Internal server error. An error occurred on the server while processing the request."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","minimum":1,"description":"Maximum number of records to return per page."},"example":10,"description":"The number of records to return in the response."},{"in":"query","name":"offset","schema":{"type":"integer","minimum":0,"description":"The starting index for the page of records to return."},"example":0,"description":"The offset or starting point for pagination."}],"description":"Returns a paginated list of all managers in the organization.\n\n **Token scopes**: `organizations:read`","operationId":"getManagers-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"post":{"path":"/rest/managers","tags":["Managers"],"method":"post","summary":"Create a Manager","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"00000000-0000-0000-0000-000000000000","email":"john.doe@example.com","last_name":"Doe","first_name":"John"}},"required":["data"],"properties":{"data":{"type":"object","required":["id","first_name","last_name","email"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The unique identifier of the created manager."},"email":{"type":"string","format":"email","example":"john.doe@example.com","description":"The email address of the created manager."},"last_name":{"type":"string","example":"Doe","description":"The last name of the created manager."},"first_name":{"type":"string","example":"John","description":"The first name of the created manager."}}}}}}},"description":"Manager created successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Invalid email format.","description":"Description of the validation error."}}}}},"description":"Invalid request. The input data did not meet the required validation rules."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"A manager with this email already exists.","description":"Explanation of the conflict error."}}}}},"description":"Conflict. A manager with the provided email already exists."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Creates a new manager in the organization and returns the created manager's identity fields, including the assigned `id`.\n\n **Token scopes**: `organizations:write`","operationId":"createManager-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["first_name","last_name","email"],"properties":{"email":{"type":"string","format":"email","example":"email@example.com","description":"The email address of the manager."},"last_name":{"type":"string","example":"Doe","minLength":1,"description":"The last name of the manager."},"first_name":{"type":"string","example":"John","minLength":1,"description":"The first name of the manager."}}}}}}},"required":true,"description":"Details of the new manager to be created."},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/work-statement-payment-policies":{"post":{"path":"/rest/work-statement-payment-policies","tags":["Contracts"],"method":"post","summary":"Create a work statement payment policy","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The public ID (UUID) of the created payment policy."}},"description":"The created work statement payment policy."}}}}},"description":"The work statement payment policy was created."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"description":"Use this endpoint to define a payment cycle once and reuse it, rather than repeating the same cycle fields on every contract you create. The returned policy ID can be referenced when creating contracts. Both the policy name and the combination of cycle settings must be unique within the organization.\n\n\n **Token scopes**: `contracts:write`","operationId":"createWorkStatementPaymentPolicy-v2026-09-07","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name","scale","end_day"],"properties":{"name":{"type":"string","example":"Monthly policy - Fixed rate","maxLength":255,"minLength":3,"description":"Name of the payment policy. Must be unique within the organization."},"scale":{"enum":["WEEKLY","MONTHLY","BIWEEKLY","SEMIMONTHLY","CALENDAR_MONTH"],"type":"string","example":"MONTHLY","description":"Payment cycle frequency."},"end_day":{"type":"integer","example":31,"maximum":31,"minimum":1,"description":"Day the billing cycle ends. 1–31 when end_type is DAY_OF_MONTH, 1–7 when DAY_OF_WEEK or\n  DAY_OF_LAST_WEEK."},"due_days":{"type":"integer","example":0,"maximum":90,"minimum":0,"description":"Number of days after cycle end before payment is released. Defaults to 0."},"due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","example":"REGULAR","description":"How the payment due date is calculated relative to cycle end. Defaults to REGULAR."},"end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_MONTH","description":"How end_day is interpreted. Defaults to DAY_OF_MONTH."},"description":{"type":"string","example":"A standard monthly payment schedule for contractors with a consistent, agreed-upon rate.","maxLength":400,"description":"Description of the payment policy."},"end_week_parity":{"enum":["AUTO","ODD","EVEN"],"type":"string","example":"AUTO","description":"Week parity constraint for biweekly cycles. Only applicable when scale is BIWEEKLY."},"should_pay_before_weekends":{"type":"boolean","example":true,"description":"Whether payment is moved earlier when the due date falls on a weekend. Defaults to false."}}}}}}},"required":true,"description":"The work statement payment policy to create."},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"get":{"path":"/rest/work-statement-payment-policies","tags":["Contracts"],"method":"get","summary":"List work statement payment policies","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","scale","end_day","end_type","due_type","due_days","should_pay_before_weekends"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The public ID (UUID) of the payment policy."},"name":{"type":"string","example":"Monthly default policy - Fixed rate","description":"Name of the payment policy."},"scale":{"enum":["WEEKLY","MONTHLY","BIWEEKLY","SEMIMONTHLY","CALENDAR_MONTH"],"type":"string","example":"MONTHLY","description":"Payment cycle frequency."},"end_day":{"type":"integer","example":31,"description":"Day the billing cycle ends. 1–31 when end_type is DAY_OF_MONTH, 1–7 when DAY_OF_WEEK or\n  DAY_OF_LAST_WEEK."},"due_days":{"type":"integer","example":0,"description":"Number of days after cycle end before payment is released."},"due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","example":"REGULAR","description":"How the payment due date is calculated relative to cycle end."},"end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_MONTH","description":"How end_day is interpreted."},"description":{"type":"string","example":"A standard monthly payment schedule for contractors with a consistent, agreed-upon rate.","nullable":true,"description":"Description of the payment policy."},"end_week_parity":{"enum":["AUTO","ODD","EVEN"],"type":"string","example":"AUTO","nullable":true,"description":"Week parity constraint for biweekly cycles. Null for non-biweekly scales."},"semimonthly_first_day":{"type":"integer","example":15,"nullable":true,"description":"First payment day of the month for semimonthly cycles. Null for other scales."},"semimonthly_second_day":{"type":"integer","example":31,"nullable":true,"description":"Second payment day of the month for semimonthly cycles. Null for other scales."},"should_pay_before_weekends":{"type":"boolean","example":true,"description":"Whether payment is moved earlier when the due date falls on a weekend."}},"description":"A work statement payment policy of the organization."},"description":"The organization's work statement payment policies."}}}}},"description":"Returns the organization's work statement payment policies."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"description":"Use this endpoint to discover the payment policies configured for the authenticated organization and to pick the policy ID to reference when creating a contract. A payment policy is a reusable payment cycle configuration — when a cycle ends, when payment falls due, and whether payment moves earlier when the due date lands on a weekend.\n\n\n **Token scopes**: `contracts:read`","operationId":"getWorkStatementPaymentPolicies-v2026-09-07","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/employment_cost":{"post":{"path":"/rest/eor/employment_cost","tags":["EOR"],"method":"post","summary":"Calculate Employee Costs Globally","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"costs":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Name of the cost item."},"amount":{"type":"string","description":"Cost amount."},"country":{"type":"string","description":"The country of the cost item."},"frequency":{"type":"string","description":"The frequency of the cost (e.g., monthly, annually)."},"country_code":{"type":"string","description":"ISO Alpha-2 code of the country."}}}},"salary":{"type":"string","description":"The base salary for the employee."},"country":{"type":"string","description":"The country where the employee is based."},"currency":{"type":"string","description":"The currency used for cost calculation."},"deel_fee":{"type":"string","description":"The Deel fee for managing the employee."},"frequency":{"type":"string","description":"Frequency of the salary payment (e.g., monthly)."},"total_costs":{"type":"string","description":"Total employment costs."},"country_code":{"type":"string","description":"ISO Alpha-2 code of the country."},"benefits_data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Benefit name."},"plan":{"type":"string","description":"Benefit plan."},"amount":{"type":"string","description":"Benefit cost."},"fee_amount":{"type":"string","description":"Fees associated with the benefit."}}}},"employer_costs":{"type":"string","description":"Costs incurred by the employer."},"additional_data":{"type":"object","properties":{"additional_notes":{"type":"array","items":{"type":"string","description":"Additional notes or comments."}}}},"severance_accural":{"type":"string","description":"Severance accrual costs."},"employer_costs_usd":{"type":"string","description":"Costs incurred by the employer, converted to USD."},"employer_annual_costs":{"type":"string","description":"Costs incurred by the employer for cost items with an annual payment frequency."},"severance_accural_usd":{"type":"string","description":"Severance accrual costs, converted to USD."}}},"examples":{"success":{"value":{"costs":[{"name":"Base Salary","amount":"60000","country":"Germany","frequency":"annually","country_code":"DE"},{"name":"Health Insurance","amount":"3000","country":"Germany","frequency":"annually","country_code":"DE"}],"salary":"60000","country":"Germany","currency":"EUR","deel_fee":"500","frequency":"annually","total_costs":"63500","country_code":"DE","benefits_data":[{"name":"Health Insurance","plan":"basic-health","amount":"3000","fee_amount":"0"}],"employer_costs":"3500","additional_data":{"additional_notes":["Severance accrual not included in calculation."]},"severance_accural":"0","employer_costs_usd":"3745","employer_annual_costs":"3000","severance_accural_usd":"0"},"summary":"Example of a successful response."}}}},"description":"Successfully calculated employee costs."},"400":{"content":{"application/json":{"examples":{"missingFields":{"value":{"error":"The 'salary', 'country', and 'currency' fields are required."},"summary":"Example of a missing field error."}}}},"description":"Invalid request. Some required fields are missing or invalid."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"examples":{"serverError":{"value":{"error":"An unexpected error occurred while processing the request."},"summary":"Example of an internal server error."}}}},"description":"Internal server error. Something went wrong while calculating costs."}},"parameters":[],"description":"Calculates the total employment cost for an EOR arrangement in a specified country, returning a breakdown that includes employer costs, benefits, platform fees, and severance accrual.","operationId":"calculateEmployeeCostsGlobally-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["salary","country","currency"],"properties":{"state":{"type":"string","example":"California","description":"The state or region within the country, if applicable."},"salary":{"type":"number","example":50000,"minimum":1,"description":"The base salary for the employee."},"country":{"type":"string","example":"United States","description":"The full name of the country where the employee is based."},"benefits":{"type":"array","items":{"type":"object","required":["provider_id"],"properties":{"plan_id":{"type":"string","example":"basic-health","nullable":true,"description":"The ID of the benefits plan, if applicable."},"provider_id":{"type":"string","example":"health-insurance-co","description":"The ID of the benefits provider."}}},"nullable":true,"description":"A list of selected benefit plans for the employee."},"currency":{"type":"string","example":"USD","description":"The currency in which the costs are calculated."},"country_code":{"type":"string","example":"US","description":"The two-letter country code where the employee is based."},"salary_period":{"enum":["ANNUALLY","MONTHLY"],"type":"string","default":"ANNUALLY","example":"ANNUALLY","description":"The salary period for the amount provided."}}}}},"examples":{"calculateCosts":{"value":{"data":{"state":"Bavaria","salary":60000,"country":"Germany","benefits":[{"plan_id":"basic-health","provider_id":"123"}],"currency":"EUR","country_code":"DE","salary_period":"ANNUALLY"}},"summary":"Example of a request body for calculating employee costs."}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":[]}]}},"/eor/contracts/{contract_id}/offboarding/required-information":{"get":{"path":"/rest/eor/contracts/{contract_id}/offboarding/required-information","tags":["EOR"],"method":"get","summary":"Get additional information required to request employee termination","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"questions":[{"text":"Does the employee might have protected status for termination (e.g. maternity leave, paternity leave, sick leave)?","is_optional":false},{"text":"Has the employee received prior written warnings about performance issues?","is_optional":true}],"required_upload_label":"Please provide documents to support underperformance if applicable"},"properties":{"documents":{"type":"string","example":"Please provide documents to support underperformance if applicable","nullable":true,"description":"If not null, specifies the documents that the client must upload when requesting a termination"},"questions":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string","example":"Does the employee might have protected status for termination (e.g. maternity leave, paternity leave, sick leave)?","description":"Specifies the text of additional questions that the client must answer when requesting a termination"},"is_optional":{"type":"boolean","example":false,"description":"Indicates whether answering the question is optional. If false, client must provide an answer."}}},"nullable":true,"description":"A list of additional questions that the client must answer when requesting a termination. Some questions are mandatory, while others are optional."}},"description":"Specifies the text of additional questions that the client must answer when requesting a termination"}}}}},"description":"Ok response"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcd4fg","required":true,"description":"The unique identifier of the employee contract."}],"description":"Returns country-specific mandatory and optional questions, and identifies required supporting documents, that must be provided when initiating the offboarding process for a contract.\n\n **Token scopes**: `contracts:read`","operationId":"getAdditionalInformationRequiredToRequestEmployeeTermination-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/time_offs/dailies":{"get":{"path":"/rest/time_offs/dailies","tags":["Time Off"],"method":"get","summary":"Get Work Schedule and Holidays","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["holidays","work_schedule","time_off_dailies"],"properties":{"holidays":{"type":"array","items":{"type":"object","required":["name","description","date","formatted_date","type","source","is_mandatory","is_every_year"],"properties":{"date":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z","description":"Date of the holiday"},"name":{"type":"string","example":"New Year's Day","description":"Name of the holiday"},"type":{"enum":["MANDATORY","OPTIONAL","HIDDEN","HOLIDAY","WORKING_DAY"],"type":"string","example":"MANDATORY","description":"Type of the holiday"},"source":{"enum":["EXTERNAL","DEEL","ORGANIZATION_CUSTOM","ORGANIZATION_OVERRIDE","ORGANIZATION_CONVERT",null],"type":"string","example":"EXTERNAL","nullable":true,"description":"Source of creation of the holiday"},"states":{"type":"array","items":{"type":"string"},"example":["CA"],"description":"List of states where the holiday is celebrated, if empty it is a country holiday"},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"The ISO 3166-1 alpha-2 country code."},"description":{"type":"string","example":"New Year's Day global holiday","nullable":true,"description":"Description of the holiday"},"parsed_date":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000+00:00","description":"Parsed date time of the holiday"},"is_mandatory":{"type":"boolean","example":true,"description":"Describes if the holiday is mandatory"},"is_every_year":{"type":"boolean","example":true,"description":"Sets if the holiday is a recurring event"},"formatted_date":{"type":"string","format":"date","example":"2025-01-01","description":"Formatted 'YYYY-MM-DD' date of the holiday"},"name_variations":{"type":"array","items":{"type":"string"},"example":["January 1"],"description":"Alternative names or labels used to refer to this holiday"},"created_by_profile_id":{"type":"number","example":1234567890,"nullable":true,"description":"HRIS profile id of the creator of the holiday"}}},"description":"List of holidays within the date range"},"work_schedule":{"type":"object","properties":{"work_week":{"type":"object","required":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"properties":{"friday":{"type":"number","example":8,"maximum":24,"minimum":0,"description":"Working hours on friday"},"monday":{"type":"number","example":8,"maximum":24,"minimum":0,"description":"Working hours on monday"},"sunday":{"type":"number","example":0,"maximum":24,"minimum":0,"description":"Working hours on sunday"},"tuesday":{"type":"number","example":8,"maximum":24,"minimum":0,"description":"Working hours on tuesday"},"saturday":{"type":"number","example":0,"maximum":24,"minimum":0,"description":"Working hours on saturday"},"thursday":{"type":"number","example":8,"maximum":24,"minimum":0,"description":"Working hours on thursday"},"wednesday":{"type":"number","example":8,"maximum":24,"minimum":0,"description":"Working hours on wednesday"}},"description":"The work week schedule for the HRIS profile"},"hours_per_day":{"type":"number","example":8,"maximum":24,"minimum":0,"description":"Working hours per day"},"hris_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"HRIS profile id"}},"description":"Detail of working hours by week day for an HRIS profile"},"time_off_dailies":{"type":"array","items":{"type":"object","required":["date","time_off_daily_type"],"properties":{"date":{"type":"string","format":"date","example":"2025-01-01","description":"Date of the daily"},"time_off_daily_type":{"enum":["HOLIDAY","WORKING_DAY","NON_WORKING_DAY"],"type":"string","example":"HOLIDAY","description":"Type of work status or holiday"}}},"description":"List of days with holiday or work status"}}},"description":"List of holiday and work schedule information grouped by HRIS profile, including holidays within the date range, work schedule details, and daily work status"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"start_date","schema":{"type":"string","format":"date"},"example":"2025-01-01","description":"Start date of non working days date range"},{"in":"query","name":"end_date","schema":{"type":"string","format":"date"},"example":"2025-02-01","description":"End date of non working days date range"},{"in":"query","name":"hris_profile_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100,"minItems":1},"example":["d290f1ee-6c54-4b01-90e6-d701748f0851"],"description":"HRIS profile ids"},{"in":"query","name":"countries","schema":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2},"example":["US"],"maxItems":100,"minItems":1,"description":"List of countries to be fetched"},"example":["US"],"description":"List of countries to be fetched"}],"description":"Returns holidays, work schedule entries, and time-off dailies for a given date range, scoped to one or more HRIS profile IDs or countries.\n\n **Token scopes**: `time-off:read`","operationId":"getWorkScheduleAndHolidays-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/groups/{id}/clone":{"post":{"path":"/rest/groups/{id}/clone","tags":["Groups"],"method":"post","summary":"Clone a Group","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","name":"Walmart","created_at":"2024-03-07T11:42:22.342Z","updated_at":"2024-03-07T11:42:22.342Z","external_metadata":"{'showInReport': 'true'}"}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","description":"The unique identifier of the created group."},"name":{"type":"string","example":"Walmart","description":"The name of the created group."},"created_at":{"type":"string","format":"date-time","example":"2024-03-07T11:42:22.342Z","description":"The timestamp when the group was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-03-07T11:42:22.342Z","description":"The timestamp when the group was last updated."},"external_metadata":{"type":"object","description":"Extra information of the group."}}}}}}},"description":"Group cloned successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"Must have required property example_field","description":"A description of the returned error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","required":true,"description":"Unique identifier of the group to be cloned."}],"description":"Creates a new group by copying the structure and settings of an existing group. The cloned group is independent of the source after creation.\n\n **Token scopes**: `groups:write`","operationId":"cloneAGroup-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"Walmart","maxLength":48,"description":"The name of the group to be created."},"external_metadata":{"type":"object","example":"{'showInReport': 'true'}","description":"The extra information of the group to be created."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["groups:write"]}]}},"/payouts/balances":{"get":{"path":"/rest/payouts/balances","tags":["Payouts"],"method":"get","summary":"List Contractor Balances","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"balances":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"string","example":"1000.00","description":"amount of that currency in the contractor balance"},"currency":{"type":"string","example":"USD","description":"currency of that amount"}}},"x-sensitive-employment":true},"balances_total":{"type":"object","properties":{"amount":{"type":"string","example":"1000.00","description":"total amount of all currencies in the contractor balance"},"currency":{"type":"string","example":"USD","description":"currency of the total amount"}},"x-sensitive-employment":true}}}}}}},"description":"Successful operation. Returns the contractor's balances."},"400":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","description":"error message"}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns the total available balances for the authenticated contractor, broken down by currency and aggregated into a single cross-currency total.\n\n **Token scopes**: `worker:read`","operationId":"listContractorBalances-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/hris/organization_structures/external/{external_id}":{"get":{"path":"/rest/hris/organization_structures/external/{external_id}","tags":["Organization structure"],"method":"get","summary":"Fetch an Org Structure from the Organization","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Organization ID"},"name":{"type":"string","example":"Deel","description":"Organization name"},"type":{"type":"string","example":"company","description":"Organization type"},"roles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":1,"description":"Role ID"},"name":{"type":"string","example":"Admin","description":"Role name"}}}},"teams":{"type":"array","items":{"type":"object"}},"external_id":{"type":"string","example":"rkkej3","description":"External ID"},"teams_count":{"type":"integer","example":2,"description":"Number of teams in the organization"},"enable_roles":{"type":"boolean","example":true,"description":"Flag to enable roles in the organization"},"is_multiselect":{"type":"boolean","example":true,"description":"Flag to enable multiselect in the organization"}}}}}}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"externalId"},"message":{"type":"string","example":"\"externalId\" is required"}}}}}}}},"description":"Bad request - The provided externalId parameter is invalid or missing."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found"},"field":{"type":"string","example":"externalId"},"message":{"type":"string","example":"Organization structure with externalId 'engineering' was not found."}}}}}}}},"description":"Not found - No organization structure exists for the provided externalId."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"external_id","schema":{"type":"string"},"example":"rkkej3","required":true,"description":"External ID"}],"description":"Fetches a single organization structure, returning associated roles and teams alongside structure metadata.\n\n **Token scopes**: `organizations:read`","operationId":"fetchAnOrgStructureFromTheOrganization-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"patch":{"path":"/rest/hris/organization_structures/external/{external_id}","tags":["Organization structure"],"method":"patch","summary":"Update an existing HRIS Org Structure by external ID","responses":{"200":{"content":{"application/json":{}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"teams"},"message":{"type":"string","example":"\"teams\" is required"}}}}}}}},"description":"Bad request - The request body is invalid or missing required fields."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found"},"field":{"type":"string","example":"externalId"},"message":{"type":"string","example":"Organization structure with externalId 'engineering' was not found."}}}}}}}},"description":"Not found - No organization structure exists for the provided externalId."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"external_id","schema":{"type":"string"},"example":"123456","required":true,"description":"External ID"}],"description":"Applies a partial update to an existing organization structure. Only fields provided in the request body are modified; omitted fields retain their current values.\n\n **Token scopes**: `organizations:write`","operationId":"updateAnExistingHrisOrgStructureByExternalId-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["teams"],"properties":{"name":{"type":"string","example":"Engineering","description":"Name of the organization"},"teams":{"type":"array","items":{"type":"object"}},"external_id":{"type":"string","example":"123456","description":"External ID"},"enable_roles":{"type":"boolean","example":true,"description":"Enable roles"},"is_multiselect":{"type":"boolean","example":true,"description":"Is multiselect"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]},"delete":{"path":"/rest/hris/organization_structures/external/{external_id}","tags":["Organization structure"],"method":"delete","summary":"Delete an Org Structure from the Organization by external ID","responses":{"200":{"content":{"application/json":{}},"description":"Successfully deleted"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"external_id","schema":{"type":"string"},"example":"123456","required":true,"description":"External ID"}],"description":"Permanently removes an organization structure from the organization.\n\n **Token scopes**: `organizations:write`","operationId":"deleteOrgStructureByExternalId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/magic-link":{"post":{"path":"/rest/magic-link","tags":["EOR"],"method":"post","summary":"Create magic link","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["magic_link","expires_at"],"properties":{"expires_at":{"type":"string","format":"date-time","example":"2025-07-06T19:51:54.000Z","description":"When the magic link expires (ISO 8601 format)"},"magic_link":{"type":"string","example":"https://app.deel.com/login/session?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ3b3JrZXJJZCI6IjEzNDI1NTEi...","description":"The magic link URL that users can click and log in to deel automatically."}}}}}}},"description":"Magic link generated successfully"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized call: invalid token"}}}}},"description":"Unauthorized - Invalid or missing authentication token"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Token generation failed"}}}}},"description":"Internal Server Error"}},"parameters":[],"description":"Generates a time-limited magic link for password-free worker authentication. The link and its expiry timestamp are returned in the response.\n\n **Token scopes**: `worker:read`","operationId":"createMagicLink-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"redirect_path":{"type":"string","example":"/learning/resources","maxLength":500,"description":"Path to redirect the user to after successful authentication."}}}}}}},"required":true,"description":"Details for magic link generation."},"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/people/{worker_id}/personal":{"patch":{"path":"/rest/people/{worker_id}/personal","tags":["People"],"method":"patch","summary":"Update personal information","responses":{"204":{"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Unique identifier for a worker."}],"description":"Partially updates personal information for a worker by their worker ID; only fields included in the request body are modified.\n\n **Token scopes**: `people:write`","operationId":"updatePeoplePersonalInformationById-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"work_email":{"type":"string","format":"email","example":"test@example.com","maxLength":255,"description":"The personal email of the worker."},"date_of_birth":{"type":"string","format":"date","example":"1990-01-01","description":"The date of birth of the worker. Format: YYYY-MM-DD."},"phone_numbers":{"type":"array","items":{"type":"object","required":["type","phone_number","dial_code"],"properties":{"type":{"enum":["PERSONAL","WORK","HOME"],"type":"string","example":"PERSONAL","description":"The type of the phone number."},"dial_code":{"type":"string","example":"+1","maxLength":10,"description":"The dial code (also known as country code)."},"phone_number":{"type":"string","example":"123456789","maxLength":30,"description":"The phone number."}}}},"personal_email":{"type":"string","format":"email","example":"test@example.com","maxLength":255,"description":"The personal email of the worker."},"preferred_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"The preferred name of the worker."},"legal_last_name":{"type":"string","example":"Doe","maxLength":100,"description":"The legal last name of the worker."},"legal_first_name":{"type":"string","example":"John","maxLength":100,"description":"The legal first name of the worker."}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]},"get":{"path":"/rest/people/{worker_id}/personal","tags":["People"],"method":"get","summary":"Get personal information by id","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","worker_id","emergency_contacts"],"properties":{"id":{"type":"string","format":"uuid","example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","description":"Unique identifier for the worker."},"kyc":{"type":"object","required":["is_kyc_approved","kyc_approval_date"],"properties":{"is_kyc_approved":{"type":"boolean","example":true,"description":"Boolean to identify if the user is KYC verified"},"kyc_approval_date":{"type":"string","example":"2021-01-01","nullable":true,"description":"The Date the user was KYC verified if applicable"}},"description":"KYC (Know Your Customer) verification information for the worker."},"ooo":{"type":"object","nullable":true,"required":["leave_type","start_date","end_date","name"],"properties":{"name":{"type":"string","example":"Vacation","description":"The worker out of office name."},"end_date":{"type":"string","example":"2021-01-01","maxLength":10,"description":"The worker out of office end date."},"leave_type":{"enum":["LONG_TERM_LEAVE","SHORT_TERM_LEAVE"],"type":"string","example":"LONG_TERM_LEAVE","description":"The worker leave type."},"start_date":{"type":"string","format":"date","example":"2021-01-01","description":"The worker out of office start date."}},"description":"Out of office information for the worker, including leave type and dates."},"addresses":{"type":"array","items":{"type":"object","required":["id","type","street","city","state","country","zip"],"properties":{"id":{"type":"string","format":"uuid","example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","description":"Unique identifier for the address."},"zip":{"type":"string","example":"12345","nullable":true,"maxLength":255,"description":"The zip code."},"city":{"type":"string","example":"New York","nullable":true,"maxLength":255,"description":"The city."},"type":{"enum":["HOME","POSTAL","CONTRACT"],"type":"string","example":"HOME","description":"The type of the address."},"state":{"type":"string","example":"NY","nullable":true,"maxLength":255,"description":"The state."},"street":{"type":"string","example":"123 Main St","nullable":true,"maxLength":255,"description":"The street address."},"country":{"type":"string","example":"US","maxLength":255,"description":"The country."}}},"nullable":true,"description":"Array of addresses associated with the worker.","x-sensitive-pii":true},"worker_id":{"type":"integer","example":123456,"description":"The worker id."},"work_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"maxLength":255,"description":"The work email of the worker.","x-sensitive-pii":true},"external_id":{"type":"string","example":"123456","nullable":true,"maxLength":100,"description":"The external id of the worker."},"demographics":{"type":"object","nullable":true,"required":["gender","ethnicity"],"properties":{"gender":{"type":"object","nullable":true,"required":["id","name","other_name"],"properties":{"id":{"type":"string","format":"uuid","example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","description":"Unique identifier for the gender."},"name":{"type":"string","example":"male","maxLength":100,"description":"The name of the gender."},"other_name":{"type":"string","example":"other","nullable":true,"maxLength":100,"description":"Gender added by user when \"Other\" option was chosen."}},"description":"Gender information for the worker."},"ethnicity":{"type":"object","nullable":true,"required":["id","name","other_name"],"properties":{"id":{"type":"string","format":"uuid","example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","description":"Unique identifier for the ethnicity."},"name":{"type":"string","example":"white","maxLength":100,"description":"The name of the ethnicity."},"other_name":{"type":"string","example":"other","nullable":true,"maxLength":100,"description":"Ethnicity added by user when \"Other\" option was chosen."}},"description":"Ethnicity information for the worker."}},"description":"Demographic information for the worker, including gender and ethnicity.","x-sensitive-pii":true},"date_of_birth":{"type":"string","format":"date","example":"2021-01-01","nullable":true,"description":"The date of birth of the worker.","x-sensitive-pii":true},"nationalities":{"type":"array","items":{"type":"object","required":["code","name"],"properties":{"code":{"type":"string","example":"US","maxLength":2,"description":"Unique 2-letters ISO country code."},"name":{"type":"string","example":"United States","maxLength":100,"description":"The name of the country."}}},"nullable":true,"description":"Array of nationalities associated with the worker.","x-sensitive-pii":true},"phone_numbers":{"type":"array","items":{"type":"object","required":["type","phone_number","dial_code"],"properties":{"type":{"enum":["PERSONAL","WORK","HOME"],"type":"string","example":"PERSONAL","description":"The type of the phone number."},"dial_code":{"type":"string","example":"+1","maxLength":10,"description":"The dial code (also known as country code)."},"phone_number":{"type":"string","example":"1234567890","maxLength":30,"description":"The phone number."}}},"nullable":true,"description":"Array of phone numbers associated with the worker.","x-sensitive-pii":true},"personal_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"maxLength":255,"description":"The personal email of the worker.","x-sensitive-pii":true},"preferred_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"The preferred name of the worker.","x-sensitive-pii":true},"legal_last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":100,"description":"The legal last name of the worker.","x-sensitive-pii":true},"legal_first_name":{"type":"string","example":"John","nullable":true,"maxLength":100,"description":"The legal first name of the worker.","x-sensitive-pii":true},"emergency_contacts":{"type":"array","items":{"type":"object","required":["id","name","email","relationship","phone","preferred_language"],"properties":{"id":{"type":"string","format":"uuid","example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","description":"Unique identifier for the emergency contact."},"name":{"type":"string","example":"Jane Doe","maxLength":255,"description":"The name of the emergency contact."},"email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"maxLength":255,"description":"The email of the emergency contact."},"phone":{"type":"string","example":"1234567890","maxLength":30,"description":"The phone number of the emergency contact."},"relationship":{"type":"string","example":"Mother","maxLength":100,"description":"The type of relationship between the owner and the emergency contact."},"preferred_language":{"type":"object","nullable":true,"required":["id","language"],"properties":{"id":{"type":"integer","example":1,"description":"Unique identifier for the preferred language."},"language":{"type":"string","example":"English","maxLength":32,"description":"The name of the language."}},"description":"The preferred language in which the emergency contact should be contacted."}}},"description":"Array of emergency contacts associated with the worker."}}}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","code"],"properties":{"code":{"type":"string","example":"INTERNAL_SERVER_ERROR","description":"Error code identifying the type of error."},"details":{"type":"string","example":"An unexpected error occurred while processing the request.","nullable":true,"description":"Additional details about the error."},"message":{"type":"string","example":"Internal server error","description":"Error message describing what went wrong."}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string"},"example":"123456","required":true,"description":"Unique identifier for a worker (External ID)."}],"description":"Returns personal information for a worker by their worker ID.\n\n **Token scopes**: `people:read`","operationId":"getPersonalInformationById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/time_offs":{"post":{"path":"/rest/time_offs","tags":["Time Off"],"method":"post","summary":"Create time-off request","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","example":{"time_offs":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","amount":1,"reason":"Vacation","status":"REQUESTED","is_paid":false,"end_date":"2021-08-01","created_at":"2021-07-01T00:00:00Z","start_date":"2021-07-01","updated_at":"2021-07-01T00:00:00Z","approved_at":"2021-07-01T00:00:00Z","attachments":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","filename":"vacation-request.pdf","created_at":"2021-07-01T11:22:33Z","updated_at":"2021-07-01T33:44:33Z"}],"description":"Vacation","contract_oid":"d290f1ee-6c54-4b01-90e6-d701748f0851","requested_at":"2021-07-01","half_end_date":false,"half_start_date":false,"deduction_amount":1,"time_off_dailies":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","date":"2021-07-01","type":"WORKING_DAY","amount":1,"created_at":"2021-07-01T00:00:00Z","updated_at":"2021-07-01T00:00:00Z","description":"Vacation","time_off_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"}],"time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","recipient_profile":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","client_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"requester_profile":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","client_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"time_off_percentage":1,"is_end_date_estimated":false,"other_type_description":"Vacation"}]},"required":["time_offs"],"properties":{"time_offs":{"type":"array","items":{"type":"object","example":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","amount":1,"reason":"Vacation","status":"REQUESTED","is_paid":false,"end_date":"2021-08-01","created_at":"2021-07-01T00:00:00Z","start_date":"2021-07-01","updated_at":"2021-07-01T00:00:00Z","approved_at":"2021-07-01T00:00:00Z","attachments":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","filename":"vacation-request.pdf","created_at":"2021-07-01T11:22:33Z","updated_at":"2021-07-01T33:44:33Z"}],"description":"Vacation","contract_oid":"d290f1ee-6c54-4b01-90e6-d701748f0851","requested_at":"2021-07-01","half_end_date":false,"half_start_date":false,"deduction_amount":1,"entitlement_unit":"CALENDAR_DAY","time_off_dailies":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","date":"2021-07-01","type":"WORKING_DAY","amount":1,"created_at":"2021-07-01T00:00:00Z","updated_at":"2021-07-01T00:00:00Z","description":"Vacation","time_off_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"}],"time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","recipient_profile":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","client_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"requester_profile":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","client_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"time_off_percentage":1,"is_end_date_estimated":false,"other_type_description":"Vacation"},"required":["time_off_type_id","requested_at","start_date","end_date","is_paid","half_start_date","half_end_date","entitlement_unit","created_at","updated_at"],"properties":{"amount":{"type":"number","format":"float","example":1,"description":"Amount of time off taken. This is the total amount of time off taken. For example, if you take 2 days off, this will be 2. If you take 1 day off, this will be 1."},"reason":{"type":"string","example":"Sick leave - Doctor appointment","description":"Reason for taking time off. This is complementary information for the time-off description. Useful to provide sub categories for the same policy."},"status":{"enum":["REQUESTED","APPROVED","REJECTED","USED","CANCELED","DELETED"],"type":"string","example":"REQUESTED","description":"Status of the time off request. Can be REQUESTED, APPROVED, REJECTED, USED or CANCELED."},"is_paid":{"type":"boolean","example":false,"description":"Whether the time off is paid or unpaid."},"end_date":{"type":"string","format":"date","example":"2021-08-01","description":"End date of the time off request. This is the date when the time off ends. For example, if you take 2 days off, this will be the end date of the second day."},"created_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the time off request was created in the database."},"deleted_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Time off deletion date. Present only when the time-off is soft-deleted and include_deleted_time_offs was requested."},"start_date":{"type":"string","format":"date","example":"2021-08-01","description":"Start date of the time off request. This is the date when the time off starts. For example, if you take 2 days off, this will be the start date of the first day."},"updated_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the time off request was last updated in the database."},"approved_at":{"type":"string","format":"date-time","example":"2021-07-01T00:00:00Z","nullable":true,"description":"This is the date when the time off request was approved. This will be null if the time off request is not approved yet."},"attachments":{"type":"array","items":{"type":"object","example":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","filename":"vacation-request.pdf","created_at":"2021-07-01T11:22:33Z","updated_at":"2021-07-01T33:44:33Z"},"required":["id","filename","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Attachment id"},"filename":{"type":"string","example":"vacation-request.pdf","description":"Filename of the attachment"},"created_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the attachment was created in the database."},"updated_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the attachment was last updated in the database."}},"description":"An attachment associated with the time off request."},"example":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","filename":"vacation-request.pdf","created_at":"2021-07-01T11:22:33Z","updated_at":"2021-07-01T33:44:33Z"}],"description":"List of attachments associated with the time off request."},"canceled_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Time off cancellation date"},"description":{"type":"string","example":"Vacation","description":"Description of the time off request. Some policies require that a description is provided."},"contract_oid":{"type":"string","example":"d290f1ee6c54","nullable":true,"description":"Contract id. This is the id of the contract associated with the time off request."},"requested_at":{"type":"string","format":"date","example":"2021-07-01","description":"This is the date when the time off request was made."},"half_end_date":{"type":"boolean","example":false,"description":"Whether the end date is a half day or not."},"time_off_type":{"type":"object","example":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"Vacation","policy":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"Vacation Policy","policy_type":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"VACATION"}}},"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off type id."},"name":{"type":"string","example":"Vacation","description":"Time off type name. Basically the reason or category of time-off taken. For SICK leave, it can be doctor appointment, surgery etc."},"policy":{"type":"object","example":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"Vacation Policy","policy_type":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"VACATION"}},"required":["id","name","policy_type"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy id"},"name":{"type":"string","example":"Vacation Policy","description":"The custom name given to policy during policy creation."},"policy_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy type id"},"name":{"type":"string","example":"VACATION","description":"Depicts the type of policy, like VACATION, SICK etc"}}}},"description":"The policy associated with the time off type."}},"description":"The type of time off taken."},"time_off_event":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The time off event id. This is used to link the time off request to an event."},"type":{"enum":["PARENTAL_LEAVE"],"type":"string","example":"PARENTAL_LEAVE","description":"The type of the time off event."},"policy_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The policy id associated with the time off event. Same as the policy_id in the time off type."},"created_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"The date when the time off event was created in the database."},"updated_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"The date when the time off event was last updated in the database."},"event_details":{"type":"object","required":["was_premature_birth","had_multiple_children"],"properties":{"birth_date":{"type":"string","format":"date","example":"2025-05-13","description":"The birth date of the child. This is used for parental leave requests."},"adoption_date":{"type":"string","format":"date","example":"2025-05-13","description":"The date of adoption. This is used for parental leave requests."},"was_premature_birth":{"type":"boolean","example":false,"description":"Whether the birth was premature or not. This is used for parental leave requests."},"estimated_birth_date":{"type":"string","format":"date","example":"2025-05-13","description":"The estimated birth date of the child. Birth is estimated when the birth date has not been confirmed yet."},"had_multiple_children":{"type":"boolean","example":false,"description":"Whether the birth was multiple or not. This is used for parental leave requests."},"estimated_adoption_date":{"type":"string","format":"date","example":"2025-05-13","description":"The estimated adoption date of the child. Birth is estimated when the adoption date has not been confirmed yet."}},"description":"Details of the event associated with the time off request. Required for event based policies such as parental leave."},"hris_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The HRIS profile id of the worker associated with the time off event. Same as the hris_profile_id in the recipient_profile."},"time_off_type_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The time off type id associated with the time off event. Same as the time_off_type_id in the time off request."}}},"half_start_date":{"type":"boolean","example":false,"description":"Whether the start date is a half day or not."},"deduction_amount":{"type":"number","format":"float","example":1,"nullable":true,"description":"Deduction amount. Available for independent contractor's policies"},"entitlement_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"CALENDAR_DAY","description":"The unit in which the time off usage and entitlement are calculated."},"time_off_dailies":{"type":"array","items":{"type":"object","required":["id","time_off_id","amount","date","type","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off daily id"},"date":{"type":"string","format":"date","example":"2021-08-01","description":"Date of the time off daily. This is the date when the time off was taken."},"type":{"enum":["WORKING_DAY","NON_WORKING_DAY","HOLIDAY","FORFAIT_HOUR_DAY"],"type":"string","example":"WORKING_DAY","description":"Type of the time off daily. Can be WORKING_DAY, NON_WORKING_DAY, HOLIDAY or FORFAIT_HOUR_DAY."},"amount":{"type":"number","format":"float","example":1,"description":"Amount of time off taken in this specific date."},"created_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the time off daily was created in the database."},"updated_at":{"type":"string","format":"date-time","example":"2021-07-01T11:22:33.444Z","description":"This is the date when the time off daily was last updated in the database."},"description":{"type":"string","example":"Labour day","nullable":true,"description":"Description of the time off daily. When it is a HOLIDAY this is the holiday name."},"time_off_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off id. This is the id of the time off request associated with the time off daily."}}}},"time_off_type_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off type id. This is the id of the time off type associated with the time off request."},"recipient_profile":{"type":"object","example":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"required":["hris_profile_id","organization_id"],"properties":{"hris_profile_id":{"type":"string","format":"uuid","description":"The worker HRIS profile id in the given organization."},"organization_id":{"type":"string","format":"uuid","description":"Id of the organization the profile belongs to."}},"description":"The time off profile of the recipient of the time off request. Must be a worker profile."},"requester_profile":{"type":"object","example":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"required":["organization_id"],"properties":{"hris_profile_id":{"type":"string","format":"uuid","description":"The worker HRIS profile id in the given organization. Available when the requester is a worker."},"organization_id":{"type":"string","format":"uuid","description":"Id of the organization the profile belongs to."},"client_profile_id":{"type":"string","format":"uuid","description":"Id of the client profile. Available when the requester is a client."}},"description":"The time off profile of the requester of the time off request. Can be either a client or worker profile."},"time_off_percentage":{"type":"number","format":"float","example":1,"maximum":1,"minimum":0,"nullable":true,"description":"This is the percentage of time off taken."},"is_end_date_estimated":{"type":"boolean","example":false,"description":"Whether the end date is estimated or not. This is used on event based policies such as Parental leave."},"other_type_description":{"type":"string","example":"Study leave","nullable":true,"description":"Description of the time off type. This is used when the policy is OTHER."}},"description":"Created time off request"},"example":{"time_offs":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","amount":1,"reason":"Vacation","status":"REQUESTED","is_paid":false,"end_date":"2021-08-01","created_at":"2021-07-01T00:00:00Z","start_date":"2021-07-01","updated_at":"2021-07-01T00:00:00Z","approved_at":"2021-07-01T00:00:00Z","description":"Vacation","contract_oid":"d290f1ee-6c54-4b01-90e6-d701748f0851","requested_at":"2021-07-01","half_end_date":false,"half_start_date":false,"deduction_amount":1,"entitlement_unit":"CALENDAR_DAY","time_off_dailies":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","date":"2021-07-01","type":"WORKING_DAY","amount":1,"created_at":"2021-07-01T00:00:00Z","updated_at":"2021-07-01T00:00:00Z","description":"Vacation","time_off_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"}],"time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","recipient_profile":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","client_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"requester_profile":{"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","organization_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","client_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"time_off_percentage":1,"is_end_date_estimated":false,"other_type_description":"Vacation"}]},"description":"The list of created time offs. Depending on the selected dates, a time off can be split into more than one request."}},"description":"The list of created time offs. Depending on the selected dates, a time off can be split into more than one request."}}},"description":"Time off creation data"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"A machine-readable error code"},"field":{"type":"string","example":"start_date","nullable":true,"description":"The field associated with the error, if applicable"},"details":{"type":"object","nullable":true,"description":"Additional error details, if applicable"},"message":{"type":"string","example":"There is already a time-off for the dates 2026-03-05 and 2026-03-05","description":"A description of the returned error"}}},"description":"List of errors describing what went wrong"},"request":{"type":"object","properties":{"url":{"type":"string","example":"/v2/time_offs/time_off","description":"Request URL path"},"docs":{"type":"string","example":"no match","description":"Documentation reference"},"method":{"type":"string","example":"POST","description":"HTTP method"},"source":{"type":"string","example":"http","description":"Request source"},"status":{"type":"integer","example":400,"description":"HTTP status code"},"api_req_id":{"type":"string","example":"e986b19942682de2de9234de3ca360d1","description":"Unique API request identifier"}},"description":"Request metadata"}}},"example":{"errors":[{"code":"GENERIC_ERROR","message":"There is already a time-off for the dates 2026-03-05 and 2026-03-05"}],"request":{"url":"/v2/time_offs/time_off","docs":"no match","method":"POST","source":"http","status":400,"api_req_id":"e986b19942682de2de9234de3ca360d1"}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"A machine-readable error code"},"message":{"type":"string","example":"You do not have permission to access this resource","description":"A description of the returned error"}}},"description":"List of errors describing what went wrong"},"request":{"type":"object","properties":{"url":{"type":"string","example":"/v2/time_offs/time_off","description":"Request URL path"},"docs":{"type":"string","example":"no match","description":"Documentation reference"},"method":{"type":"string","example":"POST","description":"HTTP method"},"source":{"type":"string","example":"http","description":"Request source"},"status":{"type":"integer","example":403,"description":"HTTP status code"},"api_req_id":{"type":"string","example":"e986b19942682de2de9234de3ca360d1","description":"Unique API request identifier"}},"description":"Request metadata"}}},"example":{"errors":[{"code":"GENERIC_ERROR","message":"You do not have permission to access this resource"}],"request":{"url":"/v2/time_offs/time_off","docs":"no match","method":"POST","source":"http","status":403,"api_req_id":"e986b19942682de2de9234de3ca360d1"}}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"A machine-readable error code"},"message":{"type":"string","example":"HrisProfile not found","description":"A description of the returned error"}}},"description":"List of errors describing what went wrong"},"request":{"type":"object","properties":{"url":{"type":"string","example":"/v2/time_offs/time_off/12345","description":"Request URL path"},"docs":{"type":"string","example":"no match","description":"Documentation reference"},"method":{"type":"string","example":"GET","description":"HTTP method"},"source":{"type":"string","example":"http","description":"Request source"},"status":{"type":"integer","example":404,"description":"HTTP status code"},"api_req_id":{"type":"string","example":"e986b19942682de2de9234de3ca360d1","description":"Unique API request identifier"}},"description":"Request metadata"}}},"example":{"errors":[{"code":"GENERIC_ERROR","message":"The requested resource was not found"}],"request":{"url":"/v2/time_offs/time_off/12345","docs":"no match","method":"GET","source":"http","status":404,"api_req_id":"e986b19942682de2de9234de3ca360d1"}}}},"description":"Not Found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates a new time-off request for a worker.\n\n **Token scopes**: `time-off:write`, `worker:write`","operationId":"createTimeOffRequest-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"amount":30,"reason":"Vacation","is_paid":true,"end_date":"2021-04-30","start_date":"2021-04-01","time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"}},"properties":{"data":{"type":"object","example":{"amount":1,"reason":"Vacation","is_paid":false,"end_date":"2021-08-02","start_date":"2021-08-01","requested_at":"2021-08-01","half_end_date":false,"half_start_date":false,"time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"required":["recipient_profile_id","start_date","end_date"],"properties":{"dates":{"type":"array","items":{"type":"object","example":{"date":"2025-05-13","type":"WORKING_DAY","amount":8,"time_off_percentage":1},"required":["date"],"properties":{"date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2025-05-13","description":"An specific date in the time-off request"},"hours":{"type":"number","format":"float","example":8,"description":"The amount taken in hours during this specific date. It can not exceed the maximum allowed hours for the date."},"amount":{"type":"number","format":"float","example":1,"description":"The amount of time off requested for the date. It must be in the same time unit as in the total amount for the time off request."},"day_type":{"enum":["HALF_DAY","FULL_DAY","PERCENTAGE","HOURLY"],"type":"string","example":"FULL_DAY","description":"The type of day for the time off request. All dates must follow the same type."}},"description":"The dates breakdown for the time off request."},"example":[{"date":"2025-05-13","type":"WORKING_DAY","amount":8,"time_off_percentage":1},{"date":"2025-05-14","type":"WORKING_DAY","amount":8,"time_off_percentage":1},{"date":"2025-05-15","type":"WORKING_DAY","amount":8,"time_off_percentage":1}],"description":"The dates breakdown for the time off request."},"reason":{"type":"string","example":"Sick leave - Doctor appointment","nullable":true,"maxLength":500,"description":"Reason for taking time off. This is complementary information for the time-off description. Useful to provide sub categories for the same policy."},"status":{"enum":["REQUESTED","APPROVED"],"type":"string","default":"APPROVED","example":"REQUESTED","description":"Status for the time off request. When set to REQUESTED, the time off should be reviewed later through POST /time_offs/review."},"is_paid":{"type":"boolean","example":false,"description":"Whether the time off is paid or unpaid. By default it follows the policy configuration."},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2021-08-02","description":"End date of the time off request. This is the date when the time off ends. For example, if you take 2 days off, this will be the end date of the second day."},"policy_id":{"type":"string","format":"uuid","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off policy id. Can be used in place of time_off_type_id"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2021-08-01","description":"Start date of the time off request. This is the date when the time off starts. For example, if you take 2 days off, this will be the start date of the first day."},"description":{"type":"string","example":"Vacation","nullable":true,"maxLength":500,"description":"Description of the time off request. Some policies require that a description is provided."},"contract_oid":{"type":"string","example":"d290f1ee6c54","nullable":true,"maxLength":24,"description":"Contract id. This is the id of the contract associated with the time off request."},"event_details":{"type":"object","required":["birth_date","was_premature_birth","had_multiple_children"],"properties":{"birth_date":{"type":"string","format":"date","example":"2025-05-13","description":"The birth date of the child. This is used for parental leave requests."},"adoption_date":{"type":"string","format":"date","example":"2025-05-13","description":"The date of adoption. This is used for parental leave requests."},"was_premature_birth":{"type":"boolean","example":false,"description":"Whether the birth was premature or not. This is used for parental leave requests."},"had_multiple_children":{"type":"boolean","example":false,"description":"Whether the birth was multiple or not. This is used for parental leave requests."}},"description":"Details of the event associated with the time off request. Required for event based policies such as parental leave."},"deduction_amount":{"type":"number","format":"float","example":1,"minimum":1,"nullable":true,"description":"Deduction amount. Available for independent contractor's policies"},"time_off_type_id":{"type":"string","format":"uuid","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off type id. Required when policy_id is not provided"},"time_off_event_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The time off event id. This is used to link the time off request to an event."},"time_off_percentage":{"type":"number","format":"double","example":1,"maximum":1,"minimum":0,"nullable":true,"description":"This is the percentage of time off taken. This is used when the time off request is a percentage."},"recipient_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The hris profile id of the recipient"},"other_type_description":{"type":"string","example":"Study leave","nullable":true,"maxLength":255,"description":"Description of the time off type. This is used when the policy is OTHER."},"use_deel_approval_flow":{"type":"boolean","default":false,"example":true,"description":"Whether to use Deel's approval flow for this time off request. If set to true, the time off request will go through Deel's approval flow instead of being handled through the public-api review time-off endpoint."}},"description":"The time off request data"}},"description":"The time off request data"}},"multipart/form-data":{"schema":{"type":"object","properties":{"data":{"type":"object","example":{"file":"file.pdf","amount":1,"reason":"Vacation","is_paid":false,"end_date":"2021-08-01","start_date":"2021-07-01","requested_at":"2021-07-01","half_end_date":false,"half_start_date":false,"time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"required":["recipient_profile_id","start_date","end_date","file"],"properties":{"file":{"type":"string","format":"binary","example":"file","minLength":1,"description":"File of attached to the time off. Supported files (png, pdf, jpg)"},"dates":{"type":"array","items":{"type":"object","example":{"date":"2025-05-13","type":"WORKING_DAY","amount":8,"time_off_percentage":1},"required":["date"],"properties":{"date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2025-05-13","description":"An specific date in the time-off request"},"hours":{"type":"number","format":"float","example":8,"description":"The amount taken in hours during this specific date. It can not exceed the maximum allowed hours for the date."},"amount":{"type":"number","format":"float","example":1,"description":"The amount of time off requested for the date. It must be in the same time unit as in the total amount for the time off request."},"day_type":{"enum":["HALF_DAY","FULL_DAY","PERCENTAGE","HOURLY"],"type":"string","example":"FULL_DAY","description":"The type of day for the time off request. All dates must follow the same type."}},"description":"The dates breakdown for the time off request."},"example":[{"date":"2025-05-13","type":"WORKING_DAY","amount":8,"time_off_percentage":1},{"date":"2025-05-14","type":"WORKING_DAY","amount":8,"time_off_percentage":1},{"date":"2025-05-15","type":"WORKING_DAY","amount":8,"time_off_percentage":1}],"description":"The dates breakdown for the time off request."},"reason":{"type":"string","example":"Sick leave - Doctor appointment","nullable":true,"maxLength":500,"description":"Reason for taking time off. This is complementary information for the time-off description. Useful to provide sub categories for the same policy."},"status":{"enum":["REQUESTED","APPROVED"],"type":"string","default":"APPROVED","example":"REQUESTED","description":"Status for the time off request. When set to REQUESTED, the time off should be reviewed later through POST /time_offs/review."},"is_paid":{"type":"boolean","example":false,"description":"Whether the time off is paid or unpaid. By default it follows the policy configuration."},"end_date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2021-08-02","description":"End date of the time off request. This is the date when the time off ends. For example, if you take 2 days off, this will be the end date of the second day."},"policy_id":{"type":"string","format":"uuid","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off policy id. Can be used in place of time_off_type_id"},"start_date":{"anyOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2021-08-01","description":"Start date of the time off request. This is the date when the time off starts. For example, if you take 2 days off, this will be the start date of the first day."},"description":{"type":"string","example":"Vacation","nullable":true,"maxLength":500,"description":"Description of the time off request. Some policies require that a description is provided."},"contract_oid":{"type":"string","example":"d290f1ee6c54","nullable":true,"maxLength":24,"description":"Contract id. This is the id of the contract associated with the time off request."},"event_details":{"type":"object","required":["birth_date","was_premature_birth","had_multiple_children"],"properties":{"birth_date":{"type":"string","format":"date","example":"2025-05-13","description":"The birth date of the child. This is used for parental leave requests."},"adoption_date":{"type":"string","format":"date","example":"2025-05-13","description":"The date of adoption. This is used for parental leave requests."},"was_premature_birth":{"type":"boolean","example":false,"description":"Whether the birth was premature or not. This is used for parental leave requests."},"had_multiple_children":{"type":"boolean","example":false,"description":"Whether the birth was multiple or not. This is used for parental leave requests."}},"description":"Details of the event associated with the time off request. Required for event based policies such as parental leave."},"deduction_amount":{"type":"number","format":"float","example":1,"minimum":1,"nullable":true,"description":"Deduction amount. Available for independent contractor's policies"},"time_off_type_id":{"type":"string","format":"uuid","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off type id. Required when policy_id is not provided"},"time_off_percentage":{"type":"number","format":"double","example":1,"maximum":1,"minimum":0,"nullable":true,"description":"This is the percentage of time off taken. This is used when the time off request is a percentage."},"recipient_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The hris profile id of the recipient"},"other_type_description":{"type":"string","example":"Study leave","nullable":true,"maxLength":255,"description":"Description of the time off type. This is used when the policy is OTHER."},"use_deel_approval_flow":{"type":"boolean","default":false,"example":true,"description":"Whether to use Deel's approval flow for this time off request. If set to true, the time off request will go through Deel's approval flow instead of being handled through the public-api review time-off endpoint."}},"description":"The time off request data"}},"description":"The time off request data"}}},"required":true,"description":"The time off request data"},"security":[{"deelToken":[]},{"oauth2":["time-off:write","worker:write"]}]},"get":{"path":"/rest/time_offs","tags":["Time Off"],"method":"get","summary":"List time-off requests for Organization","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["has_next_page","data","page_size"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","time_off_type_id","requested_at","start_date","end_date","is_paid","half_start_date","half_end_date","amount","created_at","updated_at","entitlement_unit"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off id"},"amount":{"type":"number","format":"float","example":0.5,"description":"Amount of time off"},"reason":{"type":"string","example":"Vacation","description":"Reason for time off"},"status":{"enum":["REQUESTED","APPROVED","REJECTED","USED","CANCELED","DELETED"],"type":"string","example":"REQUESTED","description":"Status of time off"},"is_paid":{"type":"boolean","example":true,"description":"Is time off paid"},"end_date":{"type":"string","format":"date","example":"2022-01-01","description":"End date of time off"},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off creation date"},"deleted_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Time off deletion date. Present only when the time-off is soft-deleted and include_deleted_time_offs was requested."},"start_date":{"type":"string","format":"date","example":"2022-01-01","description":"Start date of time off"},"updated_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off update date"},"approved_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Time off approval date"},"canceled_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Time off cancellation date"},"description":{"type":"string","example":"Vacation","nullable":true,"description":"Time off description"},"contract_oid":{"type":"string","example":"32fk5ds","description":"Contract id"},"requested_at":{"type":"string","format":"date","example":"2022-01-01","description":"Time off request date"},"half_end_date":{"type":"boolean","example":true,"description":"Is half end date"},"time_off_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off type id."},"name":{"type":"string","example":"Vacation","description":"Time off type name. Basically the reason or category of time-off taken. For SICK leave, it can be doctor appointment, surgery etc."},"policy":{"type":"object","required":["id","name","policy_type"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy id"},"name":{"type":"string","example":"Standard Vacation Policy","description":"The custom name given to policy during policy creation."},"policy_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy type id"},"name":{"type":"string","example":"Vacation","description":"Depicts the type of policy, like VACATION, SICK etc"}}}}}}},"half_start_date":{"type":"boolean","example":true,"description":"Is half start date"},"time_off_origin":{"enum":["ADMIN","BULK_IMPORT","DEEL_APP","ENGAGE","INTEGRATION","PUBLIC_API","SLACK","TEAMS","UNKNOWN"],"type":"string","example":"PUBLIC_API","description":"Time off origin"},"deduction_amount":{"type":"number","format":"float","example":0.5,"nullable":true,"description":"Deduction amount"},"entitlement_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"CALENDAR_DAY","description":"The unit in which the time off usage and entitlement are calculated."},"time_off_dailies":{"type":"array","items":{"type":"object","required":["id","time_off_id","amount","date","type","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off daily id"},"date":{"type":"string","format":"date","example":"2022-01-01","description":"Time off daily date"},"type":{"enum":["WORKING_DAY","NON_WORKING_DAY","HOLIDAY","FORFAIT_HOUR_DAY"],"type":"string","example":"WORKING_DAY","description":"Time off daily type"},"amount":{"type":"number","format":"float","example":0.5,"description":"Time off daily amount"},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off daily creation date"},"updated_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off daily update date"},"description":{"type":"string","example":"Vacation","nullable":true,"description":"Time off daily description"},"time_off_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off id"}}}},"time_off_type_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off type id"},"recipient_profile":{"type":"object","properties":{"hris_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Recipient hris profile id"},"organization_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Recipient organization id"},"client_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Recipient client profile id"}}},"requester_profile":{"type":"object","properties":{"hris_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Request hris profile id"},"organization_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Request organization id"},"client_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Request client profile id"}}},"time_off_percentage":{"type":"number","format":"float","example":0.5,"nullable":true,"description":"Time off percentage"},"is_end_date_estimated":{"type":"boolean","example":true,"description":"Is end date estimated"},"other_type_description":{"type":"string","example":"Vacation","nullable":true,"description":"Other type description"}}}},"next":{"type":"string"},"count":{"type":"integer","example":100,"description":"Total count of items"},"page_size":{"type":"integer","example":10,"maximum":200,"minimum":5,"description":"Page size"},"has_next_page":{"type":"boolean","example":true,"description":"Has next page"}},"description":"Time offs associated to the query"}}},"description":"Successful operation time offs returned"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Bad request (invalid query parameters or validation error)."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Unauthorized (missing or invalid token)."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Forbidden (insufficient permissions)."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Not found (organization or HRIS profile not found)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"status","style":"form","schema":{"type":"array","items":{"enum":["REQUESTED","APPROVED","REJECTED","USED","CANCELED","DELETED"],"type":"string"}},"example":["REQUESTED"],"explode":true,"description":"Time off status"},{"in":"query","name":"time_off_ids","style":"form","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["d290f1ee-6c54-4b01-90e6-d701748f0851"],"explode":true,"description":"Time off ids"},{"in":"query","name":"start_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Start date of time off"},{"in":"query","name":"end_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"End date of time off"},{"in":"query","name":"approval_start_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Approval start date"},{"in":"query","name":"approval_end_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Approval end date"},{"in":"query","name":"updated_start_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Updated start date"},{"in":"query","name":"updated_end_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Updated end date"},{"in":"query","name":"page_size","schema":{"type":"integer","maximum":200,"minimum":5},"example":10,"description":"Page size"},{"in":"query","name":"policy_types","style":"form","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["d290f1ee-6c54-4b01-90e6-d701748f0851"],"explode":true,"description":"Policy types"},{"in":"query","name":"policy_type_names","style":"form","schema":{"type":"array","items":{"enum":["Adoption leave","Advanced vacation","Bereavement leave","Blood donation leave","Breastfeeding leave","Childbirth leave","Childcare leave","Civic/public duty leave","Compensatory leave","Disability leave","Doctor's appointment leave","Family & domestic violence leave","Family responsibility leave","Floating Holiday Allowance","Hajj leave","Hospitalization leave","Long Service Leave","Marriage/wedding leave","Maternity leave","Menstrual leave","Military leave","Moving leave","Other leave","Paid leave","Parental leave","Paternity leave","Personal leave","Pregnancy leave","Regional holiday","RTT","Sick leave","Study leave","Supplementary Leave","Unpaid leave","Vacation","Vacation - public holidays replacement","Volunteer leave","Work accident leave","Work Location"],"type":"string"}},"example":["Vacation"],"explode":true,"description":"Filter by policy type names. When omitted, Work Location time-offs are excluded by default. Pass policy_type_names=Work+Location to retrieve only Work Location entries."},{"in":"query","name":"next","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Next page"},{"in":"query","name":"include_deleted_time_offs","schema":{"type":"boolean","default":false},"example":"true","description":"When true, includes soft-deleted time-off records in the response. Deleted records will have a deleted_at timestamp and status DELETED."}],"description":"Returns time-off requests for the authenticated organization, with optional filtering by status, date ranges, policy types, and specific request IDs. Results are paginated using cursor-based navigation.\n\n **Token scopes**: `time-off:read`","operationId":"listTimeOffRequestsForOrganization-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/gp/workers/{worker_id}/banks":{"get":{"path":"/rest/gp/workers/{worker_id}/banks","tags":["Global Payroll"],"method":"get","summary":"Retrieve bank accounts","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","allOf":[{"type":"object","properties":{"city":{"type":"string","example":"New York","description":"The city of the user's address.","x-sensitive-pii":true},"iban":{"type":"string","example":"GB33BUKB20201555555555","description":"The International Bank Account Number (IBAN)."},"email":{"type":"string","example":"user@example.com","description":"The user's email address.","x-sensitive-pii":true},"phone":{"type":"string","example":"+1234567890","description":"The user's phone number.","x-sensitive-pii":true},"postal":{"type":"string","example":"10001","description":"The user's postal or ZIP code.","x-sensitive-pii":true},"tax_id":{"type":"string","example":"123-45-6789","description":"The user's tax identification number."},"bank_code":{"type":"string","example":"BUKB","description":"The bank code."},"bank_name":{"type":"string","example":"Barclays Bank","description":"Name of the user's bank."},"full_name":{"type":"string","example":"John Doe","description":"Full name of the user.","x-sensitive-pii":true},"sort_code":{"type":"string","example":"12345","description":"UK sort code."},"swift_bic":{"type":"string","example":"BUKBGB22","description":"SWIFT/BIC code for the bank."},"rib_number":{"type":"string","example":"12345678901","description":"The RIB(Relevé d'Identité Bancaire)."},"branch_code":{"type":"string","example":"12345","description":"The branch code of the user's bank."},"account_type":{"type":"string","example":"checking","description":"Bank account type."},"country_code":{"type":"string","example":"US","description":"The country code of the user.","x-sensitive-pii":true},"address_line1":{"type":"string","example":"123 Main Street","description":"The primary address line.","x-sensitive-pii":true},"address_line2":{"type":"string","example":"Apartment 4B","description":"The secondary address line.","x-sensitive-pii":true},"currency_code":{"type":"string","example":"USD","description":"The currency code for transactions."},"original_name":{"type":"string","example":"Johnathan Doe","description":"The original name of the user.","x-sensitive-pii":true},"account_number":{"type":"string","example":"5555555555","description":"The user's bank account number."},"province_state":{"type":"string","example":"NY","description":"The state or province of the user's address.","x-sensitive-pii":true},"bank_branch_name":{"type":"string","example":"Barclays Manhattan Branch","description":"The name of the user's bank branch."},"bank_country_code":{"type":"string","example":"GB","description":"The country code where the bank is located."},"ach_routing_number":{"type":"string","example":"021000021","description":"The ACH (Automated Clearing House) Routing Number."}}},{"type":"object","required":["id","created_at","updated_at"],"properties":{"id":{"type":"string","example":"c34199c6-5b6f-4e5b-83c9-bb7044f0bfe7","description":"Unique identifier of this resource."},"status":{"type":"string","example":"active","description":"Current status of bank account."},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Long date-time format following ISO-8601."},"updated_at":{"type":"string","format":"date-time","example":"2022-05-24T09:40:46.235Z","nullable":false,"description":"Long date-time format following ISO-8601."}}}]}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","description":"Unique identifier for a worker."},"example":"wkr01a8pdlqlg0v0pzx11yhdy","required":true,"description":"Unique identifier for a worker."}],"description":"Returns all bank accounts associated with the employee.\n\n **Token scopes**: `people:read`","operationId":"getGpBankAccounts-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:read"]}]},"post":{"path":"/rest/gp/workers/{worker_id}/banks","tags":["Global Payroll"],"method":"post","summary":"Add bank account","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","description":"Unique identifier for the newly added bank account."},"status":{"type":"string","example":"success","description":"The status of the newly added bank account."},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Timestamp of when the bank account was created, in ISO-8601 format."},"updated_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Timestamp of the last update to the bank account, in ISO-8601 format."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for a worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for a worker in UUID format."}],"description":"Adds a bank account for the GP worker; country-specific field requirements must be retrieved from `GET /gp/workers/{worker_id}/banks/guide` before submitting.\n\n **Token scopes**: `people:write`","operationId":"addGpBankAccount-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"city":{"type":"string","example":"Springfield","description":"The city of the user's address."},"iban":{"type":"string","example":"GB29NWBK60161331926819","description":"The International Bank Account Number (IBAN)."},"email":{"type":"string","example":"john.doe@example.com","description":"The user's email address."},"phone":{"type":"string","example":"+1234567890","description":"The user's phone number."},"postal":{"type":"string","example":"12345","description":"The user's postal or ZIP code."},"tax_id":{"type":"string","example":"123-45-6789","description":"The user's tax identification number."},"bank_code":{"type":"string","example":"123","description":"The bank code."},"bank_name":{"type":"string","example":"Bank of Examples","description":"Name of the user's bank."},"full_name":{"type":"string","example":"John Doe","description":"Full name of the user."},"swift_bic":{"type":"string","example":"EXAMPLEBIC","description":"SWIFT/BIC code for the bank."},"rib_number":{"type":"string","example":"12345678901","description":"The RIB (Relevé d'Identité Bancaire)."},"branch_code":{"type":"string","example":"001","description":"The branch code of the user's bank."},"account_type":{"type":"string","example":"Savings","description":"Bank account type."},"country_code":{"type":"string","example":"US","description":"The country code of the user's address."},"address_line1":{"type":"string","example":"1234 Main St","description":"The primary address line."},"address_line2":{"type":"string","example":"Apartment 101","description":"The secondary address line."},"currency_code":{"type":"string","example":"USD","description":"The currency code for transactions."},"original_name":{"type":"string","example":"Johnathan Doe","description":"The original name of the user."},"account_number":{"type":"string","example":"123456789012","description":"The user's bank account number."},"province_state":{"type":"string","example":"Ontario","description":"The state or province of the user's address."},"bank_branch_name":{"type":"string","example":"Main Street Branch","description":"The name of the user's bank branch."},"bank_country_code":{"type":"string","example":"US","description":"The country code where the bank is located."},"ach_routing_number":{"type":"string","example":"12345678901","description":"The ACH (Automated Clearing House) Routing Number."}}}}}}},"required":true,"description":"Request body containing the details of the bank account to be added."},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/consent_token":{"post":{"path":"/rest/consent_token","tags":["Consent"],"method":"post","summary":"Create a consent token","security":[{"deelToken":[]},{"oauth2":[]}],"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["unique_consent_token","created_at","updated_at","expires_at"],"properties":{"created_at":{"type":"string","format":"date-time","example":"2025-01-08T21:30:21.000Z","nullable":false,"description":"Token creation timestamp"},"expires_at":{"type":"string","format":"date-time","example":"2025-01-15T21:30:21.000Z","nullable":false,"description":"Token expiration timestamp"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-08T21:30:21.000Z","nullable":false,"description":"Token last update timestamp"},"unique_consent_token":{"type":"string","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOiJiMzk0NmYwYi05N2I4LTQ1NzAtYTY3MS02MDI0Njk0MzQ0OTYiLCJjb250cmFjdElkIjoiM3puazlucCIsInByb2ZpbGVJZCI6IjBhNGQwMDE1LWRhM2MtNDM2Yi05OTBkLTU2NDM4MTEzMzZkMCIsIm9yZ2FuaXphdGlvbklkIjoiMTg1NDgwIiwiaWF0IjoxNzM2MzcxODIxLCJleHAiOjE3MzY5NzY2MjEsImp0aSI6IjAyOGNjY2JiMmFlMTgyNjNmZGQ0ODZhMzIyYWVlNzdiIn0.xqOc4ybzrLEx46QLCVe_u_xHHrjYftPMdXDAEZ-gH78","nullable":false,"minLength":1,"description":"JWT token for consent"}}}}}}},"description":"Consent token created successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}},"description":"Validation error"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}},"description":"Internal server error"}},"description":"Generates a time-bounded consent token used to authorize third-party service connections on behalf of an organization. The token expires at the time indicated by `expires_at` in the response.","operationId":"createConsentToken-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["user_id","profile_id","contract_id"],"properties":{"user_id":{"type":"string","example":"659b608c-1e51-4bf2-8aca-85417cae63be","nullable":false,"minLength":1,"description":"User ID"},"profile_id":{"type":"string","example":"a94ff670-73e4-446d-a7fa-59087bc9ba38","nullable":false,"minLength":1,"description":"Profile ID"},"contract_id":{"type":"string","example":"3ey7jg6","nullable":false,"minLength":1,"description":"Contract ID"}}}}}}},"required":true}}},"/departments":{"get":{"path":"/rest/departments","tags":["Organizations"],"method":"get","summary":"Retrieve Departments","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"c1f4d8ce-66b9-4b98-9054-815237118cbc","name":"Engineering","parent":null},{"id":"25cd10dd-5a9b-42c4-a176-4ba6bb5c28c8","name":"Human Resources","parent":null},{"id":"facc9050-f4c9-4250-bc95-b7584e411a00","name":"Software Development","parent":"1"}]},"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier for the department."},"name":{"type":"string","example":"Engineering","nullable":false,"minLength":1,"description":"The name of the department."},"parent":{"type":"string","nullable":true,"description":"The ID of the parent department, if applicable."}}}}}}}},"description":"Successful retrieval of the list of departments."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized. Please provide valid authentication credentials.","description":"An error message indicating that the authentication failed."}}}}},"description":"Unauthorized. The request is missing authentication credentials or the credentials provided are invalid."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"No departments found in this organization.","description":"An error message indicating that no departments were found."}}}}},"description":"No departments found. There are no departments associated with the current organization."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Internal server error.","description":"A general error message indicating that the server encountered an unexpected issue."}}}}},"description":"Internal server error. An error occurred on the server while processing the request."}},"description":"Returns the list of departments within the authenticated user's organization, including each department's identifier, name, and parent department where applicable.\n\n **Token scopes**: `organizations:read`","operationId":"GetDepartments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/equity-participants":{"get":{"path":"/rest/equity-participants","tags":["Equity Tokens"],"method":"get","summary":"List equity participants","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","employee_number","hris_profile_id","alternate_employee_number","account_holder_type","full_name","stock_options_and_awards_employee_status","stock_options_and_awards_employee_status_effective_date","current_employment","current_employment_effective_date","hire_date","company_email","email","home_address_line_1","home_address_line_2","home_address_city","home_address_state_province","home_address_country","home_address_zip_postal_code","company_provided_personal_email","cost_center","cost_center_effective_date","current_employment_description","organization_name","pre_clearance","account_activation_date","ssn","source_file_id","last_seen_dataset_id","row_hash","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"The unique identifier of the participant record."},"ssn":{"type":"string","example":"123-45-6789","nullable":true,"description":"US Social Security Number, as reported by the ingested file. Returned in full, unmasked, because it is a required input to US equity tax withholding. Present only for participants whose source record carries one. Treat this value as a direct identifier and store it accordingly.","x-sensitive-pii":true},"email":{"type":"string","example":"jane.doe@personal.example","nullable":true,"description":"Personal email address, as reported by the ingested file.","x-sensitive-pii":true},"row_hash":{"type":"string","example":"9f2c1a7e4b6d8f0a2c4e6b8d0f2a4c6e8b0d2f4a6c8e0b2d4f6a8c0e2b4d6f8a","description":"Hash of the reported values on this record. Compare it between syncs to detect a change without diffing every field."},"full_name":{"type":"string","example":"Jane Q Doe","nullable":true,"description":"Participant full name, as reported by the ingested file.","x-sensitive-pii":true},"hire_date":{"type":"string","format":"date","example":"2021-09-13","nullable":true,"description":"Hire date, as reported by the ingested file.","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was first ingested."},"updated_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was last upserted, for incremental sync."},"cost_center":{"type":"string","example":"R&D","nullable":true,"description":"Cost center, as reported by the ingested file.","x-sensitive-employment":true},"company_email":{"type":"string","example":"jane.doe@example.com","nullable":true,"description":"Company email address, as reported by the ingested file.","x-sensitive-pii":true},"pre_clearance":{"type":"string","example":"Not Required","nullable":true,"description":"Pre-clearance status, as reported by the ingested file."},"source_file_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"Identifier of the ingested Shareworks report file this record was last upserted from."},"employee_number":{"type":"string","example":"9001","description":"Shareworks employee number, as reported by the ingested file. The intended join key for this record. Some values are non-numeric for legacy or masked records.","x-sensitive-pii":true},"hris_profile_id":{"type":"integer","example":4821,"nullable":true,"description":"Matched HRIS profile id, if employee_number could be resolved to one. Null when unmatched, or when employee_number is non-numeric or blank.","x-sensitive-pii":true},"home_address_city":{"type":"string","example":"Austin","nullable":true,"description":"Home address city, as reported by the ingested file.","x-sensitive-pii":true},"organization_name":{"type":"string","example":"Deel Inc.","nullable":true,"description":"Organization name, as reported by the ingested file."},"current_employment":{"type":"string","example":"Full Time","nullable":true,"description":"Current employment classification, as reported by the ingested file.","x-sensitive-employment":true},"account_holder_type":{"type":"string","example":"Employee","nullable":true,"description":"Account holder type, as reported by the ingested file."},"home_address_line_1":{"type":"string","example":"1 Example Street","nullable":true,"description":"First line of the home address, as reported by the ingested file.","x-sensitive-pii":true},"home_address_line_2":{"type":"string","example":"Apartment 4","nullable":true,"description":"Second line of the home address, as reported by the ingested file.","x-sensitive-pii":true},"home_address_country":{"type":"string","example":"United States","nullable":true,"description":"Home address country, as reported by the ingested file.","x-sensitive-pii":true},"last_seen_dataset_id":{"type":"string","format":"uuid","example":"c3d4e5f6-a7b8-9012-cdef-345678901234","nullable":true,"description":"Identifier of the most recent ingested dataset in which this record still appeared. Null for records ingested before dataset tracking began."},"account_activation_date":{"type":"string","format":"date-time","example":"2024-12-06T14:04:00.000Z","nullable":true,"description":"Moment the Shareworks account was activated. The source file reports this in US Pacific local time; it is returned here in UTC.","x-sensitive-employment":true},"alternate_employee_number":{"type":"string","example":"A-9001","nullable":true,"description":"Alternate employee number, as reported by the ingested file.","x-sensitive-pii":true},"cost_center_effective_date":{"type":"string","format":"date","example":"2024-01-01","nullable":true,"description":"Date the cost center took effect.","x-sensitive-employment":true},"home_address_state_province":{"type":"string","example":"TX","nullable":true,"description":"Home address state or province, as reported by the ingested file.","x-sensitive-pii":true},"home_address_zip_postal_code":{"type":"string","example":"78701","nullable":true,"description":"Home address ZIP or postal code, as reported by the ingested file.","x-sensitive-pii":true},"current_employment_description":{"type":"string","example":"Transferred from the UK entity","nullable":true,"description":"Free-text description of the current employment, as reported by the ingested file. Unpopulated in every record delivered so far.","x-sensitive-employment":true},"company_provided_personal_email":{"type":"string","example":"jane.doe@personal.example","nullable":true,"description":"Personal email address supplied by the company, as reported by the ingested file.","x-sensitive-pii":true},"current_employment_effective_date":{"type":"string","format":"date","example":"2024-03-01","nullable":true,"description":"Date the current employment classification took effect.","x-sensitive-employment":true},"stock_options_and_awards_employee_status":{"type":"string","example":"Active","nullable":true,"description":"Stock options and awards employee status, as reported by the ingested file.","x-sensitive-employment":true},"stock_options_and_awards_employee_status_effective_date":{"type":"string","format":"date","example":"2024-03-01","nullable":true,"description":"Date the stock options and awards employee status took effect.","x-sensitive-employment":true}}},"description":"Page of equity participant records, one per Shareworks employee number."},"has_more":{"type":"boolean","example":false,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","nullable":true,"description":"Cursor for the next page. Null when has_more is false."}}}}},"description":"List equity participants returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid cursor","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"validation_error","message":"Invalid cursor"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"unauthorized","message":"Unauthorized"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Insufficient permissions to view equity participants","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"forbidden","message":"Insufficient permissions to view equity participants"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — caller lacks the equities.view permission, or the caller's organization is not permitted to access this endpoint."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Not found","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"not_found","message":"Not found"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found — the requested resource does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"internal_server_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Internal server error","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"internal_server_error","message":"Internal server error"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of records to return in this page."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":2048},"example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","required":false,"description":"Opaque pagination cursor returned as next_cursor by a previous response. Omit to fetch the first page."},{"in":"query","name":"employee_number","schema":{"type":"string","maxLength":64},"example":"9001","required":false,"description":"Only return records for this exact Shareworks employee number."}],"description":"Retrieves the people who hold equity in an organization, as ingested from Shareworks, in ascending employee_number order. Use it to reconcile equity participants against HRIS records, or to feed worker identity and residence data into equity tax calculations. Records carry direct identifiers, including a full Social Security Number where the source reports one. Requires the `equities.view` permission at the organization level.\n\n **Token scopes**: `equities:read`","operationId":"listEquityParticipants-v2026-09-08","security":[{"deelToken":[]},{"oauth2":["equities:read"]}]}},"/organizations":{"get":{"path":"/rest/organizations","tags":["Organizations"],"method":"get","summary":"Get Current Organization","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"00000000-0000-0000-0000-000000000000","name":"Example Organization"}]},"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The unique identifier of the organization."},"name":{"type":"string","example":"Example Organization","nullable":false,"minLength":1,"description":"The name of the organization."}}}}}}}},"description":"Successful retrieval of the organization details."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized. Please provide valid authentication credentials.","description":"An error message indicating that the authentication failed."}}}}},"description":"Unauthorized. The request is missing authentication credentials or the credentials provided are invalid."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Organization not found.","description":"An error message indicating that no organization was found for the authenticated user."}}}}},"description":"Organization not found. The current organization associated with the authentication token could not be found."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Internal server error.","description":"A general error message indicating that the server encountered an unexpected issue."}}}}},"description":"Internal server error. An error occurred on the server while processing the request."}},"description":"Returns details of the organization associated with the authentication token; the organization is resolved automatically from the token and requires no additional identifier.\n\n **Token scopes**: `organizations:read`","operationId":"getOrganizations-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/workers/amendments/{amendment_id}/sign":{"post":{"path":"/rest/workers/amendments/{amendment_id}/sign","tags":["Contracts"],"method":"post","summary":"Sign Amendment","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","is_signed"],"properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000","description":"The unique identifier of the signed amendment."},"is_signed":{"type":"boolean","example":true,"description":"Indicates whether the amendment was successfully signed."}}}}}}},"description":"Amendment successfully signed."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"amendment_id","schema":{"type":"string"},"example":"550e8400-e29b-41d4-a716-446655440000","required":true,"description":"The unique identifier of the amendment to sign"}],"description":"Records the worker's signature on a pending amendment identified by amendment_id. Once signed, the amendment's status change is reflected in the associated contract.\n\n **Token scopes**: `worker:read`, `worker:write`, `benefits:read`","operationId":"signAmendment-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["contractor_signature"],"properties":{"contractor_signature":{"type":"string","example":"John Doe","minLength":2,"description":"The signature of the worker signing the amendment."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write","benefits:read"]}]}},"/screenings/aml/{entity_type}/{entity_id}":{"get":{"path":"/rest/screenings/aml/{entity_type}/{entity_id}","tags":["Screenings"],"method":"get","summary":"AML API for Whitelabel - Data retrieval","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["result","entity_id","entity_type","detailed_results"],"properties":{"result":{"enum":["ACCEPT","REJECT","REFERRED","PENDING"],"type":"string","example":"ACCEPT","description":"The result of the screening. ACCEPT means the screening passed, REJECT means it failed, and REFERRED means it is pending further review."},"entity_id":{"type":"string","example":"UUID of a profile","description":"UUID of the entity."},"entity_type":{"enum":["profile","hris_profile","legal_entity"],"type":"string","example":"profile","description":"The type of entity being screened."},"detailed_results":{"type":"object","properties":{"pep":{"enum":["PASS","FAIL"],"type":"string","example":"PASS","description":"The result of the PEP (Politically Exposed Person) check."},"sanctions":{"enum":["PASS","FAIL"],"type":"string","example":"PASS","description":"The result of the sanctions check."},"adverse_media":{"enum":["PASS","FAIL"],"type":"string","example":"PASS","description":"The result of the adverse media check."}},"description":"Details of checks performed for this screening."}}}}},"description":"Details of the screening request for the specified entity type and ID."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"Must have required property 'entity_id'","description":"A description of the returned error"}}}}}}}},"description":"Bad request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"The requested entity was not found","description":"A description of the returned error"}}}}}}}},"description":"Entity not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"entity_type","schema":{"enum":["profile","hris_profile","legal_entity"],"type":"string"},"example":"profile","required":true,"description":"The type of entity to screen. Only 'profile', 'hris_profile', 'legal_entity' are accepted."},{"in":"path","name":"entity_id","schema":{"type":"string","format":"uuid"},"example":"Public UUID of the entity","required":true,"description":"UUID v4 of the entity"}],"description":"Returns the most recent AML screening result for the specified entity. The `entity_type` must be one of `profile`, `hris_profile`, or `legal_entity`.\n\n **Token scopes**: `screenings:read`","operationId":"amlApiForWhitelabelDataRetrieval-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["screenings:read"]}]}},"/offboarding/tracker/hris_profile/{oid}":{"get":{"path":"/rest/offboarding/tracker/hris_profile/{oid}","tags":["Offboarding"],"method":"get","summary":"Retrieve termination details by HRIS profile identifier","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"summary":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"m7yg6zp","description":"The unique identifier for the contract associated with the summary item."}}},"name":{"type":"string","example":"Contract name","description":"The name of the summary item (e.g., Contract ending details)."},"type":{"type":"string","example":"CONTRACT_NAME","description":"The type of summary information (e.g., CONTRACT_ENDING_DETAILS)."},"value":{"type":"string","example":"TSB64 F348A1","description":"The value or status associated with the summary item."}}}},"contract":{"type":"object","properties":{"id":{"type":"string","example":"m7yg6zp","description":"The unique identifier for the contract."},"eor":{"type":"object","nullable":true,"properties":{"probation_period":{"type":"object","properties":{"status":{"type":"string","example":"in_progress","description":"probation status"},"period_end_at":{"type":"string","example":"2021-07-14T22:00:00+00:00","description":"Period end date"},"period_in_days":{"type":"integer","example":612411,"description":"total of days of period"}}}},"description":"Employer of Record (EOR) for the contract, if applicable."},"oid":{"type":"string","example":"m7yg6zp","description":"The object ID for the contract, which might be the same as the contract ID."},"name":{"type":"string","example":"John Doo","description":"The name or title of the contract."},"timezone":{"type":"string","example":"Europe/Belgrade","description":"The timezone associated with the contract (e.g., Europe/Belgrade)."},"contract_type":{"type":"string","example":"payg_tasks","description":"The type of the contract (e.g., payg_tasks)."}}},"progress":{"type":"object","properties":{"status":{"type":"string","example":"OFFBOARDING_IN_PROGRESS","description":"The current status of the offboarding process (e.g., OFFBOARDING_IN_PROGRESS)."},"reference_date":{"type":"string","example":"2021-07-14T22:00:00+00:00","description":"The reference date for the offboarding status (e.g., the termination date)."},"reference_date_type":{"type":"string","example":"END_DATE","description":"The type of reference date (e.g., END_DATE)."},"reference_date_timezone":{"type":"string","example":"Europe/Belgrade","description":"The timezone of the reference date."}}},"hiring_type":{"type":"string","example":"contractor","description":"The hiring type for the contract (e.g., contractor)."},"termination":{"type":"object","properties":{"id":{"type":"string","example":"b550b7e5-d6e1-4613-93ba-a7ee5f75887c","nullable":true,"description":"The termination ID"},"end_date":{"type":"string","example":"2024-12-01T22:59:59.999Z","nullable":true,"description":"The end date of the contract termination."},"ending_type":{"type":"string","example":"ENDING_CONTRACT","description":"The type of termination (e.g., ENDING_CONTRACT)."},"initiated_at":{"type":"string","example":"2024-12-01T22:59:59.999Z","nullable":true,"description":"The date and time when the termination was initiated."},"initiated_by":{"type":"object","nullable":true,"properties":{"name":{"type":"string","example":"John Doo","description":"Name of individual","x-sensitive-pii":true},"profile_type":{"type":"string","example":"client","description":"individual's type"}},"description":"The individual that initiated the termination."},"public_message":{"type":"string","example":"Lorem Ipsum is simply dummy text of the printing and typesetting industry.","nullable":true,"description":"A public message regarding the termination."},"termination_impact":{"type":"object","nullable":true,"properties":{"title":{"type":"string","example":"Loren Impact","description":"Title of termination impact"},"description":{"type":"string","example":"Lorem Ipsum is simply dummy text of the printing and typesetting industry.","description":"Description of termination impact"}},"description":"The impact of the termination, if applicable."},"eligible_for_rehire":{"type":"string","example":"YES","nullable":true,"description":"Indicates whether the individual is eligible for rehire."},"eligible_for_rehire_reason":{"type":"string","example":"Lorem Ipsum is simply dummy text of the printing and typesetting industry.","nullable":true,"description":"The reason why the individual is or is not eligible for rehire."}}},"hris_profile":{"type":"object","properties":{"oid":{"type":"string","example":"b550b7e5-d6e1-4613-93ba-a7ee5f75887c","description":"The unique object ID for the HRIS profile."},"name":{"type":"string","example":"qhzTMW fPpuSu","description":"The name of the individual in the HRIS profile.","x-sensitive-pii":true},"work_email":{"type":"string","example":"a87cac24ea4fa4f0e4239ffd0facd778@test.com","nullable":true,"description":"The work email address of the individual in the HRIS profile.","x-sensitive-pii":true}}},"app_experience":{"type":"object","properties":{"is_minimal_requirements":{"type":"boolean","example":true,"description":"Indicates whether the individual meets the minimal experience requirements for the role."}}}}}}}}},"description":"Successfully retrieved offboarding details"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"oid","schema":{"type":"string"},"example":"150f635e-fae1-4b9d-9f86-768bbbac3698","required":true,"description":"Unique hris profile oid"}],"description":"Returns termination details for a contract identified by its HRIS profile `oid`.\n\n **Token scopes**: `contracts:read`, `people:read`","operationId":"retrieveTerminationDetailsByHrisProfileIdentifier-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/hris/worker_relations/profile/{hris_profile_oid}/child":{"put":{"path":"/rest/hris/worker_relations/profile/{hris_profile_oid}/child","tags":["Worker Relations"],"method":"put","summary":"Create child worker relation","responses":{"204":{"content":{"application/json":{}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"hris_relationship_type_id"},"message":{"type":"string","example":"\"hris_relationship_type_id\" is required"}}}}}}}},"description":"Bad request - The request body is invalid or missing required fields."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found"},"field":{"type":"string","example":"hrisProfileOid"},"message":{"type":"string","example":"HRIS profile was not found."}}}}}}}},"description":"Not found - The HRIS profile or relationship type was not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"hris_profile_oid","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"HrisProfile ID"}],"description":"Replaces all child relationships of a given type for the specified HRIS profile. Any existing child relationships of that type not included in the request will be removed.\n\n **Token scopes**: `profile:write`","operationId":"createChildWorkerRelation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["ids","hris_relationship_type_id"],"properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the child profile"},"description":"An array containing the IDs of the child profiles"},"hris_relationship_type_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the relationship type"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/hris/worker_relations/types/{type_id}":{"delete":{"path":"/rest/hris/worker_relations/types/{type_id}","tags":["Worker Relations"],"method":"delete","summary":"Delete a worker relation type","responses":{"204":{"description":"Successfully deleted"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"type_id","schema":{"type":"string","format":"uuid"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","required":true,"description":"Worker Relation Type ID"}],"description":"Deletes an existing worker relationship type.\n\n **Token scopes**: `organizations:write`","operationId":"deleteAWorkerRelationType-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/immigration/documents/{id}":{"get":{"path":"/rest/immigration/documents/{id}","tags":["Immigration"],"method":"get","summary":"Immigration document","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"1f42f564-c2d1-4516-b2f4-ef0e09c4bc30","description":"The UUID of document entity."},"status":{"enum":["IN_REVIEW","APPROVED","REJECTED"],"type":"string","example":"APPROVED","nullable":true,"description":"Current status of the document."},"document_type":{"type":"string","example":"Eu blue card","nullable":true,"description":"The type of the document. Represents the visa type for right to work cases."},"download_link":{"type":"array","items":{"type":"string"},"example":["https://deel-api.s3.eu-west-1.amazonaws.com/......"],"description":"S3 download link of all the files uploaded within current document record."},"expiration_date":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","nullable":true,"description":"Expiry date of the document."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"message":{"type":"string","example":"Document not found.","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"dc7eb5dd-3161-4309-9b6a-7a87b7817d9e","required":true,"description":"Immigration case document id "}],"description":"Retrieves the details of an immigration case document by its document `id`.\n\n **Token scopes**: `immigration:read`","operationId":"immigrationDocument-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/eor/contracts/{contract_id}/hrx-documents/{document_id}":{"get":{"path":"/rest/eor/contracts/{contract_id}/hrx-documents/{document_id}","tags":["HRX Documents"],"method":"get","summary":"Download HRX documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url","created_at","updated_at"],"properties":{"url":{"type":"string","format":"uri","example":"https://s3.amazonaws.com/deel-documents/hrx/cb28e9a7-43cf-4f24-be6f-d72991cace2e.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20230916%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20230916T112000Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=example","description":"Pre-signed URL to download the HRX document PDF. Valid for 15 minutes."},"created_at":{"type":"string","format":"date-time","example":"2025-09-16T11:54:06.763Z","description":"When the document was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-09-16T11:54:50.168Z","description":"When the document was last updated"}},"description":"Download information for the HRX document"}}}}},"description":"Successfully generated pre-signed URL for HRX document download"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"123E4567","required":true,"description":"The unique identifier of the employee contract."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The unique identifier of the document to download."}],"description":"Generates a pre-signed URL for downloading a specific HRX document as a PDF associated with an EOR contract. The URL expires 15 minutes after generation.\n\n **Token scopes**: `contracts:read`, `worker:read`","operationId":"downloadHrxDocuments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","worker:read"]}]}},"/ats/applications":{"get":{"path":"/rest/ats/applications","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS applications","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","numeric_id","created_at","moved_to_current_stage_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Application unique identifier"},"job":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job unique identifier"},"title":{"type":"string","example":"Senior Product Designer","description":"Job title"}},"description":"Job information for the application"},"candidate":{"type":"object","required":["id","first_name","last_name","email","phone_number","pic_url","candidate_tags"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Candidate unique identifier"},"email":{"type":"string","format":"email","example":"john.doe@example.com","description":"Candidate email address","x-sensitive-pii":true},"pic_url":{"type":"string","example":"https://example.com/profile.jpg","nullable":true,"description":"Candidate profile picture URL","x-sensitive-pii":true},"last_name":{"type":"string","example":"Doe","description":"Candidate last name","x-sensitive-pii":true},"first_name":{"type":"string","example":"John","description":"Candidate first name","x-sensitive-pii":true},"phone_number":{"type":"string","example":"+1234567890","nullable":true,"description":"Candidate phone number (may be empty string or null)","x-sensitive-pii":true},"candidate_tags":{"type":"array","items":{"type":"object","required":["id","tag"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Candidate tag unique identifier"},"tag":{"type":"object","required":["id","label"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Tag unique identifier"},"label":{"type":"string","example":"Top talent","description":"Tag label"}}}},"description":"Candidate tag with label"},"description":"Tags associated with the candidate"}},"description":"Candidate information associated with the application"},"created_at":{"type":"string","format":"date-time","example":"2025-06-18T13:04:03.920Z","description":"Timestamp of when the application was created"},"numeric_id":{"type":"integer","example":183,"description":"Application numeric identifier"},"job_posting":{"type":"object","nullable":true,"required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job posting unique identifier"},"title":{"type":"string","example":"Product Designer - Remote","description":"Job posting title"}},"description":"Job posting information (if application came through a posting)"},"source_slug":{"type":"string","example":"INTERNAL_CAREER_PAGE","nullable":true,"description":"Source of the application"},"job_employment_type":{"type":"object","required":["id","employment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job employment type unique identifier"},"employment_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Employment type unique identifier"},"name":{"type":"string","example":"Full-time","description":"Employment type name"}}}},"description":"Employment type information for the job"},"submitter_ip_address":{"type":"string","example":"203.0.113.42","nullable":true,"description":"IP address of the applicant who submitted the application","x-sensitive-pii":true},"submitter_user_agent":{"type":"string","example":"Mozilla/5.0...","nullable":true,"description":"User agent of the applicant who submitted the application","x-sensitive-pii":true},"moved_to_current_stage_at":{"type":"string","format":"date-time","example":"2025-06-18T13:04:04.805Z","description":"Timestamp of when the application moved to current stage"},"application_form_submission":{"type":"object","nullable":true,"required":["id","answers"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Identifier of the application form submission"},"answers":{"type":"array","items":{"type":"object","required":["data_binding_id","question_type","question_text","answer"],"properties":{"answer":{"oneOf":[{"type":"string","example":"John Doe","description":"Text answer"},{"type":"number","example":42,"description":"Numeric answer"}]},"question_text":{"type":"string","example":"Full Name","description":"Text of the question"},"question_type":{"enum":["FREETEXT","PARAGRAPH","SINGLESELECTION","MULTISELECTION","DOCUMENTUPLOAD","PRESETDROPDOWN","CUSTOMDROPDOWN","NUMBER","DATEPICKER","ADDRESS","PHONENUMBER","EMAIL"],"type":"string","example":"FREETEXT","description":"Type of the question (uppercase)"},"data_binding_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Data binding identifier for the question"}},"description":"Parsed form submission answer"},"nullable":true,"description":"Array of parsed form submission answers"}},"description":"Application form submission data with parsed answers"},"application_job_criterias_matchings":{"type":"array","items":{"type":"object","required":["id","job_criteria_id","description","is_matched"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job criteria matching unique identifier"},"is_matched":{"enum":["MATCHED","NOT_MATCHED","UNDECIDED"],"type":"string","example":"MATCHED","description":"Whether the criteria is matched"},"description":{"type":"string","example":"5+ years of experience with React","description":"Job criteria matching description"},"job_criteria_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job criteria unique identifier"}},"description":"AI-generated job criteria matching result"},"example":[{"id":"a7b8c9d0-e1f2-3456-789a-bcdef1234567","is_matched":"MATCHED","description":"5+ years of experience with design systems","job_criteria_id":"b8c9d0e1-f2a3-4567-89ab-cdef12345678"},{"id":"b8c9d0e1-f2a3-4567-89ab-cdef12345679","is_matched":"MATCHED","description":"Experience with Figma and prototyping tools","job_criteria_id":"c9d0e1f2-a3b4-5678-9abc-def123456789"},{"id":"c9d0e1f2-a3b4-5678-9abc-def12345678a","is_matched":"UNDECIDED","description":"Portfolio demonstrating UX research skills","job_criteria_id":"d0e1f2a3-b4c5-6789-abcd-ef123456789a"}],"description":"AI-generated job criteria matching results for the application"},"created_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"User who created the application"},"current_application_interview_plan_stage":{"type":"object","required":["id","interview_plan_stage_id","application_id","interview_plan_stage"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Application interview plan stage unique identifier"},"application_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Application unique identifier"},"interview_plan_stage":{"type":"object","required":["id","name","category_type_slug","default_type_slug"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Interview plan stage unique identifier"},"name":{"type":"string","example":"New lead","description":"Interview plan stage name"},"default_type_slug":{"type":"string","example":"new_lead","nullable":true,"description":"Interview plan stage default type slug"},"category_type_slug":{"type":"string","example":"lead","description":"Interview plan stage category type"}}},"interview_plan_stage_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Interview plan stage unique identifier"}},"description":"Current interview plan stage information for the application"},"current_application_interview_plan_stage_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Current interview plan stage unique identifier"},"application_form_form_builder_form_submission_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Application form submission unique identifier"}},"description":"Application object"},"description":"Page of applications"},"has_more":{"type":"boolean","example":true,"description":"Whether more pages are available"},"next_cursor":{"type":"string","example":"eyJsYXN0Q3JlYXRlZEF0IjoiMjAyNS0wNi0xOFQxMzowNDowMy45MjBaIiwibGFzdElkIjoiZjYyODE2MjAtOTNiZS00NWZiLWFiOTEtZGQxZDhjZDg5Mzk1In0=","nullable":true,"description":"Cursor to fetch the next page; null when there are no more pages"},"total_count":{"type":"integer","example":150,"description":"Total number of applications"}},"description":"Paginated list of applications"}}},"description":"Successfully retrieved applications"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1000},"example":"eyJsYXN0Q3JlYXRlZEF0IjoiMjAyNS0wNi0xOFQwOToxNzoyMi40NDFaIiwibGFzdElkIjoiMWVhOTlmMzYtZWEzYy00N2QyLWI3NDAtNmFkNTM2ZjU4OTI4In0=","required":false,"description":"Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":25,"required":false,"description":"Maximum number of applications to return per page"},{"in":"query","name":"search_text","schema":{"type":"string","maxLength":500},"example":"john doe","required":false,"description":"Search text to filter applications"},{"in":"query","name":"job_id","schema":{"type":"string","format":"uuid"},"example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","required":false,"description":"Filter by job ID"},{"in":"query","name":"interview_plan_stage_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["29e13ec4-d41d-43a6-aca2-bb22b06f4ab2","2e8deac2-5d0f-4561-81fc-d1903390de29"],"required":false,"description":"Filter by interview plan stage IDs (comma-separated)"},{"in":"query","name":"candidate_tag_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["c8a7d362-6960-4f75-98d3-5118df39c84c","06ace055-faf4-4436-a148-76e58ee95d13"],"required":false,"description":"Filter by candidate tag IDs (comma-separated)"},{"in":"query","name":"source_slugs","schema":{"type":"array","items":{"type":"string"}},"example":["sourced_internally","linkedin_premium"],"required":false,"description":"Filter by application source (comma-separated)"},{"in":"query","name":"job_criterias_matchings","schema":{"type":"array","items":{"type":"object","required":["job_criteria_id","is_matched"],"properties":{"is_matched":{"enum":["MATCHED","NOT_MATCHED","UNDECIDED"],"type":"string"},"job_criteria_id":{"type":"string","format":"uuid"}}}},"example":[{"is_matched":"MATCHED","job_criteria_id":"f8a7d362-6960-4f75-98d3-5118df39c84c"}],"required":false,"description":"Filter applications by job criteria matching state"},{"in":"query","name":"current_stage_category_type_slugs","schema":{"type":"array","items":{"type":"string","maxLength":50}},"example":["lead","active"],"required":false,"description":"Filter applications by current stage category type slugs (comma-separated)"},{"in":"query","name":"current_stage_default_type_slugs","schema":{"type":"array","items":{"type":"string","maxLength":50}},"example":["new_lead","screening"],"required":false,"description":"Filter applications by current stage default type slugs. Use 'others' for custom stages (comma-separated)"},{"in":"query","name":"updated_after","schema":{"type":"string","format":"date-time"},"example":"2025-06-18T00:00:00.000Z","required":false,"description":"Filter applications updated after this timestamp (ISO 8601 format)"},{"in":"query","name":"sort_by","schema":{"enum":["APPLICATION_CREATION_DATE","STAGE_CREATION_DATE"],"type":"string"},"example":"APPLICATION_CREATION_DATE","required":false,"description":"Field to sort applications by"},{"in":"query","name":"sort_order","schema":{"enum":["ASC","DESC"],"type":"string"},"example":"DESC","required":false,"description":"Sort order for applications"}],"description":"Returns a cursor-paginated list of candidate applications across all open positions for the organization, with filtering by job, interview plan stage, candidate tags, source, stage type, and last-updated timestamp.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfAtsApplications-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]},"post":{"path":"/rest/ats/applications","tags":["ATS"],"method":"post","summary":"Create ATS Application","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","numeric_id","job_id","job_posting_id","job_employment_type_id","candidate_id","moved_to_current_stage_at","current_application_interview_plan_stage_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Application unique identifier"},"job_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job unique identifier"},"created_at":{"type":"string","format":"date-time","example":"2026-01-07T17:51:39.961Z","description":"Creation timestamp"},"numeric_id":{"type":"integer","example":2,"description":"Application numeric identifier"},"updated_at":{"type":"string","format":"date-time","example":"2026-01-07T17:51:39.961Z","description":"Last update timestamp"},"source_slug":{"type":"string","example":"SOURCED_INTERNALLY","nullable":true,"description":"The application source slug in uppercase"},"candidate_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Candidate unique identifier"},"job_posting_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Job posting unique identifier"},"job_employment_type_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Job employment type identifier"},"moved_to_current_stage_at":{"type":"string","format":"date-time","example":"2026-01-07T17:51:39.961Z","nullable":true,"description":"When application moved to current stage"},"current_application_interview_plan_stage_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Current interview plan stage identifier"}}}},"description":"Created application response"}}},"description":"Successful response with application data"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"description":"Creates a new ATS application linking an existing candidate to an existing job. Both the candidate and job must exist prior to this call; the returned id can be used for subsequent operations such as adding notes or associating interview stages.\n\n **Token scopes**: `ats:write`","operationId":"createApplication-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["job_id","job_employment_type_id","candidate_id"],"properties":{"notes":{"type":"array","items":{"type":"object","required":["richtext_content"],"properties":{"richtext_content":{"type":"string","example":"Sample note content","description":"The richtext content of the note"}}},"nullable":true,"description":"Array of notes to attach to the application"},"job_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"The ID of the job for this application"},"source_slug":{"type":"string","example":"SOURCED_INTERNALLY","description":"The application source. Accepts any active source slug of the organization, e.g. SOURCED_INTERNALLY, SOURCED_EXTERNALLY, INTERNAL_REFERRAL_AWARE, INTERNAL_REFERRAL_NOT_AWARE, EXTERNAL_CAREER_PAGE or a custom source slug (case-insensitive). Defaults to the candidate origin source when omitted."},"candidate_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"The ID of the candidate applying"},"job_posting_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"The ID of the job posting (optional)"},"job_employment_type_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"The ID of the employment type for this job"},"application_form_submission_data":{"type":"array","items":{"oneOf":[{"type":"object","required":["question_id","type","answer"],"properties":{"type":{"enum":["FREETEXT"],"type":"string","example":"FREETEXT"},"answer":{"type":"string","example":"My answer","description":"Text answer"},"question_id":{"type":"string","example":"q1","description":"Question identifier"}}},{"type":"object","required":["question_id","type","answer"],"properties":{"type":{"enum":["PARAGRAPH"],"type":"string","example":"PARAGRAPH"},"answer":{"type":"string","example":"My paragraph answer","description":"Paragraph answer"},"question_id":{"type":"string","example":"q1","description":"Question identifier"}}},{"type":"object","required":["question_id","type","selected_option_id"],"properties":{"type":{"enum":["SINGLESELECTION"],"type":"string","example":"SINGLESELECTION"},"question_id":{"type":"string","example":"q1","description":"Question identifier"},"selected_option_id":{"type":"string","example":"opt1","description":"Selected option ID"}}},{"type":"object","required":["question_id","type","selected_option_ids"],"properties":{"type":{"enum":["MULTISELECTION"],"type":"string","example":"MULTISELECTION"},"question_id":{"type":"string","example":"q1","description":"Question identifier"},"selected_option_ids":{"type":"array","items":{"type":"string"},"example":["opt1","opt2"],"description":"Selected option IDs"}}},{"type":"object","required":["question_id","type","document_ids"],"properties":{"type":{"enum":["DOCUMENTUPLOAD"],"type":"string","example":"DOCUMENTUPLOAD"},"question_id":{"type":"string","example":"q1","description":"Question identifier"},"document_ids":{"type":"array","items":{"type":"string"},"example":["doc1"],"description":"Document IDs"}}},{"type":"object","required":["question_id","type","preset","selected_options"],"properties":{"type":{"enum":["PRESETDROPDOWN"],"type":"string","example":"PRESETDROPDOWN"},"preset":{"type":"string","example":"countries","description":"Preset name"},"question_id":{"type":"string","example":"q1","description":"Question identifier"},"selected_options":{"type":"array","items":{"type":"string"},"example":["USA"],"description":"Selected options"}}},{"type":"object","required":["question_id","type","selected_option_ids"],"properties":{"type":{"enum":["CUSTOMDROPDOWN"],"type":"string","example":"CUSTOMDROPDOWN"},"question_id":{"type":"string","example":"q1","description":"Question identifier"},"selected_option_ids":{"type":"array","items":{"type":"string"},"example":["opt1"],"description":"Selected option IDs"}}},{"type":"object","required":["question_id","type","value"],"properties":{"type":{"enum":["NUMBER"],"type":"string","example":"NUMBER"},"value":{"type":"string","example":"100","description":"Numeric value"},"question_id":{"type":"string","example":"q1","description":"Question identifier"}}},{"type":"object","required":["question_id","type"],"properties":{"type":{"enum":["DATEPICKER"],"type":"string","example":"DATEPICKER"},"end_date":{"type":"string","example":"2023-01-05","description":"End date (for ranges)"},"start_date":{"type":"string","example":"2023-01-01","description":"Start date"},"question_id":{"type":"string","example":"q1","description":"Question identifier"}}},{"type":"object","required":["question_id","type","address_city","address_country","address_state","address_street","address_zip_code","address_number"],"properties":{"type":{"enum":["ADDRESS"],"type":"string","example":"ADDRESS"},"question_id":{"type":"string","example":"q1","description":"Question identifier"},"address_city":{"type":"string","example":"New York","description":"City"},"address_state":{"type":"string","example":"NY","description":"State"},"address_number":{"type":"string","example":"123","description":"Street number"},"address_street":{"type":"string","example":"Broadway","description":"Street name"},"address_country":{"type":"string","example":"USA","description":"Country"},"address_zip_code":{"type":"string","example":"10001","description":"ZIP code"}}},{"type":"object","required":["question_id","type","phone_number"],"properties":{"type":{"enum":["PHONENUMBER"],"type":"string","example":"PHONENUMBER"},"question_id":{"type":"string","example":"q1","description":"Question identifier"},"phone_number":{"type":"string","example":"+1234567890","description":"Phone number"}}},{"type":"object","required":["question_id","type","email"],"properties":{"type":{"enum":["EMAIL"],"type":"string","example":"EMAIL"},"email":{"type":"string","format":"email","example":"test@example.com","description":"Email address"},"question_id":{"type":"string","example":"q1","description":"Question identifier"}}}]},"nullable":true,"description":"Array of form submission answers"}}}},"description":"Create application request"}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["ats:write"]}]}},"/immigration/visa-requirement/business":{"get":{"path":"/rest/immigration/visa-requirement/business","tags":["Immigration"],"method":"get","summary":"Get business visa eligibility and requirements","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["visa_type_id","fee","name","description","fee_currency","qualification","estimated_timeline"],"properties":{"fee":{"type":"number","example":500,"nullable":true,"description":"Fee amount"},"name":{"type":"string","example":"B-1 Business Visitor Visa","nullable":true,"description":"Name of the visa type"},"description":{"type":"string","example":"An employee generally requires a valid title to enter and conduct business in the destination country. The risks of not being able to enter and the penalties for working without a valid work title are significant and can be imposed on both the employer and the employee. Nationals of Brazil are allowed to travel to the United States for External business meetings - Other business meetings (e.g. without hands-on work, representational) for up to 180 days upon obtaining B-1 Visa. The B-1 Visa grants up to a 180-day stay in the US performing the intended business activity.","description":"Description of the visa type"},"fee_currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":true,"description":"Currency code for the fee in ISO 4217 format"},"visa_type_id":{"type":"string","format":"uuid","example":"223e4567-e89b-12d3-a456-426614174111","nullable":true,"description":"Unique identifier of the visa type. This can be used to create a new business visa case on the create cases endpoint."},"qualification":{"enum":["VISA_REQUIRED","NO_VISA_REQUIRED","UNSUPPORTED"],"type":"string","example":"VISA_REQUIRED","description":"Visa qualification status, whether it is required or not. It can be also unsupported if the country does not support business visa options."},"estimated_timeline":{"enum":["SIX_WEEKS","THREE_MONTHS","ONE_WEEK","THREE_WEEKS","ONE_YEAR","TWO_WEEKS","FIVE_WEEKS","TWO_MONTHS","FIVE_MONTHS","FOUR_MONTHS","SIX_MONTHS","FOUR_WEEKS",null],"type":"string","example":"FOUR_WEEKS","nullable":true,"description":"Estimated processing timeline, in weeks, months or years"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"destination_country","schema":{"type":"string","pattern":"^[A-Z]{2}$"},"example":"US","required":true,"description":"The destination country code of the trip in ISO 3166-1 alpha-2 format"},{"in":"query","name":"nationality","schema":{"type":"string","pattern":"^[A-Z]{2}$"},"example":"BR","required":true,"description":"The nationality country code of the person in ISO 3166-1 alpha-2 format"},{"in":"query","name":"residence_country","schema":{"type":"string","pattern":"^[A-Z]{2}$"},"example":"BR","required":true,"description":"The residence country code of the person in ISO 3166-1 alpha-2 format"},{"in":"query","name":"trip_start_date","schema":{"type":"string","format":"date"},"example":"2026-01-31","required":true,"description":"The trip start date in ISO 8601 format (YYYY-MM-DD)"},{"in":"query","name":"trip_end_date","schema":{"type":"string","format":"date"},"example":"2026-02-23","required":true,"description":"The trip end date in ISO 8601 format (YYYY-MM-DD)"},{"in":"query","name":"trip_reason","schema":{"enum":["INTERNAL_BUSINESS_WITH_WORK_FOR_CLIENT","INTERNAL_BUSINESS_WITHOUT_WORK_FOR_CLIENT","MEETINGS_WITH_OR_FOR_A_CLIENT","MEETINGS_WITH_POTENTIAL_CLIENTS","NEGOTIATING_CONTRACTS_OR_SIGNING_AGREEMENTS","OTHER_EXTERNAL_BUSINESS","CONFERENCE","TEAM_OFFSITE","SPEAKING_AT_CONFERENCE_UNPAID","SPEAKING_AT_CONFERENCE_PAID","ATTENDING_INTERNAL_TRAINING","ATTENDING_EXTERNAL_TRAINING","DELIVERING_TRAINING_TO_INTERNAL_PARTICIPANTS","DELIVERING_TRAINING_TO_EXTERNAL_PARTICIPANTS_UNPAID","DELIVERING_TRAINING_TO_EXTERNAL_PARTICIPANTS_PAID","PARTICIPATION_IN_RESEARCH_PROJECTS_AND_STUDIES","ASSEMBLY_MAINTENANCE_REPAIR_INSTALLATION","TECHNICAL_SUPPORT_OR_SUPERVISION","OTHER_HANDS_ON_LABOUR","MARKET_RESEARCH_AND_EXPLORING_INVESTMENT_OPPORTUNITIES","OTHER"],"type":"string"},"example":"INTERNAL_BUSINESS_WITHOUT_WORK_FOR_CLIENT","required":true,"description":"The reason for the trip"},{"in":"query","name":"second_nationality","schema":{"type":"string","pattern":"^[A-Z]{2}$"},"example":"PT","required":false,"description":"The second nationality country code of the person in ISO 3166-1 alpha-2 format (optional)"}],"description":"Analyzes a traveller's nationality, residence country, destination, and trip dates to return the available business visa options along with their fees, estimated timelines, and qualification criteria. An optional `second_nationality` may be provided to expand eligibility assessment.\n\n **Token scopes**: `immigration:read`","operationId":"getBusinessVisaEligibilityAndRequirements-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/equity/exercise/{public_id}":{"patch":{"path":"/rest/equity/exercise/{public_id}","tags":["Contracts"],"method":"patch","summary":"Approve an equity exercise","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["id","status","created_at","updated_at","employer_approval"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"Unique identifier of the equity exercise."},"status":{"type":"string","example":"approved","description":"The current status of the equity exercise, e.g., 'approved' or 'pending'."},"created_at":{"type":"string","format":"date","example":"2023-05-01","description":"The date when the equity exercise was created."},"updated_at":{"type":"string","format":"date","example":"2023-05-05","description":"The date when the equity exercise was last updated."},"employer_approval":{"type":"string","example":"approved","description":"Indicates whether the employer has approved the equity exercise. Valid values: 'approved', 'rejected'."}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Authentication required. Please provide a valid access token.","description":"Describes the authentication failure reason."}}},"minItems":1}}},"example":{"errors":[{"message":"Authentication required. Please provide a valid access token."}]}}},"description":"Authentication failed. The access token is missing, expired, or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"You do not have permission to access this resource.","description":"Describes the authorization failure reason."}}},"minItems":1}}},"example":{"errors":[{"message":"You do not have permission to access this resource."}]}}},"description":"Access denied. The authenticated user does not have the required contracts:write scope."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Equity exercise request not found","description":"Describes why the resource was not found. Can indicate an invalid public_id, a wrong exercise request status, or a missing associated profile."}}},"minItems":1}}},"example":{"errors":[{"message":"Equity exercise request not found"}]}}},"description":"Resource not found. The equity exercise request does not exist, is not in the required status (APPROVED_BY_EMPLOYEE), or its associated worker profile was not found."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Too many requests. Please retry after some time.","description":"Indicates rate limiting. Implement exponential backoff before retrying."}}},"minItems":1}}},"example":{"errors":[{"message":"Too many requests. Please retry after some time."}]}}},"description":"Rate limit exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"An unexpected error occurred while processing your request. Please try again later.","description":"General error description for logging and debugging."}}},"minItems":1}}},"example":{"errors":[{"message":"An unexpected error occurred while processing your request. Please try again later."}]}}},"description":"Internal server error. Occurs when an unexpected failure happens during approval processing (e.g., funding task creation failure). The exercise request status may be set to ERROR."}},"parameters":[{"in":"path","name":"public_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"Equity exercise public ID."}],"description":"Updates the employer approval status for a pending equity exercise. This is a partial update — only `employer_approval` is accepted in the request body.\n\n **Token scopes**: `contracts:write`","operationId":"approveAnEquityExercise-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["employer_approval"],"properties":{"employer_approval":{"type":"string","example":"approved","description":"Approval decision by the employer for the equity exercise. Valid values: 'approved', 'rejected'."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/files/{fileid}/complete":{"post":{"path":"/rest/files/{fileid}/complete","tags":["Files"],"method":"post","summary":"Complete a multipart upload","responses":{"204":{"description":"Multipart upload completed successfully"},"400":{"description":"Missing x-one-time-secret header or invalid body"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"description":"File not found or invalid one-time secret"},"422":{"description":"File is not in PENDING state or missing upload location"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"fileid","schema":{"type":"string","format":"uuid"},"example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","required":true,"description":"File UUID from the register response."},{"in":"header","name":"x-one-time-secret","schema":{"type":"string"},"example":"abc123def456ghi789jkl012mno345pqr678stu901vwx234yz","required":true,"description":"One-time secret from the register response."}],"description":"Finalize an S3 multipart upload started via POST /rest/files, after all parts have been uploaded.\n\n **Token scopes**: `files:write`, `worker:write`","operationId":"completeFileUpload-v2026-08-05","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["upload_id","parts"],"properties":{"parts":{"type":"array","items":{"type":"object","required":["number","etag"],"properties":{"etag":{"type":"string","example":"\"d8e8fca2dc0f896fd7cb4cb0031ba249\"","description":"ETag returned by S3 in the response header after uploading the part."},"number":{"type":"number","example":1,"description":"Part number (1-indexed) matching the register response."}}},"description":"Uploaded parts, in any order."},"upload_id":{"type":"string","example":"VXBsb2FkIElEIGZvciBteS1tb3ZpZS5tMnRzIHVwbG9hZA","description":"S3 multipart upload ID from the register response."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["files:write","worker:write"]}]}},"/contracts/{contract_id}/off-cycle-payments/{off_cycle_payment_id}":{"get":{"path":"/rest/contracts/{contract_id}/off-cycle-payments/{off_cycle_payment_id}","tags":["Off-cycle Payments"],"method":"get","summary":"Retrieve a single off-cycle payment","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","description","date_submitted","created_at","currency_code","amount","reported_by"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier for the off-cycle payment."},"amount":{"type":"string","example":"1500.00","nullable":false,"description":"Amount of the off-cycle payment."},"status":{"enum":["approved","declined","new","not_payable","paid","pending","processing",null],"type":"string","example":"approved","nullable":true,"description":"Current status of the off-cycle payment."},"created_at":{"type":"string","format":"date-time","example":"2023-11-25T12:34:56Z","nullable":false,"description":"Timestamp of when the off-cycle payment was created."},"description":{"type":"string","example":"Bonus payment for Q3","nullable":false,"description":"Description of the off-cycle payment."},"reported_by":{"type":"object","example":{"id":"00000000-0000-0000-0000-000000000000","full_name":"John Doe"},"nullable":false,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the reporter."},"full_name":{"type":"string","example":"John Doe","nullable":false,"description":"Full name of the person who reported the payment.","x-sensitive-pii":true}},"description":"Details of the person who reported the off-cycle payment."},"currency_code":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"ISO 4217 currency code of the payment."},"date_submitted":{"type":"string","format":"date-time","example":"2023-11-25T08:00:00Z","nullable":false,"description":"Timestamp of when the payment was submitted."}},"description":"Details of the off-cycle payment."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","message":"\"contract_id\" must be a valid identifier"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"\"contract_id\" must be a valid identifier","description":"Human-readable description of the validation error."}}},"description":"Validation errors describing why the off-cycle payment could not be retrieved."}}}}},"description":"Bad Request - The contract_id parameter failed validation."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"ACCESS_DENIED","message":"Access Denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"ACCESS_DENIED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access Denied","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why the off-cycle payment could not be accessed."}}}}},"description":"Forbidden - The requesting token is not authorized to retrieve off-cycle payments as a client."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"CONTRACT_NOT_FOUND","message":"Contract not found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"CONTRACT_NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Contract not found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the contract could not be found."}}}}},"description":"Not Found - The specified contract does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the off-cycle payment cannot be retrieved."}}}}},"description":"Internal Server Error - The off-cycle payment could not be retrieved due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcdefg","required":true,"description":"Deel contract id."},{"in":"path","name":"off_cycle_payment_id","schema":{"type":"string","format":"uuid"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"Deel off-cycle payment id."}],"description":"Retrieves a single off-cycle payment identified by id within a specific contract.\n\n **Token scopes**: `off-cycle-payments:read`","operationId":"getOffCyclePaymentByContractAndId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["off-cycle-payments:read"]}]}},"/ats/hiring-members":{"get":{"path":"/rest/ats/hiring-members","tags":["ATS"],"method":"get","summary":"Retrieve ATS hiring members","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","first_name","last_name","work_email","hris_organization_user_id","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier"},"pic_url":{"type":"string","format":"uri","example":"https://example.com/picture.jpg","nullable":true,"description":"URL to the user's profile picture","x-sensitive-pii":true,"x-sensitive-employment":true},"job_title":{"type":"string","example":"Software Engineer","nullable":true,"description":"User's job title","x-sensitive-pii":true,"x-sensitive-employment":true},"last_name":{"type":"string","example":"Doe","description":"User's last name","x-sensitive-pii":true,"x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":false,"description":"Creation timestamp"},"first_name":{"type":"string","example":"John","description":"User's first name","x-sensitive-pii":true,"x-sensitive-employment":true},"updated_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Last update timestamp"},"work_email":{"type":"string","format":"email","example":"john.doe@example.com","description":"User's work email address","x-sensitive-employment":true},"hris_organization_user_id":{"type":"string","example":"user123","description":"Unique identifier for the HRIS organization user"}}},"description":"Page of resources."},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more items to fetch."},"next_cursor":{"type":"string","example":"abcdef01-2345-6789-0abc-def012345678","nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"integer","format":"int32","example":100,"minimum":0,"description":"Total number of users"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"cursorValue","description":"The cursor for pagination"},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1},"example":50,"description":"Maximum number of records returned in one response"}],"description":"Returns all hiring members (recruiters, hiring managers, interviewers) configured in the organization, to support assigning screening tasks, scheduling interviews, and configuring hiring workflows.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAtsHiringMembers-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/organizations/secure-vault/folders/{folder_id}/files":{"post":{"path":"/rest/organizations/secure-vault/folders/{folder_id}/files","tags":["Documents"],"method":"post","summary":"Upload Organization Secure Vault Files To Folder","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["file_ids"],"properties":{"folder":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"f2d1b0c4-8a3e-4c11-9f77-2b6c5e1a90d3","nullable":true,"description":"Public UUID of the folder."},"name":{"type":"string","example":"Other Files","nullable":true,"description":"Folder name."}},"description":"Folder the files were stored in. When no folder is given, files land in the organization's \"Other Files\" folder."},"file_ids":{"type":"array","items":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of a created file."},"description":"Public UUIDs of the created Organization Secure Vault files, in upload order."}},"description":"Result of the upload."}}}}},"description":"Files uploaded successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Folder not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"joi.s3.invalid-file","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"files","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid file type for the attachment. Please submit a valid attachment and do not manually change the file name extension before uploading.","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1}}}}},"description":"Unprocessable entity — a file has an unsupported type or its content does not match its extension."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"folder_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the folder."}],"description":"Uploads one or more files into a specific folder of the Organization Secure Vault. Upload the file contents to the File Service first, then reference each file here by its `file_id` and `one_time_secret`.\n\n **Token scopes**: `organizations:write`","operationId":"uploadOrganizationSecureVaultFilesToFolder-v2026-08-05","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["files"],"properties":{"files":{"type":"array","items":{"type":"object","required":["file_id","one_time_secret","original_filename","content_type"],"properties":{"file_id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"File Service file id."},"content_type":{"type":"string","example":"application/pdf","maxLength":255,"description":"MIME type."},"one_time_secret":{"type":"string","example":"a1b2c3d4e5f6","maxLength":1024,"minLength":1,"description":"File Service one-time secret."},"original_filename":{"type":"string","example":"nda.pdf","maxLength":500,"description":"Original filename."}},"additionalProperties":false},"maxItems":20,"minItems":1,"description":"Files previously uploaded to the File Service. Allowed types: pdf, jpg, jpeg, png, doc, docx, csv, xls, xlsx, txt, xml, zip, mov, mp4."}},"description":"The files to attach to the Organization Secure Vault.","additionalProperties":false}},"additionalProperties":false}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/gp/workers/contracts/{contract_id}/additional-information":{"patch":{"path":"/rest/gp/workers/contracts/{contract_id}/additional-information","tags":["Global Payroll"],"method":"patch","summary":"Update GP Workers Additional Information","responses":{"204":{"description":"Operation successful."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"mnrw11a","required":true,"description":"The unique public identifier of the contract."}],"description":"Partially updates the additional information on the contract; only fields supplied under the `data` object are modified.\n\n **Token scopes**: `people:write`","operationId":"updateGpWorkersAdditionalInformation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","maxProperties":200,"minProperties":1,"additionalProperties":{"oneOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]},"post":{"path":"/rest/gp/workers/contracts/{contract_id}/additional-information","tags":["Global Payroll"],"method":"post","summary":"Add GP Workers Additional Information","responses":{"201":{"content":{"application/json":{"schema":{"properties":{"data":{"type":"object","properties":{"created_at":{"type":"string","example":"2024-12-01T10:49:53.322Z","description":"Datetime of submission of the additional information"}}}}}}},"description":"Operation successful."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"mnrw11a","required":true,"description":"The unique public identifier of the contract."}],"description":"Adds supplementary fields to the contract, with the extra data supplied under the `data` object in the request body.\n\n **Token scopes**: `people:write`","operationId":"addGpWorkersAdditionalInformation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","maxProperties":200,"minProperties":1,"additionalProperties":{"oneOf":[{"type":"string","maxLength":1000},{"type":"number"},{"type":"boolean"}]}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/invoice-adjustments/{id}/reviews":{"post":{"path":"/rest/invoice-adjustments/{id}/reviews","tags":["Invoices"],"method":"post","summary":"Review a single invoice adjustment","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean","example":true,"description":"Confirms the review was applied to the invoice adjustment."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"message":"\"data.status\" must be one of [approved, declined]"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"\"data.status\" must be one of [approved, declined]","description":"Human-readable description of the validation or business rule violation."}}},"description":"Validation or business rule errors describing why the review decision could not be applied."}}}}},"description":"Bad Request - The request payload failed validation or violated a business rule for the invoice adjustment review."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"NOT_FOUND","message":"Invoice adjustment not found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Invoice adjustment not found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the invoice adjustment to review could not be found."}}}}},"description":"Not Found - The specified invoice adjustment could not be found for review."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the invoice adjustment review cannot be processed."}}}}},"description":"Internal Server Error - The invoice adjustment review could not be processed due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"5f4e3f3b-4b8b-4b1b-8e0b-1b1b1b1b1b1b","required":true,"description":"ID of an existing invoice adjustment."}],"description":"Submits an approve or decline review decision for a single invoice adjustment.\n\n **Token scopes**: `invoice-adjustments:write`","operationId":"updateInvoiceAdjustmentById-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["status"],"properties":{"reason":{"type":"string","example":"Wrong amount","nullable":true,"maxLength":200,"description":"The reason for the adjustment update."},"status":{"enum":["approved","declined"],"type":"string","example":"approved","nullable":false,"description":"The status of the adjustment."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}]}},"/files":{"post":{"path":"/rest/files","tags":["Files"],"method":"post","summary":"Create a file upload","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["file_id","one_time_secret","upload_parts"],"properties":{"file_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"Unique file identifier."},"upload_id":{"type":"string","example":"VXBsb2FkIElEIGZvciBteS1tb3ZpZS5tMnRzIHVwbG9hZA","description":"S3 multipart upload ID. Present only when the server selected multipart — pass to POST /rest/files/{fileid}/complete."},"upload_parts":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string","example":"https://file-service-bucket.s3.amazonaws.com/","description":"Presigned upload URL for this part."},"size":{"type":"number","example":10485760,"description":"Maximum bytes for this part."},"fields":{"type":"object","example":{"key":"uploads/uuid/contract.pdf","Content-Type":"application/pdf"},"description":"Form fields to submit with the presigned POST form. Present for the single-part POST upload; absent for multipart PUT parts."},"number":{"type":"number","example":1,"description":"Part number (1-indexed)."}}},"description":"Presigned upload targets (always present). Single-part: one presigned POST form with fields. Multipart: multiple presigned PUT URLs without fields."},"one_time_secret":{"type":"string","example":"abc123def456ghi789jkl012mno345pqr678stu901vwx234yz","description":"One-time secret for claiming ownership. Pass to domain endpoints when ready to claim the file."}}}}}}},"description":"Upload registered successfully with presigned S3 upload target(s)"},"400":{"description":"Invalid input parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"header","name":"x-upload-method","schema":{"enum":["multipart"],"type":"string"},"example":"multipart","required":false,"description":"Declares the client is multipart-capable. The server returns a multipart response only when the declared size exceeds the configured multipart threshold (`MULTIPART_THRESHOLD`); otherwise the standard POST form."}],"description":"Register an upload and receive presigned S3 upload target(s) plus a file handle (file_id and one_time_secret). Use the returned upload target(s) to send the file directly, then pass the file handle to domain endpoints to claim ownership once the upload completes.\n\n **Token scopes**: `files:write`, `worker:write`","operationId":"registerFileUpload-v2026-08-05","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["filename"],"properties":{"size":{"type":"number","example":209715200,"description":"Actual file size in bytes (max 1GB). Drives the server-side multipart decision when x-upload-method: multipart is set."},"expiry":{"type":"number","example":3600,"description":"Presigned URL expiry in seconds."},"filename":{"type":"string","example":"contract.pdf","description":"Original filename with extension; used to detect the content type."},"is_attachment":{"type":"boolean","example":true,"description":"Whether the file should be served as an attachment (download) rather than inline."}}}}}}},"required":true,"description":"Upload registration parameters"},"security":[{"deelToken":[]},{"oauth2":["files:write","worker:write"]}]}},"/gp/contracts/{contract_id}/employment-type":{"patch":{"path":"/rest/gp/contracts/{contract_id}/employment-type","tags":["Global Payroll"],"method":"patch","summary":"Update employment type for a contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["contract_id","effective_date","employment_type","fte"],"properties":{"fte":{"type":"number","example":0.5,"maximum":1,"minimum":0,"description":"The full-time equivalent for the updated employment type, as a fraction between 0 and 1 (inclusive)."},"contract_id":{"type":"string","example":"abc123xyz","pattern":"^(([a-z0-9]{6,})|([a-z0-9-_]{20,})|(-2[0-9]{2}))$","maxLength":100,"description":"The unique identifier of the GP contract."},"effective_date":{"type":"string","format":"date","example":"2026-04-01","description":"The date from which the change takes effect."},"employment_type":{"enum":["EMPLOYEE_FT","EMPLOYEE_PT","ON_LEAVE"],"type":"string","example":"EMPLOYEE_PT","description":"The updated employment type."}}}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["defined","code","status","message"],"properties":{"code":{"type":"string"},"data":{},"status":{"type":"number"},"defined":{"enum":[true,false],"type":"boolean"},"message":{"type":"string","default":"The caller is not authorized to act on this contract."}}}}},"description":"403"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","pattern":"^(([a-z0-9]{6,})|([a-z0-9-_]{20,})|(-2[0-9]{2}))$","maxLength":100},"example":"abc123xyz","required":true,"description":"The unique identifier of the GP contract."}],"description":"Update the employment type (full-time, part-time, or on leave) and FTE for a Global Payroll contract. Provide the contract ID and the change details, including the date the change takes effect.\n\n **Token scopes**: `contracts:write`","operationId":"updateEmploymentTypeForAContract-v2026-07-07","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["effective_date","employment_type","fte"],"properties":{"fte":{"type":"number","example":0.5,"maximum":1,"minimum":0,"description":"Full-time equivalent for the new employment type, as a fraction between 0 and 1 (inclusive)."},"effective_date":{"type":"string","format":"date","example":"2026-04-01","description":"The date from which the new employment type takes effect (YYYY-MM-DD)."},"employment_type":{"enum":["EMPLOYEE_FT","EMPLOYEE_PT","ON_LEAVE"],"type":"string","example":"EMPLOYEE_PT","description":"The new employment type: EMPLOYEE_FT (full-time), EMPLOYEE_PT (part-time), or ON_LEAVE (on leave)."}},"description":"Employment-type change details, including the effective date."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/legal-entities/{legal_entity_id}/cost-centers":{"get":{"path":"/rest/legal-entities/{legal_entity_id}/cost-centers","tags":["Cost Centers"],"method":"get","summary":"Get cost centers by legal entity","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"properties":{"id":{"type":"number","format":"int64","example":7654,"description":"Cost center Id"},"created_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z","description":"Cost center date of registration on Deel"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z","description":"Cost center date of most recent update on Deel"},"cost_center_name":{"type":"string","example":"HRIS main","description":"Cost center name to be displayed"},"cost_center_number":{"type":"string","example":"hris-1","description":"Cost center code"}}}}}}}},"description":"Cost center data was successfully fetched"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"ce652eb3-d49c-3675-8184-d873544eedf7","required":true,"description":"Legal entity id"}],"description":"Returns all cost centers associated with the specified legal_entity_id.\n\n **Token scopes**: `legal-entity:read`","operationId":"getCostCentersByLegalEntity-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/payments/statements/{payment_statement_id}":{"get":{"path":"/rest/payments/statements/{payment_statement_id}","tags":["Payments"],"method":"get","summary":"Retrieve a payment statement","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","payment_currency","amount","amount_due","invoices"],"properties":{"id":{"type":"string","example":"34d7Y48Ymu44g66fghN9F","description":"Unique identifier of the payment statement."},"amount":{"type":"string","example":"1500.00","nullable":true,"description":"Total amount of the payment statement before any balance is applied. Null until the amount is set."},"status":{"enum":["PROCESSING","PAID","CANCELLED","FAILED"],"type":"string","example":"PROCESSING","description":"Normalized status of the payment statement. 'PROCESSING' covers any in-flight state (pending, preprocessing, awaiting payment); 'paid', 'cancelled' and 'failed' are terminal."},"paid_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Date and time when the client paid, in ISO-8601 format. For bank transfers this can be set while the status is still processing. Null until payment is captured."},"invoices":{"type":"array","items":{"type":"object","required":["id","amount","currency"],"properties":{"id":{"type":"string","example":"34d7Y48Ymu44g66fghN9F","description":"Unique identifier of the invoice."},"label":{"type":"string","example":"INV-2024-3","description":"Descriptive label for the invoice."},"amount":{"type":"string","example":"500.00","description":"Amount of the invoice."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Three-letter currency code of the invoice, following ISO 4217."},"is_auto_added":{"type":"boolean","example":false,"description":"True when Deel automatically attached this invoice (e.g. an overdue or required fee invoice) beyond the requested set."}}},"description":"Authoritative superset of invoices settled by this payment statement. It always contains the requested invoices and may include additional overdue or required fee invoices that Deel attaches automatically."},"reference":{"type":"string","example":"DEEL-REF-0001","nullable":true,"description":"Reference to use when reconciling this payment statement against incoming wires."},"amount_due":{"type":"string","example":"1200.00","nullable":true,"description":"Amount still due after any applied balance and fee credits. Null until the amount is set."},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","description":"Date and time when the payment statement was created, in ISO-8601 format."},"payment_method":{"type":"string","example":"bank_transfer","nullable":true,"description":"Method used to settle the payment statement. Null until a payment method is attached."},"balance_applied":{"type":"string","example":"300.00","description":"Amount of client balance applied to the payment statement."},"payment_currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":true,"maxLength":3,"minLength":3,"description":"Three-letter currency code of the payment statement, following ISO 4217. Null until a payment method is attached."},"beneficiary_details":{"type":"object","nullable":true,"properties":{"iban":{"type":"string","example":"GB29NWBK60161331926819","nullable":true,"description":"IBAN of the beneficiary account. Null on non-IBAN rails."},"swift":{"type":"string","example":"NWBKGB2L","nullable":true,"description":"SWIFT/BIC code of the beneficiary bank. Null when not applicable."},"country":{"type":"string","example":"GB","nullable":true,"description":"Two-letter country code of the beneficiary. Best-effort; null when not modeled."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":true,"maxLength":3,"minLength":3,"description":"Three-letter currency code of the beneficiary account, following ISO 4217. Null when not modeled on the rail."},"bank_name":{"type":"string","example":"JPMorgan Chase","nullable":true,"description":"Name of the beneficiary bank."},"sort_code":{"type":"string","example":"04-00-04","nullable":true,"description":"Sort code of the beneficiary bank. Best-effort; null on most rails."},"account_holder":{"type":"string","example":"Deel Inc.","nullable":true,"description":"Name of the beneficiary account holder. Null when not modeled on the rail."},"account_number":{"type":"string","example":"1234567890","nullable":true,"description":"Beneficiary account number. Null on IBAN-only rails."}},"description":"Beneficiary bank details the payment is settled to. Null when not yet resolved."},"fee_credits_applied":{"type":"string","example":"50.00","description":"Amount of fee credits applied to the payment statement."}}}}}}},"description":"Successfully retrieved the payment statement."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"unauthorized","description":"Machine-readable error code."},"message":{"type":"string","example":"missing or invalid authentication","description":"Human-readable explanation of the error."}}}}}}}},"description":"The authentication is missing or is invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden","description":"Machine-readable error code."},"message":{"type":"string","example":"You don't have permission to access this resource.","description":"Human-readable explanation of the error."}}}}}}}},"description":"The organization is not permitted to use this endpoint."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code."},"message":{"type":"string","example":"The requested payment statement was not found.","description":"Human-readable explanation of the error."}}}}}}}},"description":"The payment statement does not exist or is not accessible to the caller."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code."},"message":{"type":"string","example":"The service is currently experiencing issues.","description":"Human-readable explanation of the error."}}}}}}}},"description":"An unexpected error occurred while retrieving the payment statement."}},"parameters":[{"in":"path","name":"payment_statement_id","schema":{"type":"string"},"example":"34d7Y48Ymu44g66fghN9F","required":true,"description":"Unique identifier of the payment statement to retrieve."}],"description":"Retrieves a payment statement by its id, including its status, amounts, beneficiary details, and the authoritative list of settled invoices.\n\n **Token scopes**: `payment-statements:read`","operationId":"getPaymentStatement-v2026-07-23","security":[{"deelToken":[]},{"oauth2":["payment-statements:read"]}]}},"/forms/eor/create-contract/definitions":{"post":{"path":"/rest/forms/eor/create-contract/definitions","tags":["Forms"],"method":"post","summary":"Fetch multiple EOR Contract forms","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["country","pages"],"properties":{"pages":{"type":"array","items":{"type":"object","required":["title","sections"],"properties":{"title":{"type":"string","example":"Personal Details","description":"Title of the form page."},"sections":{"type":"array","items":{"type":"object","required":["title","questions"],"properties":{"title":{"type":"string","example":"Team information","description":"Title of the section."},"subtitle":{"type":"string","example":"Information about the team","description":"Additional information shown at the top of the section."},"questions":{"type":"array","items":{"type":"object","required":["title","type","key"],"properties":{"key":{"type":"string","example":"client.legal_entity.id","description":"Unique key identifier for the question."},"type":{"enum":["FreeText","Paragraph","SingleSelection","MultiSelection","Address","PhoneNumber","DocumentUpload","Number","Dropdown","DatePicker","Email"],"type":"string","example":"Dropdown","description":"Type of the question."},"rules":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","example":"Legal entity ID","description":"Title of the question."},"source":{"type":"object","nullable":true,"properties":{"url":{"type":"string","example":"/rest/v2/legal-entities","description":"API endpoint providing dynamic options."},"definition":{"type":"string","example":"https://developer.deel.com/reference/getlegalentitylist","description":"Reference URL for API documentation."},"description":{"type":"string","example":"Available legal entities for selection must be dynamically fetched","description":"Description of the data source."}},"description":"Defines dynamic data source for the question."},"options":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","example":"Yes","description":"Display text for the option."},"value":{"type":"string","example":"true","nullable":true,"description":"Value associated with the option."}}},"example":[{"title":"Yes","value":"true"},{"title":"No","value":"false"}],"nullable":true,"description":"List of selectable options for selection-type questions. Value may be of any type."},"is_range":{"type":"boolean","example":false,"description":"Specifies whether a date picker allows range selection."},"requires":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","example":"employee.nationality","description":"Key of the dependent field."},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"example":true,"description":"Expected value for the condition."},"operator":{"type":"string","example":"ne","nullable":true,"description":"Comparison operator (e.g., 'eq', 'ne')."},"compare_key":{"type":"string","example":"employment.country","nullable":true,"description":"Key of the field to compare against."}}},"description":"List of conditions that must be met for this rule to apply."},"max_value":{"oneOf":[{"type":"string"},{"type":"number"}],"example":180,"description":"Maximum value allowed."},"min_value":{"oneOf":[{"type":"string"},{"type":"number"}],"example":0,"description":"Minimum value allowed."},"max_length":{"type":"integer","example":255,"nullable":true,"description":"Maximum character length for text responses."},"min_length":{"type":"integer","example":1,"nullable":true,"description":"Minimum character length for text responses."},"helper_text":{"type":"string","example":"Please select the appropriate legal entity.","nullable":true,"description":"Additional information to assist the user."},"is_disabled":{"type":"boolean","example":false,"description":"If true, the field is disabled and cannot be edited."},"is_required":{"type":"boolean","example":true,"description":"Indicates if the question is required."},"number_type":{"type":"string","example":"CURRENCY","description":"Used for number fields to define the unit or representation."},"default_value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"example":40,"description":"Default value to pre-fill in the form."},"is_only_digits":{"type":"boolean","example":false,"description":"Restricts input to numeric characters only, for FreeText questions."},"date_limitation":{"type":"string","example":"BLOCK_PAST","nullable":true,"description":"Limits date selection (e.g., blocking past dates). Will always be 'BLOCK_PAST' for now."},"is_multiple_selection":{"type":"boolean","example":false,"description":"Indicates if the user can select multiple values."},"must_request_validation":{"type":"boolean","example":true,"description":"Whether additional validation should be triggered for this field."}}},"nullable":true,"description":"Validation rules for the question."},"title":{"type":"string","example":"Legal entity ID","description":"Title of the question."},"source":{"type":"object","nullable":true,"properties":{"url":{"type":"string","example":"/rest/v2/legal-entities","description":"API endpoint providing dynamic options."},"definition":{"type":"string","example":"https://developer.deel.com/reference/getlegalentitylist","description":"Reference URL for API documentation."},"description":{"type":"string","example":"Available legal entities for selection must be dynamically fetched","description":"Description of the data source."}},"description":"Defines dynamic data source for the question."},"options":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","example":"Yes","description":"Display text for the option."},"value":{"type":"string","example":"true","nullable":true,"description":"Value associated with the option."}}},"example":[{"title":"Yes","value":"true"},{"title":"No","value":"false"}],"nullable":true,"description":"List of selectable options for selection-type questions. Value may be of any type."},"is_range":{"type":"boolean","example":false,"description":"Specifies whether a date picker allows range selection."},"max_value":{"oneOf":[{"type":"string"},{"type":"number"}],"example":180,"description":"Maximum value allowed."},"min_value":{"oneOf":[{"type":"string"},{"type":"number"}],"example":0,"description":"Minimum value allowed."},"max_length":{"type":"integer","example":255,"nullable":true,"description":"Maximum character length for text responses."},"min_length":{"type":"integer","example":1,"nullable":true,"description":"Minimum character length for text responses."},"helper_text":{"type":"string","example":"Please select the appropriate legal entity.","nullable":true,"description":"Additional information to assist the user."},"is_disabled":{"type":"boolean","example":false,"description":"If true, the field is disabled and cannot be edited."},"is_required":{"type":"boolean","example":true,"description":"Indicates if the question is required."},"number_type":{"type":"string","example":"CURRENCY","description":"Used for number fields to define the unit or representation."},"default_value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"example":40,"description":"Default value to pre-fill in the form."},"is_only_digits":{"type":"boolean","example":false,"description":"Restricts input to numeric characters only, for FreeText questions."},"date_limitation":{"type":"string","example":"BLOCK_PAST","nullable":true,"description":"Limits date selection (e.g., blocking past dates). Will always be 'BLOCK_PAST' for now."},"is_multiple_selection":{"type":"boolean","example":false,"description":"Indicates if the user can select multiple values."},"must_request_validation":{"type":"boolean","example":true,"description":"Whether additional validation should be triggered for this field."}}},"description":"List of questions within the section."}}},"description":"Sections within the page."}}},"description":"List of pages in the form."},"state":{"type":"string","example":"CA","nullable":true,"description":"State or province code if applicable"},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","description":"Two-letter country code in ISO 3166-1 alpha-2 format"}}},"description":"Array of quote forms for the requested countries."},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more results available beyond the current page."},"next_cursor":{"type":"string","example":"eyJvZmZzZXQiOjEwfQ==","nullable":true,"description":"Cursor for fetching the next page of results. Null if no more results."},"total_count":{"type":"integer","example":25,"description":"Total number of countries in the request."}}}}},"description":"Successful response containing multiple form configuration data."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":10,"maximum":10,"minimum":1},"example":5,"required":false,"description":"Maximum number of countries to return in a single response. Defaults to 10."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJvZmZzZXQiOjEwfQ==","required":false,"description":"Pagination cursor for fetching subsequent pages of results."}],"description":"Retrieves paginated, versioned form definitions for creating EOR contracts across one or more specified countries. Always use the latest effective version from the response and handle pagination; this endpoint is not intended for reading or updating existing contracts.\n\n **Token scopes**: `forms:read`","operationId":"fetchMultipleEorContractForms-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["countries"],"properties":{"countries":{"type":"array","items":{"type":"object","required":["country_code"],"properties":{"state":{"type":"string","example":"CA","description":"The selected state code of the contract. This is only required for countries that specify it."},"country_code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Two-letter country code in ISO 3166-1 alpha-2 format"}}},"example":[{"state":"CA","country_code":"US"},{"country_code":"BR"}],"minItems":1,"description":"Array of countries for which to fetch quote forms. Maximum 10 countries per request."},"start_date":{"type":"string","format":"date","example":"2024-01-15","description":"The selected start date of the contract in ISO 8601 formatted date string."},"work_hours_per_week":{"type":"integer","example":40,"maximum":168,"minimum":1,"description":"The selected number of work hours per week."},"contract_duration_in_days":{"type":"integer","example":365,"minimum":1,"description":"The contract duration in days for definite contracts."}}}}}}},"required":true,"description":"Request body containing countries and optional parameters for bulk quote form fetching."},"security":[{"deelToken":[]},{"oauth2":["forms:read"]}]}},"/ats/tags":{"get":{"path":"/rest/ats/tags","tags":["ATS"],"method":"get","summary":"List tags","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","total_count","has_more","next_cursor"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"Unique identifier of the tag."},"label":{"type":"string","example":"Referral","description":"Display name of the tag."},"created_at":{"type":"string","format":"date-time","example":"2026-02-26T12:00:00.000Z","description":"When the tag was created."},"updated_at":{"type":"string","format":"date-time","example":"2026-02-26T12:00:00.000Z","description":"When the tag was last updated."},"tag_group_slug":{"enum":["CANDIDATE"],"type":"string","example":"CANDIDATE","description":"Tag group. Use CANDIDATE for candidate tags."},"candidates_count":{"type":"integer","example":5,"nullable":true,"description":"Number of candidates with this tag. Present only when include_counts=true."},"created_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","nullable":true,"description":"ID of the user who created the tag, if any."},"updated_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","nullable":true,"description":"ID of the user who last updated the tag, if any."}}},"description":"List of tags."},"has_more":{"type":"boolean","example":false,"description":"Whether more results exist (pagination)."},"next_cursor":{"type":"string","example":"eyJwYWdlIjoyfQ==","nullable":true,"maxLength":1000,"description":"Cursor for the next page of results, or null if none."},"total_count":{"type":"integer","example":10,"minimum":0,"description":"Total number of tags returned."}}}}},"description":"Successful operation. Returns the list of tags for the organization."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"search_text","schema":{"type":"string","maxLength":50},"example":"Referral","required":false,"description":"Filter tags by label (case-insensitive partial match)"},{"in":"query","name":"tag_group_slug","schema":{"enum":["CANDIDATE"],"type":"string"},"example":"CANDIDATE","required":false,"description":"Filter by tag group. Use CANDIDATE for candidate tags."},{"in":"query","name":"include_counts","schema":{"enum":["true","false"],"type":"string","default":"false"},"example":"false","required":false,"description":"When true, each tag includes candidates_count (number of candidates with that tag)"},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1000},"example":"eyJwYWdlIjoyfQ==","required":false,"description":"Opaque cursor for pagination. Use the value from next_cursor of the previous response to fetch the next page."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of tags to return per page (default: 20, max: 100)."}],"description":"Returns a paginated list of tags associated with the organization, filterable by label and `tag_group_slug`; when `include_counts` is true, each tag includes a count of associated candidates.\n\n **Token scopes**: `ats:read`","operationId":"listTags-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/lookups/countries":{"get":{"path":"/rest/lookups/countries","tags":["Lookups"],"method":"get","summary":"Retrieve Country List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["code","name","visa_support","eor_support","state_type","states","default_currency"],"properties":{"code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"The ISO 3166-1 alpha-2 country code."},"name":{"type":"string","example":"United States","nullable":false,"minLength":1,"description":"The official name of the country."},"states":{"type":"array","items":{"type":"object","required":["code","name"],"properties":{"code":{"type":"string","example":"NY","nullable":false,"minLength":1,"description":"The code representing the sub-territory (e.g., state or region)."},"name":{"type":"string","example":"New York","nullable":false,"minLength":1,"description":"The name of the sub-territory (e.g., state or region)."}}},"description":"List of sub-territories within the country. These may be called states, provinces, prefectures, regions, or may not exist."},"state_type":{"type":"string","example":"state","nullable":true,"description":"The designation for sub-territories within the country, such as 'state', 'province', 'prefecture', or 'region'. If none, this field will be null."},"eor_support":{"type":"boolean","nullable":false,"description":"Indicates whether Deel provides Employer of Record (EoR) support in this country."},"visa_support":{"type":"boolean","nullable":false,"description":"Indicates whether Deel provides visa support for employees being hired in this country."},"default_currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Indicates the default currency 3-letter ISO code"}}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns all countries supported by the platform, including each country's visa support status, Employer of Record availability, sub-territories, and classification.","operationId":"retrieveCountryList-v2026-01-01","security":[{"deelToken":[]},{"oauth2":[]}]}},"/gp/workers/{worker_id}/address":{"patch":{"path":"/rest/gp/workers/{worker_id}/address","tags":["Global Payroll"],"method":"patch","summary":"Update address","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"zip":{"type":"string","example":"12345","nullable":true,"description":"Zip code."},"city":{"type":"string","example":"Denver","nullable":true,"description":"City name."},"state":{"type":"string","example":"CO","nullable":true,"description":"State name."},"street":{"type":"string","example":"123 Deel Street","nullable":true,"description":"Street name."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"updated_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Long date-time format following ISO-8601"}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for a worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for a worker in UUID format."}],"description":"Partially updates the address on record for the GP employee.\n\n **Token scopes**: `people:write`","operationId":"updateAddress-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"zip":{"type":"string","example":"12345","description":"Zip code."},"city":{"type":"string","example":"London","description":"City name."},"street":{"type":"string","example":"123 Deel Street","description":"Street name."}}}}}}},"required":true,"description":"The desired address of the Global Payroll employee"},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/contracts/gp":{"post":{"path":"/rest/contracts/gp","tags":["Global Payroll"],"method":"post","summary":"Create a Global Payroll (GP) contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"c9f8a1b2-1234-5678-9abc-1234567890ab","description":"Id of the contract created."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"global_payroll","description":"Type of a contract."},"client":{"type":"object","example":{"legal_entity":{"name":"Acme Corporation Ltd."}},"properties":{"legal_entity":{"type":"object","example":{"name":"Acme Corporation Ltd."},"properties":{"name":{"type":"string","example":"Acme Corporation Ltd.","description":"Legal entity name."}}}}},"status":{"enum":["new","under_review","waiting_for_employee_contract","waiting_for_client_sign","processing_payment","waiting_for_contractor_sign","waiting_for_eor_sign","waiting_for_employee_sign","awaiting_deposit_payment","in_progress","completed","cancelled","user_cancelled","rejected","waiting_for_client_payment","onboarding"],"type":"string","example":"completed","nullable":false,"description":"Status of a contract in Deel workflow."},"employee":{"type":"object","example":{"email":"jane.doe@example.com","last_name":"Doe","first_name":"Jane","employee_number":"EMP-1001"},"properties":{"email":{"type":"string","example":"jane.doe@example.com","description":"Employee's email address."},"last_name":{"type":"string","example":"Doe","description":"Employee's last name."},"first_name":{"type":"string","example":"Jane","description":"Employee's first name."},"employee_number":{"type":"string","example":"EMP-1001","nullable":true,"description":"Employee's number."}}},"job_title":{"type":"string","example":"Designer","description":"Employee's job title."},"created_at":{"type":"string","format":"date-time","example":"2024-06-15T10:30:00.000Z","nullable":true,"description":"Long date-time format following ISO-8601."},"employment":{"type":"object","properties":{"type":{"type":"string","example":"Full-time","description":"Is it a full-time contract or a part-time contract?"},"state":{"type":"string","example":"CA","nullable":true,"description":"State code of the state/province where this person will be employed."},"country":{"type":"string","example":"US","description":"Country of employment."},"end_date":{"type":"string","format":"date-time","example":"2025-06-15T00:00:00.000Z","nullable":true,"description":"Long date-time format following ISO-8601."},"holidays":{"type":"object","properties":{"allowance":{"type":"number","example":20,"description":"Number of holidays."},"start_date":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00.000Z","nullable":true,"description":"Long date-time format following ISO-8601."}}},"start_date":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00.000Z","nullable":true,"description":"Long date-time format following ISO-8601."},"work_visa_required":{"type":"boolean","example":true,"description":"Do you require Deel to apply for a work visa for this person?"}}},"compensation_details":{"type":"object","example":{"scale":"YEAR","salary":85000,"currency":"USD"},"properties":{"scale":{"type":"string","example":"YEAR","description":"Scale at which the salary is paid."},"salary":{"type":"number","example":85000,"description":"Gross annual/month salary."},"currency":{"type":"string","example":"USD","description":"Currency of gross annual/month salary."}}}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Creates a new Global Payroll contract. Country-specific fields required in the request body vary by country and must be retrieved in advance from `GET /forms/gp/worker-additional-fields/{country_code}`. Returns the created contract including its unique `id`.\n\n **Token scopes**: `contracts:write`","operationId":"createAGlobalPayrollGpContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["employee","employment","job_title","client","compensation_details"],"properties":{"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Refers to Groups in the platform. Working groups that reflect the organization's structure."}}},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the legal entity."}}}}},"employee":{"type":"object","required":["first_name","last_name","email","address","work_email"],"properties":{"email":{"type":"string","format":"email","example":"jane.doe@example.com","minLength":5,"description":"Employee's personal email address used for communication and onboarding."},"address":{"type":"object","required":["street","city","zip","country"],"properties":{"zip":{"type":"string","example":"44000","description":"Postal or ZIP code."},"city":{"type":"string","example":"Denver","description":"City of residence."},"state":{"type":"string","example":"CO","description":"State or province code."},"street":{"type":"string","example":"Deel Street 500","description":"Street name and building number."},"country":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XA","XB","XC","XK","XX","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"ISO 3166-1 alpha-2 country code."}}},"last_name":{"type":"string","example":"Doe","description":"Employee's last name."},"first_name":{"type":"string","example":"Jane","description":"Employee's first name."},"work_email":{"type":"string","format":"email","example":"jane.doe@company.com","minLength":5,"description":"Employee's company email address associated with the client organization."},"nationality":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XA","XB","XC","XK","XX","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"Employee's nationality in ISO 3166-1 alpha-2 format."},"employee_number":{"type":"string","example":"100","description":"Internal employee identifier within the client organization."}}},"job_title":{"type":"string","example":"Senior Software Engineer","description":"Employee's official job title as stated in the employment agreement."},"employment":{"type":"object","required":["type","start_date","holidays"],"properties":{"fte":{"type":"number","default":1,"example":1,"maximum":1,"minimum":0,"nullable":true,"description":"Full-time equivalent (FTE) percentage, expressed as a decimal between 0 and 1 with up to two decimal places (e.g. 1 = 100%, 0.5 = 50%). Required when `type` is `Part-time`; defaults to 1 (full-time) when omitted or null."},"type":{"enum":["Full-time","Part-time"],"type":"string","example":"Full-time","description":"Employment type indicating whether the employee works full-time or part-time."},"country":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","XA","XB","XC","XK","XX","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"Country where the employee is employed, in ISO 3166-1 alpha-2 format. Used as the contract country. Falls back to employee address country if not provided."},"holidays":{"type":"object","required":["allowance","start_date"],"properties":{"allowance":{"type":"number","example":20,"description":"Number of paid holiday days allocated per year."},"start_date":{"type":"string","format":"date","example":"2024-01-01","description":"Date when the holiday entitlement becomes effective (ISO-8601 YYYY-MM-DD)."}}},"start_date":{"type":"string","format":"date","example":"2024-01-01","description":"Employment start date in ISO-8601 format (YYYY-MM-DD)."}}},"work_location":{"type":"object","required":["is_wfh"],"properties":{"name":{"type":"string","example":"New York Office","description":"Name of the registered entity address where the employee works. Use 'Remote' if applicable."},"is_wfh":{"type":"boolean","example":true,"description":"Indicates whether the employee works remotely."},"effective_date":{"type":"string","format":"date","example":"2024-07-01","description":"Date when the work location becomes effective (ISO-8601 YYYY-MM-DD)."}},"description":"Work location details for the employee. Required for US legal entities."},"compensation_details":{"type":"object","required":["salary","scale"],"properties":{"scale":{"enum":["YEAR","MONTH"],"type":"string","default":"YEAR","example":"YEAR","description":"Defines whether the salary amount represents yearly or monthly gross compensation."},"salary":{"type":"number","example":85000,"description":"Gross salary amount based on the selected scale."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Three-letter ISO 4217 currency code representing the salary currency."}}},"invite_employee_to_app":{"type":"boolean","example":true,"description":"When true, the employee will receive an invitation to join the platform for onboarding."}}}}}}},"required":true,"description":"Global Payroll (GP) contract object that needs to be created."},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/contracts/{contract_id}/cost-centers":{"post":{"path":"/rest/contracts/{contract_id}/cost-centers","tags":["Cost Centers"],"method":"post","summary":"Assign cost centers to an employment contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"4553c756-bfe4-459d-a2d7-84fc5a9e8df9","description":"Updated employment term id","x-sensitive-employment":true}}}}}}},"description":"Cost center allocation was successfully added to the contract"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"error":{"type":"string","example":"The effective date must be greater than or equal to 2025-06-30","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"26nq49s","required":true,"description":"Employment's contract ID"}],"description":"Assign cost centers to employment by contract id\n\n **Token scopes**: `contracts:write`","operationId":"assignCostCentersToAnEmploymentContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["value","effective_date"],"properties":{"value":{"type":"array","items":{"type":"object","required":["cost_center_id","allocation_percentage"],"properties":{"cost_center_id":{"type":"integer","format":"int64","example":"1243","description":"Cost center id"},"allocation_percentage":{"type":"number","example":"0.25","maximum":1,"minimum":0,"description":"Cost center allocation for this employment, between 0 (none) and 1 (100%)"}}}},"effective_date":{"type":"string","format":"date","example":"2025-01-01","description":"Allocation start date"}}}}}}},"required":true,"description":"Cost center information to allocate to the contract"},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/time_tracking/shifts/{external_id}":{"delete":{"path":"/rest/time_tracking/shifts/{external_id}","tags":["Time Tracking Shifts"],"method":"delete","summary":"Delete a Shift by External ID","responses":{"204":{"description":"Shift deleted successfully. No content is returned."},"400":{"content":{"application/json":{"example":{"error":"Invalid external ID format."}}},"description":"Invalid external ID provided or the request is malformed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"example":{"error":"Shift not found."}}},"description":"Shift with the given external ID was not found."},"500":{"content":{"application/json":{"example":{"error":"An unexpected error occurred. Please try again later."}}},"description":"Internal server error while attempting to delete the shift."}},"parameters":[{"in":"path","name":"external_id","schema":{"type":"string"},"example":"shift123-external-id","required":true,"description":"The unique external identifier of the shift to be deleted."}],"description":"Permanently deletes a shift identified by its external_id. Once deleted, the shift cannot be retrieved or modified.\n\n **Token scopes**: `time-tracking:write`","operationId":"deleteShiftExternalId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]},"patch":{"path":"/rest/time_tracking/shifts/{external_id}","tags":["Time Tracking Shifts"],"method":"patch","summary":"Update a shift","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"summary":{"type":"object","properties":{"time_unit":{"enum":["HOUR","DAY","WEEK","MONTH"],"type":"string","example":"HOUR","description":"Time unit"},"time_amount":{"type":"number","example":8,"description":"Time amount"},"total_break_hours":{"type":"number","example":2,"description":"Total break hours."},"payable_break_hours":{"type":"number","example":2,"description":"Payable break hours."},"total_payable_hours":{"type":"number","example":2,"description":"Total payable hours."},"shift_duration_hours":{"type":"number","example":2,"description":"Shift duration hours."},"shift_rate_external_id":{"type":"string","example":"abcd","description":"ShiftRate external ID."}},"description":"Summary of calculated time and rates for the shift."},"created_at":{"type":"string","example":"2024-10-08T12:08:29.695Z","description":"Timestamp when the shift was created."},"updated_at":{"type":"string","example":"2024-10-08T12:08:29.695Z","description":"Timestamp when the shift was last updated."},"contract_id":{"type":"string","example":"abcd","description":"The contract ID associated with the shift."},"description":{"type":"string","example":"sample description","description":"The description of the shift."},"external_id":{"type":"string","example":"abcd","description":"Unique identifier of the shift."},"date_of_work":{"type":"string","example":"2024-10-11","description":"The date of the shift."},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."}},"description":"Updated shift record details."}}}}},"description":"Shift updated successfully."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"example":{"errors":[{"code":"resource_not_found","message":"Shift with external id shift_123456 not found."}]}}},"description":"Not Found - Shift with the given external_id does not exist."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"external_id","schema":{"type":"string"},"example":"12345678g","required":true,"description":"Unique identifier of the shift to be updated."}],"description":"Applies a partial update to an existing shift, modifying only the fields supplied in the request body. Fields omitted from the request are left unchanged.\n\n **Token scopes**: `time-tracking:write`","operationId":"updateAShift-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"summary":{"type":"object","properties":{"time_unit":{"enum":["HOUR","DAY","WEEK","MONTH"],"type":"string","example":"HOUR","description":"Time unit"},"time_amount":{"type":"number","example":8,"description":"Time amount"},"total_break_hours":{"type":"number","example":2,"description":"Total break hours"},"payable_break_hours":{"type":"number","example":2,"description":"Payable break hours"},"total_payable_hours":{"type":"number","example":2,"description":"Total payable hours"},"shift_duration_hours":{"type":"number","example":2,"description":"Shift duration hours"},"shift_rate_external_id":{"type":"string","example":"abcd","description":"Shift Rate external ID"}},"description":"Summary of calculated time and rates for the shift."},"description":{"type":"string","example":"This is a sample shift description.","description":"Description of the shift."},"date_of_work":{"type":"string","example":"2023-10-01","description":"The date of the shift."},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."}},"description":"Shift update request data."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]},"get":{"path":"/rest/time_tracking/shifts/{external_id}","tags":["Time Tracking Shifts"],"method":"get","summary":"Get shift details","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"meta":{"type":"object","properties":{"end":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"End date of the shift."},"time":{"type":"string","example":"17:00","description":"End time of the shift."},"is_rest_day":{"type":"boolean","example":false,"description":"Indicates if the shift end day is a rest day."},"is_public_holiday":{"type":"boolean","example":false,"description":"Indicates if the shift end day is a public holiday."}},"description":"End time details of the shift."},"start":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Start date of the shift."},"time":{"type":"string","example":"08:00","description":"Start time of the shift."},"is_rest_day":{"type":"boolean","example":false,"description":"Indicates if the shift start day is a rest day."},"is_public_holiday":{"type":"boolean","example":false,"description":"Indicates if the shift start day is a public holiday."}},"description":"Start time details of the shift."},"breaks":{"type":"array","items":{"type":"object","properties":{"end":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Break end date."},"time":{"type":"string","example":"12:30","description":"Break end time."}},"description":"End time details of the break."},"start":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Break start date."},"time":{"type":"string","example":"12:00","description":"Break start time."}},"description":"Start time details of the break."},"is_paid":{"type":"boolean","example":true,"description":"Indicates if the break is paid."}}},"description":"List of break periods within the shift."},"approval_date":{"type":"string","example":"2023-10-02T00:00:00.000Z","description":"Approval date of the shift."}},"description":"Metadata containing detailed information about the shift timing, breaks, and approval status."},"summary":{"type":"object","properties":{"total_break_hours":{"type":"number","example":1,"description":"Total break hours within the shift."},"payable_break_hours":{"type":"number","example":0.5,"description":"Total payable break hours."},"total_payable_hours":{"type":"number","example":7.5,"description":"Total payable hours for the shift."},"shift_duration_hours":{"type":"number","example":8,"description":"Total duration of the shift in hours."},"shift_rate_external_id":{"type":"string","example":"rate1234","description":"External ID of the shift rate associated with the shift."}},"description":"Summary of calculated hours and rates for the shift."},"created_at":{"type":"string","example":"2024-10-02T05:09:35.691Z","description":"Timestamp when the shift was created."},"updated_at":{"type":"string","example":"2024-10-02T05:09:35.691Z","description":"Timestamp when the shift was last updated."},"contract_id":{"type":"string","example":"1234","description":"Contract ID associated with the shift."},"description":{"type":"string","example":"This is a sample shift description.","description":"Description of the shift."},"external_id":{"type":"string","example":"shift_123456r","description":"Unique identifier of the shift."},"date_of_work":{"type":"string","example":"2023-10-01","description":"The date of work for the shift."},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."}},"description":"Shift record details."}}}}},"description":"Shift details retrieved successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"message":{"type":"string","description":"Description of the error."}}}}},"example":{"error":{"message":"Invalid external ID format"}}}},"description":"Invalid request parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"external_id","schema":{"type":"string"},"example":"shift_1234567dewdwe","required":true,"description":"Unique identifier of the shift to retrieve."}],"description":"Retrieves the details of a specific shift.\n\n **Token scopes**: `time-tracking:read`","operationId":"getShiftDetails-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]}},"/webhooks/{id}":{"delete":{"path":"/rest/webhooks/{id}","tags":["Webhooks"],"method":"delete","summary":"Delete a webhook","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","example":true,"nullable":false,"description":"Confirms the deletion."}},"description":"The result of the delete operation."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Unauthorized. Authentication credentials were missing or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Forbidden. You do not have permission to access this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Not Found. The requested resource could not be found."},"405":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Method Not Allowed. The HTTP method is not supported for this resource."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Too Many Requests. The rate limit has been exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Internal Server Error. An unexpected error occurred."}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"Unique identifier of the webhook subscription."}],"description":"Permanently deletes the specified webhook subscription by its unique identifier. This action cannot be undone.\n\n **Token scopes**: `webhooks:write`","operationId":"deleteWebhookById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["webhooks:write"]}]},"get":{"path":"/rest/webhooks/{id}","tags":["Webhooks"],"method":"get","summary":"Retrieve a single webhook","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name","description","status","url","signing_key","api_version","events","id","created_at","updated_at"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"url":{"type":"string","example":"https://mywebhook.com/listening","description":"Endpoint to receive webhook."},"name":{"type":"string","example":"My webhooks","nullable":true,"description":"Webhook subscription name."},"events":{"type":"array","items":{"type":"string"},"example":["contract.created"],"description":"The list of events to enable for this subscription."},"hidden":{"type":"boolean","example":false,"nullable":true,"description":"Property to hide the webhook from frontend view. Commonly by Deel 3rd party apps"},"status":{"enum":["enabled","disabled"],"type":"string","example":"enabled","description":"Status of webhook."},"internal":{"type":"boolean","example":false,"description":"Indicates whether the webhook is internal to Deel."},"created_at":{"type":"string","example":"2024-01-01T12:00:00Z","description":"Time at which the webhook was created."},"deleted_at":{"type":"string","example":null,"nullable":true,"description":"Time at which the webhook was deleted."},"updated_at":{"type":"string","example":"2024-01-02T12:00:00Z","description":"Time at which the webhook was updated."},"api_version":{"type":"string","default":"v2","example":"v2","nullable":false,"description":"Deel API version. Currently Deel accepts v1 or v2 version."},"description":{"type":"string","example":"My first webhook","nullable":true,"description":"Webhook subscription description."},"signing_key":{"type":"string","example":null,"nullable":true,"description":"The webhook's signing key, used to generate webhook signatures."}},"description":"The webhook subscription."}}}}},"description":"successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Unauthorized. Authentication credentials were missing or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Forbidden. You do not have permission to access this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Not Found. The requested resource could not be found."},"405":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Method Not Allowed. The HTTP method is not supported for this resource."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Too Many Requests. The rate limit has been exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Internal Server Error. An unexpected error occurred."}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"Unique identifier of the webhook subscription."}],"description":"Retrieve a single webhook subscription.\n\n **Token scopes**: `webhooks:read`","operationId":"getWebhookById-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["webhooks:read"]}]},"patch":{"path":"/rest/webhooks/{id}","tags":["Webhooks"],"method":"patch","summary":"Update a webhook","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name","description","status","url","signing_key","api_version","events","id","created_at","updated_at"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"url":{"type":"string","example":"https://mywebhook.com/listening","description":"Endpoint to receive webhook."},"name":{"type":"string","example":"My webhooks","nullable":true,"description":"Webhook subscription name."},"events":{"type":"array","items":{"type":"string"},"example":["contract.created"],"description":"The list of events to enable for this subscription."},"hidden":{"type":"boolean","example":false,"nullable":true,"description":"Property to hide the webhook from frontend view. Commonly by Deel 3rd party apps"},"status":{"enum":["enabled","disabled"],"type":"string","example":"enabled","description":"Status of webhook."},"internal":{"type":"boolean","example":false,"description":"Indicates whether the webhook is internal to Deel."},"created_at":{"type":"string","example":"2024-01-01T12:00:00Z","description":"Time at which the webhook was created."},"deleted_at":{"type":"string","example":"2024-01-03T12:00:00Z","nullable":true,"description":"Time at which the webhook was deleted."},"updated_at":{"type":"string","example":"2024-01-02T12:00:00Z","description":"Time at which the webhook was updated."},"api_version":{"type":"string","default":"v2","example":"v2","nullable":false,"description":"Deel API version. Currently Deel accepts v1 or v2 version."},"description":{"type":"string","example":"My first webhook","nullable":true,"description":"Webhook subscription description."},"signing_key":{"type":"string","example":"abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGH","nullable":true,"description":"The webhook's signing key, used to generate webhook signatures."},"include_child_orgs":{"type":"boolean","example":false,"nullable":true,"description":"When true, the webhook will also receive events from child organizations."}},"description":"The webhook subscription."}}}}},"description":"successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Unauthorized. Authentication credentials were missing or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Forbidden. You do not have permission to access this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Not Found. The requested resource could not be found."},"405":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Method Not Allowed. The HTTP method is not supported for this resource."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Too Many Requests. The rate limit has been exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Internal Server Error. An unexpected error occurred."}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"Unique identifier of the webhook subscription."}],"description":"Partially updates an existing webhook subscription. Supports updating fields such as status and child organization event propagation.\n\n **Token scopes**: `webhooks:write`","operationId":"updateWebhookById-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"status":{"enum":["enabled","disabled"],"type":"string","example":"enabled","description":"Status of webhook."},"include_child_orgs":{"type":"boolean","example":false,"nullable":true,"description":"When true, the webhook will also receive events from child organizations."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["webhooks:write"]}]}},"/people/{hris_profile_id}":{"get":{"path":"/rest/people/{hris_profile_id}","tags":["People"],"method":"get","summary":"Retrieve a single person","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"allOf":[{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","description":"Unique identifier for the employee."},"state":{"type":"string","example":"Active","nullable":true,"description":"The state of the employee.","x-sensitive-pii":true},"emails":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"work","description":"The type of email."},"value":{"type":"string","example":"work.email@example.com","nullable":true,"description":"The email address."}}},"description":"An array of the employee's email addresses.","x-sensitive-pii":true},"country":{"type":"string","example":"USA","nullable":true,"description":"The country of the employee.","x-sensitive-pii":true},"timezone":{"type":"string","example":"EST","nullable":true,"description":"The timezone of the employee."},"addresses":{"type":"array","items":{"type":"object","properties":{"region":{"type":"string","example":"CO","description":"Region code."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"locality":{"type":"string","example":"Denver","description":"Locality name."},"postalCode":{"type":"string","example":"44000","description":"Postal code."},"streetAddress":{"type":"string","example":"Deel Street 500","description":"Street and number."}}},"description":"An array of address objects containing the employee's physical addresses.","x-sensitive-pii":true},"full_name":{"type":"string","example":"John Doe","description":"The full name of the employee.","x-sensitive-pii":true},"job_title":{"type":"string","example":"Access Field Technician","nullable":true,"description":"The job title of the employee."},"last_name":{"type":"string","example":"Doe","description":"The last name of the employee.","x-sensitive-pii":true},"seniority":{"type":"string","example":"Junior (Individual Contributor Level 1)","nullable":true,"description":"The seniority level of the employee."},"worker_id":{"type":"string","example":"123","description":"The worker ID of the employee."},"birth_date":{"type":"string","example":"1990-01-01T00:00:00.000Z","nullable":true,"description":"The birth date of the employee.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-03-21T10:27:25.950Z","description":"The creation timestamp of the employee record."},"department":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Delivery team","description":"The name of the department."},"parent":{"type":"string","example":"Research and Development","description":"The parent department."}},"description":"The department of the employee."},"first_name":{"type":"string","example":"John","description":"The first name of the employee.","x-sensitive-pii":true},"start_date":{"type":"string","format":"date","example":"2023-03-20","nullable":true,"description":"The date the employee started working."},"updated_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"},"employments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"mzj524j","description":"Unique identifier for the employment."},"name":{"type":"string","example":"Khizar Naeem","description":"Name of the employee.","x-sensitive-pii":true,"x-sensitive-employment":true},"team":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Refers to Groups in the platform. Working groups that reflect the organization's structure."},"name":{"type":"string","example":"Delivery team","description":"The team name."}},"description":"The team to which the employee belongs."},"email":{"type":"string","example":"some@example.com","description":"The work email of the employee.","x-sensitive-pii":true,"x-sensitive-employment":true},"state":{"type":"string","example":"Active","nullable":true,"description":"The state of employment.","x-sensitive-pii":true},"country":{"type":"string","example":"USA","nullable":true,"description":"The country of employment.","x-sensitive-pii":true},"payment":{"type":"object","properties":{"rate":{"oneOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}],"example":100,"description":"The payment rate. Value is a string if contract type is PEO."},"scale":{"type":"string","example":"hourly","nullable":true,"description":"The payment scale (e.g., hourly, weekly, monthly, etc.)"},"currency":{"type":"string","example":"USD","description":"The currency code (ISO 4217) for the payment"},"contract_name":{"type":"string","example":"Contract 1","description":"The name of the contract associated with the payment"}},"description":"Payment information for the employment, including rate, scale, currency, and associated contract name.","x-sensitive-employment":true},"is_ended":{"type":"boolean","example":false,"description":"Whether the employment has ended."},"timezone":{"type":"string","example":"EST","nullable":true,"description":"The timezone of the employment."},"job_title":{"type":"string","example":"Access Field Technician","nullable":true,"description":"The job title of the employment."},"seniority":{"type":"string","example":"Junior (Individual Contributor Level 1)","nullable":true,"description":"The seniority level of the employment."},"start_date":{"type":"string","format":"date","example":"2023-03-20","nullable":true,"description":"The start date of the employment."},"work_email":{"type":"string","example":"work.email@example.com","nullable":true,"description":"The work email of the employment."},"hiring_type":{"type":"string","example":"contractor","description":"The type of hiring of the employment."},"hiring_status":{"type":"string","example":"onboarding","description":"The current hiring status of the employment."},"completion_date":{"type":"string","example":"2023-06-20T00:00:00.000Z","nullable":true,"description":"The completion date of the employment contract."},"contract_status":{"type":"string","example":"waiting_for_client_sign","description":"The status of the employment contract."},"voluntarily_left":{"type":"boolean","example":true,"nullable":true,"description":"Whether the employee voluntarily left the employment."},"contract_coverage":{"enum":["is_shielded","is_premium",null],"type":"string","example":null,"nullable":true,"description":"The coverage type of the employment contract. 'is_shielded' = Contractor of Record, 'is_premium' = Premium, null = Standard (no coverage)."},"new_hiring_status":{"type":"string","example":"onboarding_overdue","description":"The new hiring status of the employment."},"client_legal_entity":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Acme Corporation","nullable":true,"description":"The name of the client legal entity."}},"description":"The client legal entity associated with this employment contract."},"has_eor_termination":{"type":"boolean","example":true,"nullable":true,"description":"Whether the employment has an EOR termination."},"contract_is_archived":{"type":"boolean","example":false,"description":"Whether the employment contract is archived."},"termination_last_day":{"type":"string","format":"date-time","example":"2023-03-21T10:27:25.950Z","nullable":true,"description":"The last day of work mentioned on the contract termination."},"contract_has_contractor":{"type":"boolean","example":true,"description":"Whether the contract has a contractor."},"is_user_contract_deleted":{"type":"boolean","example":false,"description":"Whether the user contract is deleted."},"hris_direct_employee_invitation":{"type":"object","nullable":true,"properties":{"oid":{"type":"string","example":"rJ7PUDgbp9L6","description":"Unique identifier of this resource."},"status":{"type":"string","example":"DISABLED","nullable":true,"description":"The HRIS direct employee invitation status."},"send_at":{"type":"string","format":"date-time","example":"2023-03-21T10:27:25.950Z","nullable":true,"description":"The HRIS direct employee invitation send date."},"timezone":{"type":"string","example":"EST","nullable":true,"description":"The HRIS direct employee invitation timezone."}},"description":"The HRIS direct employee invitation status."}}},"description":"An array of employment records associated with the employee, including contract details, team information, payment details, and employment status."},"external_id":{"type":"string","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","nullable":true,"description":"The external ID of the employee."},"hiring_type":{"type":"string","example":"contractor","description":"The type of hiring of the employee."},"hiring_status":{"type":"string","example":"onboarding","description":"The current hiring status of the employee."},"nationalities":{"type":"array","items":{"type":"string"},"example":"American","description":"The nationality of the employee.","x-sensitive-pii":true},"work_location":{"type":"string","example":"Remote","nullable":true,"description":"The work location of the employee."},"direct_manager":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"642b0547-9d80-4d35-a085-fd977ef209ef","description":"Unique identifier for the manager."},"last_name":{"type":"string","example":"John","description":"The last name of the manager."},"worker_id":{"type":"number","example":30,"description":"The worker ID of the manager."},"first_name":{"type":"string","example":"Doe","description":"The first name of the manager."},"work_email":{"type":"string","example":"john.doe@example.com","nullable":true,"description":"The work email of the manager."}},"description":"The direct manager of the employee."},"direct_reports":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"642b0547-9d80-4d35-a085-fd977ef209ef","description":"Unique identifier for the direct report."},"last_name":{"type":"string","example":"John","description":"The last name of the direct report."},"first_name":{"type":"string","example":"Doe","description":"The first name of the direct report."},"work_email":{"type":"string","example":"john.doe@example.com","nullable":true,"description":"The work email of the direct report."}}},"nullable":true,"description":"The direct reports to the employee."},"completion_date":{"type":"string","example":"2023-06-20T00:00:00.000Z","nullable":true,"description":"The completion date of the task or project."},"new_hiring_status":{"type":"string","example":"onboarding_overdue","description":"The new hiring status of the employee."},"additional_details":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"socialSecurity","description":"Field name (the JSONB key from hris_employment_eligibility.eligibility_data, e.g. socialSecurity, idNumber, taxIdentificationNumber)."},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object"}],"example":"123-12-1234","description":"Raw value associated with the field. May be a string, number, boolean, or null."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO-2 country code that scopes this entry."}}},"nullable":true,"description":"Country-scoped additional employment data points (national IDs, tax IDs, etc.) sourced from hris_employment_eligibility.eligibility_data. Returned only when the caller's organization has the feature flag enabled and the request is not redacting PII.","x-sensitive-pii":true},"client_legal_entity":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Acme Corporation","nullable":true,"description":"The name of the client legal entity."}},"description":"The primary client legal entity associated with the employee."},"preferred_last_name":{"type":"string","example":"Doe","nullable":true,"description":"The preferred last name of the employee.","x-sensitive-pii":true},"direct_reports_count":{"type":"integer","example":0,"description":"The count of direct reports to the employee."},"preferred_first_name":{"type":"string","example":"John","nullable":true,"description":"The preferred first name of the employee.","x-sensitive-pii":true},"active_worker_termination_status":{"enum":["PENDING","CONTRACT_TERMINATION_DATA_COLLECTED","IN_PROGRESS","COMPLETED","FAILED","CANCELED",null],"type":"string","example":"IN_PROGRESS","nullable":true,"description":"The status of the active worker termination."},"profile_organizational_structures":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"642b0547-9d80-4d35-a085-dg377ef209d3","description":"Id of the Organizational structure."},"name":{"type":"string","example":"Department","description":"Name of the Organizational structure."},"teams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"642b0547-9d80-4d35-a085-dg377ef209d3","description":"Id of the team."},"name":{"type":"string","example":"Team A","description":"Name of the team."},"positions":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"642b0547-9d80-4d35-a085-dg377ef209d3","description":"Id of the position."},"role":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"642b0547-9d80-4d35-a085-dg377ef209d3","description":"Id of the role."},"name":{"type":"string","example":"Role A","description":"Name of the role."}},"description":"The role associated with this position, including role ID and name."},"is_supportive":{"type":"boolean","example":true,"description":"Whether the position is supportive or not."}}},"description":"An array of positions held by the employee within this team."},"name_hierarchy":{"type":"string","example":"Team A / Team B","nullable":true,"description":"Hierarchy of the team."}}},"description":"List of teams in the organizational structure."}}},"description":"An array of organizational structures associated with the employee profile."},"direct_employee_termination_last_day":{"type":"string","format":"date","example":"2023-03-21","description":"The last day of work mentioned on the primary contract termination."}}},{"type":"object","properties":{"custom_fields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Job title","nullable":false,"description":"Custom field property name."},"value":{"type":"string","example":"Software Engineer II","nullable":true,"description":"Custom field property value."}},"description":"Customized attributes on people (Job title, Project code, etc)."},"description":"An array of custom field objects containing additional attributes associated with the employee (e.g., Job title, Project code, etc.)."}}}]}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","code"],"properties":{"code":{"type":"string","example":"INTERNAL_SERVER_ERROR","description":"Error code identifying the type of error."},"details":{"type":"string","example":"An unexpected error occurred while processing the request.","nullable":true,"description":"Additional details about the error."},"message":{"type":"string","example":"Internal server error","description":"Error message describing what went wrong."}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"query","name":"include_custom_fields","schema":{"type":"boolean"},"example":true,"required":false,"description":"Include custom fields in the response."},{"in":"query","name":"include_worker_relations","schema":{"type":"boolean"},"example":true,"required":false,"description":"Include worker relations in the response."},{"in":"path","name":"hris_profile_id","schema":{"type":"string","format":"uuid"},"example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","required":true,"description":"Unique identifier for the person."}],"description":"Returns detailed information about a single person in the organization by their public ID. Returns personal details, employment information, organizational structure, person status, direct manager, custom fields, and related data.\n\n **Token scopes**: `people:read`","operationId":"retrieveASinglePerson-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/equities-tokens/tax-events":{"post":{"path":"/rest/equities-tokens/tax-events","tags":["Equity Tokens"],"method":"post","summary":"Create equity or token tax event","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"cb50474d-2f76-42d8-a795-5277007a29d9","description":"the id of the equity/token tax event generated"},"created_at":{"type":"string","format":"date-time","example":"2025-09-22T10:00:00Z","description":"the date and time when the equity/token tax event was created"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"return code error"},"field":{"type":"string","example":"start_date","description":"field that caused the error"},"message":{"type":"string","example":"start_date is required","description":"description of the error"}}}}}}}},"description":"Bad request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Submits an equity or token tax event for an EOR worker enrolled in Equity & Token Services.\n\n **Token scopes**: `equities:write`","operationId":"createEquityOrTokenTaxEvent-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["contract_id","plan_currency","payroll_currency","method_of_tax_coverage","tax_jurisdiction","settlement_date","total_taxes_withheld","fx_rate","taxable_gain_or_loss","benefit_in_kind_local_currency","withheld_tax_local_currency"],"properties":{"fx_rate":{"type":"number","format":"float","example":0.95904862,"description":"The exchange rate used to convert the local currency to the payroll currency"},"tax_rate":{"type":"number","format":"float","example":0.25,"description":"The tax rate applied to the benefit in kind"},"unit_fmv":{"type":"number","format":"float","example":11,"description":"The fair market value of the equity/token grant at the time of the event"},"event_date":{"type":"string","format":"date","example":"2024-04-01","description":"The date of the event"},"sale_price":{"type":"number","format":"float","example":10,"description":"The price at which the equity/token was sold"},"contract_id":{"type":"string","example":"meyv8ek","description":"The unique identifier of the contract of the employee who received the equity/token grant"},"gross_value":{"type":"number","format":"float","example":100000,"description":"The gross value of the equity/token grant"},"plan_currency":{"type":"string","example":"USD","description":"The currency in which the equity/token grant was issued"},"exercise_price":{"type":"number","format":"float","example":4.34,"description":"The price at which the equity/token was exercised"},"equity_grant_id":{"type":"string","example":"76c90748-f83c-4e4f-9c37-34c4d02d6406","description":"The unique identifier of the equity/token grant - optional in case you don't have remove the property"},"settlement_date":{"type":"string","format":"date","example":"2024-06-01","description":"The date of the settlement"},"payroll_currency":{"type":"string","example":"EUR","description":"The currency in which the payroll is processed"},"tax_jurisdiction":{"type":"string","example":"US","description":"The tax jurisdiction in which the equity/token grant was issued"},"transaction_fees":{"type":"number","format":"float","example":25,"description":"The fees associated with the transaction"},"quantity_remaining":{"type":"number","format":"float","example":5000,"description":"The quantity of equity/token that remains"},"taxable_gain_or_loss":{"type":"number","format":"float","example":15000,"description":"The taxable gain or loss"},"total_exercise_price":{"type":"number","format":"float","example":225000,"description":"The total exercise price"},"total_taxes_withheld":{"type":"number","format":"float","example":1000,"description":"The total amount of taxes withheld"},"method_of_tax_coverage":{"enum":["AD_HOC","BIK_REPORTING_ONLY","BIK_WITHHOLDING_AT_SOURCE_CLIENT","BIK_WITHHOLDING_AT_SOURCE_CLIENT_REVERSE","BIK_WITHHOLDING_GROSSED_UP_BONUS","BIK_WITHHOLDING_NET_SETTLEMENT","BIK_WITHHOLDING_SALARY_DEDUCTION","BIK_WITHHOLDING_WORKER","NO_BIK_NO_WITHHOLDING"],"type":"string","example":"WITHHELD_AT_SOURCE","description":"The method used to cover the taxes"},"quantity_withheld_or_sold":{"type":"number","format":"float","example":5000,"description":"The quantity of equity/token that was withheld or sold"},"withheld_tax_local_currency":{"type":"number","format":"float","example":959.05,"description":"The tax withheld in the local currency"},"benefit_in_kind_local_currency":{"type":"number","format":"float","example":14385.73,"description":"The benefit in kind in the local currency"},"quantity_exercised_or_released":{"type":"number","format":"float","example":10000,"description":"The quantity of equity/token that was exercised or released"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["equities:write"]}]}},"/knowledge-hub/country-guide/{country_code}":{"get":{"path":"/rest/knowledge-hub/country-guide/{country_code}","tags":["Knowledge Hub"],"method":"get","summary":"Get Knowledge Hub Country Guides by Country Code","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["name","value"],"properties":{"name":{"type":"string","example":"Contractor","description":"Display name of the audience."},"value":{"type":"string","example":"contractor","description":"Identifier or key representing the audience in lowercase."},"categories":{"type":"array","items":{"type":"object","required":["id","name","icon","fields","articles"],"properties":{"id":{"type":"string","example":"d2d210da-04b8-42ec-8f03-939d4b74cfc6","description":"ID for the category"},"icon":{"type":"string","example":"MoreTime","description":"Icon aligning with the category"},"name":{"type":"string","example":"Wages and Working Hours","description":"Display name of the category"},"fields":{"type":"array","items":{"type":"object","required":["id","name","type"],"properties":{"id":{"type":"string","example":"b3a9e1ce-7afb-41d3-a171-81ad2eec39ff","description":"ID of the field"},"name":{"type":"string","example":"EOR Minimum Wage","description":"Title of the field"},"type":{"enum":["TEXT","LINK","HTML"],"type":"string","example":"TEXT","description":"Type of the field, can contain text, link or html"},"value":{"type":"string","example":"ALL 40,000 per month","nullable":true,"description":"The value associated for the field"}}},"description":"An array of informative fields and it's value that the category contains"},"articles":{"type":"array","items":{"type":"object","required":["id","title","description","featured_image","created_at","updated_at","tags","type"],"properties":{"id":{"type":"string","example":"d2d210da-04b8-42ec-8f03-939d4b74cfc6","description":"ID for the article"},"tags":{"type":"array","items":{"type":"object","required":["id","title","tag"],"properties":{"id":{"type":"string","example":"a3a9e1ce-7afb-40e2-a171-81ad2eec39ff","description":"ID for the tag"},"tag":{"type":"string","example":"internal","description":"Slug for the tag"},"title":{"type":"string","example":"Internal","description":"Title of the tag"}}},"description":"Array of tags inside an article"},"type":{"enum":["KNOWLEDGE","COMPLIANCE"],"type":"string","example":"KNOWLEDGE","description":"The type of the article, can contain knowledge or compliance"},"title":{"type":"string","example":"Other Leave: Portugal","description":"Title of the article"},"created_at":{"type":"string","format":"date-time","example":"2023-03-07T13:34:30.500Z","description":"The timestamp when the article was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-10-27T08:09:48.529Z","description":"The timestamp when the article was last updated"},"description":{"type":"string","example":"Information about other paid and unpaid leave in Portugal","description":"An excerpt for the article"},"effective_date":{"type":"string","format":"date","example":"2023-03-07T13:34:30.500Z","nullable":true,"description":"The date when the article will be effective, meaning the content inside it becomes effective in the real world)"},"featured_image":{"type":"string","format":"uri","example":"https://wiki.deel.network/assets/11.png","description":"The featured image for the article"}}},"description":"An array of articles that are connected to this category"}}},"description":"List of categories applicable to this audience."},"contract_types":{"type":"array","items":{"type":"object","required":["name","value","categories"],"properties":{"name":{"type":"string","example":"Employer of Record","description":"The user friendly name of the contract type"},"value":{"type":"string","example":"eor","description":"Identifier or key representing the contract type in lowercase."},"categories":{"type":"array","items":{"type":"object","required":["id","name","icon","fields","articles"],"properties":{"id":{"type":"string","example":"a3a9e1ce-7afb-40e2-a171-81ad2eec39ff","description":"ID for the category"},"icon":{"type":"string","example":"MoreTime","description":"Icon aligning with the category"},"name":{"type":"string","example":"Wages and Working Hours","description":"Display name of the category"},"fields":{"type":"array","items":{"type":"object","required":["id","name","type"],"properties":{"id":{"type":"string","example":"b3a9e1ce-7afb-41d3-a171-81ad2eec39ff","description":"ID of the field"},"name":{"type":"string","example":"EOR Minimum Wage","description":"Title of the field"},"type":{"enum":["TEXT","LINK","HTML"],"type":"string","example":"TEXT","description":"Type of the field, can contain text, link or html"},"value":{"type":"string","example":"ALL 40,000 per month","nullable":true,"description":"The value associated for the field"}}},"description":"An array of informative fields and it's value that the category contains"},"articles":{"type":"array","items":{"type":"object","required":["id","title","description","featured_image","created_at","updated_at","tags","type"],"properties":{"id":{"type":"string","example":"a1421df1-9907-483a-a35c-b92ba7403ef1","description":"ID for the article"},"tags":{"type":"array","items":{"type":"object","required":["id","title","tag"],"properties":{"id":{"type":"string","example":"a3a9e1ce-7afb-40e2-a171-81ad2eec39ff","description":"ID for the tag"},"tag":{"type":"string","example":"internal","description":"Slug for the tag"},"title":{"type":"string","example":"Internal","description":"Title of the tag"}}},"description":"Array of tags inside an article"},"type":{"enum":["KNOWLEDGE","COMPLIANCE"],"type":"string","example":"KNOWLEDGE","description":"The type of the article, can contain knowledge or compliance"},"title":{"type":"string","example":"Other Leave: Portugal","description":"Title of the article"},"created_at":{"type":"string","format":"date-time","example":"2023-03-07T13:34:30.500Z","description":"The timestamp when the article was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-10-27T08:09:48.529Z","description":"The timestamp when the article was last updated"},"description":{"type":"string","example":"Information about other paid and unpaid leave in Portugal","description":"An excerpt for the article"},"effective_date":{"type":"string","format":"date","example":"2023-03-07T13:34:30.500Z","nullable":true,"description":"The date when the article will be effective, meaning the content inside it becomes effective in the real world)"},"featured_image":{"type":"string","format":"uri","example":"https://wiki.deel.network/assets/11.png","description":"The featured image for the article"}}},"description":"An array of articles that are connected to this category"}}},"description":"List of categories applicable to this audience."}}},"description":"List of contract types available for this audience."}},"description":"Represents a specific audience such as Contractor, Client, or Employee."},"example":{"audiences":[{"name":"Contractor","value":"contractor","categories":[{"id":"a3a9e1ce-7afb-40e2-a171-81ad2eec39ff","icon":"MoreTime","name":"Wages and Working Hours","fields":[],"articles":[{"id":"a1421df1-9907-483a-a35c-b92ba7403ef1","tags":[{"id":"a3a9e1ce-7afb-40e2-a171-81ad2eec39ff","tag":"internal","title":"Internal"},{"id":"a3a9e1ce-7afb-40e2-a171-81ad2eec39ff","tag":"portugal","title":"Portugal"}],"type":"KNOWLEDGE","title":"Other Leave: Portugal","created_at":"2023-03-07T13:34:30.500Z","updated_at":"2025-10-27T08:09:48.529Z","description":"Information about other paid and unpaid leave in Portugal","effective_date":"2023-03-07T13:34:30.500Z","featured_image":"https://wiki.deel.network/assets/11.png"}]}]}]},"description":"List of different audiences with associated categories and contract types."},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more items to fetch."},"next_cursor":{"type":"string","example":"abcdef01-2345-6789-0abc-def012345678","nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"number","example":2,"description":"Total number of audiences"}}}}},"description":"Successful response containing audiences, their contract types, and associated categories, fields, and articles."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"country_code","schema":{"type":"string"},"example":"AL","required":true,"description":"Country code for which we need to fetch the country guides"}],"description":"Returns country guides segmented by audience and contract type for the specified `country_code`.\n\n **Token scopes**: `knowledge-hub:read`","operationId":"getKnowledgeHubCountryGuidesByCountryCode-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["knowledge-hub:read"]}]}},"/payments/statements":{"post":{"path":"/rest/payments/statements","tags":["Payments"],"method":"post","summary":"Create and pay a payment statement","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","payment_currency","amount","amount_due","invoices"],"properties":{"id":{"type":"string","example":"34d7Y48Ymu44g66fghN9F","description":"Unique identifier of the payment statement."},"amount":{"type":"string","example":"1500.00","nullable":true,"description":"Total amount of the payment statement before any balance is applied. Null until the amount is set."},"status":{"enum":["PROCESSING","PAID","CANCELLED","FAILED"],"type":"string","example":"PROCESSING","description":"Normalized status of the payment statement. 'PROCESSING' covers any in-flight state (pending, preprocessing, awaiting payment); 'paid', 'cancelled' and 'failed' are terminal."},"paid_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Date and time when the client paid, in ISO-8601 format. For bank transfers this can be set while the status is still processing. Null until payment is captured."},"invoices":{"type":"array","items":{"type":"object","required":["id","amount","currency"],"properties":{"id":{"type":"string","example":"34d7Y48Ymu44g66fghN9F","description":"Unique identifier of the invoice."},"label":{"type":"string","example":"INV-2024-3","description":"Descriptive label for the invoice."},"amount":{"type":"string","example":"500.00","description":"Amount of the invoice."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Three-letter currency code of the invoice, following ISO 4217."},"is_auto_added":{"type":"boolean","example":false,"description":"True when Deel automatically attached this invoice (e.g. an overdue or required fee invoice) beyond the requested set."}}},"description":"Authoritative superset of invoices settled by this payment statement. It always contains the requested invoices and may include additional overdue or required fee invoices that Deel attaches automatically."},"reference":{"type":"string","example":"DEEL-REF-0001","nullable":true,"description":"Reference to use when reconciling this payment statement against incoming wires."},"amount_due":{"type":"string","example":"1200.00","nullable":true,"description":"Amount still due after any applied balance and fee credits. Null until the amount is set."},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","description":"Date and time when the payment statement was created, in ISO-8601 format."},"payment_method":{"type":"string","example":"bank_transfer","nullable":true,"description":"Method used to settle the payment statement. Null until a payment method is attached."},"balance_applied":{"type":"string","example":"300.00","description":"Amount of client balance applied to the payment statement."},"payment_currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":true,"maxLength":3,"minLength":3,"description":"Three-letter currency code of the payment statement, following ISO 4217. Null until a payment method is attached."},"beneficiary_details":{"type":"object","nullable":true,"properties":{"iban":{"type":"string","example":"GB29NWBK60161331926819","nullable":true,"description":"IBAN of the beneficiary account. Null on non-IBAN rails."},"swift":{"type":"string","example":"NWBKGB2L","nullable":true,"description":"SWIFT/BIC code of the beneficiary bank. Null when not applicable."},"country":{"type":"string","example":"GB","nullable":true,"description":"Two-letter country code of the beneficiary. Best-effort; null when not modeled."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":true,"maxLength":3,"minLength":3,"description":"Three-letter currency code of the beneficiary account, following ISO 4217. Null when not modeled on the rail."},"bank_name":{"type":"string","example":"JPMorgan Chase","nullable":true,"description":"Name of the beneficiary bank."},"sort_code":{"type":"string","example":"04-00-04","nullable":true,"description":"Sort code of the beneficiary bank. Best-effort; null on most rails."},"account_holder":{"type":"string","example":"Deel Inc.","nullable":true,"description":"Name of the beneficiary account holder. Null when not modeled on the rail."},"account_number":{"type":"string","example":"1234567890","nullable":true,"description":"Beneficiary account number. Null on IBAN-only rails."}},"description":"Beneficiary bank details the payment is settled to. Null when not yet resolved."},"fee_credits_applied":{"type":"string","example":"50.00","description":"Amount of fee credits applied to the payment statement."}}}}}}},"description":"Successfully created and initiated payment of the statement."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"currency_not_supported","description":"Machine-readable error code."},"message":{"type":"string","example":"the country (US) does not support the currency (EUR)","description":"Human-readable explanation of the error."}}}}}}}},"description":"Bad request. Codes: too_many_invoices (invoice_ids exceeds the maximum of 100), currency_not_supported (the requested country does not support the requested currency for bank transfer), invalid_parameter (request validation failed), INVALID_IDEMPOTENCY_KEY (the Idempotency-Key header is missing, empty, or longer than 64 characters)."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"unauthorized","description":"Machine-readable error code."},"message":{"type":"string","example":"missing or invalid authentication","description":"Human-readable explanation of the error."}}}}}}}},"description":"The authentication is missing or is invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden","description":"Machine-readable error code."},"message":{"type":"string","example":"You don't have permission to access this resource.","description":"Human-readable explanation of the error."}}}}}}}},"description":"The organization is not permitted to use this endpoint."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code."},"message":{"type":"string","example":"The requested resource was not found.","description":"Human-readable explanation of the error."}}}}}}}},"description":"One or more referenced resources could not be found."},"409":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invoices_not_payable","description":"Machine-readable error code."},"message":{"type":"string","example":"Some of the requested invoices are not payable.","description":"Human-readable explanation of the error."}}}}}}}},"description":"Conflict. Codes: invoices_not_payable (some invoices are already in a statement or not pending), invoices_locked (invoices are in an active payment process), no_payable_invoices (none of the invoices are payable), cor_preparation_failed (shielded/contract-of-record preparation failed), idempotency_conflict (the Idempotency-Key was reused with a different request body), multiple_statements (the invoices resolve to more than one statement — submit each group separately), payment_failed (the statement was created but the synchronous payment could not be completed)."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"too_many_requests","description":"Machine-readable error code."},"message":{"type":"string","example":"A request is already in progress for this idempotency key.","description":"Human-readable explanation of the error."}}}}}}}},"description":"Too many requests. Another request with the same Idempotency-Key is currently in progress."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code."},"message":{"type":"string","example":"The service is currently experiencing issues.","description":"Human-readable explanation of the error."}}}}}}}},"description":"An unexpected error occurred while creating and paying the payment statement."}},"parameters":[{"in":"header","name":"Idempotency-Key","schema":{"type":"string","maxLength":64},"example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","required":true,"description":"Unique key that makes the request idempotent. Replaying the same key returns the original response without creating a duplicate statement. Reusing a key with a different body returns 409 idempotency_conflict."}],"description":"Creates a payment statement for the given invoices, attaches a bank transfer method for the requested country and currency, optionally applies available balance, and pays it in a single call. Returns the composed statement once payment has been initiated.\n\n **Token scopes**: `payment-statements:write`","operationId":"createPaymentStatement-v2026-07-23","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["invoice_ids","payment"],"properties":{"payment":{"type":"object","required":["country","currency"],"properties":{"country":{"type":"string","example":"GB","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Two-letter country code for the bank transfer method, following ISO 3166-1 alpha-2."},"currency":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Three-letter currency code of the payment statement, following ISO 4217. Must match the currency of the created statement."}},"description":"Settlement details for the payment.","additionalProperties":false},"invoice_ids":{"type":"array","items":{"type":"string","example":"34d7Y48Ymu44g66fghN9F"},"example":["34d7Y48Ymu44g66fghN9F","BHF2gkMEMT8D9UQDmty66"],"maxItems":100,"minItems":1,"description":"Identifiers of the invoices to include in the payment statement. A maximum of 100 invoices can be paid in one request."}},"additionalProperties":false}}}}},"required":true,"description":"Invoices and settlement options for the payment statement."},"security":[{"deelToken":[]},{"oauth2":["payment-statements:write"]}]}},"/gp/workers/{id}/payslips":{"get":{"path":"/rest/gp/workers/{id}/payslips","tags":["Global Payroll"],"method":"get","summary":"Retrieve employee payslips","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","from","to","status"],"properties":{"id":{"type":"string","example":"0dRZGn2ed49y","description":"Unique identifier for the payslip."},"to":{"type":"string","format":"date","example":"2023-11-30","description":"End date of the payslip period in ISO-8601 format."},"from":{"type":"string","format":"date","example":"2023-11-01","description":"Start date of the payslip period in ISO-8601 format."},"status":{"type":"string","example":"AVAILABLE","description":"The current status of the payslip (e.g., AVAILABLE, PENDING, PUBLISHED)."}}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Invalid query parameters","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"GET","description":"Method of the API"},"status":{"type":"number","example":400,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Bad Request - Validation error or invalid parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid","description":"Unique identifier for the worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for the worker."}],"description":"Returns the payslip history for a GP employee, including each payslip's date range and status. Restricted to GP contract types. Each payslip in the response includes an `id` required by the payslip download endpoint.\n\n **Token scopes**: `payslips:read`, `worker:read`","operationId":"retrieveEmployeePayslips-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["payslips:read","worker:read"]}]}},"/eor/contract/{oid}/cancel":{"post":{"path":"/rest/eor/contract/{oid}/cancel","tags":["EOR"],"method":"post","summary":"Cancel EOR Contract","responses":{"204":{"description":"Contract cancelled successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Invalid cancellation reason","description":"Error message details"}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Contract not found","description":"Error message details"}}}}},"description":"Contract not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"oid","schema":{"type":"string"},"example":"abc123xyz","required":true,"description":"Contract oid"}],"description":"Cancels the EOR contract identified by oid. The contract must be in an active or pending state to be eligible for cancellation.\n\n **Token scopes**: `contracts:write`","operationId":"cancelEorContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["cancellation_reason"],"properties":{"cancellation_reason":{"enum":["INTERNAL_DECISION","UNSATISFACTORY_EXPERIENCE","EXPLORING_ALTERNATIVE","OFFER_CHANGES"],"type":"string","example":"UNSATISFACTORY_EXPERIENCE","description":"Reason for contract termination"},"cancellation_message":{"type":"string","example":"Contract termination requested","description":"Message for contract termination"}}}}}}},"required":true,"description":"Cancel EOR Contract"},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/eor/contracts/{contract_id}/amendments":{"get":{"path":"/rest/eor/contracts/{contract_id}/amendments","tags":["EOR"],"method":"get","summary":"List all amendments for an EOR contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"b9fd7198-7e81-4e57-bcf9-de6315194327","description":"Id of amendment"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED",null],"type":"string","example":"OPS","nullable":true,"description":"Type of amendment"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"8e6ba281-c703-4af3-ad93-b27434b70c7d","description":"Id of amendment item"},"item":{"type":"string","example":"SALARY_INCREASE","description":"Amendment item"},"type":{"type":"string","example":"OPS","description":"Type of amendment"},"new_value":{"type":"string","example":"62382.93","description":"The new valid value after the attempted change."},"data_point":{"type":"string","example":"salary","description":"The field that is selected for amendment."},"previous_value":{"type":"string","example":"68.9170","description":"The previous valid value before the attempted change."}}},"description":"Items of amendment"},"scope":{"type":"string","example":"Project scope details","description":"Scope of the amendment."},"salary":{"type":"string","example":"50000.00","description":"Salary for the amendment.","x-sensitive-employment":true},"source":{"enum":["APP","PUBLIC_API","APP_BULK_AMENDMENT",null],"type":"string","example":"APP","nullable":true,"description":"Source of amendment flow creation."},"currency":{"type":"string","example":"GBP","description":"Contract currency."},"end_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","nullable":true,"description":"End date of the employment."},"holidays":{"type":"integer","example":20,"nullable":true,"description":"Number of holidays."},"job_code":{"type":"string","example":"49589","nullable":true,"description":"Job code associated with the job title."},"job_title":{"type":"string","example":"Software Engineer","maxLength":1000,"description":"Job title associated with the amendment.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date of the amendment."},"net_salary":{"type":"string","example":"95000.0000","nullable":true,"description":"Net salary for the amendment.","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Start date of the employment."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Date when amendment is updated"},"description":{"type":"string","example":"Reason or note for the amendment.","nullable":true,"description":"Free-text description of the amendment."},"hourly_rate":{"type":"string","example":"50000.00","nullable":true,"description":"Hourly rate of the amendment","x-sensitive-employment":true},"custom_items":{"type":"array","items":{"type":"object","required":["id","type","status"],"properties":{"id":{"type":"string","format":"uuid","example":"e7b45fa6-9a72-4ab6-b163-ef50ccaba7fb","description":"Unique identifier for the custom amendment item"},"type":{"type":"string","example":"START_DATE","description":"Type/context of the custom amendment item"},"status":{"enum":["REJECTED","APPROVED","PENDING_REVIEW","PENDING_LEGAL"],"type":"string","example":"PENDING_REVIEW","description":"Current status of the custom amendment item"},"description":{"type":"string","example":"Please change the start date to 20th November 2025.","nullable":true,"description":"Detailed description of the custom amendment item"},"rejection_reason":{"type":"string","example":"Start date cannot be moved this far in advance.","nullable":true,"description":"Reason for rejection if the item was rejected"}}},"description":"Custom amendment items associated with the amendment flow"},"job_category":{"type":"string","example":"Engineering","nullable":true,"description":"Job category associated with the job title."},"requested_by":{"type":"string","example":"John Doe","nullable":true,"description":"Profile name of the user who requested the change"},"seniority_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true,"description":"New seniority level identifier."},"document_type":{"enum":["EA","SOW","SOW_EA",null],"type":"string","example":"SOW_EA","nullable":true,"description":"Amendment document type"},"legal_context":{"type":"object","example":{"status":"REQUEST_LEGAL_REVIEW","details":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","jira_ticket":"COHDSB-9600","jira_web_url":"https://letsdeel.atlassian.net/browse/COHDSB-9600","requested_at":"2025-04-23T10:40:25.527Z"},"nullable":true,"properties":{"status":{"enum":["REQUEST_LEGAL_REVIEW","WAITING_FOR_ANOTHER_TEAM","WAITING_FOR_HRX_ACTION","DECLINED","SOLVED","SOLVE_LEGAL","LEGAL_JIRA_REOPENED"],"type":"string","example":"REQUEST_LEGAL_REVIEW","description":"Current status of the legal review process"},"details":{"type":"string","example":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","description":"Details regarding the legal request"},"jira_ticket":{"type":"string","example":"COHDSB-9600","description":"Jira ticket identifier linked to the legal context"},"jira_web_url":{"type":"string","format":"uri","example":"https://letsdeel.atlassian.net/browse/COHDSB-9600","description":"Link to the Jira ticket for tracking"},"requested_at":{"type":"string","format":"date-time","example":"2025-04-23T10:40:25.527Z","description":"Timestamp when legal review was requested"}},"description":"Additional details needed for legal input"},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","description":"Type of time off."},"void_deadline":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Deadline this SOW to be voided"},"effective_date":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Effective date of the amendment."},"seniority_date":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"The seniority date represents the employee’s original start date with a previous employer. It is used to preserve employment tenure when the employee transfers to this company. Can be null if not applicable."},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Type of employment."},"sick_leave_days":{"type":"integer","format":"number","example":12,"nullable":true,"description":"Number of sick leave days"},"employment_state":{"type":"string","example":"Active","nullable":true,"description":"State of employment."},"probation_period":{"type":"integer","example":3,"nullable":true,"description":"Duration of the probation period."},"work_schedule_id":{"type":"string","format":"uuid","example":"2b786de3-9b25-42d9-8a2d-61583bcfc09e","nullable":true,"description":"Work schedule id"},"fixed_adjustments":{"type":"array","items":{"type":"object","required":["id","value","description","is_recurring","status","is_amended","is_country_specific","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmfo0hqd5bw00cqs1b1jd7eag","description":"System-generated unique identifier for the fixed adjustment record in an amendment request."},"value":{"type":"string","example":"1200.50","pattern":"^(?!0+(\\.0+)?$)\\d+(?:\\.\\d+)?$","description":"Value of the fixed adjustment."},"status":{"enum":["WAITING_FOR_SIGNING","ACTIVE","OUTDATED","CANCELLED"],"type":"string","example":"WAITING_FOR_SIGNING","description":"Current status of the fixed adjustment."},"created_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was created."},"is_amended":{"type":"boolean","example":true,"description":"Whether this fixed adjustment was amended from a previous one."},"is_deleted":{"type":"boolean","example":false,"description":"True if the fixed adjustment was deleted as part of the amendment; otherwise false."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was last updated."},"description":{"type":"string","example":"Housing allowance for employee relocation","maxLength":256,"minLength":1,"description":"Description of the fixed adjustment."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the fixed adjustment is recurring. If set to false, it will be treated as a one-time fixed allowance."},"is_country_specific":{"type":"boolean","example":false,"description":"Whether this fixed adjustment applies only to a specific country."},"parent_fixed_adjustment_id":{"type":"string","example":"cmfo0hqd5i9kbhfvk8fn7aniy","nullable":true,"description":"Reference to the parent fixed adjustment, if applicable."}}},"description":"List of fixed adjustments associated with the amendment request."},"rejection_context":{"type":"object","example":{"rejected_at":"2025-02-24T11:08:57.433Z","rejection_reason":"Client requested a different start date."},"nullable":true,"properties":{"rejected_at":{"type":"string","format":"date-time","example":"2025-02-24T11:08:57.433Z","description":"Timestamp of when the rejection occurred"},"rejection_reason":{"type":"string","example":"Client requested a different start date.","nullable":true,"description":"Reason provided when the amendment was rejected. Null when the amendment was cancelled rather than rejected by an admin."}},"description":"Additional details containing rejection reason"},"amendment_statuses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"PREPARING_DOCUMENTS","description":"Logical, system-oriented identifier of the amendment status. Can be used to group statuses under a parent category and subgroup them for more granular state tracking. The structure typically follows a dot-separated hierarchy (e.g., 'PARENT','PARENT.CHILD', 'PARENT.CHILD.CHILD.CHILD', ...), which allows logical grouping and filtering of related statuses."},"friendly_name":{"type":"string","example":"PREPARING_DOCUMENTS","description":"Friendly name of amendment status"},"amendment_flow_status":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date"}},"description":"Metadata about the amendment status, including when it was created."}}},"description":"List of amendment statuses representing the history and progression of an amendment."},"notice_period_type":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"CUSTOM","nullable":true,"description":"Type of notice period."},"void_deadline_type":{"enum":["CUTOFF","START_DATE","END_DATE","EXPIRY",null],"type":"string","example":"CUTOFF","nullable":true,"description":"Type of void deadline"},"work_hours_per_week":{"type":"string","example":"40.00","description":"Number of work hours per week.","x-sensitive-employment":true},"employee_nationality":{"type":"string","example":"GB","description":"Nationality of the employee.","x-sensitive-pii":true},"is_hrx_action_needed":{"type":"boolean","example":false,"description":"Is HRX action needed."},"variable_compensation":{"type":"object","required":["id","title","amount","type","timeline","parent_id","effective_date","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","description":"The unique ID assigned by the system to this variable compensation record."},"type":{"enum":["FIXED","PERCENTAGE"],"type":"string","example":"FIXED","description":"The way the compensation is calculated. `FIXED` means a fixed amount (like $1000). `PERCENTAGE` means it’s based on a percentage of the salary."},"title":{"type":"string","example":"Bonus","description":"Title or name of the variable compensation."},"amount":{"type":"string","format":"decimal","example":"100000.0000","description":"The value of the compensation. Shown as a string to keep the exact number of decimals."},"timeline":{"enum":["MONTHLY","QUARTERLY","ANNUALLY","BIANNUALLY"],"type":"string","example":"ANNUALLY","description":"How often the compensation is paid — for example monthly, quarterly, annually, or twice a year."},"parent_id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","nullable":true,"description":"Reference to the parent variable compensation, if applicable. Null if this compensation is not linked to any compensation."},"created_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was first created in the system."},"is_amended":{"type":"boolean","example":true,"description":"Shows whether this compensation has been changed as part of an amendment."},"is_deleted":{"type":"boolean","example":true,"description":"Shows whether this compensation has been deleted."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was last updated."},"effective_date":{"type":"string","format":"date-time","example":"2025-10-18T00:00:00.000Z","description":"The date when this compensation starts being valid."},"incentive_plan":{"type":"object","properties":{"details":{"type":"string","example":"Year-end performance bonus based on quarterly targets.","description":"Extra details about the incentive plan, if any."},"employee_signature":{"type":"string","example":"John Doe","description":"The employee’s signature for the incentive plan, if collected."},"employee_signed_at":{"type":"string","format":"date-time","example":"2025-12-15T14:30:00.000Z","description":"The date and time when the employee signed the incentive plan. Empty if not signed."}},"description":"Details of the incentive plan linked to this compensation, if any."}},"description":"Represents a variable compensation record (such as a bonus, commission, or incentive) within a contract. It contains details like the amount, type, frequency, and whether it is part of an incentive plan. The record also tracks when it was created, updated, and whether it has been amended."},"notice_period_time_unit":{"enum":["DAY","WEEK","MONTH",null],"type":"string","example":"WEEK","nullable":true,"description":"Notice period time unit."},"is_effective_date_updated":{"type":"boolean","example":false,"description":"Is Effective Date updated."},"work_schedule_rules_version":{"type":"string","example":"2","nullable":true,"description":"Work schedule rule version."},"notice_period_after_probation":{"type":"string","example":"30","nullable":true,"description":"Notice period after probation."},"notice_period_during_probation":{"type":"string","example":"15","nullable":true,"description":"Notice period during probation."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"STANDARD","nullable":true,"description":"Type of probation period for definite contracts."}}}}}}}},"description":"Amendment info. Returns the amendment flow details."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of EOR worker contract."}],"description":"Retrieves all amendments associated with a given EOR contract, including each amendment's type, effective date, and current status, providing a full history of changes applied to the contract.\n\n **Token scopes**: `contracts:read`","operationId":"listAllAmendmentsForAnEorContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]},"post":{"path":"/rest/eor/contracts/{contract_id}/amendments","tags":["EOR"],"method":"post","summary":"Create an EOR contract amendment","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"b9fd7198-7e81-4e57-bcf9-de6315194327","description":"Id of amendment"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED",null],"type":"string","example":"OPS","nullable":true,"description":"Type of amendment"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"8e6ba281-c703-4af3-ad93-b27434b70c7d","description":"Id of amendment item"},"item":{"type":"string","example":"SALARY_INCREASE","description":"Amendment item"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED"],"type":"string","example":"OPS","description":"Type of amendment"},"new_value":{"type":"string","example":"62382.93","description":"The new valid value after the attempted change."},"data_point":{"type":"string","example":"salary","description":"The field that is selected for amendment."},"previous_value":{"type":"string","example":"68.9170","description":"The previous valid value before the attempted change."}}},"description":"Items of amendment"},"scope":{"type":"string","example":"Project scope details","description":"Scope of the amendment."},"salary":{"type":"string","example":"50000.00","description":"Salary for the amendment.","x-sensitive-employment":true},"source":{"enum":["APP","PUBLIC_API","APP_BULK_AMENDMENT",null],"type":"string","example":"APP","nullable":true,"description":"Source of amendment flow creation."},"currency":{"type":"string","example":"GBP","description":"Contract currency."},"end_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","nullable":true,"description":"End date of the employment."},"holidays":{"type":"integer","example":20,"nullable":true,"description":"Number of holidays."},"job_code":{"type":"string","example":"49589","nullable":true,"description":"Job code associated with the job title."},"job_title":{"type":"string","example":"Software Engineer","maxLength":1000,"description":"Job title associated with the amendment.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date of the amendment."},"net_salary":{"type":"string","example":"95000.0000","nullable":true,"description":"Net salary for the amendment.","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Start date of the employment."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Date when amendment is updated"},"description":{"type":"string","example":"Reason or note for the amendment.","nullable":true,"description":"Free-text description of the amendment."},"hourly_rate":{"type":"string","example":"50000.00","nullable":true,"description":"Hourly rate of the amendment","x-sensitive-employment":true},"custom_items":{"type":"array","items":{"type":"object","required":["id","type","status"],"properties":{"id":{"type":"string","format":"uuid","example":"e7b45fa6-9a72-4ab6-b163-ef50ccaba7fb","description":"Unique identifier for the custom amendment item"},"type":{"type":"string","example":"START_DATE","description":"Type/context of the custom amendment item"},"status":{"enum":["REJECTED","APPROVED","PENDING_REVIEW","PENDING_LEGAL"],"type":"string","example":"PENDING_REVIEW","description":"Current status of the custom amendment item"},"description":{"type":"string","example":"Please change the start date to 20th November 2025.","nullable":true,"description":"Detailed description of the custom amendment item"},"rejection_reason":{"type":"string","example":"Start date cannot be moved this far in advance.","nullable":true,"description":"Reason for rejection if the item was rejected"}}},"description":"Custom amendment items associated with the amendment flow"},"job_category":{"type":"string","example":"Engineering","nullable":true,"description":"Job category associated with the job title."},"requested_by":{"type":"string","example":"John Doe","nullable":true,"description":"Profile name of the user who requested the change"},"seniority_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true,"description":"Seniority level identifier."},"document_type":{"enum":["EA","SOW","SOW_EA",null],"type":"string","example":"SOW_EA","nullable":true,"description":"Amendment document type"},"legal_context":{"type":"object","example":{"status":"REQUEST_LEGAL_REVIEW","details":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","jira_ticket":"COHDSB-9600","jira_web_url":"https://letsdeel.atlassian.net/browse/COHDSB-9600","requested_at":"2025-04-23T10:40:25.527Z"},"nullable":true,"properties":{"status":{"enum":["REQUEST_LEGAL_REVIEW","WAITING_FOR_ANOTHER_TEAM","WAITING_FOR_HRX_ACTION","DECLINED","SOLVED"],"type":"string","example":"REQUEST_LEGAL_REVIEW","description":"Current status of the legal review process"},"details":{"type":"string","example":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","description":"Details regarding the legal request"},"jira_ticket":{"type":"string","example":"COHDSB-9600","description":"Jira ticket identifier linked to the legal context"},"jira_web_url":{"type":"string","format":"uri","example":"https://letsdeel.atlassian.net/browse/COHDSB-9600","description":"Link to the Jira ticket for tracking"},"requested_at":{"type":"string","format":"date-time","example":"2025-04-23T10:40:25.527Z","description":"Timestamp when legal review was requested"}},"description":"Additional details needed for legal input"},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","description":"Type of time off."},"void_deadline":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Deadline this SOW to be voided"},"effective_date":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Effective date of the amendment."},"seniority_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","nullable":true,"description":"The seniority date represents the employee’s original start date with a previous employer. It is used to preserve employment tenure when the employee transfers to this company. Can be null if not applicable."},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Type of employment."},"sick_leave_days":{"type":"integer","format":"number","example":12,"nullable":true,"description":"Number of sick leave days"},"employment_state":{"type":"string","example":"Active","nullable":true,"description":"State of employment."},"probation_period":{"type":"integer","example":3,"nullable":true,"description":"Duration of the probation period."},"work_schedule_id":{"type":"string","format":"uuid","example":"2b786de3-9b25-42d9-8a2d-61583bcfc09e","nullable":true,"description":"Work schedule id"},"fixed_adjustments":{"type":"array","items":{"type":"object","required":["id","value","description","is_recurring","status","is_amended","is_country_specific","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmfo0hqd5bw00cqs1b1jd7eag","description":"System-generated unique identifier for the fixed adjustment record in an amendment request."},"value":{"type":"string","example":"1200.50","pattern":"^(?!0+(\\.0+)?$)\\d+(?:\\.\\d+)?$","description":"Value of the fixed adjustment."},"status":{"enum":["WAITING_FOR_SIGNING","ACTIVE","OUTDATED","CANCELLED"],"type":"string","example":"WAITING_FOR_SIGNING","description":"Current status of the fixed adjustment."},"created_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was created."},"is_amended":{"type":"boolean","example":true,"description":"Whether this fixed adjustment was amended from a previous one."},"is_deleted":{"type":"boolean","example":false,"description":"True if the fixed adjustment was deleted as part of the amendment; otherwise false."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was last updated."},"description":{"type":"string","example":"Housing allowance for employee relocation","maxLength":256,"minLength":1,"description":"Description of the fixed adjustment."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the fixed adjustment is recurring. If set to false, it will be treated as a one-time fixed allowance."},"is_country_specific":{"type":"boolean","example":false,"description":"Whether this fixed adjustment applies only to a specific country."},"parent_fixed_adjustment_id":{"type":"string","example":"cmfo0hqd5i9kbhfvk8fn7aniy","nullable":true,"description":"Reference to the parent fixed adjustment, if applicable."}}},"description":"List of fixed adjustments associated with the amendment request."},"rejection_context":{"type":"object","example":{"rejected_at":"2025-02-24T11:08:57.433Z","rejection_reason":"Client requested a different start date."},"nullable":true,"properties":{"rejected_at":{"type":"string","format":"date-time","example":"2025-02-24T11:08:57.433Z","description":"Timestamp of when the rejection occurred"},"rejection_reason":{"type":"string","example":"Client requested a different start date.","nullable":true,"description":"Reason provided when the amendment was rejected. Null when the amendment was cancelled rather than rejected by an admin."}},"description":"Additional details containing rejection reason"},"amendment_statuses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"PREPARING_DOCUMENTS","description":"Logical, system-oriented identifier of the amendment status. Can be used to group statuses under a parent category and subgroup them for more granular state tracking. The structure typically follows a dot-separated hierarchy (e.g., 'PARENT','PARENT.CHILD', 'PARENT.CHILD.CHILD.CHILD', ...), which allows logical grouping and filtering of related statuses."},"friendly_name":{"type":"string","example":"PREPARING_DOCUMENTS","description":"Friendly name of amendment status"},"amendment_flow_status":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date"}},"description":"Metadata about the amendment status, including when it was created."}}},"description":"List of amendment statuses representing the history and progression of an amendment."},"notice_period_type":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"CUSTOM","nullable":true,"description":"Type of notice period."},"void_deadline_type":{"enum":["CUTOFF","START_DATE","END_DATE","EXPIRY",null],"type":"string","example":"CUTOFF","nullable":true,"description":"Type of void deadline"},"work_hours_per_week":{"type":"string","example":"40.00","description":"Number of work hours per week.","x-sensitive-employment":true},"employee_nationality":{"type":"string","example":"GB","description":"Nationality of the employee.","x-sensitive-pii":true},"is_hrx_action_needed":{"type":"boolean","example":false,"description":"Is HRX action needed."},"variable_compensation":{"type":"object","required":["id","title","amount","type","timeline","parent_id","effective_date","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","description":"The unique ID assigned by the system to this variable compensation record."},"type":{"enum":["FIXED","PERCENTAGE"],"type":"string","example":"FIXED","description":"The way the compensation is calculated. `FIXED` means a fixed amount (like $1000). `PERCENTAGE` means it’s based on a percentage of the salary."},"title":{"type":"string","example":"Bonus","description":"Title or name of the variable compensation."},"amount":{"type":"string","format":"decimal","example":"100000.0000","description":"The value of the compensation. Shown as a string to keep the exact number of decimals."},"timeline":{"enum":["MONTHLY","QUARTERLY","ANNUALLY","BIANNUALLY"],"type":"string","example":"ANNUALLY","description":"How often the compensation is paid — for example monthly, quarterly, annually, or twice a year."},"parent_id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","nullable":true,"description":"Reference to the parent variable compensation, if applicable. Null if this compensation is not linked to any compensation."},"created_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was first created in the system."},"is_amended":{"type":"boolean","example":true,"description":"Shows whether this compensation has been changed as part of an amendment."},"is_deleted":{"type":"boolean","example":true,"description":"Shows whether this compensation has been deleted."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was last updated."},"effective_date":{"type":"string","format":"date-time","example":"2025-10-18T00:00:00.000Z","description":"The date when this compensation starts being valid."},"incentive_plan":{"type":"object","properties":{"details":{"type":"string","example":"Year-end performance bonus based on quarterly targets.","description":"Extra details about the incentive plan, if any."},"employee_signature":{"type":"string","example":"John Doe","description":"The employee’s signature for the incentive plan, if collected."},"employee_signed_at":{"type":"string","format":"date-time","example":"2025-12-15T14:30:00.000Z","description":"The date and time when the employee signed the incentive plan. Empty if not signed."}},"description":"Details of the incentive plan linked to this compensation, if any."}},"description":"Represents a variable compensation record (such as a bonus, commission, or incentive) within a contract. It contains details like the amount, type, frequency, and whether it is part of an incentive plan. The record also tracks when it was created, updated, and whether it has been amended."},"notice_period_time_unit":{"enum":["DAY","WEEK","MONTH",null],"type":"string","example":"WEEK","nullable":true,"description":"Notice period time unit."},"is_effective_date_updated":{"type":"boolean","example":false,"description":"Is Effective Date updated."},"work_schedule_rules_version":{"type":"string","example":"2","nullable":true,"description":"Work schedule rule version."},"notice_period_after_probation":{"type":"string","example":"30","nullable":true,"description":"Notice period after probation."},"notice_period_during_probation":{"type":"string","example":"15","nullable":true,"description":"Notice period during probation."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"STANDARD","nullable":true,"description":"Type of probation period for definite contracts."}}}}}}},"description":"Amendment info"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"FORBIDDEN"},"message":{"type":"string","example":"You do not have permission to perform this action"}}}}}},"example":{"errors":[{"code":"FORBIDDEN","message":"You do not have permission to perform this action"}]}}},"description":"Forbidden. The caller does not have permission to perform this action."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"RESOURCE_NOT_FOUND","description":"Unique error code identifying the type of not-found error."},"field":{"type":"string","example":"contract_id","nullable":true,"description":"The field or identifier that caused the error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}},"examples":{"Contract Not Found":{"value":{"errors":[{"code":"CONTRACT_NOT_FOUND","field":"contract_id","message":"Contract not found."}]},"summary":"When a contract cannot be located"},"Amendment Not Found":{"value":{"errors":[{"code":"AMENDMENT_NOT_FOUND","field":"amendment_flow_id","message":"Amendment not found."}]},"summary":"When an amendment cannot be located"}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"409":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"CHANGE_REQUEST_CONFIRMED"},"field":{"type":"string","example":"change_request_id"},"details":{"type":"object","additionalProperties":true},"message":{"type":"string","example":"Change request is already confirmed."}}}}}},"example":{"errors":[{"code":"CHANGE_REQUEST_CONFIRMED","field":"change_request_id","message":"Change request is already confirmed."}]}}},"description":"Conflict error. Indicates that the requested operation conflicts with the current state of the resource."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ITEM_VALIDATION_FAILED","description":"Unique error code identifying the type of error."},"field":{"type":"string","example":"holidays","nullable":true,"description":"The field where the error occurred (if applicable)."},"details":{"type":"object","example":{"new_value":"2","previous_value":"6"},"properties":{"new_value":{"type":"string","example":"2","description":"The new value that caused the validation error."},"previous_value":{"type":"string","example":"6","description":"The previous valid value before the attempted change."}},"description":"Additional structured details about the error."},"message":{"type":"string","example":"The minimum holidays for NG is 6 day(s)","description":"Human-readable description of the error."}}},"description":"List of validation or business rule errors."}}},"examples":{"Multiple Validation Errors":{"value":{"errors":[{"code":"AMENDMENT_ITEM_VALIDATION_FAILED","field":"holidays","details":{"new_value":"2","previous_value":"6"},"message":"The minimum holidays for NG is 6 day(s) (previous: 6, new: 2)"},{"code":"AMENDMENT_ITEM_DISABLED","field":"salary_increase","details":{"new_value":"20000","previous_value":"10000"},"message":"salary_increase is disabled in country United States"}]},"summary":"Two errors in one response"},"Single Disabled Data point Error":{"value":{"errors":[{"code":"AMENDMENT_ITEM_DISABLED","field":"salary","message":"salary is not enabled for white label API"}]},"summary":"Example with one disabled data point error for whitelabel API"}}}},"description":"Validation errors or disabled amendments."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"3w6pd6r","required":true,"description":"The unique identifier of the EOR worker contract"}],"description":"Creates a new amendment for an existing EOR contract, supporting changes to terms such as salary, currency, effective date, and other contract conditions. All requests are validated against applicable business and regulatory rules before the amendment is accepted.\n\n **Token scopes**: `contracts:write`","operationId":"createAnEorContractAmendment-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"scope":{"type":"string","example":"Project scope details","maxLength":20000,"description":"Scope of the amendment."},"custom":{"type":"array","items":{"type":"object","required":["description","type"],"properties":{"id":{"type":"string","format":"uuid","example":"21baf29c-4468-435d-93a4-f1bd76dd2d65","description":"An optional identifier for the custom object."},"type":{"type":"string","example":"START_DATE","description":"The type of the custom object. Must be one of the valid custom types."},"description":{"type":"string","example":"Please change the start date to 20th November 2025","maxLength":1000,"minLength":50,"description":"A required description for the custom object."}}},"description":"An optional array of custom objects."},"salary":{"type":"number","example":50000,"description":"Salary for the amendment."},"end_date":{"type":"string","format":"date","example":"2023-12-31","description":"End date of the employment."},"holidays":{"type":"number","example":20,"description":"Number of holidays."},"job_title":{"type":"string","example":"Software Engineer","maxLength":1000,"description":"Job title associated with the amendment."},"start_date":{"type":"string","format":"date","example":"2023-01-01","description":"Start date of the employment."},"hourly_rate":{"type":"number","example":50000,"description":"Hourly rate of the amendment. The max value supported is 1e19"},"seniority_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Public Id of the seniority level."},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","description":"Type of time off."},"effective_date":{"type":"string","format":"date","example":"2023-01-01","description":"Effective date for the amendment."},"seniority_date":{"type":"string","format":"date","example":"2023-01-01","nullable":true,"description":"The seniority date represents the employee’s original start date with a previous employer. It is used to preserve employment tenure when the employee transfers to this company. Can be null if not applicable."},"additional_info":{"type":"object","example":{"ai_scope_check_public_id":"ecf930fe-d9be-412c-9345-61dd80dc6822","job_categorization_log_id":"550e8400-e29b-41d4-a716-446655440000"},"nullable":true,"properties":{"ai_scope_check_public_id":{"type":"string","format":"uuid","example":"ecf930fe-d9be-412c-9345-61dd80dc6822","description":"Identifier or flag for AI scope validation check"},"job_categorization_log_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Identifier for job categorisation log"}},"description":"Additional metadata related to job validation and categorisation"},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Type of employment."},"employment_state":{"type":"string","example":"Active","description":"State of employment."},"probation_period":{"type":"number","example":3,"description":"Duration of the probation period."},"fixed_adjustments":{"type":"array","items":{"type":"object","required":["value","description","is_recurring"],"properties":{"id":{"type":"string","example":"cmfo0hqd5bw00cqs1b1jd7eag","description":"The ID of an existing active fixed adjustment to update or delete. Include this in the request only if you are updating or deleting an existing adjustment. Do not include it when creating a new one."},"value":{"type":"string","example":"1200.50","pattern":"^(?!0+(\\.0+)?$)\\d+(?:\\.\\d+)?$","description":"Value of the fixed adjustment. Must be a positive number, not zero."},"is_deleted":{"type":"boolean","example":false,"description":"Flag to mark the fixed adjustment as deleted. Required only when the fixed adjustment needs to be removed; omit it otherwise."},"description":{"type":"string","example":"Housing allowance for employee relocation","maxLength":256,"minLength":1,"description":"Description of the fixed adjustment."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the fixed adjustment is recurring. If set to false, it will be treated as a one-time fixed allowance."}}},"description":"Array of fixed adjustments to be submitted for the amendment request."},"notice_period_type":{"enum":["STANDARD","CUSTOM"],"type":"string","example":"CUSTOM","description":"Type of notice period."},"work_hours_per_week":{"type":"number","example":40,"description":"Number of work hours per week."},"variable_compensation":{"type":"object","required":["amount","type"],"properties":{"id":{"type":"string","example":"9cmfo0hqd5bw00cqs1b1jd7eag","description":"The ID of an existing active variable compensation to update or delete. Include this in the request only if you are updating or deleting an existing compensation. Do not include it when creating a new one."},"type":{"enum":["PERCENTAGE","FIXED"],"type":"string","example":"PERCENTAGE","description":"Type of variable compensation."},"title":{"type":"string","example":"Performance Bonus","maxLength":250,"minLength":1,"description":"The title of the compensation. Required when creating a new compensation. Optional when updating an existing compensation."},"amount":{"type":"number","format":"double","example":5000.75,"minimum":0,"description":"Positive amount for the variable compensation."},"timeline":{"enum":["MONTHLY","QUARTERLY","ANNUALLY","BIANNUALLY"],"type":"string","example":"ANNUALLY","description":"How often this compensation occurs. Required when creating a new compensation. Forbidden when updating an existing compensation."},"is_deleted":{"type":"boolean","example":false,"description":"Flag to mark the variable compensation as deleted. Required only when the variable compensation needs to be removed; omit it otherwise"},"effective_date":{"type":"string","format":"date","example":"2025-01-01","description":"The date when this compensation starts or becomes effective. Required when creating a new compensation. Optional when updating an existing compensation."}},"description":"Represents a change to an employee’s variable compensation (e.g., bonus or commission). This schema is used for creating new variable compensation items or updating existing ones. Some fields are required when creating, optional when updating, and forbidden when updating, as specified in each field description."},"notice_period_after_probation":{"type":"number","example":4,"description":"Notice period after probation."},"notice_period_during_probation":{"type":"number","example":2,"description":"Notice period during probation."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM"],"type":"string","example":"STANDARD","description":"Type of probation period for definite contracts."}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/ats/teams":{"get":{"path":"/rest/ats/teams","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS teams","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","organization_id","name","created_at","updated_at","department_teams"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the team"},"name":{"type":"string","example":"Engineering Team","description":"Name of the team"},"created_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","description":"Timestamp when the team was created"},"updated_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","description":"Timestamp when the team was last updated"},"organization_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the organization","x-sensitive-employment":true},"department_teams":{"type":"array","items":{"type":"object","required":["id","department"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the department-team relationship"},"department":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the department"},"name":{"type":"string","example":"Engineering","description":"Name of the department"}}}}},"description":"Array of department-team relationships","x-sensitive-employment":true},"richtext_description":{"type":"string","example":"<p>This is a team description.</p>","description":"Rich text description of the team","x-sensitive-employment":true}}},"description":"Page of resources."},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more teams available"},"next_cursor":{"type":"string","example":"cursor123","nullable":true,"description":"Cursor for pagination to get the next set of results"},"total_count":{"type":"integer","format":"int32","example":100,"minimum":0,"description":"Total number of teams available"}}}}},"description":"Successful response with teams data"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"cursorValue","description":"The cursor for pagination"},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1},"example":50,"description":"Maximum number of records returned in one response"}],"description":"Retrieves a list of all teams in the Applicant Tracking System\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfAtsTeams-v2026-06-24","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/payroll-groups":{"get":{"path":"/rest/payroll-groups","tags":["Global Payroll"],"method":"get","summary":"List payroll groups for a legal entity","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","is_active","regular_cycle_cadence","calendars"],"properties":{"id":{"type":"string","example":"019ed109-aff0-777c-a0bc-b24e9f5eb6df","description":"Unique identifier of the payroll group."},"name":{"type":"string","example":"Monthly Payroll","description":"Human-readable name of the payroll group."},"calendars":{"type":"array","items":{"type":"object","required":["id","calendar_type","values"],"properties":{"id":{"type":"string","example":"019ed109-b234-777c-a0bd-54060d27425a","description":"Unique identifier of the calendar."},"values":{"type":"object","example":{"START":{"value":"2026-01-01T00:00:00.000Z"},"SALARY_PAY":{"value":"2026-01-31T00:00:00.000Z"}},"description":"Map of calendar event keys (e.g. START, SALARY_PAY) to their scheduled date-time values.","additionalProperties":{"type":"object","required":["value"],"properties":{"value":{"type":"string","example":"2026-01-01T00:00:00.000Z","description":"ISO-8601 date-time value for this calendar key."}}}},"calendar_type":{"type":"string","example":"REGULAR","description":"Type of the calendar, e.g. REGULAR."}}},"description":"REGULAR calendars for this group within the requested year."},"is_active":{"type":"boolean","example":true,"description":"Whether the payroll group is currently active."},"regular_cycle_cadence":{"enum":["WEEKLY","BIWEEKLY","MONTHLY","BIMONTHLY","FOUR_WEEKLY","QUARTERLY"],"type":"string","example":"MONTHLY","description":"Frequency at which regular payroll cycles are run for this group."}}}},"pagination":{"type":"object","required":["nextCursor","limit","hasMore"],"properties":{"limit":{"type":"integer","example":10,"maximum":9007199254740991,"minimum":1,"description":"Maximum number of items returned in this page."},"hasMore":{"type":"boolean","example":false,"description":"Whether additional pages exist after this one."},"nextCursor":{"type":"string","example":"Mg==","nullable":true,"description":"Opaque cursor for the next page, or null when there are no more results."}}}}}}},"description":"OK"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["defined","code","status","message"],"properties":{"code":{"type":"string"},"data":{},"status":{"type":"number"},"defined":{"enum":[true,false],"type":"boolean"},"message":{"type":"string","default":"The caller is not authorized to access this legal entity."}}}}},"description":"403"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["defined","code","status","message"],"properties":{"code":{"type":"string"},"data":{},"status":{"type":"number"},"defined":{"enum":[true,false],"type":"boolean"},"message":{"type":"string","default":"Legal entity not found."}}}}},"description":"404"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["defined","code","status","message"],"properties":{"code":{"type":"string"},"data":{},"status":{"type":"number"},"defined":{"enum":[true,false],"type":"boolean"},"message":{"type":"string","default":"Unable to retrieve payroll groups from upstream."}}}}},"description":"500"}},"parameters":[{"in":"query","name":"legalEntityId","schema":{"type":"string","format":"uuid"},"example":"3fe30c6d-e07a-471e-ac9d-9b5e03a78925","required":true,"description":"Public UUID of the legal entity whose payroll groups to retrieve.","allowReserved":true,"allowEmptyValue":true},{"in":"query","name":"calendarYear","schema":{"type":"integer","maximum":2035,"minimum":2020},"example":2026,"required":false,"description":"Calendar year to filter payroll cycles by. Defaults to the current year.","allowReserved":true,"allowEmptyValue":true},{"in":"query","name":"includePayrollCalendar","schema":{"type":"boolean","default":true},"example":true,"required":false,"description":"Whether to include REGULAR payroll calendars for each group. Defaults to true. Set to false to skip calendar fetching for a faster response.","allowReserved":true,"allowEmptyValue":true},{"in":"query","name":"pagination","style":"deepObject","schema":{"type":"object","default":{"limit":10},"properties":{"limit":{"type":"integer","default":10,"maximum":15,"minimum":1},"cursor":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","maxLength":256,"minLength":1}}},"example":{"limit":10},"explode":true,"required":false,"description":"Cursor-based pagination parameters. limit: max items per page (1-15, default 10). cursor: opaque string from the previous response's pagination.nextCursor field.","allowReserved":true,"allowEmptyValue":true}],"description":"Returns payroll groups and their associated REGULAR calendars for the specified legal entity. Defaults to the current year; pass `calendarYear` to retrieve a specific year.\n\n **Token scopes**: `global-payroll:read`","operationId":"listPayrollGroups-v2026-09-08","security":[{"deelToken":[]},{"oauth2":["global-payroll:read"]}]}},"/eor/additional-costs/{country}":{"get":{"path":"/rest/eor/additional-costs/{country}","tags":["EOR"],"method":"get","summary":"Get EOR Additional Costs","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"allowances":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Work Equipment (Laptop) Allowance","description":"Allowance name."},"value":{"type":"number","example":200,"description":"Allowance value."},"optional":{"type":"boolean","example":false,"description":"Indicates if the allowance is optional."},"description":{"type":"string","example":"Work Equipment (Laptop) Allowance","description":"Allowance description."},"is_recurring":{"type":"boolean","example":false,"description":"Indicates if the allowance is recurring."},"rule_cost_id":{"type":"string","example":"6a53aa10-0507-4eea-8411-9f8b392e8d3b","description":"Unique identifier for the allowance."},"use_contract_currency":{"type":"boolean","example":true,"description":"Indicates if the allowance uses the contract currency."},"skipping_confirmation_text":{"type":"string","example":"I confirm I already provided or will provide a laptop to this EOR employee through other means and would like to opt out of the work equipment allowance","nullable":true,"description":"Confirmation text for opting out of the allowance."}}}},"non_statutory":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Health ans Safety Training","description":"Allowance name."},"value":{"type":"number","example":7,"description":"Allowance value."},"currency":{"type":"string","example":"USD","description":"Currency"},"description":{"type":"string","example":"Health ans Safety Training Fee","description":"Allowance description."},"is_recurring":{"type":"boolean","example":true,"description":"Indicates if the allowance is recurring."},"rule_cost_id":{"type":"string","example":"ee0fe685-25e4-443a-99ec-e8112345c123","description":"Unique identifier for the allowance."},"use_contract_currency":{"type":"boolean","example":true,"description":"Indicates if the allowance uses the contract currency."}}}}}}}},"examples":{"success":{"value":{"data":{"allowances":[{"name":"Work Equipment (Laptop) Allowance","value":6000,"optional":true,"description":"Work Equipment (Laptop) Allowance","is_recurring":false,"rule_cost_id":"6a53aa10-0507-4eea-8411-9f8b392e8d3b","use_contract_currency":true,"skipping_confirmation_text":"I confirm I already provided or will provide a laptop to this EOR employee through other means and would like to opt out of the work equipment allowance"}],"nonStatutory":[{"name":"Example","value":80,"currency":"USD","description":"Example","is_recurring":false,"rule_cost_id":"ee0fe685-25e4-443a-99ec-e8112345c123","use_contract_currency":true}]}},"summary":"Example of a successful response."}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"country","schema":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2},"example":"US","required":true,"description":"The two-letter ISO code of the country for which to retrieve the EOR additional costs."}],"description":"Returns the allowances and non-statutory additional costs available for inclusion in an EOR contract quote for the specified country.\n\n **Token scopes**: `contracts:read`","operationId":"getEorAdditionalCosts-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/contracts/{contract_id}/invite":{"get":{"path":"/rest/contracts/{contract_id}/invite","tags":["Contracts"],"method":"get","summary":"Get worker invite link","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"string"}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"locale","schema":{"type":"string","pattern":"^[a-z]{2,5}$","maxLength":5,"minLength":2,"description":"Country code in ISO Alpha-2 format (lowercase)."},"example":"de","description":"Locale to use for the invite link."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Retrieves the signing invitation link generated for the worker on a contract, with optional localization via the `locale` parameter.\n\n **Token scopes**: `contracts:read`","operationId":"getWorkerInviteLink-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/contracts/{contract_id}/custom_fields":{"get":{"path":"/rest/contracts/{contract_id}/custom_fields","tags":["Custom Fields"],"method":"get","summary":"Retrieve custom fields for a contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","type","data"],"properties":{"id":{"type":"string","format":"uuid","description":"UUID for the custom field value"},"data":{"anyOf":[{"type":"object","properties":{"value":{"type":"string"}},"description":"Text type"},{"type":"object","properties":{"value":{"type":"number"}},"description":"Number type"},{"type":"object","properties":{"value":{"type":"string","format":"date","example":"2021-01-01"}},"description":"Date type: YYYY-MM-DD"},{"type":"object","properties":{"text":{"type":"string","example":"10%"},"value":{"type":"number"}},"description":"Percentage type"},{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string","example":["USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","SEK","NZD","BRL"],"description":"The currency code in ISO 4217 format"}},"description":"Currency type"},{"type":"object","properties":{"option":{"type":"string"}},"description":"List type"},{"type":"object","properties":{"options":{"type":"array","items":{"type":"string"},"uniqueItems":true}},"description":"Multiselect type"}]},"name":{"type":"string","description":"Name of the custom field"},"type":{"enum":["text","number","currency","date","percentage","list","multiselect"],"type":"string","description":"Type of the custom field"}}}}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"description":"Custom fields Not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Contract Id"}],"description":"Returns all custom fields associated with the specified contract.\n\n **Token scopes**: `contracts:read`","operationId":"retrieveCustomFieldsForAContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]},"put":{"path":"/rest/contracts/{contract_id}/custom_fields","tags":["Custom Fields"],"method":"put","summary":"Update custom field value","responses":{"200":{"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"description":"Not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"3rwx9gw","required":true,"description":"Contract id."}],"description":"Creates or updates custom field values on the specified contract. This is a full replacement operation — any custom field values not included in the request body will be removed.\n\n **Token scopes**: `contracts:write`","operationId":"UpsertCustomFieldValueFromContracts-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","data"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"UUID for the custom field value"},"data":{"anyOf":[{"type":"object","properties":{"value":{"type":"string","example":"text"}},"description":"Text type"},{"type":"object","properties":{"value":{"type":"number","example":1}},"description":"Number type"},{"type":"object","properties":{"value":{"type":"string","format":"date","example":"2021-01-01"}},"description":"Date type: YYYY-MM-DD"},{"type":"object","properties":{"value":{"type":"number","example":1}},"description":"Percentage type"},{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string","example":["USD","EUR","JPY","GBP","AUD","CAD","CHF","CNY","SEK","NZD","BRL"],"pattern":"^[A-Z]{3}$","description":"Important: When currency type is fixed, the currency field is ignored. "}},"description":"Currency type"},{"type":"object","properties":{"option":{"type":"string","example":"option"}},"description":"List type"},{"type":"object","properties":{"options":{"type":"array","items":{"type":"string","example":["option1","option2"]},"uniqueItems":true}},"description":"Multiselect type"}]}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/eor/workers/contracts/{contract_id}/additional-information":{"post":{"path":"/rest/eor/workers/contracts/{contract_id}/additional-information","tags":["EOR"],"method":"post","summary":"Add additional information","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"type":"boolean","example":true,"description":"Indicates if contract was updated"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"MISSING_REQUIRED_FIELD","description":"Present for country-specific additional field validation errors."},"field":{"type":"string","example":"dob","description":"Field key for additional field validation errors. May refer to an internal key; use translations when present."},"message":{"type":"string","example":"Required profile related additional fields are missing."}},"additionalProperties":true},"minItems":1},"translations":{"type":"array","items":{"type":"object","required":["publicApiKey","originalKey"],"properties":{"originalKey":{"type":"string","example":"dateOfBirth"},"publicApiKey":{"type":"string","example":"dob"}}},"description":"Present when additional fields fail validation, to map internal field keys back to public API keys."}},"additionalProperties":true}}},"description":"Bad request. Contract not found, contract is not EOR, required base fields are missing, or country-specific additional field validation failed."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Authentication required. Please provide a valid access token."}}},"minItems":1}}}}},"description":"Authentication failed. Bearer token is missing, expired, or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"You do not have permission to access this resource."}}},"minItems":1}}}}},"description":"Forbidden. The token lacks worker:write scope or the worker cannot update this contract."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Additional info template not found"}}},"minItems":1}}}}},"description":"Not found. No additional information template exists for the employment country/state."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Too many requests. Please retry after some time."}}},"minItems":1}}}}},"description":"Rate limit exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Something went wrong"}}},"minItems":1}},"additionalProperties":true}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Adds supplemental information fields to an EOR employee's contract record.\n\n **Token scopes**: `worker:write`","operationId":"addAdditionalInformation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["tax_residence","phone","street","city","zip_code","is_payslip_access_allowed","is_compliance_access_allowed"],"properties":{"city":{"type":"string","example":"New York","description":"City"},"phone":{"type":"string","example":"+1-555-123-4567","description":"Worker phone"},"state":{"type":"string","example":"NY","description":"State/province (required for countries with provinces/states)."},"street":{"type":"string","example":"123 Main St","description":"Street"},"zip_code":{"type":"string","example":"10001","description":"Zipcode/Post code"},"tax_residence":{"type":"string","example":"US","description":"Worker tax residence"},"is_payslip_access_allowed":{"type":"boolean","example":true,"description":"Worker access to payslips"},"is_compliance_access_allowed":{"type":"boolean","example":true,"description":"Worker access to compliance documents"}},"description":"Additional fields are country/state-specific and validated against the worker additional fields form for the employment country.","additionalProperties":{}}}}}},"description":"Add additional information for an EOR employee."},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]},"patch":{"path":"/rest/eor/workers/contracts/{contract_id}/additional-information","tags":["EOR"],"method":"patch","summary":"Update additional information","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"type":"boolean","example":true,"description":"Indicates if contract was updated"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"MISSING_REQUIRED_FIELD"},"field":{"type":"string","example":"tax_residence"},"message":{"type":"string","example":"Contract not found"}},"additionalProperties":true},"minItems":1}},"additionalProperties":true}}},"description":"Bad request. Contract not found, contract is not EOR, or additional information validation failed."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Authentication required. Please provide a valid access token."}}},"minItems":1}}}}},"description":"Authentication failed. Bearer token is missing, expired, or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"You do not have permission to access this resource."}}},"minItems":1}}}}},"description":"Forbidden. The token lacks worker:write scope or the worker cannot update this contract."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Additional info template not found"}}},"minItems":1}}}}},"description":"Not found. No additional info template exists for the employment country/state."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Too many requests. Please retry after some time."}}},"minItems":1}}}}},"description":"Rate limit exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Something went wrong"}}},"minItems":1}},"additionalProperties":true}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","example":"37nex2x"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Partially updates the additional information on an EOR employee agreement. This operation is only permitted when the contract status is `new`, `under_review`, or `waiting_for_employee_contract`; invoking it with any other status will result in an error.\n\n **Token scopes**: `worker:write`","operationId":"updateAdditionalInformation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"dob":{"type":"string","example":"1990-01-01","description":"Date of birth (ISO 8601 date)"},"city":{"type":"string","example":"New York","description":"City"},"phone":{"type":"string","example":"+1-555-123-4567","description":"Worker phone"},"state":{"type":"string","example":"NY","description":"State/province"},"street":{"type":"string","example":"123 Main St","description":"Street"},"zip_code":{"type":"string","example":"10001","description":"Zipcode/Post code"},"tax_residence":{"type":"string","example":"US","description":"Worker tax residence"},"is_payslip_access_allowed":{"type":"boolean","example":true,"description":"Worker access to payslips"},"is_compliance_access_allowed":{"type":"boolean","example":true,"description":"Worker access to compliance documents"}},"description":"You can submit any subset of fields. Keys not listed above are treated as country/state-specific additional information fields. Those keys must match the fields returned by GET /forms/eor/worker-additional-fields/{country_code} (public keys).","additionalProperties":{}}}}}},"required":true,"description":"Patch additional information for an EOR employee contract."},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/groups/{id}":{"patch":{"path":"/rest/groups/{id}","tags":["Groups"],"method":"patch","summary":"Edit a group","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","name":"Walmart","created_at":"2024-03-07T11:42:22.342Z","updated_at":"2024-03-07T11:42:22.342Z","external_metadata":{"showInReport":"true"}}},"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","description":"The unique identifier of the updated group."},"name":{"type":"string","example":"Walmart","description":"The updated name of the group."},"created_at":{"type":"string","format":"date-time","example":"2024-03-07T11:42:22.342Z","description":"The timestamp when the group was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-03-07T11:42:22.342Z","description":"The timestamp when the group was last updated."},"external_metadata":{"type":"object","example":{"showInReport":"true"},"nullable":true,"description":"Extra information of the group."}}}}}}},"description":"Group updated successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"error":{"message":"Invalid payload"}},"properties":{"error":{"type":"object","properties":{"message":{"type":"string","description":"Description of the error."}}}}}}},"description":"Invalid request payload"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","description":"Unique identifier of the group to be edited."},"example":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","required":true,"description":"Unique identifier of the group to be edited."}],"description":"Applies a partial update to an existing group's details. Only fields included in the request body are modified; omitted fields retain their current values.\n\n **Token scopes**: `groups:read`, `groups:write`","operationId":"editGroup-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"Walmart","maxLength":48,"description":"The updated name of the group."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["groups:read","groups:write"]}]},"delete":{"path":"/rest/groups/{id}","tags":["Groups"],"method":"delete","summary":"Delete a group","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"archived_at":"2024-03-07T11:42:22.342Z"}},"properties":{"data":{"type":"object","properties":{"archived_at":{"type":"string","format":"date-time","example":"2024-03-07T11:42:22.342Z","description":"The timestamp when the group was archived."}}}}}}},"description":"Group archived successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"error":{"message":"Group already archived or restriction error message."}},"properties":{"error":{"type":"object","properties":{"message":{"type":"string","description":"Description of the error."}}}}}}},"description":"Bad request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"error":{"message":"Group not found"}},"properties":{"error":{"type":"object","properties":{"message":{"type":"string","description":"Group not found error message."}}}}}}},"description":"Group not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","description":"Unique identifier of the group to be archived."},"example":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","required":true,"description":"Unique identifier of the group to be archived."}],"description":"Soft-deletes a group by archiving it. The group is not permanently removed and the response includes the `archived_at` timestamp reflecting when the archive occurred.\n\n **Token scopes**: `groups:write`","operationId":"deleteGroup-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["groups:write"]}]}},"/eor/workers/contracts/{contract_id}/project-assignment/acknowledge":{"post":{"path":"/rest/eor/workers/contracts/{contract_id}/project-assignment/acknowledge","tags":["EOR"],"method":"post","summary":"Acknowledge assignment agreement","responses":{"204":{"description":"Acknowledged successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"message":{"type":"string","example":"HrisProfile not found for the given contract.","description":"A description of the returned error"}}}}},"description":"Invalid input or HrisProfile not found."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"Contract not found.","description":"A description of the returned error"}}}}},"description":"Contract not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"uuid"},"example":"oz5eyKzb","required":true,"description":"The unique identifier of the EOR contract."}],"description":"Employee acknowledges their assignment agreement as part of project initiation. Ensure all terms in the agreement are reviewed before acknowledgment.\n\n **Token scopes**: `worker:write`","operationId":"acknowledgeAssignmentAgreement-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/eor/job-scopes":{"get":{"path":"/rest/eor/job-scopes","tags":["EOR"],"method":"get","summary":"List of job scope templates for EOR contracts","responses":{"200":{"content":{"application/json":{"schema":{"type":"array","items":{"properties":{"id":{"type":"string","example":"5ad8db95-3791-4e4d-b533-6faed2f5a3d8","description":"Unique identifier for the job scope"},"team":{"type":"object","properties":{"id":{"type":"string","example":null,"nullable":true,"description":"Unique identifier of the associated team, if any"},"name":{"type":"string","example":null,"nullable":true,"description":"Name of the team associated with the job scope, if any"}}},"title":{"type":"string","example":"3D Artist","description":"Title or name of the job scope"},"content":{"type":"string","example":"Lorem ipsum odor amet, consectetuer adipiscing elit. Erat sem morbi imperdiet fringilla proin amet nullam at sollicitudin? Sapien quis ad ut curabitur semper ultricies aptent molestie. Nunc condimentum risus aliquet viverra ridiculus erat dolor purus bibendum. Pellentesque neque ullamcorpsaer felis penatibus consectetur nec. Mus duis nisl commodo dui gravida cursus fermentum cras. Mauris habitant vivamus porttitor; a auctor tristique duis. Fames lobortis vulputate vestibulum dis potenti facilisi, aliquam nisl?d","description":"Detailed description of the job scope"},"personal":{"type":"string","example":null,"nullable":true,"description":"Identifier from the team or the profile, whichever is available"},"created_at":{"type":"string","example":"2025-01-09T18:37:50.516Z","description":"Timestamp of when the job scope was created"},"created_by":{"type":"object","properties":{"id":{"type":"string","example":null,"nullable":true,"description":"Unique identifier of the user who created the job scope"},"name":{"type":"string","example":"John Doe","nullable":true,"description":"Name of the user who created the job scope","x-sensitive-pii":true}}},"updated_at":{"type":"string","example":"2025-01-09T18:37:50.516Z","description":"Timestamp of when the job scope was last updated"},"updated_by":{"type":"object","properties":{"id":{"type":"string","example":"18cd9e12-e9d5-431c-bc51-9211c3e8cabf","nullable":true,"description":"Unique identifier of the user who last updated the job scope"},"name":{"type":"string","example":"John Doe","nullable":true,"description":"Name of the user who last updated the job scope","x-sensitive-pii":true}}},"source_type":{"enum":["MANUAL","AI"],"type":"string","example":"MANUAL","description":"Source of the job scope data"},"organization_id":{"type":"string","example":null,"nullable":true,"description":"Identifier of the associated organization, if any"}}}}}},"description":"Successfull response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"enum":["No organization is linked with the profile","No teams found for this organization"],"type":"string","description":"Error message indicating the missing entity"}}}}},"description":"Not Found - Organization not linked to profile or no teams found for the organization"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"team","schema":{"type":"string"},"example":"team-12345","description":"Team public id"}],"description":"Returns predefined and custom job scope templates available for EOR contracts, optionally filtered to templates belonging to a specific team.\n\n **Token scopes**: `organizations:read`","operationId":"listOfJobScopeTemplatesForEorContracts-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/contracts/{contract_id}/terminations":{"delete":{"path":"/rest/contracts/{contract_id}/terminations","tags":["Terminations"],"method":"delete","summary":"Delete Contract Termination Request","responses":{"204":{"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"3x4kkf4","required":true,"description":"Unique identifier for the contract"}],"description":"Cancels a pending termination request for the specified contract, reverting the contract to its pre-termination state. Only termination requests that have not yet reached their effective date can be cancelled.\n\n **Token scopes**: `contracts:write`","operationId":"deleteContractTerminationRequest-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"post":{"path":"/rest/contracts/{contract_id}/terminations","tags":["Terminations"],"method":"post","summary":"Terminate contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"5f4e1e4e","description":"Contract id"},"completion_date":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Contract completion date"}}}}}}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/completion_date","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"completion_date is required when terminate_now is false or not provided","description":"Human-readable explanation of the error"}}}}}}}},"description":"Validation or business-rule failure. Possible codes: invalid_parameter (Joi schema violation, e.g. missing completion_date when terminate_now is false); contract_not_active (contract is not in an active state and cannot be terminated); invalid_completion_date (completion_date is in the past or otherwise invalid); invalid_termination_reason (termination_reason_id does not exist or is not applicable)."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"unauthorized","description":"Machine-readable error code"},"message":{"type":"string","example":"Authentication required","description":"Human-readable explanation of the error"}}}}}}}},"description":"Missing or invalid bearer token."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"forbidden","description":"Machine-readable error code"},"message":{"type":"string","example":"Permission denied: contracts.terminate required","description":"Human-readable explanation of the error"}}}}}}}},"description":"Caller lacks permission to terminate this contract. Either the caller does not have the contracts.terminate permission, is not a CLIENT profile, or does not have access to the specified contract."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"contract_not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"Contract not found","description":"Human-readable explanation of the error"}}}}}}}},"description":"No active contract was found for the provided contract_id, or the caller does not have access to it."},"409":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"termination_already_requested","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/contract_id","description":"Name of the field causing the conflict"},"message":{"type":"string","example":"A termination request already exists for this contract","description":"Human-readable explanation of the error"}}}}}}}},"description":"A termination request already exists for this contract and cannot be duplicated."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Unhandled server error or downstream service failure during contract termination. The transaction is rolled back and no termination is persisted."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"eq2ykjw","required":true,"description":"The unique identifier of the contractor contract"}],"description":"Initiates termination of an active contract, recording the termination reason, effective date, and any final payment details. Can only be called on contracts that are currently active.\n\n **Token scopes**: `contracts:write`","operationId":"terminateContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"message":{"type":"string","example":"Thank you for your contributions to the project","maxLength":1000,"description":"Optional message to include with the termination"},"terminate_now":{"type":"boolean","default":false,"example":false,"description":"If true, terminates the contract immediately. If false, completion_date is required."},"completion_date":{"type":"string","format":"date","example":"2025-12-31","description":"Contract completion date (YYYY-MM-DD). Required when terminate_now is false or not provided. Since terminate_now defaults to false, this field is required unless you explicitly set terminate_now to true."},"termination_type":{"enum":["RESIGNATION","TERMINATION","END_OF_CONTRACT"],"type":"string","example":"END_OF_CONTRACT","description":"The type of termination. Specifies whether it is a resignation (contractor-initiated), termination (client-initiated), or end of contract (mutual/planned)."},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"YES","description":"Indicates whether the contractor is eligible for rehire in the future."},"termination_reason_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"The UUID of the termination reason. Use GET /contracts/termination-reasons to retrieve the list of available reasons."},"eligible_for_rehire_reason":{"type":"string","example":"Need more time to evaluate contractor's performance on recent deliverables","maxLength":255,"description":"Provides context when eligible_for_rehire is 'DONT_KNOW'. Should be empty or null for other values."},"termination_reason_description":{"type":"string","example":"Project timeline has been accelerated and the deliverables are now complete","maxLength":1000,"description":"Free-form text providing additional context about the termination reason. Can be provided independently without termination_reason_id, or used to add context to a selected reason."}},"description":"Termination data. At minimum, you must provide either terminate_now: true (for immediate termination) OR completion_date (for scheduled termination).","additionalProperties":false}},"additionalProperties":false}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/time_offs/attachments/{attachment_id}/download":{"get":{"path":"/rest/time_offs/attachments/{attachment_id}/download","tags":["Time Off"],"method":"get","summary":"Get time-off attachment download URL","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url"],"properties":{"url":{"type":"string","example":"https://storage.example.com/signed-url","description":"Presigned URL to download the attachment directly from object storage. Valid for a limited time."}}}}}}},"description":"Presigned download URL for the time-off attachment"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Forbidden — caller is not the recipient, direct manager, or an approver for this time off"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Attachment not found or not in the caller's organization"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"attachment_id","schema":{"type":"string","format":"uuid"},"example":"8fbdc1b9-4e9c-46f6-8631-22b65d3711a1","required":true,"description":"Time-off attachment id (the id field from the attachments array in time-off responses)"}],"description":"Returns a short-lived presigned URL to download a time-off attachment. The attachment_id is the id field returned in the attachments array of time-off responses.\n\n **Token scopes**: `time-off:read`","operationId":"getTimeOffAttachmentDownloadUrl-v2026-07-31","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/on-demand-payroll/contract/{contract_id}/entries":{"get":{"path":"/rest/on-demand-payroll/contract/{contract_id}/entries","tags":["On-Demand Payroll"],"method":"get","summary":"List On-Demand Payroll entries","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["contract_id","currency","is_odp_enabled","has_pending_items","entries"],"properties":{"team":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"team_abc123","description":"Public ID of the team."},"name":{"type":"string","example":"Engineering","description":"Name of the team."}},"description":"Team the contract belongs to."},"entries":{"type":"array","items":{"type":"object","required":["amount","currency","title","type","uom","metadata"],"properties":{"uom":{"enum":["CURRENCY"],"type":"string","example":"CURRENCY","description":"Unit of measure of the entry amount. Always CURRENCY."},"type":{"type":"string","example":"BONUS","description":"The adjustment type of the entry."},"title":{"type":"string","example":"Q1 performance bonus","description":"Short human-readable title of the entry."},"amount":{"type":"number","example":150.5,"description":"The entry amount in the contract currency.","x-sensitive-employment":true},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the entry amount."},"metadata":{"type":"object","properties":{"type":{"type":"string","example":"BONUS","description":"The adjustment type of the entry."},"public_id":{"type":"string","example":"adj_abc123","description":"Public ID of the underlying adjustment."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-01-06T10:00:00Z","nullable":true,"description":"Timestamp of the last review of the entry."},"vendor_name":{"type":"string","example":"Acme Inc.","nullable":true,"description":"Vendor associated with the entry, when applicable.","x-sensitive-pii":true},"category_label":{"type":"string","example":"Bonus","nullable":true,"description":"Label of the adjustment category."},"submission_date":{"type":"string","format":"date-time","example":"2026-01-04T09:00:00Z","nullable":true,"description":"Timestamp when the entry was submitted."},"category_group_label":{"type":"string","example":"Compensation","nullable":true,"description":"Label of the adjustment category group."}},"description":"Additional, non-contractual metadata about the entry."},"submitter":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"p_abc123","nullable":true,"description":"Public ID of the submitter, when available."},"name":{"type":"string","example":"John Doe","description":"Full name of the submitter.","x-sensitive-pii":true}},"description":"The person who submitted the entry."},"description":{"type":"string","example":"Bonus awarded for Q1 results","nullable":true,"description":"Free-text description of the entry."},"date_of_entry":{"type":"string","format":"date","example":"2026-01-05","nullable":true,"description":"Date the entry applies to (YYYY-MM-DD). Null when not available for the entry."}},"description":"An On-Demand Payroll entry (an adjustment attached to the ODP)."},"description":"Eligible entries for the contract."},"currency":{"type":"string","example":"EUR","description":"ISO 4217 currency code of the contract."},"job_title":{"type":"string","example":"Software Engineer","nullable":true,"description":"Job title of the employee."},"odp_limit":{"type":"number","example":5000,"description":"Maximum total ODP amount allowed, in the contract currency."},"contract_id":{"type":"string","example":"con_abc123","description":"Public ID (oid) of the contract."},"ongoing_odp":{"type":"object","nullable":true,"properties":{"status":{"enum":["AWAITING_CLIENT_APPROVAL","AWAITING_CLIENT_SUBMISSION","AWAITING_ADJUSTMENTS_TO_BE_READY","AWAITING_DEEL_PROCESSING","DEEL_PROCESSING","REJECTED","CANCELLED","PARTIALLY_APPROVED","APPROVED"],"type":"string","example":"DEEL_PROCESSING","description":"Status of the ongoing ODP."}},"description":"The ongoing ODP for the contract, if one exists."},"employee_name":{"type":"string","example":"Bob Smith","description":"Full name of the employee.","x-sensitive-pii":true},"is_odp_enabled":{"type":"boolean","example":true,"description":"Whether On-Demand Payroll is enabled for the contract."},"has_pending_items":{"type":"boolean","example":false,"description":"Whether the contract has entries in a pending state."},"odp_warning_limit":{"type":"number","example":3000,"description":"Amount above which the client is warned (3x the salary per cycle).","x-sensitive-employment":true},"salary_advance_limit":{"type":"number","example":2500,"description":"Maximum salary advance allowed, in the contract currency.","x-sensitive-employment":true}},"description":"A contract and its entries eligible for On-Demand Payroll."},"description":"List of contracts with their eligible entries."}}}}},"description":"Eligible entries grouped by contract."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Authentication is required or has failed."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"The caller is not allowed to perform this action."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"con_abc123","required":true,"description":"Public ID (oid) of the contract."}],"description":"Lists the adjustments eligible for On-Demand Payroll for the given contract, with the contract eligibility details and limits.\n\n **Token scopes**: `on-demand-payroll:read`","operationId":"listOnDemandPayrollEntries-v2026-07-16","security":[{"deelToken":[]},{"oauth2":["on-demand-payroll:read"]}]}},"/eor/{oid}/terminations/regular":{"post":{"path":"/rest/eor/{oid}/terminations/regular","tags":["EOR"],"method":"post","summary":"Termination Request","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number","format":"float"},"end_date":{"type":"string","format":"date-time","example":"'2025-01-31T00:00:00.000Z'","nullable":true,"description":"The definitive contract end date"},"contract_id":{"type":"string","example":"5B74FnLM","description":"Public contract oid"},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"type":"string","nullable":true},"end_date":{"type":"string","format":"date-time","example":"'2025-01-31T00:00:00.000Z'","nullable":true,"description":"The definitive contract end date"},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request"},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible"},"termination_impact":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","example":"Bad Impact","description":"Termination impact title"},"description":{"type":"string","example":"It will be bad","description":"Termination impact description"}},"description":"Custom termination impact data if there is some configured on HR module"},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again"},"eligible_for_rehire_reason":{"type":"string","example":false,"nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligibleForRehire"},"custom_termination_reason_id":{"type":"number","format":"float","nullable":true,"description":"Custom termination reason ID. A custom termination reason can be added on Client HR module"}}},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible"}}}}},"description":"Ok response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"minItems":1}}},"description":"Unauthorized response"},"403":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"minItems":1}}},"description":"Forbidden response"},"404":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"minItems":1}}},"description":"Not Found response"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"oid","schema":{"type":"string"},"required":true,"description":"Public contract id"}],"description":"Submits a termination request for an EOR contract on behalf of a team member. Callers must hold group admin or people manager permissions.\n\n **Token scopes**: `contracts:read`, `contracts:write`","operationId":"eorTerminationRequest-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["is_employee_notified","used_time_off","reason","reason_detail"],"properties":{"reason":{"enum":["DEEL_COLLECTIONS","STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE_ISSUES","description":"Reason why the contract is being terminated"},"attachments":{"type":"array","items":{"type":"object","required":["key","fileName"],"properties":{"key":{"type":"string"},"file_name":{"type":"string","pattern":"\\.(png|PNG|jpg|JPG|jpeg|JPEG|heic|HEIC|pdf|PDF)$"}}},"description":"Any document that is important for the request to terminate the contract"},"is_sensitive":{"type":"boolean","example":false,"description":"Defines whether the termination is sensitive. In this case, only the person requesting the termination will be able to view the termination, receive emails or notifications."},"reason_detail":{"type":"string","example":"This decision to terminate employment is based on an unsatisfactory level of job performance despite documented efforts to provide support and improvement opportunities.","maxLength":5000,"minLength":100,"description":"Field to better explain how communication with the employee will be and/or their reaction to the communication, or other necessary information"},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"CALENDAR_DAY","policy_type":"Vacation","tracking_periods":[{"used":25,"end_date":"2024-12-31T00:00:00.000Z","start_date":"2024-01-01T00:00:00.000Z"},{"used":30,"end_date":"2023-12-31T00:00:00.000Z","start_date":"2023-01-01T00:00:00.000Z"}],"scheduled_until_end_date":5}],"additional_details":"Any additional details regarding time off that HRX should know","is_deel_pto_confirmed":true},"required":["isDeelPtoConfirmed","timeOffs"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["policyType","unit","trackingPeriods","scheduledUntilEndDate"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR","WEEK","MONTH","YEAR"],"type":"string","description":"Time off unit"},"policy_type":{"enum":["Vacation","Sick leave","Maternity leave","Paternity leave","Parental leave","Bereavement leave","Childcare leave","Civic/public duty leave","Personal leave","Adoption leave","Blood donation leave","Childbirth leave","Disability leave","Doctor's appointment leave","Family & domestic violence leave","Hajj leave","Marriage/wedding leave","Military leave","Moving leave","Pregnancy leave","Study leave","Volunteer leave","Unpaid leave","Paid leave","Other leave","RTT","Regional holiday","Breastfeeding leave","Advanced vacation","Supplementary Leave","Floating Holiday Allowance"],"type":"string","description":"Time off policy type"},"tracking_periods":{"type":"array","items":{"type":"object","required":["startDate","endDate","used"],"properties":{"used":{"type":"number","format":"float","maximum":365,"minimum":0,"description":"Time off used in the period"},"end_date":{"type":"string","format":"date-time","description":"Time off start period"},"start_date":{"type":"string","format":"date-time","description":"Time off end period"}}}},"scheduled_until_end_date":{"type":"number","format":"float","maximum":365,"minimum":0,"description":"Time off escheduled until contract end date"}}},"description":"All time-off used by the employee during contract period"},"additional_details":{"type":"string","nullable":true,"description":"Any additional details regarding time off that HRX should know"},"is_deel_pto_confirmed":{"type":"boolean","description":"Defines whether the client agrees with the time off values ​​that are registered in Deel. If false, it means that the client changed the values."}}},"severance_type":{"enum":["DAYS","WEEKS","MONTHS","CASH"],"type":"string","example":"CASH","description":"The type of severance selected by the client. It's an optional field"},"desired_end_date":{"type":"string","example":"2025-01-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible"},"severance_amount":{"type":"number","format":"float","example":1000,"minimum":0,"description":"The amount of severance needed"},"additional_reason":{"enum":["DISSATISFIED_WITH_DEEL_SERVICE","DISSATISFIED_WITH_DEEL_PRICING","DISSATISFIED_WITH_DEEL_PRODUCT"],"type":"string","example":"DISSATISFIED_WITH_DEEL_PRODUCT","nullable":true,"description":"An additional reason can be provided in case the reason selected is NO_LONGER_WISH_TO_WORK_WITH_DEEL"},"termination_notes":{"type":"array","items":{"type":"string","maxLength":5000},"default":[],"example":["What severance pay, if any, am I entitled to receive upon termination of this contract?","How will accrued vacation time, sick leave, or other paid time off be handled upon termination of this contract?"],"description":"Additional notes can be provided regarding the termination for Deel, like questions and doubts"},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again"},"eor_country_data_id":{"type":"number","format":"float","example":1234,"description":"The current country data id"},"is_employee_notified":{"type":"boolean","example":false,"description":"Defines if employee was informed by client or not before the termination"},"termination_impact_id":{"type":"string","format":"uuid","description":"Termination impact data if there is some configured on HR module"},"additional_country_data":{"type":"array","items":{"type":"object","required":["question","answer"],"properties":{"answer":{"type":"boolean","nullable":true},"question":{"type":"string"}}},"example":[{"answer":false,"question":"Will the employee be released from duties during the notice period?"},{"answer":false,"question":"Is there any discount to apply to the employee?"}],"description":"For some countries some data is needed to help Deel to process the termination. The questions comes from another endpoint to get the additional country data"},"custom_termination_reason_id":{"type":"string","format":"uuid","description":"Custom termination reason ID. A custom termination reason can be added on Client HR module"},"employee_notification_detail":{"type":"string","nullable":true,"maxLength":5000,"minLength":1,"description":"If it's an termination contract ending and employee was already informed, the employee notification details should be provided"},"additional_supporting_documents":{"type":"array","items":{"type":"object","required":["key","fileName"],"properties":{"key":{"type":"string"},"file_name":{"type":"string","pattern":"\\.(png|PNG|jpg|JPG|jpeg|JPEG|heic|HEIC|pdf|PDF)$"}}},"example":[{"key":"qwerqweadcasdfad","file_name":"file-name.pdf"}],"description":"Any proof such as correspondence, documentation of previous warnings or attendance records for the reason select above."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:read","contracts:write"]}]}},"/onboarding/tracker":{"get":{"path":"/rest/onboarding/tracker","tags":["Onboarding"],"method":"get","summary":"List onboarding employees","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"John Doo","description":"The name associated with the onboarding","x-sensitive-pii":true},"contract":{"type":"object","properties":{"id":{"type":"string","example":"PzpYaren","nullable":true,"description":"The unique identifier for the contract. Null for a person without a contract"},"effective_date":{"type":"string","format":"date","example":"2021-07-14","nullable":true,"description":"The effective date of the contract. Null for a person without a contract"}},"description":"The contract associated with the onboarding"},"progress":{"type":"object","properties":{"status":{"type":"string","example":"ONBOARDING_OVERDUE","description":"Current status of the onboarding"},"reference_date":{"oneOf":[{"type":"string","format":"date","example":"2021-07-14","nullable":true,"description":"Date in YYYY-MM-DD format (e.g., 2008-07-01)"},{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Date and time in ISO 8601 format (e.g., 2021-07-14T22:00:00+00:00)"},{"type":"string","example":"","nullable":true,"maxLength":0,"description":"Empty string (or null) when no reference date is available"}],"example":"2021-07-14","description":"The reference date determining the onboarding status"},"people_list_status":{"type":"string","example":"onboarding_overdue","description":"Status of the people list"},"subject_to_overdue":{"type":"boolean","example":true,"description":"Whether the onboarding is subject to overdue"},"onboarding_due_date":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Due date for onboarding"},"reference_date_type":{"type":"string","example":"EFFECTIVE_DATE","nullable":true,"description":"Type of the reference date (e.g., EFFECTIVE_DATE)"},"reference_date_timezone":{"type":"string","example":"Europe/Brussels","nullable":true,"description":"Timezone of the reference date"},"is_action_required_from_client":{"type":"boolean","example":false,"nullable":true,"description":"Whether action is required from the client"}},"description":"The progress state of the onboarding"},"unique_id":{"type":"string","example":"eyJjb250cmFjdE9pZCI6IlB6cFlhcmVuIiwiaGlyaW5nVHlwZSI6ImNvbnRyYWN0b3IiLCJwcm9maWxlSWQiOjE2NzgyMCwidXNlcklkIjoxNDM3ODl9","description":"A unique identifier for the tracker"},"hiring_type":{"type":"string","example":"contractor","description":"The type of hiring (e.g., contractor)"},"hris_profile":{"type":"object","properties":{"oid":{"type":"string","example":"150f635e-fae1-4b9d-9f86-768bbbac3698","description":"The unique identifier for the HRIS profile"},"work_email":{"type":"string","example":"2635e57fe2a571c1aadba2a77f178e2b@test.com","nullable":true,"description":"The work email of the employee","x-sensitive-pii":true}},"description":"The profile associated with the onboarding"},"app_experience":{"type":"object","properties":{"is_minimal_requirements":{"type":"boolean","example":false,"description":"Indicates if the employee meets minimal requirements"}},"description":"The app experience of the employee"}}}},"page":{"type":"object","properties":{"cursor":{"type":"string","example":"eyJsaW1pdCI6MiwicGFnaW5hdGlvbiI6eyJwcm9ncmVzc1N0YXR1c1dlaWdodCI6MSwicmVmZXJlbmNlRGF0ZSI6IjIwMjEtMDctMThUMjI6MDA6MDArMDA6MDAiLCJlZmZlY3RpdmVEYXRlIjoiMjAyMS0wNy0xOFQyMjowMDowMCswMDowMCIsImNvbnRyYWN0SWQiOiJONzZsWHdreiJ9LCJzb3J0T3JkZXIiOiJBU0MifQ","nullable":true,"description":"Cursor for pagination"},"total_rows":{"type":"integer","example":86,"description":"Total number of onboarding"}}}}}}},"description":"A list of onboarding and their details"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Invalid query parameters","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"GET","description":"Method of the API"},"status":{"type":"number","example":400,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Bad Request - Validation error or invalid parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"search","schema":{"type":"string"},"example":"John Doe","required":false,"description":"Search term to filter contracts by name or other attributes"},{"in":"query","name":"contractOid","style":"form","schema":{"type":"array","items":{"type":"string","description":"Contract OID"},"default":[]},"example":["OMD123","67E890"],"explode":true,"required":false,"description":"Search attribute to filter onboarding list by contract id"},{"in":"query","name":"hiringTypes","style":"form","schema":{"type":"array","items":{"enum":["contractor","employee"],"type":"string","description":"Hiring type (e.g., contractor, employee)"},"default":[]},"example":["contractor"],"explode":true,"required":false,"description":"Search attribute to filter onboarding list by hiring type"},{"in":"query","name":"progressStatuses","style":"form","schema":{"type":"array","items":{"enum":["ACTIVE","INACTIVE","ONBOARDING"],"type":"string","description":"Progress status of the contract"},"default":[]},"example":["ACTIVE"],"explode":true,"required":false,"description":"Search attribute to filter onboarding list by progress status"},{"in":"query","name":"countries","style":"form","schema":{"type":"array","items":{"type":"string","description":"Country filter"},"default":[]},"example":["USA","Canada"],"explode":true,"required":false,"description":"Search attribute to filter onboarding list by country"},{"in":"query","name":"teams","style":"form","schema":{"type":"array","items":{"type":"string","description":"Team ID"},"default":[]},"example":["c64c6715-e0ca-4ff0-aa53-d4c0db499360"],"explode":true,"required":false,"description":"Search attribute to filter onboarding list by team"},{"in":"query","name":"legalEntities","style":"form","schema":{"type":"array","items":{"type":"string","description":"Legal entity ID"},"default":[]},"example":["c64c6715-e0ca-4ff0-aa53-d4c0db499360"],"explode":true,"required":false,"description":"Search attribute to filter onboarding list by legal entity"},{"in":"query","name":"hrisDirectManagers","style":"form","schema":{"type":"array","items":{"type":"string","description":"HRIS Direct Manager ID"},"default":[]},"example":["c64c6715-e0ca-4ff0-aa53-d4c0db499360"],"explode":true,"required":false,"description":"Search attribute to filter onboarding list by HRIS direct manager"},{"in":"query","name":"fromDate","schema":{"type":"string","format":"date-time"},"example":"2024-01-01T00:00:00Z","required":false,"description":"Start date for filtering contracts"},{"in":"query","name":"toDate","schema":{"type":"string","format":"date-time"},"example":"2024-12-31T23:59:59Z","required":false,"description":"End date for filtering contracts"},{"in":"query","name":"actions","style":"form","schema":{"type":"array","items":{"enum":["ONBOARD","COMPLETE","PAUSE"],"type":"string"},"default":[]},"example":["ONBOARD","COMPLETE"],"explode":true,"required":false,"description":"Onboarding actions"},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":200,"minimum":1},"example":20,"required":false,"description":"Number of results to return per page"},{"in":"query","name":"sort_by","schema":{"enum":["progressStatusWeight"],"type":"string","default":"progressStatusWeight"},"example":"progressStatusWeight","required":false,"description":"Field to sort by"},{"in":"query","name":"sort_order","schema":{"enum":["ASC","DESC"],"type":"string","default":"ASC"},"example":"DESC","required":false,"description":"Sorting order"},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJwYWdlIjoiMTIwIiwiY3JlYXRlZF9hdCI6IjIwMjYtMDItMDIgMDU6MzQ6MjUuNjM1Mjg2In0=","required":false,"description":"Cursor for pagination"},{"in":"query","name":"include_overview","schema":{"type":"boolean","default":false},"example":false,"required":false,"description":"Include an overview of the contract"}],"description":"Returns a list of workers currently going through onboarding, including contract details, HRIS profile information, current onboarding status, and onboarding due dates. Supports cursor-based pagination.\n\n **Token scopes**: `contracts:read`, `people:read`","operationId":"listOnboardingEmployees-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/lookups/time-off-types":{"get":{"path":"/rest/lookups/time-off-types","tags":["Lookups"],"method":"get","summary":"Retrieve Time-Off Types","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"enum":["VACATION","SICK_LEAVE","OTHER","UNPAID_LEAVE"],"type":"string","description":"Predefined time-off types. Possible values include 'VACATION', 'SICK_LEAVE', 'UNPAID_LEAVE'  and 'OTHER'."},"example":["VACATION","SICK_LEAVE","OTHER","UNPAID_LEAVE"],"description":"List of predefined time-off types supported by the Deel platform."}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Error message describing what went wrong."}}},"example":[{"message":"Not found"}],"description":"Array of error objects containing error messages."}}}}},"description":"Resource not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns the predefined time-off types available for registration on the platform.","operationId":"retrieveTimeOffTypes-v2026-01-01","security":[{"deelToken":[]},{"oauth2":[]}]}},"/contracts/{contract_id}/timesheets/presets":{"get":{"path":"/rest/contracts/{contract_id}/timesheets/presets","tags":["Projects"],"method":"get","summary":"Get Hourly Report Presets","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","title","description","rate","hourly_report_root_preset"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The unique identifier of the hourly report preset"},"file":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The unique identifier of the file"},"name":{"type":"string","example":"your_file_name","description":"The name of the file"},"type":{"type":"string","example":"pdf","description":"The type of the file"}},"description":"File attached to this hourly report preset, if any."},"rate":{"type":"number","example":75.5,"description":"The hourly rate for this preset"},"title":{"type":"string","example":"Monthly Hours Summary","description":"Title of the hourly report preset."},"description":{"type":"string","example":"Monthly timesheet template for tracking billable hours","description":"Detailed description of the hourly report preset"},"hourly_report_root_preset":{"type":"object","required":["id","title","description"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The unique identifier of the root preset"},"file":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The unique identifier of the file"},"name":{"type":"string","example":"your_file_name","description":"The name of the file"},"type":{"type":"string","example":"pdf","description":"The type of the file"}},"description":"File attached to this root preset, if any."},"type":{"enum":["RATE","TRACKING"],"type":"string","example":"RATE","description":"The type of preset based on type of root preset"},"title":{"type":"string","example":"Standard Monthly Template","description":"The title of the root preset template"},"description":{"type":"string","example":"Base template for monthly timesheet reporting","nullable":true,"description":"Detailed description of the root preset template"}},"description":"Root preset this hourly report preset is based on."}}},"description":"List of hourly report presets matching the requested filters."},"page":{"type":"object","required":["cursor","total_rows"],"properties":{"cursor":{"type":"string","example":"next_page_token_123","description":"Pagination cursor for fetching the next set of results"},"total_rows":{"type":"integer","example":100,"description":"Total number of rows available in the result set"}},"description":"Pagination metadata for the response."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","message":"\"work_statement_id\" must be a valid identifier"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"\"work_statement_id\" must be a valid identifier","description":"Human-readable description of the validation error."}}},"description":"Validation errors describing why the hourly report presets could not be listed."}}}}},"description":"Bad Request - The contract_id or work_statement_id parameter failed validation."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"FORBIDDEN","message":"Forbidden. The request was valid, but the server is refusing action."}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"FORBIDDEN","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Forbidden. The request was valid, but the server is refusing action.","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why the hourly report presets could not be accessed."}}}}},"description":"Forbidden - The requester does not have read access to the associated contract."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"Contract edits cannot be found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Contract edits cannot be found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the presets could not be listed, such as the contract having no active work statement or the specified work_statement_id not belonging to it."}}}}},"description":"Not Found - No matching work statement could be found for this contract."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the hourly report presets cannot be listed."}}}}},"description":"Internal Server Error - The hourly report presets could not be listed due to an unexpected upstream or internal failure."}},"parameters":[{"in":"query","name":"work_statement_id","schema":{"type":"string","format":"uuid"},"example":"00000000-0000-0000-0000-000000000000","required":false,"description":"ID of the work statement (optional)"},{"in":"query","name":"order_by","schema":{"type":"string","default":"title"},"example":"title","required":false,"description":"Field to order results by (title or created_at)"},{"in":"query","name":"order_direction","schema":{"type":"string","default":"ASC"},"example":"ASC","required":false,"description":"Direction of ordering (ASC or DESC)"},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"next_page_token_123","required":false,"description":"Pagination cursor for fetching next set of results"},{"in":"query","name":"limit","schema":{"type":"integer","default":100,"maximum":100,"minimum":1},"example":100,"required":false,"description":"Number of results to return per page"},{"in":"path","name":"contract_id","schema":{"type":"string","format":"uuid"},"example":"abcdefg","required":true,"description":"ID of the Deel contract"}],"description":"Returns saved hourly report presets for the specified contract, optionally scoped to a work statement. Results support cursor-based pagination and can be ordered by title or creation date.\n\n **Token scopes**: `timesheets:read`","operationId":"getHourlyReportPresets-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]}},"/refund-statements/{refund_statement_id}/breakdown":{"get":{"path":"/rest/refund-statements/{refund_statement_id}/breakdown","tags":["Refund Statements"],"method":"get","summary":"Retrieve refund statement credit-note breakdown","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","nextCursor","hasMore"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","label","amount","currency"],"properties":{"id":{"type":"string","example":"inv_cn_01jq_example_zx81","description":"Public id of the credit note (or credit statement line) invoice."},"label":{"type":"string","example":"CN-2026-00042","description":"Display label (sequencing label or description fallback)."},"amount":{"type":"string","example":"-150.00","description":"Credit amount; typically negative for credits."},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code."},"contract_id":{"type":"string","example":"cntr_01jq_example_ab12","nullable":true,"description":"Contract `oid` when the credit note is tied to a contract; otherwise null.","x-sensitive-employment":true},"original_invoice_id":{"type":"string","example":"inv_01jq_example_orig","nullable":true,"description":"Public id of the invoice being credited when applicable; `null` when not linked."}},"additionalProperties":false},"description":"Credit note / credit statement lines linked to this refund statement."},"hasMore":{"type":"boolean","example":false,"description":"Reserved for pagination; currently always false (full breakdown returned in `data`)."},"nextCursor":{"type":"string","example":null,"nullable":true,"description":"Reserved for cursor pagination; currently always null for this endpoint."}},"additionalProperties":false},"examples":{"empty":{"value":{"data":[],"hasMore":false,"nextCursor":null},"summary":"No child credit notes"},"withRows":{"value":{"data":[{"id":"inv_cn_01jq_example_zx81","label":"CN-2026-00042","amount":"-150.00","currency":"USD","contract_id":"cntr_01jq_example_ab12","original_invoice_id":"inv_01jq_example_orig"},{"id":"inv_cn_01jq_example_noc","label":"Standalone credit","amount":"-25.50","currency":"USD","original_invoice_id":null}],"hasMore":false,"nextCursor":null},"summary":"Credit notes with and without contract"}}}},"description":"Breakdown succeeded. `data` contains zero or more rows (empty array when there are no child credit notes)."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."},"message":{"type":"string","example":"Organization is required","description":"Human-readable error message."}},"additionalProperties":false},"minItems":1}}},"examples":{"validation":{"value":{"errors":[{"code":"VALIDATION_ERROR","field":"refund_statement_id","details":{"path":["refund_statement_id"],"type":"any.required"},"message":"\"refund_statement_id\" must be a valid identifier"}]},"summary":"Invalid path or query"},"organizationRequired":{"value":{"errors":[{"code":"ORGANIZATION_REQUIRED","message":"Organization is required"}]},"summary":"Organization missing in context"}}}},"description":"Bad request: missing organization context, or request validation failed (e.g. invalid path id format, invalid query types)."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"UNAUTHORIZED","description":"Machine-readable error code."},"message":{"type":"string","example":"Authentication required","description":"Human-readable error message."}},"additionalProperties":false},"minItems":1}}},"examples":{"invalidToken":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Invalid or expired access token"}]},"summary":"Invalid or expired credentials"},"notAuthenticated":{"value":{"errors":[{"code":"UNAUTHORIZED","message":"Authentication required"}]},"summary":"Not authenticated"}}}},"description":"Unauthorized: caller is not authenticated (e.g. missing or invalid session or bearer token)."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"FORBIDDEN","description":"Machine-readable error code for a forbidden request."},"message":{"type":"string","example":"Access denied","description":"The reason the operation is not allowed for this caller or organization."}},"additionalProperties":false},"minItems":1}}},"examples":{"accessDenied":{"value":{"errors":[{"code":"FORBIDDEN","message":"Access denied"}]},"summary":"Access denied"},"featureDisabled":{"value":{"errors":[{"code":"FEATURE_DISABLED","message":"Refund statements breakdown API is not enabled for this organization"}]},"summary":"Feature disabled"}}}},"description":"Forbidden (role or feature flag)."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable not-found error code."},"message":{"type":"string","example":"Refund statement not found or not accessible","description":"Why the refund statement could not be returned."}},"additionalProperties":false},"minItems":1}}},"examples":{"notRefundStatement":{"value":{"errors":[{"code":"NOT_FOUND","field":"refund_statement_id","message":"Refund statement not found or not accessible"}]},"summary":"Not a refund statement"},"notFoundOrNoPermission":{"value":{"errors":[{"code":"NOT_FOUND","message":"Item does not exist, or you do not have permissions to view it"}]},"summary":"Not found or no permission"}}}},"description":"Statement not found or not accessible."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"INTERNAL_ERROR","description":"Machine-readable code when present."},"message":{"type":"string","example":"Something went wrong - our team is aware and working on it!","description":"Human-readable message when present."}},"additionalProperties":true},"description":"Structured errors when the runtime could serialize them; may be absent or empty."}},"description":"No guaranteed error shape for unhandled failures; body may omit structured errors or differ by gateway.","additionalProperties":true},"example":{"errors":[{"code":"INTERNAL_ERROR","message":"Something went wrong - our team is aware and working on it!"}]}}},"description":"Unexpected server failure."}},"parameters":[{"in":"path","name":"refund_statement_id","schema":{"type":"string","minLength":1},"example":"inv_refund_stmt_01jq_example_a9fd","required":true,"description":"Public id (`invoice_id`) of the refund statement root invoice."}],"description":"Use this endpoint to retrieve a detailed breakdown of credit notes associated with a specific refund statement. It provides comprehensive details for financial tracking and reconciliation.\n\n **Token scopes**: `accounting:read`","operationId":"retrieveRefundStatementCreditNoteBreakdown-v2026-05-11","security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/eor/contracts/{contract_id}/documents/{type}":{"get":{"path":"/rest/eor/contracts/{contract_id}/documents/{type}","tags":["EOR"],"method":"get","summary":"Fetch EOR contract document","responses":{"200":{"content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}},"description":"The document as a PDF"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abc123xyz","required":true,"description":"EOR contract ID"},{"in":"path","name":"type","schema":{"enum":["FRAMEWORK_AGREEMENT"],"type":"string"},"example":"FRAMEWORK_AGREEMENT","required":true,"description":"The type of document. Currently only FRAMEWORK_AGREEMENT is supported."}],"description":"Returns a specific document as a PDF for a given EOR contract. Currently only the `FRAMEWORK_AGREEMENT` document type is supported.\n\n **Token scopes**: `contracts:read`","operationId":"fetchEorContractDocument-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/offboarding/review-employee-sign-offs":{"post":{"path":"/rest/eor/contracts/{contract_id}/offboarding/review-employee-sign-offs","tags":["EOR"],"method":"post","summary":"Submit employee sign-off review for offboarding documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the offboarding request"},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"documents":{"type":"object","nullable":false,"required":["supporting","offboarding"],"properties":{"supporting":{"type":"array","items":{"type":"object","required":["id","name","type","created_at","updated_at","is_additional_supporting_document"],"properties":{"id":{"type":"string","example":"cmddlk1ghehm54l18gejg198r","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Supporting Documentation","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was updated","x-sensitive-pii":true},"is_additional_supporting_document":{"type":"boolean","example":false,"description":"Indicates if this is an additional supporting document added after the initial submission","x-sensitive-pii":true}}},"x-sensitive-pii":true},"offboarding":{"type":"array","items":{"type":"object","required":["files","reviewer_type","is_employee_notification_required","status"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the document set shared with the employee.","x-sensitive-pii":true},"files":{"type":"array","items":{"type":"object","required":["id","name","type","created_at"],"properties":{"id":{"type":"string","example":"cmdeh9wzgvihue4r54n2y51p4","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Employee Sign Off Documents","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was updated","x-sensitive-pii":true}}},"x-sensitive-pii":true},"status":{"enum":["AWAITING_REVIEW","AWAITING_FEEDBACK","FEEDBACK_PROVIDED","APPROVED","CHANGES_REQUESTED_BY_CLIENT","CHANGES_REQUESTED_BY_EMPLOYEE","WAIVED_REVIEW","NOT_RESPONDED","CANCELLED"],"type":"string","example":"AWAITING_REVIEW","description":"The current status of the document review","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was updated","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2025-07-22T12:30:00.000Z","nullable":true,"description":"The date and time when the document was reviewed","x-sensitive-pii":true},"reviewed_by":{"type":"string","example":"John Doe","nullable":true,"description":"The name of the reviewer for this document. If the reviewer is not an employee, it will be the name of the client","x-sensitive-pii":true},"reviewer_type":{"enum":["CLIENT","EMPLOYEE"],"type":"string","example":"EMPLOYEE","description":"The type of reviewer for this document","x-sensitive-pii":true},"reviewer_feedback":{"type":"string","example":"Document needs clarification on section 3","nullable":true,"description":"Feedback provided by the reviewer","x-sensitive-pii":true},"notification_instructions":{"type":"string","example":"<p>Please review and provide feedback on the attached documents.</p>","nullable":true,"description":"HTML instructions for the reviewer notification","x-sensitive-pii":true},"is_employee_notification_required":{"type":"boolean","example":true,"description":"Indicates if the employee should be notified about this document review","x-sensitive-pii":true}}},"description":"Document set shared that requires client or employee review","x-sensitive-pii":true},"resignation_letter":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the resignation letter"},"signature":{"type":"string","example":"John Doe","nullable":true,"description":"The signature of the resignation letter"},"signed_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the resignation letter was signed"},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the resignation letter was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the resignation letter was updated"}},"x-sensitive-pii":true}},"description":"Document management structure for termination workflow including review processes and supporting documents","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was updated"},"contract_id":{"type":"string","example":"5B74FnLM","description":"The unique identifier of the employee contract."},"is_sensitive":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if the offboarding request is sensitive. This is used to restrict access to the request only to the requester and the HRX team."},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"enum":["STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE","nullable":false,"description":"The reason for the termination","x-sensitive-pii":true,"x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request","x-sensitive-pii":true,"x-sensitive-employment":true},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"BUSINESS_DAY","policy_type":"Vacation","tracking_periods":[{"used":0,"end_date":"2025-02-28T00:00:00.000Z","start_date":"2024-03-01T00:00:00.000Z"},{"used":0,"end_date":"2024-02-29T00:00:00.000Z","start_date":"2023-03-01T00:00:00.000Z"},{"used":0,"end_date":"2023-02-28T00:00:00.000Z","start_date":"2022-03-01T00:00:00.000Z"}],"scheduled_until_end_date":0}],"additional_details":null,"is_deel_pto_confirmed":true},"nullable":false,"required":["time_offs","is_deel_pto_confirmed"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["unit","policy_type","tracking_periods","scheduled_until_end_date"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR"],"type":"string","example":"BUSINESS_DAY","description":"The unit of measurement for time off tracking","x-sensitive-employment":true},"policy_type":{"type":"string","example":"Vacation","description":"The type of time-off policy","x-sensitive-employment":true},"tracking_periods":{"type":"array","items":{"type":"object","required":["used","end_date","start_date"],"properties":{"used":{"type":"number","example":0,"description":"The amount of time off used in this tracking period","x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-02-28T00:00:00.000Z","description":"The end date of the tracking period","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2024-03-01T00:00:00.000Z","description":"The start date of the tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"scheduled_until_end_date":{"type":"number","example":0,"description":"The amount of time off scheduled until the end date of the current tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"additional_details":{"type":"object","nullable":true,"properties":{"notes":{"type":"string","example":"Additional notes about time off allocation","nullable":true,"description":"Additional notes or comments about the time-off data","x-sensitive-employment":true},"updated_by":{"type":"string","example":"HR Administrator","nullable":true,"description":"The person or system that last updated the time-off data","x-sensitive-pii":true,"x-sensitive-employment":true},"last_updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the time-off data was last updated","x-sensitive-employment":true}},"x-sensitive-employment":true},"is_deel_pto_confirmed":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the PTO allocation has been confirmed by Deel's system","x-sensitive-employment":true}},"description":"Time-off usage data including policy information and tracking periods","x-sensitive-employment":true},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again","x-sensitive-pii":true},"eligible_for_rehire_reason":{"type":"string","example":"Employee is not eligible for rehire due to performance issues","nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligible_for_rehire","x-sensitive-pii":true}},"x-sensitive-pii":true},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}},"description":"Approval submitted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"5B74FnLM","required":true,"description":"The unique identifier of the employee contract."}],"description":"Records an employee's sign-off decision—approval or change request with feedback—for the offboarding document set of a contract.\n\n **Token scopes**: `worker:write`","operationId":"submitEmployeeSignOffReviewForOffboardingDocuments-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["approved","requested_changes","reviewer_signature"],"properties":{"approved":{"type":"boolean","example":true,"description":"Indicates if the employee has approved the sign-off review"},"requested_changes":{"type":"string","example":"Please update the last working day to next Friday.","nullable":true,"maxLength":2000,"description":"Details of requested changes if the review is not approved"},"reviewer_signature":{"type":"string","example":"Jane Smith","nullable":true,"maxLength":1000,"description":"Signature of the reviewer if the review is approved"}}}}}}},"description":"Ok response"},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/files/{fileid}/status":{"get":{"path":"/rest/files/{fileid}/status","tags":["Files"],"method":"get","summary":"Check file upload status","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["file_id","status"],"properties":{"status":{"type":"string","example":"ready","description":"Upload status: pending (virus scan in progress), ready (claimable), or failed (virus scan failed)."},"file_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"Unique file identifier."}}}}}}},"description":"Current upload status"},"400":{"description":"Missing x-one-time-secret header"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"description":"File not found or invalid one-time secret"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"fileid","schema":{"type":"string","format":"uuid"},"example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","required":true,"description":"File UUID from the register response."},{"in":"header","name":"x-one-time-secret","schema":{"type":"string"},"example":"abc123def456ghi789jkl012mno345pqr678stu901vwx234yz","required":true,"description":"One-time secret from the register response."}],"description":"Poll the status of a file registered via the upload endpoint. Call this after uploading to check whether the file has cleared virus scanning: pending means the scan is still running, ready means it can be claimed, and failed means the upload was rejected.\n\n **Token scopes**: `files:read`, `worker:read`","operationId":"getFileUploadStatus-v2026-08-05","security":[{"deelToken":[]},{"oauth2":["files:read","worker:read"]}]}},"/eor/contracts/{contract_id}/offboarding/termination":{"post":{"path":"/rest/eor/contracts/{contract_id}/offboarding/termination","tags":["EOR"],"method":"post","summary":"Initiate EOR contract termination request","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the offboarding request"},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"documents":{"type":"object","nullable":false,"required":["supporting","offboarding"],"properties":{"supporting":{"type":"array","items":{"type":"object","required":["id","name","type","created_at","updated_at","is_additional_supporting_document"],"properties":{"id":{"type":"string","example":"cmddlk1ghehm54l18gejg198r","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Supporting Documentation","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was updated","x-sensitive-pii":true},"is_additional_supporting_document":{"type":"boolean","example":false,"description":"Indicates if this is an additional supporting document added after the initial submission","x-sensitive-pii":true}}},"x-sensitive-pii":true},"offboarding":{"type":"array","items":{"type":"object","required":["files","reviewer_type","is_employee_notification_required","status"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the document set shared with the employee.","x-sensitive-pii":true},"files":{"type":"array","items":{"type":"object","required":["id","name","type","created_at"],"properties":{"id":{"type":"string","example":"cmdeh9wzgvihue4r54n2y51p4","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Employee Sign Off Documents","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was updated","x-sensitive-pii":true}}},"x-sensitive-pii":true},"status":{"enum":["AWAITING_REVIEW","AWAITING_FEEDBACK","FEEDBACK_PROVIDED","APPROVED","CHANGES_REQUESTED_BY_CLIENT","CHANGES_REQUESTED_BY_EMPLOYEE","WAIVED_REVIEW","NOT_RESPONDED","CANCELLED"],"type":"string","example":"AWAITING_REVIEW","description":"The current status of the document review","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was updated","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2025-07-22T12:30:00.000Z","nullable":true,"description":"The date and time when the document was reviewed","x-sensitive-pii":true},"reviewed_by":{"type":"string","example":"John Doe","nullable":true,"description":"The name of the reviewer for this document. If the reviewer is not an employee, it will be the name of the client","x-sensitive-pii":true},"reviewer_type":{"enum":["CLIENT","EMPLOYEE"],"type":"string","example":"EMPLOYEE","description":"The type of reviewer for this document","x-sensitive-pii":true},"reviewer_feedback":{"type":"string","example":"Document needs clarification on section 3","nullable":true,"description":"Feedback provided by the reviewer","x-sensitive-pii":true},"notification_instructions":{"type":"string","example":"<p>Please review and provide feedback on the attached documents.</p>","nullable":true,"description":"HTML instructions for the reviewer notification","x-sensitive-pii":true},"is_employee_notification_required":{"type":"boolean","example":true,"description":"Indicates if the employee should be notified about this document review","x-sensitive-pii":true}}},"description":"Document set shared that requires client or employee review","x-sensitive-pii":true}},"description":"Document management structure for termination workflow including review processes and supporting documents","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was updated"},"contract_id":{"type":"string","example":"5B74FnLM","description":"The unique identifier of the employee contract."},"is_sensitive":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if the offboarding request is sensitive. This is used to restrict access to the request only to the requester and the HRX team."},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"enum":["STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE","nullable":false,"description":"The reason for the termination","x-sensitive-pii":true,"x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request","x-sensitive-pii":true,"x-sensitive-employment":true},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"BUSINESS_DAY","policy_type":"Vacation","tracking_periods":[{"used":0,"end_date":"2025-02-28T00:00:00.000Z","start_date":"2024-03-01T00:00:00.000Z"},{"used":0,"end_date":"2024-02-29T00:00:00.000Z","start_date":"2023-03-01T00:00:00.000Z"},{"used":0,"end_date":"2023-02-28T00:00:00.000Z","start_date":"2022-03-01T00:00:00.000Z"}],"scheduled_until_end_date":0}],"additional_details":null,"is_deel_pto_confirmed":true},"nullable":false,"required":["time_offs","is_deel_pto_confirmed"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["unit","policy_type","tracking_periods","scheduled_until_end_date"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR"],"type":"string","example":"BUSINESS_DAY","description":"The unit of measurement for time off tracking","x-sensitive-employment":true},"policy_type":{"type":"string","example":"Vacation","description":"The type of time-off policy","x-sensitive-employment":true},"tracking_periods":{"type":"array","items":{"type":"object","required":["used","end_date","start_date"],"properties":{"used":{"type":"number","example":0,"description":"The amount of time off used in this tracking period","x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-02-28T00:00:00.000Z","description":"The end date of the tracking period","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2024-03-01T00:00:00.000Z","description":"The start date of the tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"scheduled_until_end_date":{"type":"number","example":0,"description":"The amount of time off scheduled until the end date of the current tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"additional_details":{"type":"object","nullable":true,"properties":{"notes":{"type":"string","example":"Additional notes about time off allocation","nullable":true,"description":"Additional notes or comments about the time-off data","x-sensitive-employment":true},"updated_by":{"type":"string","example":"HR Administrator","nullable":true,"description":"The person or system that last updated the time-off data","x-sensitive-pii":true,"x-sensitive-employment":true},"last_updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the time-off data was last updated","x-sensitive-employment":true}},"x-sensitive-employment":true},"is_deel_pto_confirmed":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the PTO allocation has been confirmed by Deel's system","x-sensitive-employment":true}},"description":"Time-off usage data including policy information and tracking periods","x-sensitive-employment":true},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again","x-sensitive-pii":true},"eligible_for_rehire_reason":{"type":"string","example":"Employee is not eligible for rehire due to performance issues","nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligible_for_rehire","x-sensitive-pii":true}},"x-sensitive-pii":true},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}},"description":"Ok response"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"5B74FnLM","required":true,"description":"The unique identifier of the employee contract."}],"description":"Initiates a termination request for an EOR contract, beginning the offboarding process for the employee associated with the specified contract_id. The response captures the desired and confirmed end dates along with any termination documents generated at the time of the request.\n\n **Token scopes**: `contracts:write`","operationId":"initiateEorContractTerminationRequest-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["is_employee_notified","used_time_off","reason","reason_detail"],"properties":{"reason":{"enum":["DEEL_COLLECTIONS","STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE_ISSUES","description":"Reason why the contract is being terminated"},"attachments":{"type":"string","format":"binary","example":"@/Users/JohnDoe/Downloads/test.pdf","description":"This field allows for uploading multiple files at once. Attach any document that is important for the request to terminate the contract. Includes common image formats (JPG, JPEG, PNG, HEIC) and PDF documents."},"is_sensitive":{"type":"boolean","example":false,"description":"Defines whether the termination is sensitive. In this case, only the person requesting the termination will be able to view the termination, receive emails or notifications."},"reason_detail":{"type":"string","example":"This decision to terminate employment is based on an unsatisfactory level of job performance despite documented efforts to provide support and improvement opportunities.","maxLength":5000,"minLength":100,"description":"Field to better explain how communication with the employee will be and/or their reaction to the communication, or other necessary information"},"used_time_off":{"type":"object","properties":{"tracking_type":{"enum":["ON_PLATFORM","OFF_PLATFORM"],"type":"string","example":"ON_PLATFORM","description":"Type of time off tracking - whether it's tracked on Deel platform or off platform"},"off_platform_used_time_off":{"type":"object","example":{"entitlements":[{"used":25,"tracking_period":"2024-01-01","tracking_period_end_date":"2024-12-31"},{"used":30,"tracking_period":"2023-01-01","tracking_period_end_date":"2023-12-31"}],"total_scheduled":5,"entitlement_unit":"CALENDAR_DAY"},"nullable":true,"required":["entitlements","total_scheduled","entitlement_unit"],"properties":{"entitlements":{"type":"array","items":{"type":"object","required":["tracking_period","tracking_period_end_date","used"],"properties":{"used":{"type":"number","format":"float","example":25,"minimum":0,"description":"Amount of time off used in the period"},"tracking_period":{"type":"string","format":"date","example":"2024-01-01","description":"Start date of the tracking period"},"tracking_period_end_date":{"type":"string","format":"date","example":"2024-12-31","description":"End date of the tracking period"}}},"description":"Array of time off entitlements for different tracking periods"},"total_scheduled":{"type":"number","format":"float","example":5,"minimum":0,"description":"Total amount of time off scheduled until the end date"},"entitlement_unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR","WEEK","MONTH","YEAR"],"type":"string","example":"CALENDAR_DAY","description":"Unit of measurement for the time off entitlements"}},"description":"Required when tracking_type is OFF_PLATFORM, null otherwise"}}},"severance_type":{"enum":["DAYS","WEEKS","MONTHS","CASH"],"type":"string","example":"CASH","description":"The type of severance selected by the client. It's an optional field"},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","description":"The desired end date of the contract. If the date is not provided, Deel HRX team will select the nearest possible date."},"severance_amount":{"type":"integer","example":1000,"minimum":0,"description":"The amount of severance needed"},"additional_reason":{"enum":["DISSATISFIED_WITH_DEEL_SERVICE","DISSATISFIED_WITH_DEEL_PRICING","DISSATISFIED_WITH_DEEL_PRODUCT"],"type":"string","example":"DISSATISFIED_WITH_DEEL_PRODUCT","nullable":true,"description":"An additional reason can be provided in case the reason selected is NO_LONGER_WISH_TO_WORK_WITH_DEEL"},"termination_notes":{"type":"array","items":{"type":"string","maxLength":5000},"default":[],"example":["What severance pay, if any, am I entitled to receive upon termination of this contract?","How will accrued vacation time, sick leave, or other paid time off be handled upon termination of this contract?"],"description":"Additional notes can be provided regarding the termination for Deel, like questions and doubts"},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again"},"is_employee_notified":{"type":"boolean","example":false,"description":"Defines if employee was informed by client or not before the termination"},"required_information":{"type":"array","items":{"type":"object","required":["question","answer"],"properties":{"answer":{"type":"boolean","example":false,"nullable":true,"description":"The answer to the question"},"question":{"type":"string","example":"Will the employee be released from duties during the notice period?","description":"The question to be answered"}}},"example":[{"answer":false,"question":"Will the employee be released from duties during the notice period?"},{"answer":false,"question":"Is there any discount to apply to the employee?"}],"description":"For some countries some data is needed to help to process the termination. The questions comes from another endpoint to get the required information. See GET /eor/:oid/offboarding/required-information to get the questions."},"termination_impact_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"Termination impact data if there is some configured on HR module"},"employee_notification_detail":{"type":"string","nullable":true,"maxLength":5000,"minLength":1,"description":"If it's an termination contract ending and employee was already informed, should detail the notification to the employee"},"additional_supporting_documents":{"type":"string","format":"binary","example":"@/Users/JohnDoe/Downloads/test.pdf","description":"This field allows for uploading multiple files at once. Any proof such as correspondence, documentation of previous warnings or attendance records for the reason select above. Includes common image formats (JPG, JPEG, PNG, HEIC) and PDF documents."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/v2/time_tracking/shifts":{"post":{"path":"/rest/v2/time_tracking/shifts","tags":["Time Tracking Shifts"],"method":"post","summary":"Create shifts","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["external_id","contract_id","date_of_work","description","summary","shift_type"],"properties":{"summary":{"type":"object","required":["shift_rate_external_id"],"properties":{"time_unit":{"enum":["HOUR","DAY","WEEK","MONTH"],"type":"string","example":"HOUR","description":"Time unit"},"time_amount":{"type":"number","example":8,"description":"Time amount"},"total_break_hours":{"type":"number","example":2,"description":"Total break hours"},"payable_break_hours":{"type":"number","example":2,"description":"Payable break hours"},"total_payable_hours":{"type":"number","example":2,"description":"Total payable hours"},"shift_duration_hours":{"type":"number","example":2,"description":"Shift duration hours"},"shift_rate_external_id":{"type":"string","example":"abcd","description":"Shift rate external ID"}},"description":"Summary of calculated time and rates for the shift."},"created_at":{"type":"string","format":"date-time","example":"2024-10-08T12:08:29.695Z","description":"Creation timestamp of the shift."},"shift_type":{"enum":["REGULAR","CORRECTION_ABSOLUTE","CORRECTION_DELTA"],"type":"string","example":"REGULAR","description":"Type of the shift"},"updated_at":{"type":"string","format":"date-time","example":"2024-10-08T12:08:29.695Z","description":"Last update timestamp of the shift."},"contract_id":{"type":"string","example":"3j5z2e6","description":"The unique identifier of the employee contract."},"description":{"type":"string","example":"This is a sample shift description.","description":"Description of the shift."},"external_id":{"type":"string","example":"shift_123456r","description":"Unique identifier of the shift."},"date_of_work":{"type":"string","format":"date","example":"2023-10-01","description":"Date of the shift."},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","format":"date-time","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."},"shift_reference_id":{"type":"string","example":"shift-ref-123","description":"Reference ID for the shift"}}},"description":"List of created shift records."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"example":{"errors":[{"code":"bad_request","path":"data.shifts.0.external_id","message":"Required"}]}}},"description":"Bad Request - Validation error in the request body."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates multiple time tracking shifts for a contract, supporting both regular shift submissions and corrections that adjust hours for previously processed shifts.\n\n **Token scopes**: `time-tracking:write`","operationId":"createShifts-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["contract_id","shifts"],"properties":{"shifts":{"type":"array","items":{"oneOf":[{"type":"object","title":"Regular Shift (RECOMMENDED)","required":["external_id","date_of_work","description","summary"],"properties":{"summary":{"type":"object","required":["shift_rate_external_id","time_unit","time_amount"],"properties":{"time_unit":{"enum":["HOUR","MONTH","DAY","WEEK"],"type":"string","example":"HOUR","description":"Time unit"},"time_amount":{"type":"number","example":2,"description":"Time amount"},"shift_rate_external_id":{"type":"string","example":"abcd","description":"Shift Rate external ID"}},"description":"Summary of calculated time and rates for the shift."},"shift_type":{"enum":["REGULAR"],"type":"string","example":"REGULAR","description":"Type of the shift"},"description":{"type":"string","example":"sample description","description":"Description of the shift."},"external_id":{"type":"string","example":"shift_123456","description":"External ID of the shift."},"date_of_work":{"type":"string","format":"date","example":"2023-10-01","description":"Date of shift work"},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","format":"date-time","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."}}},{"type":"object","title":"Correction Absolute Shift (RECOMMENDED)","required":["external_id","description","summary","shift_reference_id","shift_type"],"properties":{"summary":{"type":"object","required":["time_amount"],"properties":{"time_amount":{"type":"number","example":2,"description":"Time amount"}},"description":"Summary of calculated time and rates for the correction shift."},"shift_type":{"enum":["CORRECTION_ABSOLUTE"],"type":"string","example":"CORRECTION_ABSOLUTE","description":"Type of the shift"},"description":{"type":"string","example":"Absolute correction for shift hours","description":"Description of the correction shift."},"external_id":{"type":"string","example":"correction_shift_123456","description":"External ID of the correction shift."},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","format":"date-time","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."},"shift_reference_id":{"type":"string","example":"original_shift_123","description":"External ID of the original shift being corrected"}}},{"type":"object","title":"Correction Delta Shift (RECOMMENDED)","required":["external_id","description","corrections","shift_reference_id","shift_type"],"properties":{"shift_type":{"enum":["CORRECTION_DELTA"],"type":"string","example":"CORRECTION_DELTA","description":"Type of the shift"},"corrections":{"type":"array","items":{"type":"object","required":["type","time_amount"],"properties":{"type":{"enum":["SUBTRACTION","ADDITION"],"type":"string","example":"SUBTRACTION","description":"Type of correction"},"time_amount":{"type":"number","example":8,"description":"Time amount"}}},"description":"Array of correction adjustments to apply to the original shift."},"description":{"type":"string","example":"Delta correction for overtime hours","description":"Description of the correction shift."},"external_id":{"type":"string","example":"correction_delta_123456","description":"External ID of the correction shift."},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","format":"date-time","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."},"shift_reference_id":{"type":"string","example":"original_shift_123","description":"External ID of the original shift being corrected"}}},{"type":"object","title":"Regular Shift (NOT RECOMMENDED - LEGACY)","required":["external_id","date_of_work","description","summary"],"properties":{"summary":{"type":"object","required":["shift_rate_external_id","total_payable_hours"],"properties":{"total_break_hours":{"type":"number","example":2,"description":"Total break hours"},"payable_break_hours":{"type":"number","example":2,"description":"Payable break hours"},"total_payable_hours":{"type":"number","example":2,"description":"Total payable hours"},"shift_duration_hours":{"type":"number","example":2,"description":"Shift duration hours"},"shift_rate_external_id":{"type":"string","example":"abcd","description":"Shift Rate external ID"}},"description":"Summary of calculated hours and rates for the shift."},"shift_type":{"enum":["REGULAR"],"type":"string","example":"REGULAR","description":"Type of the shift"},"description":{"type":"string","example":"sample description","description":"Description of the shift."},"external_id":{"type":"string","example":"shift_123456","description":"External ID of the shift."},"date_of_work":{"type":"string","format":"date","example":"2023-10-01","description":"Date of shift work"},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","format":"date-time","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."}}},{"type":"object","title":"Correction Absolute Shift (NOT RECOMMENDED - LEGACY)","required":["external_id","description","summary","shift_reference_id","shift_type"],"properties":{"summary":{"type":"object","required":["total_payable_hours"],"properties":{"total_break_hours":{"type":"number","example":1,"description":"Absolute total break hours"},"payable_break_hours":{"type":"number","example":0.5,"description":"Absolute payable break hours"},"total_payable_hours":{"type":"number","example":8,"description":"Absolute total payable hours"},"shift_duration_hours":{"type":"number","example":9,"description":"Absolute shift duration hours"}},"description":"Summary of calculated hours and rates for the correction shift."},"shift_type":{"enum":["CORRECTION_ABSOLUTE"],"type":"string","example":"CORRECTION_ABSOLUTE","description":"Type of the shift"},"description":{"type":"string","example":"Absolute correction for shift hours","description":"Description of the correction shift."},"external_id":{"type":"string","example":"correction_shift_123456","description":"External ID of the correction shift."},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."},"shift_reference_id":{"type":"string","example":"original_shift_123","description":"External ID of the original shift being corrected"}}},{"type":"object","title":"Correction Delta Shift (NOT RECOMMENDED - LEGACY)","required":["external_id","description","corrections","shift_reference_id","shift_type"],"properties":{"shift_type":{"enum":["CORRECTION_DELTA"],"type":"string","example":"CORRECTION_DELTA","description":"Type of the shift"},"corrections":{"type":"array","items":{"type":"object","required":["type"],"properties":{"type":{"type":"string","example":"ADDITION","description":"Type of correction"},"total_break_hours":{"type":"number","example":1,"description":"Break hours to add or subtract"},"payable_break_hours":{"type":"number","example":1,"description":"Payable break hours to add or subtract"},"total_payable_hours":{"type":"number","example":1,"description":"Payable hours to add or subtract"},"shift_duration_hours":{"type":"number","example":1,"description":"Shift duration hours to add or subtract"}},"additionalProperties":false},"description":"Array of correction adjustments to apply to the original shift."},"description":{"type":"string","example":"Delta correction for overtime hours","description":"Description of the correction shift."},"external_id":{"type":"string","example":"correction_delta_123456","description":"External ID of the correction shift."},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."},"shift_reference_id":{"type":"string","example":"original_shift_123","description":"External ID of the original shift being corrected"}}}]},"description":"Array of shift records to be created, supporting regular shifts and correction shifts."},"contract_id":{"type":"string","example":"3j5z2e6","description":"The unique identifier of the employee contract."}},"description":"Request data containing contract ID and shifts to be created."}}}}},"description":"Request body to create time tracking shifts supporting regular shifts and correction shifts."},"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]},"get":{"path":"/rest/v2/time_tracking/shifts","tags":["Time Tracking Shifts"],"method":"get","summary":"List of shifts","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["external_id","contract_id","description","date_of_work","created_at","updated_at"],"properties":{"meta":{"type":"object","properties":{"end":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"End date of the shift."},"time":{"type":"string","example":"17:00","description":"End time of the shift."},"is_rest_day":{"type":"boolean","example":false,"description":"Indicates if the shift end day is a rest day."},"is_public_holiday":{"type":"boolean","example":false,"description":"Indicates if the shift end day is a public holiday."}},"description":"End time details of the shift."},"start":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Start date of the shift."},"time":{"type":"string","example":"08:00","description":"Start time of the shift."},"is_rest_day":{"type":"boolean","example":false,"description":"Indicates if the shift start day is a rest day."},"is_public_holiday":{"type":"boolean","example":false,"description":"Indicates if the shift start day is a public holiday."}},"description":"Start time details of the shift."},"breaks":{"type":"array","items":{"type":"object","properties":{"end":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Break end date."},"time":{"type":"string","example":"12:30","description":"Break end time."}},"description":"End time details of the break."},"start":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Break start date."},"time":{"type":"string","example":"12:00","description":"Break start time."}},"description":"Start time details of the break."},"is_paid":{"type":"boolean","example":true,"description":"Indicates if the break is paid."}}},"description":"List of break periods within the shift."},"approval_date":{"type":"string","example":"2023-10-02T00:00:00.000Z","description":"Approval date of the shift."}},"description":"Metadata containing detailed information about the shift timing, breaks, and approval status."},"summary":{"type":"object","properties":{"total_break_hours":{"type":"number","example":1,"description":"Total break hours within the shift."},"payable_break_hours":{"type":"number","example":0.5,"description":"Total payable break hours."},"total_payable_hours":{"type":"number","example":7.5,"description":"Total payable hours for the shift."},"shift_duration_hours":{"type":"number","example":8,"description":"Total duration of the shift in hours."},"shift_rate_external_id":{"type":"string","example":"rate1234","description":"External ID of the shift rate associated with the shift."}},"description":"Summary of calculated hours and rates for the shift."},"created_at":{"type":"string","example":"2024-10-02T05:09:35.691Z","description":"Timestamp when the shift was created."},"updated_at":{"type":"string","example":"2024-10-02T05:09:35.691Z","description":"Timestamp when the shift was last updated."},"contract_id":{"type":"string","example":"1234","description":"Contract ID associated with the shift."},"description":{"type":"string","example":"This is a sample shift description.","description":"Description of the shift."},"external_id":{"type":"string","example":"shift_123456r","description":"Unique identifier of the shift."},"date_of_work":{"type":"string","example":"2023-10-01","description":"The date of work for the shift."},"payroll_cycle_ref":{"type":"object","required":["date"],"properties":{"date":{"type":"string","example":"2023-10-31T00:00:00.000Z","description":"Date in ISO 8601 format that helps referencing a payroll cycle"}},"description":"Reference to the payroll cycle associated with this shift."}}},"description":"List of shift records."},"page":{"type":"object","required":["total_rows","items_per_page","offset"],"properties":{"offset":{"type":"integer","example":0,"description":"Offset used for pagination."},"total_rows":{"type":"integer","example":6,"description":"Total number of shifts available."},"items_per_page":{"type":"integer","example":200,"description":"Number of items returned per page."}},"description":"Pagination information for the response."}}},"examples":{"success":{"value":{"data":[{"summary":{"total_break_hours":1,"payable_break_hours":0.5,"total_payable_hours":7.5,"shift_duration_hours":8,"shift_rate_external_id":"rate1234"},"created_at":"2024-10-02T05:09:35.691Z","updated_at":"2024-10-02T05:09:35.691Z","contract_id":"1234","description":"Sample shift description","external_id":"shift_123456r","date_of_work":"2023-10-01"}],"page":{"offset":0,"total_rows":6,"items_per_page":200}},"summary":"Example successful response"}}}},"description":"Successful response with paginated shifts."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"message":"Invalid pagination parameters"}},"summary":"Example error response"}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"limit","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"20","description":"Maximum number of records to return."},{"in":"query","name":"offset","schema":{"type":"string","pattern":"^[0-9]+$"},"example":"0","description":"Offset/index of record for the next page of records to return."},{"in":"query","name":"from_date","schema":{"type":"string","format":"date"},"example":"2025-01-01","description":"Filter shifts from this date (YYYY-MM-DD)."},{"in":"query","name":"to_date","schema":{"type":"string","format":"date"},"example":"2025-12-31","description":"Filter shifts until this date (YYYY-MM-DD)."},{"in":"query","name":"contract_id[]","style":"form","schema":{"type":"array","items":{"type":"string"}},"example":["CONTRACT-001","CONTRACT-002"],"explode":true,"description":"Filter shifts by one or more contract IDs."}],"description":"Retrieve a paginated list of shifts with details such as start and end times, breaks, metadata, and summary metrics. Supports pagination through `limit` and `offset` query parameters and filtering by `contractId`, date range (`fromDate` and `toDate`).\n\n **Token scopes**: `time-tracking:read`","operationId":"listOfShifts-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]}},"/gp/reports/{id}/gross_to_net/csv":{"get":{"path":"/rest/gp/reports/{id}/gross_to_net/csv","tags":["Global Payroll"],"method":"get","summary":"Download gross to net report","responses":{"200":{"content":{"text/csv":{"schema":{"type":"string"}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"clbuuabvg63543201r3310y322c","required":true,"description":"Id of the gp payroll report."},{"in":"query","name":"currency","schema":{"type":"string"},"example":"USD","description":"Currency to be used in the report calculation."}],"description":"Downloads the gross-to-net calculation report for the specified payroll report as a CSV file, with optional currency conversion applied.\n\n **Token scopes**: `global-payroll:read`","operationId":"downloadGrossToNetReport-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["global-payroll:read"]}]}},"/lookups/job-titles":{"get":{"path":"/rest/lookups/job-titles","tags":["Lookups"],"method":"get","summary":"Job titles list","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"integer","format":"int64","example":1234,"description":"identifier of the job title"},"name":{"type":"string","example":"3D Artist","nullable":false,"description":"Job title."}}}},"page":{"type":"object","required":["cursor"],"properties":{"cursor":{"type":"string","example":"eyJvZmZzZXQiOjEwMCwibGltaXQiOjEwMCwiZmlsdGVyVHlwZSI6ImFsbCJ9","description":"Use for pagination to get next set of records after the given cursor."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"after_cursor","schema":{"type":"string","example":"eyJvZmZzZXQiOjEwMCwibGltaXQiOjEwMCwiZmlsdGVyVHlwZSI6ImFsbCJ9"},"required":false,"description":"Cursor for pagination. Use this to retrieve the next page of results."}],"description":"Returns the platform's catalogue of predefined job titles. Results are paginated using cursor-based navigation via `after_cursor`.","operationId":"jobTitlesList-v2026-01-01","security":[{"deelToken":[]},{"oauth2":[]}]}},"/eor/{contract_id}/benefits":{"get":{"path":"/rest/eor/{contract_id}/benefits","tags":["EOR"],"method":"get","summary":"Retrieve Benefits for EOR Contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The unique ID of the benefit."},"name":{"type":"string","description":"The name of the benefit."},"plan":{"type":"object","properties":{"name":{"type":"string","description":"The name of the associated plan."}}},"provider":{"type":"object","properties":{"name":{"type":"string","description":"The name of the benefit provider."}}},"offer_status":{"enum":["Offered","Not offered"],"type":"string","description":"Indicates whether the benefit is offered."},"enrollment_details":{"type":"object","properties":{"plan":{"type":"object","properties":{"name":{"type":"string","description":"The name of the enrolled plan."}}},"status":{"type":"string","description":"The current enrollment status of the benefit."},"standard":{"type":"object","properties":{"monthly_cost":{"type":"string","nullable":true,"description":"The standard monthly cost of the benefit."},"employee_monthly_contribution":{"type":"string","nullable":true,"description":"The standard monthly employer contribution."}}},"current_cycle":{"type":"object","properties":{"monthly_cost":{"type":"string","description":"The monthly cost of the current enrollment."},"employee_monthly_contribution":{"type":"string","description":"The employer's monthly contribution for the current enrollment."}}}}}}}}}},"examples":{"success":{"value":{"data":[{"id":"benefit1","name":"Health Insurance","plan":{"name":"Gold Plan"},"provider":{"name":"Global Insurance Co."},"offer_status":"Offered","enrollment_details":{"plan":{"name":"Gold Plan"},"status":"Enrolled","standard":{"monthly_cost":"180","employee_monthly_contribution":"130"},"current_cycle":{"monthly_cost":"200","employee_monthly_contribution":"150"}}},{"id":"benefit2","name":"Retirement Plan","plan":{"name":"Standard Pension"},"provider":{"name":"Pension Trust"},"offer_status":"Not offered","enrollment_details":null}]},"summary":"Example of a successful response."}}}},"description":"Successfully retrieved the list of EOR contract benefits."},"400":{"content":{"application/json":{"examples":{"invalidContractId":{"value":{"error":"The provided `contract_id` is invalid. Please verify the input and try again."},"summary":"Invalid Contract ID"}}}},"description":"Invalid request. The `contract_id` parameter is missing or improperly formatted."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"examples":{"notFound":{"value":{"error":"No contract or benefits found for the provided `contract_id`."},"summary":"Contract not found."}}}},"description":"The specified contract ID does not exist or has no associated benefits."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","example":"mryv8dx","description":"The unique identifier of the EOR contract."},"required":true,"description":"Deel contract ID."}],"description":"Returns benefits associated with the specified EOR contract.\n\n **Token scopes**: `contracts:read`","operationId":"getEORContractBenefits-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/lookups/currencies":{"get":{"path":"/rest/lookups/currencies","tags":["Lookups"],"method":"get","summary":"Retrieve Supported Currency List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["code"],"properties":{"code":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"The ISO 4217 three-letter currency code."},"name":{"type":"string","example":"United States Dollar","nullable":true,"description":"The name of the currency. This may be null if a name is not available."}}},"description":"List of currencies supported by Deel."}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns all currencies supported by the platform, including their ISO codes and names.","operationId":"retrieveSupportedCurrencyList-v2026-01-01","security":[{"deelToken":[]},{"oauth2":[]}]}},"/time-tracking/timesheets/upload-url":{"post":{"path":"/rest/time-tracking/timesheets/upload-url","tags":["Time Tracking Timesheets"],"method":"post","summary":"Generate timesheet upload url","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["upload_url","upload_fields","id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"880e8400-e29b-41d4-a716-446655440003","description":"Unique identifier for the created timesheet"},"created_at":{"type":"string","format":"date-time","example":"2025-11-07T18:00:00.000Z","description":"Timestamp when the timesheet was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-11-07T18:00:00.000Z","description":"Timestamp when the timesheet was last updated"},"upload_url":{"type":"string","format":"uri","example":"https://my-unique-upload-bucket.s3.amazonaws.com/uploads/document.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20251107%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20251107T180000Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890","description":"Pre-signed S3 URL for uploading the timesheet file"},"upload_fields":{"type":"object","example":{"key":"uploads/document.pdf","bucket":"my-unique-upload-bucket","Content-Type":"text/csv"},"description":"Form fields required for the multipart POST upload to S3. Include these fields alongside the file in the upload request.","additionalProperties":true}}}}}}},"description":"Timesheet created successfully. Returns upload URL, upload form fields, and timesheet ID."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message","code","field"],"properties":{"code":{"type":"string","example":"unsupported_contract_type","description":"Machine-readable error code"},"field":{"type":"string","example":"contract_id","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Only EOR contracts are supported for timesheet uploads","description":"Human-readable explanation of the error"}}},"example":[{"code":"unsupported_contract_type","field":"contract_id","message":"Only EOR contracts are supported for timesheet uploads"}]}}}}},"description":"Bad request. Validation or business rule violation (e.g., non-EOR contract, invalid date range)."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message","code","field"],"properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"field":{"type":"string","example":"contract_id","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"The contract could not be found, please verify the provided contract id","description":"Human-readable explanation of the error"}}}}}}}},"description":"Resource not found."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message","code","field"],"properties":{"code":{"type":"string","example":"date_collision","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"A timesheet within the same dates was already submitted, please check the current timesheet status.","description":"Human-readable explanation of the error"}}},"example":[{"code":"date_collision","field":"start_date","message":"A timesheet within the same dates was already submitted, please check the current timesheet status."},{"code":"period_inconsistency","field":"start_date","message":"Timesheet's start date can't be later than end date, please verify the provided start and end dates"}]}}}}},"description":"Unprocessable entity. Business logic constraint violation."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Accepts timesheet file metadata and returns a pre-signed `upload_url` together with a new timesheet record `id`. Currently limited to EOR contracts.\n\n **Token scopes**: `time-tracking:write`","operationId":"generateTimesheetUploadUrl-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["contract_id","file_name","start_date","end_date"],"properties":{"end_date":{"type":"string","format":"date","example":"2025-06-30","description":"End date of the timesheet period. Must be equal to or later than start_date."},"file_name":{"type":"string","example":"june_timesheets.csv","pattern":"\\.csv$","maxLength":255,"minLength":1,"description":"Name of the timesheet file. Must end with .csv extension."},"start_date":{"type":"string","format":"date","example":"2025-06-01","description":"Start date of the timesheet period. Must be equal to or earlier than end_date."},"contract_id":{"type":"string","example":"JvUc0hPV","maxLength":50,"minLength":1,"description":"Id of the worker's contract associated with the timesheet"}}}}}}},"required":true,"description":"timesheet information needed for uploading timesheet file"},"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]}},"/hris/organization_structures/{hris_org_structure_id}":{"get":{"path":"/rest/hris/organization_structures/{hris_org_structure_id}","tags":["Organization structure"],"method":"get","summary":"Fetch an Org Structure from the Organization","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"HRIS Organization Structure ID"},"name":{"type":"string","example":"HRIS Organization Structure Name","description":"HRIS Organization Structure Name"},"type":{"type":"string","example":"HRIS Organization Structure Type","description":"HRIS Organization Structure Type"},"roles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer","example":1,"description":"Role ID"},"name":{"type":"string","example":"Role Name","description":"Role Name"}}}},"teams":{"type":"array","items":{"type":"object"}},"external_id":{"type":"string","example":"HRIS Organization Structure External ID","description":"HRIS Organization Structure External ID"},"teams_count":{"type":"integer","example":1,"description":"HRIS Organization Structure Teams Count"},"enable_roles":{"type":"boolean","example":true,"description":"HRIS Organization Structure Enable Roles"},"is_multiselect":{"type":"boolean","example":true,"description":"HRIS Organization Structure Is Multiselect"}}}}}}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"hrisOrgStructureId"},"message":{"type":"string","example":"\"hrisOrgStructureId\" must be a valid GUID"}}}}}}}},"description":"Bad request - The provided hrisOrgStructureId is invalid."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found"},"field":{"type":"string","example":"hrisOrgStructureId"},"message":{"type":"string","example":"Organization structure was not found."}}}}}}}},"description":"Not found - No organization structure exists for the provided ID."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"hris_org_structure_id","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"HRIS Organization Structure ID"}],"description":"Retrieves detailed information about a specific organizational structure including its teams and roles.\n\n **Token scopes**: `organizations:read`","operationId":"fetchAnOrgStructureFromTheOrganization-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"patch":{"path":"/rest/hris/organization_structures/{hris_org_structure_id}","tags":["Organization structure"],"method":"patch","summary":"Update an existing HRIS Org Structure","responses":{"200":{"content":{"application/json":{}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"hris_org_structure_id","schema":{"type":"string"},"example":"1131a5a9-1fbb-4b58-87f6-d8798e6f0b9e","required":true,"description":"Org Structure"}],"description":"Update an existing HRIS Org Structure including its name, settings, and teams hierarchy.\n\n **Token scopes**: `organizations:write`","operationId":"updateAnExistingHrisOrgStructure-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["teams"],"properties":{"name":{"type":"string","example":"HRIS Org Structure","description":"Name of the Org Structure"},"teams":{"type":"array","items":{"type":"object"}},"external_id":{"type":"string","example":"1131a5a9-1fbb-4b58-87f6-d8798e6f0b9e","description":"External ID of the Org Structure"},"enable_roles":{"type":"boolean","example":true,"description":"Enable roles for the Org Structure"},"is_multiselect":{"type":"boolean","example":true,"description":"Enable multiselect for the Org Structure"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]},"delete":{"path":"/rest/hris/organization_structures/{hris_org_structure_id}","tags":["Organization structure"],"method":"delete","summary":"Delete an Org Structure from the Organization","responses":{"200":{"content":{"application/json":{}},"description":"Successfully deleted"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"hris_org_structure_id","schema":{"type":"string"},"example":"5f7b1b1b-1b1b-1b1b-1b1b-1b1b1b1b1b1b","required":true,"description":"Org Structure"}],"description":"Delete an Org Structure from the Organization. Use the force flag to bypass validation checks and remove the structure even when profiles are still assigned to it.\n\n **Token scopes**: `organizations:write`","operationId":"deleteAnOrgStructureFromTheOrganization-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/legal-entities/registration-documents":{"get":{"path":"/rest/legal-entities/registration-documents","tags":["Documents"],"method":"get","summary":"List Organization Registration Documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"parent":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the superseded submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"REJECTED","description":"Status of the superseded submission."}},"description":"The submission this one replaced, when it is a resubmission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"children":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."}}},"description":"Superseded revisions of this submission, newest first."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"requirement":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the requirement."},"name":{"type":"string","example":"Certificate of Incorporation","nullable":true,"description":"Requirement name."},"description":{"type":"string","example":"A copy of the certificate issued at registration.","nullable":true,"description":"What the requirement asks for."},"is_disabled":{"type":"boolean","example":false,"description":"Whether the requirement is no longer requested."},"has_template":{"type":"boolean","example":false,"description":"Whether a template is provided. Fetch it from the requirement template endpoint."},"product_type":{"enum":["EMBEDDED_PAYROLL","GLOBAL_PAYROLL","PEO"],"type":"string","example":"GLOBAL_PAYROLL","nullable":true,"description":"Product the requirement applies to."},"applicable_at":{"enum":["BEFORE_FIRST_PAYROLL","ANYTIME"],"type":"string","example":"BEFORE_FIRST_PAYROLL","nullable":true,"description":"When the document becomes due."},"reference_url":{"type":"string","example":"https://example.gov/certificates","nullable":true,"description":"External reference for the requirement."},"is_approval_required":{"type":"boolean","example":true,"description":"Whether a submission against this requirement is reviewed. False means a submission is accepted immediately as COMPLETED."},"is_submission_required":{"type":"boolean","example":true,"description":"Whether the document is mandatory rather than optional."},"how_the_document_is_used":{"enum":["PAYROLL_PURPOSE","ENTITY_ONBOARDING"],"type":"string","example":"PAYROLL_PURPOSE","nullable":true,"description":"How the document is used once submitted."},"why_the_document_is_needed":{"type":"string","example":"Required to register the entity for payroll.","nullable":true,"description":"Why the document is required."},"how_client_obtains_document":{"type":"string","example":"Download it from the companies registry.","nullable":true,"description":"How to obtain it."}},"description":"The document requirement this submission answers."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"legal_entity":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the legal entity."},"name":{"type":"string","example":"Acme BV","nullable":true,"description":"Legal entity name."},"country":{"type":"string","example":"NL","nullable":true,"description":"ISO country code of the entity address."}},"description":"The legal entity the document belongs to."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."},"submission_due_date":{"type":"string","format":"date-time","example":"2026-09-30T00:00:00.000Z","nullable":true,"description":"When the document is due."},"archived_submissions_count":{"type":"integer","example":2,"minimum":0,"description":"How many superseded revisions exist."}}},"description":"Documents for this page."},"has_more":{"type":"boolean","example":true,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"YzEwNmEyNmEtMjFiYi01NTM4LThiZjItNTcwOTVkMTk3NmMx","nullable":true,"description":"Cursor to pass as `cursor` for the next page. Null when there are no more pages."},"total_count":{"type":"integer","example":124,"minimum":0,"description":"Total number of matching documents."}}}}},"description":"Registration documents returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Organization not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of results to return per page."},{"in":"query","name":"cursor","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","maxLength":2048},"example":"YzEwNmEyNmEtMjFiYi01NTM4LThiZjItNTcwOTVkMTk3NmMx","required":false,"description":"Pagination cursor returned as `next_cursor` by the previous response. Omit for the first page."},{"in":"query","name":"legal_entity_id","schema":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":100},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":false,"description":"Narrow to specific legal entities. Repeat the parameter to pass several values. Omit for every entity you can access."},{"in":"query","name":"search","schema":{"type":"string","maxLength":255},"example":"incorporation","required":false,"description":"Free-text search on the requirement name."},{"in":"query","name":"status","schema":{"type":"array","items":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string"},"maxItems":20},"example":"AWAITING_REVIEW","required":false,"description":"Filter by submission status. Repeat the parameter to pass several values."},{"in":"query","name":"product_type","schema":{"type":"array","items":{"enum":["EMBEDDED_PAYROLL","GLOBAL_PAYROLL","PEO"],"type":"string"},"maxItems":20},"example":"GLOBAL_PAYROLL","required":false,"description":"Filter by the product the requirement applies to. Repeat the parameter to pass several values."},{"in":"query","name":"requirement_id","schema":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":false,"description":"Filter to specific requirements. Repeat the parameter to pass several values."},{"in":"query","name":"only_archived","schema":{"type":"boolean","default":false},"example":false,"required":false,"description":"Return superseded submissions instead of the current ones."}],"description":"Lists the registration documents required across every legal entity in the organization, in one call. Use this to see what is still outstanding organization-wide — to drive an onboarding status dashboard, or to reconcile records — rather than requesting each legal entity in turn. Pass `legal_entity_id` to narrow to specific entities. Requirements that have not been answered yet are included with a null `id`.\n\n **Token scopes**: `legal-entity:read`","operationId":"listOrganizationRegistrationDocuments-v2026-08-17","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/eor/contract/{oid}/delay-onboarding":{"patch":{"path":"/rest/eor/contract/{oid}/delay-onboarding","tags":["EOR"],"method":"patch","summary":"Delay EOR employee onboarding","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean","example":true,"description":"Operation success status"},"contractOid":{"type":"string","example":"cnt_12345","description":"Contract OID"},"is_employee_onboarding_delayed":{"type":"boolean","example":true,"description":"Current onboarding delay status"}}},"examples":{"delayEnabled":{"value":{"success":true,"contractOid":"cnt_12345","is_employee_onboarding_delayed":true}},"delayDisabled":{"value":{"success":true,"contractOid":"cnt_12345","is_employee_onboarding_delayed":false}}}}},"description":"Employee onboarding delay status updated successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","example":"Not possible to update delay onboarding.","description":"Error message"}}}}},"description":"Bad Request - Contract not found or invalid status"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"oid","schema":{"type":"string"},"example":"cnt_12345678","required":true,"description":"Contract oid"}],"description":"Defers the scheduled onboarding start date for the EOR employee on the specified contract.\n\n **Token scopes**: `contracts:write`","operationId":"delayEorEmployeeOnboarding-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["is_employee_onboarding_delayed"],"properties":{"is_employee_onboarding_delayed":{"type":"boolean","example":true,"description":"Indicates if the employee onboarding is delayed"}}}}}}},"required":true,"description":"Indicates if the employee onboarding is delayed"},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/ats/reasons":{"get":{"path":"/rest/ats/reasons","tags":["ATS"],"method":"get","summary":"Retrieve paginated list of ATS Rejection/Archivation reasons","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","label","reason_group_slug","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the reason"},"label":{"type":"string","example":"Not interested","description":"Label of the reason"},"created_at":{"type":"string","format":"date-time","example":"2025-11-10T15:19:18.389Z","description":"Timestamp when the reason was created"},"jobs_count":{"type":"number","example":0,"nullable":true,"description":"Number of jobs associated with this reason"},"updated_at":{"type":"string","format":"date-time","example":"2025-11-10T15:19:18.389Z","description":"Timestamp when the reason was last updated"},"subgroup_slug":{"enum":["INTEREST","LOCATION","COMPENSATION","RESPONSIVENESS","QUALIFICATION","FIT","EXPERIENCE","STATUS","ROLE_CHANGE","WITHDREW","BENEFITS","COUNTER_OFFER","REMOTE_WORK","PERSONAL","TIMING","BUDGET","BUSINESS_NEEDS","EXTERNAL_CANDIDATE","INTERNAL_TRANSFER","HIRING_FREEZE"],"type":"string","example":"INTEREST","nullable":true,"description":"Reason subgroup slug"},"email_template":{"type":"object","nullable":true,"required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Email template ID"},"title":{"type":"string","example":"Not Interested","description":"Email template title"}},"description":"Associated email template"},"candidates_count":{"type":"number","example":0,"nullable":true,"description":"Number of candidates associated with this reason"},"reason_group_slug":{"enum":["CANDIDATE_ARCHIVATION","OFFER_REJECTION","JOB_CLOSURE","INTERVIEW_CANCELLATION"],"type":"string","example":"CANDIDATE_ARCHIVATION","description":"Reason group slug"}}},"description":"Array of reason objects"},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more results available"},"next_cursor":{"type":"string","example":null,"nullable":true,"maxLength":1000,"description":"Cursor for pagination to fetch next page"},"total_count":{"type":"number","example":12,"description":"Total count of reasons"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1000},"example":"cursorValue","description":"The cursor for pagination"},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":50,"description":"Maximum number of records returned in one response"},{"in":"query","name":"search","schema":{"type":"string","maxLength":500},"example":"Not interested","description":"Search text for filtering reasons"},{"in":"query","name":"reason_group_slug","schema":{"enum":["CANDIDATE_ARCHIVATION","OFFER_REJECTION","JOB_CLOSURE","INTERVIEW_CANCELLATION"],"type":"string"},"example":"OFFER_REJECTION","required":true,"description":"Filter by reason group"},{"in":"query","name":"include_counts","schema":{"type":"string"},"example":"true","description":"If true, includes usage counts for each reason"},{"in":"query","name":"subgroup_slug","schema":{"enum":["INTEREST","LOCATION","COMPENSATION","RESPONSIVENESS","QUALIFICATION","FIT","EXPERIENCE","STATUS","ROLE_CHANGE","WITHDREW","BENEFITS","COUNTER_OFFER","REMOTE_WORK","PERSONAL","TIMING","BUDGET","BUSINESS_NEEDS","EXTERNAL_CANDIDATE","INTERNAL_TRANSFER","HIRING_FREEZE"],"type":"string"},"example":"INTEREST","description":"Filter by reason subgroup"}],"description":"Returns a paginated list of rejection and archivation reasons, filterable by `reason_group_slug` and `subgroup_slug`; when `include_counts` is true, each reason includes a usage count.\n\n **Token scopes**: `ats:read`","operationId":"retrievePaginatedListOfAtsRejectionArchivationReasons-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/time_offs/profile/{hris_profile_id}":{"get":{"path":"/rest/time_offs/profile/{hris_profile_id}","tags":["Time Off"],"method":"get","summary":"List time-off requests","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["has_next_page","data","page_size"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","time_off_type_id","requested_at","start_date","end_date","is_paid","half_start_date","half_end_date","amount","created_at","updated_at","entitlement_unit"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off id"},"amount":{"type":"number","format":"float","example":0.5,"description":"Amount of time off"},"reason":{"type":"string","example":"Vacation","description":"Reason for time off"},"status":{"enum":["REQUESTED","APPROVED","REJECTED","USED","CANCELED"],"type":"string","example":"REQUESTED","description":"Status of time off"},"is_paid":{"type":"boolean","example":true,"description":"Is time off paid"},"end_date":{"type":"string","format":"date","example":"2022-01-01","description":"End date of time off"},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off creation date"},"start_date":{"type":"string","format":"date","example":"2022-01-01","description":"Start date of time off"},"updated_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off update date"},"approved_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","nullable":true,"description":"Time off approval date"},"description":{"type":"string","example":"Vacation","nullable":true,"description":"Time off description"},"contract_oid":{"type":"string","example":"32fk5ds","description":"Contract id"},"requested_at":{"type":"string","format":"date","example":"2022-01-01","description":"Time off request date"},"half_end_date":{"type":"boolean","example":true,"description":"Is half end date. Only used for backwards compatibility, please do not use."},"half_start_date":{"type":"boolean","example":true,"description":"Is half start date. Only used for backwards compatibility, please do not use."},"deduction_amount":{"type":"number","format":"float","example":0.5,"nullable":true,"description":"Deduction amount"},"entitlement_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"CALENDAR_DAY","description":"The unit in which the time off usage and entitlement are calculated."},"time_off_dailies":{"type":"array","items":{"type":"object","required":["id","time_off_id","amount","date","type","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off daily id"},"date":{"type":"string","format":"date","example":"2022-01-01","description":"Time off daily date"},"type":{"enum":["WORKING_DAY","NON_WORKING_DAY","HOLIDAY","FORFAIT_HOUR_DAY"],"type":"string","example":"WORKING_DAY","description":"Time off daily type"},"amount":{"type":"number","format":"float","example":0.5,"description":"Time off daily amount"},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off daily creation date"},"updated_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off daily update date"},"description":{"type":"string","example":"Vacation","nullable":true,"description":"Time off daily description"},"time_off_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off id"}}}},"time_off_type_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off type id"},"recipient_profile":{"type":"object","properties":{"hris_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Recipient hris profile id"},"organization_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Recipient organization id"},"client_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Recipient client profile id"}}},"requester_profile":{"type":"object","properties":{"hris_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Request hris profile id"},"organization_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Request organization id"},"client_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Request client profile id"}}},"time_off_percentage":{"type":"number","format":"float","example":0.5,"nullable":true,"description":"Time off percentage"},"is_end_date_estimated":{"type":"boolean","example":true,"description":"Is end date estimated"},"other_type_description":{"type":"string","example":"Vacation","nullable":true,"description":"Other type description"}}}},"next":{"type":"string"},"count":{"type":"integer","example":100,"description":"Total count of items"},"page_size":{"type":"integer","example":10,"maximum":200,"minimum":5,"description":"Page size"},"has_next_page":{"type":"boolean","example":true,"description":"Has next page"}},"description":"Time offs associated to the query"}}},"description":"Successful operation time offs returned"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"status","style":"form","schema":{"type":"array","items":{"enum":["REQUESTED","APPROVED","REJECTED","USED","CANCELED"],"type":"string"}},"example":["REQUESTED"],"explode":true,"description":"Time off status"},{"in":"query","name":"time_off_ids","style":"form","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["d290f1ee-6c54-4b01-90e6-d701748f0851"],"explode":true,"description":"Time off ids"},{"in":"query","name":"start_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Start date of time off"},{"in":"query","name":"end_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"End date of time off"},{"in":"query","name":"approval_start_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Approval start date"},{"in":"query","name":"approval_end_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Approval end date"},{"in":"query","name":"updated_start_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Updated start date"},{"in":"query","name":"updated_end_date","schema":{"type":"string","format":"date-time"},"example":"2022-01-01T00:00:00Z","description":"Updated end date"},{"in":"query","name":"page_size","schema":{"type":"integer","maximum":200,"minimum":5},"example":10,"description":"Page size"},{"in":"query","name":"policy_types","style":"form","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["d290f1ee-6c54-4b01-90e6-d701748f0851"],"explode":true,"description":"Policy types"},{"in":"query","name":"policy_type_names","style":"form","schema":{"type":"array","items":{"enum":["Adoption leave","Advanced vacation","Bereavement leave","Blood donation leave","Breastfeeding leave","Childbirth leave","Childcare leave","Civic/public duty leave","Compensatory leave","Disability leave","Doctor's appointment leave","Family & domestic violence leave","Family responsibility leave","Floating Holiday Allowance","Hajj leave","Hospitalization leave","Long Service Leave","Marriage/wedding leave","Maternity leave","Menstrual leave","Military leave","Moving leave","Other leave","Paid leave","Parental leave","Paternity leave","Personal leave","Pregnancy leave","Regional holiday","RTT","Sick leave","Study leave","Supplementary Leave","Unpaid leave","Vacation","Vacation - public holidays replacement","Volunteer leave","Work accident leave","Work Location"],"type":"string"}},"example":["Vacation"],"explode":true,"description":"Filter by policy type names. When omitted, Work Location time-offs are excluded by default. Pass policy_type_names=Work+Location to retrieve only Work Location entries."},{"in":"query","name":"next","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Next page"},{"in":"path","name":"hris_profile_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"HRIS profile id"}],"description":"Use this endpoint to retrieve a specific worker's time-off history or upcoming requests — e.g. to build a worker-facing view, check availability before scheduling, or reconcile attendance during payroll. Unlike GET /rest/time_offs, which lists requests org-wide, this scopes to a single hris_profile_id. Combine the status, policy, and date-range filters to narrow results, and page through history with page_size and next.\n\n **Token scopes**: `time-off:read`","operationId":"listTimeOffRequests-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/time_offs/validate":{"post":{"path":"/rest/time_offs/validate","tags":["Time Off"],"method":"post","summary":"Validate time-off request","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["is_valid"],"properties":{"dates":{"type":"array","items":{"type":"object","required":["date","type"],"properties":{"date":{"type":"string","format":"date","example":"2025-05-13","description":"An specific date in the time-off request"},"type":{"enum":["WORKING_DAY","NON_WORKING_DAY","HOLIDAY","FORFAIT_HOUR_DAY"],"type":"string","example":"WORKING_DAY","description":"The type of day for the time off request. All dates must follow the same type."},"hours":{"type":"array","items":{"type":"number","format":"float"},"example":[4,8],"description":"The maximum allowed number of hours that can be take in this specific date. For example, if there is another leave taking 3 hours in the same date, the maximum allowed hours will be 5 (assuming a work schedule of 8 hours)."},"amount":{"type":"number","format":"float","example":1,"description":"The amount of time off requested for the date. It uses the same time unit as in the total amount for the time off request."},"day_types":{"type":"array","items":{"enum":["FULL_DAY","HALF_DAY","PERCENTAGE","HOURLY"],"type":"string","example":"FULL_DAY","description":"The type of leave for the day."},"example":["FULL_DAY","HALF_DAY"],"description":"The types of leave available for the date. Either FULL_DAY or HALF_DAY."},"holiday_name":{"type":"string","example":"Christmas","description":"The name of the holiday for the date. Only applicable for holidays. Only present when date type is HOLIDAY."},"time_off_percentage":{"type":"number","format":"float","example":1,"maximum":1,"minimum":0,"description":"The percentage of time off requested for the date. For example, if the request is for a full day, the percentage will be 1. If it's for half a day, the percentage will be 0.5."}}},"example":[{"date":"2025-05-13","type":"WORKING_DAY","hours":[4,8],"amount":8,"time_off_percentage":1},{"date":"2025-05-14","type":"WORKING_DAY","hours":[4,8],"amount":8,"time_off_percentage":1},{"date":"2025-05-15","type":"WORKING_DAY","hours":[4,8],"amount":8,"time_off_percentage":1}],"description":"The dates breakdown for the time off request."},"amount":{"type":"number","format":"float","example":1.5,"description":"The amount of time off requested."},"is_valid":{"type":"boolean","example":true,"description":"Indicates if the time off request is valid or not. When false, the response will contain an error message."},"new_end_date":{"type":"string","format":"date","example":"2025-05-15","description":"The new end date for the time off request. It could be different from the original end date depending on the policy configuration. For example, for forfait-jour policies"},"is_event_based":{"type":"boolean","example":false,"description":"Indicates if the time off request is event-based, such as parental leave"},"new_start_date":{"type":"string","format":"date","example":"2025-05-13","description":"The new start date for the time off request. It could be different from the original start date depending on the policy configuration. For example, for forfait-jour policies"},"remaining_balance":{"type":"number","format":"float","example":10,"description":"The remaining policy balance for the tracking period"},"require_attachment":{"type":"boolean","example":false,"description":"Indicates if an attachment is required for the time off request"},"require_description":{"type":"boolean","example":false,"description":"Indicates if a description is required for the time off request"},"event_details_fields":{"type":"object","example":{"birth_date":{"type":"date-only","required":true},"adoption_date":{"type":"date-only","required":false},"was_premature_birth":{"type":"boolean","required":true},"had_multiple_children":{"type":"boolean","required":true}},"properties":{"birth_date":{"type":"object","example":{"type":"date-only","required":true},"required":["type","required"],"properties":{"type":{"enum":["date-only"],"type":"string","example":"date-only","description":"The type of the field, indicating it is a date-only field"},"required":{"type":"boolean","example":true,"description":"Indicates if the field is required"}},"description":"The birth-date of the child. Required for parental leave requests."},"adoption_date":{"type":"object","example":{"type":"date-only","required":false},"required":["type","required"],"properties":{"type":{"enum":["date-only"],"type":"string","example":"date-only","description":"The type of the field, indicating it is a date-only field"},"required":{"type":"boolean","example":true,"description":"Indicates if the field is required"}},"description":"The adoption-date of the child. Might be required depending on the type if leave requests."},"was_premature_birth":{"type":"object","example":{"type":"boolean","required":true},"required":["type","required"],"properties":{"type":{"enum":["boolean"],"type":"string","example":"boolean","description":"The type of the field, indicating it is a boolean field"},"required":{"type":"boolean","example":true,"description":"Indicates if the field is required"}},"description":"Indicates if the child was born prematurely. Required for parental leave requests."},"had_multiple_children":{"type":"object","example":{"type":"boolean","required":true},"required":["type","required"],"properties":{"type":{"enum":["boolean"],"type":"string","example":"boolean","description":"The type of the field, indicating it is a boolean field"},"required":{"type":"boolean","example":true,"description":"Indicates if the field is required"}},"description":"Indicates if the request is for multiple children. Required for parental leave requests."}},"description":"Fields required for specific time off requests, such as parental leave."},"max_time_off_percentage":{"type":"number","format":"float","example":0.5,"description":"The maximum time off percentage allowed for the request"},"validation_error_message":{"type":"string","example":"Time off request is invalid. Please check the dates and time off type.","description":"Error message when the time off request is invalid"},"amount_next_tracking_period":{"type":"number","format":"float","example":1.5,"description":"The amount of time off requested to be applicable in the next tracking period."},"country_specific_validation_results":{"type":"array","items":{"type":"object","required":["validation_type"],"properties":{"data":{"type":"object","properties":{"ranges":{"type":"array","items":{"type":"object","required":["start_day"],"properties":{"end_day":{"type":"number","example":3,"description":"The end day in the range"},"start_day":{"type":"number","example":1,"description":"The start day in the range"}}},"description":"Date ranges that were validated"},"max_requests":{"type":"number","example":3,"description":"Maximum number of requests allowed by this validation rule"},"remaining_balance":{"type":"number","example":25,"description":"Remaining balance at the time of applying this rule"}}},"is_valid":{"type":"boolean","example":true,"description":"Indicates if this specific validation passed"},"description":{"type":"string","example":"Maximum consecutive days validation passed","description":"A human-readable description of the validation result"},"validation_type":{"type":"string","example":"BRAZIL_MAX_REQUESTS","description":"The type of validation rule being applied"}},"description":"Result of a specific country validation rule"},"example":[{"data":{"ranges":[{"end_day":3,"start_day":1}],"max_requests":3},"is_valid":true,"description":"This policy doesn’t allow more than 3 requests to be submitted in a single period","validation_type":"BRAZIL_MAX_REQUESTS"}],"description":"Results of country-specific validation rules"},"remaining_balance_next_tracking_period":{"type":"number","format":"float","example":10,"description":"The remaining policy balance for the next tracking period"},"country_specific_validation_results_next_tracking_period":{"type":"array","items":{"type":"object","required":["validation_type"],"properties":{"data":{"type":"object","properties":{"ranges":{"type":"array","items":{"type":"object","required":["start_day"],"properties":{"end_day":{"type":"number","example":3,"description":"The end day in the range"},"start_day":{"type":"number","example":1,"description":"The start day in the range"}}},"description":"Date ranges that were validated"},"max_requests":{"type":"number","example":3,"description":"Maximum number of requests allowed by this validation rule"},"remaining_balance":{"type":"number","example":25,"description":"Remaining balance at the time of applying this rule"}}},"is_valid":{"type":"boolean","example":true,"description":"Indicates if this specific validation passed"},"description":{"type":"string","example":"Maximum consecutive days validation passed","description":"A human-readable description of the validation result"},"validation_type":{"type":"string","example":"BRAZIL_MAX_REQUESTS","description":"The type of validation rule being applied"}},"description":"Result of a specific country validation rule"},"example":[{"data":{"ranges":[{"end_day":3,"start_day":1}],"max_requests":3},"is_valid":true,"description":"This policy doesn’t allow more than 3 requests to be submitted in a single period","validation_type":"BRAZIL_MAX_REQUESTS"}],"description":"Results of country-specific validation rules"}},"description":"Time off request validation result"}},"description":"Time off request validation result"}}},"description":"Time off request validation result"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Validates a time-off request against policy compliance, available balance, blackout dates, and other rules before the request is created. The response includes an is_valid flag, any validation error message, adjusted start and end dates if applicable, balance projections, and country-specific validation results.\n\n **Token scopes**: `time-off:read`","operationId":"validateTimeOffRequest-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["recipient_profile_id","start_date","end_date"],"properties":{"id":{"type":"string","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off id. Required when validating a time off update request"},"dates":{"type":"array","items":{"type":"object","required":["date"],"properties":{"date":{"type":"string","format":"date","example":"2025-05-13","description":"An specific date in the time-off request"},"hours":{"type":"number","format":"float","example":8,"description":"The amount taken in hours during this specific date. It can not exceed the maximum allowed hours for the date."},"amount":{"type":"number","format":"float","example":1,"description":"The amount of time off requested for the date. It must be in the same time unit as in the total amount for the time off request."},"day_type":{"enum":["HALF_DAY","FULL_DAY","PERCENTAGE","HOURLY"],"type":"string","example":"FULL_DAY","description":"The type of day for the time off request. All dates must follow the same type."}},"description":"The dates breakdown for the time off request."},"description":"The dates breakdown for the time off request."},"is_paid":{"type":"boolean","example":true,"description":"Indicates if the time off request is paid or not. By default it follows the policy configuration."},"end_date":{"type":"string","format":"date","example":"2025-05-15","description":"The end date of the time off request."},"policy_id":{"type":"string","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off policy id. Can be used in place of time_off_type_id"},"start_date":{"type":"string","format":"date","example":"2025-05-13","description":"The start date of the time off request."},"description":{"type":"string","example":"Time off request for vacation","nullable":true,"maxLength":500,"description":"The description of the time off request"},"event_details":{"type":"object","properties":{"birth_date":{"type":"string","format":"date","example":"2025-05-13","description":"The birth-date of the child. Required for parental leave requests."},"adoption_date":{"type":"string","format":"date","example":"2025-05-13","description":"The adoption-date of the child. Required depending on the type of the leave requests."},"was_premature_birth":{"type":"boolean","example":true,"description":"Indicates if the child was born prematurely. Required for parental leave requests."},"had_multiple_children":{"type":"boolean","example":true,"description":"Indicates if the request is for multiple children. Required for parental leave requests."}},"description":"Event details regarding the leave. Required for event based policies such as parental leave."},"deduction_amount":{"type":"number","format":"float","example":8,"description":"The amount to be deducted from the time off balance. Only valid for policies used by independent contractors"},"time_off_type_id":{"type":"string","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off type id. Required when policy_id is not provided"},"time_off_event_id":{"type":"string","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The time off event id that this request is associated with. Only present for event-based policies such as parental leave."},"time_off_percentage":{"type":"number","format":"float","example":1,"maximum":1,"minimum":0,"nullable":true,"description":"The percentage of time off requested. For example, if the request is for a full day, the percentage will be 1. If it's for half a day, the percentage will be 0.5."},"recipient_profile_id":{"type":"string","example":"b1b9b1b9-1b9b-1b9b-1b9b-1b9b1b9b1b9b","description":"The hris profile id of the recipient"}},"description":"Time off request data"}},"description":"Time off request data"}}}},"security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/ats/offers":{"get":{"path":"/rest/ats/offers","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS offers","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier"},"email":{"type":"object","nullable":true,"required":["id","body","subject","sender_name","recipient_to"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the email"},"body":{"type":"string","example":"Hello, this is a test email.","description":"Email body","x-sensitive-employment":true},"subject":{"type":"string","example":"Test Email","description":"Email subject","x-sensitive-employment":true},"sender_name":{"type":"string","example":"John Doe","description":"Sender name","x-sensitive-employment":true},"recipient_cc":{"type":"string","format":"email","example":"cc@example.com","nullable":true,"description":"Carbon-copy recipient email address","x-sensitive-pii":true},"recipient_to":{"type":"string","format":"email","example":"to@example.com","description":"Primary recipient email address","x-sensitive-pii":true},"recipient_bcc":{"type":"string","format":"email","example":"bcc@example.com","nullable":true,"description":"Blind-carbon-copy recipient email address","x-sensitive-pii":true}},"description":"Email details"},"job_title":{"type":"string","example":"Software Engineer","description":"Job title","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-01T12:00:00Z","description":"Timestamp when the offer was created"},"expires_at":{"type":"string","format":"date","example":"2023-11-01","nullable":true,"description":"Date when the sent offer expires if the candidate has not responded"},"replied_at":{"type":"string","format":"date-time","example":"2023-10-15T14:30:00Z","nullable":true,"description":"Timestamp when the candidate replied (accepted or rejected) to the offer"},"start_date":{"type":"string","format":"date-time","example":"2024-02-01T12:00:00Z","description":"Start date","x-sensitive-employment":true},"updated_at":{"type":"string","format":"date-time","example":"2023-10-02T12:00:00Z","description":"Timestamp when the offer was last updated"},"worker_type":{"enum":["CONTRACTOR_FIXED","CONTRACTOR_PAY_AS_YOU_GO","CONTRACTOR_MILESTONE","DIRECT_EMPLOYEE","EOR_EMPLOYEE","GLOBAL_PAYROLL_EMPLOYEE","PEO_EMPLOYEE","PWAC","UNKNOWN"],"type":"string","example":"CONTRACTOR_FIXED","description":"Worker type","x-sensitive-employment":true},"country_code":{"type":"string","format":"country-code","example":"US","description":"Country code","x-sensitive-employment":true},"offer_status":{"enum":["CREATED","WAITING_FOR_APPROVAL","APPROVED","NOT_APPROVED","SENT","EXPIRED","ACCEPTED","REJECTED"],"type":"string","example":"CREATED","description":"Offer status","x-sensitive-employment":true},"attachment_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Attachment identifier"},"custom_fields":{"type":"array","items":{"type":"object","required":["id","name","type","required"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the custom field"},"name":{"type":"string","example":"Probation Period","description":"Custom field name"},"type":{"enum":["TEXT","PERCENTAGE","LIST","MULTISELECT","DATE","NUMBER","CURRENCY","HYPERLINK"],"type":"string","example":"TEXT","description":"Type of custom field"},"required":{"type":"boolean","example":false,"description":"Whether the custom field is required"},"description":{"type":"string","example":"Probation period length in months","nullable":true,"description":"Description of the custom field"}},"description":"Custom field attached to the offer"},"example":[],"description":"Custom fields attached to the offer"},"approval_rule_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Approval rule identifier"},"additional_details":{"type":"string","example":"Please note the flexible work arrangement.","nullable":true,"description":"Additional details about the offer","x-sensitive-employment":true},"approval_request_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Approval request identifier"},"compensation_amount":{"type":"number","example":100000,"description":"Compensation amount","x-sensitive-employment":true},"rejection_reason_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Rejection reason identifier"},"compensation_currency":{"type":"string","example":"USD","description":"Compensation currency","x-sensitive-employment":true},"compensation_period_slug":{"enum":["annually","monthly","semimonthly","biweekly","weekly","daily","hourly"],"type":"string","example":"annually","description":"Compensation period","x-sensitive-employment":true},"offer_letter_template_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Offer letter template identifier"},"application_interview_plan_stage_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Application interview plan stage identifier","x-sensitive-employment":true}}},"description":"Page of offers."},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more items to fetch."},"next_cursor":{"type":"string","example":null,"nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"number","example":100,"description":"Total number of offers"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"application_id","schema":{"type":"string","format":"uuid"},"example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","required":false,"description":"Filter offers by a specific application ID"}],"description":"Returns all offers associated with the organization, including worker type and offer status, to support pre-onboarding and contract creation workflows.\n\n **Token scopes**: `ats:read`","operationId":"listOffers-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/eor/contracts/{contract_id}/project-assignment/accept":{"post":{"path":"/rest/eor/contracts/{contract_id}/project-assignment/accept","tags":["EOR"],"method":"post","summary":"Accept EOR project assignment as client","responses":{"204":{"description":"The project assignment was accepted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"code","description":"The code of the source handler which produced the returned error"},"message":{"type":"string","example":"The requested version of the document mismatch the current version.","description":"The requested version of the document mismatch the current version."}}}}}}}},"description":"The requested version of the document mismatch the current version."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"m623fez","required":true,"description":"The unique identifier of the employee contract."}],"description":"Records client approval of a project assignment for an EOR contract, confirming that the terms have been reviewed and accepted.\n\n **Token scopes**: `contracts:write`","operationId":"acceptEorProjectAssignmentAsClient-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"version":{"type":"string","example":"e374540fc9a92390f9a1","maxLength":20,"minLength":20,"description":"This field is to ensure that the latest version of the project assignment PDF matches the version received from the webhook. If it is not sent, the version validation is not performed and the endpoint returns the PDF. If it is sent, it is checked whether the current version is equal to the version sent; if not, a 409 error occurs, otherwise, the PDF is returned."}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/adjustments":{"post":{"path":"/rest/adjustments","tags":["Adjustments"],"method":"post","summary":"Create a new adjustment","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the adjustment"},"file":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the file"},"name":{"type":"string","example":"your_file_name","description":"The name of the file"},"fileType":{"type":"string","example":"pdf","description":"The type of the file"}},"description":"'Adjustment attachement"},"title":{"type":"string","example":"Your title here","maxLength":255,"minLength":3,"description":"The title of the adjustment"},"amount":{"type":"string","example":"1234.56","description":"The amount of the adjustment"},"status":{"oneOf":[{"enum":["OPEN","PENDING_APPROVAL","OVERWRITTEN","FAILED","SUCCESS","AI_CHECK_IN_PROGRESS"],"type":"string","example":"OPEN","description":"Adjustment status (when contract type is GP)"},{"enum":["DRAFT","PENDING","ERRORS_FOUND","APPROVED","DENIED","DISBURSE_SCHEDULED","REIMBURSED","UNDER_REVIEW","PENDING_DEEL_REVIEW"],"type":"string","example":"DRAFT","description":"Adjustment status (when contract type is EOR)"}],"example":"OPEN","description":"The status of the adjustments"},"created_at":{"type":"string","format":"date-time","example":"2020-11-02T12:00:00.000Z","description":"The date and time when the adjustment was created"},"updated_at":{"type":"string","format":"date-time","example":"2020-11-02T12:00:00.000Z","description":"The date and time when the adjustment was last updated"},"contract_id":{"type":"string","example":"m3jk2j","description":"The identifier of the contract associated with the adjustment"},"description":{"type":"string","example":"Your description here","description":"The description of the adjustment"},"cycle_reference":{"type":"string","example":"your_cycle_reference","nullable":true,"description":"The reference to the cycle associated with the adjustment"},"move_next_cycle":{"type":"boolean","example":true,"description":"If an adjustments can belong to another payroll cycle"},"date_of_adjustment":{"type":"string","format":"date-time","example":"2020-11-02T12:00:00.000Z","description":"The date of the adjustment"},"actual_end_cycle_date":{"type":"string","example":"2023-11-15T00:00:00.000Z","description":"The date of the actual end cycle date"},"adjustment_category_id":{"type":"string","example":"c9cf4c2c0165f48f494415390c3b49","description":"The identifier of the adjustment category associated with the adjustment"},"actual_start_cycle_date":{"type":"string","example":"2023-11-01T00:00:00.000Z","description":"The date of the actual start cycle date"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}}}}}}},"description":"Bad Request – failed to create adjustments"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates a new payroll adjustment for a contract, modifying the payment amount on the next payment cycle. The `adjustment_category_id` must reference a valid category retrieved from `GET /adjustments/categories`.\n\n **Token scopes**: `adjustments:write`","operationId":"createANewAdjustment-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["contract_id","amount","title","description","adjustment_category_id","file","vendor","country"],"properties":{"file":{"type":"string","format":"binary","example":"file","minLength":1,"description":"File of adjustment."},"title":{"type":"string","example":"Your title here","maxLength":255,"minLength":3,"description":"Title of adjustment."},"amount":{"oneOf":[{"type":"string","minLength":1},{"type":"number","minimum":1}],"example":100.25,"description":"Amount of adjustment."},"vendor":{"type":"string","example":"Vendor","minLength":3,"description":"Vendor of adjustment."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"contract_id":{"type":"string","example":"m3jk2j","minLength":5,"description":"The identifier of the contract associated with the adjustment"},"description":{"type":"string","example":"Your description here","maxLength":255,"minLength":3,"description":"Description of adjustment."},"cycle_reference":{"type":"string","example":"my_cycle_reference","description":"Cycle reference of adjustment."},"move_next_cycle":{"type":"boolean","example":true,"nullable":true,"description":"If an adjustments can belong to another payroll cycle."},"date_of_adjustment":{"type":"string","format":"date","example":"1999-12-31","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"adjustment_category_id":{"type":"string","example":"c9cf4c2c0165f48f494415390c3b49","minLength":25,"description":"Adjustment category id."}}}}},"required":true,"description":"Creation data for a new adjustment"},"security":[{"deelToken":[]},{"oauth2":["adjustments:write"]}]}},"/legal-entities/{legal_entity_id}/registration-documents":{"get":{"path":"/rest/legal-entities/{legal_entity_id}/registration-documents","tags":["Documents"],"method":"get","summary":"List Legal Entity Registration Documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"parent":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the superseded submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"REJECTED","description":"Status of the superseded submission."}},"description":"The submission this one replaced, when it is a resubmission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"children":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."}}},"description":"Superseded revisions of this submission, newest first."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"requirement":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the requirement."},"name":{"type":"string","example":"Certificate of Incorporation","nullable":true,"description":"Requirement name."},"description":{"type":"string","example":"A copy of the certificate issued at registration.","nullable":true,"description":"What the requirement asks for."},"is_disabled":{"type":"boolean","example":false,"description":"Whether the requirement is no longer requested."},"has_template":{"type":"boolean","example":false,"description":"Whether a template is provided. Fetch it from the requirement template endpoint."},"product_type":{"enum":["EMBEDDED_PAYROLL","GLOBAL_PAYROLL","PEO"],"type":"string","example":"GLOBAL_PAYROLL","nullable":true,"description":"Product the requirement applies to."},"applicable_at":{"enum":["BEFORE_FIRST_PAYROLL","ANYTIME"],"type":"string","example":"BEFORE_FIRST_PAYROLL","nullable":true,"description":"When the document becomes due."},"reference_url":{"type":"string","example":"https://example.gov/certificates","nullable":true,"description":"External reference for the requirement."},"is_approval_required":{"type":"boolean","example":true,"description":"Whether a submission against this requirement is reviewed. False means a submission is accepted immediately as COMPLETED."},"is_submission_required":{"type":"boolean","example":true,"description":"Whether the document is mandatory rather than optional."},"how_the_document_is_used":{"enum":["PAYROLL_PURPOSE","ENTITY_ONBOARDING"],"type":"string","example":"PAYROLL_PURPOSE","nullable":true,"description":"How the document is used once submitted."},"why_the_document_is_needed":{"type":"string","example":"Required to register the entity for payroll.","nullable":true,"description":"Why the document is required."},"how_client_obtains_document":{"type":"string","example":"Download it from the companies registry.","nullable":true,"description":"How to obtain it."}},"description":"The document requirement this submission answers."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"legal_entity":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the legal entity."},"name":{"type":"string","example":"Acme BV","nullable":true,"description":"Legal entity name."},"country":{"type":"string","example":"NL","nullable":true,"description":"ISO country code of the entity address."}},"description":"The legal entity the document belongs to."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."},"submission_due_date":{"type":"string","format":"date-time","example":"2026-09-30T00:00:00.000Z","nullable":true,"description":"When the document is due."},"archived_submissions_count":{"type":"integer","example":2,"minimum":0,"description":"How many superseded revisions exist."}}},"description":"Documents for this page."},"has_more":{"type":"boolean","example":true,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"YzEwNmEyNmEtMjFiYi01NTM4LThiZjItNTcwOTVkMTk3NmMx","nullable":true,"description":"Cursor to pass as `cursor` for the next page. Null when there are no more pages."},"total_count":{"type":"integer","example":124,"minimum":0,"description":"Total number of matching documents."}}}}},"description":"Documents returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Legal entity not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the legal entity."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of results to return per page."},{"in":"query","name":"cursor","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","maxLength":2048},"example":"YzEwNmEyNmEtMjFiYi01NTM4LThiZjItNTcwOTVkMTk3NmMx","required":false,"description":"Pagination cursor returned as `next_cursor` by the previous response. Omit for the first page."},{"in":"query","name":"search","schema":{"type":"string","maxLength":255},"example":"incorporation","required":false,"description":"Free-text search on the requirement name."},{"in":"query","name":"status","schema":{"type":"array","items":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string"},"maxItems":20},"example":"AWAITING_REVIEW","required":false,"description":"Filter by submission status. Repeat the parameter to pass several values."},{"in":"query","name":"product_type","schema":{"type":"array","items":{"enum":["EMBEDDED_PAYROLL","GLOBAL_PAYROLL","PEO"],"type":"string"},"maxItems":20},"example":"GLOBAL_PAYROLL","required":false,"description":"Filter by the product the requirement applies to. Repeat the parameter to pass several values."},{"in":"query","name":"requirement_id","schema":{"type":"array","items":{"type":"string","format":"uuid"},"maxItems":200},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":false,"description":"Filter to specific requirements. Repeat the parameter to pass several values."},{"in":"query","name":"only_archived","schema":{"type":"boolean","default":false},"example":false,"required":false,"description":"Return superseded submissions instead of the current ones."}],"description":"Lists the registration documents required from a legal entity, together with what has been submitted and how far through review it is. Use this to find out what is still outstanding before a first payroll, or to reconcile submission status. Requirements that have not been answered yet are included with a null `id`.\n\n **Token scopes**: `legal-entity:read`","operationId":"listLegalEntityRegistrationDocuments-v2026-08-17","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]},"post":{"path":"/rest/legal-entities/{legal_entity_id}/registration-documents","tags":["Documents"],"method":"post","summary":"Submit Legal Entity Registration Documents","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"parent":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the superseded submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"REJECTED","description":"Status of the superseded submission."}},"description":"The submission this one replaced, when it is a resubmission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"children":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the submission. Null when nothing has been submitted for this requirement yet."},"files":{"type":"array","items":{"type":"object","required":["id","original_filename"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the file."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the file was uploaded."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type of the file."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","description":"Filename as uploaded."}}},"description":"Files attached to this submission."},"status":{"enum":["REQUESTED","AWAITING_REVIEW","REJECTED","APPROVED","UNSOLICITED","COMPLETED"],"type":"string","example":"AWAITING_REVIEW","description":"Current review status."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."}}},"description":"Superseded revisions of this submission, newest first."},"archived_at":{"type":"string","format":"date-time","example":"2026-09-01T08:00:00.000Z","nullable":true,"description":"When the submission was archived."},"requirement":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the requirement."},"name":{"type":"string","example":"Certificate of Incorporation","nullable":true,"description":"Requirement name."},"description":{"type":"string","example":"A copy of the certificate issued at registration.","nullable":true,"description":"What the requirement asks for."},"is_disabled":{"type":"boolean","example":false,"description":"Whether the requirement is no longer requested."},"has_template":{"type":"boolean","example":false,"description":"Whether a template is provided. Fetch it from the requirement template endpoint."},"product_type":{"enum":["EMBEDDED_PAYROLL","GLOBAL_PAYROLL","PEO"],"type":"string","example":"GLOBAL_PAYROLL","nullable":true,"description":"Product the requirement applies to."},"applicable_at":{"enum":["BEFORE_FIRST_PAYROLL","ANYTIME"],"type":"string","example":"BEFORE_FIRST_PAYROLL","nullable":true,"description":"When the document becomes due."},"reference_url":{"type":"string","example":"https://example.gov/certificates","nullable":true,"description":"External reference for the requirement."},"is_approval_required":{"type":"boolean","example":true,"description":"Whether a submission against this requirement is reviewed. False means a submission is accepted immediately as COMPLETED."},"is_submission_required":{"type":"boolean","example":true,"description":"Whether the document is mandatory rather than optional."},"how_the_document_is_used":{"enum":["PAYROLL_PURPOSE","ENTITY_ONBOARDING"],"type":"string","example":"PAYROLL_PURPOSE","nullable":true,"description":"How the document is used once submitted."},"why_the_document_is_needed":{"type":"string","example":"Required to register the entity for payroll.","nullable":true,"description":"Why the document is required."},"how_client_obtains_document":{"type":"string","example":"Download it from the companies registry.","nullable":true,"description":"How to obtain it."}},"description":"The document requirement this submission answers."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-08-18T11:00:00.000Z","nullable":true,"description":"When the document was reviewed."},"legal_entity":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the legal entity."},"name":{"type":"string","example":"Acme BV","nullable":true,"description":"Legal entity name."},"country":{"type":"string","example":"NL","nullable":true,"description":"ISO country code of the entity address."}},"description":"The legal entity the document belongs to."},"submitted_at":{"type":"string","format":"date-time","example":"2026-08-17T09:30:00.000Z","nullable":true,"description":"When the document was submitted."},"rejection_reason":{"type":"string","example":"Document is illegible","nullable":true,"description":"Why the submission was rejected, when applicable."},"submission_due_date":{"type":"string","format":"date-time","example":"2026-09-30T00:00:00.000Z","nullable":true,"description":"When the document is due."},"archived_submissions_count":{"type":"integer","example":2,"minimum":0,"description":"How many superseded revisions exist."}}},"description":"The created submissions, in request order."}}}}},"description":"Documents submitted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Legal entity or requirement not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"joi.s3.invalid-file","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid file type for the attachment. Please submit a valid attachment and do not manually change the file name extension before uploading.","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1}}}}},"description":"Unprocessable entity — a file has an unsupported type or its content does not match its extension."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the legal entity."}],"description":"Submits one or more documents for a legal entity, each answering a document requirement. Upload the file contents to the File Service first, then reference each file by its `file_id` and `one_time_secret`. A requirement that needs approval enters review as `AWAITING_REVIEW`; other submissions are accepted as `COMPLETED`. Read `requirement.is_approval_required`, then poll the get-document endpoint. A new submission supersedes a rejected attempt for the same requirement.\n\n **Token scopes**: `legal-entity:write`","operationId":"submitLegalEntityRegistrationDocuments-v2026-08-17","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["documents"],"properties":{"documents":{"type":"array","items":{"type":"object","required":["requirement_id","files"],"properties":{"files":{"type":"array","items":{"type":"object","required":["file_id","one_time_secret","original_filename","content_type"],"properties":{"file_id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"File Service file id."},"content_type":{"type":"string","example":"application/pdf","maxLength":255,"description":"MIME type."},"one_time_secret":{"type":"string","example":"a1b2c3d4e5f6","maxLength":1024,"minLength":1,"description":"File Service one-time secret."},"original_filename":{"type":"string","example":"certificate_of_incorporation.pdf","maxLength":500,"description":"Original filename."}},"additionalProperties":false},"maxItems":200,"minItems":1,"description":"Files previously uploaded to the File Service. Allowed types: pdf, jpg, jpeg, png, doc, docx, csv, xls, xlsx, txt, xml, mov, mp4."},"requirement_id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the requirement."}},"additionalProperties":false},"maxItems":100,"minItems":1,"description":"One entry per requirement being answered."}},"additionalProperties":false}},"additionalProperties":false}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["legal-entity:write"]}]}},"/time_offs/review":{"post":{"path":"/rest/time_offs/review","tags":["Time Off"],"method":"post","summary":"Approve or reject time-off requests","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["reviewed","not_reviewed"],"properties":{"reviewed":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off id"},"status":{"enum":["APPROVED","USED","REJECTED"],"type":"string","example":"APPROVED","description":"Time off status after review"}}}},"not_reviewed":{"type":"array","items":{"type":"object","required":["id","error"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off id"},"error":{"type":"string","example":"Time off is not pending review","description":"The error or reason why a time-off could not be reviewed"}}}}}}},"description":"The response contains two lists: one for time-offs that were successfully reviewed and another for those that could not be reviewed. Each time-off in the reviewed list contains its ID and the status it was set to (either APPROVED/USED or REJECTED). The notReviewed list contains the IDs of time-offs that could not be reviewed along with an error message explaining why."}}},"description":"Review process completed successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Approves or rejects a batch of time-off requests in a single call. The desired status must be either APPROVED or REJECTED for each entry. Only time-offs currently in REQUESTED status can be reviewed; entries in any other status are returned as not reviewed. Rejecting a time-off request is irreversible: once rejected, its status cannot be changed through this API. The response distinguishes successfully processed requests from those that encountered errors.\n\n **Token scopes**: `time-off:write`","operationId":"approveRejectTimeOffRequests-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off id"},"status":{"enum":["APPROVED","REJECTED"],"type":"string","example":"APPROVED","description":"Decision on whether the time off request was approved or rejected"}}},"maxItems":100,"minItems":1,"description":"Array of time-offs to be reviewed"}}}}}},"security":[{"deelToken":[]},{"oauth2":["time-off:write"]}]}},"/hris/worker_relations/profile/external/{profileId}/child":{"put":{"path":"/rest/hris/worker_relations/profile/external/{profileId}/child","tags":["Worker Relations"],"method":"put","summary":"Create child worker relation with external Id","responses":{"204":{"content":{"application/json":{}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"profileId","schema":{"type":"string"},"required":true,"description":"HrisProfile external ID"}],"description":"Creates or replaces the child worker relation for the HrisProfile identified by the given external ID. If a child relation already exists for this profile, it is overwritten with the supplied data.\n\n **Token scopes**: `profile:write`","operationId":"upsertChildWorkerRelationsExternalId-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["child_hris_profile_ids","hris_relationship_type_id"],"properties":{"child_hris_profile_ids":{"type":"array","items":{"type":"object","oneOf":[{"required":["external_hris_profile_id","relation_external_id"],"properties":{"relation_external_id":{"type":"string","maxLength":100},"external_hris_profile_id":{"type":"string","maxLength":100}}}]},"minItems":1},"hris_relationship_type_external_id":{"type":"string","format":"uuid"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/contracts/{contract_id}/payment_cycles":{"get":{"path":"/rest/contracts/{contract_id}/payment_cycles","tags":["Contracts"],"method":"get","summary":"Retrieve contractor payment dates","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","due_date","status"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier for the payment."},"status":{"enum":["active","upcoming","awaiting_payment","overdue"],"type":"string","nullable":false,"description":"The current status of the payment cycle."},"due_date":{"type":"string","format":"date-time","example":"2024-12-07T04:59:59.999Z","description":"The date and time when the payment is due."}}}}}},"examples":{"success":{"value":{"data":[{"id":"123e4567-e89b-12d3-a456-426614174000","status":"upcoming","due_date":"2024-12-07T04:59:59.999Z"},{"id":"223e4567-e89b-12d3-a456-426614174001","status":"active","due_date":"2024-12-01T04:59:59.999Z"}]},"summary":"Example response"}}}},"description":"A successful response containing contractor payment dates."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":400,"message":"The 'contract_id' parameter is required and must be valid."}},"summary":"Example error response"}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":404,"message":"No payment dates found for the specified contract ID."}},"summary":"Example not found response"}}}},"description":"Contract not found."},"500":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":500,"message":"An unexpected error occurred while processing the request."}},"summary":"Example server error response"}}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"required":true,"description":"The Deel contract ID for which payment dates are being retrieved."}],"description":"Fetches the scheduled payment dates and current status of each payment cycle for a specific contract.\n\n **Token scopes**: `contracts:read`","operationId":"retrieveContractorPaymentDates-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/organizations/secure-vault/files/{file_id}":{"delete":{"path":"/rest/organizations/secure-vault/files/{file_id}","tags":["Documents"],"method":"delete","summary":"Delete Organization Secure Vault File","responses":{"204":{"description":"File deleted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"File not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"file_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the Organization Secure Vault file."}],"description":"Deletes a single file from the Organization Secure Vault, such as an obsolete draft or duplicate that is no longer needed. This action is permanent and the file cannot be recovered.\n\n **Token scopes**: `organizations:write`","operationId":"deleteOrganizationSecureVaultFile-v2026-08-05","security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/confirm":{"post":{"path":"/rest/eor/contracts/{contract_id}/amendments/{amendment_id}/confirm","tags":["EOR"],"method":"post","summary":"Confirm an existing contract amendment","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"b9fd7198-7e81-4e57-bcf9-de6315194327","description":"Id of amendment"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED",null],"type":"string","example":"OPS","nullable":true,"description":"Type of amendment"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"8e6ba281-c703-4af3-ad93-b27434b70c7d","description":"Id of amendment item"},"item":{"type":"string","example":"SALARY_INCREASE","description":"Amendment item"},"type":{"type":"string","example":"OPS","description":"Type of amendment"},"new_value":{"type":"string","example":"62382.93","description":"The new valid value after the attempted change."},"data_point":{"type":"string","example":"salary","description":"The field that is selected for amendment."},"previous_value":{"type":"string","example":"68.9170","description":"The previous valid value before the attempted change."}}},"description":"Items of amendment"},"scope":{"type":"string","example":"Project scope details","description":"Scope of the amendment."},"salary":{"type":"string","example":"50000.00","description":"Salary for the amendment.","x-sensitive-employment":true},"source":{"enum":["APP","PUBLIC_API","APP_BULK_AMENDMENT",null],"type":"string","example":"APP","nullable":true,"description":"Source of amendment flow creation."},"currency":{"type":"string","example":"GBP","description":"Contract currency."},"end_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","nullable":true,"description":"End date of the employment."},"holidays":{"type":"integer","example":20,"nullable":true,"description":"Number of holidays."},"job_code":{"type":"string","example":"49589","nullable":true,"description":"Job code associated with the job title."},"job_title":{"type":"string","example":"Software Engineer","maxLength":1000,"description":"Job title associated with the amendment.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date of the amendment."},"net_salary":{"type":"string","example":"95000.0000","nullable":true,"description":"Net salary for the amendment.","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Start date of the employment."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Date when amendment is updated"},"description":{"type":"string","example":"Reason or note for the amendment.","nullable":true,"description":"Free-text description of the amendment."},"hourly_rate":{"type":"string","example":"50000.00","nullable":true,"description":"Hourly rate of the amendment","x-sensitive-employment":true},"custom_items":{"type":"array","items":{"type":"object","required":["id","type","status"],"properties":{"id":{"type":"string","format":"uuid","example":"e7b45fa6-9a72-4ab6-b163-ef50ccaba7fb","description":"Unique identifier for the custom amendment item"},"type":{"type":"string","example":"START_DATE","description":"Type/context of the custom amendment item"},"status":{"enum":["REJECTED","APPROVED","PENDING_REVIEW","PENDING_LEGAL"],"type":"string","example":"PENDING_REVIEW","description":"Current status of the custom amendment item"},"description":{"type":"string","example":"Please change the start date to 20th November 2025.","nullable":true,"description":"Detailed description of the custom amendment item"},"rejection_reason":{"type":"string","example":"Start date cannot be moved this far in advance.","nullable":true,"description":"Reason for rejection if the item was rejected"}}},"description":"Custom amendment items associated with the amendment flow"},"job_category":{"type":"string","example":"Engineering","nullable":true,"description":"Job category associated with the job title."},"requested_by":{"type":"string","example":"John Doe","nullable":true,"description":"Profile name of the user who requested the change"},"seniority_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true,"description":"Seniority level identifier."},"document_type":{"enum":["EA","SOW","SOW_EA",null],"type":"string","example":"SOW_EA","nullable":true,"description":"Amendment document type"},"legal_context":{"type":"object","example":{"status":"REQUEST_LEGAL_REVIEW","details":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","jira_ticket":"COHDSB-9600","jira_web_url":"https://letsdeel.atlassian.net/browse/COHDSB-9600","requested_at":"2025-04-23T10:40:25.527Z"},"nullable":true,"properties":{"status":{"enum":["REQUEST_LEGAL_REVIEW","WAITING_FOR_ANOTHER_TEAM","WAITING_FOR_HRX_ACTION","DECLINED","SOLVED"],"type":"string","example":"REQUEST_LEGAL_REVIEW","description":"Current status of the legal review process"},"details":{"type":"string","example":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","description":"Details regarding the legal request"},"jira_ticket":{"type":"string","example":"COHDSB-9600","description":"Jira ticket identifier linked to the legal context"},"jira_web_url":{"type":"string","format":"uri","example":"https://letsdeel.atlassian.net/browse/COHDSB-9600","description":"Link to the Jira ticket for tracking"},"requested_at":{"type":"string","format":"date-time","example":"2025-04-23T10:40:25.527Z","description":"Timestamp when legal review was requested"}},"description":"Additional details needed for legal input"},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","description":"Type of time off."},"void_deadline":{"type":"string","format":"date","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Deadline this SOW to be voided"},"effective_date":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Effective date of the amendment."},"seniority_date":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"The seniority date represents the employee’s original start date with a previous employer. It is used to preserve employment tenure when the employee transfers to this company. Can be null if not applicable."},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Type of employment."},"sick_leave_days":{"type":"integer","format":"number","example":12,"nullable":true,"description":"Number of sick leave days"},"employment_state":{"type":"string","example":"Active","nullable":true,"description":"State of employment."},"probation_period":{"type":"integer","example":3,"nullable":true,"description":"Duration of the probation period."},"work_schedule_id":{"type":"string","format":"uuid","example":"2b786de3-9b25-42d9-8a2d-61583bcfc09e","nullable":true,"description":"Work schedule id"},"fixed_adjustments":{"type":"array","items":{"type":"object","required":["id","value","description","is_recurring","status","is_amended","is_country_specific","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmfo0hqd5bw00cqs1b1jd7eag","description":"System-generated unique identifier for the fixed adjustment record in an amendment request."},"value":{"type":"string","example":"1200.50","pattern":"^(?!0+(\\.0+)?$)\\d+(?:\\.\\d+)?$","description":"Value of the fixed adjustment."},"status":{"enum":["WAITING_FOR_SIGNING","ACTIVE","OUTDATED","CANCELLED"],"type":"string","example":"WAITING_FOR_SIGNING","description":"Current status of the fixed adjustment."},"created_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was created."},"is_amended":{"type":"boolean","example":true,"description":"Whether this fixed adjustment was amended from a previous one."},"is_deleted":{"type":"boolean","example":false,"description":"True if the fixed adjustment was deleted as part of the amendment; otherwise false."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was last updated."},"description":{"type":"string","example":"Housing allowance for employee relocation","maxLength":256,"minLength":1,"description":"Description of the fixed adjustment."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the fixed adjustment is recurring. If set to false, it will be treated as a one-time fixed allowance."},"is_country_specific":{"type":"boolean","example":false,"description":"Whether this fixed adjustment applies only to a specific country."},"parent_fixed_adjustment_id":{"type":"string","example":"cmfo0hqd5i9kbhfvk8fn7aniy","nullable":true,"description":"Reference to the parent fixed adjustment, if applicable."}}},"description":"List of fixed adjustments associated with the amendment request."},"rejection_context":{"type":"object","example":{"rejected_at":"2025-02-24T11:08:57.433Z","rejection_reason":"Client requested a different start date."},"nullable":true,"properties":{"rejected_at":{"type":"string","format":"date-time","example":"2025-02-24T11:08:57.433Z","description":"Timestamp of when the rejection occurred"},"rejection_reason":{"type":"string","example":"Client requested a different start date.","nullable":true,"description":"Reason provided when the amendment was rejected. Null when the amendment was cancelled rather than rejected by an admin."}},"description":"Additional details containing rejection reason"},"amendment_statuses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"PREPARING_DOCUMENTS","description":"Logical, system-oriented identifier of the amendment status. Can be used to group statuses under a parent category and subgroup them for more granular state tracking. The structure typically follows a dot-separated hierarchy (e.g., 'PARENT','PARENT.CHILD', 'PARENT.CHILD.CHILD.CHILD', ...), which allows logical grouping and filtering of related statuses."},"friendly_name":{"type":"string","example":"PREPARING_DOCUMENTS","description":"Friendly name of amendment status"},"amendment_flow_status":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date"}},"description":"Metadata about the amendment status, including when it was created."}}},"description":"List of amendment statuses representing the history and progression of an amendment."},"notice_period_type":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"CUSTOM","nullable":true,"description":"Type of notice period."},"void_deadline_type":{"enum":["CUTOFF","START_DATE","END_DATE","EXPIRY",null],"type":"string","example":"CUTOFF","nullable":true,"description":"Type of void deadline"},"work_hours_per_week":{"type":"string","example":"40.00","description":"Number of work hours per week.","x-sensitive-employment":true},"employee_nationality":{"type":"string","example":"GB","description":"Nationality of the employee.","x-sensitive-pii":true},"is_hrx_action_needed":{"type":"boolean","example":false,"description":"Is HRX action needed."},"variable_compensation":{"type":"object","required":["id","title","amount","type","timeline","parent_id","effective_date","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","description":"The unique ID assigned by the system to this variable compensation record."},"type":{"enum":["FIXED","PERCENTAGE"],"type":"string","example":"FIXED","description":"The way the compensation is calculated. `FIXED` means a fixed amount (like $1000). `PERCENTAGE` means it’s based on a percentage of the salary."},"title":{"type":"string","example":"Bonus","description":"Title or name of the variable compensation."},"amount":{"type":"string","format":"decimal","example":"100000.0000","description":"The value of the compensation. Shown as a string to keep the exact number of decimals."},"timeline":{"enum":["MONTHLY","QUARTERLY","ANNUALLY","BIANNUALLY"],"type":"string","example":"ANNUALLY","description":"How often the compensation is paid — for example monthly, quarterly, annually, or twice a year."},"parent_id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","nullable":true,"description":"Reference to the parent variable compensation, if applicable. Null if this compensation is not linked to any compensation."},"created_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was first created in the system."},"is_amended":{"type":"boolean","example":true,"description":"Shows whether this compensation has been changed as part of an amendment."},"is_deleted":{"type":"boolean","example":true,"description":"Shows whether this compensation has been deleted."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was last updated."},"effective_date":{"type":"string","format":"date-time","example":"2025-10-18T00:00:00.000Z","description":"The date when this compensation starts being valid."},"incentive_plan":{"type":"object","properties":{"details":{"type":"string","example":"Year-end performance bonus based on quarterly targets.","description":"Extra details about the incentive plan, if any."},"employee_signature":{"type":"string","example":"John Doe","description":"The employee’s signature for the incentive plan, if collected."},"employee_signed_at":{"type":"string","format":"date-time","example":"2025-12-15T14:30:00.000Z","description":"The date and time when the employee signed the incentive plan. Empty if not signed."}},"description":"Details of the incentive plan linked to this compensation, if any."}},"description":"Represents a variable compensation record (such as a bonus, commission, or incentive) within a contract. It contains details like the amount, type, frequency, and whether it is part of an incentive plan. The record also tracks when it was created, updated, and whether it has been amended."},"notice_period_time_unit":{"enum":["DAY","WEEK","MONTH",null],"type":"string","example":"WEEK","nullable":true,"description":"Notice period time unit."},"is_effective_date_updated":{"type":"boolean","example":false,"description":"Is Effective Date updated."},"work_schedule_rules_version":{"type":"string","example":"2","nullable":true,"description":"Work schedule rule version."},"notice_period_after_probation":{"type":"string","example":"4","nullable":true,"description":"Notice period after probation."},"notice_period_during_probation":{"type":"string","example":"4","nullable":true,"description":"Notice period during probation."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"STANDARD","nullable":true,"description":"Type of probation period for definite contracts."}}}}}}},"description":"Amendment info"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of EOR worker contract."},{"in":"path","name":"amendment_id","schema":{"type":"string","format":"uuid"},"example":"77733bb9-9e17-4dfd-ba1b-1315f77cd7f7","required":true,"description":"A unique identifier for the employee contract amendment."}],"description":"Confirms a draft amendment on an EOR contract and initiates the review process, routing it to Deel and the employee for acknowledgment and approval. The amendment must exist in a confirmable state prior to calling this endpoint.\n\n **Token scopes**: `contracts:write`","operationId":"confirmAnExistingContractAmendment-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false},"example":{}}},"required":false,"description":"This operation does not require a request body. Provide an empty JSON object if required by the client."},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/ats/application-forms/{application_form_id}":{"get":{"path":"/rest/ats/application-forms/{application_form_id}","tags":["ATS"],"method":"get","summary":"Retrieve ATS Application form","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","organization_id","title","richtext_description","status_enum","has_show_resume_field","is_resume_required","resume_field_helper_text","form_builder_form_id","form_builder_form_revision_id","sensitive_fields_ids","application_confirmation_email_template_id","demographic_section_title","demographic_section_helper_text","form_builder_form","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"cf3bf34f-89e9-49fb-83a5-32104271f261","description":"Unique identifier for the application form"},"title":{"type":"string","example":"Software Engineer Application Form","description":"Title of the application form"},"created_at":{"type":"string","format":"date-time","example":"2026-01-07T17:51:39.961Z","description":"Timestamp when the application form was created"},"updated_at":{"type":"string","format":"date-time","example":"2026-01-07T17:51:39.961Z","description":"Timestamp when the application form was last updated"},"status_enum":{"enum":["DRAFT","PUBLISHED","ARCHIVED"],"type":"string","example":"PUBLISHED","description":"Status of the application form"},"organization_id":{"type":"string","format":"uuid","example":"3cfbb359-6084-46c0-9d3f-1ed1a1007a7a","description":"Unique identifier for the organization"},"form_builder_form":{"type":"object","nullable":true,"required":["pages"],"properties":{"pages":{"type":"array","items":{"type":"object","required":["title","sections"],"properties":{"title":{"type":"string","example":"Application Questions","description":"Title of the form page"},"sections":{"type":"array","items":{"type":"object","required":["title","questions"],"properties":{"title":{"type":"string","example":"Screening Questions","description":"Title of the section"},"subtitle":{"type":"string","example":"Please answer the following questions","description":"Additional information shown at the top of the section"},"questions":{"type":"array","items":{"type":"object","required":["title","type"],"properties":{"key":{"type":"string","example":"application.screening.salary_expectations","description":"Unique key identifier for the question"},"type":{"enum":["FREETEXT","PARAGRAPH","SINGLESELECTION","MULTISELECTION","ADDRESS","PHONENUMBER","DOCUMENTUPLOAD","NUMBER","DROPDOWN","DATEPICKER","EMAIL","CUSTOMDROPDOWN","PRESETDROPDOWN","NESTED"],"type":"string","example":"FREETEXT","description":"Type of the question"},"rules":{"type":"array","items":{"type":"object","nullable":true,"properties":{"title":{"type":"string","example":"Salary Expectation","description":"Title of the question"},"source":{"type":"object","nullable":true,"properties":{"url":{"type":"string","example":"/rest/v2/departments","description":"API endpoint providing dynamic options"},"definition":{"type":"string","example":"https://api.example.com/docs","description":"Reference URL for API documentation"},"description":{"type":"string","example":"Available departments","description":"Description of the data source"}},"description":"Defines dynamic data source for the question"},"options":{"type":"array","items":{},"example":[],"nullable":true,"description":"List of selectable options for selection-type questions. Value may be of any type."},"is_range":{"type":"boolean","example":false,"description":"Specifies whether a date picker allows range selection"},"requires":{"type":"array","items":{},"description":"List of conditions that must be met for this rule to apply"},"max_value":{"type":"number","example":1000000,"nullable":true,"description":"Maximum value allowed"},"min_value":{"type":"number","example":0,"nullable":true,"description":"Minimum value allowed"},"max_length":{"type":"integer","example":255,"nullable":true,"description":"Maximum character length for text responses"},"min_length":{"type":"integer","example":1,"nullable":true,"description":"Minimum character length for text responses"},"helper_text":{"type":"string","example":"Enter your expected annual salary","nullable":true,"description":"Additional information to assist the user"},"is_disabled":{"type":"boolean","example":false,"description":"If true, the field is disabled and cannot be edited"},"is_required":{"type":"boolean","example":true,"description":"Indicates if the question is required"},"number_type":{"type":"string","example":"CURRENCY","description":"Used for number fields to define the unit or representation"},"default_value":{"type":"string","example":"Default text value","nullable":true,"description":"Default value to pre-fill in the form"},"is_only_digits":{"type":"boolean","example":true,"description":"Restricts input to numeric characters only, for FreeText questions"},"date_limitation":{"type":"string","example":"BLOCK_PAST","nullable":true,"description":"Limits date selection (e.g., blocking past dates). Will always be 'BLOCK_PAST' for now"},"is_multiple_selection":{"type":"boolean","example":false,"description":"Indicates if the user can select multiple values"},"has_request_validation":{"type":"boolean","example":false,"description":"Whether additional validation should be triggered for this field"}},"description":"Validation rules for the question"},"nullable":true,"description":"Validation rules for the question"},"title":{"type":"string","example":"What are your salary expectations?","description":"Title of the question"},"source":{"type":"object","nullable":true,"properties":{"url":{"type":"string","example":"/rest/v2/departments","description":"API endpoint providing dynamic options"},"definition":{"type":"string","example":"https://api.example.com/docs","description":"Reference URL for API documentation"},"description":{"type":"string","example":"Available departments","description":"Description of the data source"}},"description":"Defines dynamic data source for the question"},"options":{"type":"array","items":{"type":"object","required":["title"],"properties":{"title":{"type":"string","example":"Yes","description":"Display text for the option"},"value":{"type":"string","example":"true","nullable":true,"description":"Value associated with the option"}}},"nullable":true,"description":"List of selectable options for selection-type questions"},"is_range":{"type":"boolean","example":false,"description":"Specifies whether a date picker allows range selection"},"max_value":{"type":"number","example":1000000,"nullable":true,"description":"Maximum value allowed"},"min_value":{"type":"number","example":0,"nullable":true,"description":"Minimum value allowed"},"max_length":{"type":"integer","example":255,"nullable":true,"description":"Maximum character length for text responses"},"min_length":{"type":"integer","example":1,"nullable":true,"description":"Minimum character length for text responses"},"helper_text":{"type":"string","example":"Please provide additional details","nullable":true,"description":"Additional information to assist the user"},"is_disabled":{"type":"boolean","example":false,"description":"If true, the field is disabled and cannot be edited"},"is_required":{"type":"boolean","example":true,"description":"Indicates if the question is required"},"number_type":{"type":"string","example":"CURRENCY","description":"Used for number fields to define the unit or representation"},"default_value":{"type":"string","example":"Default text value","nullable":true,"description":"Default value to pre-fill in the form"},"is_only_digits":{"type":"boolean","example":false,"description":"Restricts input to numeric characters only, for FreeText questions"},"date_limitation":{"type":"string","example":"BLOCK_PAST","nullable":true,"description":"Limits date selection (e.g., blocking past dates). Will always be 'BLOCK_PAST' for now"},"is_multiple_selection":{"type":"boolean","example":false,"description":"Indicates if the user can select multiple values"},"has_request_validation":{"type":"boolean","example":true,"description":"Whether additional validation should be triggered for this field"}},"description":"List of questions within the section"},"description":"List of questions within the section"}},"description":"Sections within the page"},"description":"Sections within the page"}},"description":"Pages in the form"},"description":"List of pages in the form"}},"description":"Form builder configuration"},"is_resume_required":{"type":"boolean","example":true,"description":"Whether the resume field is required"},"form_builder_form_id":{"type":"string","format":"uuid","example":"10164abf-6ea2-4fb9-963c-de2fa2ea4e1b","nullable":true,"description":"Unique identifier for the form builder form"},"richtext_description":{"type":"string","example":"<p>Please fill out this form to apply</p>","nullable":true,"description":"Rich text description of the application form"},"sensitive_fields_ids":{"type":"array","items":{"type":"string","format":"uuid"},"example":["10164abf-6ea2-4fb9-963c-de2fa2ea4e1b"],"nullable":true,"description":"Array of sensitive field IDs"},"has_show_resume_field":{"type":"boolean","example":true,"description":"Whether to show the resume field"},"demographic_option_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"10164abf-6ea2-4fb9-963c-de2fa2ea4e1b","description":"Unique identifier for the demographic option type"},"options":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"8ed5dd1f-b8ad-4847-b185-eb8209a3d54f","description":"Unique identifier for the option"},"value":{"type":"string","example":"Male","description":"Value of the option"}}},"description":"Array of available options for this demographic type"},"helper_text":{"type":"string","example":"Please select your gender identity","nullable":true,"description":"Helper text for the option type"},"option_type_slug":{"type":"string","example":"gender","description":"Slug for the option type"}}},"example":[{"id":"10164abf-6ea2-4fb9-963c-de2fa2ea4e1b","options":[{"id":"8ed5dd1f-b8ad-4847-b185-eb8209a3d54f","value":"Male"},{"id":"9fd6ee2g-c9be-5958-c296-fc9309b4e65g","value":"Female"}],"helper_text":"Please select your gender identity","option_type_slug":"gender"}],"description":"Array of demographic option types for collecting diversity information"},"resume_field_helper_text":{"type":"string","example":"Please upload your resume in PDF format","nullable":true,"description":"Helper text for the resume field"},"demographic_section_title":{"type":"string","example":"Demographics","nullable":true,"description":"Title for the demographic section"},"form_builder_form_revision_id":{"type":"string","format":"uuid","example":"8ed5dd1f-b8ad-4847-b185-eb8209a3d54f","nullable":true,"description":"Unique identifier for the form builder form revision"},"demographic_section_helper_text":{"type":"string","example":"This information is optional and helps us track diversity","nullable":true,"description":"Helper text for the demographic section"},"application_confirmation_email_template_id":{"type":"string","format":"uuid","example":"10164abf-6ea2-4fb9-963c-de2fa2ea4e1b","nullable":true,"description":"Unique identifier for the application confirmation email template"}}}}}}},"description":"Successful response with application form data"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"application_form_id","schema":{"type":"string"},"example":"cfe8c14f-741e-4bf8-8090-b9427eeb44c0","required":true,"description":"Id of the application form"}],"description":"Retrieves a single ATS application form by its unique ID within the specified organization. Use it when you need the full form definition and metadata, such as its title, status, and the pages, sections, and questions of the underlying form builder configuration, to display or process an application.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAtsApplicationForm-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/employee-info/contract-types/{type}/countries/{country}":{"get":{"path":"/rest/employee-info/contract-types/{type}/countries/{country}","tags":["Employee Information"],"method":"get","summary":"Employee additional info template","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"b7045ecb-c5ca-43fa-9fa1-61bcb700ee89","description":"Unique identifier for the field"},"name":{"type":"string","example":"idType","description":"Name of the field"},"alias":{"type":"string","example":"deel_additional-data_ad_id-type","description":"Alias for the field"},"label":{"type":"string","example":"ID Type","description":"Label for the field"},"options":{"type":"array","items":{"type":"string","example":"Passport"},"nullable":true,"description":"Options for select input type"},"footnote":{"type":"string","example":"Please ensure this matches your official documents","nullable":true,"description":"Footnote for the field"},"input_type":{"type":"string","example":"select","description":"Type of input for the field"},"local_name":{"type":"string","example":"Tipo di ID","nullable":true,"description":"Local name for the field"},"description":{"type":"string","example":"Select your identification type","nullable":true,"description":"Description of the field"},"is_optional":{"type":"boolean","example":false,"description":"Indicates if the field is optional"},"required_by":{"type":"string","example":"sign_up","description":"Specifies when the field is required"},"dependencies":{"type":"array","items":{"type":"object","example":{"id":"b7045ecb-c6ca-43fa-9fa1-61bcb700ee89","value":"National ID"},"properties":{"id":{"type":"string","example":"b7045ecb-c6ca-43fa-9fa1-61bcb700ee89","description":"ID of the dependency"},"value":{"type":"string","example":"National ID","description":"Value of the dependency"}}},"nullable":true,"description":"Dependencies for the field"},"display_order":{"type":"string","example":"7","nullable":true,"description":"Display order of the field"},"how_to_obtain":{"type":"string","example":"Visit your local government office to request this document","nullable":true,"description":"Instructions on how to obtain the field value"},"can_be_skipped":{"type":"boolean","example":false,"nullable":true,"description":"Indicates if the field can be skipped"},"link_to_obtain":{"type":"string","example":"https://www.deel.com","nullable":true,"description":"Link to obtain the field value"},"validation_rule":{"type":"string","example":"^(Passport|National ID)$","nullable":true,"description":"Validation rule for the field"},"input_configuration":{"type":"object","example":{"type":"date","format":{"pattern":"YYYY-MM-DD","separator":"-"}},"nullable":true,"properties":{"type":{"type":"string","example":"date","description":"The configuration type matching the input type"},"format":{"type":"object","properties":{"pattern":{"type":"string","example":"YYYY-MM-DD","description":"Date format pattern"},"separator":{"type":"string","example":"-","description":"Separator character for the format"}},"description":"Format configuration for the input"}},"description":"Configuration object for the input field. Present for input types that require additional format or display configuration, such as date fields."},"link_to_obtain_label":{"type":"string","example":"Government Portal","nullable":true,"description":"Label for the link to obtain the field value"},"validation_error_message":{"type":"string","example":"Must be one of the following values: Passport, National ID","nullable":true,"description":"Validation error message for the field"},"dependency_condition_match_mode":{"enum":["ALL","ANY"],"type":"string","example":"ALL","nullable":true,"description":"Condition match mode for dependencies"}}}}}},"example":{"data":[{"id":"b7045ecb-c5ca-43fa-99f-61bcb700ee89","name":"idType","alias":"deel_additional-data_es_id-type","label":"ID Type","options":["Passport","National ID"],"footnote":null,"input_type":"select","local_name":"Tipo de identificacion","description":"Select your identification type","is_optional":false,"required_by":"sign_up","display_order":"1","how_to_obtain":null,"can_be_skipped":false,"link_to_obtain":null,"validation_rule":"^(Passport|National ID)$","input_configuration":null,"link_to_obtain_label":null,"validation_error_message":"Must be one of the following values: Passport, National ID"},{"id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","name":"idNumber","alias":"deel_additional-data_es_id-number","label":"ID Number","footnote":null,"input_type":"text","local_name":"Numero de identificacion","description":"Enter your identification number","is_optional":false,"required_by":"sign_up","dependencies":[{"id":"b7045ecb-c5ca-43fa-99f-61bcb700ee89","value":"National ID"}],"display_order":"2","how_to_obtain":null,"can_be_skipped":false,"link_to_obtain":null,"validation_rule":"^[A-Z0-9]+$","input_configuration":null,"link_to_obtain_label":null,"validation_error_message":"Must contain only uppercase letters and numbers","dependency_condition_match_mode":"ALL"}]}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Invalid country code or contract type."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Authentication required. Please provide a valid access token.","description":"Use this message to identify the authentication failure reason."}}},"minItems":1}}},"example":{"errors":[{"message":"Authentication required. Please provide a valid access token."}]}}},"description":"Authentication failed. The access token is missing, expired, or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"You do not have permission to access this resource.","description":"Use this message to identify the authorization failure reason."}}},"minItems":1}}},"example":{"errors":[{"message":"You do not have permission to access this resource."}]}}},"description":"Access denied. The authenticated user does not have the required contracts:read scope or contracts.view permission."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Additional info template not found","description":"Use this message to understand why the request failed. Indicates no additional info template is configured for this country and contract type."}}},"minItems":1}}},"example":{"errors":[{"message":"Additional info template not found"}]}}},"description":"No additional info template exists for the given country and contract type combination in the Employee Data Management system."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Too many requests. Please retry after some time.","description":"Use this message to detect rate limiting. Implement exponential backoff before retrying."}}},"minItems":1}}},"example":{"errors":[{"message":"Too many requests. Please retry after some time."}]}}},"description":"Rate limit exceeded. The client has sent too many requests in a given time window."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"An unexpected error occurred while processing your request. Please try again later.","description":"Use this message for logging and debugging purposes. Contains a general error description."}}},"minItems":1}}},"example":{"errors":[{"message":"An unexpected error occurred while processing your request. Please try again later."}]}}},"description":"Internal server error. Returned when the Employee Data Management service is unreachable or an unexpected error occurs."}},"parameters":[{"in":"path","name":"type","schema":{"enum":["eor","gp"],"type":"string"},"example":"eor","required":true,"description":"The contract type. Must be 'eor' (Employer of Record) or 'gp' (Global Payroll)."},{"in":"path","name":"country","schema":{"type":"string"},"example":"ES","required":true,"description":"ISO 3166-1 alpha-2 country code."}],"description":"Returns the additional information template for a given contract type and employment country, specifying the fields required to complete employee information for that combination.\n\n **Token scopes**: `contracts:read`","operationId":"employeeAdditionalInfoTemplate-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/workers/contracts/{contract_id}/offer-letter":{"get":{"path":"/rest/eor/workers/contracts/{contract_id}/offer-letter","tags":["EOR"],"method":"get","summary":"Preview job offer letter","responses":{"200":{"content":{"text/html":{"schema":{"type":"string","example":"<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>Job Offer Letter</title>\n</head>\n<body>\n    <h1>Job Offer Letter</h1>\n    <p>Dear [Candidate Name],</p>\n    <p>We are pleased to offer you the position of [Position] at [Company].</p>\n    <p>Sincerely,</p>\n    <p>[Your Name]</p>\n</body>\n</html>","description":"HTML with job offer letter."}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Returns the job offer letter for an EOR contract in HTML format. IC and Global Payroll contract types are not supported and will not return a result.\n\n **Token scopes**: `worker:read`","operationId":"previewJobOfferLetter-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor":{"post":{"path":"/rest/eor","tags":["EOR"],"method":"post","summary":"Create an EOR contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"contract-12345","nullable":false,"description":"ID of the created contract quote."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"eor","description":"Type of the contract."},"costs":{"type":"object","properties":{"summary":{"type":"object","properties":{"salary":{"type":"string","example":"700,000.00","description":"Annual gross salary in local currency."},"currency":{"type":"string","example":"EUR","description":"Local currency code (e.g., BRL, PLN)."},"exchange_rate":{"type":"string","example":"0.92","description":"Exchange rate used to convert from local to supporting currency."},"totals_formatted":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","example":"Monthly total","description":"Display title for the total (e.g., 'Monthly Total')."},"total":{"type":"string","example":"61,613.86","description":"Formatted amount in local currency."},"frequency":{"type":"string","example":"monthly","description":"Time period for the total (e.g., monthly, annual)."},"total_supporting":{"type":"string","example":"67,116.35","description":"Formatted amount in supporting currency."}}},"description":"Formatted summary totals in both local and supporting currencies."},"supporting_currency":{"type":"string","example":"USD","description":"Reference or secondary currency (e.g., USD) used for reporting totals."}},"description":"Top-level overview of costs, including key totals and currency metadata."},"sections":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"MONTHLY_EMPLOYMENT_BREAKDOWN","description":"Internal identifier for the cost section (e.g., MONTHLY_EMPLOYMENT_BREAKDOWN)."},"label":{"type":"string","example":"Monthly employment breakdown","description":"Display name for the cost section."},"groups":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"GROSS_MONTHLY_SALARY","description":"Internal identifier for the group."},"costs":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","example":"Salary","description":"Name of the specific cost item (e.g., Salary, Meal Voucher)."},"totals":{"type":"array","items":{"type":"object","properties":{"total":{"type":"string","example":"58,333.33","description":"Total cost amount in local currency."},"frequency":{"type":"string","example":"monthly","description":"How often this cost occurs (e.g., monthly, annual, one-time)."},"total_supporting":{"type":"string","example":"63,542.84","description":"Total cost amount in the supporting currency."}}},"description":"Monthly and annual totals for the cost item in local and supporting currencies."}}},"description":"Individual cost items within the group."},"label":{"type":"string","example":"Gross salary","description":"Display name for the group (e.g., Gross Salary, Employer Cost)."},"totals":{"type":"array","items":{"type":"object","properties":{"total":{"type":"string","example":"58,633.33","description":"Group total in local currency."},"frequency":{"type":"string","example":"monthly","description":"How often the total is calculated (e.g., monthly, annual)."},"total_supporting":{"type":"string","example":"63,869.63","description":"Group total in supporting currency."}}},"description":"Aggregated totals for all items within the group."},"has_breakdown":{"type":"boolean","example":true,"description":"Indicates if the group contains multiple detailed cost items to be expanded."}}},"description":"Collections of related costs grouped under a common label."},"totals":{"type":"array","items":{"type":"object","properties":{"total":{"type":"string","example":"61,613.86","description":"Total cost for the section in local currency."},"frequency":{"type":"string","example":"monthly","description":"How often the total is calculated (e.g., monthly, annual)."},"total_supporting":{"type":"string","example":"67,116.35","description":"Total cost for the section in supporting currency."}}},"description":"Overall totals for the section, summing all groups and standalone items."},"is_summarized":{"type":"boolean","example":true,"description":"Indicates whether the section is presented in summarized form."},"standalone_items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"One off payment","description":"Internal identifier for the standalone cost item."},"label":{"type":"string","example":"Printed Agreement handling fee","description":"Display name for the standalone cost item."},"totals":{"type":"array","items":{"type":"object","properties":{"total":{"type":"string","example":"73.44","description":"Standalone cost amount in local currency."},"frequency":{"type":"string","example":"monthly","description":"How often this cost occurs (e.g., monthly, annual, one-time)."},"total_supporting":{"type":"string","example":"80.00","description":"Standalone cost amount in the supporting currency."}}},"description":"Monthly and annual totals for the standalone item in local and supporting currencies."}}},"description":"Cost items that do not belong to regular groups, often irregular or one-off costs."}}},"description":"Detailed and categorized cost sections including grouped and standalone items."},"additional_data":{"type":"object","example":{},"properties":{"annual_notes":{"type":"array","items":{"type":"string"},"example":[],"description":"Notes or assumptions specifically relevant to annual cost calculations."},"monthly_notes":{"type":"array","items":{"type":"string"},"example":[],"description":"Notes or assumptions specifically relevant to monthly cost calculations."},"once_off_notes":{"type":"array","items":{"type":"string"},"example":[],"description":"Notes regarding one-time costs or irregular payments in the quote."},"additional_notes":{"type":"array","items":{"type":"string"},"example":["Kindly note that the onboarding process for employees in this country requires the completion of a QES (Qualified Electronic Signature) process, which carries a fee of $80 USD. This fee is designed to cover the additional administrative expenses associated with the QES process. In the event that the QES option is not available, an alternative would be to proceed with a printed agreement signature process, incurring costs of $80 USD. These costs include expenses for printing, shipping, and handling related to the signing of the printed agreement.","Deel can countersign the employment agreement once you provide a Qualifying Electronic Signature (QES). After the employee registers on the Deel platform, we will notify and invite you to sign the Scope of Work, through the QES process. Please note that we are unable to proceed with your employee full onboarding until you complete this QES signing step."],"description":"General conditions, assumptions, or fees that may apply to the quote."}},"description":"Supplementary notes and contextual information relevant to the cost quote."}},"description":"Detailed breakdown of employment costs including summary totals, sectioned cost groups, and additional context notes.","x-sensitive-employment":true},"client":{"type":"object","example":{"legal_entity":{"name":"Acme Corporation"}},"properties":{"legal_entity":{"type":"object","properties":{"name":{"type":"string","example":"Acme Corporation","description":"Legal entity name"}}}},"description":"Client information for the contract."},"status":{"enum":["new","under_review","waiting_for_employee_contract","waiting_for_client_sign","processing_payment","waiting_for_contractor_sign","waiting_for_eor_sign","waiting_for_employee_sign","awaiting_deposit_payment","in_progress","completed","cancelled","user_cancelled","rejected","waiting_for_client_payment","onboarding"],"type":"string","example":"new","nullable":false,"description":"Current status of the contract."},"employee":{"type":"object","properties":{"email":{"type":"string","example":"john.doe@example.com","description":"Employee's email","x-sensitive-pii":true},"last_name":{"type":"string","example":"Doe","description":"Employee's last name","x-sensitive-pii":true},"first_name":{"type":"string","example":"John","description":"Employee's first name","x-sensitive-pii":true},"legal_name":{"type":"string","example":"Johnathan Doe","description":"Employee's legal name","x-sensitive-pii":true}}},"job_title":{"type":"string","example":"Software Engineer","description":"Employee's job title"},"seniority":{"type":"object","required":["id","name"],"properties":{"id":{"type":"integer","example":1,"description":"Seniority level ID"},"name":{"type":"string","example":"Senior","description":"Seniority level name"}},"description":"Seniority level of the employee"},"created_at":{"type":"string","format":"date-time","example":"2025-01-01T12:00:00Z","description":"Contract creation timestamp"},"employment":{"type":"object","properties":{"state":{"type":"string","example":"CA","nullable":true,"description":"State or province of employment"},"country":{"type":"string","example":"US","description":"Country of employment"},"end_date":{"type":"string","format":"date-time","example":"2025-12-31T00:00:00Z","nullable":true,"description":"Employment end date"},"start_date":{"type":"string","format":"date-time","example":"2025-01-15T00:00:00Z","description":"Employment start date"},"scope_of_work":{"type":"string","example":"Full time engineering duties including backend and API work.","description":"Scope of work description."},"time_off_type":{"type":"string","example":"STANDARD","description":"Type of time off for the employee"},"probation_period":{"type":"integer","example":90,"nullable":true,"description":"Number of probation days"},"work_visa_required":{"type":"boolean","example":false,"description":"If a work visa is required"},"calculated_holidays":{"type":"string","example":"20","description":"Number of calculated holidays"}},"description":"Employment contract specific details."},"health_plan":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"healthplan-123","description":"Health plan ID"},"name":{"type":"string","example":"Premium Health","description":"Health plan name"}}},"compensation_details":{"type":"object","properties":{"salary":{"type":"string","example":"100000","description":"Gross annual salary"},"currency":{"type":"string","example":"USD","description":"Currency of the salary"},"variable_compensation":{"type":"string","example":"5","description":"Variable compensation account or percentage"},"variable_compensation_type":{"type":"string","example":"PERCENTAGE","nullable":true,"description":"Type of variable compensation"}},"x-sensitive-employment":true}}}}}}},"description":"Successfully created the EOR contract quote."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":400,"message":"Invalid input data provided for the EOR contract."}},"summary":"Example error response"}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":500,"message":"An unexpected error occurred while creating the EOR contract."}},"summary":"Example server error response"}}}},"description":"Internal server error."}},"parameters":[],"description":"Submits details for an Employee of Record (EOR) contract and returns a quote. Deel processes the submitted information and returns pricing, compensation, and health plan details before the contract is activated.\n\n **Token scopes**: `contracts:write`","operationId":"createAnEorContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["employment","employee","job_title","seniority","client","compensation_details"],"properties":{"client":{"type":"object","required":["team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}],"example":"team-12345","description":"Team identifying information."}}},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}],"example":"entity-67890","description":"Legal entity reference for the client."}}}},"description":"Client details for the contract."},"pension":{"type":"object","properties":{"id":{"type":"string","example":"pension-001","description":"Pension provider id. You can see available pension providers in the country guide endpoint."},"contribution":{"type":"string","example":"5%","description":"Enter the value of pension contribution. You should send this value only if the contribution object is available in the country guide endpoint and the value should be there between minimum and maximum values indicated."}},"description":"Some countries required a pension benefit."},"benefits":{"type":"array","items":{"type":"object","properties":{"plan_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of a benefits plan to include in the calculation."},"cover_all":{"type":"boolean","example":true,"description":"Flag indicating if benefit will fully cover the employee."},"provider_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The ID of a benefits provider to include in the calculation."},"contribution":{"type":"number","example":100,"description":"The amount the client will contribute for the benefit in the currency of the contract. Only taken into account if cover_all is set to false. For Unisure provider contribution is always in USD."},"cover_dependents":{"type":"boolean","example":true,"description":"Flag indicating if benefit will cover dependents. Only needed if cover_all is set to true."}},"description":"List of additional benefits to include in the calculation"}},"employee":{"type":"object","required":["first_name","last_name","nationality"],"properties":{"email":{"type":"string","example":"john.doe@example.com","description":"Employee's email address."},"address":{"type":"object","nullable":true,"properties":{"zip":{"type":"string","example":"44000","description":"Zip code."},"city":{"type":"string","example":"Denver","description":"City name."},"state":{"type":"string","example":"CO","nullable":true,"description":"State code."},"street":{"type":"string","example":"Deel Street 500","description":"Street and number."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."}}},"last_name":{"type":"string","example":"Doe","description":"Employee's last name."},"first_name":{"type":"string","example":"John","description":"Employee's first name."},"external_id":{"type":"string","example":"ext-employee-001","description":"External identifier of the employee."},"nationality":{"type":"string","example":"US","description":"Employee's nationality."},"pf_deductions":{"enum":["12% of Basic","12% of Rs 15,000 (Rs 1,800)"],"type":"string","example":"12% of Basic","description":"Employee's PF deductions. Required only for India contracts."}}},"job_title":{"type":"string","example":"Senior Backend Engineer","description":"Employee's job title."},"seniority":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}],"example":"seniority-123","description":"Identifier for the seniority level (string or numeric ID)."}},"description":"Seniority selection for the role."},"employment":{"type":"object","example":{"country":"US","start_date":"2024-01-15","scope_of_work":"Scope of work description."},"required":["country","start_date","work_visa_required","scope_of_work"],"properties":{"type":{"enum":["Full-time","Part-time"],"type":"string","example":"Full-time","description":"Is it a full-time contract or a part-time contract?"},"state":{"type":"string","example":"CO","nullable":true,"description":"State code of the state/province where the this person will be employed."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code of employment."},"end_date":{"type":"string","format":"date","example":"2024-12-31","nullable":true,"description":"End date in ISO-8601 format (YYYY-MM-DD)."},"holidays":{"type":"number","example":20,"nullable":true,"description":"Enter the number of holidays. Leave this field blank if you are choosing \"STANDARD\" time_off_type."},"is_hourly":{"type":"boolean","example":true,"description":"Is the employee contract hourly instead of salaried?"},"start_date":{"type":"string","format":"date","example":"2024-01-15","description":"Start date in ISO-8601 format (YYYY-MM-DD)."},"scope_of_work":{"anyOf":[{"type":"string","example":"Scope of work description.","maxLength":10000,"minLength":100,"description":"Scope of work description."},{"type":"object","properties":{"scope_template_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Scope template UUID."}}},{"type":"object","properties":{"scope_validation_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Scope validation UUID."}}}],"example":"Scope of work description.","description":"Scope of work; either a string with full text or an object referencing a template/validation UUID."},"time_off_type":{"enum":["STANDARD","SPECIFIC"],"type":"string","example":"STANDARD","description":"If you want to use standard number of holidays for this employee, choose \"STANDARD\". If you want to enter a specific number of holidays, choose \"SPECIFIC\" and enter the number of days in the holidays field."},"seniority_date":{"type":"string","format":"date","example":"2020-01-15","description":"Seniority date"},"sick_leave_days":{"type":"integer","example":10,"description":"Number of sick leave days"},"probation_period":{"type":"number","example":30,"nullable":true,"description":"Number of probation days."},"notice_period_type":{"enum":["STANDARD","CUSTOM"],"type":"string","example":"STANDARD","description":"Type of notice period."},"work_visa_required":{"type":"boolean","default":false,"example":false,"description":"Do you require Deel to apply for work visa for this person?"},"work_hours_per_week":{"type":"number","example":30,"description":"Employee's work hours per week. Required only if contract is set as hourly."},"probation_period_time_unit":{"enum":["DAY","WEEK","MONTH"],"type":"string","example":"MONTH","description":"Time unit of probation period."},"notice_period_after_probation":{"type":"number","example":30,"nullable":true,"description":"Notice period after probation required when type is CUSTOM."},"notice_period_during_probation":{"type":"number","example":14,"nullable":true,"description":"Notice period during probation required when type is CUSTOM."},"employee_completed_past_probation":{"type":"boolean","default":false,"example":false,"description":"Whether the employee has previously passed the probation period."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM"],"type":"string","example":"STANDARD","description":"Type of probation period for definite contracts."},"notice_period_after_probation_time_unit":{"enum":["DAY","WEEK","MONTH"],"type":"string","example":"DAY","description":"Time unit of notice period after probation."},"notice_period_during_probation_time_unit":{"enum":["DAY","WEEK","MONTH"],"type":"string","example":"DAY","description":"Time unit of notice period during probation."}},"description":"Employment contract specific details."},"health_plan_id":{"type":"string","example":"healthplan-123","description":"Healthcare plan id. You can see available healthcare plans in the country guide endpoint."},"compensation_details":{"type":"object","required":["currency"],"properties":{"salary":{"type":"number","example":100000,"description":"Employee's gross annual salary. Required only if contract is salaried."},"currency":{"type":"string","example":"USD","description":"Salary currency."},"hourly_rate":{"type":"number","example":25,"description":"Employee's hourly rate. Required only if contract is set as hourly."},"signing_bonus":{"type":"number","example":1000,"nullable":true,"description":"Signing bonus amount."},"fixed_adjustments":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Internet Allowance","description":"Adjustment name."},"value":{"type":"number","example":150,"description":"Adjustment value."},"opt_out":{"type":"boolean","example":false,"description":"Whether the adjustment is being opted out of."},"optional":{"type":"boolean","example":false,"description":"Whether the adjustment is optional."},"description":{"type":"string","example":"Internet Allowance","description":"Adjustment description."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the adjustment is paid recurring monthly or one-time on employee's first payroll."},"rule_cost_id":{"type":"string","example":"rule-cost-123","description":"Identifier of the rule cost associated with the adjustment."},"is_country_specific":{"type":"boolean","example":true,"description":"Whether this adjustment is country-specific."},"skipping_confirmation_text":{"type":"string","example":"Skipping confirmation text","description":"Optional skipping confirmation text shown to the user."}}}},"variable_compensation":{"type":"number","example":5,"nullable":true,"description":"Variable compensation. For example, if the person will earn 5% of the gross annual salary as the variable compensation, enter 5."},"signing_bonus_payout_type":{"enum":["FIRST_CYCLE","AFTER_PROBATION","AFTER_FIRST_CONTRACT_ANNIVERSARY",null],"type":"string","example":"AFTER_PROBATION","nullable":true,"description":"Should be set only if signing_bonus is set. It defines when the bonus is paid."},"variable_compensation_type":{"enum":["PERCENTAGE","FIXED",null],"type":"string","example":"PERCENTAGE","nullable":true,"description":"Should be set only if variable_compensation is set. It can be PERCENTAGE or FIXED."},"variable_compensation_title":{"type":"string","example":"Annual Bonus","description":"Variable compensation title."},"variable_compensation_timeline":{"enum":["ANNUALLY","BIANNUALLY","QUARTERLY","MONTHLY"],"type":"string","example":"QUARTERLY","nullable":true,"description":"Variable compensation timeline."},"variable_compensation_effective_date":{"type":"string","format":"date","example":"2024-01-01","description":"Variable compensation effective date."}}},"quote_additional_fields":{"type":"object","nullable":true,"properties":{"dob":{"type":"string","example":"1990-01-01","description":"Employee's date of birth."},"gender":{"type":"string","example":"female","description":"Employee's gender."},"worker_type":{"enum":["Skilled","Unskilled"],"type":"string","example":"Skilled","description":"Type of worker."}},"description":"Some countries require additional employee information for employment contracts."}}}}}}},"required":true,"description":"The details of the Employee (EOR) contract to be created."},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/eor/workers/banks":{"post":{"path":"/rest/eor/workers/banks","tags":["EOR"],"method":"post","summary":"Add bank account","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id"],"properties":{"id":{"type":"string","example":"dcc7b587-2246-4909-853e-12056e90c451","description":"ID of Bank Account."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Registers a bank account for an EOR employee. Returns the `id` of the newly created bank account record.\n\n **Token scopes**: `worker:write`","operationId":"addBankAccount-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","example":"beneficiaryName","description":"The key of the bank account properties."},"value":{"type":"string","example":"John Doe","description":"The value for that key property."}}},"description":"Array of key value properties of bank account"}}}}}},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/eor/contracts/{contract_id}/offboarding/attachments/{attachment_id}":{"get":{"path":"/rest/eor/contracts/{contract_id}/offboarding/attachments/{attachment_id}","tags":["EOR"],"method":"get","summary":"Retrieve offboarding attachment","responses":{"200":{"content":{"application/pdf":{"schema":{"type":"string","format":"binary","description":"PDF file content"}}},"headers":{"Content-Type":{"schema":{"enum":["application/pdf"],"type":"string"},"description":"MIME type of the file"},"Content-Length":{"schema":{"type":"string"},"description":"Size of the file in bytes"},"Content-Disposition":{"schema":{"type":"string","example":"attachment; filename=\"document.pdf\""},"description":"Attachment disposition with filename"}},"description":"File download successful"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"123E4567","required":true,"description":"The unique identifier of the employee contract."},{"in":"path","name":"attachment_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The unique identifier of the attachment to download."}],"description":"Downloads the content of a specific attachment associated with the termination for a given contract.\n\n **Token scopes**: `contracts:read`","operationId":"retrieveOffboardingAttachment-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/workers/resignations":{"get":{"path":"/rest/eor/workers/resignations","tags":["EOR"],"method":"get","summary":"Retrieve worker resignations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","contract_id","created_at","updated_at","status","desired_end_date","end_date","resignation_letter"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the resignation"},"status":{"enum":["CREATED","COMPLETED","AWAITING_REFUND","PROCESSING","AWAITING_TRIAGE","AWAITING_PROCESSING","CANCELLED","AWAITING_PTO"],"type":"string","example":"COMPLETED","description":"The status of the resignation"},"end_date":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00Z","nullable":true,"description":"The confirmed end date of the resignation","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00Z","description":"The date and time the resignation was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00Z","description":"The date and time the resignation was updated"},"contract_id":{"type":"string","example":"ABC123","description":"The unique identifier of the employee contract."},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00Z","nullable":true,"description":"The desired end date of the resignation","x-sensitive-pii":true},"resignation_letter":{"type":"object","nullable":true,"required":["id","status","signed_at","signature","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the resignation letter"},"status":{"enum":["AWAITING_SIGNATURE","SIGNED"],"type":"string","example":"AWAITING_SIGNATURE","description":"The status of the resignation letter"},"signature":{"type":"string","example":"John Doe","nullable":true,"description":"The signature of the resignation letter","x-sensitive-pii":true,"x-sensitive-employment":true},"signed_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00Z","nullable":true,"description":"The date and time the resignation letter was signed"},"created_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00Z","description":"The date and time the resignation letter was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00Z","description":"The date and time the resignation letter was updated"}}}}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"query","name":"status","schema":{"enum":["AWAITING_SIGNATURE","SIGNED"],"type":"string"},"example":"AWAITING_SIGNATURE","required":false,"description":"Filter by resignation letter status"}],"description":"Returns resignations submitted by EOR workers, optionally filtered by resignation letter status.\n\n **Token scopes**: `worker:read`","operationId":"retrieveWorkerResignations-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/hris/worker_relations/profile/{hrisProfileOid}":{"get":{"path":"/rest/hris/worker_relations/profile/{hrisProfileOid}","tags":["Worker Relations"],"method":"get","summary":"List of worker relations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the relation type"},"name":{"type":"string","example":"Parent","description":"The name of the relation type"},"is_parent":{"type":"boolean","example":true,"description":"Whether this relation is the parent or not"},"is_default":{"type":"boolean","example":true,"description":"Whether this relation is default or not"},"child_relationships":{"type":"array","items":{"type":"object","properties":{"last_name":{"type":"string","example":"Doe","description":"The last name of the child profile"},"first_name":{"type":"string","example":"John","description":"The first name of the child profile"},"profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the child profile"},"relation_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the relation between the profiles"}}},"description":"An array containing the information about the child profiles in the relation."},"parent_relationship":{"type":"object","nullable":true,"properties":{"last_name":{"type":"string","example":"Doe","description":"The last name of the parent profile"},"first_name":{"type":"string","example":"Jane","description":"The first name of the parent profile"},"profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the parent profile"},"relation_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the relation between the profiles"}},"description":"An object that has information about the parent profile in the relation."}}},"description":"An array containing the Worker Relations of the profile. It includes either the parent or child relations."}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"hrisProfileOid","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"HrisProfile ID"}],"description":"Returns all worker relations associated with the HrisProfile, including both parent and child relationships.\n\n **Token scopes**: `profile:read`","operationId":"getAllProfileWorkerRelations-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["profile:read"]}]},"delete":{"path":"/rest/hris/worker_relations/profile/{hrisProfileOid}","tags":["Worker Relations"],"method":"delete","summary":"Delete a worker relation","responses":{"204":{"description":"Successfully deleted"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"hrisProfileOid","schema":{"type":"string","format":"uuid"},"example":"c5d1b0e1-1f2b-4f6d-9b5f-2b0d7b3dcb6d","required":true,"description":"Worker Relation ID"}],"description":"Removes the worker relation. This operation removes all hierarchical associations (parent and child) linked to that profile.\n\n **Token scopes**: `profile:write`","operationId":"deleteWorkerRelation-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/immigration/workers/{worker_id}/onboarding-case":{"get":{"path":"/rest/immigration/workers/{worker_id}/onboarding-case","tags":["Immigration"],"method":"get","summary":"Retrieve onboarding right-to-work case for a worker","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of immigration case."},"status":{"enum":["OPEN","CLOSED","ON_HOLD"],"type":"string","example":"OPEN","description":"Status of the immigration case."},"process":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the current active process."},"name":{"enum":["WORK_AUTHORIZATION_VERIFICATION"],"type":"string","example":"WORK_AUTHORIZATION_VERIFICATION","description":"Name of the current active process."},"status":{"enum":["CANCELLED","AWAITING_DOCUMENTS","IN_REVIEW","APPROVED","REJECTED"],"type":"string","example":"IN_REVIEW","description":"Status of the current active process."},"rejection_note":{"type":"string","example":"We couldn't accept the document because the file or photo that has been submitted cannot be read fully.","description":"A detailed description of why the case was rejected. Only available if the case status is REJECTED."},"rejection_reason":{"type":"string","example":"Poor image quality","description":"The reason why the case was rejected. Only available if the case status is REJECTED."}},"description":"The current active process"},"contract":{"type":"object","properties":{"id":{"type":"string","example":"359pr8y","nullable":true,"description":"Id of the contract associated with the immigration case"}},"description":"The contract associated with the returned immigration case"},"applicant":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the applicant profile id."},"external_id":{"type":"string","example":"123456","nullable":true,"description":"External identifier of the applicant  (from partner system or third party)."}},"description":"The employee for which this Right to Work case has been created for"},"case_type":{"enum":["IMMIGRATION_DOCUMENT_REVIEW"],"type":"string","example":"IMMIGRATION_DOCUMENT_REVIEW","description":" Type of the case. It will always be IMMIGRATION_DOCUMENT_REVIEW for this endpoint."},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the document."},"status":{"enum":["IN_REVIEW","ACTIVE","EXPIRED","EXPIRING"],"type":"string","example":"EXPIRING","description":"Status of the document."},"document_type":{"type":"string","example":"Eu blue card","nullable":true,"description":"The type of the document. Represents the visa type for right to work cases."},"expiration_date":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","nullable":true,"description":"Expiry date of the document. If document does not expire, it will be null"}}},"description":"A list of documents associated to the immigration case"},"visa_type":{"type":"string","example":"Eu blue card","nullable":true,"description":"The type of the visa."},"created_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Creation date of the immigration case."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Last activity on the immigration case."},"country_code":{"type":"string","example":"DE","description":"The country of the immigration case."},"estimated_completion_date":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","nullable":true,"description":"Estimated completion date of the immigration case."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/worker_id","description":"Worker id (hris profile id)"},"message":{"type":"string","example":"Must have required property 'worker_id'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message","code","field"],"properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"field":{"type":"string","example":"worker_id","description":"Worker id (hris profile id)"},"message":{"type":"string","example":"Onboarding case not found, please verify the worker_id","description":"Human-readable explanation of the error"}}}}}}}},"description":"Case not found."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"contract_id","schema":{"type":"string"},"example":"359pr8y","required":false,"description":"Filters the worker's onboarding case to a specific contract. If the worker has multiple contracts and this parameter is omitted, the response may return a case from any associated contract; the response includes contract.id to indicate which contract was used. Provide this parameter for deterministic results."},{"in":"path","name":"worker_id","schema":{"type":"string"},"example":"a6fb5c89-5abd-45d1-afc1-7e98d550eb71","required":true,"description":"The hris profile oid (public id) of the worker."}],"description":"Returns the right-to-work onboarding case for a worker, including any associated documents; returns an empty response if no open case exists. When a worker is associated with multiple contracts, supply `contract_id` to target a specific contract.\n\n **Token scopes**: `worker:read`","operationId":"retrieveOnboardingRightToWorkCaseForAWorker-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/payouts/auto-withdrawal-setting":{"patch":{"path":"/rest/payouts/auto-withdrawal-setting","tags":["Payouts"],"method":"patch","summary":"Change the auto-withdrawal setting","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"method_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The ID of the withdrawal method to be used for auto withdrawal"},"is_auto_withdraw_enabled":{"type":"boolean","example":true,"description":"Whether auto withdrawal is enabled"}}}}}}},"description":"Successfully update auto-withdrawal settings"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{}},"description":"Method not found."},"500":{"content":{"application/json":{}},"description":"Operation failed."}},"parameters":[],"description":"Partially updates the auto-withdrawal configuration, allowing callers to enable or disable auto-withdrawal and change the target withdrawal method.\n\n **Token scopes**: `worker:write`","operationId":"changeTheAutoWithdrawalSetting-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"method_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The ID of the withdrawal method to be used for auto withdrawal"},"is_auto_withdraw_enabled":{"type":"boolean","example":true,"description":"Whether auto withdrawal should be enabled"}}}}}}},"required":true,"description":"Change the auto withdrawal setting"},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]},"get":{"path":"/rest/payouts/auto-withdrawal-setting","tags":["Payouts"],"method":"get","summary":"Get the auto-withdrawal setting","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"method_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","nullable":true,"description":"The ID of the withdrawal method to be used for auto withdrawal"},"is_auto_withdraw_enabled":{"type":"boolean","example":true,"description":"Whether auto withdrawal is enabled"}}}}}}},"description":"Auto-withdrawal setting result"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{}},"description":"Operation failed."}},"parameters":[],"description":"Returns the current auto-withdrawal configuration for the authenticated worker, including whether auto-withdrawal is enabled and the identifier of the selected withdrawal method.\n\n **Token scopes**: `worker:read`","operationId":"getTheAutoWithdrawalSetting-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/contracts/{contract_id}/employee-agreement-draft-preview":{"get":{"path":"/rest/eor/contracts/{contract_id}/employee-agreement-draft-preview","tags":["EOR"],"method":"get","summary":"Get employee agreement draft preview","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"url":{"type":"string","example":"https://s3.amazonaws.com/bucket/draft.pdf?X-Amz-Signature=abc","description":"Signed URL to download the draft PDF. Valid for 15 minutes. Present only when is_processing is false."},"task_id":{"type":"string","example":"84alrNyEwr","description":"Async task ID. Use this in subsequent requests to poll."},"is_processing":{"type":"boolean","example":true,"description":"True while generation is in progress; false when the url is ready."}}}}}}},"description":"Draft preview initiated or ready."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"message":{"type":"string","example":"Invalid template or contract.","description":"A description of the returned error"}}}}},"description":"Generation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"Contract or template not found.","description":"A description of the returned error"}}}}},"description":"Contract or template not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","pattern":"^(([a-z0-9]{6,})|([a-z0-9-_]{20,})|(-2[0-9]{2}))$"},"example":"38j84xg","required":true,"description":"The unique identifier of the EOR contract."},{"in":"query","name":"task_id","schema":{"type":"string"},"example":"84alrNyEwr","required":false,"description":"Task ID from a previous response. Omit on first call. Provide on subsequent calls to poll for completion."}],"description":"Initiates or polls for async generation of an employee agreement template PDF draft. On first call (no task_id), kicks off generation and returns a task_id with is_processing: true. Poll with ?task_id=<value> until is_processing is false, at which point url contains a signed download link valid for 15 minutes.\n\n **Token scopes**: `contracts:read`","operationId":"getEmployeeAgreementDraftPreview-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/details":{"get":{"path":"/rest/eor/contracts/{contract_id}/details","tags":["EOR"],"method":"get","summary":"Retrieve EOR Contract Details","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","example":"38j84xg","description":"The unique identifier for the Deel contract."},"name":{"type":"string","example":"John Doe - 3D Artist","description":"Contract name"},"team":{"type":"object","properties":{"id":{"type":"string","example":"c4d1b604-54ef-4856-b561-d7cd90e2e306","description":"The unique identifier for the team."},"name":{"type":"string","example":"Cool team","description":"The name of the team."}}},"salary":{"type":"string","example":"150000.0000","nullable":false,"description":"Annual salary as a string to preserve decimal precision.","x-sensitive-employment":true},"status":{"enum":["under_review","waiting_for_employee_contract","waiting_for_client_sign","waiting_for_eor_sign","waiting_for_employee_sign","awaiting_deposit_payment","in_progress","completed","cancelled","user_cancelled","rejected"],"type":"string","example":"under_review","description":"The current status of the contract."},"creator":{"type":"object","properties":{"name":{"type":"string","example":"John Doe","description":"The name of the contract creator."},"email":{"type":"string","example":"510cd749d273e83a197ebd9e4342336f@test.com","description":"The email address of the contract creator."},"firstname":{"type":"string","example":"John","description":"The first name of the contract creator."}},"x-sensitive-pii":true},"currency":{"type":"string","example":"MXN","description":"The currency used in the contract."},"employee":{"type":"object","nullable":false,"properties":{"email":{"type":"string","example":"albert.einstein@test.com","description":"The email of the employee.","x-sensitive-pii":true},"pic_url":{"type":"string","example":"https://media.letsdeel.com/avatar/XXXXXXXX?q=0000000000000","nullable":true,"description":"URL to employee's picture.","x-sensitive-pii":true},"last_name":{"type":"string","example":"Einstein","description":"The last name of the employee.","x-sensitive-pii":true},"first_name":{"type":"string","example":"Albert","description":"The first name of the employee.","x-sensitive-pii":true},"legal_name":{"type":"string","example":"Albert Einstein","description":"The legal name of the employee.","x-sensitive-pii":true},"nationality":{"type":"string","example":"MX","description":"Two letter country code of the employee nationality."}},"description":"Employee details"},"end_date":{"type":"string","format":"date-time","example":"2026-08-10T23:59:59.999Z","nullable":true,"description":"The end date of the contract, if applicable."},"holidays":{"type":"integer","example":25,"nullable":true,"description":"Number of holidays for the contract."},"timezone":{"type":"string","example":"UTC","description":"The timezone of the contract."},"seniority":{"type":"object","properties":{"id":{"type":"number","example":"185","description":"The unique identifier for the seniority level."},"name":{"type":"string","example":"Junior (Individual Contributor Level 1)","description":"The name of the seniority level."}}},"sick_days":{"type":"object","nullable":false,"properties":{"max":{"type":"string","example":"364.0000","nullable":true,"description":"Maximum number of sick days allowed."},"min":{"type":"string","example":"0.0000","nullable":true,"description":"Minimum number of sick days allowed."}},"description":"Allowed sick days range."},"work_visa":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if a work visa is required."},"created_at":{"type":"string","format":"date-time","example":"2025-04-02T20:31:01.645Z","description":"The date and time when the contract was created."},"start_date":{"type":"string","format":"date-time","example":"2025-04-04T00:00:00.000Z","nullable":false,"description":"The start date of the contract."},"updated_at":{"type":"string","format":"date-time","example":"2025-04-02T20:31:02.993Z","description":"The date and time when the contract was last updated."},"description":{"type":"string","example":"Duties and Responsibilities\n\n- Create detailed business plans designed to attain predetermined goals and quotas.","description":"Contract description"},"hourly_rate":{"type":"string","example":"50.00","nullable":true,"description":"Hourly rate as a string to preserve decimal precision.","x-sensitive-employment":true},"signed_date":{"type":"string","format":"date-time","example":"2025-04-04T03:09:15.378Z","nullable":true,"description":"The date and time when the contract was signed by both parties."},"cancelled_at":{"type":"string","format":"date-time","example":"2025-04-04T03:09:15.378Z","nullable":true,"description":"The date and time when the contract was cancelled."},"completed_at":{"type":"string","format":"date-time","example":"2025-04-04T03:09:15.378Z","nullable":true,"description":"The date and time when the contract was completed."},"payroll_type":{"enum":["BIMONTHLY","MONTHLY"],"type":"string","example":"BIMONTHLY","description":"Payroll frequency for the contract"},"can_adjust_on":{"type":"object","nullable":true,"properties":{"end":{"type":"string","example":"2025-04-20T00:00:00.000Z","description":"End of the period when adjustments can be made."},"start":{"type":"string","example":"2025-04-04T00:00:00.000Z","description":"Start of the period when adjustments can be made."}},"description":"Time frame when adjustments can be made."},"contract_type":{"enum":["eor"],"type":"string","example":"eor","description":"The type of contract."},"scope_of_work":{"type":"string","example":"Duties and Responsibilities\n\n- Create detailed business plans designed to attain predetermined goals and quotas.\n- Manage the entire sales cycle from finding a client to securing a deal.\n- Unearth new sales opportunities through networking and turn them into long-term partnerships.\n- Present products to prospective clients.\n- Provide professional after-sales support to maximize customer loyalty.\n- Remain in regular contact with your clients to understand and meet their needs.\n- Respond to complaints and resolve issues to the customer's satisfaction and to maintain the company's reputation.\n- Negotiate agreements.\n- Maintains all sales databases necessary to report sales activity and customer information.\n- Attends all sales meetings and training sessions as required by management.","nullable":false,"description":"Description of job scope and responsibilities."},"signing_bonus":{"type":"string","example":"18770.0000","nullable":true,"description":"One-time bonus paid at contract sign.","x-sensitive-employment":true},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","nullable":false,"description":"Type of time off policy."},"deposit_months":{"type":"string","example":"1.50","nullable":true,"description":"Number of deposit months required."},"effective_date":{"type":"string","format":"date-time","example":"2025-04-04T00:00:00.000Z","description":"The date and time when the contract is effective."},"job_title_name":{"type":"string","example":"3D Artist","nullable":true,"description":"The contract's job title."},"completion_date":{"type":"string","format":"date-time","example":"2025-04-04T00:00:00.000Z","nullable":true,"description":"The completion date of the contract."},"employment_type":{"enum":["Full-time","Part-time"],"type":"string","example":"Full-time","description":"The type of employment."},"hris_profile_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","nullable":true,"description":"The HRIS profile ID linked to this contract."},"client_signature":{"type":"string","example":"Alice Banks","nullable":true,"description":"The signature of the client."},"client_signed_at":{"type":"string","format":"date-time","example":"2025-04-04T00:00:00.000Z","nullable":true,"description":"The date and time when the client signed the contract."},"employment_costs":{"type":"object","nullable":true,"properties":{"summary":{"type":"object","properties":{"salary":{"type":"string","example":"700,000.00","description":"Annual gross salary in local currency."},"currency":{"type":"string","example":"EUR","description":"Local currency code (e.g., BRL, PLN)."},"exchange_rate":{"type":"string","example":"0.92","description":"Exchange rate used to convert from local to supporting currency."},"totals_formatted":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","example":"Monthly total","description":"Display title for the total (e.g., 'Monthly Total')."},"total":{"type":"string","example":"61,613.86","description":"Formatted amount in local currency."},"frequency":{"type":"string","example":"monthly","description":"Time period for the total (e.g., monthly, annual)."},"total_supporting":{"type":"string","example":"67,116.35","description":"Formatted amount in supporting currency."}}},"description":"Formatted summary totals in both local and supporting currencies."},"supporting_currency":{"type":"string","example":"USD","description":"Reference or secondary currency (e.g., USD) used for reporting totals."}},"description":"Top-level overview of costs, including key totals and currency metadata."},"sections":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"MONTHLY_EMPLOYMENT_BREAKDOWN","description":"Internal identifier for the cost section (e.g., MONTHLY_EMPLOYMENT_BREAKDOWN)."},"label":{"type":"string","example":"Monthly employment breakdown","description":"Display name for the cost section."},"groups":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"GROSS_MONTHLY_SALARY","description":"Internal identifier for the group."},"costs":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","example":"Salary","description":"Name of the specific cost item (e.g., Salary, Meal Voucher)."},"totals":{"type":"array","items":{"type":"object","properties":{"total":{"type":"string","example":"58,333.33","description":"Total cost amount in local currency."},"frequency":{"type":"string","example":"monthly","description":"How often this cost occurs (e.g., monthly, annual, one-time)."},"total_supporting":{"type":"string","example":"63,542.84","description":"Total cost amount in the supporting currency."}}},"description":"Monthly and annual totals for the cost item in local and supporting currencies."}}},"description":"Individual cost items within the group."},"label":{"type":"string","example":"Gross salary","description":"Display name for the group (e.g., Gross Salary, Employer Cost)."},"totals":{"type":"array","items":{"type":"object","properties":{"total":{"type":"string","example":"58,633.33","description":"Group total in local currency."},"frequency":{"type":"string","example":"monthly","description":"How often the total is calculated (e.g., monthly, annual)."},"total_supporting":{"type":"string","example":"63,869.63","description":"Group total in supporting currency."}}},"description":"Aggregated totals for all items within the group."},"has_breakdown":{"type":"boolean","example":true,"description":"Indicates if the group contains multiple detailed cost items to be expanded."}}},"description":"Collections of related costs grouped under a common label."},"totals":{"type":"array","items":{"type":"object","properties":{"total":{"type":"string","example":"61,613.86","description":"Total cost for the section in local currency."},"frequency":{"type":"string","example":"monthly","description":"How often the total is calculated (e.g., monthly, annual)."},"total_supporting":{"type":"string","example":"67,116.35","description":"Total cost for the section in supporting currency."}}},"description":"Overall totals for the section, summing all groups and standalone items."},"is_summarized":{"type":"boolean","example":true,"description":"Indicates whether the section is presented in summarized form."},"standalone_items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"One off payment","description":"Internal identifier for the standalone cost item."},"label":{"type":"string","example":"Printed Agreement handling fee","description":"Display name for the standalone cost item."},"totals":{"type":"array","items":{"type":"object","properties":{"total":{"type":"string","example":"73.44","description":"Standalone cost amount in local currency."},"frequency":{"type":"string","example":"monthly","description":"How often this cost occurs (e.g., monthly, annual, one-time)."},"total_supporting":{"type":"string","example":"80.00","description":"Standalone cost amount in the supporting currency."}}},"description":"Monthly and annual totals for the standalone item in local and supporting currencies."}}},"description":"Cost items that do not belong to regular groups, often irregular or one-off costs."}}},"description":"Detailed and categorized cost sections including grouped and standalone items."},"additional_data":{"type":"object","properties":{"annual_notes":{"type":"array","items":{"type":"string"},"example":[],"description":"Notes or assumptions specifically relevant to annual cost calculations."},"monthly_notes":{"type":"array","items":{"type":"string"},"example":[],"description":"Notes or assumptions specifically relevant to monthly cost calculations."},"once_off_notes":{"type":"array","items":{"type":"string"},"example":[],"description":"Notes regarding one-time costs or irregular payments in the quote."},"additional_notes":{"type":"array","items":{"type":"string"},"example":["Kindly note that the onboarding process for employees in this country requires the completion of a QES (Qualified Electronic Signature) process, which carries a fee of $80 USD. This fee is designed to cover the additional administrative expenses associated with the QES process. In the event that the QES option is not available, an alternative would be to proceed with a printed agreement signature process, incurring costs of $80 USD. These costs include expenses for printing, shipping, and handling related to the signing of the printed agreement.","Deel can countersign the employment agreement once you provide a Qualifying Electronic Signature (QES). After the employee registers on the Deel platform, we will notify and invite you to sign the Scope of Work, through the QES process. Please note that we are unable to proceed with your employee full onboarding until you complete this QES signing step."],"description":"General conditions, assumptions, or fees that may apply to the quote."}},"description":"Supplementary notes and contextual information relevant to the cost quote."}},"description":"Detailed breakdown of employment costs including summary totals, sectioned cost groups, and additional context notes.","x-sensitive-employment":true},"employment_state":{"type":"string","example":"NJ","nullable":true,"description":"The state of the employment."},"hiring_objective":{"type":"object","nullable":true,"properties":{"type":{"enum":["EXPANDING_TO_NEW_COUNTRY","TEMP_EOR_OPENING_ENTITY","ONE_OFF_HIRE","CONVERTING_CONTRACTOR","OTHER"],"type":"string","example":"ONE_OFF_HIRE"},"extra_info":{"type":"string","example":"Planning to hire more soon","nullable":true}},"description":"Information about the hiring objective."},"probation_period":{"type":"integer","example":30,"nullable":false,"description":"Number of days in the probation period."},"compensation_type":{"enum":["HOURLY","ANNUAL",null],"type":"string","example":"HOURLY","nullable":true,"description":"Compensation type for the contract."},"employee_signed_at":{"type":"string","format":"date-time","example":"2025-04-04T00:00:00.000Z","nullable":true,"description":"Date and time when the employee signed."},"employment_country":{"type":"string","example":"US","description":"Two letter country code of the employment country."},"notice_period_type":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"STANDARD","nullable":true,"description":"Type of notice period if applicable."},"calculated_holidays":{"type":"string","example":"20","nullable":true,"description":"Calculated number of holidays as a string."},"original_start_date":{"type":"string","format":"date-time","example":"2025-04-04T00:00:00.000Z","nullable":false,"description":"The originally planned start date."},"work_hours_per_week":{"type":"string","example":"40.00","nullable":false,"description":"Number of work hours per week."},"contractor_signature":{"type":"string","example":"Charles Dickens","nullable":true,"description":"The signature of the EOR entity representative.","x-sensitive-pii":true},"contractor_signed_at":{"type":"string","format":"date-time","example":"2025-04-04T00:00:00.000Z","nullable":true,"description":"The date and time when the contractor signed the contract."},"effective_plain_date":{"type":"string","format":"date","example":"2025-04-04","description":"The effective date in plain format."},"fixed_adjustment_ids":{"type":"array","items":{"type":"string"},"example":["cm90dtiahuzmu5a0oyt3090b8"],"nullable":true,"description":"List of fixed adjustment ids."},"invited_client_email":{"type":"string","example":"employer@test.com","nullable":true,"description":"The email address of the invited client.","x-sensitive-pii":true},"last_quote_rejection":{"type":"object","nullable":true,"properties":{"created_at":{"type":"string","example":"2025-04-04T03:09:15.378Z","nullable":false,"description":"Timestamp of when the rejection was made."},"rejected_by":{"type":"object","nullable":false,"properties":{"name":{"type":"string","example":"Stephen King","nullable":false,"description":"Full name of the rejecting person.","x-sensitive-pii":true},"profile_public_id":{"type":"string","format":"uuid","example":"e2ad9db5-e245-4ffb-a13d-1c1c2f82c91b","nullable":false,"description":"Public identifier for the rejecting person's profile."}},"description":"Details of the person who rejected."},"rejection_type":{"enum":["CLIENT","EOR_AGENT"],"type":"string","example":"CLIENT","nullable":true,"description":"Type of rejection."},"rejection_reason":{"enum":["TOO_EXPENSIVE","DECIDED_AGAINST_EMPLOYING_EOR","TEST_QUOTE","NOT_SATISFIED_WITH_DEEL","INACCURATE_INFO_JOB_TITLE","INACCURATE_INFO_JOB_DESCRIPTION","INACCURATE_INFO_JOB_DUTIES_SCOPE_OF_WORK","OTHER"],"type":"string","example":"DECIDED_AGAINST_EMPLOYING_EOR","nullable":false,"description":"Reason why the rejection occurred."},"rejection_message":{"type":"string","example":"Scope is too broad","nullable":true,"description":"Optional message explaining the rejection."}},"description":"Timestamp of last quote rejection."},"completion_plain_date":{"type":"string","format":"date","example":"2024-12-31","nullable":true,"description":"The completion date of the contract in plain contract."},"is_onboarding_on_hold":{"type":"boolean","example":false,"nullable":false,"description":"Whether onboarding is currently on hold or not."},"monthly_employer_cost":{"type":"string","example":"4709.9400","nullable":false,"description":"Monthly cost to the employer."},"employee_late_sign_start":{"type":"string","format":"date-time","example":"2025-04-08T03:09:15.378Z","nullable":true,"description":"Date when employee signed late, if applicable."},"is_early_invoice_enabled":{"type":"boolean","example":false,"nullable":false,"description":"Whether early invoicing is enabled or not."},"onboarding_step_duration":{"type":"integer","example":3,"nullable":true,"description":"Duration of onboarding steps in days."},"signing_bonus_payout_type":{"enum":["FIRST_CYCLE","AFTER_PROBATION","AFTER_FIRST_CONTRACT_ANNIVERSARY",null],"type":"string","example":"FIRST_CYCLE","nullable":true,"description":"Defines when the signing bonus is paid. Set only when signing_bonus is present.","x-sensitive-employment":true},"variable_compensation_ids":{"type":"array","items":{"type":"string"},"example":["cm90dtiaivl0mbqmflsu5asek"],"nullable":false,"description":"List of variable compensation IDs."},"can_remind_employee_to_sign":{"type":"boolean","example":false,"nullable":false,"description":"Whether reminders to sign the employee resignation can be sent to the employee or not."},"initial_effective_plain_date":{"type":"string","format":"date","example":"2025-04-04","description":"The initial effective date in plain format."},"is_foreign_currency_contract":{"type":"boolean","example":false,"nullable":false,"description":"Whether the contract uses foreign currency or not."},"is_employee_onboarding_delayed":{"type":"boolean","example":false,"nullable":false,"description":"Determines if the invite for employee onboarding should be dispatch manually."},"monthly_eor_management_fee_usd":{"type":"string","example":"500.0000","nullable":false,"description":"Monthly EOR management fee in USD."},"work_schedule_assignment_settings":{"enum":["NOT_AVAILABLE","SPECIFIC_SCHEDULES","GENERAL_SCHEDULES","ONE_TIME_AMENDMENT"],"type":"string","example":"NOT_AVAILABLE","nullable":false,"description":"Work schedule assignment setting."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"STANDARD","nullable":true,"description":"Probation period type for definite contracts."}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Access denied","description":"Contract is not accessible to the user/organization"}}}}},"description":"Access denied"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"38j84xg","required":true,"description":"The unique identifier for the Deel contract"}],"description":"Returns basic contract information and associated employment costs for a specific EOR contract.\n\n **Token scopes**: `contracts:read`","operationId":"retrieveEorContractDetails-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/offboarding/resignations/review-pto":{"post":{"path":"/rest/eor/contracts/{contract_id}/offboarding/resignations/review-pto","tags":["EOR"],"method":"post","summary":"Submit employee resignation PTO review","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the offboarding request"},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"documents":{"type":"object","nullable":false,"required":["supporting","offboarding"],"properties":{"supporting":{"type":"array","items":{"type":"object","required":["id","name","type","created_at","updated_at","is_additional_supporting_document"],"properties":{"id":{"type":"string","example":"cmddlk1ghehm54l18gejg198r","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Supporting Documentation","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was updated","x-sensitive-pii":true},"is_additional_supporting_document":{"type":"boolean","example":false,"description":"Indicates if this is an additional supporting document added after the initial submission","x-sensitive-pii":true}}},"x-sensitive-pii":true},"offboarding":{"type":"array","items":{"type":"object","required":["files","reviewer_type","is_employee_notification_required","status"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the document set shared with the employee.","x-sensitive-pii":true,"x-sensitive-employment":true},"files":{"type":"array","items":{"type":"object","required":["id","name","type","created_at"],"properties":{"id":{"type":"string","example":"cmdeh9wzgvihue4r54n2y51p4","description":"The unique identifier of the file","x-sensitive-pii":true,"x-sensitive-employment":true},"name":{"type":"string","example":"Employee Sign Off Documents","description":"The name of the file","x-sensitive-pii":true,"x-sensitive-employment":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true,"x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was updated","x-sensitive-pii":true}}},"x-sensitive-pii":true,"x-sensitive-employment":true},"status":{"enum":["AWAITING_REVIEW","AWAITING_FEEDBACK","FEEDBACK_PROVIDED","APPROVED","CHANGES_REQUESTED_BY_CLIENT","CHANGES_REQUESTED_BY_EMPLOYEE","WAIVED_REVIEW","NOT_RESPONDED","CANCELLED"],"type":"string","example":"AWAITING_REVIEW","description":"The current status of the document review","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was updated","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2025-07-22T12:30:00.000Z","nullable":true,"description":"The date and time when the document was reviewed","x-sensitive-pii":true},"reviewed_by":{"type":"string","example":"John Doe","nullable":true,"description":"The name of the reviewer for this document. If the reviewer is not an employee, it will be the name of the client","x-sensitive-pii":true},"reviewer_type":{"enum":["CLIENT","EMPLOYEE"],"type":"string","example":"EMPLOYEE","description":"The type of reviewer for this document","x-sensitive-pii":true},"reviewer_feedback":{"type":"string","example":"Document needs clarification on section 3","nullable":true,"description":"Feedback provided by the reviewer","x-sensitive-pii":true},"notification_instructions":{"type":"string","example":"<p>Please review and provide feedback on the attached documents.</p>","nullable":true,"description":"HTML instructions for the reviewer notification","x-sensitive-pii":true,"x-sensitive-employment":true},"is_employee_notification_required":{"type":"boolean","example":true,"description":"Indicates if the employee should be notified about this document review","x-sensitive-pii":true}}},"description":"Document set shared that requires client or employee review","x-sensitive-pii":true,"x-sensitive-employment":true}},"description":"Document management structure for termination workflow including review processes and supporting documents","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was updated"},"contract_id":{"type":"string","example":"5B74FnLM","description":"The unique identifier of the employee contract."},"is_sensitive":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if the offboarding request is sensitive. This is used to restrict access to the request only to the requester and the HRX team."},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"enum":["STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE","nullable":false,"description":"The reason for the termination","x-sensitive-pii":true,"x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request","x-sensitive-pii":true,"x-sensitive-employment":true},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"BUSINESS_DAY","policy_type":"Vacation","tracking_periods":[{"used":0,"end_date":"2025-02-28T00:00:00.000Z","start_date":"2024-03-01T00:00:00.000Z"},{"used":0,"end_date":"2024-02-29T00:00:00.000Z","start_date":"2023-03-01T00:00:00.000Z"},{"used":0,"end_date":"2023-02-28T00:00:00.000Z","start_date":"2022-03-01T00:00:00.000Z"}],"scheduled_until_end_date":0}],"additional_details":null,"is_deel_pto_confirmed":true},"nullable":false,"required":["time_offs","is_deel_pto_confirmed"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["unit","policy_type","tracking_periods","scheduled_until_end_date"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR"],"type":"string","example":"BUSINESS_DAY","description":"The unit of measurement for time off tracking","x-sensitive-employment":true},"policy_type":{"type":"string","example":"Vacation","description":"The type of time-off policy","x-sensitive-employment":true},"tracking_periods":{"type":"array","items":{"type":"object","required":["used","end_date","start_date"],"properties":{"used":{"type":"number","example":0,"description":"The amount of time off used in this tracking period","x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-02-28T00:00:00.000Z","description":"The end date of the tracking period","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2024-03-01T00:00:00.000Z","description":"The start date of the tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"scheduled_until_end_date":{"type":"number","example":0,"description":"The amount of time off scheduled until the end date of the current tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"additional_details":{"type":"object","nullable":true,"properties":{"notes":{"type":"string","example":"Additional notes about time off allocation","nullable":true,"description":"Additional notes or comments about the time-off data","x-sensitive-employment":true},"updated_by":{"type":"string","example":"HR Administrator","nullable":true,"description":"The person or system that last updated the time-off data","x-sensitive-pii":true,"x-sensitive-employment":true},"last_updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the time-off data was last updated","x-sensitive-employment":true}},"x-sensitive-employment":true},"is_deel_pto_confirmed":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the PTO allocation has been confirmed by Deel's system","x-sensitive-employment":true}},"description":"Time-off usage data including policy information and tracking periods","x-sensitive-employment":true},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again","x-sensitive-pii":true},"eligible_for_rehire_reason":{"type":"string","example":"Employee is not eligible for rehire due to performance issues","nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligible_for_rehire","x-sensitive-pii":true}},"x-sensitive-pii":true},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}},"description":"PTO review submitted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"5B74FnLM","required":true,"description":"The unique identifier of the employee contract."}],"description":"Submits PTO details for a resignation request, triggers related notifications, and finalizes the PTO review step. Only callable when the resignation status is `AWAITING_PTO`.\n\n **Token scopes**: `contracts:write`","operationId":"submitEmployeeResignationPtoReview-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"used_time_off":{"type":"object","properties":{"tracking_type":{"enum":["ON_PLATFORM","OFF_PLATFORM"],"type":"string","example":"ON_PLATFORM","description":"Type of time off tracking - whether it's tracked on Deel platform or off platform"},"off_platform_used_time_off":{"type":"object","example":{"entitlements":[{"used":25,"tracking_period":"2024-01-01","tracking_period_end_date":"2024-12-31"},{"used":30,"tracking_period":"2023-01-01","tracking_period_end_date":"2023-12-31"}],"total_scheduled":5,"entitlement_unit":"CALENDAR_DAY"},"nullable":true,"required":["entitlements","total_scheduled","entitlement_unit"],"properties":{"entitlements":{"type":"array","items":{"type":"object","required":["tracking_period","tracking_period_end_date","used"],"properties":{"used":{"type":"number","format":"float","example":25,"minimum":0,"description":"Amount of time off used in the period"},"tracking_period":{"type":"string","format":"date","example":"2024-01-01","description":"Start date of the tracking period"},"tracking_period_end_date":{"type":"string","format":"date","example":"2024-12-31","description":"End date of the tracking period"}}},"description":"Array of time off entitlements for different tracking periods"},"total_scheduled":{"type":"number","format":"float","example":5,"minimum":0,"description":"Total amount of time off scheduled until the end date"},"entitlement_unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR","WEEK","MONTH","YEAR"],"type":"string","example":"CALENDAR_DAY","description":"Unit of measurement for the time off entitlements"}},"description":"Required when tracking_type is OFF_PLATFORM, null otherwise"}},"description":"Time-off usage data including policy information and tracking periods"},"decline_reason":{"enum":["NOT_AGREE_WITH_END_DATE","NOT_A_RESIGNATION_BUT_TERMINATION","EMPLOYEE_UNDER_REVIEW_OR_INVESTIGATION_FOR_DISCIPLINARY_ACTIONS","OTHER"],"type":"string","example":"NOT_AGREE_WITH_END_DATE","description":"Reason for declining the resignation request"},"severance_type":{"enum":["DAYS","WEEKS","MONTHS","CASH"],"type":"string","example":"CASH","description":"Type of severance offered to the employee"},"severance_amount":{"type":"number","format":"float","example":5000,"minimum":0,"description":"Amount of severance offered to the employee"},"decline_reason_detail":{"type":"string","example":"The notice period provided by the employee is insufficient.","maxLength":2000,"minLength":150,"description":"Detailed explanation for declining the resignation request"},"has_client_accepted_resignation_request":{"type":"boolean","example":true,"description":"Indicates whether the client has accepted the resignation request"}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/eor/contracts/{contract_id}/project-assignment":{"get":{"path":"/rest/eor/contracts/{contract_id}/project-assignment","tags":["EOR"],"method":"get","summary":"Fetch EOR project assignment PDF","responses":{"200":{"content":{"application/pdf":{"schema":{"type":"string","format":"binary","description":"The document as a PDF"}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"code","description":"The code of the source handler which produced the returned error"},"message":{"type":"string","example":"The requested version of the document mismatch the current version.","description":"The requested version of the document mismatch the current version."}}}}}}}},"description":"The requested version of the document mismatch the current version."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"version","schema":{"type":"string","maxLength":20,"minLength":20},"example":"e374540fc9a92390f9a1","required":false,"description":"This field is to ensure that the latest version of the project assignment PDF matches the version received from the webhook. If it is not sent, the version validation is not performed and the endpoint returns the PDF. If it is sent, it is checked whether the current version is equal to the version sent; if not, a 409 error occurs, otherwise, the PDF is returned."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"m623fez","required":true,"description":"The unique identifier of the employee contract."}],"description":"Returns the project assignment PDF for an EOR contract pending client approval. The optional version parameter allows callers to confirm the retrieved document matches an expected version before proceeding with acceptance.\n\n **Token scopes**: `contracts:read`","operationId":"fetchEorProjectAssignmentPdf-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/contracts":{"post":{"path":"/rest/contracts","tags":["Contractors"],"method":"post","summary":"Create a new contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","title","type","status","created_at","job_title","special_clause","start_date","termination_date","is_archived","client","worker","invitations","signatures","compensation_details","employment_details","work_statement_id"],"properties":{"id":{"type":"string","example":"5vrzvjn","description":"The public id of the object"},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee"],"type":"string","example":"time_based","description":"Type of a contract"},"quote":{"type":"object","properties":{"benefits":{"type":"array","items":{"type":"object","properties":{"fee":{"type":"number","example":100,"description":"Fee in local currency"},"name":{"type":"string","example":"Health Insurance","description":"Benefit's name"},"plan":{"type":"string","example":"Basic","description":"Benefit's plan"},"price":{"type":"number","example":100,"description":"Price in local currency"},"fee_usd":{"type":"number","example":100,"description":"Fee in USD"},"currency":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","nullable":false,"maxLength":3,"minLength":3,"description":"Currency code."},"price_usd":{"type":"number","example":100,"description":"Price in USD"}}},"description":"Array of benefits"},"currency":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"cba_total":{"type":"number","example":"900.00","description":"Total CBA in local currency"},"created_at":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"updated_at":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"salary_total":{"type":"number","example":"900.00","description":"Total salary in local currency"},"annual_salary":{"type":"number","example":"900.00","description":"Annual Salary in local currency"},"cba_total_usd":{"type":"number","example":"900.00","description":"Total CBA in USD"},"breakdown_costs":{"type":"object","example":{"monthly":{"costs":[{"name":"Health Insurance","total":50,"currency":"GBP","total_usd":50}],"total":900,"total_usd":900}},"properties":{"monthly":{"type":"object","example":{"costs":[{"name":"Health Insurance","total":50,"currency":"GBP","total_usd":50}],"total":900,"total_usd":900},"properties":{"costs":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Health Insurance","description":"Cost's name"},"total":{"type":"number","example":50,"description":"Total cost in local currency"},"currency":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","nullable":false,"maxLength":3,"minLength":3,"description":"Currency code."},"total_usd":{"type":"number","example":50,"description":"Total cost in USD"}}},"example":[{"name":"Health Insurance","total":50,"currency":"GBP","total_usd":50}],"description":"List of individual monthly cost line items included in the quote."},"total":{"type":"number","example":900,"description":"Total costs in local currency"},"total_usd":{"type":"number","example":900,"description":"Total costs in USD"}},"description":"Monthly cost breakdown for the quote."}},"description":"Cost breakdown for the quote, grouped by billing cadence (e.g., monthly)."},"salary_total_usd":{"type":"number","example":"900.00","description":"Total salary in USD"},"gross_salary_total":{"type":"number","example":"900.00","description":"Total gross salary in local currency"},"mobility_fee_total":{"type":"number","example":"900.00","description":"Total mobility fee in local currency"},"monthly_cost_total":{"type":"number","example":"900.00","description":"Total monthly cost in local currency"},"platform_fee_total":{"type":"number","example":"900.00","description":"Total platform fee in local currency"},"employer_cost_total":{"type":"number","example":"900.00","description":"Total employer cost in local currency"},"gross_salary_total_usd":{"type":"number","example":"900.00","description":"Total gross salary in USD"},"mobility_fee_total_usd":{"type":"number","example":"900.00","description":"Total mobility fee in USD"},"monthly_cost_total_usd":{"type":"number","example":"900.00","description":"Total monthly cost in USD"},"platform_fee_total_usd":{"type":"number","example":"900.00","description":"Total platform fee in USD"},"employer_cost_total_usd":{"type":"number","example":"900.00","description":"Total employer cost in USD"},"severance_accrual_total":{"type":"number","example":"900.00","description":"Total severance accrual in local currency"},"recurring_allowance_total":{"type":"number","example":"900.00","description":"Total recurring allowance in local currency"},"severance_accrual_total_usd":{"type":"number","example":"900.00","description":"Total severance accrual in USD"},"recurring_allowance_total_usd":{"type":"number","example":"900.00","description":"Total recurring allowance in USD"}},"description":"EOR quote approved by Deel"},"title":{"type":"string","example":"Software Developer","nullable":false,"minLength":1,"description":"Title of a contract"},"client":{"type":"object","nullable":true,"required":["team","legal_entity"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"team":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Engineering","nullable":false,"description":"Name of a team"}},"description":"Team information for the client organization."},"email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"User's email address."},"full_name":{"type":"string","example":"John Doe","description":"User's full name."},"legal_entity":{"type":"object","nullable":true,"required":["id","name","email","type","subtype","registration_number","vat_number"],"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"name":{"type":"string","example":"John Doe","description":"Name of a legal entity"},"type":{"enum":["individual","company"],"type":"string","example":"company","description":"Type of a legal entity"},"email":{"type":"string","example":"test@example.com","nullable":true,"description":"User's email address."},"subtype":{"type":"string","example":"LLC","description":"Subtype of a legal entity"},"vat_number":{"type":"string","example":"12345678","description":"VAT number of a legal entity"},"registration_number":{"type":"string","example":"12345678","description":"Registration number of a legal entity"}},"description":"Legal entity information for the client organization."}},"description":"Client details associated with the contract."},"status":{"enum":["new","under_review","waiting_for_employee_contract","waiting_for_client_sign","processing_payment","waiting_for_contractor_sign","waiting_for_eor_sign","waiting_for_employee_sign","awaiting_deposit_payment","in_progress","completed","cancelled","user_cancelled","rejected","waiting_for_client_payment"],"type":"string","example":"new","nullable":false,"description":"Status of a contract in Deel workflow"},"worker":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"A unique identifier for this resource."},"email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"User's email address."},"image":{"type":"string","format":"url","example":"https://example.com/image.jpg","description":"URL to worker's image"},"country":{"type":"string","example":"US","nullable":true,"description":"Worker's country (location not nationality)"},"full_name":{"type":"string","example":"John Doe","nullable":false,"minLength":1,"description":"Worker's full name."},"last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":255,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"Worker's first name"},"nationality":{"type":"string","example":"US","nullable":true,"description":"Worker's nationality."},"legal_entity":{"type":"object","required":["type","personal_name","registration_number"],"properties":{"type":{"enum":["individual","company"],"type":"string","example":"company","description":"Type of a legal entity"},"personal_name":{"type":"string","example":"John Doe","description":"Name of a legal entity"},"registration_number":{"type":"string","example":"12345678","description":"Registration number of a legal entity"}},"description":"Worker legal entity information, if applicable."},"date_of_birth":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"},"expected_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"Worker's email address."},"alternate_email":{"type":"array","items":{"type":"object","title":"Root Schema","required":["email","isVerified"],"properties":{"email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"User's email address."},"isVerified":{"type":"boolean","title":"True if email has been verified","example":true,"description":"True if email has been verified"}}},"description":"List of alternate email addresses."}},"description":"Worker details associated with the contract."},"job_title":{"type":"string","example":"Software Developer","description":"Job title associated with the contract."},"seniority":{"type":"object","nullable":true,"required":["id","name"],"properties":{"id":{"type":"number","example":123456,"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Mid (Individual Contributor Level 2)","nullable":false,"minLength":1,"description":"Name of seniority level e.g. Mid (Individual Contributor Level 2)"},"level":{"type":"number","example":2,"nullable":true,"description":"Level of seniority level e.g. 2"}},"description":"Seniority describes level of expertise at a job e.g. junior"},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"},"signatures":{"type":"object","required":["client_signature","client_signed_at","worker_signature","worker_signed_at","signed_at"],"properties":{"signed_at":{"type":"string","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"},"client_signature":{"type":"string","example":"John Doe","description":"normally name of client is used as signature"},"client_signed_at":{"type":"string","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"},"worker_signature":{"type":"string","example":"John Doe","nullable":false,"description":"Signatures of client representative."},"worker_signed_at":{"type":"string","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"}},"description":"List of signatures recorded for this contract."},"start_date":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"},"external_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"A unique identifier for the object provided by an external system."},"invitations":{"type":"object","properties":{"client_email":{"type":"string","example":"test@example.com","nullable":true,"description":"User's email address."},"worker_email":{"type":"string","example":"test@example.com","nullable":true,"description":"User's email address.","x-sensitive-pii":true}},"description":"List of signature invitations sent for this contract."},"is_archived":{"type":"boolean","example":false,"description":"Flag to indicate if the contract is archived"},"who_reports":{"enum":["both","client","contractor","",null],"type":"string","example":"both","description":"Flag to indicate who is supposed to provide regular reports"},"custom_fields":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Employee ID","nullable":false,"description":"Custom field property name."},"value":{"type":"string","example":"54234","nullable":false,"description":"Custom field property value."}},"description":"Customized attributes on contracts (Employee ID, Project code, etc)."},"example":[{"name":"Employee ID","value":"54234"}],"description":"Custom fields attached to the contract."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"scope_of_work":{"type":"string","example":"Software development","nullable":true,"description":"Scope of work for the contract"},"special_clause":{"type":"string","example":"Special clause","description":"Special clause for the contract"},"termination_date":{"oneOf":[{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"},{"enum":[""],"type":"string","example":""}],"example":"2022-05-24T09:38:46.235Z","description":"Contract termination date. When present, it is a date-time string in ISO-8601 format."},"work_statement_id":{"type":"string","example":"1597885e-c30d-4747-b665-d9ac4990e90a","description":"The public unique identifier of the work statement"},"employment_details":{"type":"object","required":["type","days_per_week","hours_per_day","probation_period","paid_vacation_days"],"properties":{"type":{"type":"string","example":"employee","description":"Employment type classification for the contract."},"state":{"type":"string","example":"CO","nullable":true,"description":"State code."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"days_per_week":{"type":"number","example":5,"description":"Number of days per week"},"hours_per_day":{"type":"number","example":8,"description":"Number of hours per day"},"probation_period":{"type":"number","example":30,"nullable":true,"description":"Number of days for probation period"},"paid_vacation_days":{"type":"number","example":20,"description":"Number of paid vacation days"}},"description":"Employment-related details for the contract, when applicable."},"compensation_details":{"type":"object","example":{"scale":"hourly","amount":"100.00","frequency":"monthly","currency_code":"GBP","first_payment":"100.00","first_payment_date":"2022-05-24T09:38:46.235Z","gross_annual_salary":"100.00","gross_signing_bonus":"100.00","gross_variable_bonus":"100.00"},"required":["currency_code","amount","scale","frequency","first_payment","first_payment_date","gross_annual_salary","gross_signing_bonus","gross_variable_bonus"],"properties":{"scale":{"type":"string","example":"hourly","description":"Scale of compensation"},"amount":{"type":"string","example":"100.00","nullable":true,"description":"Amount of compensation"},"frequency":{"type":"string","example":"monthly","description":"Frequency of compensation"},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"string","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"First payment"},"first_payment_date":{"type":"string","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"},"gross_annual_salary":{"type":"string","example":"100.00","nullable":true,"description":"Gross annual salary"},"gross_signing_bonus":{"type":"string","example":"100.00","nullable":true,"description":"Gross signing bonus"},"gross_variable_bonus":{"type":"string","example":"100.00","nullable":true,"description":"Gross variable bonus"}},"description":"Compensation configuration and payment schedule details for the contract."},"platform_payment_type":{"enum":["STANDARD","OFF_PLATFORM"],"type":"string","example":"STANDARD","description":"Whether the contract is paid through Deel (`STANDARD`) or outside Deel (`OFF_PLATFORM`). Applies to IC contracts only."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Invalid query parameters","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"GET","description":"Method of the API"},"status":{"type":"number","example":400,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Bad Request - Validation error or invalid parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates a new contractor contract and returns it with its assigned `id`. After creation, invite the contractor to sign via `POST /contracts/{contract_id}/invitations`.\n\n **Token scopes**: `contracts:write`","operationId":"createANewContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","anyOf":[{"allOf":[{"type":"object","required":["type","title","meta","client"],"properties":{"meta":{"type":"object","required":["documents_required"],"properties":{"is_main_income":{"type":"boolean","example":true,"description":"Flag to indicate if the contract is the main income for the contractor."},"documents_required":{"type":"boolean","example":true,"description":"Require the contractor to upload necessary compliance documents as per their country’s labor laws."}},"description":"Additional custom info about a contract"},"title":{"type":"string","example":"Software Developer","description":"The title of the contract."},"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."}},"description":"Client details for the contract, including the legal entity and team."},"worker":{"type":"object","nullable":true,"required":["first_name","expected_email"],"properties":{"last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":255,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"Worker's first name"},"work_email":{"type":"string","format":"email","example":"john.doe@company.com","nullable":true,"maxLength":255,"description":"Worker's work email address."},"expected_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"Worker's email address."}},"description":"Worker properties"},"job_title":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Software Developer","nullable":true,"maxLength":255,"description":"Job title. Please leave it blank when entering an Id."}},"description":"Worker's job title. You can enter a custom job title or use a pre-defined job title using the Id retrieved in job-titles endpoint."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."},"state_code":{"type":"string","example":"CO","nullable":true,"description":"The state or province code. Use country lookup endpoint to retrieve state codes."},"citizenship":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the worker's citizenship."},"external_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"External Id."},"who_reports":{"enum":["both","client","contractor"],"type":"string","example":"both","description":"Flag to indicate who is supposed to provide regular reports"},"country_code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"scope_of_work":{"type":"string","example":"Software development","nullable":true,"description":"Describe the work to be performed."},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Enter any special clause you may have."},"scope_of_work_id":{"type":"string","format":"uuid","example":"f72f1ef4-b9fe-40e3-9d63-711d4b095048","nullable":true,"description":"Existing scope of work public id"},"termination_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"contract_template_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Contract Template Id."},"platform_payment_type":{"enum":["STANDARD","OFF_PLATFORM"],"type":"string","example":"STANDARD","description":"Whether the contract is paid through Deel (`STANDARD`) or outside Deel (`OFF_PLATFORM`). Applies to IC contracts only."}},"description":"Details of contract to create"},{"type":"object","required":["type","start_date"],"properties":{"type":{"enum":["pay_as_you_go_time_based"],"type":"string","example":"pay_as_you_go_time_based","description":"Type of contract"},"start_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}},{"type":"object","required":["compensation_details"],"properties":{"compensation_details":{"allOf":[{"type":"object","oneOf":[{"not":{"anyOf":[{"required":["frequency"]},{"required":["cycle_end"]},{"required":["cycle_end_type"]},{"required":["payment_due_type"]},{"required":["payment_due_days"]},{"required":["pay_before_weekends"]}]},"title":"Policy-based payment configuration","example":{"scale":"daily","amount":100,"currency_code":"GBP","payment_policy_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"required":["payment_policy_id"],"description":"Reference a pre-configured payment policy. The individual payment fields, including pay_before_weekends, must be omitted."},{"not":{"required":["payment_policy_id"]},"title":"Field-based payment configuration","required":["frequency","cycle_end","cycle_end_type","payment_due_type","payment_due_days"],"description":"Specify the payment schedule field by field. payment_policy_id must be omitted."}],"required":["currency_code"],"properties":{"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":15,"maximum":31,"minimum":1,"description":"Date invoice cycle ends."},"frequency":{"enum":["weekly","monthly","biweekly","semimonthly","calendar-month"],"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"number","default":0,"example":500,"minimum":0,"description":"First payment amount."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_WEEK","description":"Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."},"payment_due_days":{"type":"number","example":7,"maximum":90,"minimum":0,"description":"Number of days to pay the invoice."},"payment_due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","default":"REGULAR","example":"REGULAR","description":"Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'. If the payment is due some days after the end of the month, enter 'AFTER_MONTH'. If the payment is due before the end of the invoice cycle, enter 'BEFORE_CYCLE_END'."},"payment_policy_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"ID of a pre-configured payment policy. When provided, the payment schedule is derived from the policy and the individual payment fields (frequency, cycle_end, cycle_end_type, payment_due_type, payment_due_days, pay_before_weekends) must be omitted. Mutually exclusive with those individual fields."},"first_payment_date":{"type":"string","example":"1999-12-31","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"pay_before_weekends":{"type":"boolean","example":true,"description":"If the payment due is on a weekend, pay on Friday."}}},{"type":"object","required":["amount","scale"],"properties":{"scale":{"enum":["hourly","daily","weekly","monthly","biweekly","semimonthly","custom"],"type":"string","example":"daily","description":"Defines the scale at which the amount is paid. For example, enter 'hourly' to define the amount per hour. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."}}}],"example":{"scale":"daily","amount":100,"cycle_end":15,"frequency":"monthly","currency_code":"GBP","first_payment":500,"cycle_end_type":"DAY_OF_MONTH","payment_due_days":7,"payment_due_type":"REGULAR","first_payment_date":"1999-12-31","pay_before_weekends":true},"description":"Compensation and invoicing configuration for the contract."}}}],"title":"PAY_AS_YOU_GO_TIME_BASED"},{"allOf":[{"type":"object","required":["type","title","meta","client"],"properties":{"meta":{"type":"object","required":["documents_required"],"properties":{"is_main_income":{"type":"boolean","example":true,"description":"Flag to indicate if the contract is the main income for the contractor."},"documents_required":{"type":"boolean","example":true,"description":"Require the contractor to upload necessary compliance documents as per their country’s labor laws."}},"description":"Additional custom info about a contract"},"title":{"type":"string","example":"Software Developer","description":"The title of the contract."},"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."}},"description":"Client details for the contract, including the legal entity and team."},"worker":{"type":"object","nullable":true,"required":["first_name","expected_email"],"properties":{"last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":255,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"Worker's first name"},"work_email":{"type":"string","format":"email","example":"john.doe@company.com","nullable":true,"maxLength":255,"description":"Worker's work email address."},"expected_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"Worker's email address."}},"description":"Worker properties"},"job_title":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Software Developer","nullable":true,"maxLength":255,"description":"Job title. Please leave it blank when entering an Id."}},"description":"Worker's job title. You can enter a custom job title or use a pre-defined job title using the Id retrieved in job-titles endpoint."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."},"state_code":{"type":"string","example":"CO","nullable":true,"description":"The state or province code. Use country lookup endpoint to retrieve state codes."},"citizenship":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the worker's citizenship."},"external_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"External Id."},"who_reports":{"enum":["both","client","contractor"],"type":"string","example":"both","description":"Flag to indicate who is supposed to provide regular reports"},"country_code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"scope_of_work":{"type":"string","example":"Software development","nullable":true,"description":"Describe the work to be performed."},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Enter any special clause you may have."},"scope_of_work_id":{"type":"string","format":"uuid","example":"f72f1ef4-b9fe-40e3-9d63-711d4b095048","nullable":true,"description":"Existing scope of work public id"},"termination_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"contract_template_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Contract Template Id."}},"description":"Details of contract to create"},{"type":"object","required":["type","start_date"],"properties":{"type":{"enum":["payg_tasks"],"type":"string","example":"payg_tasks","description":"Type of contract"},"start_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}},{"type":"object","required":["compensation_details"],"properties":{"compensation_details":{"type":"object","oneOf":[{"not":{"anyOf":[{"required":["frequency"]},{"required":["cycle_end"]},{"required":["cycle_end_type"]},{"required":["payment_due_type"]},{"required":["payment_due_days"]},{"required":["pay_before_weekends"]}]},"title":"Policy-based payment configuration","example":{"scale":"daily","amount":100,"currency_code":"GBP","payment_policy_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"required":["payment_policy_id"],"description":"Reference a pre-configured payment policy. The individual payment fields, including pay_before_weekends, must be omitted."},{"not":{"required":["payment_policy_id"]},"title":"Field-based payment configuration","required":["frequency","cycle_end","cycle_end_type","payment_due_type","payment_due_days"],"description":"Specify the payment schedule field by field. payment_policy_id must be omitted."}],"example":{"amount":100,"cycle_end":15,"frequency":"monthly","currency_code":"GBP","first_payment":500,"cycle_end_type":"DAY_OF_MONTH","payment_due_days":7,"payment_due_type":"REGULAR","first_payment_date":"1999-12-31","pay_before_weekends":true},"required":["currency_code"],"properties":{"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":15,"maximum":31,"minimum":1,"description":"Date invoice cycle ends."},"frequency":{"enum":["weekly","monthly","biweekly","semimonthly","calendar-month"],"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"number","default":0,"example":500,"minimum":0,"description":"First payment amount."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_WEEK","description":"Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."},"payment_due_days":{"type":"number","example":7,"maximum":90,"minimum":0,"description":"Number of days to pay the invoice."},"payment_due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","default":"REGULAR","example":"REGULAR","description":"Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'. If the payment is due some days after the end of the month, enter 'AFTER_MONTH'. If the payment is due before the end of the invoice cycle, enter 'BEFORE_CYCLE_END'."},"payment_policy_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"ID of a pre-configured payment policy. When provided, the payment schedule is derived from the policy and the individual payment fields (frequency, cycle_end, cycle_end_type, payment_due_type, payment_due_days, pay_before_weekends) must be omitted. Mutually exclusive with those individual fields."},"first_payment_date":{"type":"string","example":"1999-12-31","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"pay_before_weekends":{"type":"boolean","example":true,"description":"If the payment due is on a weekend, pay on Friday."}},"description":"Compensation and invoicing configuration for the contract."}}}],"title":"PAYG_TASKS"},{"allOf":[{"type":"object","required":["type","title","meta","client"],"properties":{"meta":{"type":"object","required":["documents_required"],"properties":{"is_main_income":{"type":"boolean","example":true,"description":"Flag to indicate if the contract is the main income for the contractor."},"documents_required":{"type":"boolean","example":true,"description":"Require the contractor to upload necessary compliance documents as per their country’s labor laws."}},"description":"Additional custom info about a contract"},"title":{"type":"string","example":"Software Developer","description":"The title of the contract."},"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."}},"description":"Client details for the contract, including the legal entity and team."},"worker":{"type":"object","nullable":true,"required":["first_name","expected_email"],"properties":{"last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":255,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"Worker's first name"},"work_email":{"type":"string","format":"email","example":"john.doe@company.com","nullable":true,"maxLength":255,"description":"Worker's work email address."},"expected_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"Worker's email address."}},"description":"Worker properties"},"job_title":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Software Developer","nullable":true,"maxLength":255,"description":"Job title. Please leave it blank when entering an Id."}},"description":"Worker's job title. You can enter a custom job title or use a pre-defined job title using the Id retrieved in job-titles endpoint."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."},"state_code":{"type":"string","example":"CO","nullable":true,"description":"The state or province code. Use country lookup endpoint to retrieve state codes."},"citizenship":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the worker's citizenship."},"external_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"External Id."},"who_reports":{"enum":["both","client","contractor"],"type":"string","example":"both","description":"Flag to indicate who is supposed to provide regular reports"},"country_code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"scope_of_work":{"type":"string","example":"Software development","nullable":true,"description":"Describe the work to be performed."},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Enter any special clause you may have."},"scope_of_work_id":{"type":"string","format":"uuid","example":"f72f1ef4-b9fe-40e3-9d63-711d4b095048","nullable":true,"description":"Existing scope of work public id"},"termination_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"contract_template_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Contract Template Id."}},"description":"Details of contract to create"},{"type":"object","required":["type"],"properties":{"type":{"enum":["payg_milestones"],"type":"string","example":"payg_milestones","description":"Type of contract"},"start_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}},{"type":"object","required":["compensation_details"],"properties":{"compensation_details":{"not":{"required":["payment_policy_id"]},"type":"object","example":{"amount":100,"cycle_end":15,"frequency":"monthly","currency_code":"GBP","first_payment":500,"cycle_end_type":"DAY_OF_MONTH","payment_due_days":7,"payment_due_type":"REGULAR","first_payment_date":"1999-12-31","pay_before_weekends":true},"required":["currency_code","frequency","cycle_end","cycle_end_type","payment_due_type","payment_due_days"],"properties":{"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":15,"maximum":31,"minimum":1,"description":"Date invoice cycle ends."},"frequency":{"enum":["weekly","monthly","biweekly","semimonthly","calendar-month"],"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"number","default":0,"example":500,"minimum":0,"description":"First payment amount."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_WEEK","description":"Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."},"payment_due_days":{"type":"number","example":7,"maximum":90,"minimum":0,"description":"Number of days to pay the invoice."},"payment_due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","default":"REGULAR","example":"REGULAR","description":"Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'. If the payment is due some days after the end of the month, enter 'AFTER_MONTH'. If the payment is due before the end of the invoice cycle, enter 'BEFORE_CYCLE_END'."},"first_payment_date":{"type":"string","example":"1999-12-31","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"pay_before_weekends":{"type":"boolean","example":true,"description":"If the payment due is on a weekend, pay on Friday."}},"description":"Compensation and invoicing configuration for the contract."}}}],"title":"PAYG_MILESTONES"},{"allOf":[{"type":"object","required":["type","title","meta","client"],"properties":{"meta":{"type":"object","required":["documents_required"],"properties":{"is_main_income":{"type":"boolean","example":true,"description":"Flag to indicate if the contract is the main income for the contractor."},"documents_required":{"type":"boolean","example":true,"description":"Require the contractor to upload necessary compliance documents as per their country’s labor laws."}},"description":"Additional custom info about a contract"},"title":{"type":"string","example":"Software Developer","description":"The title of the contract."},"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."}},"description":"Client details for the contract, including the legal entity and team."},"worker":{"type":"object","nullable":true,"required":["first_name","expected_email"],"properties":{"last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":255,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"Worker's first name"},"work_email":{"type":"string","format":"email","example":"john.doe@company.com","nullable":true,"maxLength":255,"description":"Worker's work email address."},"expected_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"Worker's email address."}},"description":"Worker properties"},"job_title":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Software Developer","nullable":true,"maxLength":255,"description":"Job title. Please leave it blank when entering an Id."}},"description":"Worker's job title. You can enter a custom job title or use a pre-defined job title using the Id retrieved in job-titles endpoint."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."},"state_code":{"type":"string","example":"CO","nullable":true,"description":"The state or province code. Use country lookup endpoint to retrieve state codes."},"citizenship":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the worker's citizenship."},"external_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"External Id."},"who_reports":{"enum":["both","client","contractor"],"type":"string","example":"both","description":"Flag to indicate who is supposed to provide regular reports"},"country_code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"scope_of_work":{"type":"string","example":"Software development","nullable":true,"description":"Describe the work to be performed."},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Enter any special clause you may have."},"scope_of_work_id":{"type":"string","format":"uuid","example":"f72f1ef4-b9fe-40e3-9d63-711d4b095048","nullable":true,"description":"Existing scope of work public id"},"termination_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"contract_template_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Contract Template Id."}},"description":"Details of contract to create"},{"type":"object","required":["type","start_date"],"properties":{"type":{"enum":["ongoing_time_based"],"type":"string","example":"ongoing_time_based","description":"Type of contract"},"start_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}},{"type":"object","required":["compensation_details"],"properties":{"compensation_details":{"allOf":[{"type":"object","oneOf":[{"not":{"anyOf":[{"required":["frequency"]},{"required":["cycle_end"]},{"required":["cycle_end_type"]},{"required":["payment_due_type"]},{"required":["payment_due_days"]},{"required":["pay_before_weekends"]}]},"title":"Policy-based payment configuration","example":{"scale":"daily","amount":100,"currency_code":"GBP","payment_policy_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"required":["payment_policy_id"],"description":"Reference a pre-configured payment policy. The individual payment fields, including pay_before_weekends, must be omitted."},{"not":{"required":["payment_policy_id"]},"title":"Field-based payment configuration","required":["frequency","cycle_end","cycle_end_type","payment_due_type","payment_due_days"],"description":"Specify the payment schedule field by field. payment_policy_id must be omitted."}],"required":["currency_code"],"properties":{"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":15,"maximum":31,"minimum":1,"description":"Date invoice cycle ends."},"frequency":{"enum":["weekly","monthly","biweekly","semimonthly","calendar-month"],"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"number","default":0,"example":500,"minimum":0,"description":"First payment amount."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_WEEK","description":"Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."},"payment_due_days":{"type":"number","example":7,"maximum":90,"minimum":0,"description":"Number of days to pay the invoice."},"payment_due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","default":"REGULAR","example":"REGULAR","description":"Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'. If the payment is due some days after the end of the month, enter 'AFTER_MONTH'. If the payment is due before the end of the invoice cycle, enter 'BEFORE_CYCLE_END'."},"payment_policy_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"ID of a pre-configured payment policy. When provided, the payment schedule is derived from the policy and the individual payment fields (frequency, cycle_end, cycle_end_type, payment_due_type, payment_due_days, pay_before_weekends) must be omitted. Mutually exclusive with those individual fields."},"first_payment_date":{"type":"string","example":"1999-12-31","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"pay_before_weekends":{"type":"boolean","example":true,"description":"If the payment due is on a weekend, pay on Friday."}}},{"type":"object","required":["amount","scale"],"properties":{"scale":{"enum":["hourly","daily","weekly","monthly","biweekly","semimonthly","custom"],"type":"string","example":"daily","description":"Defines the scale at which the amount is paid. For example, enter 'hourly' to define the amount per hour. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."}}}],"example":{"scale":"daily","amount":100,"cycle_end":15,"frequency":"monthly","currency_code":"GBP","first_payment":500,"cycle_end_type":"DAY_OF_MONTH","payment_due_days":7,"payment_due_type":"REGULAR","first_payment_date":"1999-12-31","pay_before_weekends":true},"description":"Compensation and invoicing configuration for the contract."}}}],"title":"ONGOING_TIME_BASED"}]}}}},"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","anyOf":[{"allOf":[{"type":"object","required":["type","title","meta","client"],"properties":{"meta":{"type":"object","required":["documents_required"],"properties":{"is_main_income":{"type":"boolean","example":true,"description":"Flag to indicate if the contract is the main income for the contractor."},"documents_required":{"type":"boolean","example":true,"description":"Require the contractor to upload necessary compliance documents as per their country’s labor laws."}},"description":"Additional custom info about a contract"},"title":{"type":"string","example":"Software Developer","description":"The title of the contract."},"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."}},"description":"Client details for the contract, including the legal entity and team."},"worker":{"type":"object","nullable":true,"required":["first_name","expected_email"],"properties":{"last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":255,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"Worker's first name"},"work_email":{"type":"string","format":"email","example":"john.doe@company.com","nullable":true,"maxLength":255,"description":"Worker's work email address."},"expected_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"Worker's email address."}},"description":"Worker properties"},"job_title":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Software Developer","nullable":true,"maxLength":255,"description":"Job title. Please leave it blank when entering an Id."}},"description":"Worker's job title. You can enter a custom job title or use a pre-defined job title using the Id retrieved in job-titles endpoint."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."},"state_code":{"type":"string","example":"CO","nullable":true,"description":"The state or province code. Use country lookup endpoint to retrieve state codes."},"citizenship":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the worker's citizenship."},"external_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"External Id."},"who_reports":{"enum":["both","client","contractor"],"type":"string","example":"both","description":"Flag to indicate who is supposed to provide regular reports"},"country_code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"scope_of_work":{"type":"string","example":"Software development","nullable":true,"description":"Describe the work to be performed."},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Enter any special clause you may have."},"scope_of_work_id":{"type":"string","format":"uuid","example":"f72f1ef4-b9fe-40e3-9d63-711d4b095048","nullable":true,"description":"Existing scope of work public id"},"termination_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"contract_template_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Contract Template Id."},"custom_contract_file":{"type":"string","format":"binary","example":"contract.pdf","nullable":true,"description":"A pre-signed PDF to attach. When provided, both parties acknowledge the document — Deel never modifies the uploaded file."}},"description":"Details of contract to create"},{"type":"object","required":["type","start_date"],"properties":{"type":{"enum":["pay_as_you_go_time_based"],"type":"string","example":"pay_as_you_go_time_based","description":"Type of contract"},"start_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}},{"type":"object","required":["compensation_details"],"properties":{"compensation_details":{"allOf":[{"type":"object","oneOf":[{"not":{"anyOf":[{"required":["frequency"]},{"required":["cycle_end"]},{"required":["cycle_end_type"]},{"required":["payment_due_type"]},{"required":["payment_due_days"]},{"required":["pay_before_weekends"]}]},"title":"Policy-based payment configuration","example":{"scale":"daily","amount":100,"currency_code":"GBP","payment_policy_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"required":["payment_policy_id"],"description":"Reference a pre-configured payment policy. The individual payment fields, including pay_before_weekends, must be omitted."},{"not":{"required":["payment_policy_id"]},"title":"Field-based payment configuration","required":["frequency","cycle_end","cycle_end_type","payment_due_type","payment_due_days"],"description":"Specify the payment schedule field by field. payment_policy_id must be omitted."}],"required":["currency_code"],"properties":{"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":15,"maximum":31,"minimum":1,"description":"Date invoice cycle ends."},"frequency":{"enum":["weekly","monthly","biweekly","semimonthly","calendar-month"],"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"number","default":0,"example":500,"minimum":0,"description":"First payment amount."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_WEEK","description":"Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."},"payment_due_days":{"type":"number","example":7,"maximum":90,"minimum":0,"description":"Number of days to pay the invoice."},"payment_due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","default":"REGULAR","example":"REGULAR","description":"Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'. If the payment is due some days after the end of the month, enter 'AFTER_MONTH'. If the payment is due before the end of the invoice cycle, enter 'BEFORE_CYCLE_END'."},"payment_policy_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"ID of a pre-configured payment policy. When provided, the payment schedule is derived from the policy and the individual payment fields (frequency, cycle_end, cycle_end_type, payment_due_type, payment_due_days, pay_before_weekends) must be omitted. Mutually exclusive with those individual fields."},"first_payment_date":{"type":"string","example":"1999-12-31","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"pay_before_weekends":{"type":"boolean","example":true,"description":"If the payment due is on a weekend, pay on Friday."}}},{"type":"object","required":["amount","scale"],"properties":{"scale":{"enum":["hourly","daily","weekly","monthly","biweekly","semimonthly","custom"],"type":"string","example":"daily","description":"Defines the scale at which the amount is paid. For example, enter 'hourly' to define the amount per hour. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."}}}],"example":{"scale":"daily","amount":100,"cycle_end":15,"frequency":"monthly","currency_code":"GBP","first_payment":500,"cycle_end_type":"DAY_OF_MONTH","payment_due_days":7,"payment_due_type":"REGULAR","first_payment_date":"1999-12-31","pay_before_weekends":true},"description":"Compensation and invoicing configuration for the contract."}}}],"title":"PAY_AS_YOU_GO_TIME_BASED"},{"allOf":[{"type":"object","required":["type","title","meta","client"],"properties":{"meta":{"type":"object","required":["documents_required"],"properties":{"is_main_income":{"type":"boolean","example":true,"description":"Flag to indicate if the contract is the main income for the contractor."},"documents_required":{"type":"boolean","example":true,"description":"Require the contractor to upload necessary compliance documents as per their country’s labor laws."}},"description":"Additional custom info about a contract"},"title":{"type":"string","example":"Software Developer","description":"The title of the contract."},"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."}},"description":"Client details for the contract, including the legal entity and team."},"worker":{"type":"object","nullable":true,"required":["first_name","expected_email"],"properties":{"last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":255,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"Worker's first name"},"work_email":{"type":"string","format":"email","example":"john.doe@company.com","nullable":true,"maxLength":255,"description":"Worker's work email address."},"expected_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"Worker's email address."}},"description":"Worker properties"},"job_title":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Software Developer","nullable":true,"maxLength":255,"description":"Job title. Please leave it blank when entering an Id."}},"description":"Worker's job title. You can enter a custom job title or use a pre-defined job title using the Id retrieved in job-titles endpoint."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."},"state_code":{"type":"string","example":"CO","nullable":true,"description":"The state or province code. Use country lookup endpoint to retrieve state codes."},"citizenship":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the worker's citizenship."},"external_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"External Id."},"who_reports":{"enum":["both","client","contractor"],"type":"string","example":"both","description":"Flag to indicate who is supposed to provide regular reports"},"country_code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"scope_of_work":{"type":"string","example":"Software development","nullable":true,"description":"Describe the work to be performed."},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Enter any special clause you may have."},"scope_of_work_id":{"type":"string","format":"uuid","example":"f72f1ef4-b9fe-40e3-9d63-711d4b095048","nullable":true,"description":"Existing scope of work public id"},"termination_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"contract_template_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Contract Template Id."},"custom_contract_file":{"type":"string","format":"binary","example":"contract.pdf","nullable":true,"description":"A pre-signed PDF to attach. When provided, both parties acknowledge the document — Deel never modifies the uploaded file."}},"description":"Details of contract to create"},{"type":"object","required":["type","start_date"],"properties":{"type":{"enum":["payg_tasks"],"type":"string","example":"payg_tasks","description":"Type of contract"},"start_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}},{"type":"object","required":["compensation_details"],"properties":{"compensation_details":{"type":"object","oneOf":[{"not":{"anyOf":[{"required":["frequency"]},{"required":["cycle_end"]},{"required":["cycle_end_type"]},{"required":["payment_due_type"]},{"required":["payment_due_days"]},{"required":["pay_before_weekends"]}]},"title":"Policy-based payment configuration","example":{"scale":"daily","amount":100,"currency_code":"GBP","payment_policy_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"required":["payment_policy_id"],"description":"Reference a pre-configured payment policy. The individual payment fields, including pay_before_weekends, must be omitted."},{"not":{"required":["payment_policy_id"]},"title":"Field-based payment configuration","required":["frequency","cycle_end","cycle_end_type","payment_due_type","payment_due_days"],"description":"Specify the payment schedule field by field. payment_policy_id must be omitted."}],"example":{"amount":100,"cycle_end":15,"frequency":"monthly","currency_code":"GBP","first_payment":500,"cycle_end_type":"DAY_OF_MONTH","payment_due_days":7,"payment_due_type":"REGULAR","first_payment_date":"1999-12-31","pay_before_weekends":true},"required":["currency_code"],"properties":{"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":15,"maximum":31,"minimum":1,"description":"Date invoice cycle ends."},"frequency":{"enum":["weekly","monthly","biweekly","semimonthly","calendar-month"],"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"number","default":0,"example":500,"minimum":0,"description":"First payment amount."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_WEEK","description":"Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."},"payment_due_days":{"type":"number","example":7,"maximum":90,"minimum":0,"description":"Number of days to pay the invoice."},"payment_due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","default":"REGULAR","example":"REGULAR","description":"Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'. If the payment is due some days after the end of the month, enter 'AFTER_MONTH'. If the payment is due before the end of the invoice cycle, enter 'BEFORE_CYCLE_END'."},"payment_policy_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"ID of a pre-configured payment policy. When provided, the payment schedule is derived from the policy and the individual payment fields (frequency, cycle_end, cycle_end_type, payment_due_type, payment_due_days, pay_before_weekends) must be omitted. Mutually exclusive with those individual fields."},"first_payment_date":{"type":"string","example":"1999-12-31","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"pay_before_weekends":{"type":"boolean","example":true,"description":"If the payment due is on a weekend, pay on Friday."}},"description":"Compensation and invoicing configuration for the contract."}}}],"title":"PAYG_TASKS"},{"allOf":[{"type":"object","required":["type","title","meta","client"],"properties":{"meta":{"type":"object","required":["documents_required"],"properties":{"is_main_income":{"type":"boolean","example":true,"description":"Flag to indicate if the contract is the main income for the contractor."},"documents_required":{"type":"boolean","example":true,"description":"Require the contractor to upload necessary compliance documents as per their country’s labor laws."}},"description":"Additional custom info about a contract"},"title":{"type":"string","example":"Software Developer","description":"The title of the contract."},"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."}},"description":"Client details for the contract, including the legal entity and team."},"worker":{"type":"object","nullable":true,"required":["first_name","expected_email"],"properties":{"last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":255,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"Worker's first name"},"work_email":{"type":"string","format":"email","example":"john.doe@company.com","nullable":true,"maxLength":255,"description":"Worker's work email address."},"expected_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"Worker's email address."}},"description":"Worker properties"},"job_title":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Software Developer","nullable":true,"maxLength":255,"description":"Job title. Please leave it blank when entering an Id."}},"description":"Worker's job title. You can enter a custom job title or use a pre-defined job title using the Id retrieved in job-titles endpoint."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."},"state_code":{"type":"string","example":"CO","nullable":true,"description":"The state or province code. Use country lookup endpoint to retrieve state codes."},"citizenship":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the worker's citizenship."},"external_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"External Id."},"who_reports":{"enum":["both","client","contractor"],"type":"string","example":"both","description":"Flag to indicate who is supposed to provide regular reports"},"country_code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"scope_of_work":{"type":"string","example":"Software development","nullable":true,"description":"Describe the work to be performed."},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Enter any special clause you may have."},"scope_of_work_id":{"type":"string","format":"uuid","example":"f72f1ef4-b9fe-40e3-9d63-711d4b095048","nullable":true,"description":"Existing scope of work public id"},"termination_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"contract_template_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Contract Template Id."},"custom_contract_file":{"type":"string","format":"binary","example":"contract.pdf","nullable":true,"description":"A pre-signed PDF to attach. When provided, both parties acknowledge the document — Deel never modifies the uploaded file."}},"description":"Details of contract to create"},{"type":"object","required":["type"],"properties":{"type":{"enum":["payg_milestones"],"type":"string","example":"payg_milestones","description":"Type of contract"},"start_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}},{"type":"object","required":["compensation_details"],"properties":{"compensation_details":{"not":{"required":["payment_policy_id"]},"type":"object","example":{"amount":100,"cycle_end":15,"frequency":"monthly","currency_code":"GBP","first_payment":500,"cycle_end_type":"DAY_OF_MONTH","payment_due_days":7,"payment_due_type":"REGULAR","first_payment_date":"1999-12-31","pay_before_weekends":true},"required":["currency_code","frequency","cycle_end","cycle_end_type","payment_due_type","payment_due_days"],"properties":{"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":15,"maximum":31,"minimum":1,"description":"Date invoice cycle ends."},"frequency":{"enum":["weekly","monthly","biweekly","semimonthly","calendar-month"],"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"number","default":0,"example":500,"minimum":0,"description":"First payment amount."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_WEEK","description":"Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."},"payment_due_days":{"type":"number","example":7,"maximum":90,"minimum":0,"description":"Number of days to pay the invoice."},"payment_due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","default":"REGULAR","example":"REGULAR","description":"Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'. If the payment is due some days after the end of the month, enter 'AFTER_MONTH'. If the payment is due before the end of the invoice cycle, enter 'BEFORE_CYCLE_END'."},"first_payment_date":{"type":"string","example":"1999-12-31","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"pay_before_weekends":{"type":"boolean","example":true,"description":"If the payment due is on a weekend, pay on Friday."}},"description":"Compensation and invoicing configuration for the contract."}}}],"title":"PAYG_MILESTONES"},{"allOf":[{"type":"object","required":["type","title","meta","client"],"properties":{"meta":{"type":"object","required":["documents_required"],"properties":{"is_main_income":{"type":"boolean","example":true,"description":"Flag to indicate if the contract is the main income for the contractor."},"documents_required":{"type":"boolean","example":true,"description":"Require the contractor to upload necessary compliance documents as per their country’s labor laws."}},"description":"Additional custom info about a contract"},"title":{"type":"string","example":"Software Developer","description":"The title of the contract."},"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."}},"description":"Client details for the contract, including the legal entity and team."},"worker":{"type":"object","nullable":true,"required":["first_name","expected_email"],"properties":{"last_name":{"type":"string","example":"Doe","nullable":true,"maxLength":255,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":true,"maxLength":255,"description":"Worker's first name"},"work_email":{"type":"string","format":"email","example":"john.doe@company.com","nullable":true,"maxLength":255,"description":"Worker's work email address."},"expected_email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"Worker's email address."}},"description":"Worker properties"},"job_title":{"type":"object","properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Software Developer","nullable":true,"maxLength":255,"description":"Job title. Please leave it blank when entering an Id."}},"description":"Worker's job title. You can enter a custom job title or use a pre-defined job title using the Id retrieved in job-titles endpoint."},"seniority":{"type":"object","nullable":true,"properties":{"id":{"anyOf":[{"type":"string"},{"type":"number"}],"example":[12345678,"00000000-0000-0000-0000-000000000000"],"description":"Unique identifier of this resource."}},"description":"Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."},"state_code":{"type":"string","example":"CO","nullable":true,"description":"The state or province code. Use country lookup endpoint to retrieve state codes."},"citizenship":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of the worker's citizenship."},"external_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"External Id."},"who_reports":{"enum":["both","client","contractor"],"type":"string","example":"both","description":"Flag to indicate who is supposed to provide regular reports"},"country_code":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"scope_of_work":{"type":"string","example":"Software development","nullable":true,"description":"Describe the work to be performed."},"special_clause":{"type":"string","example":"Special clause","nullable":true,"description":"Enter any special clause you may have."},"scope_of_work_id":{"type":"string","format":"uuid","example":"f72f1ef4-b9fe-40e3-9d63-711d4b095048","nullable":true,"description":"Existing scope of work public id"},"termination_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"contract_template_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Contract Template Id."},"custom_contract_file":{"type":"string","format":"binary","example":"contract.pdf","nullable":true,"description":"A pre-signed PDF to attach. When provided, both parties acknowledge the document — Deel never modifies the uploaded file."}},"description":"Details of contract to create"},{"type":"object","required":["type","start_date"],"properties":{"type":{"enum":["ongoing_time_based"],"type":"string","example":"ongoing_time_based","description":"Type of contract"},"start_date":{"type":"string","format":"date","example":"1999-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."}}},{"type":"object","required":["compensation_details"],"properties":{"compensation_details":{"allOf":[{"type":"object","oneOf":[{"not":{"anyOf":[{"required":["frequency"]},{"required":["cycle_end"]},{"required":["cycle_end_type"]},{"required":["payment_due_type"]},{"required":["payment_due_days"]},{"required":["pay_before_weekends"]}]},"title":"Policy-based payment configuration","example":{"scale":"daily","amount":100,"currency_code":"GBP","payment_policy_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"},"required":["payment_policy_id"],"description":"Reference a pre-configured payment policy. The individual payment fields, including pay_before_weekends, must be omitted."},{"not":{"required":["payment_policy_id"]},"title":"Field-based payment configuration","required":["frequency","cycle_end","cycle_end_type","payment_due_type","payment_due_days"],"description":"Specify the payment schedule field by field. payment_policy_id must be omitted."}],"required":["currency_code"],"properties":{"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"cycle_end":{"type":"number","example":15,"maximum":31,"minimum":1,"description":"Date invoice cycle ends."},"frequency":{"enum":["weekly","monthly","biweekly","semimonthly","calendar-month"],"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code."},"first_payment":{"type":"number","default":0,"example":500,"minimum":0,"description":"First payment amount."},"notice_period":{"type":"number","default":10,"example":15,"minimum":0,"description":"Days before to notice the termination of contract for either party."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_WEEK","description":"Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."},"payment_due_days":{"type":"number","example":7,"maximum":90,"minimum":0,"description":"Number of days to pay the invoice."},"payment_due_type":{"enum":["REGULAR","WITHIN_MONTH","AFTER_MONTH","BEFORE_CYCLE_END"],"type":"string","default":"REGULAR","example":"REGULAR","description":"Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'. If the payment is due some days after the end of the month, enter 'AFTER_MONTH'. If the payment is due before the end of the invoice cycle, enter 'BEFORE_CYCLE_END'."},"payment_policy_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"ID of a pre-configured payment policy. When provided, the payment schedule is derived from the policy and the individual payment fields (frequency, cycle_end, cycle_end_type, payment_due_type, payment_due_days, pay_before_weekends) must be omitted. Mutually exclusive with those individual fields."},"first_payment_date":{"type":"string","example":"1999-12-31","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"pay_before_weekends":{"type":"boolean","example":true,"description":"If the payment due is on a weekend, pay on Friday."}}},{"type":"object","required":["amount","scale"],"properties":{"scale":{"enum":["hourly","daily","weekly","monthly","biweekly","semimonthly","custom"],"type":"string","example":"daily","description":"Defines the scale at which the amount is paid. For example, enter 'hourly' to define the amount per hour. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"amount":{"type":"number","example":100,"description":"Amount to be paid. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."}}}],"example":{"scale":"daily","amount":100,"cycle_end":15,"frequency":"monthly","currency_code":"GBP","first_payment":500,"cycle_end_type":"DAY_OF_MONTH","payment_due_days":7,"payment_due_type":"REGULAR","first_payment_date":"1999-12-31","pay_before_weekends":true},"description":"Compensation and invoicing configuration for the contract."}}}],"title":"ONGOING_TIME_BASED"}]}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"get":{"path":"/rest/contracts","tags":["Contracts"],"method":"get","summary":"List of contracts","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","title","type","status","client","invitations","signatures","is_shielded","is_archived","created_at","termination_date"],"properties":{"id":{"type":"string","example":"d0377f58-f152-413a-aa9f-997bdfc61fc2","nullable":false,"minLength":1,"description":"UUID of the contract."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","peo","employee","global_payroll","shield_msa","hris_direct_employee","contractor_outside_deel"],"type":"string","example":"ongoing_time_based","description":"Type of a contract."},"scale":{"type":"string","example":"weekly","nullable":true,"description":"The payment scale (e.g., hourly, weekly, monthly, etc.)."},"title":{"type":"string","example":"Ken","nullable":false,"minLength":1,"description":"Title of the contract."},"client":{"type":"object","example":{"team":{"id":"d0377f58-f152-413a-aa9f-997bdfc61fc2","name":"Ken"},"legal_entity":{"id":"d0377f58-f152-413a-aa9f-997bdfc61fc2","name":"Acme Inc."}},"properties":{"team":{"type":"object","example":{"id":"d0377f58-f152-413a-aa9f-997bdfc61fc2","name":"Ken"},"required":["id","name"],"properties":{"id":{"type":"string","example":"d0377f58-f152-413a-aa9f-997bdfc61fc2","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Ken","nullable":true,"description":"Name of a team."}},"description":"Team information for the client."},"legal_entity":{"type":"object","example":{"id":"d0377f58-f152-413a-aa9f-997bdfc61fc2","name":"Acme Inc."},"nullable":true,"required":["id","name"],"properties":{"id":{"type":"string","example":"d0377f58-f152-413a-aa9f-997bdfc61fc2","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Acme Inc.","nullable":true,"description":"Name of the legal entity."}},"description":"Legal entity information for the client."}},"description":"Client information associated with the contract."},"status":{"enum":["new","under_review","waiting_for_approval","waiting_for_employee_contract","waiting_for_client_sign","processing_payment","waiting_for_contractor_sign","waiting_for_eor_sign","waiting_for_employee_sign","waiting_for_hris_employee_sign","awaiting_deposit_payment","in_progress","completed","cancelled","user_cancelled","rejected","waiting_for_client_payment","onboarding","onboarded"],"type":"string","example":"waiting_for_client_sign","nullable":false,"description":"Status of a contract in Deel workflow."},"worker":{"type":"object","example":{"id":"28da9a07-102c-4a69-9781-3182a514f669","email":"test@example.com","image":"https://example.com/image.jpg","full_name":"John Doe","alternate_email":[{"email":"test@example.com","isVerified":true}]},"nullable":true,"required":["id"],"properties":{"id":{"type":"string","example":"28da9a07-102c-4a69-9781-3182a514f669","description":"Unique identifier of this resource."},"email":{"type":"string","example":"test@example.com","nullable":true,"minLength":5,"description":"User's email address.","x-sensitive-pii":true},"image":{"type":"string","format":"uri","example":"https://example.com/image.jpg","nullable":true,"minLength":5,"description":"URL of the worker's profile image."},"full_name":{"type":"string","example":"John Doe","nullable":false,"minLength":1,"description":"Full name of the worker.","x-sensitive-pii":true},"alternate_email":{"type":"array","items":{"type":"object","example":{"email":"test@example.com","isVerified":true},"properties":{"email":{"type":"string","format":"email","example":"test@example.com","nullable":true,"minLength":5,"description":"User's email address."},"isVerified":{"type":"boolean","example":true,"description":"Indicates whether the alternate email address is verified."}},"description":"Alternate email address object."},"example":[{"email":"test@example.com","isVerified":true}],"description":"List of alternate email addresses.","x-sensitive-pii":true}},"description":"Worker information associated with the contract."},"created_at":{"type":"string","format":"date-time","example":"2019-03-21T13:45:07.515Z","nullable":true,"description":"Timestamp when the contract was created, in ISO-8601 format."},"signatures":{"type":"object","example":{"client_signed_at":"2019-03-21T13:45:07.515Z","worker_signature":"John Doe","worker_signed_at":"2019-03-21T13:45:07.515Z"},"required":["client_signed_at","worker_signature","worker_signed_at"],"properties":{"client_signed_at":{"type":"string","format":"date-time","example":"2019-03-21T13:45:07.515Z","nullable":true,"description":"Timestamp when the client signed the contract, in ISO-8601 format."},"worker_signature":{"type":"string","example":"John Doe","nullable":true,"description":"Worker's signature."},"worker_signed_at":{"type":"string","format":"date-time","example":"2019-03-21T13:45:07.515Z","nullable":true,"description":"Timestamp when the worker signed the contract, in ISO-8601 format."}},"description":"Signature information for the contract."},"external_id":{"type":"string","example":"123456","nullable":true,"description":"A unique identifier for the object provided by an external system."},"invitations":{"type":"object","example":{"client_email":"test@example.com","worker_email":"test@example.com"},"properties":{"client_email":{"type":"string","example":"test@example.com","nullable":true,"description":"Email address of the client to invite."},"worker_email":{"type":"string","example":"test@example.com","nullable":true,"description":"Email address of the worker to invite.","x-sensitive-pii":true}},"description":"Details of invitations sent for signing the contract."},"is_archived":{"type":"boolean","example":false,"description":"Indicates whether the contract is archived."},"is_shielded":{"type":"boolean","example":false,"description":"Indicates whether the contract is shielded."},"who_reports":{"enum":["both","client","contractor"],"type":"string","example":"both","description":"Indicates who is responsible for providing regular reports."},"cost_centers":{"type":"array","items":{"type":"object","example":{"name":"6P73USR022JKJ2KU1","number":"553","allocation_percentage":100},"properties":{"name":{"type":"string","example":"6P73USR022JKJ2KU1","description":"Cost center name."},"number":{"type":"string","example":"553","description":"Cost center number."},"allocation_percentage":{"type":"number","example":100,"description":"Percentage of the cost center allocation."}},"description":"Cost center object."},"example":[{"name":"6P73USR022JKJ2KU1","number":"553","allocation_percentage":100}],"description":"List of cost centers associated with the contract."},"custom_fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"9d77f284-82bd-41c4-85ba-bde64332993c","description":"Public identifier of the custom field."},"name":{"type":"string","example":"Health Insurance Plan","description":"Name of the custom field."},"value":{"type":"string","example":"Plan A","nullable":true,"description":"Value of the custom field for this contract."}},"description":"Contract custom field object."},"nullable":true,"description":"Contract-level custom fields. Only returned when `expand=custom_fields` is provided."},"notice_period":{"type":"number","default":0,"example":30,"minimum":0,"description":"Number of days required to give notice before terminating the contract."},"fte_percentage":{"type":"number","example":1,"nullable":true,"description":"Full time percentage"},"termination_date":{"type":"string","format":"date-time","example":"2022-10-21T09:33:12.256Z","nullable":true,"description":"Date when the contract is terminated, in ISO-8601 format."}}},"example":[{"id":"d0377f58-f152-413a-aa9f-997bdfc61fc2","type":"ongoing_time_based","title":"Ken","client":{"team":{"id":"d0377f58-f152-413a-aa9f-997bdfc61fc2","name":"Ken"}},"status":"waiting_for_client_sign","created_at":"2019-03-21T13:45:07.515Z","signatures":{"client_signed_at":"2019-03-21T13:45:07.515Z","worker_signature":"John Doe","worker_signed_at":"2019-03-21T13:45:07.515Z"},"invitations":{"client_email":"test@example.com","worker_email":"test@example.com"},"is_archived":false,"is_shielded":false,"fte_percentage":1,"termination_date":"2022-10-21T09:33:12.256Z"}],"description":"Array of contract objects."},"page":{"type":"object","example":{"cursor":"eyJ0eXBlIjoiY29udGV4dCIsInN0YXR1cyI6Im5ldyJ9","total_rows":100},"required":["cursor","total_rows"],"properties":{"cursor":{"type":"string","example":"eyJ0eXBlIjoiY29udGV4dCIsInN0YXR1cyI6Im5ldyJ9","nullable":false,"description":"Cursor for paginated results."},"total_rows":{"type":"number","example":100,"nullable":false,"description":"Total number of rows in the result set."}},"description":"Pagination information for the response."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Invalid query parameters","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"GET","description":"Method of the API"},"status":{"type":"number","example":400,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Bad Request - Validation error or invalid parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"after_cursor","schema":{"type":"string"},"example":"eyJlZmZlY3RpdmVEYXRlIjoiMjAyMy0wNS0wMyIsImlkIjozOSwibGltaXQiOjMsInJhbmsiOjZ9","description":"Return next page of results after the given cursor."},{"in":"query","name":"limit","schema":{"type":"string","default":50,"maximum":150,"minimum":1,"pattern":"^[0-9]+$"},"example":50,"description":"Return a page of results with the given number of records."},{"in":"query","name":"order_direction","schema":{"enum":["asc","desc"],"type":"string"},"example":"desc","description":"Order direction of results; ascending or descending."},{"in":"query","name":"types","schema":{"type":"array","items":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","peo","unknown","employee","global_payroll","shield_msa","hris_direct_employee","contractor_outside_deel"],"type":"string","description":"Type of a contract."}},"example":["ongoing_time_based","milestones","pay_as_you_go_time_based"],"description":"Filter contracts by type. A contract is included in the results if its type is in this list."},{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["new","under_review","waiting_for_employee_contract","waiting_for_client_sign","processing_payment","waiting_for_contractor_sign","waiting_for_eor_sign","waiting_for_employee_sign","awaiting_deposit_payment","in_progress","completed","cancelled","user_cancelled","rejected","waiting_for_client_payment","onboarding","onboarded"],"type":"string","nullable":false,"description":"Status of a contract in Deel workflow."}},"example":["waiting_for_client_sign","waiting_for_contractor_sign"],"description":"Filter contracts by current status. A contract is included in the results if its status is in this list."},{"in":"query","name":"team_id","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"example":"123e4567-e89b-12d3-a456-426614174000","description":"Filter contracts for the given team ID(s). A contract is included in the results if its team is in this list."},{"in":"query","name":"legal_entity_id","schema":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"example":"123e4567-e89b-12d3-a456-426614174000","description":"Filter contracts for the given legal entity ID(s). A contract is included in the results if its legal entity is in this list."},{"in":"query","name":"external_id","schema":{"type":"string"},"example":"1234567890","description":"Filter contracts for the given external ID."},{"in":"query","name":"external_id_absent","schema":{"type":"string"},"example":"true","description":"Filter contracts by external ID presence. When true, returns contracts without an external ID. When false, returns contracts with an external ID. Cannot be used with external_id query param when set to true."},{"in":"query","name":"countries","schema":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."}},"example":["US","GB"],"description":"Filter contracts by country codes."},{"in":"query","name":"currencies","schema":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3}},"example":["USD","GBP"],"description":"Filter contracts by currency codes."},{"in":"query","name":"search","schema":{"type":"string"},"example":"Test","description":"Include a contract if its name or the contractor's name contains the given search term."},{"in":"query","name":"sort_by","schema":{"enum":["contract_title","worker_name"],"type":"string"},"example":"contract_title","description":"Sort contracts by the given field name."},{"in":"query","name":"expand","schema":{"type":"array","items":{"enum":["cost_centers","custom_fields"],"type":"string","description":"Additional fields to include in the response."}},"example":["cost_centers","custom_fields"],"description":"Include additional fields in the response. Multiple values can be passed as comma-separated list."}],"description":"Returns a paginated list of contract summaries for the organization, with optional filtering by status, type, team, legal entity, country, currency, external ID, or a name search term. Use `GET /contracts/{contract_id}` to retrieve full details for a specific contract.\n\n **Token scopes**: `contracts:read`","operationId":"listOfContracts-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/gp/reports/{id}/gross_to_net":{"get":{"path":"/rest/gp/reports/{id}/gross_to_net","tags":["Global Payroll"],"method":"get","summary":"List gross-to-net report.","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":[{"grossPay":{"type":"currency","label":"Gross Pay","compareValue":null,"currentValue":6726.23,"percentageDiff":null,"formattedCurrentValue":"$6726.23"},"employeeName":{"type":"text","label":"Employee Name","compareValue":null,"currentValue":"Lucio Hills","percentageDiff":null,"formattedCurrentValue":"Lucio Hills"}}],"page":{"limit":50,"offset":0,"total_rows":95}},"required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","description":"A single report row. Property names are dynamic column identifiers (e.g. employeeName, grossPay).","additionalProperties":{"type":"object","example":{"type":"text","label":"Employee Name","compareValue":null,"currentValue":"Lucio Hills","percentageDiff":null,"formattedCurrentValue":"Lucio Hills"},"required":["label","type"],"properties":{"type":{"type":"string","example":"text","description":"Cell type used for rendering/formatting."},"label":{"type":"string","example":"Employee Name","description":"Human-readable label of the column for this cell."},"compareValue":{"example":0,"description":"Raw value for the comparison period, if applicable."},"currentValue":{"example":"Lucio Hills","description":"Raw value for the current period. Type varies by column (string/number/null/etc)."},"percentageDiff":{"example":14.73,"description":"Percentage difference between current and comparison values, if applicable."},"formattedCurrentValue":{"example":"$6673.04","description":"Formatted value for display purposes."}},"description":"A cell value object for a given column.","additionalProperties":true}},"example":[{"grossPay":{"type":"currency","label":"Gross Pay","compareValue":null,"currentValue":6726.23,"percentageDiff":null,"formattedCurrentValue":"$6726.23"},"employeeName":{"type":"text","label":"Employee Name","compareValue":null,"currentValue":"Lucio Hills","percentageDiff":null,"formattedCurrentValue":"Lucio Hills"}}],"description":"List of report rows (summary rows are filtered out). Each row contains dynamic column keys mapped to cell objects."},"page":{"type":"object","example":{"limit":50,"offset":0,"total_rows":95},"required":["total_rows","limit","offset"],"properties":{"limit":{"type":"number","example":50,"maximum":200,"description":"Maximum number of rows returned per page."},"offset":{"type":"number","example":0,"description":"Zero-based offset of the first returned row."},"total_rows":{"type":"number","example":95,"minimum":0,"description":"Total number of rows available across all pages."}},"description":"Pagination metadata for the report rows.","additionalProperties":true}},"additionalProperties":true}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"currency","schema":{"type":"string"},"example":"USD","description":"Currency to be used in the report calculation."},{"in":"query","name":"limit","schema":{"type":"number","maximum":200},"example":50,"description":"Maximum number of records to return."},{"in":"query","name":"offset","schema":{"type":"number"},"example":50,"description":"Offset/index of record for the next page of records to return."},{"in":"path","name":"id","schema":{"type":"string"},"example":"clbuuabvg63543201r3310y322c","required":true,"description":"Id of the gp payroll report."}],"description":"Returns paginated gross-to-net calculation records for the specified payroll report, with optional currency conversion applied to the results.\n\n **Token scopes**: `global-payroll:read`","operationId":"listGrossToNetReport-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["global-payroll:read"]}]}},"/ats/upsertions/bulk-tags":{"post":{"path":"/rest/ats/upsertions/bulk-tags","tags":["ATS"],"method":"post","summary":"Upsert tags in bulk","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"job_tags":{"type":"array","items":{"type":"object","required":["tag_id","tag_name"],"properties":{"tag_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the resolved tag."},"tag_name":{"type":"string","example":"Top Talent","description":"The tag label."}}}},"opening_tags":{"type":"array","items":{"type":"object","required":["tag_id","tag_name"],"properties":{"tag_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the resolved tag."},"tag_name":{"type":"string","example":"Top Talent","description":"The tag label."}}}},"candidate_tags":{"type":"array","items":{"type":"object","required":["tag_id","tag_name"],"properties":{"tag_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the resolved tag."},"tag_name":{"type":"string","example":"Top Talent","description":"The tag label."}}}}},"description":"Resolved tags grouped by tag group."}}}}},"description":"Tags upserted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"description":"Use this endpoint to create or update tags for candidate, job, or opening groups in bulk. Provide both tag_id and tag_name to update an existing tag label. Omit tag_id to create a new tag or match an existing one case-insensitively.\n\n **Token scopes**: `ats:write`","operationId":"bulkTagUpsertions-v2026-06-12","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","anyOf":[{"required":["candidate_tags"],"properties":{"candidate_tags":{"minItems":1}}},{"required":["job_tags"],"properties":{"job_tags":{"minItems":1}}},{"required":["opening_tags"],"properties":{"opening_tags":{"minItems":1}}}],"properties":{"job_tags":{"type":"array","items":{"type":"object","required":["tag_name"],"properties":{"tag_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Tag ID to update. Omit to create a new tag."},"tag_name":{"type":"string","example":"Senior","maxLength":100,"minLength":1,"description":"Tag label."}}},"example":[{"tag_name":"Engineering"}],"maxItems":500,"description":"Tags to upsert for this group. Include tag_id to update an existing tag, or omit it to create/match."},"opening_tags":{"type":"array","items":{"type":"object","required":["tag_name"],"properties":{"tag_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Tag ID to update. Omit to create a new tag."},"tag_name":{"type":"string","example":"Senior","maxLength":100,"minLength":1,"description":"Tag label."}}},"example":[{"tag_name":"Remote"},{"tag_name":"Urgent"}],"maxItems":500,"description":"Tags to upsert for this group. Include tag_id to update an existing tag, or omit it to create/match."},"candidate_tags":{"type":"array","items":{"type":"object","required":["tag_name"],"properties":{"tag_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Tag ID to update. Omit to create a new tag."},"tag_name":{"type":"string","example":"Senior","maxLength":100,"minLength":1,"description":"Tag label."}}},"example":[{"tag_name":"Senior"},{"tag_id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","tag_name":"Top Talent"}],"maxItems":500,"description":"Tags to upsert for this group. Include tag_id to update an existing tag, or omit it to create/match."}},"description":"At least one tag group must be provided. Include tag_id to update an existing tag label, or omit it to create or match case-insensitively."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["ats:write"]}]}},"/eor/contracts/{contract_id}/amendments/validation/settings":{"get":{"path":"/rest/eor/contracts/{contract_id}/amendments/validation/settings","tags":["EOR"],"method":"get","summary":" Get amendment validation settings for an EOR contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"rules":{"type":"array","items":{"type":"object","properties":{"max":{"type":"number","example":100,"description":"The maximum allowable value for numerical data points."},"min":{"type":"number","example":1,"nullable":true,"description":"The minimum allowable value for numerical data points."},"max_date":{"type":"string","format":"date","example":"2025-12-31","nullable":true,"description":"The latest allowable date for date-type data points."},"min_date":{"type":"string","format":"date","example":"2020-01-01","nullable":true,"description":"The earliest allowable date for date-type data points."},"nullable":{"type":"boolean","example":true,"description":"Indicates whether the data point can be null."},"requires":{"type":"object","example":{"employment_type":"FULL_TIME"},"description":"Contract conditions that must be met for this rule to be applied."},"is_editable":{"type":"boolean","example":false,"description":"Indicates whether the data point can be updated."},"possible_options":{"type":"array","items":{"type":"string","example":"FULL_TIME"},"example":["FULL_TIME","PART_TIME"],"description":"A list of possible values the data point can have. Unique for each data point."},"additional_details":{"type":"object","example":{"cap":6,"note":"Maximum probation cannot exceed 6 months.","rule":"ONE_THIRD_OF_CONTRACT_DURATION","time_unit":"MONTH"},"properties":{"cap":{"type":"number","example":6,"nullable":true,"description":"The maximum limit imposed for probation period for definite contract when specific calculation is used, it will be in additional_details.rule."},"note":{"type":"string","example":"Maximum probation cannot exceed 6 months.","nullable":true,"description":"Additional explanation or notes related to this rule."},"rule":{"enum":["ONE_QUARTER_OF_CONTRACT_DURATION","ONE_THIRD_OF_CONTRACT_DURATION","HALF_OF_CONTRACT_DURATION",null],"type":"string","example":"ONE_THIRD_OF_CONTRACT_DURATION","nullable":true,"description":"Specific rule that applies for probation period."},"time_unit":{"enum":["WEEK","MONTH","DAY",null],"type":"string","example":"MONTH","nullable":true,"description":"The unit of time applicable to notice period."}},"description":"Optional additional information for rules, if applicable."},"tenure_based_rules":{"type":"array","items":{"type":"object","example":{"notice_value":30,"max_employment_duration":24,"min_employment_duration":12,"employment_duration_type":"MONTH"},"properties":{"notice_value":{"type":"integer","example":30,"nullable":true,"description":"The required notice period for this range of employment duration."},"max_employment_duration":{"type":"integer","example":24,"nullable":true,"description":"The maximum duration of employment for this rule to apply."},"min_employment_duration":{"type":"integer","example":12,"nullable":true,"description":"The minimum duration of employment for this rule to apply."},"employment_duration_type":{"enum":["DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"MONTH","nullable":true,"description":"The unit of measurement for the employment duration."}}},"description":"Defines notice period rules based on the duration of employment."},"external_validation":{"type":"boolean","example":true,"description":"Indicates whether external validation/fetching is required for this data point. If yes, the information for this data point must be retrieved using another endpoint."}}},"description":"The rules for the data point."},"data_point":{"type":"string","example":"SALARY","description":"The name of the data point being configured."}}}}}}}},"description":"Amendment settings response with additional_details included as optional."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"employment_state","schema":{"type":"string"},"example":"CA","required":false,"description":"The employment state of the EOR worker contract"},{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of EOR worker contract."}],"description":"Returns the validation settings for all available amendment data points on an EOR contract, optionally scoped to a specific employment state. Use these settings to determine which fields are editable and what constraints apply before constructing an amendment request.\n\n **Token scopes**: `contracts:read`","operationId":"getAmendmentValidationSettingsForAnEorContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/workers/contracts/{contract_id}/offboarding/resignation-letter":{"get":{"path":"/rest/eor/workers/contracts/{contract_id}/offboarding/resignation-letter","tags":["EOR"],"method":"get","summary":"Preview Resignation Letter","responses":{"200":{"content":{"application/pdf":{"schema":{"type":"string","format":"binary","description":"PDF file content"}},"application/octet-stream":{"schema":{"type":"string","format":"binary","description":"The file content as binary data"}}},"headers":{"Content-Type":{"schema":{"enum":["application/pdf","application/octet-stream"],"type":"string"},"description":"MIME type of the file"},"Content-Length":{"schema":{"type":"string"},"description":"Size of the file in bytes"},"Content-Disposition":{"schema":{"type":"string","example":"attachment; filename=\"document.pdf\""},"description":"Attachment disposition with filename"}},"description":"File download successful"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcd4fg","required":true,"description":"The unique identifier of the employee contract."}],"description":"Returns a preview of the resignation letter for the EOR contract before the worker submits their signature.\n\n **Token scopes**: `worker:read`","operationId":"previewResignationLetter-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/immigration/workers/cases":{"get":{"path":"/rest/immigration/workers/cases","tags":["Immigration"],"method":"get","summary":"List of immigration cases for workers","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status","case_type","process","applicant","closure","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d7348f5b-b0a6-4c84-ae07-2e5ccdd60134","description":"Unique identifier of the immigration case."},"status":{"enum":["OPEN","CLOSED","ON_HOLD"],"type":"string","example":"OPEN","description":"Current lifecycle status of the immigration case."},"closure":{"type":"object","example":{"note":"Employee contract was terminated.","reason":"CONTRACT_CANCELLED"},"nullable":true,"required":["reason","note"],"properties":{"note":{"type":"string","example":"Employee contract was terminated.","nullable":true,"maxLength":400,"description":"Additional notes explaining the case closure.","x-sensitive-employment":true},"reason":{"enum":["CONTRACT_CANCELLED","NATIONALITY_CHANGE","NEW_CASE_TYPE_IS_REQUIRED","ONBOARDING_RELEASED","OTHER"],"type":"string","example":"CONTRACT_CANCELLED","nullable":true,"description":"Reason why the immigration case was closed.","x-sensitive-employment":true}},"description":"Closure details of the case if the case has been closed."},"process":{"type":"object","required":["id","name","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c8895566-11aa-22bb-33cc-44dd55ee66ff","description":"Unique identifier of the current process."},"name":{"type":"string","example":"Initial Review","maxLength":255,"description":"Human-readable name of the current process step.","x-sensitive-employment":true},"status":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"f1234567-abcd-ef01-2345-6789abcd0123","nullable":true,"description":"Unique identifier of the process status."},"name":{"type":"string","example":"IN_PROGRESS","nullable":true,"maxLength":255,"description":"Human-readable name of the process status."}},"description":"Current status of the process."}},"description":"Current active process associated with the case."},"applicant":{"type":"object","example":{"id":"b1234567-89ab-cdef-0123-456789abcdef","name":"John Doe"},"nullable":true,"required":["name"],"properties":{"id":{"type":"string","format":"uuid","example":"b1234567-89ab-cdef-0123-456789abcdef","nullable":true,"description":"Unique identifier of the applicant."},"name":{"type":"string","example":"John Doe","maxLength":255,"description":"Full name of the applicant.","x-sensitive-pii":true,"x-sensitive-employment":true}},"description":"Applicant associated with the immigration case.","x-sensitive-pii":true},"case_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1234567-89ab-cdef-0123-456789abcdef","description":"Unique identifier of the case type."},"name":{"type":"string","example":"Work Permit","maxLength":255,"description":"Human-readable name of the case type."}},"description":"Type of immigration case."},"created_at":{"type":"string","format":"date-time","example":"2024-01-12T08:30:00Z","description":"Timestamp indicating when the case was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-01-13T10:45:00Z","description":"Timestamp indicating when the case was last updated."}}},"description":"List of cases in the current page."},"has_more":{"type":"boolean","example":true,"description":"Indicates whether more results are available for pagination."},"next_cursor":{"type":"string","example":"eyJpZCI6IjEyMzQ1NiJ9","nullable":true,"description":"Cursor value to be used for fetching the next page of results."},"total_count":{"type":"integer","example":100,"description":"Total number of cases matching the search criteria."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"search","schema":{"type":"string","maxLength":100,"minLength":3},"example":"john","required":false,"description":"Search by applicant name or code"},{"in":"query","name":"case_type_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["e9b4ce94-2e3e-4d41-9faf-1ad2389cac1d"],"required":false,"description":"Filter by case type IDs"},{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["OPEN","ON_HOLD","CLOSED"],"type":"string"}},"example":["OPEN","ON_HOLD","CLOSED"],"required":false,"description":"Filter by case status"},{"in":"query","name":"countries","schema":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"The ISO 3166-1 alpha-2 country code."},"maxItems":100,"minItems":1},"example":["AE","SA"],"required":false,"description":"Filter by country. Uses ISO 3166-1 alpha-2 codes (https://www.iban.com/country-codes)."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"next-page-token-123","required":false,"description":"Pagination cursor for fetching next set of results"},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100},"example":20,"required":false,"description":"Max number of results to return"}],"description":"Retrieves a paginated list of immigration cases with filters for applicant name, case type, status, and country. Returns case details including type, status, process, timestamps, and optional closure information.\n\n **Token scopes**: `worker:read`","operationId":"listOfImmigrationCasesForWorkers-v2026-04-02","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/ats/job-boards/{job_board_id}/job-postings":{"get":{"path":"/rest/ats/job-boards/{job_board_id}/job-postings","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS job postings","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","job_id","title","richtext_description","is_compensation_visible","job","publications","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job posting"},"job":{"type":"object","required":["id","job_locations","job_employment_types","compensation"],"properties":{"id":{"type":"string","format":"uuid","example":"5f3cbc4b-2c51-4b48-a2c5-141f581dbf8a","description":"Unique identifier for the job"},"job_teams":{"type":"array","items":{"type":"object","required":["id","team"],"properties":{"id":{"type":"string","format":"uuid","example":"53e4d5bb-65e3-42ff-ada7-65badeeb9d8f","description":"Unique identifier for the job team"},"team":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"127ee4e0-3776-46c8-8999-5e045e2ae1cf","description":"Unique identifier for the team"},"name":{"type":"string","example":"Product Design Team","description":"Team name"}},"description":"Details for the team assigned to the job"}}},"nullable":true,"description":"Teams associated with the job"},"compensation":{"type":"object","nullable":true,"required":["id","currency_iso_code"],"properties":{"id":{"type":"string","format":"uuid","example":"9a8b7c6d-5e4f-4321-abcd-9876543210ff","description":"Unique identifier for the compensation record"},"max_amount":{"type":"number","example":105000,"nullable":true,"description":"Maximum compensation amount"},"min_amount":{"type":"number","example":85000,"nullable":true,"description":"Minimum compensation amount"},"currency_iso_code":{"type":"string","example":"USD","description":"Currency ISO code for the compensation"}},"description":"Compensation information for the job"},"job_locations":{"type":"array","items":{"type":"object","required":["id","location"],"properties":{"id":{"type":"string","format":"uuid","example":"ae5ea0d8-300b-4027-9d14-0330ac5e527c","description":"Unique identifier for the job location"},"location":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"f61a2d36-2790-45d0-b9c9-988c6c234b9b","description":"Unique identifier for the location"},"name":{"type":"string","example":"France","description":"Location name"}},"description":"Details for the location assigned to the job"}}},"description":"Locations associated with the job"},"job_departments":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Job-department association row identifier."},"department":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Department identifier."},"name":{"type":"string","example":"Product","maxLength":100,"description":"Display name of the department."}}}}},"nullable":true,"description":"Departments associated with the job"},"job_employment_types":{"type":"array","items":{"type":"object","required":["id","employment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"33a13504-ec08-4f2a-98cf-64c0cc20f20b","description":"Unique identifier for the job employment type"},"employment_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"5ed1ab2a-395f-4cf1-854f-7aa060a31db3","description":"Unique identifier for the employment type"},"name":{"type":"string","example":"Temporary","description":"Employment type name"}},"description":"Details for the employment type assigned to the job"}}},"description":"Employment types associated with the job"}},"description":"Associated job information"},"title":{"type":"string","example":"Product Designer","maxLength":200,"description":"Job posting title"},"job_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Identifier of the underlying job this posting belongs to."},"created_at":{"type":"string","format":"date-time","example":"2025-07-24T16:28:46.063Z","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","example":"2025-07-25T10:11:12.613Z","description":"Last update timestamp"},"publications":{"type":"array","items":{"type":"object","required":["id","job_board","current_state"],"properties":{"id":{"type":"string","format":"uuid","example":"07e7f02c-e10f-4751-a1af-a7d110617e27","description":"Unique identifier for the job posting publication"},"job_board":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"95858e6b-3971-408c-97d6-73ca4fce10b7","description":"Unique identifier for the job board"}},"description":"Job board where the posting is published"},"current_state":{"type":"object","required":["id","state_slug","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"958e9211-5944-49df-a9df-af43967b233f","description":"Unique identifier for the publication state"},"created_at":{"type":"string","format":"date-time","example":"2025-07-24T16:28:46.063Z","description":"Timestamp when the publication was created"},"created_by":{"type":"string","format":"uuid","example":"42d103ea-9367-432a-8e6f-7ab548eeddcd","nullable":true,"description":"User who created the publication"},"state_slug":{"enum":["PUBLISHED_BASIC","PUBLISHED_PREMIUM","UNPUBLISHED","EXPIRED","IN_PROGRESS","FAILED"],"type":"string","example":"PUBLISHED_BASIC","description":"Current publication state"},"error_message":{"type":"string","example":"Publication failed due to invalid job board credentials","nullable":true,"description":"Error message if publication failed"}},"description":"Current publication state details"}},"description":"Publication information for different job boards"},"description":"Publication rows for this posting, one per job board integration, with current state."},"application_form":{"type":"object","nullable":true,"required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"6bfbc928-8d34-46a0-8bca-6503f0e7128c","description":"Unique identifier for the application form"},"title":{"type":"string","example":"Standard Application","description":"Title of the application form"}},"description":"Application form assigned to the job posting"},"richtext_description":{"type":"string","example":"<p>Some description</p>","nullable":true,"description":"Rich text description of the job posting"},"is_compensation_visible":{"type":"boolean","example":false,"description":"Indicates if compensation details are visible to candidates"}},"description":"Job posting with nested job details and publication status."}},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more results available"},"next_cursor":{"type":"string","example":null,"nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"integer","example":1,"minimum":0,"description":"Total number of job postings"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"job_board_id","schema":{"type":"string","format":"uuid"},"example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","required":true,"description":"Job Board ID must be a valid UUID"},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"cursor_value","required":false,"description":"The cursor for pagination (optional)"},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of records returned in one response (optional)"}],"description":"Returns job postings for a specific job board, including publication status and nested job details, to monitor active postings on that board integration.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfAtsJobPostings-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/hris/worker_relations/types/external/{externalId}":{"patch":{"path":"/rest/hris/worker_relations/types/external/{externalId}","tags":["Worker Relations"],"method":"patch","summary":"Update a worker relation type by external id","responses":{"204":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"integer","example":1,"description":"The ID of the relation type"},"child_name":{"type":"string","example":"Child","description":"The name of the secondary party in the relationship"},"is_default":{"type":"boolean","example":false,"description":"Whether this relation is default or not"},"external_id":{"type":"string","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","maxLength":100,"description":"A custom ID for the relation type"},"parent_name":{"type":"string","example":"Parent","description":"The name of the primary party in the relationship"}}}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"externalId","schema":{"type":"string"},"example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","required":true,"description":"Worker Relation Type external ID"}],"description":"Applies a partial update to a worker relation type. Only fields included in the request body are modified; omitted fields retain their current values.\n\n **Token scopes**: `organizations:write`","operationId":"updateWorkerRelationTypeExternalId-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"child_name":{"type":"string","example":"Child","maxLength":100,"description":"The name of the secondary party in the relationship"},"external_id":{"type":"string","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","maxLength":100,"description":"A custom ID for the relation type"},"parent_name":{"type":"string","example":"Parent","maxLength":100,"description":"The name of the primary party in the relationship"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]},"delete":{"path":"/rest/hris/worker_relations/types/external/{externalId}","tags":["Worker Relations"],"method":"delete","summary":"Delete a worker relation type by external id","responses":{"204":{"content":{"application/json":{}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"externalId","schema":{"type":"string"},"example":"WRT-0001","required":true,"description":"Worker Relation Type external ID"}],"description":"Permanently deletes the worker relation type.\n\n **Token scopes**: `organizations:write`","operationId":"deleteWorkerRelationTypeExternalId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/pwac":{"post":{"path":"/rest/pwac","tags":["People"],"method":"post","summary":"Create a person without a contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"id":"550e8400-e29b-41d4-a716-446655440000","person":{"email":"email@email.com","last_name":"Doe","first_name":"John","start_date":"2020-01-01"}},"required":["id","person"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"The id of the person"},"person":{"type":"object","required":["first_name","last_name","email","start_date"],"properties":{"email":{"type":"string","format":"email","example":"email@email.com","description":"The personal email of the person being hired","x-sensitive-pii":true},"state":{"type":"string","example":"CA","maxLength":50,"minLength":1,"description":"The state of the person being hired","x-sensitive-pii":true},"country":{"type":"string","example":"US","maxLength":2,"minLength":2,"description":"The country of the person being hired","x-sensitive-pii":true},"end_date":{"type":"string","format":"date","example":"2029-01-01","nullable":true,"description":"The end date of the person being hired","x-sensitive-employment":true},"job_title":{"type":"string","example":"Software Engineer","description":"The job title of the person being hired","x-sensitive-pii":true,"x-sensitive-employment":true},"last_name":{"type":"string","example":"Doe","description":"The last name of the person being hired","x-sensitive-pii":true},"seniority":{"type":"string","example":"Senior","description":"The seniority of the person being hired","x-sensitive-pii":true,"x-sensitive-employment":true},"worker_id":{"type":"number","example":1234,"description":"The worker ID of the person being hired","x-sensitive-pii":true},"first_name":{"type":"string","example":"John","description":"The first name of the person being hired","x-sensitive-pii":true},"start_date":{"type":"string","format":"date","example":"2020-01-01","description":"The start date of the person being hired","x-sensitive-employment":true},"work_email":{"type":"string","format":"email","example":"work@email.com","description":"The work email of the person being hired","x-sensitive-pii":true},"external_id":{"type":"string","example":"1234","nullable":true,"description":"An external identifier for the person being hired","x-sensitive-pii":true},"nationality":{"type":"string","example":"BR","maxLength":2,"minLength":2,"description":"The nationality of the person being hired","x-sensitive-pii":true}},"description":"The person that is being hired"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Error code identifying the type of error"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"employee.email","description":"The field that caused the error"},"message":{"type":"string","example":"Invalid email format","description":"Description of the validation error"}}},"description":"List of validation errors"},"message":{"type":"string","example":"Invalid request body","description":"Human readable error message"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"INTERNAL_ERROR","description":"Error code identifying the type of error"},"message":{"type":"string","example":"An unexpected error occurred","description":"Human readable error message"}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Adds a person record in Deel's HRIS without an associated employment contract. It creates a people-only record, allowing you to track individuals in your organization's directory before or without formalizing an employment or agreement. Suitable for pre-boarding, contingent workers, or other scenarios where a contract is not yet applicable.\n\n **Token scopes**: `people:write`","operationId":"createAPersonWithoutAContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["person","client"],"properties":{"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"cbb25647-31e0-485d-9d5f-bdd48296aa1e","description":"The team that the person is part of"},"direct_manager_id":{"type":"string","format":"uuid","example":"0d60f277-f66f-4fca-a5c8-c5c642924505","description":"The direct manager of the person"},"direct_reports_ids":{"type":"array","items":{"type":"string","format":"uuid"},"example":["0d60f277-f66f-4fca-a5c8-c5c642924505"],"description":"The direct reports of the person"}}},"department":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"518c6bee-d798-4785-930f-535f09f3453d","description":"The department that the person is part of"}}},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"cfebc769-abe9-4646-83b9-28cf79f23a0d","description":"The legal entity that the person is part of"}}}}},"person":{"type":"object","required":["first_name","last_name","email","start_date"],"properties":{"email":{"type":"string","format":"email","example":"email@email.com","maxLength":255,"minLength":3,"description":"The personal email of the person being hired"},"state":{"type":"string","example":"CA","maxLength":50,"minLength":1,"description":"The state of the person being hired"},"country":{"type":"string","example":"US","maxLength":2,"minLength":2,"description":"The country of the person being hired"},"end_date":{"type":"string","format":"date","example":"2029-01-01","description":"The end date of the person being hired"},"job_title":{"type":"string","example":"Software Engineer","maxLength":255,"description":"The job title of the person being hired"},"last_name":{"type":"string","example":"Doe","maxLength":100,"minLength":1,"description":"The last name of the person being hired"},"seniority":{"type":"string","example":"Senior","maxLength":255,"description":"The seniority of the person being hired"},"first_name":{"type":"string","example":"John","maxLength":100,"minLength":1,"description":"The first name of the person being hired"},"start_date":{"type":"string","format":"date","example":"2020-01-01","description":"The start date of the person being hired"},"work_email":{"type":"string","format":"email","example":"work@email.com","maxLength":255,"minLength":3,"description":"The work email of the person being hired"},"external_id":{"type":"string","example":"1234","maxLength":100,"description":"An external identifier for the person being hired"},"nationality":{"type":"string","example":"BR","maxLength":2,"minLength":2,"description":"The nationality of the person being hired"},"preferred_last_name":{"type":"string","example":"Doe","maxLength":100,"minLength":1,"description":"The preferred last name of the person being hired"},"preferred_first_name":{"type":"string","example":"John","maxLength":100,"minLength":1,"description":"The preferred first name of the person being hired"}},"description":"The person that is being hired"},"invitation":{"type":"object","properties":{"action":{"enum":["DISABLE","IMMEDIATE"],"type":"string","example":"DISABLE","description":"Controls whether to send an invitation email."}},"description":"Optional invitation configuration for the new hire. Defaults to 'disable' if not provided."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/gp/workers/{worker_id}/banks/guide":{"get":{"path":"/rest/gp/workers/{worker_id}/banks/guide","tags":["Global Payroll"],"method":"get","summary":"Retrieve bank guide","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["key","required"],"properties":{"key":{"type":"string","example":"countryCode","nullable":false,"description":"The unique key representing the field."},"type":{"type":"string","example":"Text","description":"The type of the field, such as 'Text' or 'Dropdown'."},"label":{"type":"string","example":"Country","description":"The label or display name for this field."},"required":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the field is required."},"validations":{"type":"array","items":{"type":"object","properties":{"type":{"enum":["MIN_LENGTH","MAX_LENGTH","REGEX"],"type":"string","example":"MIN_LENGTH","description":"The type of validation applied to the field."},"value":{"oneOf":[{"type":"string","example":"2","description":"The validation value, e.g., a minimum length."},{"type":"number","example":2,"description":"The validation value as a number."}]}}},"description":"An array of validation rules applied to the field."},"values_allowed":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","example":"Argentina","description":"The display name of the allowed value."},"value":{"type":"string","example":"AR","description":"The value associated with the allowed option."}}},"description":"An array of allowed values for the field (e.g., for dropdown fields)."}}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for a worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for a worker in UUID format."}],"description":"Returns the country-specific field requirements for a worker's bank account form, which determines the fields required when adding a bank account.\n\n **Token scopes**: `people:read`","operationId":"getGpBankGuide-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/eor/contracts/{contract_id}/offboarding/resignation":{"post":{"path":"/rest/eor/contracts/{contract_id}/offboarding/resignation","tags":["EOR"],"method":"post","summary":"Request contract resignation","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the offboarding request"},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"documents":{"type":"object","nullable":false,"required":["supporting","offboarding"],"properties":{"supporting":{"type":"array","items":{"type":"object","required":["id","name","type","created_at","updated_at","is_additional_supporting_document"],"properties":{"id":{"type":"string","example":"cmddlk1ghehm54l18gejg198r","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Supporting Documentation","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was updated","x-sensitive-pii":true},"is_additional_supporting_document":{"type":"boolean","example":false,"description":"Indicates if this is an additional supporting document added after the initial submission","x-sensitive-pii":true}}},"x-sensitive-pii":true},"offboarding":{"type":"array","items":{"type":"object","required":["files","reviewer_type","is_employee_notification_required","status"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the document set shared with the employee.","x-sensitive-pii":true},"files":{"type":"array","items":{"type":"object","required":["id","name","type","created_at"],"properties":{"id":{"type":"string","example":"cmdeh9wzgvihue4r54n2y51p4","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Employee Sign Off Documents","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was updated","x-sensitive-pii":true}}},"x-sensitive-pii":true},"status":{"enum":["AWAITING_REVIEW","AWAITING_FEEDBACK","FEEDBACK_PROVIDED","APPROVED","CHANGES_REQUESTED_BY_CLIENT","CHANGES_REQUESTED_BY_EMPLOYEE","WAIVED_REVIEW","NOT_RESPONDED","CANCELLED"],"type":"string","example":"AWAITING_REVIEW","description":"The current status of the document review","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was updated","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2025-07-22T12:30:00.000Z","nullable":true,"description":"The date and time when the document was reviewed","x-sensitive-pii":true},"reviewed_by":{"type":"string","example":"John Doe","nullable":true,"description":"The name of the reviewer for this document. If the reviewer is not an employee, it will be the name of the client","x-sensitive-pii":true},"reviewer_type":{"enum":["CLIENT","EMPLOYEE"],"type":"string","example":"EMPLOYEE","description":"The type of reviewer for this document","x-sensitive-pii":true},"reviewer_feedback":{"type":"string","example":"Document needs clarification on section 3","nullable":true,"description":"Feedback provided by the reviewer","x-sensitive-pii":true},"notification_instructions":{"type":"string","example":"<p>Please review and provide feedback on the attached documents.</p>","nullable":true,"description":"HTML instructions for the reviewer notification","x-sensitive-pii":true},"is_employee_notification_required":{"type":"boolean","example":true,"description":"Indicates if the employee should be notified about this document review","x-sensitive-pii":true}}},"description":"Document set shared that requires client or employee review","x-sensitive-pii":true}},"description":"Document management structure for termination workflow including review processes and supporting documents","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was updated"},"contract_id":{"type":"string","example":"5B74FnLM","description":"The unique identifier of the employee contract."},"is_sensitive":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if the offboarding request is sensitive. This is used to restrict access to the request only to the requester and the HRX team."},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"enum":["STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE","nullable":false,"description":"The reason for the termination","x-sensitive-pii":true,"x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request","x-sensitive-pii":true,"x-sensitive-employment":true},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"BUSINESS_DAY","policy_type":"Vacation","tracking_periods":[{"used":0,"end_date":"2025-02-28T00:00:00.000Z","start_date":"2024-03-01T00:00:00.000Z"},{"used":0,"end_date":"2024-02-29T00:00:00.000Z","start_date":"2023-03-01T00:00:00.000Z"},{"used":0,"end_date":"2023-02-28T00:00:00.000Z","start_date":"2022-03-01T00:00:00.000Z"}],"scheduled_until_end_date":0}],"additional_details":null,"is_deel_pto_confirmed":true},"nullable":false,"required":["time_offs","is_deel_pto_confirmed"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["unit","policy_type","tracking_periods","scheduled_until_end_date"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR"],"type":"string","example":"BUSINESS_DAY","description":"The unit of measurement for time off tracking","x-sensitive-employment":true},"policy_type":{"type":"string","example":"Vacation","description":"The type of time-off policy","x-sensitive-employment":true},"tracking_periods":{"type":"array","items":{"type":"object","required":["used","end_date","start_date"],"properties":{"used":{"type":"number","example":0,"description":"The amount of time off used in this tracking period","x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-02-28T00:00:00.000Z","description":"The end date of the tracking period","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2024-03-01T00:00:00.000Z","description":"The start date of the tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"scheduled_until_end_date":{"type":"number","example":0,"description":"The amount of time off scheduled until the end date of the current tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"additional_details":{"type":"object","nullable":true,"properties":{"notes":{"type":"string","example":"Additional notes about time off allocation","nullable":true,"description":"Additional notes or comments about the time-off data","x-sensitive-employment":true},"updated_by":{"type":"string","example":"HR Administrator","nullable":true,"description":"The person or system that last updated the time-off data","x-sensitive-pii":true,"x-sensitive-employment":true},"last_updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the time-off data was last updated","x-sensitive-employment":true}},"x-sensitive-employment":true},"is_deel_pto_confirmed":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the PTO allocation has been confirmed by Deel's system","x-sensitive-employment":true}},"description":"Time-off usage data including policy information and tracking periods","x-sensitive-employment":true},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again","x-sensitive-pii":true},"eligible_for_rehire_reason":{"type":"string","example":"Employee is not eligible for rehire due to performance issues","nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligible_for_rehire","x-sensitive-pii":true,"x-sensitive-employment":true}},"x-sensitive-pii":true},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}},"description":"Resignation request submitted successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"5B74FnLM","required":true,"description":"The unique identifier of the employee contract."}],"description":"Initiates a resignation request for an EOR contract.\n\n **Token scopes**: `contracts:write`","operationId":"requestContractResignation-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["reason","used_time_off","is_employee_staying_with_deel"],"properties":{"reason":{"enum":["EMPLOYEE_IS_MOVING_TO_ANOTHER_COUNTRY","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","EMPLOYEE_FOUND_ANOTHER_JOB","EMPLOYEE_NOT_HAPPY_WITH_BENEFITS","EMPLOYEE_NOT_HAPPY_WITH_SALARY","EMPLOYEE_NOT_HAPPY_WITH_THE_ROLE","EMPLOYEE_NOT_HAPPY_WITH_COMPANY_CULTURE","EMPLOYEE_NOT_HAPPY_WITH_DEEL","EMPLOYEE_PROJECT_ENDED","EMPLOYEE_SWITCHING_TO_OTHER_EOR_PROVIDER","EMPLOYEE_LEFT_ROLE_FOR_PERSONAL_MATTERS","EMPLOYEE_MOVING_FROM_EOR_TO_CONTRACTOR_OR_FREELANCE","WORKER_TYPE_CHANGE","DEEL_COLLECTIONS","EMPLOYEE_DID_NOT_TAKE_THE_OFFER","EMPLOYEE_PROVIDED_NO_REASON","OTHER_BUSINESS_REASONS"],"type":"string","example":"EMPLOYEE_IS_MOVING_TO_ANOTHER_COUNTRY","description":"Reason why the contract is being terminated"},"attachments":{"type":"string","format":"binary","example":"@/Users/JohnDoe/Downloads/test.pdf","description":"This field allows for uploading multiple files at once. Attach any document that is important for the request to terminate the contract. Includes common image formats (JPG, JPEG, PNG, HEIC) and PDF documents"},"is_sensitive":{"type":"boolean","example":false,"description":"Defines whether the termination is sensitive. In this case, only the person requesting the termination will be able to view the termination, receive emails or notifications."},"reason_detail":{"type":"string","example":"Employee is moving to another country","maxLength":5000,"description":"Optional field to describe the reason behind the resignation request"},"used_time_off":{"type":"object","properties":{"tracking_type":{"enum":["ON_PLATFORM","OFF_PLATFORM"],"type":"string","example":"ON_PLATFORM","description":"Type of time off tracking - whether it's tracked on Deel platform or off platform"},"off_platform_used_time_off":{"type":"object","example":{"entitlements":[{"used":25,"tracking_period":"2024-01-01","tracking_period_end_date":"2024-12-31"},{"used":30,"tracking_period":"2023-01-01","tracking_period_end_date":"2023-12-31"}],"total_scheduled":5,"entitlement_unit":"CALENDAR_DAY"},"nullable":true,"required":["entitlements","total_scheduled","entitlement_unit"],"properties":{"entitlements":{"type":"array","items":{"type":"object","required":["tracking_period","tracking_period_end_date","used"],"properties":{"used":{"type":"number","format":"float","example":25,"minimum":0,"description":"Amount of time off used in the period"},"tracking_period":{"type":"string","format":"date","example":"2024-01-01","description":"Start date of the tracking period"},"tracking_period_end_date":{"type":"string","format":"date","example":"2024-12-31","description":"End date of the tracking period"}}},"description":"Array of time off entitlements for different tracking periods"},"total_scheduled":{"type":"number","format":"float","example":5,"minimum":0,"description":"Total amount of time off scheduled until the end date"},"entitlement_unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR","WEEK","MONTH","YEAR"],"type":"string","example":"CALENDAR_DAY","description":"Unit of measurement for the time off entitlements"}},"description":"Required when tracking_type is OFF_PLATFORM, null otherwise"}}},"severance_type":{"enum":["DAYS","WEEKS","MONTHS","CASH"],"type":"string","example":"CASH","description":"The type of severance selected by the client. It's an optional field"},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible"},"severance_amount":{"type":"number","format":"float","example":1000,"minimum":0,"description":"The amount of severance needed"},"additional_reason":{"enum":["MOVING_TO_INTERNAL_ENTITY_WITH_DEEL_GLOBAL_PAYROLL","MOVING_TO_INTERNAL_ENTITY_WITH_OTHER_PROVIDER"],"type":"string","example":"MOVING_TO_INTERNAL_ENTITY_WITH_OTHER_PROVIDER","nullable":true,"description":"An additional reason can be provided in case the reason selected is MOVING_EMPLOYEE_TO_INTERNAL_ENTITY"},"termination_notes":{"type":"array","items":{"type":"string","maxLength":5000},"default":[],"example":["What severance pay, if any, am I entitled to receive upon termination of this contract?","How will accrued vacation time, sick leave, or other paid time off be handled upon termination of this contract?"],"description":"Additional notes can be provided regarding the termination for Deel, like questions and doubts"},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again"},"eligible_for_rehire_reason":{"type":"string","example":"The employee is not eligible for rehire because of performance issues","nullable":true,"maxLength":255,"description":"Describe if the option DONT_KNOW was selected on eligible_for_rehire"},"is_employee_staying_with_deel":{"type":"boolean","example":false,"nullable":true,"description":"Defines if employee will keep using Deel as provider"}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/eor/workers/banks-guide/country/{country}/currency/{currency}":{"get":{"path":"/rest/eor/workers/banks-guide/country/{country}/currency/{currency}","tags":["EOR"],"method":"get","summary":"Retrieve bank account guide","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["key","is_required","ui_guide"],"properties":{"key":{"type":"string","example":"countryCode","nullable":false,"description":"The key of the field."},"type":{"type":"string","example":"text","description":"Type of the field"},"ui_guide":{"type":"object","properties":{"label":{"type":"string","example":"Country","description":"Label for this field."},"order":{"type":"integer","example":1,"description":"Order of the field in the form."},"helper_text":{"type":"string","example":"Select your country code.","nullable":true,"description":"Helper text to guide the user."}},"description":"UI guidance information for rendering this field in forms."},"is_required":{"type":"boolean","example":true,"nullable":true,"description":"Whether the field is required or not."},"validations":{"type":"array","items":{"type":"object","properties":{"type":{"enum":["MIN_LENGTH","MAX_LENGTH","REGEX"],"type":"string","example":"MIN_LENGTH","description":"The type of validation rule to apply."},"value":{"oneOf":[{"type":"string","example":"2","description":"Validation value."},{"type":"number","example":2,"description":"Validation value."}],"example":2,"description":"The value to use for the validation rule (e.g., minimum length, regex pattern)."},"error_message":{"type":"string","example":"Value must be at least 2 characters long.","description":"Error message to be displayed if validation fails."}}},"description":"Array of validation rules that apply to this field."},"values_allowed":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","example":"Argentina","description":"The name of the allowed value."},"value":{"type":"string","example":"AR","description":"The value of the allowed value."}}},"description":"Array of allowed values for this field (used for dropdowns, select lists, etc.)."}}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"country","schema":{"type":"string"},"example":"FR","required":true,"description":"Country"},{"in":"path","name":"currency","schema":{"type":"string"},"example":"EUR","required":true,"description":"Currency"}],"description":"Returns the bank account form guide for the specified `country` and `currency` combination, providing the field structure required to add a new bank account for an EOR employee.\n\n **Token scopes**: `worker:read`","operationId":"retrieveBankAccountGuide-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/payouts/employees/methods/{id}":{"delete":{"path":"/rest/payouts/employees/methods/{id}","tags":["Payouts"],"method":"delete","summary":"Delete Bank Details","responses":{"200":{"content":{},"description":"Delete Bank Details"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"method ID"}],"description":"Permanently removes the bank payout method identified by the given method `id`.\n\n **Token scopes**: `worker:read`, `worker:write`","operationId":"deleteBankDetails-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/contracts/{contract_id}/tasks":{"get":{"path":"/rest/contracts/{contract_id}/tasks","tags":["Tasks"],"method":"get","summary":"List of tasks","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","amount","date_submitted","status","description"],"properties":{"id":{"type":"string","nullable":false,"minLength":1,"description":"The unique identifier for the task."},"amount":{"type":"string","nullable":false,"description":"The monetary amount associated with the task."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"The current status of the task."},"attachment":{"type":"object","properties":{"key":{"type":"string","nullable":true,"description":"(Optional) The key for accessing the attachment."},"filename":{"type":"string","nullable":true,"description":"(Optional) The name of the file attached to the task."}}},"description":{"type":"string","nullable":false,"description":"(Required) A brief description of the task."},"date_submitted":{"type":"string","description":"(Required) The date when the task was submitted."}}}}}}}},"description":"Successful operation. A list of tasks associated with the specified contract."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"required":true,"description":"The unique identifier for the Deel contract."}],"description":"Retrieves all tasks associated with a specific contract, including each task's ID, amount, submission date, status, and description.\n\n **Token scopes**: `contracts:read`","operationId":"listOfTasks-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]},"post":{"path":"/rest/contracts/{contract_id}/tasks","tags":["Tasks"],"method":"post","summary":"Create a new task","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The unique identifier for the created task."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing"],"type":"string","example":"pending","nullable":true,"description":"The current status of the task."},"created":{"type":"boolean","description":"Indicates whether the task creation operation was successful."}}}}},"example":{"data":{"id":"00000000-0000-0000-0000-000000000000","status":"pending","created":true}}}},"description":"The task was successfully created."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Invalid 'amount' field. Amount must be a valid number."}}}}},"description":"Bad request. Missing required fields or invalid data format."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized access. Please provide a valid authentication token."}}}}},"description":"Unauthorized. Authentication credentials are missing or invalid."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"An error occurred while creating the task. Please try again later."}}}}},"description":"Internal server error. An unexpected error occurred while processing the request."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"The unique Deel contract ID associated with the task."}],"description":"Creates a new task for the contractor associated with the specified contract. A task can include an amount, description, and submission date.\n\n **Token scopes**: `contracts:write`","operationId":"createANewTask-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["amount","date_submitted","description"],"properties":{"amount":{"type":"string","example":"1500.00","nullable":false,"description":"The amount to be associated with the task, in the appropriate currency."},"description":{"type":"string","example":"Completion of Q1 project tasks","nullable":true,"description":"A description of the task."},"date_submitted":{"oneOf":[{"type":"string","format":"date","nullable":false},{"type":"string","format":"date-time","nullable":false}],"example":"2024-11-01","description":"The date the task was submitted, in ISO 8601 format. Also accepts date-time (YYYY-MM-DDTHH:MM:SSZ)."},"is_auto_approved":{"type":"boolean","example":true,"description":"If true, the task will be automatically approved as part of the request."}}}}},"example":{"data":{"amount":"1500.00","description":"Completion of Q1 project tasks","date_submitted":"2024-11-01"}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/equity-exercises":{"get":{"path":"/rest/equity-exercises","tags":["Equity Tokens"],"method":"get","summary":"List Shareworks equity exercises","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"The unique identifier of the exercise record."},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code for the monetary fields on this record."},"plan_name":{"type":"string","example":"2020 Stock Plan","nullable":true,"description":"Equity plan name, as reported by the ingested file."},"grant_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"Date the grant was issued."},"grant_name":{"type":"string","example":"06/18/2022 - NQSO - $4.7","nullable":true,"description":"Grant name, as reported by the ingested file."},"grant_type":{"type":"string","example":"Options (NQ)","nullable":true,"description":"Grant type (e.g. ISO, NSO, RSU), as reported by the ingested file."},"updated_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was last upserted, for incremental sync."},"exercise_fmv":{"type":"number","example":10000,"nullable":true,"description":"Total fair market value of the exercised shares.","x-sensitive-employment":true},"fmv_per_unit":{"type":"number","example":10,"nullable":true,"description":"Fair market value per unit at exercise.","x-sensitive-employment":true},"exercise_date":{"type":"string","format":"date","example":"2026-08-13","description":"Date the exercise took place."},"exercise_gain":{"type":"number","example":5300,"nullable":true,"description":"Gain realized on exercise (FMV minus cost).","x-sensitive-employment":true},"exercise_price":{"type":"number","example":4.7,"nullable":true,"description":"Strike/exercise price per unit.","x-sensitive-employment":true},"cost_of_options":{"type":"number","example":4700,"nullable":true,"description":"Total cost paid to exercise the options.","x-sensitive-employment":true},"employee_number":{"type":"string","example":"9001","description":"Shareworks employee number, as reported by the ingested file. The intended join key for this record.","x-sensitive-pii":true},"hris_profile_id":{"type":"integer","example":4821,"nullable":true,"description":"Matched HRIS profile id, if employee_number could be resolved to one. Null when unmatched.","x-sensitive-pii":true},"employee_grant_number":{"type":"string","example":"ES-0001","description":"Shareworks grant number for this employee.","x-sensitive-pii":true},"shares_exercised_total":{"type":"number","example":1000,"nullable":true,"description":"Total number of shares exercised.","x-sensitive-employment":true},"shares_exercised_vested":{"type":"number","example":1000,"nullable":true,"description":"Number of vested shares exercised.","x-sensitive-employment":true},"shares_exercised_unvested":{"type":"number","example":0,"nullable":true,"description":"Number of unvested shares exercised.","x-sensitive-employment":true}}},"description":"Page of exercise records. Worker name fields are deliberately not included — employee_number is the intended join key, and first/last name are SENSITIVE PII not needed by downstream consumers of this endpoint."},"has_more":{"type":"boolean","example":false,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"eyJleGVyY2lzZURhdGUiOiIyMDI2LTAxLTE1IiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","nullable":true,"description":"Cursor for the next page. Null when has_more is false."}}}}},"description":"Shareworks equity exercises returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid cursor","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"validation_error","message":"Invalid cursor"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"unauthorized","message":"Unauthorized"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Insufficient permissions to view equity exercises","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"forbidden","message":"Insufficient permissions to view equity exercises"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — caller lacks the equities.view permission, or the caller's organization is not permitted to access this endpoint."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of exercise records to return in this page."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":2048},"example":"eyJleGVyY2lzZURhdGUiOiIyMDI2LTAxLTE1IiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","required":false,"description":"Opaque pagination cursor returned as next_cursor by a previous response. Omit to fetch the first page."},{"in":"query","name":"exercise_date_from","schema":{"type":"string","format":"date"},"example":"2026-01-01","required":false,"description":"Only return exercises with an exercise_date on or after this date (inclusive), in YYYY-MM-DD format."},{"in":"query","name":"exercise_date_to","schema":{"type":"string","format":"date"},"example":"2026-12-31","required":false,"description":"Only return exercises with an exercise_date on or before this date (inclusive), in YYYY-MM-DD format."},{"in":"query","name":"employee_number","schema":{"type":"string","maxLength":64},"example":"9001","required":false,"description":"Only return exercises for this exact Shareworks employee number."}],"description":"Retrieves the equity exercises recorded for an organization, as ingested from Shareworks, in ascending exercise_date order. Use it to report realised option gains into payroll and tax withholding, or to reconcile exercise activity against a cap table. Each record carries the shares exercised, the strike price paid and the fair market value at exercise, so the gain can be recomputed rather than taken on trust. Requires the `equities.view` permission at the organization level.\n\n **Token scopes**: `equities:read`","operationId":"listEquityShareworksExercises-v2026-09-09","security":[{"deelToken":[]},{"oauth2":["equities:read"]}]}},"/contracts/{contract_id}/platform-payment":{"patch":{"path":"/rest/contracts/{contract_id}/platform-payment","tags":["Contracts"],"method":"patch","summary":"Update contract payment type","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"37nex2x","description":"Unique identifier for the contract."},"platform_payment_type":{"enum":["STANDARD","OFF_PLATFORM"],"type":"string","example":"STANDARD","description":"Whether the contract is paid through Deel (`STANDARD`) or outside Deel (`OFF_PLATFORM`)."}},"description":"The updated contract. See `GET /contracts/{contract_id}` for the full response shape."}}}}},"description":"Successful operation. Returns the updated contract."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/platform_payment_type","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"platform_payment_type must be one of STANDARD, OFF_PLATFORM","description":"Human-readable explanation of the error"}}}}}}}},"description":"Bad Request - Validation error or invalid parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"field":{"type":"string","example":"/contract_id","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Not Found","description":"Human-readable explanation of the error"}}}}}}}},"description":"Not found"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Unique identifier of the contract."}],"description":"Sets the payment type for an IC contract. Use `platform_payment_type_application_type` to control when the change takes effect on a signed contract.\n\n **Token scopes**: `contracts:write`","operationId":"updateContractPlatformPaymentType-v2026-06-24","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["platform_payment_type"],"properties":{"platform_payment_type":{"enum":["STANDARD","OFF_PLATFORM"],"type":"string","example":"STANDARD","description":"Whether the contract is paid through Deel (`STANDARD`) or outside Deel (`OFF_PLATFORM`). Applies to IC contracts only."},"platform_payment_type_application_type":{"enum":["IMMEDIATELY","NEXT_PAYMENT_CYCLE"],"type":"string","example":"NEXT_PAYMENT_CYCLE","description":"When to apply the change. Required when changing `platform_payment_type` on a signed contract."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/contracts/{contract_id}/tasks/{task_id}/reviews":{"post":{"path":"/rest/contracts/{contract_id}/tasks/{task_id}/reviews","tags":["Tasks"],"method":"post","summary":"Review a single task","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean","example":true,"description":"Indicating whether the task review was created"}}}}},"example":{"data":{"created":true}}}},"description":"The task review was successfully processed."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Invalid 'status' field. Must be 'approved' or 'declined'."}}}}},"description":"Bad request. Missing required fields or invalid data format."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized access. Please provide a valid authentication token."}}}}},"description":"Unauthorized. Authentication credentials are missing or invalid."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Task with ID '00000000-0000-0000-0000-000000000000' not found."}}}}},"description":"Not found. The specified task or contract was not found."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"An error occurred while reviewing the task. Please try again later."}}}}},"description":"Internal server error. An unexpected error occurred while processing the request."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"The unique Deel contract ID associated with the task."},{"in":"path","name":"task_id","schema":{"type":"string"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"The unique ID of the task to be reviewed."}],"description":"Submits an approval or rejection review for a task associated with a contract. If the review status is declined, an optional reason may be included in the request body.\n\n **Token scopes**: `contracts:write`","operationId":"reviewASingleTask-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["status"],"properties":{"reason":{"type":"string","example":"Incomplete documentation","nullable":true,"description":"Optional reason for declining the task."},"status":{"enum":["approved","declined"],"type":"string","example":"approved","nullable":false,"description":"The review status of the task. Possible values are 'approved' or 'declined'."}}}}},"example":{"data":{"reason":"Incomplete documentation","status":"declined"}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/people":{"get":{"path":"/rest/people","tags":["People"],"method":"get","summary":"List of People","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","description":"Unique identifier for the employee."},"state":{"type":"string","example":"Active","nullable":true,"description":"The state of the employee.","x-sensitive-pii":true},"emails":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"work","nullable":true,"description":"The type of email."},"value":{"type":"string","example":"work.email@example.com","nullable":true,"description":"The email address.","x-sensitive-pii":true}}},"nullable":true,"description":"An array of the employee's email addresses.","x-sensitive-pii":true},"country":{"type":"string","example":"USA","nullable":true,"description":"The country of the employee.","x-sensitive-pii":true},"is_pwac":{"type":"boolean","example":false,"description":"Whether the worker is a Person Without a Contract (PWAC)"},"timezone":{"type":"string","example":"EST","nullable":true,"description":"The timezone of the employee.","x-sensitive-pii":true},"addresses":{"type":"array","items":{"type":"object","properties":{"region":{"type":"string","example":"CO","description":"Region code."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"Country code."},"locality":{"type":"string","example":"Denver","description":"Locality name."},"postalCode":{"type":"string","example":"44000","description":"Postal code."},"streetAddress":{"type":"string","example":"Deel Street 500","description":"Street and number."}}},"nullable":true,"description":"An array of address objects containing the employee's physical addresses.","x-sensitive-pii":true},"full_name":{"type":"string","example":"John Doe","description":"The full name of the employee.","x-sensitive-pii":true},"job_title":{"type":"string","example":"Access Field Technician","nullable":true,"description":"The job title of the employee."},"last_name":{"type":"string","example":"Doe","nullable":true,"description":"The last name of the employee.","x-sensitive-pii":true},"seniority":{"type":"string","example":"Junior (Individual Contributor Level 1)","nullable":true,"description":"The seniority level of the employee."},"worker_id":{"type":"string","example":"123","description":"The worker ID of the employee.","x-sensitive-pii":true},"birth_date":{"type":"string","example":"1990-01-01T00:00:00.000Z","nullable":true,"description":"The birth date of the employee.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-03-21T10:27:25.950Z","description":"The creation timestamp of the employee record."},"department":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"name":{"type":"string","example":"Delivery team","description":"The name of the department."},"parent":{"type":"string","example":"Research and Development","description":"The parent department name."}},"description":"The department of the employee."},"first_name":{"type":"string","example":"John","description":"The first name of the employee.","x-sensitive-pii":true},"start_date":{"type":"string","format":"date","example":"2023-03-20","nullable":true,"description":"The date the employee started working."},"updated_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"},"employments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"mzj524j","description":"Unique identifier for the employment."},"name":{"type":"string","example":"Khizar Naeem","description":"Name of the employee.","x-sensitive-pii":true},"team":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Refers to Groups in the platform. Working groups that reflect the organization's structure."},"name":{"type":"string","example":"Engineering Team","description":"The team name."}},"description":"The team to which the employee belongs."},"email":{"type":"string","example":"some@example.com","description":"The work email of the employee.","x-sensitive-pii":true},"state":{"type":"string","example":"Active","nullable":true,"description":"The state of employment.","x-sensitive-pii":true},"country":{"type":"string","example":"USA","nullable":true,"description":"The country of employment.","x-sensitive-pii":true},"payment":{"type":"object","properties":{"rate":{"type":"number","format":"float","example":100.5,"nullable":true,"description":"The payment rate"},"scale":{"type":"string","example":"hourly","nullable":true,"description":"The payment scale (e.g., hourly, weekly, monthly, etc.)"},"currency":{"type":"string","example":"USD","description":"The currency code (ISO 4217) for the payment"},"contract_name":{"type":"string","example":"Full-time Employment Contract","description":"The name of the contract associated with the payment","x-sensitive-pii":true}},"description":"Payment information for the employment, including rate, scale, currency, and associated contract name.","x-sensitive-employment":true},"is_ended":{"type":"boolean","example":false,"description":"Whether the employment has ended."},"timezone":{"type":"string","example":"EST","nullable":true,"description":"The timezone of the employment.","x-sensitive-pii":true},"job_title":{"type":"string","example":"Access Field Technician","nullable":true,"description":"The job title of the employment."},"seniority":{"type":"string","example":"Junior (Individual Contributor Level 1)","nullable":true,"description":"The seniority level of the employment."},"start_date":{"type":"string","format":"date","example":"2023-03-20","nullable":true,"description":"The start date of the employment."},"work_email":{"type":"string","example":"work.email@example.com","nullable":true,"description":"The work email of the employment.","x-sensitive-pii":true},"hiring_type":{"type":"string","example":"contractor","nullable":true,"description":"The type of hiring of the employment."},"hiring_status":{"type":"string","example":"onboarding","description":"The current hiring status of the employment."},"band_placement":{"enum":["ABOVE","WITHIN","BELOW"],"type":"string","example":"ABOVE","nullable":true,"description":"Where the employee falls in their compensation band"},"completion_date":{"type":"string","example":"2023-06-20T00:00:00.000Z","nullable":true,"description":"The completion date of the employment contract."},"contract_status":{"type":"string","example":"waiting_for_client_sign","description":"The status of the employment contract."},"voluntarily_left":{"type":"boolean","example":true,"nullable":true,"description":"Whether the employee voluntarily left the employment."},"comparative_ratio":{"type":"number","example":1.1,"nullable":true,"description":"Number comparing an employee's compensation to the band midpoint"},"contract_coverage":{"enum":["is_premium","is_shielded","no_coverage",null],"type":"string","example":"is_premium","nullable":true,"description":"The coverage of the employment contract."},"new_hiring_status":{"type":"string","example":"onboarding_overdue","nullable":true,"description":"The new hiring status of the employment."},"client_legal_entity":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Acme Corporation","nullable":true,"description":"The name of the client legal entity."}},"description":"The client legal entity associated with this employment contract."},"has_eor_termination":{"type":"boolean","example":true,"nullable":true,"description":"Whether the employment has an EOR termination."},"compensation_band_id":{"type":"string","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","nullable":true,"description":"The employee's assigned compensation band"},"contract_is_archived":{"type":"boolean","example":false,"description":"Whether the employment contract is archived."},"termination_last_day":{"type":"string","format":"date-time","example":"2023-03-21T10:27:25.950Z","nullable":true,"description":"The last day of work mentioned on the contract termination."},"contract_has_contractor":{"type":"boolean","example":true,"description":"Whether the contract has a contractor."},"is_user_contract_deleted":{"type":"boolean","example":false,"description":"Whether the user contract is deleted."},"hris_direct_employee_invitation":{"type":"object","nullable":true,"properties":{"oid":{"type":"string","example":"rJ7PUDgbp9L6","description":"Unique identifier of this resource."},"status":{"type":"string","example":"DISABLED","nullable":true,"description":"The HRIS direct employee invitation status."},"send_at":{"type":"string","format":"date-time","example":"2023-03-21T10:27:25.950Z","nullable":true,"description":"The HRIS direct employee invitation send date."},"timezone":{"type":"string","example":"EST","nullable":true,"description":"The HRIS direct employee invitation timezone."}},"description":"The HRIS direct employee invitation status."}}},"nullable":true,"description":"An array of employment records associated with the employee, including contract details, team information, payment details, and employment status."},"external_id":{"type":"string","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","nullable":true,"description":"The external ID of the employee."},"hiring_type":{"type":"string","example":"contractor","nullable":true,"description":"The type of hiring of the employee."},"hiring_status":{"type":"string","example":"onboarding","description":"The current hiring status of the employee."},"nationalities":{"type":"array","items":{"type":"string"},"example":["American"],"description":"The nationality of the employee.","x-sensitive-pii":true},"person_status":{"enum":["ACTIVE","OFFBOARDING","NOT_STARTED","INACTIVE"],"type":"string","example":"ACTIVE","nullable":true,"description":"Lifecycle status of the person (worker profile). Omitted or null without people_person_status.view; excluded from the response when using `fields` if not requested."},"work_location":{"type":"string","example":"Remote","nullable":true,"description":"The work location of the employee."},"direct_manager":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"642b0547-9d80-4d35-a085-fd977ef209ef","description":"Unique identifier for the manager.","x-sensitive-pii":true},"last_name":{"type":"string","example":"John","description":"The last name of the manager.","x-sensitive-pii":true},"worker_id":{"type":"number","example":30,"description":"The worker ID of the manager.","x-sensitive-pii":true},"first_name":{"type":"string","example":"Doe","description":"The first name of the manager.","x-sensitive-pii":true},"work_email":{"type":"string","example":"john.doe@example.com","nullable":true,"description":"The work email of the manager.","x-sensitive-pii":true}},"description":"The direct manager of the employee.","x-sensitive-pii":true},"direct_reports":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"642b0547-9d80-4d35-a085-fd977ef209ef","description":"Unique identifier for the direct report.","x-sensitive-pii":true},"last_name":{"type":"string","example":"John","description":"The last name of the direct report.","x-sensitive-pii":true},"first_name":{"type":"string","example":"Doe","description":"The first name of the direct report.","x-sensitive-pii":true},"work_email":{"type":"string","example":"john.doe@example.com","nullable":true,"description":"The work email of the direct report.","x-sensitive-pii":true}}},"nullable":true,"description":"The direct reports to the employee.","x-sensitive-pii":true},"completion_date":{"type":"string","example":"2023-06-20T00:00:00.000Z","nullable":true,"description":"The completion date of the task or project."},"new_hiring_status":{"type":"string","example":"onboarding_overdue","nullable":true,"description":"The new hiring status of the employee."},"additional_details":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"socialSecurity","description":"Field name (the JSONB key from hris_employment_eligibility.eligibility_data, e.g. socialSecurity, idNumber, taxIdentificationNumber).","x-sensitive-pii":true},"value":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"object"}],"example":"123-12-1234","description":"Raw value associated with the field. May be a string, number, boolean, or null."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"ISO-2 country code that scopes this entry.","x-sensitive-pii":true}}},"nullable":true,"description":"Country-scoped additional employment data points (national IDs, tax IDs, etc.) sourced from hris_employment_eligibility.eligibility_data. Returned only when the caller's organization has the feature flag enable and the request is not redacting PII.","x-sensitive-pii":true},"client_legal_entity":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Unique identifier of this resource."},"name":{"type":"string","example":"Acme Corporation","nullable":true,"description":"The name of the client legal entity."}},"description":"The primary client legal entity associated with the employee."},"preferred_last_name":{"type":"string","example":"Doe","nullable":true,"description":"The preferred last name of the employee.","x-sensitive-pii":true},"direct_reports_count":{"type":"integer","example":0,"description":"The count of direct reports to the employee."},"preferred_first_name":{"type":"string","example":"John","nullable":true,"description":"The preferred first name of the employee.","x-sensitive-pii":true},"hris_organization_user_id":{"type":"string","format":"uuid","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","nullable":true,"description":"HRIS Organization User ID of the employee. Used in products like Deel Engage."},"active_worker_termination_status":{"enum":["PENDING","CONTRACT_TERMINATION_DATA_COLLECTED","IN_PROGRESS","COMPLETED","FAILED","CANCELED",null],"type":"string","example":"IN_PROGRESS","nullable":true,"description":"The status of the active worker termination."},"direct_employee_termination_last_day":{"type":"string","format":"date-time","example":"2023-03-21T10:27:25.950Z","description":"The last day of work mentioned on the primary contract termination."}}}},"page":{"type":"object","required":["total_rows","items_per_page","offset"],"properties":{"offset":{"type":"integer","format":"int32","maximum":999999999,"minimum":0,"nullable":false},"total_rows":{"type":"number","nullable":false},"items_per_page":{"type":"number","maximum":200,"minimum":1,"nullable":false}}}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","code"],"properties":{"code":{"type":"string","example":"INTERNAL_SERVER_ERROR","description":"Error code identifying the type of error."},"details":{"type":"string","example":"An unexpected error occurred while processing the request.","nullable":true,"description":"Additional details about the error."},"message":{"type":"string","example":"Internal server error","description":"Error message describing what went wrong."}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"query","name":"offset","schema":{"type":"integer","format":"int32","default":0,"maximum":999999999,"minimum":0},"example":150,"description":"Return a page of results with given number of records."},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","maximum":200,"minimum":1},"example":50,"description":"Return a page of results with given number of records."},{"in":"query","name":"search","schema":{"type":"string"},"example":"John Doe","description":"Include a contract if by name or contractor name contains given search term."},{"in":"query","name":"teams","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["00000000-0000-0000-0000-000000000000","642b0547-9d80-4d35-a085-fd977ef209ef"],"description":"Filter the results based on the team(group) the users contract is associated with"},{"in":"query","name":"fields","schema":{"type":"array","items":{"enum":["id","first_name","last_name","full_name","display_name","preferred_name","preferred_first_name","preferred_last_name","personal_id","country","country_name","state","email","personal_email","work_email","phoneNumbers","nationalities","personal_address","addresses","pic_url","birth_date","nestedCustomFields","start_date","hris_original_start_date","worker_id","external_id","direct_reports","direct_reports_count","direct_manager","work_location","custom_fields","new_hiring_status","hiring_status","job_title","seniority","custom_field_values","worker_relations","timezone","employments","employments[0].id","employments[0].name","employments[0].start_date","employments[0].job_title","employments[0].hiring_status","employments[0].new_hiring_status","employments[0].seniority","employments[0].email","employments[0].work_email","employments[0].employee_number","employments[0].hiring_type","employments[0].team","employments[0].timezone","employments[0].client_legal_entity","employments[0].payment","employments[0].country","employments[0].state","employments[0].contract_status","employments[0].contract_type","employments[0].hris_service_provider","employments[0].hris_direct_employee_invitation","employments[0].voluntarily_left","employments[0].has_eor_termination","employments[0].contract_is_archived","employments[0].completion_date","employments[0].contract_has_contractor","employments[0].is_ended","employments[0].is_user_contract_deleted","employments[0].contract_coverage","employments[0].currency","employments[0].is_amending","employments[0].client_legal_entity_id","employments[0].is_eor_consultant_contract","employments[0].is_interview_process_required","employments[0].contract_timezone","employments[0].amendment_status","employments[0].pay_date","employments[0].termination_last_day","employments[0].custom_field_values","employments[0].hris_is_active","employments[0].isPrimary","employments[0].compensation_band_id","employments[0].band_placement","employments[0].comparative_ratio","direct_employee_termination_state","is_user_contract_deleted","orgStructures","ooo","is_ended","hris_service_provider","contract_types","contract_coverage","payments","pay_date","nextPayment","lastPayment","hourly_report_total","monthly_payment","hris_is_active","department","currency","contract_is_archived","termination_last_day","completion_date","hiring_type","worker_entity_name","client_legal_entity","parent_relations","child_relations","worker_termination_last_date_of_work","active_worker_termination_status","org_structures"],"type":"string"}},"example":["first_name","last_name","email"],"description":"Pick the fields you want to see in the response in order to avoid a bloated people list output. Supports dot notation (e.g., 'employments[0].contract_status') to access nested fields."},{"in":"query","name":"sort_by","schema":{"enum":["id","first_name","last_name","full_name","email","country","birth_date","hiring_type","start_date","team","job_title","hiring_status","completion_date","direct_manager","direct_reports_count","band_placement","comparative_ratio"],"type":"string"},"example":"hiring_status","description":"Sort people by given field name."},{"in":"query","name":"sort_order","schema":{"enum":["asc","desc"],"type":"string"},"example":"asc","description":"Order direction of results; ascending or descending."},{"in":"query","name":"hiring_statuses","schema":{"type":"array","items":{"enum":["pending_invite","draft","invited","onboarding","onboarding_at_risk","onboarding_overdue","onboarded","offboarding","active","inactive","in_review","quote_requires_changes"],"type":"string"}},"example":["active","onboarded"],"description":"Employee's current hiring status."},{"in":"query","name":"band_placements","schema":{"type":"array","items":{"enum":["ABOVE","WITHIN","BELOW"],"type":"string"}},"example":["ABOVE","WITHIN"],"description":"Employee's current band placement."},{"in":"query","name":"comparative_ratios_from","schema":{"type":"number","format":"float"},"example":1.1,"description":"Employee's minimum band placement"},{"in":"query","name":"comparative_ratios_to","schema":{"type":"number","format":"float"},"example":1.1,"description":"Employee's maximum band placement"},{"in":"query","name":"hiring_types","schema":{"type":"array","items":{"enum":["contractor","eor","peo","hris_direct_employee","hris_direct_contractor","direct_employee","contractor_outside_deel","person_without_contract"],"type":"string"}},"example":["eor","contractor"],"required":false,"description":"Filter people by hiring types"},{"in":"query","name":"person_statuses","schema":{"type":"array","items":{"enum":["ACTIVE","OFFBOARDING","NOT_STARTED","INACTIVE"],"type":"string"}},"example":["ACTIVE","INACTIVE"],"description":"Filter people by person (worker profile) lifecycle status."}],"description":"Returns a paginated list of people records in the organization. Supports filtering by search term, teams, custom fields, and other query parameters. Build people directories, sync HR data, or power search interfaces across your workforce records.\n\n **Token scopes**: `people:read`","operationId":"listOfPeople-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:read"]}]},"post":{"path":"/rest/people","tags":["People"],"method":"post","summary":"Create a direct employee","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","employee","employment","compensation_details"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"The unique identifier of the created employee record"},"employee":{"type":"object","required":["first_name","last_name","email","nationality"],"properties":{"email":{"type":"string","format":"email","example":"email@email.com","maxLength":255,"minLength":3,"description":"The personal email of the person being hired"},"last_name":{"type":"string","example":"Doe","maxLength":100,"minLength":3,"description":"The last name of the person being hired"},"first_name":{"type":"string","example":"John","maxLength":100,"minLength":3,"description":"The first name of the person being hired"},"work_email":{"type":"string","format":"email","example":"work@email.com","maxLength":255,"minLength":3,"description":"The work email of the person being hired"},"external_id":{"type":"string","example":"1234","description":"An external identifier for the person being hired"},"nationality":{"type":"string","example":"BR","maxLength":2,"minLength":2,"description":"The nationality of the person being hired"}},"description":"The person that is being hired"},"employment":{"type":"object","required":["start_date","type","country","end_date","job_title","seniority","contract_id"],"properties":{"type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"The type of employment"},"country":{"type":"string","example":"US","maxLength":2,"minLength":2,"description":"The country of the employment"},"end_date":{"type":"string","format":"date","example":"2029-01-01","description":"The end date of the employment"},"job_title":{"type":"string","example":"Software Engineer","description":"The job title of the employment"},"seniority":{"type":"string","example":"Senior","description":"The seniority of the employment"},"start_date":{"type":"string","format":"date","example":"2020-01-01","description":"The start date of the employment"},"contract_id":{"type":"string","example":"3w6pd6r","description":"The unique identifier of the worker contract"},"part_time_percentage":{"type":"number","example":23,"maximum":99,"minimum":1,"description":"The percentage of PART_TIME employment"}},"description":"The employment details of the employee"},"compensation_details":{"type":"object","required":["currency","salary"],"properties":{"scale":{"enum":["ANNUAL","MONTHLY","SEMIMONTHLY","BIWEEKLY","WEEKLY","DAILY","HOURLY"],"type":"string","default":"ANNUAL","example":"ANNUAL","description":"The scale at which the salary is paid"},"salary":{"type":"number","format":"float","example":10000,"minimum":0,"description":"The salary of the employee"},"currency":{"type":"string","example":"USD","maxLength":3,"minLength":3,"description":"The currency of the salary"}},"description":"The compensation details of the employee"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Error code identifying the type of error"},"details":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","example":"employee.email","description":"The field that caused the error"},"message":{"type":"string","example":"Invalid email format","description":"Description of the validation error"}}},"description":"List of validation errors"},"message":{"type":"string","example":"Invalid request body","description":"Human readable error message"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"INTERNAL_ERROR","description":"Error code identifying the type of error"},"message":{"type":"string","example":"An unexpected error occurred","description":"Human readable error message"}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Creates a direct employee record in Deel's HRIS, hired under the organization's own legal entity. Provisions both a person and an associated employment contract. Applicable when onboarding employees managed through your own payroll providers. It can support downstream integrations, such as IT equipment orders.\n\n **Token scopes**: `people:write`","operationId":"createADirectEmployee-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["employee","client","employment","compensation_details"],"properties":{"client":{"type":"object","required":["legal_entity","team"],"properties":{"team":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"cbb25647-31e0-485d-9d5f-bdd48296aa1e","description":"The team that the employee is part of"},"direct_manager_id":{"type":"string","format":"uuid","example":"0d60f277-f66f-4fca-a5c8-c5c642924505","description":"The direct manager of the employee"}},"description":"The team information for the employee"},"department":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"518c6bee-d798-4785-930f-535f09f3453d","description":"The department that the employee is part of"}},"description":"The department information for the employee"},"legal_entity":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"cfebc769-abe9-4646-83b9-28cf79f23a0d","description":"The legal entity that the employee is part of"}},"description":"The legal entity information for the employee"}},"description":"The entity that is hiring the employee"},"employee":{"type":"object","required":["first_name","last_name","email","nationality","country"],"properties":{"email":{"type":"string","format":"email","example":"email@email.com","maxLength":255,"minLength":3,"description":"The personal email of the person being hired"},"state":{"type":"string","example":"CA","maxLength":50,"minLength":1,"description":"The state of the person being hired"},"country":{"type":"string","example":"US","maxLength":2,"minLength":2,"description":"The country of the person being hired"},"last_name":{"type":"string","example":"Doe","maxLength":100,"minLength":3,"description":"The last name of the person being hired"},"first_name":{"type":"string","example":"John","maxLength":100,"minLength":3,"description":"The first name of the person being hired"},"work_email":{"type":"string","format":"email","example":"work@email.com","maxLength":255,"minLength":3,"description":"The work email of the person being hired"},"external_id":{"type":"string","example":"1234","description":"An external identifier for the person being hired"},"nationality":{"type":"string","example":"BR","maxLength":2,"minLength":2,"description":"The nationality of the person being hired"}},"description":"The person that is being hired"},"employment":{"oneOf":[{"type":"object","required":["start_date","type","part_time_percentage","job_title","seniority"],"properties":{"type":{"enum":["PART_TIME"],"type":"string","example":"PART_TIME","description":"The type of employment"},"end_date":{"type":"string","format":"date","example":"2029-01-01","description":"The end date of the employment"},"job_title":{"type":"string","example":"Software Engineer","description":"The job title of the employment"},"seniority":{"type":"string","example":"Senior","description":"The seniority of the employment"},"start_date":{"type":"string","format":"date","example":"2020-01-01","description":"The start date of the employment"},"document_template_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"The document template ID for the employment contract"},"part_time_percentage":{"type":"number","example":23,"maximum":99,"minimum":1,"description":"The percentage of PART_TIME employment"}}},{"type":"object","required":["start_date","type","job_title","seniority"],"properties":{"type":{"enum":["FULL_TIME"],"type":"string","example":"FULL_TIME","description":"The type of employment"},"end_date":{"type":"string","format":"date","example":"2029-01-01","description":"The end date of the employment"},"job_title":{"type":"string","example":"Software Engineer","description":"The job title of the employment"},"seniority":{"type":"string","example":"Senior","description":"The seniority of the employment"},"start_date":{"type":"string","format":"date","example":"2020-01-01","description":"The start date of the employment"},"document_template_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"The document template ID for the employment contract"}}}],"example":{"type":"FULL_TIME","job_title":"Software Engineer","seniority":"Senior","start_date":"2020-01-01"},"description":"The employment details of the employee"},"compensation_details":{"type":"object","required":["currency","salary"],"properties":{"scale":{"enum":["ANNUAL","MONTHLY","SEMIMONTHLY","BIWEEKLY","WEEKLY","DAILY","HOURLY"],"type":"string","default":"ANNUAL","example":"ANNUAL","description":"The scale at which the salary is paid"},"salary":{"type":"number","format":"float","example":10000,"minimum":0,"description":"The salary of the employee"},"currency":{"type":"string","example":"USD","maxLength":3,"minLength":3,"description":"The currency of the salary"}},"description":"The compensation details of the employee"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/contracts/{contract_id}/invoice-adjustments":{"get":{"path":"/rest/contracts/{contract_id}/invoice-adjustments","tags":["Invoices"],"method":"get","summary":"Invoice line items by contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","status","description","date_submitted","created_at","currency_code","quantity","total_amount","contract","worksheet","reported_by","reviewed_by","payment_cycle","attachment"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true,"description":"Unique identifier of this invoice adjustment."},"type":{"enum":["accrued_holiday","additional_fee","allowance","bonus","commission","deduction","deposit","deposit_refund","employer_cost","expense","health_allowance","health_benefit","health_insurance_fee","legal_fee","management_fee","milestone","offcycle","other","overtime","pension","pro_rata","setup_fee","severance","shield_service","signing_bonus","signing_bonus_employer_cost","refund","task","time_off","vat","withholding_tax","work"],"type":"string","example":"bonus","description":"Type of invoice adjustment."},"scale":{"type":"string","example":"hourly","nullable":true,"description":"Predefined scale used to calculate the adjustment amount."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","example":"approved","nullable":true,"description":"Current processing status of the invoice adjustment."},"contract":{"type":"object","required":["id","title","type"],"properties":{"id":{"type":"string","example":"contract_abc123","nullable":false,"description":"Unique identifier of the contract."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"ongoing_time_based","description":"Type of a contract"},"title":{"type":"string","example":"Senior Backend Engineer","nullable":false,"description":"Human-readable title of the contract."}},"description":"Contract associated with this invoice adjustment."},"quantity":{"type":"number","example":8,"nullable":true,"description":"Quantity used to calculate the total amount."},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","example":5,"minimum":0,"description":"Number of days reported."},"hours":{"type":"number","example":40,"minimum":0,"description":"Number of hours reported."},"weeks":{"type":"number","example":1,"minimum":0,"description":"Number of weeks reported."},"minutes":{"type":"number","example":0,"minimum":0,"description":"Number of minutes reported."}},"description":"Breakdown of time worked across different units."},"attachment":{"type":"object","nullable":true,"required":["filename","key"],"properties":{"key":{"type":"string","example":"attachments/receipt_123.pdf","nullable":false,"description":"You can call attachments end-point, get key and URL to upload your file."},"filename":{"type":"string","example":"receipt.pdf","nullable":false,"description":"Original filename you used to upload using attachments end-point."}},"description":"This object is used for linking file attachments to your records."},"created_at":{"type":"string","format":"date-time","example":"2025-12-19T10:30:00Z","nullable":false,"description":"Timestamp when the adjustment was created (ISO-8601)."},"invoice_id":{"type":"number","example":102938,"nullable":true,"description":"Identifier of the generated invoice this adjustment belongs to."},"description":{"type":"string","example":"Performance bonus for September","nullable":false,"description":"Human-readable explanation of the invoice adjustment."},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique string identifier of the reporting user."},{"type":"integer","format":"int64","description":"Unique integer identifier of the reporting user."}],"example":"user_456","description":"Unique identifier of the reporting user (string or integer)."},"full_name":{"type":"string","example":"John Doe","nullable":false,"description":"Full name of the user who reported the adjustment.","x-sensitive-pii":true}},"description":"User who reported the invoice adjustment."},"reviewed_by":{"type":"object","nullable":true,"required":["id","reviewed_at","remarks"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique string identifier of the reviewer."},{"type":"integer","format":"int64","description":"Unique integer identifier of the reviewer."}],"example":"admin_789","description":"Unique identifier of the reviewer (string or integer)."},"remarks":{"type":"string","example":"Approved after verification","nullable":false,"description":"Reviewer remarks or decision notes."},"full_name":{"type":"string","example":"Jane Smith","description":"Full name of the reviewer.","x-sensitive-pii":true},"reviewed_at":{"type":"string","example":"2025-12-19T11:00:00Z","description":"Timestamp when the review occurred (ISO-8601)."}},"description":"Reviewer information if the adjustment has been reviewed."},"custom_scale":{"type":"string","example":"night_shift","nullable":true,"description":"Custom scale label defined by the client."},"total_amount":{"type":"string","example":"200.00","nullable":false,"description":"Total monetary value of the invoice adjustment."},"currency_code":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"ISO 4217 currency code used for the amount."},"payment_cycle":{"type":"object","nullable":false,"required":["start_date","end_date"],"properties":{"end_date":{"type":"string","format":"date-time","example":"2025-12-31T23:59:59Z","nullable":true,"description":"End date of the payment cycle (ISO-8601)."},"start_date":{"type":"string","format":"date-time","example":"2025-12-01T00:00:00Z","nullable":true,"description":"Start date of the payment cycle (ISO-8601)."}},"description":"Payment cycle associated with this adjustment."},"date_submitted":{"type":"string","format":"date-time","example":"2025-12-18T09:15:00Z","nullable":false,"description":"Timestamp when the adjustment was submitted for review (ISO-8601)."}}}},"page":{"type":"object","required":["total_rows","items_per_page","offset"],"properties":{"offset":{"type":"number","example":0,"maximum":999999999,"minimum":0,"nullable":false,"description":"Index of the first row in this page"},"total_rows":{"type":"number","example":10,"nullable":false,"description":"Total number of rows in the result set"},"items_per_page":{"type":"number","example":10,"maximum":100,"minimum":1,"nullable":false,"description":"Number of items per page"}},"description":"Pagination metadata for the response."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Invalid query parameters","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"GET","description":"Method of the API"},"status":{"type":"number","example":400,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Bad Request - Validation error or invalid parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"contract_types","schema":{"type":"array","items":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","description":"Type of a contract"},"description":"List of contract types"},"example":"ongoing_time_based","description":"types of contracts to filter"},{"in":"query","name":"types","schema":{"type":"array","items":{"enum":["accrued_holiday","additional_fee","allowance","bonus","commission","deduction","deposit","deposit_refund","employer_cost","expense","health_allowance","health_benefit","health_insurance_fee","legal_fee","management_fee","milestone","offcycle","other","overtime","pension","pro_rata","setup_fee","severance","shield_service","signing_bonus","signing_bonus_employer_cost","refund","task","time_off","vat","withholding_tax","work"],"type":"string","description":"Type of invoice adjustment."}},"example":"bonus","description":"types of invoice adjustments to filter"},{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"status of invoice adjustment"}},"example":"approved","description":"statuses of invoice adjustment to filter"},{"in":"query","name":"invoice_id","schema":{"type":"string"},"example":"string","description":"ID of an existing invoice"},{"in":"query","name":"reporter_id","schema":{"type":"string","format":"uuid"},"example":"string","description":"ID of an existing profile"},{"in":"query","name":"date_from","schema":{"type":"string","format":"date","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example 2022-12-31."},"example":"2022-12-31","description":"To get invoice adjustments submitted on or after given start date (inclusive).    Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},{"in":"query","name":"date_to","schema":{"type":"string","format":"date","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example 2022-12-31."},"example":"2022-12-31","description":"To get invoice adjustments submitted before given end date (excludes records submitted on this date).    Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},{"in":"query","name":"limit","schema":{"type":"string","pattern":"^[1-9][0-9]?$|^100$"},"example":"10","description":"Return a page of results with given number of records; NOTE: technically ALL query parameters are strings or array of strings"},{"in":"query","name":"offset","schema":{"type":"string"},"example":"10","description":"Return a page of results after given index of row; NOTE: technically ALL query parameters are strings or array of strings"},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Retrieves invoice line items (adjustments) associated with a given contract_id, with support for filtering by contract type, adjustment type, status, invoice, reporter, and submission date range.\n\n **Token scopes**: `invoice-adjustments:read`","operationId":"invoiceLineItemsByContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:read"]}]}},"/eor/contracts/{contract_id}/reject":{"patch":{"path":"/rest/eor/contracts/{contract_id}/reject","tags":["EOR"],"method":"patch","summary":"Reject an EOR quote","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"38j84xg","nullable":true,"description":"The unique identifier of the EOR contract whose quote was rejected."},"status":{"type":"string","example":"rejected","nullable":true,"description":"The status of the contract after the rejection."},"rejection_reason":{"type":"string","example":"TOO_EXPENSIVE","nullable":true,"description":"The reason recorded for the latest quote rejection."}}}}}}},"description":"The quote was rejected successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/reason","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Contract status does not allow quote rejection","description":"Human-readable explanation of the error"}}}}}}}},"description":"The payload is invalid or the contract is not in a status that allows quote rejection."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permissions","description":"Machine-readable error code"},"message":{"type":"string","example":"You do not have permission to access this resource.","description":"Human-readable explanation of the error"}}}}}}}},"description":"The token does not have access to this contract, or the token is not a client token."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"resource_not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"EOR contract not found","description":"Human-readable explanation of the error"}}}}}}}},"description":"No EOR contract matches the provided identifier."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"internal_server_error","description":"Machine-readable error code"},"message":{"type":"string","example":"An unexpected error occurred while processing your request. Please try again later.","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"38j84xg","required":true,"description":"The unique identifier of the EOR contract."}],"description":"Rejects the quote of an EOR contract. Rejection is only accepted while the contract is in one of `new`, `under_review`, `waiting_for_client_sign`, `waiting_for_eor_sign`, `waiting_for_employee_contract`, `waiting_for_employee_sign` or `awaiting_deposit_payment`. Rejection is terminal — there is no public endpoint to un-reject a contract, and a contract already in `rejected` cannot be rejected again. The token must hold the `contracts.edit` permission on the contract.\n\n **Token scopes**: `contracts:write`","operationId":"rejectEorQuote-v2026-09-10","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["reason"],"properties":{"reason":{"enum":["TOO_EXPENSIVE","DECIDED_AGAINST_EMPLOYING_EOR","TEST_QUOTE","NOT_SATISFIED_WITH_DEEL","INACCURATE_INFO_JOB_TITLE","INACCURATE_INFO_JOB_DESCRIPTION","INACCURATE_INFO_JOB_DUTIES_SCOPE_OF_WORK","OTHER"],"type":"string","example":"TOO_EXPENSIVE","description":"The reason for rejecting the quote."},"message":{"type":"string","example":"The management fee is above our budget for this role.","maxLength":2000,"description":"Optional free-text explanation accompanying the rejection."}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/on-demand-payroll/contract/{contract_id}":{"post":{"path":"/rest/on-demand-payroll/contract/{contract_id}","tags":["On-Demand Payroll"],"method":"post","summary":"Create On-Demand Payroll","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","sla","entries"],"properties":{"id":{"type":"string","example":"odp_abc123","description":"Public ID of the On-Demand Payroll."},"sla":{"type":"object","properties":{"payment_buffer":{"type":"integer","example":1,"nullable":true,"description":"Payment buffer in days."},"payment_processing":{"type":"integer","example":2,"nullable":true,"description":"Payment processing SLA in days."},"payment_settlement":{"type":"integer","example":3,"nullable":true,"description":"Payment settlement SLA in days."},"payroll_processing":{"type":"integer","example":1,"nullable":true,"description":"Payroll processing SLA in days."},"post_termination_buffer":{"type":"integer","example":30,"nullable":true,"description":"Post-termination buffer in days during which an ODP is still allowed."}},"description":"Processing SLAs (in days) configured for the contract EOR entity."},"status":{"enum":["AWAITING_CLIENT_APPROVAL","AWAITING_CLIENT_SUBMISSION","AWAITING_ADJUSTMENTS_TO_BE_READY","AWAITING_DEEL_PROCESSING","DEEL_PROCESSING","REJECTED","CANCELLED","PARTIALLY_APPROVED","APPROVED"],"type":"string","example":"AWAITING_CLIENT_APPROVAL","description":"Lifecycle status of the ODP."},"entries":{"type":"array","items":{"type":"object","required":["amount","currency","title","type","uom","metadata"],"properties":{"uom":{"enum":["CURRENCY"],"type":"string","example":"CURRENCY","description":"Unit of measure of the entry amount. Always CURRENCY."},"type":{"type":"string","example":"BONUS","description":"The adjustment type of the entry."},"title":{"type":"string","example":"Q1 performance bonus","description":"Short human-readable title of the entry."},"amount":{"type":"number","example":150.5,"description":"The entry amount in the contract currency.","x-sensitive-employment":true},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the entry amount."},"metadata":{"type":"object","properties":{"type":{"type":"string","example":"BONUS","description":"The adjustment type of the entry."},"public_id":{"type":"string","example":"adj_abc123","description":"Public ID of the underlying adjustment."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-01-06T10:00:00Z","nullable":true,"description":"Timestamp of the last review of the entry."},"vendor_name":{"type":"string","example":"Acme Inc.","nullable":true,"description":"Vendor associated with the entry, when applicable.","x-sensitive-pii":true},"category_label":{"type":"string","example":"Bonus","nullable":true,"description":"Label of the adjustment category."},"submission_date":{"type":"string","format":"date-time","example":"2026-01-04T09:00:00Z","nullable":true,"description":"Timestamp when the entry was submitted."},"category_group_label":{"type":"string","example":"Compensation","nullable":true,"description":"Label of the adjustment category group."}},"description":"Additional, non-contractual metadata about the entry."},"submitter":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"p_abc123","nullable":true,"description":"Public ID of the submitter, when available."},"name":{"type":"string","example":"John Doe","description":"Full name of the submitter.","x-sensitive-pii":true}},"description":"The person who submitted the entry."},"description":{"type":"string","example":"Bonus awarded for Q1 results","nullable":true,"description":"Free-text description of the entry."},"date_of_entry":{"type":"string","format":"date","example":"2026-01-05","nullable":true,"description":"Date the entry applies to (YYYY-MM-DD). Null when not available for the entry."}},"description":"An On-Demand Payroll entry (an adjustment attached to the ODP)."},"description":"Entries currently attached to the ODP."},"invoice_id":{"type":"string","example":"inv_abc123","nullable":true,"description":"Public ID of the invoice associated with the ODP, when one has been generated. Use the Invoices API to fetch its details."},"submitted_at":{"type":"string","format":"date-time","example":"2026-01-01T00:00:00Z","nullable":true,"description":"Timestamp when the ODP was submitted, when submitted."},"submitted_by":{"type":"string","example":"Jane Doe","nullable":true,"description":"Name of the person who submitted the ODP, when submitted.","x-sensitive-pii":true},"deel_reviewed_at":{"type":"string","format":"date-time","example":"2026-01-08T12:00:00Z","nullable":true,"description":"Timestamp when Deel reviewed the ODP, when reviewed."},"estimated_payday":{"type":"string","format":"date","example":"2026-01-10","nullable":true,"description":"Estimated payday for the ODP (YYYY-MM-DD)."},"next_available_payment_date":{"type":"string","format":"date","example":"2026-01-12","nullable":true,"description":"Next available payment date for the EOR contract (YYYY-MM-DD), when applicable."}},"description":"An On-Demand Payroll for a contract."}}}}},"description":"The created On-Demand Payroll."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Authentication is required or has failed."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"The caller is not allowed to perform this action."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"con_abc123","required":true,"description":"Public ID (oid) of the contract."}],"description":"Creates an On-Demand Payroll for the given contract from existing eligible entries and/or a salary advance amount.\n\n **Token scopes**: `on-demand-payroll:write`","operationId":"createOnDemandPayroll-v2026-07-28","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"salary_advance":{"type":"number","example":1000,"description":"Salary advance amount to include in the ODP, in the contract currency.","x-sensitive-employment":true},"existing_entry_ids":{"type":"array","items":{"type":"string","example":"adj_abc123","description":"Public ID of an existing adjustment (entry)."},"example":["adj_abc123","adj_def456"],"description":"Public IDs of existing entries (adjustments) to attach to the ODP."}}}}}}},"required":true,"description":"Entries and/or salary advance to include in the new On-Demand Payroll."},"security":[{"deelToken":[]},{"oauth2":["on-demand-payroll:write"]}]}},"/equity/exercise":{"post":{"path":"/rest/equity/exercise","tags":["Contracts"],"method":"post","summary":"Create a request to exercise equity.","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Unique identifier of the equity exercise request."},"status":{"type":"string","example":"WTH_TAX_CALCULATION_REQUESTED","description":"The initial status of the newly created equity exercise request."},"created_at":{"type":"string","format":"date-time","example":"2023-05-01T12:00:00.000Z","description":"ISO 8601 timestamp when the equity exercise request was created."},"updated_at":{"type":"string","format":"date-time","example":"2023-05-01T12:00:00.000Z","description":"ISO 8601 timestamp when the equity exercise request was last updated."}}}}},"example":{"data":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","status":"WTH_TAX_CALCULATION_REQUESTED","created_at":"2023-05-01T12:00:00.000Z","updated_at":"2023-05-01T12:00:00.000Z"}}}},"description":"Equity exercise request created successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"\"option_grant_id\" with value \"abc\" fails to match the required pattern: /^[0-9]+$/","description":"Describes the validation failure."}}},"minItems":1}}},"example":{"errors":[{"message":"\"option_grant_id\" with value \"abc\" fails to match the required pattern: /^[0-9]+$/"}]}}},"description":"Request validation failed. A required field is missing, has an invalid format, or the worker is not eligible for equity exercise."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Authentication required. Please provide a valid access token.","description":"Describes the authentication failure reason."}}},"minItems":1}}},"example":{"errors":[{"message":"Authentication required. Please provide a valid access token."}]}}},"description":"Authentication failed. The access token is missing, expired, or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"You do not have permission to access this resource.","description":"Describes the authorization failure reason."}}},"minItems":1}}},"example":{"errors":[{"message":"You do not have permission to access this resource."}]}}},"description":"Access denied. The authenticated user does not have the required contracts:write scope."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"HrisProfile not found","description":"Describes why the resource was not found."}}},"minItems":1}}},"example":{"errors":[{"message":"Profile not found"}]}}},"description":"The worker profile associated with the given worker_id was not found."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"The equity exercise request is already in process","description":"Describes the conflict that prevented processing."}}},"minItems":1}}},"example":{"errors":[{"message":"The equity exercise request is already in process"}]}}},"description":"A request with the same exercise_id already exists. Each exercise_id can only be used once."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Too many requests. Please retry after some time.","description":"Indicates rate limiting. Implement exponential backoff before retrying."}}},"minItems":1}}},"example":{"errors":[{"message":"Too many requests. Please retry after some time."}]}}},"description":"Rate limit exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"An unexpected error occurred while processing your request. Please try again later.","description":"General error description for logging and debugging."}}},"minItems":1}}},"example":{"errors":[{"message":"An unexpected error occurred while processing your request. Please try again later."}]}}},"description":"Internal server error. Possible causes include missing EOR contract for the worker, FX rate service failure, or database errors."}},"parameters":[],"description":"Submits a new equity exercise request, associating the specified option grant and stakeholder details with a worker. The request is created in a pending state; employer approval is handled as a separate operation.\n\n **Token scopes**: `contracts:write`","operationId":"createARequestToExerciseEquity-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["fmv","fmv_currency_code","exercise_id","worker_id","issuer_id","option_grant_id","option_grant_label","option_grant_issue","option_grant_issue_date","option_grant_expiry_date","option_grant_strike_price","option_grant_currency","quantity","stakeholder_id","stakeholder_email","stakeholder_relationship","address_country","address_state","address_city","address_street","address_zip"],"properties":{"fmv":{"type":"string","example":"100.00","description":"The fair market value of the equity."},"quantity":{"type":"number","example":100,"description":"The quantity of equity to exercise. Must be a positive number."},"issuer_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The unique identifier of the issuer."},"worker_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The public UUID of the worker. Must correspond to an existing worker in the system."},"address_zip":{"type":"string","example":"94107","description":"The zip code of the address."},"exercise_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The unique identifier of the exercise."},"address_city":{"type":"string","example":"San Francisco","description":"The city of the address."},"address_state":{"type":"string","example":"CA","description":"The state of the address."},"address_street":{"type":"string","example":"123 Main St","description":"The street of the address."},"stakeholder_id":{"type":"string","example":"SH-001234","description":"The unique identifier of the stakeholder."},"address_country":{"type":"string","example":"US","description":"The country of the address."},"option_grant_id":{"type":"string","example":"12345","description":"The numeric identifier of the option grant. Must contain only digits."},"fmv_currency_code":{"type":"string","example":"USD","description":"The currency code of the fair market value (ISO 4217)."},"stakeholder_email":{"type":"string","format":"email","example":"stakeholder@example.com","description":"The email address of the stakeholder."},"option_grant_issue":{"type":"string","example":"Series A","description":"The issue of the option grant."},"option_grant_label":{"type":"string","example":"Stock Option Grant #1","description":"The label of the option grant."},"option_grant_currency":{"type":"string","example":"USD","description":"The currency of the option grant (ISO 4217)."},"option_grant_issue_date":{"type":"string","format":"date","example":"2022-01-01","description":"The issue date of the option grant (ISO 8601 date)."},"option_grant_expiry_date":{"type":"string","format":"date","example":"2032-01-01","description":"The expiry date of the option grant (ISO 8601 date)."},"stakeholder_relationship":{"type":"string","example":"employee","description":"The relationship of the stakeholder."},"option_grant_strike_price":{"type":"string","example":"10.50","description":"The strike price of the option grant."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/it/orders/{order_id}":{"get":{"path":"/rest/it/orders/{order_id}","tags":["IT orders"],"method":"get","summary":"Retrieve an IT order","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the order"},"user":{"type":"object","nullable":true,"properties":{"emails":{"type":"array","items":{"type":"string","format":"email"},"example":["bruce.wayne@wayne-enterprise.com","batman@gotham.com"],"description":"Array of user email addresses","x-sensitive-pii":true,"x-sensitive-employment":true},"address":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the address"},"city":{"type":"string","example":"Gotham","nullable":true,"description":"City name","x-sensitive-pii":true},"type":{"enum":["PII","PARTIAL","DELIVERY","COLLECTION","ENTITY","SUPPLIER","BILLING"],"type":"string","example":"DELIVERY","description":"Type of the address"},"line1":{"type":"string","example":"1007 Mountain Drive","nullable":true,"description":"Address line 1","x-sensitive-pii":true,"x-sensitive-employment":true},"line2":{"type":"string","example":"Stately Wayne Manor","nullable":true,"description":"Address line 2","x-sensitive-pii":true,"x-sensitive-employment":true},"state":{"type":"string","example":"New Jersey","nullable":true,"description":"State code or name","x-sensitive-pii":true},"country":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","XK","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"Country code","x-sensitive-pii":true},"is_valid":{"type":"boolean","example":true,"description":"Whether the address passes validation"},"post_code":{"type":"string","example":"12345","nullable":true,"description":"Post code","x-sensitive-pii":true,"x-sensitive-employment":true},"phone_number":{"type":"string","example":"+1-212-456-7890","nullable":true,"description":"Phone number","x-sensitive-pii":true,"x-sensitive-employment":true},"date_of_birth":{"type":"string","format":"date","example":"1997-12-18","nullable":true,"description":"Date of birth (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"tax_id_number":{"type":"string","example":"BAT123456","nullable":true,"description":"Tax ID number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"passport_number":{"type":"string","example":"P123456789","nullable":true,"description":"Passport number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"delivery_instructions":{"type":"string","example":"Use the Bat-Signal if urgent","nullable":true,"description":"Special instructions for deliveries","x-sensitive-pii":true,"x-sensitive-employment":true}},"description":"User address details"},"last_name":{"type":"string","example":"Wayne","description":"Last name of the user","x-sensitive-pii":true},"first_name":{"type":"string","example":"Bruce","description":"First name of the user","x-sensitive-pii":true},"hris_profile_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"The unique identifier of the HRIS profile of the assigned user"}},"description":"Details of the order attached user"},"status":{"enum":["REQUESTED","APPROVED","DECLINED","CANCELLED"],"type":"string","example":"REQUESTED","description":"Order status"},"created_at":{"type":"string","format":"date-time","example":"2025-08-08T09:49:01.000Z","description":"Creation timestamp of the order"},"updated_at":{"type":"string","format":"date-time","example":"2025-08-08T09:49:01.000Z","description":"Last update timestamp of the order"},"order_items":{"type":"array","items":{"type":"object","properties":{"status":{"enum":["PLACED","PROCESSING","AWAITING_PAYMENT","READY_TO_SHIP","SHIPPED","COMPLETED","CANCELLED"],"type":"string","example":"SHIPPED","description":"Status of the order item"},"product":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the product"},"name":{"type":"string","example":"MacBook Pro","description":"Product name"},"brand":{"type":"string","example":"Apple","description":"Product brand"},"category":{"enum":["ADAPTER","CABLE","CHAIR","CHARGER","DESK","DESK_RISER","DESK_TIDY","DESKTOP","DOCKING_STATION","DONGLE","FOOTREST","HEADSET","KEYBOARD","LAPTOP","LAPTOP_STAND","MICE_TRACKPAD","MOBILE_DEVICE","MONITOR","MONITOR_ARM","OTHER","PRINTER","SHREDDER","STANDING_MAT","TABLET","TASK_LIGHT","WEBCAM","WIFI_RANGE_EXTENDER","WELCOME_PACK"],"type":"string","example":"LAPTOP","description":"Product category"}},"description":"Product details"},"is_approved":{"type":"boolean","example":false,"description":"Is the order item approved"},"pricing_details":{"type":"object","properties":{"asset_price":{"type":"object","nullable":true,"properties":{"amount":{"type":"string","example":"1999.99","description":"Amount"},"currency":{"enum":["EUR","AED","AFN","XCD","ALL","AMD","AOA","ARS","USD","AUD","AWG","AZN","BAM","BDT","XOF","BGN","BHD","BIF","BMD","SGD","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","XAF","CHF","NZD","CLP","CNY","COP","CRC","CUC","CVE","ANG","CZK","DJF","DOP","DZD","EGP","MAD","ERN","ETB","FJD","FKP","DKK","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","WST","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LYD","MDL","MGA","MKD","MMK","MNT","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","XPF","NGN","NIO","NOK","NPR","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","UYU","UZS","VEF","VND","VUV","YER","ZAR","ZMW","ZWD"],"type":"string","example":"EUR","description":"Three-letter currency code for the price"}},"description":"Price of the order item"},"storefront_fee":{"type":"object","nullable":true,"properties":{"amount":{"type":"string","example":"1999.99","description":"Amount"},"currency":{"enum":["EUR","AED","AFN","XCD","ALL","AMD","AOA","ARS","USD","AUD","AWG","AZN","BAM","BDT","XOF","BGN","BHD","BIF","BMD","SGD","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","XAF","CHF","NZD","CLP","CNY","COP","CRC","CUC","CVE","ANG","CZK","DJF","DOP","DZD","EGP","MAD","ERN","ETB","FJD","FKP","DKK","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","WST","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LYD","MDL","MGA","MKD","MMK","MNT","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","XPF","NGN","NIO","NOK","NPR","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","UYU","UZS","VEF","VND","VUV","YER","ZAR","ZMW","ZWD"],"type":"string","example":"EUR","description":"Three-letter currency code for the price"}},"description":"Storefront fee associated with the order item"},"acquisition_type":{"enum":["RENTAL","PURCHASE","REUSE"],"type":"string","example":"PURCHASE","description":"Acquisition type of the order item"}},"description":"Order item pricing details"},"is_express_delivery_requested":{"type":"boolean","example":true,"description":"Is express delivery requested for the order item"}}},"description":"Order's items details"},"delivery_address":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the address"},"city":{"type":"string","example":"Gotham","nullable":true,"description":"City name","x-sensitive-pii":true},"type":{"enum":["PII","PARTIAL","DELIVERY","COLLECTION","ENTITY","SUPPLIER","BILLING"],"type":"string","example":"DELIVERY","description":"Type of the address"},"line1":{"type":"string","example":"1007 Mountain Drive","nullable":true,"description":"Address line 1","x-sensitive-pii":true,"x-sensitive-employment":true},"line2":{"type":"string","example":"Stately Wayne Manor","nullable":true,"description":"Address line 2","x-sensitive-pii":true,"x-sensitive-employment":true},"state":{"type":"string","example":"New Jersey","nullable":true,"description":"State code or name","x-sensitive-pii":true,"x-sensitive-employment":true},"country":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","XK","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"Country code","x-sensitive-pii":true,"x-sensitive-employment":true},"is_valid":{"type":"boolean","example":true,"description":"Whether the address passes validation","x-sensitive-employment":true},"post_code":{"type":"string","example":"12345","nullable":true,"description":"Post code","x-sensitive-pii":true,"x-sensitive-employment":true},"phone_number":{"type":"string","example":"+1-212-456-7890","nullable":true,"description":"Phone number","x-sensitive-pii":true,"x-sensitive-employment":true},"date_of_birth":{"type":"string","format":"date","example":"1997-12-18","nullable":true,"description":"Date of birth (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"tax_id_number":{"type":"string","example":"BAT123456","nullable":true,"description":"Tax ID number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"passport_number":{"type":"string","example":"P123456789","nullable":true,"description":"Passport number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"delivery_instructions":{"type":"string","example":"Use the Bat-Signal if urgent","nullable":true,"description":"Special instructions for deliveries","x-sensitive-pii":true,"x-sensitive-employment":true}},"description":"Order delivery address details"}}}}}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"order_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"Unique identifier of the IT order"}],"description":"Returns the status, shipping details, and associated product for a single IT equipment order identified by order_id.\n\n **Token scopes**: `it-orders:read`","operationId":"retrieveAnItOrder-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["it-orders:read"]}]}},"/legal-entities/light":{"post":{"path":"/rest/legal-entities/light","tags":["Legal Entities"],"method":"post","summary":"Create a new light legal entity","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"a1b2c3d4-e5f6-4a5b-8c9d-0e1f2a3b4c5d","description":"The unique identifier for the legal entity."},"name":{"type":"string","example":"Acme Corporation","description":"The name of the legal entity."},"address":{"type":"object","properties":{"zip":{"type":"string","example":"12345","description":"Zip code of the entity's address.","x-sensitive-pii":true},"city":{"type":"string","example":"San Francisco","description":"City name of the entity's address.","x-sensitive-pii":true},"street":{"type":"string","example":"123 Main St","description":"Street address of the entity.","x-sensitive-pii":true},"country":{"type":"string","example":"US","description":"ISO 2-letter country code of the entity's address.","x-sensitive-pii":true}},"description":"The physical address of the entity.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2024-01-01T12:00:00Z","description":"Timestamp when the entity was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-01-02T12:00:00Z","description":"Timestamp when the entity was last updated."},"entity_type":{"type":"string","example":"light","description":"Type of the legal entity. Always `light` for entities created through this endpoint."}}}}}}},"description":"Successfully created light legal entity."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message explaining what went wrong with the request payload."}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates a minimal, standalone `light` legal entity from name, address, and point of contact email — reserved for whitelabel partner API integrations. Unlike the full legal entity creation endpoint, this requires no additional fields and triggers none of the invoicing/team/compliance/IRS side effects that fire for fully-onboarded entities.\n\n **Token scopes**: `legal-entity.light:write`","operationId":"createALightLegalEntity-v2026-09-08","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["name","address","point_of_contact"],"properties":{"name":{"type":"string","example":"Acme Corporation","description":"The legal name of the entity."},"address":{"type":"object","required":["street","city","country","zip"],"properties":{"zip":{"type":"string","example":"12345","description":"Zip code."},"city":{"type":"string","example":"San Francisco","description":"City name."},"street":{"type":"string","example":"123 Main St","description":"Street address."},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","description":"ISO 2-letter country code."}},"description":"The physical address of the entity."},"point_of_contact":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email","example":"contact@acme.com","description":"Email address of the point of contact for this entity."},"last_name":{"type":"string","example":"Doe","description":"Optional. Defaults to an empty string when not supplied."},"first_name":{"type":"string","example":"Jane","description":"Optional. Defaults to the local-part of `email` when not supplied."}},"description":"The point of contact for the entity. Only `email` is required."}}}}}}},"required":false},"security":[{"deelToken":[]},{"oauth2":["legal-entity.light:write"]}]}},"/time-tracking/timesheets/{timesheet_id}":{"get":{"path":"/rest/time-tracking/timesheets/{timesheet_id}","tags":["Time Tracking Timesheets"],"method":"get","summary":"Retrieve a timesheet","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"id":"660e8400-e29b-41d4-a716-446655440001","end_date":"2024-01-14","file_data":{"file_id":"770e8400-e29b-41d4-a716-446655440002","file_name":"January_Week2_Timesheet.csv","download_url":"https://my-unique-upload-bucket.s3.amazonaws.com/uploads/document.pdf?..."},"created_at":"2024-01-15T09:15:00.000Z","start_date":"2024-01-08","updated_at":"2024-01-16T10:30:00.000Z","contract_id":"mzz676x","review_status":"PENDING_REVIEW","submission_status":"SUBMITTED","validation_errors":null},"required":["id","contract_id","submission_status","review_status","start_date","end_date","created_at","updated_at","validation_errors"],"properties":{"id":{"type":"string","format":"uuid","example":"660e8400-e29b-41d4-a716-446655440001","description":"Unique identifier for the timesheet"},"end_date":{"type":"string","format":"date","example":"2024-01-14","description":"End date of the timesheet period"},"file_data":{"type":"object","nullable":true,"required":["file_id","file_name","download_url"],"properties":{"file_id":{"type":"string","format":"uuid","example":"770e8400-e29b-41d4-a716-446655440002","description":"Unique identifier for the timesheet file"},"file_name":{"type":"string","example":"January_Week2_Timesheet.csv","description":"Name of the timesheet file"},"download_url":{"type":"string","format":"uri","example":"https://my-unique-upload-bucket.s3.amazonaws.com/uploads/document.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIOSFODNN7EXAMPLE%2F20251107%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20251107T180000Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890","description":"Pre-signed S3 URL for downloading the timesheet file"}},"description":"Present only when `extend=file_data` is provided. Contains file details and download URL."},"created_at":{"type":"string","format":"date-time","example":"2024-01-15T09:15:00.000Z","description":"Timestamp when the timesheet was created"},"start_date":{"type":"string","format":"date","example":"2024-01-08","description":"Start date of the timesheet period"},"updated_at":{"type":"string","format":"date-time","example":"2024-01-16T10:30:00.000Z","description":"Timestamp when the timesheet was last updated"},"contract_id":{"type":"string","example":"mzz676x","description":"External id of the worker's contract associated with the timesheet"},"review_status":{"enum":["PENDING_CREATION","PENDING_REVIEW","APPROVED","REJECTED"],"type":"string","example":"PENDING_REVIEW","description":"Current status of the timesheet review"},"submission_status":{"enum":["UPLOADING","UPLOAD_FAILED","PROCESSING","SUBMITTED","INVALID","FAILED"],"type":"string","example":"SUBMITTED","description":"Current status of the timesheet submission"},"validation_errors":{"type":"array","items":{"type":"object","required":["type","message"],"properties":{"row":{"type":"number","example":34,"nullable":true,"description":"Row number in the timesheet file where the error occurred"},"type":{"enum":["EMPTY_TIMESHEET","INVALID_TIMESHEET_FORMAT","FILE_TOO_LARGE","INVALID_FILE_TYPE","INVALID_SHIFT_TIME_ORDER","INVALID_BREAK_TIME_ORDER","BREAK_OUTSIDE_SHIFT","OVERLAPPING_BREAKS","CANNOT_SUBMIT_SHIFTS","WORK_DURATION_MISMATCH","NON_WORKING_DAY_VIOLATION","PUBLIC_HOLIDAY_VIOLATION","TIME_OFF_VIOLATION","SHIFT_OUT_OF_CYCLE","DAY_UNAVAILABLE","INVALID_SHIFT_SUBMIT_TYPE","INVALID_SHIFT_ORIGIN","INVALID_SHIFT_TYPE","INVALID_SHIFT_KEEP_IN_TOUCH_DATE_INTERVAL","OVERLAPPING_SHIFT","SHIFT_CONTRACT_IN_RESTRICTED_STATUS","SHIFT_CONTRACT_IN_TERMINATION_STATUS","SHIFT_CONTRACT_COMPLETION_DATE","SHIFT_CONTRACT_START_DATE","SHIFT_MAX_SATURDAYS_PER_YEAR_VIOLATION","INVALID_DAY_TRACKING_DATA","SHIFT_MAX_WORKING_DAYS_PER_YEAR_VIOLATION","SHIFT_MAX_CONSECUTIVE_DAYS_STREAK_VIOLATION","BREAK_TYPE_NOT_AVAILABLE","BREAK_MISSED_OR_WAIVED","BREAK_DURATION_MISMATCH","BREAK_MAX_DURATION_EXCEEDED","WORK_LOCATION_VIOLATION","WORK_LOCATION_MISMATCH_BETWEEN_TIME_CLOCK_EVENTS_FOR_SHIFT","MISSING_WORK_DESCRIPTION"],"type":"string","example":"OVERLAPPING_SHIFT","description":"Type of validation error"},"column":{"type":"string","example":"Start time","nullable":true,"description":"Column name in the timesheet file where the error occurred"},"context":{"type":"object","example":{"shift_end":"2024-01-15T17:00:00.000Z","shift_start":"2024-01-15T09:00:00.000Z","overlapping_shift_public_id":"870e8401-e29b-41d5-a716-446655440132"},"nullable":true,"description":"Additional context information about the error","additionalProperties":true},"message":{"type":"string","example":"The shift overlaps with another existing shift for the same contract","description":"Human-readable error message"}}},"example":null,"nullable":true,"description":"Array of validation errors found during timesheet processing. Null if no errors found."}},"description":"Timesheet data including validation errors if applicable. When extend=file_data, also includes file_data object with file details and download URL."}}}}},"description":"Timesheet retrieved successfully. Returns timesheet details including validation errors if applicable. When extend=file_data, also includes file_data object with file details and download URL."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message","code","field"],"properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"field":{"type":"string","example":"timesheet_id","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Timesheet not found, please verify the timesheet_id","description":"Human-readable explanation of the error"}}}}}}}},"description":"Timesheet not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"extend","style":"form","schema":{"type":"string","maxLength":100},"example":"file_data","explode":false,"required":false,"description":"Optional list of fields to extend in the response. Currently only `file_data` is supported, which includes file details (file_id, file_name) and download URL."},{"in":"path","name":"timesheet_id","schema":{"type":"string","format":"uuid"},"example":"880e8400-e29b-41d4-a716-446655440003","required":true,"description":"ID of the timesheet to fetch file for"}],"description":"Retrieves a timesheet by `timesheet_id`, including its submission, review, and processing status. Pass `expand=file_data` to include file name and download URL in the response.\n\n **Token scopes**: `time-tracking:read`","operationId":"retrieveATimesheet-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]}},"/workers/contracts/{contract_id}/signatures":{"post":{"path":"/rest/workers/contracts/{contract_id}/signatures","tags":["Contracts"],"method":"post","summary":"Sign worker contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","is_signed","created_at","updated_at"],"properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000","description":"The unique identifier of the signed contract."},"is_signed":{"type":"boolean","example":true,"description":"Indicates whether the contract was successfully signed."},"created_at":{"type":"string","format":"date-time","example":"2021-01-01T00:00:00Z","description":"The timestamp when the contract was created."},"updated_at":{"type":"string","format":"date-time","example":"2021-01-01T00:00:00Z","description":"The timestamp when the contract was last updated."}}}}}}},"description":"Contract successfully signed."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"The unique identifier of the contract."}],"description":"Records the worker's signature on the contract identified by contract_id. Only contracts in an unsigned, pending state can be signed.\n\n **Token scopes**: `worker:write`","operationId":"signWorkerContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["worker_signature"],"properties":{"worker_signature":{"type":"string","example":"John Doe - 2024-01-15T10:30:00Z","description":"Signature of the worker for the contract"}}}}}}},"required":true,"description":"worker signature object that needs to be submitted"},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/sign":{"post":{"path":"/rest/eor/contracts/{contract_id}/amendments/{amendment_id}/sign","tags":["EOR"],"method":"post","summary":"Sign a contract amendment (employee)","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"b9fd7198-7e81-4e57-bcf9-de6315194327","description":"Id of amendment"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED",null],"type":"string","example":"OPS","nullable":true,"description":"Type of amendment"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"8e6ba281-c703-4af3-ad93-b27434b70c7d","description":"Id of amendment item"},"item":{"type":"string","example":"SALARY_INCREASE","description":"Amendment item"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED"],"type":"string","example":"OPS","description":"Type of amendment"},"new_value":{"type":"string","example":"62382.93","description":"The new valid value after the attempted change."},"data_point":{"type":"string","example":"salary","description":"The field that is selected for amendment."},"previous_value":{"type":"string","example":"68.9170","description":"The previous valid value before the attempted change."}}},"description":"Items of amendment"},"scope":{"type":"string","example":"Project scope details","description":"Scope of the amendment."},"salary":{"type":"string","example":"50000.00","description":"Salary for the amendment.","x-sensitive-employment":true},"source":{"enum":["APP","PUBLIC_API","APP_BULK_AMENDMENT",null],"type":"string","example":"APP","nullable":true,"description":"Source of amendment flow creation."},"currency":{"type":"string","example":"GBP","description":"Contract currency."},"end_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","nullable":true,"description":"End date of the employment."},"holidays":{"type":"integer","example":20,"nullable":true,"description":"Number of holidays."},"job_code":{"type":"string","example":"49589","nullable":true,"description":"Job code associated with the job title."},"job_title":{"type":"string","example":"Software Engineer","maxLength":1000,"description":"Job title associated with the amendment.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date of the amendment."},"start_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Start date of the employment."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Date when amendment is updated"},"hourly_rate":{"type":"string","example":"50000.00","nullable":true,"description":"Hourly rate of the amendment","x-sensitive-employment":true},"custom_items":{"type":"array","items":{"type":"object","required":["id","type","status"],"properties":{"id":{"type":"string","format":"uuid","example":"e7b45fa6-9a72-4ab6-b163-ef50ccaba7fb","description":"Unique identifier for the custom amendment item"},"type":{"type":"string","example":"START_DATE","description":"Type/context of the custom amendment item"},"status":{"enum":["REJECTED","APPROVED","PENDING_REVIEW","PENDING_LEGAL"],"type":"string","example":"PENDING_REVIEW","description":"Current status of the custom amendment item"},"description":{"type":"string","example":"Please change the start date to 20th November 2025.","nullable":true,"description":"Detailed description of the custom amendment item"},"rejection_reason":{"type":"string","example":"Start date cannot be moved this far in advance.","nullable":true,"description":"Reason for rejection if the item was rejected"}}},"description":"Custom amendment items associated with the amendment flow"},"job_category":{"type":"string","example":"Engineering","nullable":true,"description":"Job category associated with the job title."},"requested_by":{"type":"string","example":"John Doe","nullable":true,"description":"Profile name of the user who requested the change"},"seniority_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true,"description":"Seniority level identifier."},"document_type":{"enum":["EA","SOW","SOW_EA",null],"type":"string","example":"SOW_EA","nullable":true,"description":"Amendment document type"},"legal_context":{"type":"object","example":{"status":"REQUEST_LEGAL_REVIEW","details":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","jira_ticket":"COHDSB-9600","jira_web_url":"https://letsdeel.atlassian.net/browse/COHDSB-9600","requested_at":"2025-04-23T10:40:25.527Z"},"nullable":true,"properties":{"status":{"enum":["REQUEST_LEGAL_REVIEW","WAITING_FOR_ANOTHER_TEAM","WAITING_FOR_HRX_ACTION","DECLINED","SOLVED"],"type":"string","example":"REQUEST_LEGAL_REVIEW","description":"Current status of the legal review process"},"details":{"type":"string","example":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","description":"Details regarding the legal request"},"jira_ticket":{"type":"string","example":"COHDSB-9600","description":"Jira ticket identifier linked to the legal context"},"jira_web_url":{"type":"string","format":"uri","example":"https://letsdeel.atlassian.net/browse/COHDSB-9600","description":"Link to the Jira ticket for tracking"},"requested_at":{"type":"string","format":"date-time","example":"2025-04-23T10:40:25.527Z","description":"Timestamp when legal review was requested"}},"description":"Additional details needed for legal input"},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","description":"Type of time off."},"void_deadline":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Deadline this SOW to be voided"},"effective_date":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Effective date of the amendment."},"seniority_date":{"type":"string","format":"date","example":"2023-01-01","nullable":true,"description":"The seniority date represents the employee’s original start date with a previous employer. It is used to preserve employment tenure when the employee transfers to this company. Can be null if not applicable."},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Type of employment."},"sick_leave_days":{"type":"integer","format":"number","example":12,"nullable":true,"description":"Number of sick leave days"},"employment_state":{"type":"string","example":"Active","nullable":true,"description":"State of employment."},"probation_period":{"type":"integer","example":3,"nullable":true,"description":"Duration of the probation period."},"work_schedule_id":{"type":"string","format":"uuid","example":"2b786de3-9b25-42d9-8a2d-61583bcfc09e","nullable":true,"description":"Work schedule id"},"fixed_adjustments":{"type":"array","items":{"type":"object","required":["id","value","description","is_recurring","status","is_amended","is_country_specific","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmfo0hqd5bw00cqs1b1jd7eag","description":"System-generated unique identifier for the fixed adjustment record in an amendment request."},"value":{"type":"string","example":"1200.50","pattern":"^(?!0+(\\.0+)?$)\\d+(?:\\.\\d+)?$","description":"Value of the fixed adjustment."},"status":{"enum":["WAITING_FOR_SIGNING","ACTIVE","OUTDATED","CANCELLED"],"type":"string","example":"WAITING_FOR_SIGNING","description":"Current status of the fixed adjustment."},"created_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was created."},"is_amended":{"type":"boolean","example":true,"description":"Whether this fixed adjustment was amended from a previous one."},"is_deleted":{"type":"boolean","example":false,"description":"True if the fixed adjustment was deleted as part of the amendment; otherwise false."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was last updated."},"description":{"type":"string","example":"Housing allowance for employee relocation","maxLength":256,"minLength":1,"description":"Description of the fixed adjustment."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the fixed adjustment is recurring. If set to false, it will be treated as a one-time fixed allowance."},"is_country_specific":{"type":"boolean","example":false,"description":"Whether this fixed adjustment applies only to a specific country."},"parent_fixed_adjustment_id":{"type":"string","example":"cmfo0hqd5i9kbhfvk8fn7aniy","nullable":true,"description":"Reference to the parent fixed adjustment, if applicable."}}},"description":"List of fixed adjustments associated with the amendment request."},"rejection_context":{"type":"object","example":{"rejected_at":"2025-02-24T11:08:57.433Z"},"nullable":true,"properties":{"rejected_at":{"type":"string","format":"date-time","example":"2025-02-24T11:08:57.433Z","description":"Timestamp of when the rejection occurred"}},"description":"Additional details containing rejection reason"},"amendment_statuses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"AWAITING_SIGNATURE.EA.PENDING_EMPLOYEE_SIGNATURE","description":"Logical, system-oriented identifier of the amendment status. Can be used to group statuses under a parent category and subgroup them for more granular state tracking. The structure typically follows a dot-separated hierarchy (e.g., 'PARENT','PARENT.CHILD', 'PARENT.CHILD.CHILD.CHILD', ...), which allows logical grouping and filtering of related statuses."},"friendly_name":{"type":"string","example":"PENDING_EMPLOYEE_SIGNATURE","description":"Friendly name of amendment status"},"amendment_flow_status":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date"}},"description":"Metadata about the amendment status, including when it was created."}}},"description":"List of amendment statuses representing the history and progression of an amendment."},"notice_period_type":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"CUSTOM","nullable":true,"description":"Type of notice period."},"void_deadline_type":{"enum":["CUTOFF","START_DATE","END_DATE","EXPIRY",null],"type":"string","example":"CUTOFF","nullable":true,"description":"Type of void deadline"},"work_hours_per_week":{"type":"string","example":"40.00","description":"Number of work hours per week.","x-sensitive-employment":true},"employee_nationality":{"type":"string","example":"GB","description":"Nationality of the employee.","x-sensitive-pii":true},"is_hrx_action_needed":{"type":"boolean","example":false,"description":"Is HRX action needed."},"variable_compensation":{"type":"object","required":["id","title","amount","type","timeline","parent_id","effective_date","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","description":"The unique ID assigned by the system to this variable compensation record."},"type":{"enum":["FIXED","PERCENTAGE"],"type":"string","example":"FIXED","description":"The way the compensation is calculated. `FIXED` means a fixed amount (like $1000). `PERCENTAGE` means it’s based on a percentage of the salary."},"title":{"type":"string","example":"Bonus","description":"Title or name of the variable compensation."},"amount":{"type":"string","format":"decimal","example":"100000.0000","description":"The value of the compensation. Shown as a string to keep the exact number of decimals."},"timeline":{"enum":["MONTHLY","QUARTERLY","ANNUALLY","BIANNUALLY"],"type":"string","example":"ANNUALLY","description":"How often the compensation is paid — for example monthly, quarterly, annually, or twice a year."},"parent_id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","nullable":true,"description":"Reference to the parent variable compensation, if applicable. Null if this compensation is not linked to any compensation."},"created_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was first created in the system."},"is_amended":{"type":"boolean","example":true,"description":"Shows whether this compensation has been changed as part of an amendment."},"is_deleted":{"type":"boolean","example":true,"description":"Shows whether this compensation has been deleted."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was last updated."},"effective_date":{"type":"string","format":"date-time","example":"2025-10-18T00:00:00.000Z","description":"The date when this compensation starts being valid."},"incentive_plan":{"type":"object","properties":{"details":{"type":"string","example":"Year-end performance bonus based on quarterly targets.","description":"Extra details about the incentive plan, if any."},"employee_signature":{"type":"string","example":"John Doe","description":"The employee’s signature for the incentive plan, if collected."},"employee_signed_at":{"type":"string","format":"date-time","example":"2025-12-15T14:30:00.000Z","description":"The date and time when the employee signed the incentive plan. Empty if not signed."}},"description":"Details of the incentive plan linked to this compensation, if any."}},"description":"Represents a variable compensation record (such as a bonus, commission, or incentive) within a contract. It contains details like the amount, type, frequency, and whether it is part of an incentive plan. The record also tracks when it was created, updated, and whether it has been amended."},"notice_period_time_unit":{"enum":["DAY","WEEK","MONTH",null],"type":"string","example":"WEEK","nullable":true,"description":"Notice period time unit."},"is_effective_date_updated":{"type":"boolean","example":false,"description":"Is Effective Date updated."},"work_schedule_rules_version":{"type":"string","example":"2","nullable":true,"description":"Work schedule rule version."},"notice_period_after_probation":{"type":"string","example":"30","nullable":true,"description":"Notice period after probation."},"notice_period_during_probation":{"type":"string","example":"15","nullable":true,"description":"Notice period during probation."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"STANDARD","nullable":true,"description":"Type of probation period for definite contracts."}}}}}}},"description":"Amendment info"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of EOR worker contract."},{"in":"path","name":"amendment_id","schema":{"type":"string","format":"uuid"},"example":"77733bb9-9e17-4dfd-ba1b-1315f77cd7f7","required":true,"description":"A unique identifier for the employee contract amendment."}],"description":"Records the employee's signature on a specific contract amendment, confirming acceptance of the amendment terms. Returns the updated amendment record upon successful signing.\n\n **Token scopes**: `worker:write`","operationId":"signAContractAmendmentEmployee-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false},"example":{}}},"required":false,"description":"This operation does not require a request body. Provide an empty JSON object if required by the client."},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/eor/contract/{contract_id}":{"patch":{"path":"/rest/eor/contract/{contract_id}","tags":["EOR"],"method":"patch","summary":"Update EOR Contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["oid","status"],"properties":{"oid":{"type":"string","example":"cnt_12345","description":"The unique identifier of the employee contract."},"status":{"enum":["new","under_review","waiting_for_client_sign","waiting_for_eor_sign","waiting_for_employee_sign","awaiting_deposit_payment","rejected"],"type":"string","example":"under_review","description":"Current status of the contract"},"scope_of_work":{"type":"string","example":"Scope of work description.","description":"Scope of work description."}}},"examples":{"schedule_updated":{"value":{"id":"cnt_12345","oid":"cnt_12345","status":"under_review"}}}}},"description":"Contract updated successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"bad_request","description":"Error code identifier"},"field":{"type":"string","nullable":true,"description":"The field that caused the error, if applicable"},"message":{"type":"string","example":"Cannot resubmit an archived contract","description":"Error message details"}}}}}},"examples":{"invalid_schedule":{"value":{"errors":[{"code":"bad_request","field":null,"message":"Cannot update work schedule for contracts with in-progress amendments"}]}},"archived_contract":{"value":{"errors":[{"code":"bad_request","field":null,"message":"Cannot resubmit an archived contract"}]}},"invalid_start_date":{"value":{"errors":[{"code":"bad_request","field":null,"message":"Soonest available start date is Jan 1st, 2024"}]}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permissions","description":"Error code identifier"},"field":{"type":"string","nullable":true,"description":"The field that caused the error, if applicable"},"message":{"type":"string","example":"Organization cannot use EOR schedules","description":"Error message details"}}}}}}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"resource_not_found","description":"Error code identifier"},"field":{"type":"string","nullable":true,"description":"The field that caused the error, if applicable"},"message":{"type":"string","example":"Contract not found","description":"Error message details"}}}}}}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"internal_server_error","description":"Error code identifier"},"field":{"type":"string","nullable":true,"description":"The field that caused the error, if applicable"},"message":{"type":"string","example":"An unexpected error occurred while processing your request. Please try again later.","description":"Error message details"}}}}}},"examples":{"internal_error":{"value":{"errors":[{"code":"internal_server_error","field":null,"message":"An unexpected error occurred while processing your request. Please try again later."}]}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"cnt_12345678","required":true,"description":"The unique identifier of the employee contract."}],"description":"Applies partial updates to mutable fields of an EOR contract, such as salary, job title, or benefits. Only fields included in the request body are modified; fields required for validation must still be present.\n\n **Token scopes**: `contracts:write`","operationId":"updateEorContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["job_title","employee_first_name","employee_last_name","employee_email","employment_country","employment_type","start_date"],"properties":{"scope":{"oneOf":[{"type":"string","example":"Scope of work description.","maxLength":10000,"minLength":100,"description":"Scope of work description."},{"type":"object","example":{"scope_template_id":"00000000-0000-0000-0000-000000000000"},"properties":{"scope_template_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Scope template UUID."},"scope_validation_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Scope validation UUID."}},"description":"Reference to a scope template or validation."}],"example":"Scope of work description.","description":"Scope of work description, either as a plain string or as a reference to a scope template."},"salary":{"type":"number","format":"float","example":100000,"maximum":9999999999999,"minimum":0,"description":"Annual salary amount. Optional; must not be sent when is_hourly is true."},"benefits":{"type":"array","items":{"type":"object","properties":{"plan_id":{"type":"string","example":"PLAN123","nullable":true,"description":"Benefit plan ID"},"cover_all":{"type":"boolean","example":true,"description":"Indicates if benefit covers all"},"provider_id":{"type":"string","example":"PROV123","nullable":true,"description":"Benefit provider ID"},"contribution":{"type":"number","example":500,"maximum":9999999999999,"minimum":0,"nullable":true,"description":"Contribution amount"},"cover_dependents":{"type":"boolean","example":false,"description":"Indicates if benefit covers dependents"}},"description":"Benefit plan details"},"nullable":true,"description":"Array of employee benefits"},"currency":{"type":"string","example":"USD","description":"Currency code for salary and benefits"},"end_date":{"type":"string","format":"date","example":"2025-01-01","nullable":true,"description":"Employment end date"},"holidays":{"type":"number","example":20,"minimum":0,"nullable":true,"description":"Number of holiday days per year"},"is_hourly":{"type":"boolean","example":false,"nullable":true,"description":"Indicates if compensation is hourly"},"job_title":{"type":"string","example":"Software Engineer","description":"Job title (cannot be C-level position)"},"work_visa":{"type":"boolean","example":false,"nullable":true,"description":"Indicates if work visa is required"},"start_date":{"type":"string","format":"date","example":"2024-01-01","description":"Employment start date"},"employee_id":{"type":"string","example":"EMP123","description":"Employee's unique identifier"},"hourly_rate":{"type":"number","format":"float","example":50,"maximum":9999999999999,"minimum":0,"nullable":true,"description":"Hourly rate. Required when is_hourly is true. Must not be sent when is_hourly is false or omitted."},"is_resubmit":{"type":"boolean","example":false,"nullable":true,"description":"Indicates if this is a resubmission"},"schedule_id":{"type":"string","example":"SCH123","nullable":true,"description":"Unique identifier for the employee's work schedule"},"seniority_id":{"type":"number","example":1,"description":"Seniority level identifier"},"work_pension":{"type":"boolean","example":true,"nullable":true,"description":"Indicates if work pension is included"},"signing_bonus":{"type":"number","format":"float","example":5000,"maximum":9999999999999,"minimum":0,"nullable":true,"description":"Signing bonus amount"},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"PRORATED","description":"Type of time off"},"employee_email":{"type":"string","format":"email","example":"john.doe@example.com","description":"Employee's email address"},"seniority_date":{"type":"string","format":"date","example":"2024-01-01","description":"Employee seniority date"},"employment_type":{"enum":["Full-time","Part-time"],"type":"string","example":"Full-time","description":"Type of employment"},"sick_leave_days":{"type":"number","example":10,"maximum":90,"minimum":0,"nullable":true,"description":"Number of sick leave days per year"},"employee_address":{"type":"object","required":["country","city","street"],"properties":{"zip":{"type":"string","example":"94105","description":"ZIP/Postal code"},"city":{"type":"string","example":"San Francisco","description":"City of residence"},"phone":{"type":"string","example":"4151234567","description":"Phone number"},"state":{"type":"string","example":"California","description":"State of residence"},"street":{"type":"string","example":"123 Main Street","description":"Street address"},"country":{"type":"string","example":"United States","description":"Country of residence (can be country code or name)"},"province":{"type":"string","example":"Northern California","description":"Province of residence"},"calling_code":{"type":"string","example":"+1","description":"Country calling code"}},"description":"Employee's address information"},"employment_state":{"type":"string","example":"California","nullable":true,"description":"State/Province of employment"},"hiring_objective":{"enum":["EXPANDING_TO_NEW_COUNTRY","TEMP_EOR_OPENING_ENTITY","ONE_OFF_HIRE","CONVERTING_CONTRACTOR","OTHER"],"type":"string","example":"CONVERTING_CONTRACTOR","description":"Objective for hiring"},"probation_period":{"type":"number","example":3,"minimum":0,"nullable":true,"description":"Probation period duration"},"work_arrangement":{"enum":["REMOTE","ON_SITE_OR_HYBRID"],"type":"string","example":"REMOTE","nullable":true,"description":"Work arrangement type"},"work_eligibility":{"type":"object","required":["key","file_name"],"properties":{"key":{"type":"string","example":"work-eligibility-doc-123","description":"Unique identifier for the work eligibility document"},"file_name":{"type":"string","example":"work_permit_2024.pdf","description":"Name of the work eligibility document file"}},"description":"Work eligibility documentation"},"medical_insurance":{"type":"boolean","example":true,"description":"Medical insurance coverage"},"contract_term_type":{"enum":["DEFINITE","INDEFINITE"],"type":"string","example":"DEFINITE","description":"Type of contract term"},"employee_last_name":{"type":"string","example":"Doe","description":"Employee's last name"},"employment_country":{"type":"string","example":"United States","description":"Country of employment"},"notice_period_type":{"enum":["STANDARD","CUSTOM"],"type":"string","example":"STANDARD","description":"Type of notice period"},"employee_first_name":{"type":"string","example":"John","description":"Employee's first name"},"work_hours_per_week":{"type":"number","example":40,"maximum":168,"minimum":0,"description":"Working hours per week"},"employee_nationality":{"type":"string","example":"American","description":"Employee's nationality"},"reason_for_fixed_term":{"enum":["SEASONAL_OR_TEMPORARY_WORK","PROJECT_BASED_EMPLOYMENT","REPLACEMENT_FOR_PERMANENT_STAFF","TRIAL_PERIODS_FOR_NEW_ROLES_OR_BUSINESSES"],"type":"string","example":"PROJECT_BASED_EMPLOYMENT","nullable":true,"description":"Reason for fixed-term contract"},"quote_additional_fields":{"type":"object","properties":{"employee_type":{"enum":["Employee","Manager"],"type":"string","example":"Employee","description":"Type of employee"},"qualifications":{"type":"string","example":"Bachelor's degree","description":"Required qualifications"},"scope_german_translation":{"type":"string","example":"","description":"German translation of scope"},"qualifications_german_translation":{"type":"string","example":"","description":"German translation of qualifications"}},"description":"Additional quote-specific information"},"signing_bonus_payout_type":{"enum":["FIRST_CYCLE","AFTER_PROBATION","AFTER_FIRST_CONTRACT_ANNIVERSARY",null],"type":"string","default":"FIRST_CYCLE","example":"FIRST_CYCLE","nullable":true,"description":"Determines when the signing bonus will be paid out"},"hiring_objective_extra_info":{"type":"string","example":"Replacing employee on leave","nullable":true,"description":"Additional information about hiring objective"},"notice_period_after_probation":{"type":"number","example":60,"minimum":0,"description":"Notice period after probation (days)"},"notice_period_during_probation":{"type":"number","example":30,"minimum":0,"description":"Notice period during probation (days)"},"is_auto_quote_validation_passed":{"type":"boolean","example":true,"nullable":true,"description":"Auto quote validation status"},"probation_period_type_for_definite":{"enum":["CUSTOM","STANDARD"],"type":"string","example":"STANDARD","description":"Unit of time for probation period"},"allow_consultant_equipment_reimbursement":{"type":"boolean","example":true,"description":"Allow equipment reimbursement for consultants"}}}}}}},"required":true,"description":"Contract update request object"},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/organizations/children/{child_organization_id}/session":{"post":{"path":"/rest/organizations/children/{child_organization_id}/session","tags":["Organizations"],"method":"post","summary":"Create a session token for a child organisation","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["token","expires_at"],"properties":{"token":{"type":"string","example":"eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...","description":"The short-lived session token for the child organisation."},"expires_at":{"type":"string","format":"date-time","example":"2024-01-02T12:00:00.000Z","description":"ISO 8601 timestamp when the session token expires (6 hours from issuance)."}},"description":"The issued session token."}}}}},"description":"Session token issued successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code."},"message":{"type":"string","example":"Child organization could not be found","description":"Human-readable description of the error."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Bad Request. The request was malformed or failed validation."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code."},"message":{"type":"string","example":"Child organization could not be found","description":"Human-readable description of the error."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Unauthorized. Authentication credentials were missing or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code."},"message":{"type":"string","example":"Child organization could not be found","description":"Human-readable description of the error."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Forbidden. The caller does not have the required scope or permission to access this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code."},"message":{"type":"string","example":"Child organization could not be found","description":"Human-readable description of the error."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Not Found. The child organisation does not exist or is missing a service account."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"child_organization_id","schema":{"type":"string","format":"uuid"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"The public UUID of the child organisation for which to issue a session token."}],"description":"Issues a short-lived session token (valid 6 hours) for a child organisation. If an active session token with more than one hour of remaining validity already exists, that token is returned. Otherwise the prior session token is invalidated and a new 6-hour token is issued. Session tokens do not affect the child organisation’s original permanent token.\n\n **Token scopes**: `organizations:write`","operationId":"createChildOrgSessionToken-v2026-07-14","security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/ic/workers/invoices/{invoice_id}":{"get":{"path":"/rest/ic/workers/invoices/{invoice_id}","tags":["Workers"],"method":"get","summary":"Get invoice details by ID","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","created_at","status","currency"],"properties":{"id":{"type":"string","example":"GqaY5BHQJUAM2Jg9kq2j2","description":"Public invoice id."},"title":{"type":"string","example":"January 2025","description":"Display title."},"total":{"type":"string","example":"220.00","nullable":true,"description":"Total including fees."},"amount":{"type":"string","example":"200.00","nullable":true,"description":"Amount before fees."},"status":{"type":"string","example":"paid","description":"Invoice workflow status."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Three-letter currency code."},"issued_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"When the invoice was issued, if applicable."},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","description":"When the invoice record was created (ISO-8601)."},"payment_display_status":{"type":"object","required":["key","label"],"properties":{"key":{"type":"string","example":"paid","description":"Stable machine key."},"label":{"type":"string","example":"Paid","description":"Human-readable label."}},"description":"Derived payment display state for the invoice."}},"description":"Invoice summary (snake_case; display card fields, amounts, and payment display).","x-sensitive-pii":true,"additionalProperties":true,"x-sensitive-employment":true}}}}},"description":"Invoice detail"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code."},"field":{"type":"string","description":"JSON pointer to the invalid field, when applicable."},"details":{"type":"object","description":"Optional structured context for the error.","additionalProperties":true},"message":{"type":"string","description":"Human-readable explanation of the error."}}}}}}}},"description":"Bad request (invalid query or path parameters)."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code."},"field":{"type":"string","description":"JSON pointer to the invalid field, when applicable."},"details":{"type":"object","description":"Optional structured context for the error.","additionalProperties":true},"message":{"type":"string","description":"Human-readable explanation of the error."}}}}}}}},"description":"Unauthorized (missing or invalid worker token)."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code."},"field":{"type":"string","description":"JSON pointer to the invalid field, when applicable."},"details":{"type":"object","description":"Optional structured context for the error.","additionalProperties":true},"message":{"type":"string","description":"Human-readable explanation of the error."}}}},"request":{"type":"object","properties":{"url":{"type":"string"},"method":{"type":"string"},"status":{"type":"integer"}},"description":"Present for some public API responses (e.g. when `x-is-api-call` is set).","additionalProperties":true}}}}},"description":"Forbidden (invoice not found or not accessible to this worker)."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"412":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code."},"field":{"type":"string","description":"JSON pointer to the invalid field, when applicable."},"details":{"type":"object","description":"Optional structured context for the error.","additionalProperties":true},"message":{"type":"string","description":"Human-readable explanation of the error."}}}}}}}},"description":"Precondition failed (e.g. `icEmbeddedWorkerSetup` is not enabled for the organization)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code."},"field":{"type":"string","description":"JSON pointer to the invalid field, when applicable."},"details":{"type":"object","description":"Optional structured context for the error.","additionalProperties":true},"message":{"type":"string","description":"Human-readable explanation of the error."}}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"invoice_id","schema":{"type":"string"},"example":"GqaY5BHQJUAM2Jg9kq2j2","required":true,"description":"Public invoice id for the invoice to return."}],"description":"This endpoint retrieves invoice information by ID. Use it to access detailed invoice data for reference or verification.\n\n **Token scopes**: `worker:read`","operationId":"getInvoiceDetailsById-v2026-04-27","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/contracts/{contract_id}/ic-invoicing-taxes/{tax_type}":{"delete":{"path":"/rest/contracts/{contract_id}/ic-invoicing-taxes/{tax_type}","tags":["IC invoicing taxes"],"method":"delete","summary":"Delete IC invoicing tax","responses":{"204":{"description":"IC tax successfully deleted"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel Contract ID"},{"in":"path","name":"tax_type","schema":{"enum":["WITHHOLDING_TAX","VAT"],"type":"string"},"example":"VAT","required":true,"description":"IC tax type"}],"description":"Permanently removes the specified `tax_type` from the contract's invoicing tax configuration; this action is irreversible and takes effect on future invoices.\n\n **Token scopes**: `invoice-adjustments:write`","operationId":"deleteIcInvoicingTax-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}]}},"/time_offs/global-payroll/sync":{"post":{"path":"/rest/time_offs/global-payroll/sync","tags":["Time Off"],"method":"post","summary":"Process time-off requests from an external HRIS","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"deleted":{"type":"number","example":0,"description":"Number of time off requests that were deleted"},"updated":{"type":"number","example":2,"description":"Number of time off requests that were updated"},"inserted":{"type":"number","example":4,"description":"Number of time off requests that were inserted"}}}},"description":"List of time offs persisted at Deel"}}},"description":"Successful operation time offs returned"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"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.\n\n **Token scopes**: `time-off:write`","operationId":"externalHrTimeOffSynchronization-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["time_offs"],"properties":{"time_offs":{"type":"array","items":{"oneOf":[{"type":"object","required":["external_id","contract_oid","start_date","end_date","policy_type"],"properties":{"amount":{"type":"number","format":"float","example":1.5,"description":"The amount in time units for this time off. When no amount is informed, it will be calculated using work schedules and public holidays defined at Deel."},"is_paid":{"type":"boolean","example":true,"description":"Allows the consumer to specify whether the time off is considered as paid (at statutory) or unpaid based on the configuration of the policy in the external HRIS."},"end_date":{"type":"string","format":"date","example":"2022-01-01","description":"The end date of the time off."},"start_date":{"type":"string","format":"date","example":"2022-01-01","description":"The start date of the time off."},"approved_at":{"type":"string","format":"date","example":"2022-01-01","description":"The approval date of the time off. If no approval date is informed, the start date of this request will be used as the approval date. Note: use this field in order to support retrospective leaves so Deel can identify requests made after the payroll cycle."},"description":{"type":"string","example":"Family trip","nullable":true,"maxLength":500,"description":"The description of the time off."},"external_id":{"type":"string","example":"cb2fb91b-0fb4-4b9a-a745-e65e119ee1fb","maxLength":48,"description":"External ID to link a Deel time off object with an external time off object. It will be used to determine which operation should be done: INSERT, UPDATE or DELETE."},"policy_name":{"type":"string","example":"Annual leave","maxLength":256,"description":"The policy name the time off is being requested for. If not informed, a default name will be generated using the policy type and contract's country (eg: Vacation - US)."},"policy_type":{"enum":["Adoption leave","Advanced vacation","Bereavement leave","Blood donation leave","Breastfeeding leave","Childbirth leave","Childcare leave","Civic/public duty leave","Compensatory leave","Disability leave","Doctor's appointment leave","Family & domestic violence leave","Family responsibility leave","Floating Holiday Allowance","Hajj leave","Hospitalization leave","Long Service Leave","Marriage/wedding leave","Maternity leave","Menstrual leave","Military leave","Moving leave","Other leave","Paid leave","Parental leave","Paternity leave","Personal leave","Pregnancy leave","Regional holiday","RTT","Sick leave","Study leave","Supplementary Leave","Unpaid leave","Vacation","Vacation - public holidays replacement","Volunteer leave","Work accident leave"],"type":"string","example":"Vacation","nullable":true,"maxLength":256,"description":"The Deel policy type of the policy the time off is being requested for."},"contract_oid":{"type":"string","example":"e3064eef-999a-471e-a04b-ed69348ac7e4","maxLength":24,"description":"The contract id that has requested the time off."},"requested_at":{"type":"string","format":"date","example":"2022-01-01","description":"The request date of the time off."},"entitlement_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"BUSINESS_DAY","description":"The time unit for this time off. *Mandatory when amount parameter is informed*. If no amount and no entitlement_unit are informed, it will be calculated using Deel's internal country templates for compliant time off policies."}}},{"type":"object","required":["external_id","contract_oid","deleted"],"properties":{"deleted":{"enum":[true],"type":"boolean","example":true,"nullable":false,"description":"Indicates this time off request must be deleted"},"external_id":{"type":"string","example":"cb2fb91b-0fb4-4b9a-a745-e65e119ee1fb","maxLength":48,"description":"External ID to link a Deel time off object with an external time off object. It will be used to determine which operation should be done: INSERT, UPDATE or DELETE."},"contract_oid":{"type":"string","example":"e3064eef-999a-471e-a04b-ed69348ac7e4","maxLength":24,"description":"The contract id that has requested the time off."}}}]}}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["time-off:write"]}]}},"/eor/workers/tax-documents":{"get":{"path":"/rest/eor/workers/tax-documents","tags":["EOR"],"method":"get","summary":"List of tax documents for an employee","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"9AmobdjMwXOq","description":"Id of the tax document"},"url":{"type":"string","example":"https://example.com/file.pdf","description":"URL of the tax document"},"type":{"type":"string","example":"Tax Document","description":"Type of the tax document"},"year":{"type":"number","example":"2023","description":"Year of tax document"},"country":{"type":"string","example":"IL","description":"Country of the tax document"}}}}}}}},"description":"Tax documents successfully retrieved."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns tax documents for the authenticated worker.\n\n **Token scopes**: `worker:read`","operationId":"listOfTaxDocumentsForAnEmployee-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/organizations/secure-vault/folders/{folder_id}/items":{"get":{"path":"/rest/organizations/secure-vault/folders/{folder_id}/items","tags":["Documents"],"method":"get","summary":"List Organization Secure Vault Folder Items","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","name"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","nullable":true,"description":"Public UUID of the folder or file."},"name":{"type":"string","example":"Contracts","nullable":true,"description":"Folder name, or the original filename for a file."},"type":{"enum":["FOLDER","FILE"],"type":"string","example":"FOLDER","description":"Discriminates folders from files."},"folder_id":{"type":"string","format":"uuid","example":"f2d1b0c4-8a3e-4c11-9f77-2b6c5e1a90d3","nullable":true,"description":"Public UUID of the containing folder. Files only."},"item_type":{"enum":["CUSTOM_FOLDER","REGISTRATION_DOC_FOLDER","DOCUMENTS_TO_SIGN_FOLDER","REGISTRATION_DOC_FILE","SECURE_FILE_VAULT_FILE","DOCUMENTS_TO_SIGN_FILE"],"type":"string","example":"CUSTOM_FOLDER","nullable":true,"description":"Specific kind of folder or file."},"created_at":{"type":"string","format":"date-time","example":"2026-08-05T12:00:00Z","nullable":true,"description":"Creation timestamp."},"description":{"type":"string","example":"Signed customer contracts","nullable":true,"description":"Folder description. Null for files."},"uploaded_by":{"type":"object","nullable":true,"properties":{"name":{"type":"string","example":"John Doe","description":"Display name of the uploader."}},"description":"Who uploaded the file. Files only."},"content_type":{"type":"string","example":"application/pdf","nullable":true,"description":"MIME type. Files only."},"is_sub_folder":{"type":"boolean","example":false,"description":"Whether the folder is nested under another folder. Folders only."},"parent_folder_id":{"type":"string","format":"uuid","example":"f2d1b0c4-8a3e-4c11-9f77-2b6c5e1a90d3","nullable":true,"description":"Parent folder public UUID. Folders only."}}},"description":"Folders and files for this page."},"has_more":{"type":"boolean","example":true,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"eyJpZCI6MTIzfQ==","nullable":true,"description":"Cursor for the next page. Null when there are no more pages."},"total_count":{"type":"integer","example":124,"minimum":0,"description":"Total number of matching records."}}}}},"description":"Folder items returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Folder not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"folder_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the folder."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of results to return per page."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":2048},"example":"eyJpZCI6MTIzfQ==","required":false,"description":"Pagination cursor returned by a previous response."},{"in":"query","name":"search","schema":{"type":"string","maxLength":255},"example":"contracts","required":false,"description":"Free-text search on folder and file names."}],"description":"Lists the files and sub-folders contained in a specific Organization Secure Vault folder. Use this endpoint to browse or paginate the contents of a single folder; to list items at the vault root instead, use the root-listing endpoint.\n\n **Token scopes**: `organizations:read`","operationId":"listOrganizationSecureVaultFolderItems-v2026-08-05","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/organizations/children":{"post":{"path":"/rest/organizations/children","tags":["Organizations"],"method":"post","summary":"Create child organization","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","token","created_at","updated_at"],"properties":{"id":{"type":"string","example":"7cdadbfa-3f9e-4e81-95d4-d40d0cab74be","description":"The unique identifier of the created child organization."},"token":{"type":"string","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.KMUFsIDTnFmyG3nMiGM6H9FNFUROf3wh7SmqJp-QV30","description":"The API token generated for the created child organization"},"created_at":{"type":"string","format":"date-time","example":"2025-07-06T19:51:54.000Z","description":"When the created child organization was created (ISO 8601 format)"},"updated_at":{"type":"string","format":"date-time","example":"2025-07-06T19:51:54.000Z","description":"When the created child organization was updated for the last time (ISO 8601 format)"}}}}}}},"description":"Operation successful. The child organization was created successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code"},"message":{"type":"string","example":"An organization with name ACME INC. is currently being created","description":"Human-readable explanation of the error"}}}}}}}},"description":"Conflict - an organization with this name is currently being created."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code"},"message":{"type":"string","example":"Too many attempts to create organization ACME INC. Please try again later.","description":"Human-readable explanation of the error"}}}}}}}},"description":"Too Many Requests - retry limit exceeded for creating this organization."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code"},"message":{"type":"string","example":"Error creating child organization for parent organization 123456","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Creates a child organization linked to the authenticated (parent) organization, provisioning a scoped API token, a default group, the parent–child hierarchy, and an initial user assignment in a single operation. The `token` in the response is the only time the child organization's API token is returned and must be stored by the caller.\n\n **Token scopes**: `organizations:write`","operationId":"createChildOrganization-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["child_organization","parent_organization"],"properties":{"child_organization":{"type":"object","required":["name"],"properties":{"name":{"type":"string","example":"ACME INC.","maxLength":255,"description":"The organization's name."},"department":{"type":"string","default":"Founder","example":"Finance","maxLength":255,"description":"The department's name where the manager will be added. Defaults to \"Founder\" when omitted."},"is_api_enabled":{"type":"boolean","default":false,"example":true,"description":"The flag that enables the public API for the child organization. Defaults to false when omitted."},"workforce_size":{"type":"integer","example":1000,"maximum":1000000,"minimum":1,"description":"The workforce size of the child organization."},"headquarters_country":{"type":"string","example":"BR","maxLength":2,"minLength":2,"description":"The organization's headquarters country as an ISO 3166-1 alpha-2 code. Validated against Deel's country whitelist; unknown codes are rejected."}},"description":"The object that contains all the information related to the child organization that will be created."},"parent_organization":{"type":"object","required":["admin_email"],"properties":{"admin_email":{"type":"string","format":"email","example":"admin@example.com","description":"The email of one of the managers of the parent organization that will be used to create a user for the child organization. It must belong to an existing admin/manager of the parent organization, otherwise creation fails."}},"description":"The object that contains the information related to the parent_organization."}},"description":"The request payload."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/legal-entities/{legal_entity_id}/payroll-events":{"get":{"path":"/rest/legal-entities/{legal_entity_id}/payroll-events","tags":["List Cycles"],"method":"get","summary":"List payroll cycles","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","items_per_page"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"05ae50dc-3540-4f9a-a395-3486d2b81a4d","description":"The unique identifier for the payroll cycle."},"type":{"enum":["OFFCYCLE","REGULAR"],"type":"string","example":"REGULAR","description":"The type of payroll cycle (e.g., OFFCYCLE, REGULAR)."},"date_end":{"type":"string","format":"date-time","example":"2023-01-15T00:00:00.000Z","description":"The end date of the payroll cycle."},"date_start":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00.000Z","description":"The start date of the payroll cycle."},"has_g2n_report":{"type":"boolean","example":true,"description":"Indicates whether a Gross-to-Net report is available for this payroll cycle. True only when the cycle is in a published state and a report without blocking errors exists."},"legal_entity_id":{"type":"string","example":"05ae50dc-3540-4f9a-a395-3486d2b81a4d","description":"The unique identifier for the associated legal entity."},"payroll_group_id":{"type":"string","example":"payroll_group_67890","nullable":true,"description":"The unique identifier for the payroll group."}}}},"has_more":{"type":"boolean","example":true,"description":"Indicates whether more pages are available."},"next_cursor":{"type":"string","example":"next_cursor_abcdefg","nullable":true,"description":"Pagination cursor to fetch the next page of results."},"items_per_page":{"type":"integer","example":5,"description":"The number of items per page."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/query/start","nullable":true,"description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Start date must come before end date","description":"Human-readable explanation of the error"}}}}}}}},"description":"Validation error or bad input."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"internal_server_error","description":"Machine-readable error code"},"message":{"type":"string","example":"An unexpected error occurred on the server","description":"Human-readable explanation of the error"}}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"date_start","schema":{"type":"string","format":"date"},"example":"2021-01-01","description":"Start date in the format 'YYYY-MM-DD'. Must not be earlier than 5 years ago."},{"in":"query","name":"date_end","schema":{"type":"string","format":"date"},"example":"2022-01-01","description":"End date in the format 'YYYY-MM-DD'. Must not exceed 5 years in the future."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"description":"Maximum number of items to return."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"abcdefghijklmnopqrstuvwx","description":"Pagination cursor, CUID or UUID format."},{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"05ae50dc-3540-4f9a-a395-3486d2b81a4d","required":true,"description":"The unique identifier (public ID) for the legal entity."}],"description":"Returns a paginated list of payroll events for the specified legal entity, optionally filtered by a date range; date_start must not be earlier than 5 years ago and date_end must not exceed 5 years in the future.\n\n **Token scopes**: `legal-entity:read`","operationId":"listPayrollCycles-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/workers/{worker_id}/session":{"delete":{"path":"/rest/workers/{worker_id}/session","tags":["Worker Session"],"method":"delete","summary":"Delete worker access token","responses":{"204":{"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string"},"example":"5f4e1f77-0f1c-4f6d-8b0f-1b1b4b1b1b1b","required":true,"description":"The ID of the worker whose access token you want to delete."}],"description":"Immediately revokes the active access token for the worker identified by worker_id, terminating all API access granted by that token.\n\n **Token scopes**: `admin:worker`","operationId":"deleteWorkerAccessToken-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["admin:worker"]}]}},"/eor/workers/contracts/{contract_id}/offboarding":{"post":{"path":"/rest/eor/workers/contracts/{contract_id}/offboarding","tags":["EOR"],"method":"post","summary":"Submit EOR Worker Resignation","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the offboarding request"},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"documents":{"type":"object","nullable":false,"required":["supporting","offboarding"],"properties":{"supporting":{"type":"array","items":{"type":"object","required":["id","name","type","created_at","updated_at","is_additional_supporting_document"],"properties":{"id":{"type":"string","format":"cuid","example":"cmddlk1ghehm54l18gejg198r","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Supporting Documentation","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was updated","x-sensitive-pii":true},"is_additional_supporting_document":{"type":"boolean","example":false,"description":"Indicates if this is an additional supporting document added after the initial submission","x-sensitive-pii":true}}},"x-sensitive-pii":true},"offboarding":{"type":"array","items":{"type":"object","required":["files","reviewer_type","is_employee_notification_required","status"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the document set shared with the employee.","x-sensitive-pii":true},"files":{"type":"array","items":{"type":"object","required":["id","name","type","created_at"],"properties":{"id":{"type":"string","format":"cuid","example":"cmdeh9wzgvihue4r54n2y51p4","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Employee Sign Off Documents","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was updated","x-sensitive-pii":true}}},"x-sensitive-pii":true},"status":{"enum":["AWAITING_REVIEW","AWAITING_FEEDBACK","FEEDBACK_PROVIDED","APPROVED","CHANGES_REQUESTED_BY_CLIENT","CHANGES_REQUESTED_BY_EMPLOYEE","WAIVED_REVIEW","NOT_RESPONDED","CANCELLED"],"type":"string","example":"AWAITING_REVIEW","description":"The current status of the document review","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was updated","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2025-07-22T12:30:00.000Z","nullable":true,"description":"The date and time when the document was reviewed","x-sensitive-pii":true},"reviewed_by":{"type":"string","example":"John Doe","nullable":true,"description":"The name of the reviewer for this document. If the reviewer is not an employee, it will be the name of the client","x-sensitive-pii":true},"reviewer_type":{"enum":["CLIENT","EMPLOYEE"],"type":"string","example":"EMPLOYEE","description":"The type of reviewer for this document","x-sensitive-pii":true},"reviewer_feedback":{"type":"string","example":"Document needs clarification on section 3","nullable":true,"description":"Feedback provided by the reviewer","x-sensitive-pii":true},"notification_instructions":{"type":"string","example":"<p>Please review and provide feedback on the attached documents.</p>","nullable":true,"description":"HTML instructions for the reviewer notification","x-sensitive-pii":true},"is_employee_notification_required":{"type":"boolean","example":true,"description":"Indicates if the employee should be notified about this document review","x-sensitive-pii":true}}},"description":"Document set shared that requires client or employee review","x-sensitive-pii":true}},"description":"Document management structure for termination workflow including review processes and supporting documents","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was updated"},"contract_id":{"type":"string","example":"5B74FnLM","description":"The unique identifier of the employee contract."},"is_sensitive":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if the offboarding request is sensitive. This is used to restrict access to the request only to the requester and the HRX team."},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"enum":["STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE","nullable":false,"description":"The reason for the termination","x-sensitive-pii":true,"x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request","x-sensitive-pii":true,"x-sensitive-employment":true},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"BUSINESS_DAY","policy_type":"Vacation","tracking_periods":[{"used":0,"end_date":"2025-02-28T00:00:00.000Z","start_date":"2024-03-01T00:00:00.000Z"},{"used":0,"end_date":"2024-02-29T00:00:00.000Z","start_date":"2023-03-01T00:00:00.000Z"},{"used":0,"end_date":"2023-02-28T00:00:00.000Z","start_date":"2022-03-01T00:00:00.000Z"}],"scheduled_until_end_date":0}],"additional_details":null,"is_deel_pto_confirmed":true},"nullable":false,"required":["time_offs","is_deel_pto_confirmed"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["unit","policy_type","tracking_periods","scheduled_until_end_date"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR"],"type":"string","example":"BUSINESS_DAY","description":"The unit of measurement for time off tracking","x-sensitive-employment":true},"policy_type":{"type":"string","example":"Vacation","description":"The type of time-off policy","x-sensitive-employment":true},"tracking_periods":{"type":"array","items":{"type":"object","required":["used","end_date","start_date"],"properties":{"used":{"type":"number","example":0,"description":"The amount of time off used in this tracking period","x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-02-28T00:00:00.000Z","description":"The end date of the tracking period","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2024-03-01T00:00:00.000Z","description":"The start date of the tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"scheduled_until_end_date":{"type":"number","example":0,"description":"The amount of time off scheduled until the end date of the current tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"additional_details":{"type":"object","nullable":true,"properties":{"notes":{"type":"string","example":"Additional notes about time off allocation","nullable":true,"description":"Additional notes or comments about the time-off data","x-sensitive-employment":true},"updated_by":{"type":"string","example":"HR Administrator","nullable":true,"description":"The person or system that last updated the time-off data","x-sensitive-pii":true,"x-sensitive-employment":true},"last_updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the time-off data was last updated","x-sensitive-employment":true}},"x-sensitive-employment":true},"is_deel_pto_confirmed":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the PTO allocation has been confirmed by Deel's system","x-sensitive-employment":true}},"description":"Time-off usage data including policy information and tracking periods","x-sensitive-employment":true},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again","x-sensitive-pii":true},"eligible_for_rehire_reason":{"type":"string","example":"Employee is not eligible for rehire due to performance issues","nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligible_for_rehire","x-sensitive-pii":true,"x-sensitive-employment":true}},"x-sensitive-pii":true},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}},"description":"Ok response"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"5B74FnLM","required":true,"description":"The unique identifier of the employee contract."}],"description":"Formally initiates the resignation process for the EOR contract by submitting a resignation request on behalf of the worker.\n\n **Token scopes**: `worker:write`","operationId":"submitEorWorkerResignation-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["reason","desired_end_date","signature"],"properties":{"reason":{"enum":["EMPLOYEE_IS_MOVING_TO_ANOTHER_COUNTRY","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","EMPLOYEE_FOUND_ANOTHER_JOB","EMPLOYEE_NOT_HAPPY_WITH_BENEFITS","EMPLOYEE_NOT_HAPPY_WITH_SALARY","EMPLOYEE_NOT_HAPPY_WITH_THE_ROLE","EMPLOYEE_NOT_HAPPY_WITH_COMPANY_CULTURE","EMPLOYEE_NOT_HAPPY_WITH_DEEL","EMPLOYEE_PROJECT_ENDED","EMPLOYEE_SWITCHING_TO_OTHER_EOR_PROVIDER","EMPLOYEE_LEFT_ROLE_FOR_PERSONAL_MATTERS","EMPLOYEE_MOVING_FROM_EOR_TO_CONTRACTOR_OR_FREELANCE","WORKER_TYPE_CHANGE","PREFERRED_NOT_TO_SAY"],"type":"string","example":"EMPLOYEE_FOUND_ANOTHER_JOB","description":"The reason for the employee's resignation"},"signature":{"type":"string","example":"John Doe","description":"Employee signature"},"reason_detail":{"type":"string","example":"Received an offer with better benefits and career growth opportunities","maxLength":500,"description":"Additional details explaining the resignation reason"},"desired_end_date":{"type":"string","format":"date","example":"2025-12-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"The employee's desired last day of work in YYYY-MM-DD format"},"supporting_documents":{"type":"string","format":"binary","description":"This field allows for uploading multiple files at once. Includes common image formats (JPG, JPEG, PNG, HEIC) and PDF documents."}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/ats/email-templates":{"get":{"path":"/rest/ats/email-templates","tags":["ATS"],"method":"get","summary":"Retrieve a list of published ATS email templates","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","title","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f9cdb75b-1314-42fc-96b4-e6168fd73ed8","description":"Email template unique identifier"},"title":{"type":"string","example":"Default Offer Email Template","description":"Email template title"},"created_at":{"type":"string","format":"date-time","example":"2025-09-17T13:33:04.523Z","description":"Timestamp of when the email template was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-09-17T13:33:04.523Z","description":"Timestamp of when the email template was last updated"}}},"description":"Page of email templates."},"has_more":{"type":"boolean","example":false,"description":"Whether more pages are available."},"next_cursor":{"type":"string","example":"eyJsYXN0Q3JlYXRlZEF0IjoiMjAyNS0wOS0xN1QxMzozMzowNC41MjNaIiwibGFzdElkIjoiYWZmZjRhMzAtMWY0ZS00NTMyLTk0MDItNGJmODk2NDFkMjE4In0=","nullable":true,"description":"Cursor to fetch the next page; null when there are no more pages."},"total_count":{"type":"integer","example":4,"description":"Total number of email templates matching filters."}}}}},"description":"Successfully retrieved email templates"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Bad Request"},"message":{"type":"array","items":{"type":"string"},"example":["limit must not be greater than 100","limit must be a positive number","cursor must be at most 1000 characters","updatedAfter must be a valid ISO 8601 date string"]},"statusCode":{"type":"number","example":400}}}}},"description":"Invalid query parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1000},"example":"eyJsYXN0Q3JlYXRlZEF0IjoiMjAyNS0wNi0xOFQwOToxNzoyMi40NDFaIiwibGFzdElkIjoiMWVhOTlmMzYtZWEzYy00N2QyLWI3NDAtNmFkNTM2ZjU4OTI4In0=","required":false,"description":"Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":25,"required":false,"description":"Maximum number of email templates to return per page"},{"in":"query","name":"updated_after","schema":{"type":"string","format":"date-time"},"example":"2025-06-18T00:00:00.000Z","required":false,"description":"Return only email templates that were updated after this timestamp (ISO 8601 format)"}],"description":"Returns a paginated list of published email templates for the organization, supporting cursor-based pagination and filtering by `updated_after` timestamp.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfPublishedAtsEmailTemplates-v2026-02-11","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/eor/contracts/{contract_id}/offboarding/restricted-dates":{"get":{"path":"/rest/eor/contracts/{contract_id}/offboarding/restricted-dates","tags":["EOR"],"method":"get","summary":"Retrieve restricted offboarding dates","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["earliest_available_end_date","restricted_dates","is_out_work_scheduled_allowed","is_end_date_allowed_on_holidays"],"properties":{"restricted_dates":{"type":"array","items":{"type":"string","format":"date-time","example":"2025-06-20T00:00:00.000Z"},"description":"Dates that are not enabled for selection."},"earliest_available_end_date":{"type":"string","format":"date-time","example":"2025-06-20T00:00:00.000Z","description":"The earliest date that can be selected as the end date."},"is_out_work_scheduled_allowed":{"type":"boolean","example":true,"description":"Whether scheduling out of work is allowed."},"is_end_date_allowed_on_holidays":{"type":"boolean","example":true,"description":"Whether end date selection is allowed on holidays."}}}}}}},"description":"Successful retrieval of restricted dates."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"query","name":"termination_type","schema":{"enum":["TERMINATION","RESIGNATION"],"type":"string","nullable":false},"example":"TERMINATION","required":false,"description":"Type of offboarding."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcd4fg","required":true,"description":"The unique identifier of the employee contract."}],"description":"Returns country-specific dates unavailable for offboarding end-date selection—including weekends and public holidays—along with the earliest available end date; optionally filtered by termination type.\n\n **Token scopes**: `contracts:read`","operationId":"retrieveRestrictedOffboardingDates-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/documents":{"get":{"path":"/rest/eor/contracts/{contract_id}/documents","tags":["EOR"],"method":"get","summary":"Fetch EOR contract documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["document_type"],"properties":{"signature":{"type":"string","example":"Client Signature","nullable":true,"description":"The signature of the client if the document is signed.","x-sensitive-pii":true},"signed_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z","nullable":true,"description":"The date and time the client signed the document if it is signed."},"document_type":{"enum":["FRAMEWORK_AGREEMENT"],"type":"string","example":"FRAMEWORK_AGREEMENT","description":"The type of document. Currently only FRAMEWORK_AGREEMENT is supported."},"eor_signature":{"type":"string","example":"EOR Signature","nullable":true,"description":"The signature of the EOR if the document is signed.","x-sensitive-pii":true},"eor_signed_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z","nullable":true,"description":"The date and time the EOR signed the document if it is signed."},"client_job_title":{"type":"string","example":"Job Title","nullable":true,"description":"The job title of the client if the document is signed.","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}}},"description":"The documents for the given EOR contract"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abc123xyz","required":true,"description":"EOR contract ID"}],"description":"Returns all documents associated with a specific EOR contract.\n\n **Token scopes**: `contracts:read`","operationId":"fetchEorContractDocuments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/reports/payroll/cycles/{cycle_id}/gross-to-net":{"get":{"path":"/rest/reports/payroll/cycles/{cycle_id}/gross-to-net","tags":["Reports"],"method":"get","summary":"Gets G2N report data for a given payroll cycle by it's ID.","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","created_at","updated_at","next_cursor","has_more","items_per_page"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","example":[{"label":"Allowance","value":1200.5,"category":"Gross (Taxable)","sub_category":"Bonus","category_group":"ADDITIONS"},{"label":"Pay Rate","value":5000,"category":"Gross (Taxable)","sub_category":"Base Pay","category_group":"ADDITIONS"}],"properties":{"label":{"type":"string","example":"Allowance","description":"Label of the payroll item.","x-sensitive-employment":true},"value":{"type":"number","example":1200.5,"description":"Value associated with the payroll item.","x-sensitive-employment":true},"category":{"type":"string","example":"Gross (Taxable)","description":"Category of the item.","x-sensitive-employment":true},"sub_category":{"type":"string","example":"Bonus","description":"Sub-category of the item.","x-sensitive-employment":true},"category_group":{"enum":["ADDITIONS","DEDUCTIONS","BENEFITS","INFOS","CONTRIBUTIONS","TOTALS"],"type":"string","example":"DEDUCTIONS","description":"Category group for the reporting label.","x-sensitive-employment":true}}},"description":"List of payroll-related items."},"currency":{"type":"string","example":"USD","description":"Currency associated with the payroll event."},"contract_oid":{"type":"string","example":"72aa50d","description":"Unique identifier for the contract.","x-sensitive-pii":true,"x-sensitive-employment":true},"payment_data":{"type":"object","nullable":true,"properties":{"conversion_rate":{"type":"string","example":"1.08","description":"Conversion rate applied between the payroll currency and the payment currency."},"payment_currency":{"type":"string","example":"EUR","description":"Currency in which the payment is made."}},"description":"Payment details associated with the payroll event. Null if no payment data is available."}}},"description":"List of contracts associated with the payroll event."},"has_more":{"type":"boolean","example":true,"description":"Indicates whether more pages are available."},"created_at":{"type":"string","format":"date-time","example":"2025-10-15T09:12:00Z","description":"Timestamp when the report was generated"},"updated_at":{"type":"string","format":"date-time","example":"2025-10-15T09:12:00Z","description":"Timestamp when the report was updated"},"next_cursor":{"type":"string","example":"cursor_bf35c551","nullable":true,"description":"Pagination cursor to fetch the next page of results."},"items_per_page":{"type":"integer","example":20,"description":"The number of items per page."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameters","description":"Machine-readable error code."},"field":{"type":"string","example":"limit","description":"Field causing the error if applicable."},"message":{"type":"string","example":"Invalid query parameters provided.","description":"Human-readable explanation of the error."}}}}}}}},"description":"Bad Request."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code."},"message":{"type":"string","example":"Payroll event not found.","description":"Error message explaining the resource was not found."}}}}},"description":"Resource not found."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"internal_server_error","description":"Machine-readable error code."},"message":{"type":"string","example":"An unexpected error occurred on the server.","description":"Human-readable explanation of the server error."}}}}}}}},"description":"Internal Server Error."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"description":"Maximum number of items to return. Defaults to 20."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"x5d0c4eax5d0c4eax5d0c4eax5d0c4ea","description":"Cursor for pagination of results."},{"in":"path","name":"cycle_id","schema":{"type":"string","format":"uuid"},"example":"bcde50dc-3540-4f9a-a395-3486d2f54ee8","required":true,"description":"The unique identifier for the payroll event."}],"description":"Returns categorized gross-to-net data — including category group, category, sub-category, and label — for each contract within the payroll cycle identified by `cycle_id`.\n\n **Token scopes**: `payslips:read`","operationId":"getsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["payslips:read"]}]}},"/screenings/kyc/external":{"post":{"path":"/rest/screenings/kyc/external","tags":["Screenings"],"method":"post","summary":"Submit external KYC","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created_at","request_id"],"properties":{"created_at":{"type":"string","format":"date-time","example":"2017-07-21T17:32:28Z","description":"Timestamp when screening was successfully received and processed (ISO 8601)"},"request_id":{"type":"string","example":"64rpWq2xQT225nGMQIaKg","description":"Request identifier for this KYC submission"}}}}}}},"description":"KYC data successfully received"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Submits an external KYC record that combines automated Live ID verification (IDV) with a manual review workflow to satisfy identity verification and compliance requirements.\n\n **Token scopes**: `worker:write`","operationId":"submitExternalKyc-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["first_name","last_name","date_of_birth","kyc_document","selfie_with_id","front","screening_type","screening_status"],"properties":{"back":{"type":"string","format":"binary","description":"Back side file of the KYC document. Required when kyc_document.type equals to either 'driving_license' or 'government_id'. Not needed when equals to 'passport'. Optional when type is 'other'"},"front":{"type":"string","format":"binary","description":"Front side file of the KYC document"},"last_name":{"type":"string","example":"Doe","maxLength":100,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","maxLength":100,"description":"Worker's first name"},"middle_name":{"type":"string","example":"Michael","nullable":true,"maxLength":100,"description":"Worker's middle name (if available)"},"kyc_document":{"type":"object","required":["issuance_country","type","id_number"],"properties":{"type":{"enum":["passport","driving_license","government_id","other"],"type":"string","example":"passport","description":"Type of KYC document (e.g., passport, driver's license)"},"id_number":{"type":"string","example":"X12345678","maxLength":50,"description":"Document identification number"},"document_name":{"type":"string","example":"Work Visa ID","maxLength":100,"description":"Name of the document when type is 'other'"},"issuance_date":{"type":"string","format":"date","example":"2015-06-01","description":"Date when the document was issued (YYYY-MM-DD)"},"expiration_date":{"type":"string","format":"date","example":"2045-06-01","description":"Expiry date of the document (YYYY-MM-DD)"},"issuance_country":{"type":"string","example":"US","maxLength":2,"minLength":2,"description":"Country where the document was issued (ISO 3166‑1 alpha‑2)"}}},"date_of_birth":{"type":"string","format":"date","example":"1985-11-23","description":"Worker's date of birth (YYYY-MM-DD)"},"screening_type":{"enum":["live","manual"],"type":"string","example":"live","description":"Tells your API whether the identity verification check should be performed automatically (“live”) or via human review (“manual”)"},"selfie_with_id":{"type":"string","format":"binary","description":"Selfie file for identity verification"},"screening_status":{"enum":["approved","rejected"],"type":"string","example":"approved","description":"The result of the screening process"}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/eor/workers/contracts/{contract_id}/offboarding/resignation-letter/sign":{"post":{"path":"/rest/eor/workers/contracts/{contract_id}/offboarding/resignation-letter/sign","tags":["EOR"],"method":"post","summary":"Sign Resignation Letter","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the offboarding request"},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"documents":{"type":"object","nullable":false,"required":["supporting","offboarding"],"properties":{"supporting":{"type":"array","items":{"type":"object","required":["id","name","type","created_at","updated_at","is_additional_supporting_document"],"properties":{"id":{"type":"string","format":"cuid","example":"cmddlk1ghehm54l18gejg198r","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Supporting Documentation","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was updated","x-sensitive-pii":true},"is_additional_supporting_document":{"type":"boolean","example":false,"description":"Indicates if this is an additional supporting document added after the initial submission","x-sensitive-pii":true}}},"x-sensitive-pii":true},"offboarding":{"type":"array","items":{"type":"object","required":["files","reviewer_type","is_employee_notification_required","status"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the document set shared with the employee.","x-sensitive-pii":true},"files":{"type":"array","items":{"type":"object","required":["id","name","type","created_at"],"properties":{"id":{"type":"string","format":"cuid","example":"cmdeh9wzgvihue4r54n2y51p4","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Employee Sign Off Documents","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was updated","x-sensitive-pii":true}}},"x-sensitive-pii":true},"status":{"enum":["AWAITING_REVIEW","AWAITING_FEEDBACK","FEEDBACK_PROVIDED","APPROVED","CHANGES_REQUESTED_BY_CLIENT","CHANGES_REQUESTED_BY_EMPLOYEE","WAIVED_REVIEW","NOT_RESPONDED","CANCELLED"],"type":"string","example":"AWAITING_REVIEW","description":"The current status of the document review","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was updated","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2025-07-22T12:30:00.000Z","nullable":true,"description":"The date and time when the document was reviewed","x-sensitive-pii":true},"reviewed_by":{"type":"string","example":"John Doe","nullable":true,"description":"The name of the reviewer for this document. If the reviewer is not an employee, it will be the name of the client","x-sensitive-pii":true},"reviewer_type":{"enum":["CLIENT","EMPLOYEE"],"type":"string","example":"EMPLOYEE","description":"The type of reviewer for this document","x-sensitive-pii":true},"reviewer_feedback":{"type":"string","example":"Document needs clarification on section 3","nullable":true,"description":"Feedback provided by the reviewer","x-sensitive-pii":true},"notification_instructions":{"type":"string","example":"<p>Please review and provide feedback on the attached documents.</p>","nullable":true,"description":"HTML instructions for the reviewer notification","x-sensitive-pii":true},"is_employee_notification_required":{"type":"boolean","example":true,"description":"Indicates if the employee should be notified about this document review","x-sensitive-pii":true}}},"description":"Document set shared that requires client or employee review","x-sensitive-pii":true},"resignation_letter":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the resignation letter"},"signature":{"type":"string","example":"John Doe","nullable":true,"description":"The signature of the resignation letter"},"signed_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the resignation letter was signed"},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the resignation letter was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the resignation letter was updated"}},"x-sensitive-pii":true}},"description":"Document management structure for termination workflow including review processes and supporting documents","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was updated"},"contract_id":{"type":"string","example":"5B74FnLM","description":"The unique identifier of the employee contract."},"is_sensitive":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if the offboarding request is sensitive. This is used to restrict access to the request only to the requester and the HRX team."},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"enum":["STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE","nullable":false,"description":"The reason for the termination","x-sensitive-pii":true,"x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request","x-sensitive-pii":true,"x-sensitive-employment":true},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"BUSINESS_DAY","policy_type":"Vacation","tracking_periods":[{"used":0,"end_date":"2025-02-28T00:00:00.000Z","start_date":"2024-03-01T00:00:00.000Z"},{"used":0,"end_date":"2024-02-29T00:00:00.000Z","start_date":"2023-03-01T00:00:00.000Z"},{"used":0,"end_date":"2023-02-28T00:00:00.000Z","start_date":"2022-03-01T00:00:00.000Z"}],"scheduled_until_end_date":0}],"additional_details":null,"is_deel_pto_confirmed":true},"nullable":false,"required":["time_offs","is_deel_pto_confirmed"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["unit","policy_type","tracking_periods","scheduled_until_end_date"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR"],"type":"string","example":"BUSINESS_DAY","description":"The unit of measurement for time off tracking","x-sensitive-employment":true},"policy_type":{"type":"string","example":"Vacation","description":"The type of time-off policy","x-sensitive-employment":true},"tracking_periods":{"type":"array","items":{"type":"object","required":["used","end_date","start_date"],"properties":{"used":{"type":"number","example":0,"description":"The amount of time off used in this tracking period","x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-02-28T00:00:00.000Z","description":"The end date of the tracking period","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2024-03-01T00:00:00.000Z","description":"The start date of the tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"scheduled_until_end_date":{"type":"number","example":0,"description":"The amount of time off scheduled until the end date of the current tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"additional_details":{"type":"object","nullable":true,"properties":{"notes":{"type":"string","example":"Additional notes about time off allocation","nullable":true,"description":"Additional notes or comments about the time-off data","x-sensitive-employment":true},"updated_by":{"type":"string","example":"HR Administrator","nullable":true,"description":"The person or system that last updated the time-off data","x-sensitive-pii":true,"x-sensitive-employment":true},"last_updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the time-off data was last updated","x-sensitive-employment":true}},"x-sensitive-employment":true},"is_deel_pto_confirmed":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the PTO allocation has been confirmed by Deel's system","x-sensitive-employment":true}},"description":"Time-off usage data including policy information and tracking periods","x-sensitive-employment":true},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again","x-sensitive-pii":true},"eligible_for_rehire_reason":{"type":"string","example":"Employee is not eligible for rehire due to performance issues","nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligible_for_rehire","x-sensitive-pii":true,"x-sensitive-employment":true}},"x-sensitive-pii":true},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}},"description":"Resignation signed successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcd4fg","required":true,"description":"The unique identifier of the employee contract."}],"description":"Records the worker's signature on the resignation letter for the contract, which is required to finalize the resignation process; upon successful submission, the signed letter is queued for PDF generation and further processing.\n\n **Token scopes**: `worker:write`","operationId":"signResignationLetter-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"signature":{"type":"string","example":"John Doe","description":"Employee signature"}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/profiles":{"patch":{"path":"/rest/profiles","tags":["@eng-platform-be"],"method":"patch","summary":"Profiles","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"phone":{"type":"string","example":"+1-800-555-0199","description":"The contact number for the profile."},"currency":{"type":"string","example":"USD","description":"The preferred currency for the profile."},"timezone":{"type":"string","example":"UTC","description":"The timezone of the profile."},"last_name":{"type":"string","example":"Doe","description":"The last name of the profile."},"first_name":{"type":"string","example":"John","description":"The first name of the profile."},"preferred_name":{"type":"string","example":"Johnnie","description":"The preferred name of the profile."}}}}}}},"description":"Successfully updated profile."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message explaining what went wrong."}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Applies a partial update to the authenticated user's profile, modifying only the fields supplied in the request body.\n\n **Token scopes**: `profile:write`, `profile:read`","operationId":"profiles-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"phone":{"type":"string","example":"+1-800-555-0199","description":"The contact number for the profile."},"currency":{"type":"string","example":"USD","description":"The preferred currency for the profile."},"timezone":{"type":"string","example":"UTC","description":"The timezone of the profile."},"last_name":{"type":"string","example":"Doe","description":"The last name of the profile."},"first_name":{"type":"string","example":"John","description":"The first name of the profile."},"preferred_name":{"type":"string","example":"Johnnie","description":"The preferred name of the profile."}}}}}}},"required":true,"description":"Update profile information for the authenticated user"},"security":[{"deelToken":[]},{"oauth2":["profile:write","profile:read"]}]}},"/eor/workers/compliance-documents/{document_id}/acknowledgement":{"post":{"path":"/rest/eor/workers/compliance-documents/{document_id}/acknowledgement","tags":["EOR"],"method":"post","summary":"Acknowledge a compliance document","responses":{"204":{"description":"Document was acknowledged successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"document_id","schema":{"type":"string"},"example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","required":true,"description":"The unique identifier of the compliance document."}],"description":"Submits the worker's consent acknowledgement for a compliance document that requires it. This operation is required before documents marked as needing acknowledgement are considered complete.\n\n **Token scopes**: `worker:write`","operationId":"acknowledgeAComplianceDocument-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/contracts/{contract_id}/signatures":{"post":{"path":"/rest/contracts/{contract_id}/signatures","tags":["Contracts"],"method":"post","summary":"Sign a contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean"}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Signs a contract on behalf of the client (employer), advancing the contract through the hiring workflow. When the contract is awaiting the client signature, it transitions to a pending-contractor-signature state. Can also be used to sign a pending amendment on an already active contract.\n\n **Token scopes**: `contracts:write`","operationId":"signContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["client_signature"],"properties":{"client_signature":{"type":"string","minLength":2,"description":"Signature of client."},"contract_template_id":{"anyOf":[{"type":"number"},{"type":"string"}],"description":"Please use null to use default Deel contract template; otherwise you can use the template you created and customized. If template ID is not in payload, template stays unchanged."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/eor/contracts/amendments/data-points/configuration":{"get":{"path":"/rest/eor/contracts/amendments/data-points/configuration","tags":["EOR"],"method":"get","summary":"Get amendment data points configuration by country","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","total_count","has_more","next_cursor"],"properties":{"data":{"type":"object","required":["settings"],"properties":{"settings":{"type":"array","items":{"type":"object","required":["id","created_at","updated_at","country","data_points"],"properties":{"id":{"type":"string","format":"uuid","example":"fe883976-e331-40c9-b710-4af84109ae97","nullable":true,"description":"Database record ID for this country's settings. null when no settings row exists and defaults are returned."},"country":{"type":"string","example":"AE","description":"ISO 3166-1 alpha-2 country code"},"created_at":{"type":"string","format":"date-time","example":"2024-01-04T05:33:29.947Z","nullable":true,"description":"Timestamp when the country settings row was created. null when no DB row exists."},"updated_at":{"type":"string","format":"date-time","example":"2026-04-30T12:04:07.558Z","nullable":true,"description":"Timestamp when the country settings row was last updated. null when no DB row exists."},"data_points":{"type":"array","items":{"type":"object","required":["item","is_enabled","types"],"properties":{"item":{"enum":["SALARY","START_DATE","HOLIDAYS","SCOPE","JOB_TITLE","VARIABLE_COMPENSATIONS","CUSTOM"],"type":"string","example":"SALARY","description":"Data point identifier"},"types":{"type":"array","items":{"type":"object","required":["amendment_item","type"],"properties":{"type":{"enum":["AUTOMATED","INSTANT","LEGAL","NO_AUTOMATION","DISABLED_AMENDMENTS"],"type":"string","example":"LEGAL","description":"Processing type. AUTOMATED means no explicit configuration — processed automatically."},"amendment_item":{"type":"string","example":"SALARY_INCREASE","description":"Amendment item identifier"}}},"description":"Processing type configuration per amendment item within this data point"},"metadata":{"type":"object","example":{"possible_options":["START_DATE","SALARY","JOB_TITLE","OTHER"]},"properties":{"possible_options":{"type":"array","items":{"enum":["START_DATE","END_DATE","BENEFITS","PROBATION_PERIOD","VARIABLE_COMPENSATIONS","INCENTIVE_PLAN","SALARY","FIXED_ALLOWANCES","JOB_TITLE","SENIORITY_ID","SENIORITY_DATE","JOB_CODE","JOB_CATEGORY","JOB_SCOPE","EMPLOYMENT_TYPE","PERSONAL_DATA","OTHER"],"type":"string"},"description":"Allowed subject values for a custom amendment item"}},"description":"Additional configuration for the data point. Present only for CUSTOM."},"is_enabled":{"type":"boolean","example":true,"description":"Whether at least one amendment item within this data point is enabled"}}},"description":"Amendment data points configured for this country"}}},"description":"List of countries with their amendment data points configuration"}}},"has_more":{"type":"boolean","example":true,"description":"Whether more pages are available"},"next_cursor":{"type":"string","example":"eyJsYXN0Q291bnRyeSI6IkFFIiwidG90YWxDb3VudCI6MiwibGltaXQiOjF9","nullable":true,"description":"Opaque cursor to pass as the cursor query param to fetch the next page. null when on the last page."},"total_count":{"type":"integer","example":2,"description":"Total number of countries with amendment settings in the database"}}}}},"description":"Data points configuration per country"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"countries","schema":{"type":"array","items":{"type":"string","maxLength":2,"minLength":2}},"example":["DE","FR"],"required":false,"description":"Optional list of ISO 3166-1 alpha-2 country codes to filter results. Returns all countries if omitted."},{"in":"query","name":"enabled","schema":{"type":"boolean"},"example":true,"required":false,"description":"When true, returns only enabled data points. A data point is enabled if at least one of its items is not DISABLED_AMENDMENTS."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of results to return per page."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJsYXN0Q291bnRyeSI6IkRFIn0","required":false,"description":"Cursor from a previous response to fetch the next page of results."}],"description":"Returns amendment data points configuration per country. If no countries filter is provided, returns configuration for all available countries. If no configuration exists for a country, all data points are treated as enabled.\n\n **Token scopes**: `contracts:read`","operationId":"getAmendmentDataPointsConfigurationByCountry-v2026-05-06","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/workers/contracts/{contract_id}/employee-agreement/download":{"get":{"path":"/rest/eor/workers/contracts/{contract_id}/employee-agreement/download","tags":["EOR"],"method":"get","summary":"Download employee agreement PDF","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"url":{"type":"string","example":"https://api-prod.letsdeel.com/employee-agreement/12345.pdf","description":"URL to requested employee agreement to download."},"expires_at":{"type":"string","format":"date-time","example":"2020-03-31T10:58:49.780Z","description":"Expiration date time of download URL."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"Employment Agreement version mismatch.","description":"The error message"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"http","description":"The source handler which produced the returned error"},"status":{"type":"number","example":409,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Employment Agreement version mismatch."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"version","schema":{"type":"string","maxLength":20,"minLength":20},"example":"cdf4f572eb13a5eaf46d","required":false,"description":"Optional version of the Employment Agreement to be signed. If informed and in the case of a mismatch, the API will return an error."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"The unique identifier of the employee contract."}],"description":"Returns a time-limited download URL for the employee agreement PDF associated with the given `contract_id`. When the optional `version` parameter is supplied and a version mismatch is detected, behaviour diverges from the default resolution path.\n\n **Token scopes**: `worker:read`","operationId":"downloadEmployeeAgreementPdf-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/benefits":{"get":{"path":"/rest/eor/benefits","tags":["EOR"],"method":"get","summary":"Retrieve Benefits by Country","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["name","providers","description","is_mandatory","is_discriminatory"],"properties":{"name":{"type":"string","example":"Health Insurance","nullable":false,"description":"The name of the benefit."},"providers":{"type":"array","items":{"type":"object","required":["id","name","type","is_unisure","plans","country","currency","attachments","home_page_url","contribution_options"],"properties":{"id":{"type":"string","format":"uuid","example":"5f4d1f3f-4b3b-4b1e-8f4f-3b1f4f1b3b4b","nullable":false,"description":"ID of the benefit provider."},"name":{"type":"string","example":"Provider A","nullable":false,"description":"The name of the benefit provider."},"type":{"type":"string","example":"Insurance","nullable":false,"description":"Benefit type."},"plans":{"type":"array","items":{"type":"object","required":["id","name","price","attachments"],"properties":{"id":{"type":"string","example":"5f4d1f3f-4b3b-4b1e-8f4f-3b1f4f1b3b4b","nullable":false,"description":"The unique ID of the plan."},"name":{"type":"string","example":"Premium Employee Plan","nullable":false,"description":"The name of the plan."},"price":{"type":"number","example":1000,"nullable":false,"description":"The price of the plan."},"attachments":{"type":"array","items":{"type":"object","required":["id","label","url"],"properties":{"id":{"type":"string","example":"5f4d1f3f-4b3b-4b1e-8f4f-3b1f4f1b3b4b","nullable":false,"description":"The unique ID of the attachment."},"url":{"type":"string","example":"https://www.provider-a.com/attachments/Spain_Benefits_Snapshot.pdf","nullable":false,"description":"The url of the attachment."},"label":{"type":"string","example":"Spain_Benefits_Snapshot.pdf","nullable":false,"description":"The label of the attachment."}}}}}}},"country":{"type":"string","example":"US","nullable":false,"description":"Country code."},"currency":{"type":"string","example":"USD","nullable":false,"description":"Currency."},"is_unisure":{"type":"boolean","example":true,"nullable":false,"description":"Indicates if Unisure."},"attachments":{"type":"array","items":{"type":"object","required":["id","label","url"],"properties":{"id":{"type":"string","example":"5f4d1f3f-4b3b-4b1e-8f4f-3b1f4f1b3b4b","nullable":false,"description":"The unique ID of the attachment."},"url":{"type":"string","example":"https://www.provider-a.com/attachments/Spain_Benefits_Snapshot.pdf","nullable":false,"description":"The url of the attachment."},"label":{"type":"string","example":"Spain_Benefits_Snapshot.pdf","nullable":false,"description":"The label of the attachment."}}}},"client_info":{"type":"string","example":"You're now offering this employee Flexible Retribution that includes meals, transport and daycare tax free.","nullable":true,"description":"Client information."},"employee_info":{"type":"string","example":"Your company is now offering supplemental benefits.","nullable":true,"description":"Employee information."},"home_page_url":{"type":"string","example":"https://www.provider-a.com","nullable":false,"description":"The home page URL of the benefit provider."},"max_contribution":{"type":"number","example":10,"nullable":true,"description":"Maximum contribution."},"min_contribution":{"type":"number","example":10,"nullable":true,"description":"Minimum contribution."},"contribution_options":{"type":"array","items":{"type":"object","required":["id","amount"],"properties":{"id":{"type":"string","example":"5f4d1f3f-4b3b-4b1e-8f4f-3b1f4f1b3b4b","nullable":false,"description":"Unique ID of the contribution."},"amount":{"type":"number","example":1000,"nullable":false,"description":"Amount."}}}}}}},"description":{"type":"string","example":"Provide a cost coverage or subsidy for employees relating to Meals or Grocery.","nullable":false,"description":"The description of the benefit."},"is_mandatory":{"type":"boolean","example":true,"nullable":false,"description":"Indicates if the benefit is mandatory."},"is_discriminatory":{"type":"boolean","example":true,"nullable":false,"description":"Indicates if the benefit is discriminatory."}}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"country_code","schema":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2},"example":"US","required":true,"description":"Country code."},{"in":"query","name":"work_visa","schema":{"type":"boolean"},"example":true,"required":true,"description":"Indicates if work visa is required."},{"in":"query","name":"work_hours_per_week","schema":{"type":"number","maximum":168,"minimum":0},"example":40,"required":true,"description":"Working hours per week"},{"in":"query","name":"employment_type","schema":{"enum":["Full-time","Part-time"],"type":"string"},"example":"Full-time","required":true,"description":"Type of employment"},{"in":"query","name":"team_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The ID of the team the worker belongs to."},{"in":"query","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The ID of the legal entity."}],"description":"Returns benefits available in a specific country, scoped by work visa requirement, weekly work hours, employment type, team, and legal entity.\n\n **Token scopes**: `benefits:read`","operationId":"retrieveBenefitsByCountry-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["benefits:read"]}]}},"/v2/time_tracking/shifts/raw":{"post":{"path":"/rest/v2/time_tracking/shifts/raw","tags":["Time Tracking Shifts"],"method":"post","summary":"Create raw time tracking shifts","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["external_id","contract_id","date_of_work","meta"],"properties":{"meta":{"type":"object","properties":{"end":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"End date"},"time":{"type":"string","example":"08:00","description":"End time"},"is_rest_day":{"type":"boolean","example":false,"description":"Is rest day"},"is_public_holiday":{"type":"boolean","example":false,"description":"Is public holiday"}},"description":"End time details of the shift."},"start":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Start date"},"time":{"type":"string","example":"08:00","description":"Start time"},"is_rest_day":{"type":"boolean","example":false,"description":"Is rest day"},"is_public_holiday":{"type":"boolean","example":false,"description":"Is public holiday"}},"description":"Start time details of the shift."},"breaks":{"type":"array","items":{"type":"object","properties":{"end":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Break end date"},"time":{"type":"string","example":"21:00","description":"Break end time"}},"description":"End time details of the break."},"start":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Break start date"},"time":{"type":"string","example":"21:00","description":"Break start time"}},"description":"Start time details of the break."},"is_paid":{"type":"boolean","example":false,"description":"Is break paid"}}},"description":"List of break periods within the shift."},"approval_date":{"type":"string","example":"2023-10-02","description":"Approval date of the shift."}},"description":"Metadata containing detailed information about the shift timing, breaks, and approval status."},"created_at":{"type":"string","example":"2024-10-08T12:08:29.695Z","description":"Creation timestamp of the shift."},"updated_at":{"type":"string","example":"2024-10-08T12:08:29.695Z","description":"Last update timestamp of the shift."},"contract_id":{"type":"string","example":"1234","description":"Contract identifier."},"description":{"type":"string","example":"This is a sample shift description.","description":"Description of the shift."},"external_id":{"type":"string","example":"shift_123456r","description":"Unique identifier of the shift."},"date_of_work":{"type":"string","example":"2023-10-01","description":"Date of the shift."}}},"description":"List of created shift records."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"example":{"errors":[{"code":"bad_request","path":"data.shifts.0.external_id","message":"Required"}]}}},"description":"Bad Request - Validation error in the request body."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Create raw shifts for the specified contract ID. “Raw shifts” refers to uncategorized entries—simply submit the clock-in and clock-out times. The classification of those hours (e.g., regular or overtime) will be handled by the Deel platform.\n\n **Token scopes**: `time-tracking:write`","operationId":"createRawTimeTrackingShifts-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["contract_id","shifts"],"properties":{"shifts":{"type":"array","items":{"type":"object","required":["external_id","date_of_work","meta"],"properties":{"meta":{"type":"object","properties":{"end":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"End date"},"time":{"type":"string","example":"20:00","description":"End time"},"is_rest_day":{"type":"boolean","example":false,"description":"Is rest day"},"is_public_holiday":{"type":"boolean","example":false,"description":"Is public holiday"}},"description":"End time details of the shift."},"start":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Start date"},"time":{"type":"string","example":"20:00","description":"Start time"},"is_rest_day":{"type":"boolean","example":false,"description":"Is rest day"},"is_public_holiday":{"type":"boolean","example":false,"description":"Is public holiday"}},"description":"Start time details of the shift."},"breaks":{"type":"array","items":{"type":"object","properties":{"end":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Break end date"},"time":{"type":"string","example":"20:00","description":"Break end time"}},"description":"End time details of the break."},"start":{"type":"object","properties":{"date":{"type":"string","example":"2023-10-01","description":"Break start date"},"time":{"type":"string","example":"20:00","description":"Break start time"}},"description":"Start time details of the break."},"is_paid":{"type":"boolean","example":false,"description":"Is break paid"}}},"description":"List of break periods within the shift."},"approval_date":{"type":"string","example":"2023-10-01","description":"Approval date"}},"description":"Metadata containing detailed information about the shift timing, breaks, and approval status."},"description":{"type":"string","example":"sample description","description":"Description of the shift."},"external_id":{"type":"string","example":"shift_123456","description":"Extrenal ID of the shift."},"date_of_work":{"type":"string","example":"2023-10-01","description":"Date of shift work"}}},"description":"Array of shift records to be created."},"contract_id":{"type":"string","example":"397w2dy","description":"Contract ID associated with the shifts."}},"description":"Request data containing contract ID and shifts to be created."}}}}},"description":"Request body to create time tracking raw shifts."},"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]}},"/time-offs/policy/{policy_id}/assignments":{"get":{"path":"/rest/time-offs/policy/{policy_id}/assignments","tags":["Time Off"],"method":"get","summary":"Get Profiles Assigned to Policy","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_next_page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["hris_profile_id","name","email","worker_type","country"],"properties":{"name":{"type":"string","example":"Jane Doe","description":"Full name of the assigned worker"},"email":{"type":"string","format":"email","example":"jane.doe@example.com","description":"Personal email address of the assigned worker"},"state":{"type":"string","example":"CA","nullable":true,"description":"State or region code of the assigned worker's employment, if applicable"},"country":{"type":"string","example":"US","nullable":true,"description":"ISO 3166-1 alpha-2 country code of the assigned worker's employment. Null if not set"},"work_email":{"type":"string","format":"email","example":"jane.doe@company.com","nullable":true,"description":"Work email address of the assigned worker, if set"},"worker_type":{"enum":["milestones_contractor","payg_contractor","time_based_contractor","eor","direct_employee","hris_direct_employee","peo","hris_placeholder","hris_direct_contractor"],"type":"string","example":"hris_direct_employee","description":"Type of worker relationship the assigned profile has with the organization"},"hris_profile_id":{"type":"string","format":"uuid","example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","nullable":true,"description":"HRIS profile UID of the assigned worker. Null if the assigned profile has no linked HRIS profile"}}},"description":"Profiles currently assigned to the policy"},"next":{"type":"string","nullable":true,"description":"Opaque cursor to fetch the next page of results. Null when there are no more results"},"has_next_page":{"type":"boolean","example":true,"description":"Indicates if there are more results available beyond the current page"}}}}},"description":"Paginated list of profiles assigned to the policy."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Bad request (invalid policy ID format or page_size)."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Unauthorized (missing or invalid token)."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Forbidden (insufficient permissions)."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Not found (policy not found for this organization)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Server error."}},"parameters":[{"in":"path","name":"policy_id","schema":{"type":"string","format":"uuid"},"example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","required":true,"description":"Policy UID, as returned by the Get Policies for Organization endpoint"},{"in":"query","name":"page_size","schema":{"type":"integer","maximum":100,"minimum":1},"example":20,"description":"Items per page (max 100)"},{"in":"query","name":"next","schema":{"type":"string"},"example":"eyJpZCI6IjEyMyJ9","description":"Pagination cursor"}],"description":"Use this after resolving a policy_id via Get All Policies to see which workers are covered by a specific time-off policy — for example, to verify coverage before running payroll, audit compliance, or reconcile assignments following a policy change. Paginate through large populations with page_size and the next cursor.\n\n **Token scopes**: `time-off:read`","operationId":"getProfilesAssignedToPolicy-v2026-09-09","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/timesheets/presets":{"post":{"path":"/rest/timesheets/presets","tags":["Projects"],"method":"post","summary":"Create Hourly Report Preset","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the newly created hourly report preset"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Work statement is not in allowed status"}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Forbidden"}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates a new hourly report preset, returning the assigned id upon success.\n\n **Token scopes**: `timesheets:write`","operationId":"createHourlyReportPreset-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["work_statement_id","hourly_report_root_preset_id"],"properties":{"file":{"type":"string","format":"binary","example":"report_template.pdf","nullable":true,"description":"Optional file attachment for the hourly report preset"},"rate":{"type":"number","example":75.5,"minimum":0.1,"description":"The hourly rate for this preset (must be greater than 0)"},"title":{"type":"string","example":"Client Project Hours Q1 2024","maxLength":255,"description":"The title of the hourly report preset"},"description":{"type":"string","example":"Quarterly timesheet template for tracking billable hours on the client's main project","nullable":true,"maxLength":30000,"description":"A detailed description of the hourly report preset's purpose and contents"},"work_statement_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the associated work statement"},"hourly_report_root_preset_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the root preset this report is based on"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]}},"/industries":{"get":{"path":"/rest/industries","tags":["Legal Entities"],"method":"get","summary":"List all industry subcategories","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","category_name","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"db82bb9c-4820-48a7-8f1a-799b509874e3","description":"UUID of the subcategory."},"name":{"type":"string","example":"Crop Production","description":"Name of the industry subcategory."},"created_at":{"type":"string","format":"date-time","example":"2024-05-12T14:23:00Z","description":"Date and time when the subcategory was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-06-01T09:12:00Z","description":"Date and time when the subcategory was last updated."},"category_name":{"type":"string","example":"Agriculture","nullable":true,"description":"Name of the associated industry category."}}},"description":"List of industry subcategories."},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more results available."},"next_cursor":{"type":"string","example":"abc123==","nullable":true,"description":"Cursor to fetch the next page of results."},"total_count":{"type":"integer","example":120,"description":"Total number of results matching the query."}}}}},"description":"List of industry subcategories."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","minimum":1},"example":10,"description":"Maximum number of items to return per page."},{"in":"query","name":"order","schema":{"enum":["ASC","DESC"],"type":"string","default":"ASC"},"example":"ASC","description":"Sorting order of the results."},{"in":"query","name":"sort_by","schema":{"enum":["subcategoryName","categoryName"],"type":"string","default":"categoryName"},"example":"categoryName","description":"Field used to sort the results."},{"in":"query","name":"cursor","schema":{"type":"string","nullable":true},"example":"eyJpZCI6IjEyMyIsInN1YmNhdGVnb3J5TmFtZSI6IlNvZnR3YXJlIn0=","description":"Cursor used for paginating to the next page of results."}],"description":"Lists industry subcategories with their parent category details and NAICS codes, supporting cursor-based pagination and sorting by category or subcategory name.\n\n **Token scopes**: `legal-entity:read`","operationId":"listAllIndustrySubcategories-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/lookups":{"get":{"path":"/rest/lookups","tags":["Lookups"],"method":"get","summary":"Retrieve lookup information for currencies, countries, entity types, etc","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","example":"United States","description":"The label for the lookup item (e.g., country name, entity type)."},"value":{"type":"string","example":"US","description":"The value associated with the lookup item (e.g., ISO code, type identifier)."}}}}}}}},"description":"A list of lookup information based on the requested type."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Invalid request parameters.","description":"Error message explaining what went wrong."}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"documents","schema":{"enum":["sicNumbers","entityTypes","countries"],"type":"string"},"example":"countries","required":true,"description":"The type of lookup data to retrieve. Options are `currencies`, `countries`, `entity_types`, and `sic_numbers`."}],"description":"Returns reference data of the type specified by the `documents` query parameter; supported values are `currencies`, `countries`, `entity_types`, and `sic`.\n\n **Token scopes**: `legal-entity:read`","operationId":"getLookups-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/eor/workers/{worker_id}/payslips":{"get":{"path":"/rest/eor/workers/{worker_id}/payslips","tags":["EOR"],"method":"get","summary":"Retrieve employee payslip records","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","from","to","status"],"properties":{"id":{"type":"string","example":"oid123","description":"Unique identifier for the payslip record."},"to":{"type":"string","format":"date","example":"2025-01-31","nullable":true,"description":"End date of the payment period."},"from":{"type":"string","format":"date","example":"2025-01-01","description":"Start date of the payment period."},"status":{"type":"string","example":"PUBLISHED","description":"Status of the payslip (e.g., 'Pending', 'Processed')."}}}}}},"examples":{"success":{"value":{"data":[{"id":"pay-001","to":"2023-10-31T23:59:59Z","from":"2023-10-01T00:00:00Z","status":"PUBLISHED"},{"id":"pay-002","to":"2023-11-30T23:59:59Z","from":"2023-11-01T00:00:00Z","status":"PUBLISHED"}]},"summary":"Example of a successful response."}}}},"description":"Payslip records successfully retrieved."},"400":{"content":{"application/json":{"examples":{"invalidWorkerId":{"value":{"error":"The provided worker ID is invalid. Ensure it is a valid UUID."},"summary":"Invalid worker ID format."}}}},"description":"Invalid request. The worker ID format is incorrect."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"examples":{"notFound":{"value":{"error":"No payslip records found for the specified worker ID."},"summary":"Worker ID not found."}}}},"description":"Worker not found or no payslips available."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The ID of the worker whose payslips are being retrieved."}],"description":"Returns a list of payslip records for the specified worker.\n\n **Token scopes**: `payslips:read`","operationId":"retrieveEmployeePayslipRecords-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["payslips:read"]}]}},"/hris/worker_relations/profile":{"post":{"path":"/rest/hris/worker_relations/profile","tags":["Worker Relations"],"method":"post","summary":"Create a worker relation","responses":{"201":{"content":{"application/json":{}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"parent_hris_profile_id"},"message":{"type":"string","example":"\"parent_hris_profile_id\" is required"}}}}}}}},"description":"Bad request - The request body is invalid, missing required fields, or a circular relationship was detected."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"not_found"},"field":{"type":"string","example":"parent_hris_profile_id"},"message":{"type":"string","example":"HRIS profile was not found."}}}}}}}},"description":"Not found - The parent profile, child profile, or relationship type was not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Establishes a hierarchical relationship between a worker and one or more subordinates. The request body must identify both the parent worker and the subordinate profiles to be linked.\n\n **Token scopes**: `profile:write`","operationId":"createAWorkerRelation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["parent_hris_profile_id","child_hris_profile_ids","hris_relationship_type_id"],"properties":{"child_hris_profile_ids":{"type":"array","items":{"type":"string","format":"uuid"},"example":["d290f1ee-6c54-4b01-90e6-d701748f0851","d290f1ee-6c54-4b01-90e6-d701748f0852"],"minItems":1,"description":"An array containing the secondary HrisProfiles IDs."},"parent_hris_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Primary HrisProfile ID"},"hris_relationship_type_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the Worker Relation Type."}},"description":"The request payload containing the relationship details."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/hris/positions/apply_changes":{"post":{"path":"/rest/hris/positions/apply_changes","tags":["Positions"],"method":"post","summary":"Apply changes to positions.","responses":{"204":{"description":"Successful operation"},"400":{"description":"Bad Request. Invalid input parameters."},"401":{"description":"Unauthorized. Invalid or expired token."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"description":"Internal Server Error. Could not process the request."}},"parameters":[],"description":"Applies a batch of add, edit, and delete operations to positions within a single request. Multiple operation types may be submitted together; callers should ensure each operation in the batch targets a valid, existing position where applicable.\n\n **Token scopes**: `profile:write`","operationId":"applyChangesToPositions-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["profile_id"],"properties":{"add":{"type":"array","items":{"type":"object","required":["team_id"],"properties":{"role_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","nullable":true,"description":"Id of the role to be assigned to the position."},"team_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Id of the team to be assigned to the position."},"is_supportive":{"type":"boolean","example":true,"description":"Flag to indicate if the position is supportive."}}}},"edit":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Id of the position to be edited."},"role_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","nullable":true,"description":"Id of the role to be assigned to the position."},"is_supportive":{"type":"boolean","example":false,"description":"Flag to indicate if the position is supportive."}}}},"delete":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Id of the position to be deleted."}}}},"profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Id of the profile to which the positions belong."}},"description":"The request payload containing the position changes to apply."}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/contracts/{contract_id}/amendments":{"get":{"path":"/rest/contracts/{contract_id}/amendments","tags":["Contracts"],"method":"get","summary":"List contract amendments","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","total_count","cursor"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status","sign_status","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"Unique identifier for the work statement."},"rate":{"type":"number","example":5000,"nullable":true,"description":"Compensation rate per scale. The amount paid according to the specified scale (e.g., 5000 per month).","x-sensitive-pii":true},"scale":{"enum":["hourly","daily","weekly","monthly","biweekly","semimonthly","custom"],"type":"string","example":"monthly","nullable":true,"description":"Payment frequency/scale that defines how often the rate is paid."},"status":{"enum":["INITIAL","PENDING","ACTIVE","OUTDATED","APPROVED","DECLINED"],"type":"string","example":"ACTIVE","description":"Current status of the work statement."},"created_at":{"type":"string","format":"date-time","example":"2024-01-15T10:00:00.000Z","description":"Timestamp when the work statement was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-01-20T14:30:00.000Z","description":"Timestamp when the work statement was last updated."},"sign_status":{"enum":["PENDING","WAITING_FOR_APPROVAL","APPROVED","DECLINED"],"type":"string","example":"APPROVED","description":"Current sign status of the work statement."},"contract_name":{"type":"string","example":"Software Development Contract","nullable":true,"description":"Name of the associated contract."},"contract_type":{"enum":["milestones","time_based","ongoing_time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks"],"type":"string","example":"ongoing_time_based","nullable":true,"description":"Type of the associated IC contract."},"currency_code":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":true,"maxLength":3,"minLength":3,"description":"Currency code in ISO 4217 format (e.g., USD, EUR, GBP)."},"effective_date":{"type":"string","format":"date-time","example":"2024-02-01","nullable":true,"description":"Effective date when the work statement becomes active."}}},"description":"List of work statements (amendments)."},"cursor":{"type":"string","example":"eyJjcmVhdGVkX2F0IjoiMjAyNC0wMS0xNVQxMDowMDowMC4wMDBaIiwicHVibGljX2lkIjoiZGVmNDU2In0","nullable":true,"description":"Cursor for the next page of results."},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more work statements available."},"total_count":{"type":"integer","example":150,"description":"Total number of work statements matching the filters."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["INITIAL","PENDING","ACTIVE","OUTDATED","APPROVED","DECLINED"],"type":"string"}},"example":["PENDING","ACTIVE"],"description":"Filter by work statement status."},{"in":"query","name":"sign_statuses","schema":{"type":"array","items":{"enum":["PENDING","WAITING_FOR_APPROVAL","APPROVED","DECLINED"],"type":"string"}},"example":["PENDING","APPROVED"],"description":"Filter by work statement sign status."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":10,"description":"Maximum number of work statements to return."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJjcmVhdGVkX2F0IjoiMjAyNC0wMS0xNVQxMDowMDowMC4wMDBaIiwicHVibGljX2lkIjoiYWJjMTIzIn0","description":"Cursor for pagination."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Unique identifier of the contract"}],"description":"Retrieves the paginated list of amendments associated with a given contract, with optional filtering by amendment status and sign status.\n\n **Token scopes**: `contracts:read`, `contracts:write`","operationId":"listContractAmendments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","contracts:write"]}]},"post":{"path":"/rest/contracts/{contract_id}/amendments","tags":["Contractors"],"method":"post","summary":"Amend contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created","id","status","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":false,"description":"The unique identifier of the created amendment."},"rate":{"type":"number","example":100,"nullable":true,"description":"Rate/amount for the amended work statement.","x-sensitive-pii":true},"scale":{"enum":["hourly","daily","weekly","monthly","biweekly","semimonthly","custom",null],"type":"string","example":"hourly","nullable":true,"description":"Payment scale for the amended work statement."},"status":{"enum":["initial","pending","active","outdated","approved","declined"],"type":"string","example":"pending","nullable":false,"description":"Status of the amended work statement."},"created":{"type":"boolean","example":true,"nullable":false,"description":"Contract has been successfully amended."},"job_title":{"type":"string","example":"Software Engineer","nullable":true,"description":"Job title for the amended work statement."},"worker_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440001","nullable":true,"description":"The unique identifier of the worker."},"created_at":{"type":"string","format":"date-time","example":"2023-12-01T10:30:00Z","nullable":false,"description":"Timestamp when the work statement was created."},"updated_at":{"type":"string","format":"date-time","example":"2023-12-01T15:45:00Z","nullable":false,"description":"Timestamp when the work statement was last updated."},"currency_code":{"type":"string","example":"USD","nullable":false,"description":"Currency code for the amended work statement."},"scope_of_work":{"type":"string","example":"Full-stack development","nullable":true,"description":"Scope of work for the amended work statement."},"special_clause":{"type":"string","example":"Remote work allowed","nullable":true,"description":"Special clause for the amended work statement."},"termination_notice_days":{"type":"integer","example":30,"nullable":false,"description":"Number of days notice required for termination. Defaults to 10 if not provided."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"The Contractor Amendments API only supports IC (Contractor) contracts.","description":"Human-readable explanation of the error"}}}}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"An unexpected error occurred while processing the request.","description":"Human-readable explanation of the error"}}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"The unique identifier of the employee contract."}],"description":"Submits an amendment to modify the details of an existing contract. If the contract is already signed or active, the amendment must be approved and re-signed before the changes take effect.\n\n **Token scopes**: `contracts:write`","operationId":"amendContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"scale":{"enum":["hourly","daily","weekly","monthly","biweekly","semimonthly","custom"],"type":"string","example":"daily","description":"Defines the scale at which the amount is paid. For example, enter 'hourly' to define the amount per hour. This field can be excluded when creating a Pay-as-you-go task-based or Milestone contracts."},"amount":{"type":"number","example":100,"minimum":1,"nullable":false,"description":"Amount to be paid per scale."},"cycle_end":{"type":"number","example":31,"maximum":31,"minimum":1,"description":"Day of the month when the cycle ends."},"frequency":{"enum":["weekly","monthly","biweekly","semimonthly","calendar-month"],"type":"string","example":"monthly","description":"Scale of the invoice cycle."},"start_date":{"type":"string","format":"date","example":"2025-01-15","description":"The contract start date in ISO-8601 format (YYYY-MM-DD). Updates the contract's effective date."},"job_title_id":{"oneOf":[{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},{"type":"integer","format":"int64","example":1,"description":"Unique identifier of this resource."}]},"seniority_id":{"oneOf":[{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},{"type":"integer","format":"int64","example":1,"description":"Unique identifier of this resource."}]},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Currency code in ISO 4217 format."},"first_payment":{"type":"number","example":100,"minimum":0,"nullable":false,"description":"Amount to be paid as the first payment."},"scope_of_work":{"type":"string","example":"Design a logo.","nullable":false,"description":"Text to describe the scope of work of the contract."},"cycle_end_type":{"enum":["DAY_OF_WEEK","DAY_OF_LAST_WEEK","DAY_OF_MONTH"],"type":"string","example":"DAY_OF_WEEK","description":"Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31."},"effective_date":{"type":"string","format":"date","example":"1999-12-31","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"job_title_name":{"type":"string","example":"3D Designer","nullable":false,"description":"You can enter new job title."},"special_clause":{"type":"string","example":"This is a special clause.","nullable":false,"description":"Text to describe any special clause in contract."},"payment_due_days":{"type":"number","example":30,"maximum":90,"minimum":0,"nullable":false,"description":"Number of days after the invoice is sent that the payment is due."},"payment_due_type":{"enum":["REGULAR","WITHIN_MONTH"],"type":"string","default":"REGULAR","example":"REGULAR","description":"Type of payment due. If the payment is due on the last day of month, enter 'WITHIN_MONTH'."},"first_payment_date":{"type":"string","format":"date","example":"1999-12-31","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"pay_before_weekends":{"type":"boolean","example":true,"nullable":false,"description":"If the payment due is on a weekend, pay on Friday."}},"description":"You can specify any combination of data points that need changing."}}}}},"required":true,"description":"Contract object that needs to be amended"},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/equity-awards":{"get":{"path":"/rest/equity-awards","tags":["Equity Tokens"],"method":"get","summary":"List equity awards granted","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","source_file_id","employee_number","hris_profile_id","last_name","first_name","employee_type","plan_name","award_name","grant_name","grant_date","grant_quantity","grant_price","total_exercise_price","fmv_per_share_at_grant_date","total_fmv","compensation_benefit","vesting_start_date","vest_schedule_name","allow_early_exercise","is_under_rule_701","federal_exemption","federal_exemption_date","state_of_exemption","state_exemption","state_exemption_date","occurrence_index","row_hash","last_seen_dataset_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"The unique identifier of the record."},"row_hash":{"type":"string","example":"9f2c1a7e4b6d8f0a2c4e6b8d0f2a4c6e8b0d2f4a6c8e0b2d4f6a8c0e2b4d6f8a","description":"Hash of the reported values on this record. Compare it between syncs to detect a change without diffing every field."},"last_name":{"type":"string","example":"Doe","nullable":true,"description":"Employee last name, as reported by the ingested file.","x-sensitive-pii":true},"plan_name":{"type":"string","example":"2020 Stock Plan","nullable":true,"description":"Equity plan name, as reported by the ingested file."},"total_fmv":{"type":"number","example":4.7,"nullable":true,"description":"Total fair market value of the grant, as reported by the ingested file.","x-sensitive-employment":true},"award_name":{"type":"string","example":"NQSO Standard","nullable":true,"description":"Award template name, as reported by the ingested file."},"created_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was first ingested."},"first_name":{"type":"string","example":"Jane","nullable":true,"description":"Employee first name, as reported by the ingested file.","x-sensitive-pii":true},"grant_date":{"type":"string","format":"date","example":"2022-06-18","description":"Date the grant was issued, as reported by the ingested file.","x-sensitive-employment":true},"grant_name":{"type":"string","example":"06/18/2022 - NQSO - $4.7","description":"Grant name, as reported by the ingested file."},"updated_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was last upserted, for incremental sync."},"grant_price":{"type":"number","example":4.7,"nullable":true,"description":"Strike/grant price per unit, as reported by the ingested file.","x-sensitive-employment":true},"employee_type":{"type":"string","example":"Employee","nullable":true,"description":"Employee type (e.g. Employee, Consultant), as reported by the ingested file.","x-sensitive-employment":true},"grant_quantity":{"type":"number","example":1000,"nullable":true,"description":"Number of shares/units granted, as reported by the ingested file.","x-sensitive-employment":true},"source_file_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"Identifier of the ingested Shareworks report file this record was last upserted from."},"employee_number":{"type":"string","example":"9001","description":"Shareworks employee number, as reported by the ingested file. The intended join key for this record. Some values are non-numeric for legacy or masked records.","x-sensitive-pii":true},"hris_profile_id":{"type":"integer","example":4821,"nullable":true,"description":"Matched HRIS profile id, if employee_number could be resolved to one. Null when unmatched, or when employee_number is non-numeric or blank.","x-sensitive-pii":true},"state_exemption":{"type":"string","example":"Rule 701","nullable":true,"description":"State exemption, as reported by the ingested file."},"occurrence_index":{"type":"integer","example":1,"description":"Discriminates several records the source file reports for the same natural key. Starts at 1, in the order the rows appear in the file."},"federal_exemption":{"type":"string","example":"Rule 701","nullable":true,"description":"Federal exemption, as reported by the ingested file."},"is_under_rule_701":{"type":"string","example":"Yes","nullable":true,"description":"Whether the grant is under Rule 701, as reported by the ingested file (verbatim text, e.g. Yes/No)."},"state_of_exemption":{"type":"string","example":"Rule 701","nullable":true,"description":"State of exemption, as reported by the ingested file."},"vest_schedule_name":{"type":"string","example":"4 Year Monthly","nullable":true,"description":"Vesting schedule name, as reported by the ingested file.","x-sensitive-employment":true},"vesting_start_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"Vesting start date, as reported by the ingested file.","x-sensitive-employment":true},"allow_early_exercise":{"type":"string","example":"Yes","nullable":true,"description":"Whether early exercise is allowed, as reported by the ingested file (verbatim text, e.g. Yes/No)."},"compensation_benefit":{"type":"number","example":4700,"nullable":true,"description":"Compensation benefit amount, as reported by the ingested file.","x-sensitive-employment":true},"last_seen_dataset_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","nullable":true,"description":"Identifier of the most recent ingested dataset in which this record still appeared. Null for records ingested before dataset tracking began."},"state_exemption_date":{"type":"string","example":"2022-06-18","nullable":true,"description":"State exemption date, as reported by the ingested file."},"total_exercise_price":{"type":"number","example":4.7,"nullable":true,"description":"Total exercise price for the grant, as reported by the ingested file.","x-sensitive-employment":true},"federal_exemption_date":{"type":"string","example":"2022-06-18","nullable":true,"description":"Federal exemption date, as reported by the ingested file."},"fmv_per_share_at_grant_date":{"type":"number","example":4.7,"nullable":true,"description":"Fair market value per share at grant date, as reported by the ingested file.","x-sensitive-employment":true}}},"description":"Page of granted equity award records, one per reported award row."},"has_more":{"type":"boolean","example":false,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","nullable":true,"description":"Cursor for the next page. Null when has_more is false."}}}}},"description":"List equity awards granted returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid cursor","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"validation_error","message":"Invalid cursor"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"unauthorized","message":"Unauthorized"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Insufficient permissions to view equity awards","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"forbidden","message":"Insufficient permissions to view equity awards"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — caller lacks the equities.view permission, or the caller's organization is not permitted to access this endpoint."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Not found","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"not_found","message":"Not found"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found — the requested resource does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"internal_server_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Internal server error","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"internal_server_error","message":"Internal server error"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of records to return in this page."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":2048},"example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","required":false,"description":"Opaque pagination cursor returned as next_cursor by a previous response. Omit to fetch the first page."},{"in":"query","name":"employee_number","schema":{"type":"string","maxLength":64},"example":"9001","required":false,"description":"Only return records for this exact Shareworks employee number."},{"in":"query","name":"grant_date_from","schema":{"type":"string","format":"date"},"example":"2026-01-01","required":false,"description":"Only return records with a grant_date on or after this date (inclusive), in YYYY-MM-DD format."},{"in":"query","name":"grant_date_to","schema":{"type":"string","format":"date"},"example":"2026-12-31","required":false,"description":"Only return records with a grant_date on or before this date (inclusive), in YYYY-MM-DD format."}],"description":"Retrieves the equity awards an organization has granted, as ingested from Shareworks, in ascending employee_number order. Use it to reconcile what was granted to whom, with the grant quantity, price and fair market value at the grant date. This dataset identifies a grant by name and date rather than by grant number, so several records can share one employee and grant name; occurrence_index separates them. Requires the `equities.view` permission at the organization level.\n\n **Token scopes**: `equities:read`","operationId":"listEquityAwards-v2026-09-09","security":[{"deelToken":[]},{"oauth2":["equities:read"]}]}},"/ats/application-sources":{"get":{"path":"/rest/ats/application-sources","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS application sources","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","total_count","has_more","next_cursor"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","slug","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Application source unique identifier"},"slug":{"type":"string","example":"sourced_internally","description":"Application source slug"},"created_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00.000Z","description":"Timestamp of when the application source was created"},"updated_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00.000Z","description":"Timestamp of when the application source was last updated"}}},"description":"Page of application sources."},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more application sources to fetch"},"next_cursor":{"type":"string","example":null,"nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"integer","example":7,"description":"Total number of application sources"}}}}},"description":"Successfully retrieved application sources"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"cursorValue","required":false,"description":"Cursor for pagination"},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of records returned in one response"}],"description":"Returns a paginated list of the application sources configured in the ATS. Use it to discover the valid source slugs for the `source_slugs` filter when listing applications, and to interpret the `source_slug` returned on an application.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfAtsApplicationSources-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/eor/contracts/{contract_id}/hrx-documents":{"get":{"path":"/rest/eor/contracts/{contract_id}/hrx-documents","tags":["HRX Documents"],"method":"get","summary":"Retrieve HRX documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","category_id","category","category_type","category_description","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"cb28e9a7-43cf-4f24-be6f-d72991cace2e","description":"Unique identifier for the employee document"},"name":{"type":"string","example":"Test Employee document","description":"Name of the employee document"},"category":{"type":"string","example":"Onboarding & Registration","description":"Type of the document category"},"created_at":{"type":"string","format":"date-time","example":"2025-09-16T11:54:06.763Z","description":"When the document was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-09-16T11:54:50.168Z","description":"When the document was last updated"},"category_id":{"type":"string","format":"uuid","example":"cb28e9a7-43cf-4f24-be6f-d72991cace2e","description":"Unique identifier for the document category"},"category_type":{"enum":["EMPLOYMENT_AGREEMENT","ONBOARDING_REGISTRATION","OFFBOARDING_TERMINATION","TAX_FISCAL","STATUS_BENEFITS","VISA_TRAVEL_SUPPORT","OTHER"],"type":"string","example":"EMPLOYMENT_AGREEMENT","description":"Type of the document category"},"category_description":{"type":"string","example":"Core legal contract establishing the terms and conditions of employment between the worker and the EOR","description":"Description of the document category"}}},"example":[{"id":"cb28e9a7-43cf-4f24-be6f-d72991cace2e","name":"Employment Agreement Contract","category":"Onboarding & Registration","created_at":"2025-09-16T11:54:06.763Z","updated_at":"2025-09-16T11:54:50.168Z","category_id":"eda410c0-6148-4c72-96fa-8d3b6895bf5d","category_description":"Core legal contract establishing the terms and conditions of employment between the worker and the EOR"},{"id":"eda410c0-6148-4c72-96fa-8d3b6895bf5d","name":"Visa Application Letter","category":"Tax & Fiscal","created_at":"2025-09-16T12:26:47.769Z","updated_at":"2025-09-16T12:30:01.320Z","category_id":"cb28e9a7-43cf-4f24-be6f-d72991cace2e","category_description":"Employer-issued letters and certificates supporting visa applications, renewals, and travel abroad"}],"description":"List of employee documents"},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more pages available"},"next_cursor":{"type":"string","example":"eyJpZCI6ImVkYTQxMGMwLTYxNDgtNGM3Mi05NmZhLThkM2I2ODk1YmY1ZCJ9","nullable":true,"description":"Cursor to use for the next page. Null if there are no more pages."},"total_count":{"type":"integer","example":42,"description":"Total number of documents available across all pages"}}}}},"description":"HRX documents successfully retrieved for EOR contract"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJpZCI6ImNiMjhlOWE3LTQzY2YtNGYyNC1iZTZmLWQ3Mjk5MWNhY2UyZSJ9","required":false,"description":"Cursor for pagination. Use the cursor from the previous response to get the next page of results."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Number of items to return per page. Maximum is 100, default is 20."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"5B74FnLM","required":true,"description":"The unique identifier of the employee contract."}],"description":"Returns a paginated list of HRX documents shared with an employee under a specific EOR contract.\n\n **Token scopes**: `worker:read`, `contracts:read`","operationId":"retrieveHrxDocuments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read","contracts:read"]}]}},"/gp/workers/{worker_id}/pto-policy":{"patch":{"path":"/rest/gp/workers/{worker_id}/pto-policy","tags":["Global Payroll"],"method":"patch","summary":"Update PTO policy","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"type":"boolean","example":true,"description":"Indicates if the PTO policy was successfully updated."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for a worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for a worker in UUID format."}],"description":"Applies a partial update to the PTO policy assigned to a Global Payroll worker. Only fields included in the request body are modified; omitted fields retain their current values.\n\n **Token scopes**: `people:write`","operationId":"updateGPEmployeePto-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["accrual_start_date","yearly_allowance"],"properties":{"yearly_allowance":{"type":"string","example":"15","description":"Enter the number of holidays. Example: '15' for 15 days."},"accrual_start_date":{"type":"string","format":"date","example":"1999-12-31","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: '2022-12-31'."}}}}}}},"required":true,"description":"Contract object that needs to be amended."},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/eor/validations/{country_code}":{"get":{"path":"/rest/eor/validations/{country_code}","tags":["EOR"],"method":"get","summary":"Retrieve detailed hiring guide for a country","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"salary":{"type":"object","properties":{"max":{"type":"string","example":"10000","nullable":true,"description":"Maximum salary."},"min":{"type":"string","example":"2000","nullable":true,"description":"Minimum salary."},"frequency":{"enum":["monthly","quarterly","annually","specific_month","specific_date"],"type":"string","example":"monthly","description":"Frequency of the salary payment."}}},"holiday":{"type":"object","properties":{"max":{"type":"string","example":"25","nullable":true,"description":"Maximum holidays."},"min":{"type":"string","example":"15","nullable":true,"description":"Minimum holidays."},"mostCommon":{"type":"string","example":"20","nullable":true,"description":"Most common holiday period."}}},"currency":{"type":"string","example":"USD","description":"Country currency."},"probation":{"type":"object","properties":{"max":{"type":"number","example":3,"nullable":true,"description":"Maximum probation period."},"min":{"type":"number","example":1,"nullable":true,"description":"Minimum probation period."}}},"health_insurance":{"type":"object","nullable":true,"properties":{"status":{"enum":["REQUIRED","ENABLED","DISABLED"],"type":"string","example":"ENABLED","description":"Health insurance status."},"providers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Provider ID."},"name":{"type":"string","example":"HealthCare Plus","description":"Provider name."}}}}}}}}}},"examples":{"success":{"value":{"data":{"salary":{"max":"10000","min":"2000","frequency":"monthly"},"holiday":{"max":"25","min":"15","mostCommon":"20"},"currency":"USD","probation":{"max":3,"min":"1"},"health_insurance":{"status":"ENABLED","providers":[{"id":"123e4567-e89b-12d3-a456-426614174000","name":"HealthCare Plus"}]}}},"summary":"Example of a successful response."}}}},"description":"The hiring guide data was successfully retrieved."},"400":{"content":{"application/json":{"examples":{"invalidCode":{"value":{"error":"Invalid country code. Expected ISO Alpha-2 format."},"summary":"Invalid country code format."}}}},"description":"Invalid request. The provided country code does not match the expected format."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"examples":{"notFound":{"value":{"error":"No hiring guide data available for the specified country."},"summary":"Country code not found."}}}},"description":"Country data not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"country_code","schema":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code in ISO Alpha-2 format."},"example":"US","required":true,"description":"The two-letter ISO code of the country for which to retrieve the hiring guide."}],"description":"Returns country-specific hiring guide data — including salary requirements, holidays, probation terms, health insurance, and currency — for use in creating and validating EOR contract quotes.\n\n **Token scopes**: `contracts:read`","operationId":"getEorCountryValidations-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/vms/requisitions":{"get":{"path":"/rest/vms/requisitions","tags":["Talent"],"method":"get","summary":"List job requests","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"3cfbb359-6084-46c0-9d3f-1ed1a1007a7a","nullable":true,"description":"Unique identifier of the job request."},"title":{"type":"string","example":"Senior Backend Engineer","description":"Job request title."},"status":{"enum":["ACTIVE","PAUSED","CLOSED","NOT_SHARED"],"type":"string","example":"ACTIVE","description":"Job request status."},"vendors":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"7d4e1a26-9c83-4b57-a1f0-6e2b8d5c3097","nullable":true,"description":"Unique identifier of the talent partner."},"name":{"type":"string","example":"Talent Partner Ltd.","description":"Name of the talent partner."},"status":{"enum":["APPROVED","REJECTED","PENDING_APPROVAL","HIDDEN_BY_HIRER","WITHDRAWN_BY_HIRER","WITHDRAWN_BY_VENDOR"],"type":"string","example":"APPROVED","description":"Status of the talent partner on this job request."},"fee_type":{"enum":["ONE_TIME_FIXED","ONE_TIME_PERCENTAGE","RECURRING_FIXED","RECURRING_PERCENTAGE","DEPRECATED"],"type":"string","example":"ONE_TIME_PERCENTAGE","description":"Agreed fee type."},"logo_url":{"type":"string","example":"https://example.com/logo.png","nullable":true,"description":"Talent partner logo URL."},"fee_value":{"type":"number","example":15,"description":"Agreed fee value."},"created_at":{"type":"string","format":"date-time","example":"2026-07-02T09:00:00.000Z","description":"When the talent partner was attached."},"updated_at":{"type":"string","format":"date-time","example":"2026-07-06T08:20:00.000Z","description":"When the attachment was last updated."},"rejected_reason":{"type":"string","example":"Rate below the agreed range.","nullable":true,"description":"Reason the talent partner rejected the job request."},"status_updated_at":{"type":"string","format":"date-time","example":"2026-07-05T12:00:00.000Z","description":"When the status last changed."},"work_order_status":{"enum":["NOT_REQUIRED","AWAITING_CREATION","PENDING_VENDOR_SIGNATURE","REJECTED_BY_VENDOR","REJECTED_DUE_TO_INACTIVITY","REJECTED_BY_HIRER","SIGNED"],"type":"string","example":"SIGNED","description":"Status of the associated work order."},"hirer_withdrawn_reason":{"type":"string","example":"Job request closed early.","nullable":true,"description":"Reason the client withdrew the talent partner."},"vendor_withdrawn_reason":{"type":"string","example":"No available candidates.","nullable":true,"description":"Reason the talent partner withdrew."},"work_order_status_updated_at":{"type":"string","format":"date-time","example":"2026-07-06T08:20:00.000Z","nullable":true,"description":"When the work order status last changed."}}},"description":"Talent partners attached to the job request."},"yoe_min":{"type":"integer","example":5,"nullable":true,"description":"Minimum years of experience required."},"currency":{"type":"string","example":"USD","nullable":true,"description":"ISO 4217 currency code of the rate."},"end_date":{"type":"string","format":"date-time","example":"2027-03-01T00:00:00.000Z","nullable":true,"description":"Requested end date."},"quantity":{"type":"integer","example":2,"description":"Number of open positions."},"rate_max":{"type":"number","example":9000,"nullable":true,"description":"Upper bound of the rate range."},"rate_min":{"type":"number","example":7000,"nullable":true,"description":"Lower bound of the rate range."},"locations":{"type":"array","items":{"type":"string","example":"US"},"nullable":true,"description":"ISO 3166-1 alpha-2 country codes the job request targets."},"work_mode":{"enum":["REMOTE","OFFICE","HYBRID",null],"type":"string","example":"REMOTE","nullable":true,"description":"Work mode."},"close_note":{"type":"string","example":"Filled by an internal transfer.","nullable":true,"description":"Free-text note recorded when closing the job request."},"created_at":{"type":"string","format":"date-time","example":"2026-07-01T10:15:00.000Z","description":"When the job request was created."},"job_family":{"type":"string","example":"ENGINEERING","nullable":true,"description":"Job family."},"rate_scale":{"enum":["HOURLY","MILESTONE","DAILY","WEEKLY","MONTHLY","ANNUAL",null],"type":"string","example":"MONTHLY","nullable":true,"description":"Scale the rate range is expressed in."},"start_date":{"type":"string","format":"date-time","example":"2026-09-01T00:00:00.000Z","nullable":true,"description":"Requested start date."},"updated_at":{"type":"string","format":"date-time","example":"2026-08-20T16:45:00.000Z","description":"When the job request was last updated."},"description":{"type":"string","example":"Build and maintain our payments platform.","nullable":true,"description":"Job request description."},"close_reason":{"type":"string","example":"POSITION_FILLED","nullable":true,"description":"Reason the job request was closed."},"organization":{"type":"object","properties":{"id":{"type":"string","example":"5f2b8c91-77d4-4a3e-8b6c-0e1d9a4f2c38","nullable":true,"description":"Unique identifier of the organization."},"name":{"type":"string","example":"Acme Inc.","nullable":true,"description":"Organization name."}},"description":"Organization the job request belongs to."},"contract_type":{"enum":["EMPLOYEE","CONTRACTOR",null],"type":"string","example":"CONTRACTOR","nullable":true,"description":"Contract type of the job request."},"total_vendors":{"type":"integer","example":3,"description":"Number of talent partners attached to the job request."},"service_status":{"enum":["PENDING","SERVICEABLE","NOT_SERVICEABLE",null],"type":"string","example":"SERVICEABLE","nullable":true,"description":"Whether Deel can service the job request."},"approval_status":{"enum":["NOT_REQUESTED","REQUESTED","APPROVED","REJECTED","CANCELLED"],"type":"string","example":"APPROVED","description":"Approval status of the job request."},"candidate_count":{"type":"integer","example":7,"description":"Total number of candidates on the job request."},"candidate_limit":{"type":"integer","example":10,"nullable":true,"description":"Maximum number of candidates each talent partner may submit."},"employment_type":{"enum":["FULL_TIME","PART_TIME",null],"type":"string","example":"FULL_TIME","nullable":true,"description":"Employment type."},"hours_per_month":{"type":"integer","example":160,"nullable":true,"description":"Expected hours per month."},"approval_policy_id":{"type":"string","example":"8a1f0c74-2b16-4f8e-9a0d-5c3e7b219d44","nullable":true,"description":"Identifier of the approval policy applied to the job request."},"contract_length_type":{"enum":["FIXED","INDEFINITE",null],"type":"string","example":"FIXED","nullable":true,"description":"Whether the engagement is fixed-term or indefinite."},"marked_as_inactive_at":{"type":"string","format":"date-time","example":"2026-08-15T09:30:00.000Z","nullable":true,"description":"When the job request was flagged as inactive, if it was."},"total_hired_candidates":{"type":"integer","example":1,"description":"Number of candidates hired on this job request."},"total_vendors_per_status":{"type":"object","example":{"approved":1,"rejected":0,"hidden_by_hirer":0,"pending_approval":2,"withdrawn_by_hirer":0,"withdrawn_by_vendor":0},"description":"Count of attached talent partners per status.","additionalProperties":{"type":"integer"}},"has_non_vendor_candidates":{"type":"boolean","example":false,"description":"Whether the job request has candidates not sourced through a talent partner."},"ready_to_hire_candidates_count":{"type":"integer","example":1,"description":"Candidates who accepted an offer and are ready to be hired. Returned as `0` when the token owner is only an approver on the job request."},"ready_for_offer_candidates_count":{"type":"integer","example":1,"description":"Candidates ready to receive an offer. Returned as `0` when the token owner is only an approver on the job request."},"pending_interview_candidates_count":{"type":"integer","example":2,"description":"Candidates awaiting an interview. Returned as `0` when the token owner is only an approver on the job request."},"pending_initial_screening_candidates_count":{"type":"integer","example":3,"description":"Candidates awaiting initial screening. Returned as `0` when the token owner is only an approver on the job request."}}},"description":"The job requests on the requested page."},"page":{"type":"object","required":["cursor","total_rows"],"properties":{"cursor":{"type":"string","example":"eyJwcmV2aW91c1BhZ2VMYXN0SWQiOjEyMzR9","description":"Cursor to pass to the next request. Empty when no records remain."},"total_rows":{"type":"integer","example":42,"description":"Total number of job requests matching the filters."}},"description":"Pagination metadata."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"VMS_PUBLIC_API_ERROR","description":"Machine-readable error code"},"field":{"type":"string","example":"status","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"\"status\" must be an array","description":"Human-readable explanation"}}},"description":"Validation errors that describe why the request was rejected."}}}}},"description":"Invalid request parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"VMS_PUBLIC_API_ERROR","description":"Machine-readable error code"},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}}},"description":"Errors that describe why the request was not authenticated."}}}}},"description":"Unauthorized."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"VMS_PUBLIC_API_ERROR","description":"Machine-readable error code"},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}}},"description":"Errors that describe why the request was not permitted."}}}}},"description":"Forbidden."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"VMS_PUBLIC_API_ERROR","description":"Machine-readable error code"},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable explanation"}}},"description":"Errors that describe the unexpected server failure."}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"search","schema":{"type":"string","maxLength":150},"example":"engineer","required":false,"description":"Free-text search over the job request title."},{"in":"query","name":"vendor_ids","schema":{"type":"array","items":{"type":"string","example":"3cfbb359-6084-46c0-9d3f-1ed1a1007a7a"}},"example":["3cfbb359-6084-46c0-9d3f-1ed1a1007a7a"],"required":false,"description":"Filter by talent partner identifiers. The reserved value `external_provider` matches job requests whose candidates were sourced from an external provider rather than a Deel talent partner."},{"in":"query","name":"contract_type","schema":{"type":"array","items":{"enum":["EMPLOYEE","CONTRACTOR"],"type":"string"}},"example":["CONTRACTOR"],"required":false,"description":"Filter by contract type."},{"in":"query","name":"rate_scale","schema":{"enum":["HOURLY","MILESTONE","DAILY","WEEKLY","MONTHLY","ANNUAL"],"type":"string"},"example":"MONTHLY","required":false,"description":"Filter by the rate scale of the job request."},{"in":"query","name":"locations","schema":{"type":"array","items":{"type":"string","example":"US","maxLength":2}},"example":["US"],"required":false,"description":"Filter by ISO 3166-1 alpha-2 country codes."},{"in":"query","name":"work_mode","schema":{"enum":["REMOTE","OFFICE","HYBRID"],"type":"string"},"example":"REMOTE","required":false,"description":"Filter by work mode."},{"in":"query","name":"status","schema":{"type":"array","items":{"enum":["ACTIVE","PAUSED","CLOSED","NOT_SHARED"],"type":"string"}},"example":["ACTIVE"],"required":false,"description":"Filter by job request status."},{"in":"query","name":"approval_status","schema":{"type":"array","items":{"enum":["NOT_REQUESTED","REQUESTED","APPROVED","REJECTED","CANCELLED"],"type":"string"},"minItems":1},"example":["APPROVED"],"required":false,"description":"Filter by approval status."},{"in":"query","name":"start_date_from","schema":{"type":"string","format":"date-time"},"example":"2026-09-01T00:00:00.000Z","required":false,"description":"Only return job requests whose start date is on or after this date."},{"in":"query","name":"start_date_to","schema":{"type":"string","format":"date-time","nullable":true},"example":"2026-12-31T00:00:00.000Z","required":false,"description":"Only return job requests whose start date is on or before this date. Must not be earlier than `start_date_from`."},{"in":"query","name":"end_date_from","schema":{"type":"string","format":"date-time"},"example":"2026-09-01T00:00:00.000Z","required":false,"description":"Only return job requests whose end date is on or after this date."},{"in":"query","name":"end_date_to","schema":{"type":"string","format":"date-time","nullable":true},"example":"2026-12-31T00:00:00.000Z","required":false,"description":"Only return job requests whose end date is on or before this date. Must not be earlier than `end_date_from`."},{"in":"query","name":"created_at_from","schema":{"type":"string","format":"date-time"},"example":"2026-01-01T00:00:00.000Z","required":false,"description":"Only return job requests created on or after this date."},{"in":"query","name":"created_at_to","schema":{"type":"string","format":"date-time","nullable":true},"example":"2026-06-30T00:00:00.000Z","required":false,"description":"Only return job requests created on or before this date. Must not be earlier than `created_at_from`."},{"in":"query","name":"request_type","schema":{"enum":["GENERAL","PENDING_TASKS"],"type":"string","default":"GENERAL"},"example":"GENERAL","required":false,"description":"Use `PENDING_TASKS` to return only the job requests awaiting an action from the token owner."},{"in":"query","name":"sort_by","schema":{"enum":["n_candidates","n_positions","rate_min","rate_max","created_at","start_date","end_date","status"],"type":"string","default":"created_at"},"example":"created_at","required":false,"description":"Field to sort by."},{"in":"query","name":"sort_order","schema":{"enum":["ASC","DESC"],"type":"string","default":"ASC"},"example":"ASC","required":false,"description":"Sort direction."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJwcmV2aW91c1BhZ2VMYXN0SWQiOjEyMzR9","required":false,"description":"Opaque cursor returned by the previous page. Omit to retrieve the first page."},{"in":"query","name":"limit","schema":{"type":"integer","default":10,"maximum":100,"minimum":1},"example":10,"required":false,"description":"Maximum number of records to return."}],"description":"Returns a cursor-paginated list of Deel Talent job requests for the organization. Use filters to find requests by hiring criteria or approval status, then use the results to populate a dashboard, synchronize an external system, or identify requests needing follow-up. Pass the cursor from each response to retrieve the next page.\n\n **Token scopes**: `talents:read`","operationId":"listRequisitions-v2026-09-10","security":[{"deelToken":[]},{"oauth2":["talents:read"]}]}},"/registration-document-requirements/{requirement_id}/template":{"get":{"path":"/rest/registration-document-requirements/{requirement_id}/template","tags":["Documents"],"method":"get","summary":"Download Legal Entity Registration Document Requirement Template","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url"],"properties":{"url":{"type":"string","example":"https://files.example.com/doc.pdf?token=abc123","description":"Time-limited download URL. Expires shortly after issue, so fetch it rather than storing it."}}}}}}},"description":"Template download URL issued successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Requirement or template not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"requirement_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the document requirement."}],"description":"Issues a time-limited download URL for the blank template provided for a document requirement. Some requirements must be submitted on a supplied form; this returns that form so it can be completed and submitted back. Check `requirement.has_template` on a document before calling this endpoint.\n\n **Token scopes**: `legal-entity:read`","operationId":"downloadLegalEntityRegistrationDocumentRequirementTemplate-v2026-08-17","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/it/assets":{"get":{"path":"/rest/it/assets","tags":["IT assets"],"method":"get","summary":"List IT assets","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the item"},"grade":{"enum":["NEW","A","B","C","D","F"],"type":"string","example":"A","description":"The condition grade of the asset"},"status":{"enum":["ACTIVE","SUPPLIER_RETURN","STOLEN","LOST_IN_TRANSIT","WAITING_FOR_CLEARANCE","CLEARED","BINNED","LEFT_WITH_USER","SHRINKAGE","DAMAGED_BY_USER","DAMAGED_IN_TRANSIT","DAMAGED_AT_WAREHOUSE","BEING_REPAIRED","BROKEN_BY_USER","BROKEN_IN_TRANSIT","BROKEN_AT_WAREHOUSE","ADDED_BY_MISTAKE","RETURNED_TO_DEEL"],"type":"string","example":"ACTIVE","description":"Current state of the asset"},"product":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the product"},"name":{"type":"string","example":"MacBook Pro","description":"Product name"},"brand":{"type":"string","example":"Apple","description":"Product brand"},"category":{"enum":["ADAPTER","CABLE","CHAIR","CHARGER","DESK","DESK_RISER","DESK_TIDY","DESKTOP","DOCKING_STATION","DONGLE","FOOTREST","HEADSET","KEYBOARD","LAPTOP","LAPTOP_STAND","MICE_TRACKPAD","MOBILE_DEVICE","MONITOR","MONITOR_ARM","OTHER","PRINTER","SHREDDER","STANDING_MAT","TABLET","TASK_LIGHT","WEBCAM","WIFI_RANGE_EXTENDER","WELCOME_PACK"],"type":"string","example":"LAPTOP","description":"Product category"}},"description":"Product details"},"location":{"enum":["WITH_USER","AT_WAREHOUSE","DEEL_WAREHOUSE","ORGANIZATION_WAREHOUSE","CLEARANCE_WAREHOUSE","SUPPLIER","WITH_COURIER","WRITE_OFF"],"type":"string","example":"WITH_USER","description":"Current location type of the asset"},"ownership":{"type":"object","properties":{"name":{"type":"string","example":"Deel","description":"Asset owner name"},"type":{"enum":["DEEL","ORGANIZATION"],"type":"string","example":"DEEL","description":"Asset owner type"}},"description":"Asset owner"},"created_at":{"type":"string","format":"date-time","example":"2025-08-08T09:49:01.000Z","description":"Creation timestamp of the asset"},"updated_at":{"type":"string","format":"date-time","example":"2025-08-08T09:49:01.000Z","description":"Last update timestamp of the asset"},"assigned_user":{"type":"object","nullable":true,"properties":{"emails":{"type":"array","items":{"type":"string","format":"email"},"example":["bruce.wayne@wayne-enterprise.com","batman@gotham.com"],"description":"Array of user email addresses","x-sensitive-pii":true,"x-sensitive-employment":true},"address":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the address"},"city":{"type":"string","example":"Gotham","nullable":true,"description":"City name","x-sensitive-pii":true,"x-sensitive-employment":true},"type":{"enum":["PII","PARTIAL","DELIVERY","COLLECTION","ENTITY","SUPPLIER","BILLING"],"type":"string","example":"DELIVERY","description":"Type of the address"},"line1":{"type":"string","example":"1007 Mountain Drive","nullable":true,"description":"Address line 1","x-sensitive-pii":true,"x-sensitive-employment":true},"line2":{"type":"string","example":"Stately Wayne Manor","nullable":true,"description":"Address line 2","x-sensitive-pii":true,"x-sensitive-employment":true},"state":{"type":"string","example":"New Jersey","nullable":true,"description":"State code or name","x-sensitive-pii":true},"country":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","XK","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"Country code","x-sensitive-pii":true},"is_valid":{"type":"boolean","example":true,"description":"Whether the address passes validation"},"post_code":{"type":"string","example":"12345","nullable":true,"description":"Post code","x-sensitive-pii":true,"x-sensitive-employment":true},"phone_number":{"type":"string","example":"+1-212-456-7890","nullable":true,"description":"Phone number","x-sensitive-pii":true,"x-sensitive-employment":true},"date_of_birth":{"type":"string","format":"date","example":"1997-12-18","nullable":true,"description":"Date of birth (applicable for some address types)","x-sensitive-pii":true},"tax_id_number":{"type":"string","example":"BAT123456","nullable":true,"description":"Tax ID number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"passport_number":{"type":"string","example":"P123456789","nullable":true,"description":"Passport number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"delivery_instructions":{"type":"string","example":"Use the Bat-Signal if urgent","nullable":true,"description":"Special instructions for deliveries","x-sensitive-pii":true}},"description":"User address details"},"last_name":{"type":"string","example":"Wayne","description":"Last name of the user","x-sensitive-pii":true},"first_name":{"type":"string","example":"Bruce","description":"First name of the user","x-sensitive-pii":true},"hris_profile_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"The unique identifier of the HRIS profile of the assigned user"}},"description":"Details of the user with asset possession"},"purchase_date":{"type":"string","format":"date","example":"2025-08-08","nullable":true,"description":"Purchase date of the asset"},"serial_number":{"type":"string","example":"SN123456","nullable":true,"description":"Asset serial number","x-sensitive-pii":true},"purchase_value":{"type":"object","nullable":true,"properties":{"amount":{"type":"string","example":"1999.99","description":"Amount"},"currency":{"enum":["EUR","AED","AFN","XCD","ALL","AMD","AOA","ARS","USD","AUD","AWG","AZN","BAM","BDT","XOF","BGN","BHD","BIF","BMD","SGD","BOB","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","XAF","CHF","NZD","CLP","CNY","COP","CRC","CUC","CVE","ANG","CZK","DJF","DOP","DZD","EGP","MAD","ERN","ETB","FJD","FKP","DKK","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","WST","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LYD","MDL","MGA","MKD","MMK","MNT","MRU","MUR","MVR","MWK","MXN","MYR","MZN","NAD","XPF","NGN","NIO","NOK","NPR","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SHP","SLL","SOS","SRD","SSP","STD","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","UYU","UZS","VEF","VND","VUV","YER","ZAR","ZMW","ZWD"],"type":"string","example":"EUR","description":"Three-letter currency code for the price"}},"description":"Purchase value of the asset"},"assigned_warehouse":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the warehouse"},"name":{"type":"string","example":"Batcave Warehouse","description":"Warehouse or storage location name"},"address":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier of the address"},"city":{"type":"string","example":"Gotham","nullable":true,"description":"City name","x-sensitive-pii":true,"x-sensitive-employment":true},"type":{"enum":["PII","PARTIAL","DELIVERY","COLLECTION","ENTITY","SUPPLIER","BILLING"],"type":"string","example":"DELIVERY","description":"Type of the address","x-sensitive-employment":true},"line1":{"type":"string","example":"1007 Mountain Drive","nullable":true,"description":"Address line 1","x-sensitive-pii":true,"x-sensitive-employment":true},"line2":{"type":"string","example":"Stately Wayne Manor","nullable":true,"description":"Address line 2","x-sensitive-pii":true,"x-sensitive-employment":true},"state":{"type":"string","example":"New Jersey","nullable":true,"description":"State code or name","x-sensitive-pii":true},"country":{"enum":["AD","AE","AF","AG","AI","AL","AM","AN","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","IC","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","XK","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"],"type":"string","example":"US","description":"Country code","x-sensitive-pii":true},"is_valid":{"type":"boolean","example":true,"description":"Whether the address passes validation"},"post_code":{"type":"string","example":"12345","nullable":true,"description":"Post code","x-sensitive-pii":true,"x-sensitive-employment":true},"phone_number":{"type":"string","example":"+1-212-456-7890","nullable":true,"description":"Phone number","x-sensitive-pii":true,"x-sensitive-employment":true},"date_of_birth":{"type":"string","format":"date","example":"1997-12-18","nullable":true,"description":"Date of birth (applicable for some address types)","x-sensitive-pii":true},"tax_id_number":{"type":"string","example":"BAT123456","nullable":true,"description":"Tax ID number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"passport_number":{"type":"string","example":"P123456789","nullable":true,"description":"Passport number (applicable for some address types)","x-sensitive-pii":true,"x-sensitive-employment":true},"delivery_instructions":{"type":"string","example":"Use the Bat-Signal if urgent","nullable":true,"description":"Special instructions for deliveries","x-sensitive-pii":true,"x-sensitive-employment":true}},"description":"Warehouse address details"},"ownership":{"enum":["DEEL","ORGANIZATION"],"type":"string","example":"DEEL","description":"Warehouse ownership type"},"warehouse_type":{"enum":["DEEL","ORGANIZATION","CLEARANCE"],"type":"string","example":"DEEL","description":"Warehouse type"}},"description":"Details of the warehouse with asset possession"}}}},"has_more":{"type":"boolean","example":true,"description":"Whether there are more results available"},"next_cursor":{"type":"string","example":"d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m","nullable":true,"description":"Cursor to the next page"},"total_count":{"type":"integer","example":133,"description":"Total number of records"}}}}},"description":"OK"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"insufficient_permission","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"first_name","description":"The field name where input validation failed"},"message":{"type":"string","example":"human readable error message","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m0d3m","description":"Indicates where the next page of results starts, as returned in a paginated list response"},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":10,"description":"Return a page of results with given number of records"},{"in":"query","name":"hris_profile_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","description":"Filter assets by assigned worker with given HRIS Profile ID"},{"in":"query","name":"location","schema":{"enum":["WITH_USER","AT_WAREHOUSE","DEEL_WAREHOUSE","ORGANIZATION_WAREHOUSE","CLEARANCE_WAREHOUSE","SUPPLIER","WITH_COURIER","WRITE_OFF"],"type":"string"},"example":"AT_WAREHOUSE","description":"Filter assets by their location"},{"in":"query","name":"category","schema":{"enum":["ADAPTER","CABLE","CHAIR","CHARGER","DESK","DESK_RISER","DESK_TIDY","DESKTOP","DOCKING_STATION","DONGLE","FOOTREST","HEADSET","KEYBOARD","LAPTOP","LAPTOP_STAND","MICE_TRACKPAD","MOBILE_DEVICE","MONITOR","MONITOR_ARM","OTHER","PRINTER","SHREDDER","STANDING_MAT","TABLET","TASK_LIGHT","WEBCAM","WIFI_RANGE_EXTENDER","WELCOME_PACK"],"type":"string"},"example":"DESK","description":"Filter assets by their product category"},{"in":"query","name":"status","schema":{"enum":["ACTIVE","ARCHIVED"],"type":"string"},"example":"ARCHIVED","description":"Filter assets by their status"}],"description":"Returns a cursor-paginated list of all IT assets historically or currently managed by the organization.\n\n **Token scopes**: `it-assets:read`","operationId":"listItAssets-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["it-assets:read"]}]}},"/offboarding/tracker/{id}":{"get":{"path":"/rest/offboarding/tracker/{id}","tags":["Offboarding"],"method":"get","summary":"Retrieve termination details","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"summary":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"oneOf":[{"type":"string","example":"m7yg6zp"},{"type":"integer","example":2717911}],"example":"m7yg6zp","description":"The unique identifier for the contract associated with the summary item."}}},"name":{"type":"string","example":"Contract name","description":"The name of the summary item (e.g., Contract ending details)."},"type":{"type":"string","example":"CONTRACT_NAME","description":"The type of summary information (e.g., CONTRACT_ENDING_DETAILS)."},"value":{"type":"string","example":"TSB64 F348A1","nullable":true,"description":"The value or status associated with the summary item."}}}},"contract":{"type":"object","properties":{"id":{"type":"string","example":"m7yg6zp","description":"The unique identifier for the contract."},"eor":{"type":"object","nullable":true,"properties":{"probation_period":{"type":"object","properties":{"status":{"type":"string","example":"in_progress","description":"probation status"},"period_end_at":{"type":"string","example":"2021-07-14T22:00:00+00:00","description":"Period end date"},"period_in_days":{"type":"integer","example":612411,"description":"total of days of period"}}}},"description":"Employer of Record (EOR) for the contract, if applicable."},"oid":{"type":"string","example":"m7yg6zp","description":"The object ID for the contract, which might be the same as the contract ID."},"name":{"type":"string","example":"John Doo","description":"The name or title of the contract."},"timezone":{"type":"string","example":"Europe/Belgrade","description":"The timezone associated with the contract (e.g., Europe/Belgrade)."},"contract_type":{"type":"string","example":"payg_tasks","description":"The type of the contract (e.g., payg_tasks)."}}},"progress":{"type":"object","properties":{"status":{"type":"string","example":"OFFBOARDING_IN_PROGRESS","description":"The current status of the offboarding process (e.g., OFFBOARDING_IN_PROGRESS)."},"reference_date":{"type":"string","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"The reference date for the offboarding status (e.g., the termination date)."},"reference_date_type":{"type":"string","example":"END_DATE","description":"The type of reference date (e.g., END_DATE)."},"reference_date_timezone":{"type":"string","example":"Europe/Belgrade","description":"The timezone of the reference date."}}},"hiring_type":{"type":"string","example":"contractor","description":"The hiring type for the contract (e.g., contractor)."},"termination":{"type":"object","properties":{"id":{"type":"string","example":"b550b7e5-d6e1-4613-93ba-a7ee5f75887c","nullable":true,"description":"The termination ID"},"end_date":{"type":"string","example":"2024-12-01T22:59:59.999Z","nullable":true,"description":"The end date of the contract termination."},"ending_type":{"type":"string","example":"ENDING_CONTRACT","description":"The type of termination (e.g., ENDING_CONTRACT)."},"initiated_at":{"type":"string","example":"2024-12-01T22:59:59.999Z","nullable":true,"description":"The date and time when the termination was initiated."},"initiated_by":{"type":"object","nullable":true,"properties":{"name":{"type":"string","example":"John Doo","description":"Name of individual","x-sensitive-pii":true},"profile_type":{"type":"string","example":"client","nullable":true,"description":"individual's type"}},"description":"The individual that initiated the termination."},"public_message":{"type":"string","example":"Lorem Ipsum is simply dummy text of the printing and typesetting industry.","nullable":true,"description":"A public message regarding the termination."},"termination_impact":{"type":"object","nullable":true,"properties":{"title":{"type":"string","example":"Loren Impact","description":"Title of termination impact"},"description":{"type":"string","example":"Lorem Ipsum is simply dummy text of the printing and typesetting industry.","description":"Description of termination impact"}},"description":"The impact of the termination, if applicable."},"eligible_for_rehire":{"type":"string","example":"YES","nullable":true,"description":"Indicates whether the individual is eligible for rehire."},"eligible_for_rehire_reason":{"type":"string","example":"Lorem Ipsum is simply dummy text of the printing and typesetting industry.","nullable":true,"description":"The reason why the individual is or is not eligible for rehire."}}},"hris_profile":{"type":"object","nullable":true,"properties":{"oid":{"type":"string","example":"b550b7e5-d6e1-4613-93ba-a7ee5f75887c","description":"The unique object ID for the HRIS profile."},"name":{"type":"string","example":"qhzTMW fPpuSu","description":"The name of the individual in the HRIS profile.","x-sensitive-pii":true},"work_email":{"type":"string","example":"a87cac24ea4fa4f0e4239ffd0facd778@test.com","nullable":true,"description":"The work email address of the individual in the HRIS profile.","x-sensitive-pii":true}}},"app_experience":{"type":"object","properties":{"is_minimal_requirements":{"type":"boolean","example":true,"description":"Indicates whether the individual meets the minimal experience requirements for the role."}}}}}}}}},"description":"Successfully retrieved offboarding details"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"eyJjb250cmFjdE9pZCI6IlB6cFlhcmVuIiwiaGlyaW5nVHlwZSI6ImNvbnRyYWN0b3IiLCJwcm9maWxlSWQiOjE2NzgyMCwidXNlcklkIjoxNDM3ODl9","required":true,"description":"Unique onboarding tracker identifier"}],"description":"Returns termination details for a contract identified by its offboarding tracker `id`.\n\n **Token scopes**: `contracts:read`, `people:read`","operationId":"retrieveTerminationDetails-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/eor/worker/benefits":{"get":{"path":"/rest/eor/worker/benefits","tags":["EOR"],"method":"get","summary":"Retrieve Benefits for Employee","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["contract_id","currency","benefits"],"properties":{"benefits":{"type":"array","items":{"type":"object","required":["name","description","status","type","enrollment_details","organization_selection"],"properties":{"id":{"type":"string","format":"uuid","example":"5f4d1f3f-4b3b-4b1e-8f4f-3b1f4f1b3b4b","nullable":false,"description":"Unique identifier (UUID) for this benefit instance. Use this when referencing the benefit in subsequent API calls."},"name":{"type":"string","example":"Healthcare","nullable":false,"description":"Human-readable display name of the benefit (e.g. 'Healthcare', 'Dental', '401(k)'). Suitable for display in UI."},"type":{"type":"string","example":"HEALTHCARE","nullable":true,"description":"High-level category of the benefit (e.g. HEALTHCARE, DENTAL, VISION). May be null if uncategorized. Use benefit_type_code for a more specific, jurisdiction-aware value."},"status":{"type":"string","example":"ENROLLED","nullable":false,"description":"Enrollment lifecycle state for this benefit. Populated with the same value as `enrollment_status` (both fields are returned for backward compatibility). ENROLLED = active, claimable coverage. OPTED_OUT = employee stopped or waived the coverage. TERMINATED = cancelled mid-contract. EXPIRED = coverage period ended. PENDING, AWAITING_ENROLLMENT, AWAITING_CARRIER_CONFIRMATION, and AWAITING_CONTRACT_ACTIVATION indicate transitional or pre-active states; see `enrollment_status` for the same enumeration and definitions."},"end_date":{"type":"string","example":"2025-12-31","description":"Date on which this benefit's coverage ends (ISO 8601, `YYYY-MM-DD`). Benefit record's effective end, termination, or offer end where applicable. Null or absent when no definitive end date is set on this record (coverage may still change if the contract or offering is updated)."},"plan_url":{"type":"string","example":"https://plan.example","description":"URL to this specific plan's portal or documentation — for example, a plan summary PDF, carrier-hosted plan detail page, or plan materials. Distinct from `provider_website_url` (the provider organization as a whole) and `home_page_url` (employee portal for claims and ID cards)."},"description":{"type":"string","example":"Ensure the employee is covered by a healthcare option.","nullable":false,"description":"Plain-text explanation of what this benefit covers and why it matters to the employee. Suitable for display in a benefits overview UI or summary card."},"contract_type":{"type":"string","example":"EOR","description":"Workforce product for the contract this benefit belongs to. EOR — Employer of Record; Deel is the legal employer. GP — Global Payroll; the client is the legal employer and Deel runs payroll. PEO — Professional Employer Organization (US co-employment). EMBEDDED — payroll or HR through an embedded partner integration."},"provider_name":{"type":"string","example":"ManuLife","description":"Display name of the insurance carrier or benefit provider administering this plan (for example Allianz, Cigna, ManuLife)."},"coverage_group":{"type":"string","example":"EMPLOYEE","description":"Who is covered under this benefit, derived from enrolled dependents on the contract benefit. EMPLOYEE = employee only. EMPLOYEE_AND_SPOUSE = employee plus legal spouse. EMPLOYEE_AND_DOMESTIC_PARTNER = employee plus registered domestic partner where applicable. EMPLOYEE_AND_CHILD = employee plus dependent child coverage structured as a single-child tier. EMPLOYEE_AND_CHILDREN = employee plus all enrolled children. EMPLOYEE_AND_FAMILY = employee plus spouse or partner and children (full family tier) per plan rules."},"effective_date":{"type":"string","example":"2025-02-01","description":"Date from which this benefit offering is in effect for this employee in this response (ISO 8601, `YYYY-MM-DD`). The benefit offering's offered-at date when present — not the same as contract coverage start or plan-specific coverage start dates inside enrollment."},"benefit_type_code":{"type":"string","example":"HEALTHCARE","description":"Jurisdiction-aware classification code for this benefit. Use this (not only `type`) when product logic must differ by country — for example retirement: `401_K` in the US versus `OCCUPATIONAL_PENSION` in the UK and Ireland. Other common values include HEALTHCARE, DENTAL, VISION, LIFE_INSURANCE, ACCIDENT_INSURANCE, and CRITICAL_ILLNESS; the full set may expand as new benefit types are added."},"enrollment_status":{"type":"string","example":"AWAITING_ENROLLMENT","description":"Enrollment lifecycle state for this benefit. Always matches `status` in this API version; both are returned so integrations can use the explicit `enrollment_status` name. PENDING = benefit exists but no enrollment action yet. AWAITING_ENROLLMENT = employee must complete enrollment while an enrollment window applies. AWAITING_CARRIER_CONFIRMATION = submission received; awaiting carrier or administrator confirmation. AWAITING_CONTRACT_ACTIVATION = enrollment cannot complete until the underlying employment contract is active. ENROLLED = active coverage. OPTED_OUT = employee stopped or waived the coverage. TERMINATED = stopped before natural expiry. EXPIRED = coverage window has ended."},"enrollment_window":{"type":"object","required":["starts_at","ends_at","trigger"],"properties":{"ends_at":{"type":"string","example":"2025-01-31","description":"Last date the enrollment window is open (ISO 8601, `YYYY-MM-DD`). After this date, enrollment is locked until a new window is triggered."},"trigger":{"type":"string","example":"open_enrollment","description":"Business reason this window was opened. new_hire = initial enrollment after onboarding completes. open_enrollment = scheduled annual election period. qualifying_life_event = permitted mid-year change after a life event (for example marriage, birth, divorce) per plan rules. termination = window tied to offboarding, often for continuation or COBRA-style elections in applicable jurisdictions."},"starts_at":{"type":"string","example":"2025-01-01","description":"First date the enrollment window is open (ISO 8601, `YYYY-MM-DD`). Enrollment actions are accepted on or after this date only."}},"description":"Calendar window during which the employee may enroll in, change, or opt out of this benefit. Omitted when no window is returned (enrollment changes are then not accepted until a new window opens, for example open enrollment, a qualifying life event, or a new-hire cycle per employer configuration)."},"enrollment_details":{"type":"object","required":["selected_provider","selected_plan","current_cycle_plan_cost","current_cycle_employer_contribution"],"properties":{"selected_plan":{"type":"object","required":["id","name","attachments"],"properties":{"id":{"type":"string","example":"c6f6fa50-badf-4950-88ee-2849e76aac8c","description":"Unique identifier for this benefit plan. Use when referencing the plan in enrollment or amendment API calls."},"name":{"type":"string","example":"Gold","description":"Display name of the plan tier (e.g. 'Gold', 'Silver', 'Bronze'). Shown to employees during enrollment selection and in benefits summaries."},"attachments":{"type":"array","items":{"type":"object","required":["id","label","url"],"properties":{"id":{"type":"string","example":"ce022a6d-c24b-48c5-a1a7-ac91e85035f2","description":"Unique identifier for this attachment document."},"url":{"type":"string","example":"[https://www.provider-a.com/attachments/Canada_Benefits.pdf](https://www.provider-a.com/attachments/Canada_Benefits.pdf)","description":"Direct URL to download or view the attachment. Typically a PDF. Use as the href for a download link."},"label":{"type":"string","example":"Canada_Benefits.pdf","description":"Human-readable filename or label for the attachment (e.g. 'Canada_Benefits.pdf'). Use as the visible text for download links."}}},"description":"Downloadable documents associated with this plan (e.g. Summary of Benefits and Coverage, Certificate of Coverage, plan brochure). Render each item as a labeled download link."}},"description":"The specific benefit plan the employee is enrolled in (e.g. 'Gold', 'Silver', 'Bronze'). Contains the plan's ID, display name, and downloadable plan documents."},"selected_provider":{"type":"object","required":["id","name","home_page_url","attachments"],"properties":{"id":{"type":"string","example":"a8cbeb12-32e3-44e3-3e1d-2a41c014d0b4","description":"Unique identifier for this provider."},"name":{"type":"string","example":"ManuLife","description":"Display name of the insurance carrier or benefit provider (e.g. 'ManuLife', 'Aetna'). Use for labeling in UI."},"is_unisure":{"type":"boolean","example":true,"nullable":false,"description":"True if this benefit is administered through Unisure, a global group insurance platform Deel uses to deliver international EOR benefits. Relevant for understanding the benefit's administration model and claims process."},"attachments":{"type":"array","items":{"type":"object","required":["id","label","url"],"properties":{"id":{"type":"string","example":"ce022a6d-c24b-48c5-a1a7-ac91e85035f2","description":"Unique identifier for this attachment document."},"url":{"type":"string","example":"[https://www.provider-a.com/attachments/Canada_Benefits.pdf](https://www.provider-a.com/attachments/Canada_Benefits.pdf)","description":"Direct URL to download or view the attachment. Use as the href for a download link."},"label":{"type":"string","example":"Canada_Benefits.pdf","description":"Human-readable filename or label for the attachment. Use as the visible text for download links."}}},"description":"Provider-level documents such as general coverage guides, network directories, or enrollment guides. Render each as a labeled download link."},"home_page_url":{"type":"string","example":"[https://wwwec7.manulife.com/signin/#benefits](https://wwwec7.manulife.com/signin/#benefits)","description":"URL to the employee-facing provider portal where the employee can view claims, access ID cards, find in-network providers, and manage coverage details."}},"description":"The insurance carrier or benefit administrator managing the employee's currently enrolled plan. Includes portal access URL and provider-level documents."},"current_cycle_plan_cost":{"type":"number","example":100,"description":"Total cost of the selected plan for the current billing cycle, in the contract's currency. This is the gross plan cost before employer contributions are applied. Subtract current_cycle_employer_contribution to get the employee's net out-of-pocket cost."},"current_cycle_employer_contribution":{"type":"number","example":50,"description":"Amount the employer contributes toward the plan cost for the current billing cycle, in the contract's currency. This is the portion the company pays on the employee's behalf. The employee's actual cost is current_cycle_plan_cost minus this value."}},"description":"Details about the specific plan and provider the employee is currently enrolled in, along with the cost breakdown for the current billing cycle. Reflects the employee's actual enrollment, which may differ from organization_selection if the employee made their own plan choice."},"provider_website_url":{"type":"string","example":"https://provider.example","description":"Public marketing or corporate website for the carrier or administrator. For the employee-facing portal (claims, ID cards, provider search), use `home_page_url` when enrolled."},"employee_contribution":{"type":"object","required":["amount","type","value","currency","frequency"],"properties":{"type":{"type":"string","example":"FIXED_AMOUNT","description":"How the employee contribution is derived. FIXED_AMOUNT = flat currency per `frequency`. PERCENTAGE = percent of an earnings or cost basis defined by the plan. Additional values (for example employer match shapes on retirement benefits) can appear for specialized products."},"value":{"oneOf":[{"type":"number"},{"type":"string"}],"example":"1.23","description":"Raw contribution input from configuration or upstream systems; may be a number or string (for example `\"1.23\"`). Use `amount` for display and arithmetic — it is the normalized numeric value in `currency` per `frequency`."},"amount":{"type":"number","example":100,"description":"Resolved employee contribution in `currency` for each `frequency` period (for example `100` with `USD` and `MONTHLY` means one hundred US dollars per month)."},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code for `amount` (for example USD, CAD, GBP). Matches the parent contract's `currency` for this benefits payload."},"frequency":{"type":"string","example":"MONTHLY","description":"Payroll or billing cadence for this contribution. Typical values include MONTHLY, SEMI_MONTHLY (twice per month), BIWEEKLY, WEEKLY, and ANNUALLY; exact strings follow Deel payroll configuration."}},"description":"Recurring portion of plan cost collected from the employee's pay for this benefit. Expressed with calculation metadata (`type`, `value`), resolved `amount`, `currency`, and `frequency`. For a given period, `employee_contribution.amount` plus `employer_contribution.amount` reflects the split of premium or plan cost represented here; use `enrollment_details` cycle fields when you need billed totals for the current cycle."},"employer_contribution":{"type":"object","required":["amount","type","value","currency","frequency"],"properties":{"type":{"type":"string","example":"FIXED_AMOUNT","description":"How the employer contribution is derived. FIXED_AMOUNT = flat currency per `frequency`. PERCENTAGE = percent of an earnings or cost basis. Additional values may appear for specialized products."},"value":{"oneOf":[{"type":"number"},{"type":"string"}],"example":50,"description":"Raw employer contribution input; may be number or string depending on source. Prefer `amount` for calculations and UI."},"amount":{"type":"number","example":50,"description":"Resolved employer contribution in `currency` per `frequency` period."},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code for `amount`. Matches the parent contract's `currency`."},"frequency":{"type":"string","example":"MONTHLY","description":"Cadence at which the employer contribution is applied. Same vocabulary as `employee_contribution.frequency`."}},"description":"Recurring employer-paid portion for this benefit, same shape as `employee_contribution`. Together with `employee_contribution.amount`, describes how premium or plan cost is split for the modeled period; billed totals for the active cycle may also appear under `enrollment_details`."},"organization_selection":{"type":"object","required":["selected_provider","selected_plan"],"properties":{"selected_plan":{"type":"object","required":["id","name","attachments"],"properties":{"id":{"type":"string","example":"c6f6fa50-badf-4950-88ee-2849e76aac8c","description":"Unique identifier for the organization's selected plan."},"name":{"type":"string","example":"Gold","description":"Display name of the plan tier the organization has selected (e.g. 'Gold', 'Silver'). Shown to employees as the employer-offered default."},"attachments":{"type":"array","items":{"type":"object","required":["id","label","url"],"properties":{"id":{"type":"string","example":"ce022a6d-c24b-48c5-a1a7-ac91e85035f2","description":"Unique identifier for this attachment document."},"url":{"type":"string","example":"[https://www.provider-a.com/attachments/Canada_Benefits.pdf](https://www.provider-a.com/attachments/Canada_Benefits.pdf)","description":"Direct URL to download or view the attachment."},"label":{"type":"string","example":"Canada_Benefits.pdf","description":"Human-readable filename or label for the attachment."}}},"description":"Downloadable plan documents for the organization's selected plan."}},"description":"The plan tier the organization has chosen to offer employees by default for this benefit."},"selected_provider":{"type":"object","required":["id","name","home_page_url","attachments"],"properties":{"id":{"type":"string","example":"f8cbeb32-14e3-44e3-3e1d-2a41c014d0b4","description":"Unique identifier for the organization's selected provider."},"name":{"type":"string","example":"ManuLife","description":"Display name of the provider the organization has selected (e.g. 'ManuLife', 'Aetna')."},"is_unisure":{"type":"boolean","example":true,"nullable":false,"description":"True if this provider is Unisure, a global group insurance platform used by Deel for international EOR benefits."},"attachments":{"type":"array","items":{"type":"object","required":["id","label","url"],"properties":{"id":{"type":"string","example":"ce022a6d-c24b-48c5-a1a7-ac91e85035f2","description":"Unique identifier for this attachment document."},"url":{"type":"string","example":"[https://www.provider-a.com/attachments/Canada_Benefits.pdf](https://www.provider-a.com/attachments/Canada_Benefits.pdf)","description":"Direct URL to download or view the attachment."},"label":{"type":"string","example":"Canada_Benefits.pdf","description":"Human-readable filename or label for the attachment."}}},"description":"Provider-level documents associated with the organization's selected provider."},"home_page_url":{"type":"string","example":"[https://wwwec7.manulife.com/signin/#benefits](https://wwwec7.manulife.com/signin/#benefits)","description":"URL to the employee-facing portal for the organization's selected provider."}},"description":"The insurance carrier or benefit provider the organization has contracted with to administer this benefit."}},"description":"The plan and provider the client organization has configured as the default offering for this benefit type. This reflects the employer's choice, which may differ from enrollment_details if the employee hasn't enrolled yet or selected a different option during open enrollment."}}},"description":"All benefits associated with this contract, regardless of enrollment status. Includes benefits the employee is enrolled in, has opted out of, or is pending enrollment for."},"currency":{"type":"string","example":"USD","nullable":false,"description":"ISO 4217 currency code for all monetary amounts within this contract's benefits (e.g. 'USD', 'CAD', 'GBP'). Applies to all cost and contribution fields in this contract grouping."},"contract_id":{"type":"string","example":"m7yg6zp","nullable":false,"description":"Unique identifier for the employment contract these benefits are associated with. Use to correlate benefits with a specific contract when the employee has multiple active engagements."}}},"description":"List of contracts with their associated benefits. An employee may have benefits across multiple contracts if they have more than one active engagement."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns the benefits for the authenticated employee. The employee identity is inferred from the auth token, so this endpoint must be called with an employee-scoped token rather than a client token.\n\n **Token scopes**: `benefits:read`","operationId":"retrieveBenefitsForEmployee-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["benefits:read"]}]}},"/immigration/visa-types/{country_code}":{"get":{"path":"/rest/immigration/visa-types/{country_code}","tags":["Immigration"],"method":"get","summary":"Immigration visa types","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"The unique identifier of a visa type."},"name":{"type":"string","example":"Eu blue card","description":"The name of a visa."}}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"country_code","schema":{"type":"string"},"example":"US","required":true,"description":"Alpha 2 country code"}],"description":"Returns the visa types supported for immigration processing in a country, identified by its Alpha-2 country code.\n\n **Token scopes**: `immigration:read`","operationId":"immigrationVisaTypes-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/eor/workers/compliance-documents/{document_id}/templates/download":{"get":{"path":"/rest/eor/workers/compliance-documents/{document_id}/templates/download","tags":["EOR"],"method":"get","summary":"Download employee compliance document template","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"url":{"type":"string","example":"https://api-prod.letsdeel.com/contract_requirement_templates/12345.pdf","description":"The URL for the requested compliance document template."},"expires_at":{"type":"string","format":"date-time","example":"2020-03-31T10:58:49.780Z","nullable":true,"description":"Expiration date time of download URL."},"updated_at":{"type":"string","format":"date-time","example":"2025-06-23T11:22:16.160Z","description":"Last modified date of the template file"}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"document_id","schema":{"type":"string"},"example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","required":true,"description":"Unique identifier for a compliance document in Deel."}],"description":"Returns a time-limited download URL for the compliance document template associated with the given `document_id`, only if a template exists for that document.\n\n **Token scopes**: `worker:read`","operationId":"downloadEmployeeComplianceDocumentTemplate-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/candidates":{"post":{"path":"/rest/candidates","tags":["Candidates"],"method":"post","summary":"Add Candidate","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean","example":true,"description":"Indicates if the candidate was created successfully."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates a candidate record for contractor onboarding outside of an ATS flow. The returned record can be used in subsequent contract creation calls.\n\n **Token scopes**: `candidates:write`","operationId":"addCandidate-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","first_name","last_name","status","start_date","link"],"properties":{"id":{"type":"string","example":"123456","description":"Unique identifier of candidate in your ATS."},"link":{"type":"string","example":"https://atsexample.com/profile/id","description":"Link to candidate's profile in ATS."},"email":{"type":"string","format":"email","example":"john@company.com","minLength":5,"description":"Worker's work email address."},"state":{"type":"string","example":"AL","maxLength":50,"minLength":1,"description":"Job location state."},"status":{"enum":["offer-accepted","offer-sent","offer-declined","offer-deleted"],"type":"string","example":"offer-accepted","description":"Offer status"},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"Country code."},"job_title":{"type":"string","example":"3D Designer","description":"Job Title."},"last_name":{"type":"string","example":"Doe","description":"Candidate's last name."},"first_name":{"type":"string","example":"John","description":"Candidate's first name."},"start_date":{"type":"string","format":"date","example":"2022-12-31","description":"Short date in format ISO-8601 (YYYY-MM-DD)."},"nationality":{"type":"string","example":"US","maxLength":2,"minLength":2,"description":"Nationality of the worker."},"personal_email":{"type":"string","format":"email","example":"john@personal.com","minLength":5,"description":"Worker's personal email address."}},"description":"Details of candidate to create"}}}}},"required":true,"description":"Add a candidate to Deel"},"security":[{"deelToken":[]},{"oauth2":["candidates:write"]}]}},"/forms/eor/create-contract/{country_code}":{"get":{"path":"/rest/forms/eor/create-contract/{country_code}","tags":["Forms"],"method":"get","summary":"Fetch EOR Contract form","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["pages"],"properties":{"pages":{"type":"array","items":{"type":"object","required":["title","sections"],"properties":{"title":{"type":"string","example":"Personal Details","description":"Title of the form page."},"sections":{"type":"array","items":{"type":"object","required":["title","questions"],"properties":{"title":{"type":"string","example":"Team information","description":"Title of the section."},"subtitle":{"type":"string","example":"Information about the team","description":"Additional information shown at the top of the section."},"questions":{"type":"array","items":{"type":"object","required":["title","type","key"],"properties":{"key":{"type":"string","example":"client.legal_entity.id","description":"Unique key identifier for the question."},"type":{"enum":["FreeText","Paragraph","SingleSelection","MultiSelection","Address","PhoneNumber","DocumentUpload","Number","Dropdown","DatePicker","Email","CustomDropdown","PresetDropdown","Nested"],"type":"string","example":"Dropdown","description":"Type of the question."},"rules":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","example":"Legal entity ID","description":"Title of the question."},"source":{"type":"object","nullable":true,"properties":{"url":{"type":"string","example":"/rest/v2/legal-entities","description":"API endpoint providing dynamic options."},"definition":{"type":"string","example":"https://developer.deel.com/reference/getlegalentitylist","description":"Reference URL for API documentation."},"description":{"type":"string","example":"Available legal entities for selection must be dynamically fetched","description":"Description of the data source."}},"description":"Defines dynamic data source for the question."},"options":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","example":"Yes","description":"Display text for the option."},"value":{"type":"string","example":"true","nullable":true,"description":"Value associated with the option."}}},"example":[{"title":"Yes","value":"true"},{"title":"No","value":"false"}],"nullable":true,"description":"List of selectable options for selection-type questions. Value may be of any type."},"is_range":{"type":"boolean","example":false,"description":"Specifies whether a date picker allows range selection."},"requires":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string","example":"employee.nationality","description":"Key of the dependent field."},"value":{"anyOf":[{"type":"string","nullable":true},{"type":"number","nullable":true},{"type":"boolean","nullable":true}],"example":true,"description":"Expected value for the condition."},"operator":{"type":"string","example":"ne","nullable":true,"description":"Comparison operator (e.g., 'eq', 'ne')."},"compare_key":{"type":"string","example":"employment.country","nullable":true,"description":"Key of the field to compare against."}}},"description":"List of conditions that must be met for this rule to apply."},"max_value":{"anyOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}],"example":180,"description":"Maximum value allowed."},"min_value":{"anyOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}],"example":0,"description":"Minimum value allowed."},"max_length":{"type":"integer","example":255,"nullable":true,"description":"Maximum character length for text responses."},"min_length":{"type":"integer","example":1,"nullable":true,"description":"Minimum character length for text responses."},"helper_text":{"type":"string","example":"Please select the appropriate legal entity.","nullable":true,"description":"Additional information to assist the user."},"is_disabled":{"type":"boolean","example":false,"description":"If true, the field is disabled and cannot be edited."},"is_required":{"type":"boolean","example":true,"description":"Indicates if the question is required."},"number_type":{"type":"string","example":"CURRENCY","description":"Used for number fields to define the unit or representation."},"default_value":{"anyOf":[{"type":"string","nullable":true},{"type":"number","nullable":true},{"type":"boolean","nullable":true}],"example":40,"description":"Default value to pre-fill in the form."},"is_only_digits":{"type":"boolean","example":false,"description":"Restricts input to numeric characters only, for FreeText questions."},"date_limitation":{"type":"string","example":"BLOCK_PAST","nullable":true,"description":"Limits date selection (e.g., blocking past dates). Will always be 'BLOCK_PAST' for now."},"is_multiple_selection":{"type":"boolean","example":false,"description":"Indicates if the user can select multiple values."},"must_request_validation":{"type":"boolean","example":true,"description":"Whether additional validation should be triggered for this field."}}},"nullable":true,"description":"Validation rules for the question."},"title":{"type":"string","example":"Legal entity ID","description":"Title of the question."},"source":{"type":"object","nullable":true,"properties":{"url":{"type":"string","example":"/rest/v2/legal-entities","description":"API endpoint providing dynamic options."},"definition":{"type":"string","example":"https://developer.deel.com/reference/getlegalentitylist","description":"Reference URL for API documentation."},"description":{"type":"string","example":"Available legal entities for selection must be dynamically fetched","description":"Description of the data source."}},"description":"Defines dynamic data source for the question."},"options":{"type":"array","items":{"type":"object","properties":{"rules":{"type":"array","items":{"type":"object","description":"A rule that modifies another question based on this option being selected."},"nullable":true,"description":"Conditional rules that apply when this option is selected."},"title":{"type":"string","example":"Yes","description":"Display text for the option."},"value":{"type":"string","example":"true","nullable":true,"description":"Value associated with the option."},"is_disabled":{"type":"boolean","example":false,"nullable":true,"description":"Whether this specific option is disabled for the selected country."}}},"example":[{"title":"Yes","value":"true"},{"title":"No","value":"false"}],"nullable":true,"description":"List of selectable options for selection-type questions. Value may be of any type."},"is_range":{"type":"boolean","example":false,"description":"Specifies whether a date picker allows range selection."},"max_value":{"anyOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}],"example":180,"description":"Maximum value allowed."},"min_value":{"anyOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}],"example":0,"description":"Minimum value allowed."},"questions":{"type":"array","items":{"type":"object","description":"A single child question within a Nested parent."},"nullable":true,"description":"For Nested questions: the child questions within this group."},"time_unit":{"type":"string","example":"days","nullable":true,"description":"Time unit associated with numeric duration questions."},"max_length":{"type":"integer","example":255,"nullable":true,"description":"Maximum character length for text responses."},"min_length":{"type":"integer","example":1,"nullable":true,"description":"Minimum character length for text responses."},"variant_id":{"type":"string","example":"employment.start_date.default","nullable":true,"description":"Variant identifier used to distinguish different renderings of the same key."},"helper_text":{"type":"string","example":"Please select the appropriate legal entity.","nullable":true,"description":"Additional information to assist the user."},"is_disabled":{"type":"boolean","example":false,"description":"If true, the field is disabled and cannot be edited."},"is_required":{"type":"boolean","example":true,"description":"Indicates if the question is required."},"number_type":{"type":"string","example":"CURRENCY","description":"Used for number fields to define the unit or representation."},"default_value":{"anyOf":[{"type":"string","nullable":true},{"type":"number","nullable":true},{"type":"boolean","nullable":true}],"example":40,"description":"Default value to pre-fill in the form."},"is_only_digits":{"type":"boolean","example":false,"description":"Restricts input to numeric characters only, for FreeText questions."},"additional_info":{"type":"object","oneOf":[{"type":"object","title":"StartDateAdditionalInfo","required":["payroll_lock","min_value_buffer_in_days","is_same_month_payment_country"],"properties":{"payroll_lock":{"type":"integer","example":20,"description":"Day of the month after which the start date can no longer be set in the current month (payroll lock day)."},"min_value_buffer_in_days":{"type":"integer","example":0,"description":"Minimum number of days from today before a start date can be selected. A value of 0 means the earliest available date is today (or the first upcoming payroll-eligible date)."},"is_same_month_payment_country":{"type":"boolean","example":false,"description":"Whether this country processes payroll in the same month as the employment start date (true) or the following month (false)."}},"description":"Additional info for the `employment.start_date` question."},{"type":"object","title":"EndDateAdditionalInfo","required":["type"],"properties":{"type":{"enum":["NOT_ALLOWED","ALLOWED_WITHOUT_LIMITATION","ALLOWED_WITH_MAXIMUM_LIMITATION"],"type":"string","example":"ALLOWED_WITHOUT_LIMITATION","description":"Definite-contract policy for this country. Possible values: NOT_ALLOWED (no fixed-term contracts), ALLOWED_WITHOUT_LIMITATION (fixed-term allowed without duration limit), ALLOWED_WITH_MAXIMUM_LIMITATION (fixed-term allowed up to a maximum duration)."},"min_value_buffer_in_days":{"type":"integer","example":90,"nullable":true,"description":"Minimum fixed-term contract duration in days. Null when definite contracts are not allowed (type is NOT_ALLOWED). Represents the minimum gap between start_date and end_date."},"maximum_limitation_in_months":{"type":"integer","example":24,"nullable":true,"description":"Maximum fixed-term contract duration in months. Null when there is no maximum limitation."}},"description":"Additional info for the `employment.end_date` question."},{"type":"object","title":"SalaryAdditionalInfo","required":["min_salary","max_salary","additional_payments"],"properties":{"max_salary":{"type":"number","example":800000,"description":"Maximum allowable gross annual salary for this country."},"min_salary":{"type":"number","example":11088,"description":"Minimum allowable gross annual salary for this country."},"additional_payments":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","example":0,"nullable":true,"description":"Fixed amount of the payment (0 when it is percentage-based)."},"payment_name":{"type":"string","example":"13th salary","description":"Display name of the additional payment."},"invoicing_type":{"type":"string","example":"Multiple Months","nullable":true,"description":"How the payment is invoiced (e.g. Single Month, Multiple Months)."},"invoicing_months":{"type":"array","items":{"type":"string"},"example":["November","December"],"nullable":true,"description":"Months in which the payment is invoiced."},"how_its_calculated":{"type":"string","example":"Calculated as 1/12 of annual earnings.","nullable":true,"description":"Human-readable explanation of the calculation method."},"payment_local_name":{"type":"string","example":"Décimo Terceiro Salário","nullable":true,"description":"Local-language name of the additional payment."}}},"description":"Country-mandated irregular payments (e.g. 13th salary, profit sharing) that are included in the total employment cost."},"part_time_holiday_type":{"type":"string","example":"PRORATED","description":"How holiday pay is calculated for part-time employees (e.g. PRORATED, STANDARD)."},"standard_hours_per_week":{"type":"number","example":40,"description":"Standard working hours per week used as the full-time reference."}},"description":"Additional info for the `compensation_details.salary` question."},{"type":"object","title":"HolidaysAdditionalInfo","required":["min_holidays","standard_hours_per_week"],"properties":{"max_holidays":{"type":"number","example":null,"nullable":true,"description":"Maximum paid vacation days allowed. Null when there is no upper limit."},"min_holidays":{"type":"number","example":20,"description":"Minimum statutory paid vacation days for this country."},"part_time_holiday_type":{"type":"string","example":"STANDARD","description":"How holiday entitlement is calculated for part-time employees (e.g. PRORATED, STANDARD)."},"standard_hours_per_week":{"type":"number","example":40,"description":"Standard working hours per week used as the full-time reference."}},"description":"Additional info for the `employment.holidays` question."},{"type":"object","title":"ProbationAdditionalInfo","required":["probation_type_for_definite"],"properties":{"specific_calculation_rules":{"type":"object","nullable":true,"properties":{"time_unit":{"enum":["DAY","WEEK","MONTH"],"type":"string","example":"DAY","description":"Time unit for all probation durations in this object (DAY, WEEK, or MONTH)."},"max_probation_for_definite":{"type":"number","example":90,"description":"Maximum probation duration (in the unit specified by time_unit)."},"min_probation_for_definite":{"type":"number","example":30,"description":"Minimum probation duration (in the unit specified by time_unit)."},"max_probation_type_for_definite":{"type":"string","example":"ONE_THIRD_OF_CONTRACT_DURATION","description":"The formula used to derive the maximum probation period for a definite contract."}},"description":"Calculation rules when probation_type_for_definite is SPECIFIC_CALCULATION. Null for other types."},"probation_type_for_definite":{"enum":["STANDARD","SPECIFIC_CALCULATION","SPECIFIC_TO_DURATION_OF_CONTRACT"],"type":"string","example":"SPECIFIC_CALCULATION","description":"How the probation period is determined for definite (fixed-term) contracts. Possible values: STANDARD (fixed statutory period), SPECIFIC_CALCULATION (calculated from a rule), SPECIFIC_TO_DURATION_OF_CONTRACT (derived from contract length)."},"specific_to_duration_of_contract_rules":{"type":"array","items":{"type":"object","properties":{"time_unit":{"enum":["DAY","WEEK","MONTH"],"type":"string","description":"Time unit for probation_period and min_probation_period (DAY, WEEK, or MONTH)."},"probation_period":{"type":"number","description":"Probation duration for contracts in this range."},"min_probation_period":{"type":"number","description":"Minimum probation duration for contracts in this range."},"max_employment_duration":{"type":"number","nullable":true,"description":"Upper bound of the contract duration range. Null when unbounded."},"min_employment_duration":{"type":"number","description":"Lower bound of the contract duration range."},"employment_duration_type":{"enum":["DAY","WEEK","MONTH","YEAR"],"type":"string","description":"Time unit for the employment duration bounds (DAY, WEEK, MONTH, or YEAR)."}}},"nullable":true,"description":"Rules mapping contract duration ranges to probation periods when probation_type_for_definite is SPECIFIC_TO_DURATION_OF_CONTRACT. Null for other types."}},"description":"Additional info for the `employment.probation_period` question."},{"type":"object","title":"NoticePeriodAdditionalInfo","required":["notice_period_rule_type","notice_period_time_unit","notice_period_settings"],"properties":{"notice_period_settings":{"type":"array","items":{"type":"object","properties":{"tenure_rules":{"type":"array","items":{"type":"object","properties":{"time_unit":{"enum":["DAY","WEEK","MONTH"],"type":"string","example":"DAY","description":"Time unit for notice_value."},"notice_value":{"type":"integer","example":15,"description":"Notice period value for contracts in this tenure range."},"max_employment_duration":{"type":"integer","example":12,"nullable":true,"description":"Upper bound of the employment-duration range. Null when unbounded."},"min_employment_duration":{"type":"integer","example":0,"description":"Lower bound of the employment-duration range."},"employment_duration_type":{"enum":["DAY","WEEK","MONTH","YEAR"],"type":"string","example":"MONTH","description":"Time unit for the employment-duration bounds."}}},"description":"Tenure-based notice period rules, used when the notice type is TENURE_BASED."},"employment_term":{"enum":["DEFINITE","INDEFINITE"],"type":"string","example":"INDEFINITE","description":"Employment term this rule applies to."},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Employment type this rule applies to."},"type_for_after_probation":{"type":"string","example":"SPECIFIC","description":"How the notice period is determined after probation (e.g. NO_NOTICE_PERIOD, MIN_MAX_LIMITED, SPECIFIC, TENURE_BASED)."},"type_for_during_probation":{"type":"string","example":"MIN_MAX_LIMITED","description":"How the notice period is determined during probation (e.g. NO_NOTICE_PERIOD, MIN_MAX_LIMITED, SPECIFIC, TENURE_BASED)."},"notice_period_after_probation":{"type":"object","properties":{"max_value":{"type":"integer","example":4,"nullable":true,"description":"Maximum notice period value. Null when not applicable."},"min_value":{"type":"integer","example":1,"nullable":true,"description":"Minimum notice period value. Null when not applicable."},"time_unit":{"enum":["DAY","WEEK","MONTH"],"type":"string","example":"WEEK","description":"Time unit for the notice period values."},"default_value":{"type":"integer","example":7,"nullable":true,"description":"Default notice period value. Null when there is no default."}},"description":"Notice period minimum/maximum bounds and default for this segment."},"notice_period_during_probation":{"type":"object","properties":{"max_value":{"type":"integer","example":90,"nullable":true,"description":"Maximum notice period value. Null when not applicable."},"min_value":{"type":"integer","example":30,"nullable":true,"description":"Minimum notice period value. Null when not applicable."},"time_unit":{"enum":["DAY","WEEK","MONTH"],"type":"string","example":"DAY","description":"Time unit for the notice period values."},"default_value":{"type":"integer","example":null,"nullable":true,"description":"Default notice period value. Null when there is no default."}},"description":"Notice period minimum/maximum bounds and default for this segment."}}},"description":"Notice-period configuration, one entry per employment type and term combination."},"notice_period_rule_type":{"type":"string","example":"LIMITED_AGREEMENT","description":"Notice-period rule type for the country (e.g. LIMITED_AGREEMENT, FIXED_AGREEMENT)."},"notice_period_time_unit":{"type":"string","example":"WEEK","description":"Primary display time unit for the notice period (DAY, WEEK, or MONTH)."}},"description":"Additional info for the `employment.notice_period_type` question."}],"example":{"payroll_lock":20,"min_value_buffer_in_days":0,"is_same_month_payment_country":false},"nullable":true,"description":"Country-specific metadata for the question. The shape depends on the question key: `employment.start_date` → payroll scheduling info; `employment.end_date` → definite-contract configuration; `compensation_details.salary` → salary bounds; `employment.holidays` → PTO bounds; `employment.probation_period` → probation rules; `employment.notice_period_type` → notice period rules matrix."},"date_limitation":{"enum":["BLOCK_PAST","BLOCK_FUTURE"],"type":"string","example":"BLOCK_PAST","nullable":true,"description":"Limits date selection (e.g., blocking past dates). Will always be 'BLOCK_PAST' for now."},"is_multiple_selection":{"type":"boolean","example":false,"description":"Indicates if the user can select multiple values."},"must_request_validation":{"type":"boolean","example":true,"description":"Whether additional validation should be triggered for this field."}}},"description":"List of questions within the section."},"is_disabled":{"type":"boolean","example":false,"nullable":true,"description":"Whether the entire section is disabled."}}},"description":"Sections within the page."},"is_disabled":{"type":"boolean","example":false,"nullable":true,"description":"Whether the entire page is disabled for the selected country."}}},"description":"List of pages in the form."}}}}}}},"description":"Successful response containing form configuration data."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","example":404,"description":"HTTP status code."},"message":{"type":"string","example":"Country not found.","description":"Human-readable error message."}}}}}}},"description":"Country not found or EOR not available in the requested country."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"integer","example":500,"description":"HTTP status code."},"message":{"type":"string","example":"An unexpected error occurred.","description":"Human-readable error message."}}}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"state","schema":{"type":"string"},"example":"SP","required":false,"description":"The selected state code of the contract. This is only required for countries that specify it."},{"in":"query","name":"start_date","schema":{"type":"string","format":"date"},"example":"2025-09-03","required":false,"description":"The selected start date of the contract in ISO 8601 formatted date string."},{"in":"query","name":"work_hours_per_week","schema":{"type":"integer","maximum":168,"minimum":1},"example":40,"required":false,"description":"The selected number of work hours per week."},{"in":"query","name":"contract_duration_in_days","schema":{"type":"integer","minimum":1},"example":360,"required":false,"description":"The contract duration in days for definite contracts."},{"in":"path","name":"country_code","schema":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2},"example":"BR","required":true,"description":"Two-letter country code in ISO 3166-1 alpha-2 format"}],"description":"Retrieves the versioned form definition for creating an EOR contract in the specified country, including fields, validation rules, and conditional logic. The `state` parameter is only required for countries that mandate it.\n\n **Token scopes**: `forms:read`","operationId":"fetchEorContractForm-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["forms:read"]}]}},"/eor/{oid}/terminations/{terminationId}":{"get":{"path":"/rest/eor/{oid}/terminations/{terminationId}","tags":["EOR"],"method":"get","summary":"Get termination","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number","format":"float"},"end_date":{"type":"string","format":"date-time","example":"'2025-01-31T00:00:00.000Z'","nullable":true,"description":"The definitive contract end date"},"contract_id":{"type":"string","example":"5B74FnLM","description":"Public contract oid"},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"type":"string","nullable":true},"end_date":{"type":"string","format":"date-time","example":"'2025-01-31T00:00:00.000Z'","nullable":true,"description":"The definitive contract end date"},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request"},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible"},"termination_impact":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","example":"Bad Impact","description":"Termination impact title"},"description":{"type":"string","example":"It will be bad","description":"Termination impact description"}},"description":"Custom termination impact data if there is some configured on HR module"},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again"},"eligible_for_rehire_reason":{"type":"string","example":false,"nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligibleForRehire"},"custom_termination_reason_id":{"type":"number","format":"float","nullable":true,"description":"Custom termination reason ID. A custom termination reason can be added on Client HR module"}}},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible"}}}}},"description":"Ok response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"minItems":1}}},"description":"Unauthorized response"},"403":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"minItems":1}}},"description":"Forbidden response"},"404":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"minItems":1}}},"description":"Not Found response"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"oid","schema":{"type":"string"},"required":true,"description":"Public contract oid"},{"in":"path","name":"terminationId","schema":{"type":"string"},"required":true,"description":"Termination id"}],"description":"Returns termination data for the specified contract and termination record. Requires viewer permissions.\n\n **Token scopes**: `contracts:read`","operationId":"getEorTermination-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/veriff/session":{"post":{"path":"/rest/veriff/session","tags":["Screenings"],"method":"post","summary":"Create Veriff session","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url"],"properties":{"url":{"type":"string","example":"https://magic.veriff.me/v/some.jwt.token","description":"The URL of the Veriff session"}}}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Initiates an identity verification session via Veriff, returning a URL to which the worker must be redirected to complete the verification flow.\n\n **Token scopes**: `screenings:write`, `worker:write`","operationId":"createVeriffSession-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["operation_type"],"properties":{"user_input":{"type":"object","required":["first_name","last_name"],"properties":{"last_name":{"type":"string","example":"Doe","nullable":false,"description":"The desired last name of the user"},"first_name":{"type":"string","example":"John","nullable":false,"description":"The desired first name of the user"},"middle_name":{"type":"string","example":"Smith","nullable":true,"description":"The desired middle name of the user"}},"description":"Input data for the name change KYC operation"},"operation_type":{"enum":["IDENTITY_RESUBMISSION_KYC","IDENTITY_VERIFICATION_KYC","NAME_CHANGE_KYC","EMAIL_CHANGE_KYC"],"type":"string","example":"IDENTITY_RESUBMISSION_KYC","description":"The type of KYC operation to perform"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["screenings:write","worker:write"]}]}},"/workers/contracts/{contract_id}/reject":{"post":{"path":"/rest/workers/contracts/{contract_id}/reject","tags":["Contracts"],"method":"post","summary":"Reject contract","responses":{"204":{"description":"No Content"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"32yn4e6","required":true,"description":"The unique public identifier of the contract to reject. This is the contract's public ID that can be used to identify the specific contract in the system."}],"description":"Rejects a contract identified by contract_id, provided it is currently in a pending, unsigned state. Contracts that have already been signed or previously rejected are not eligible for this operation.\n\n **Token scopes**: `worker:write`","operationId":"rejectContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/payouts/employees/methods/bank_transfers/requirements":{"post":{"path":"/rest/payouts/employees/methods/bank_transfers/requirements","tags":["Payouts"],"method":"post","summary":"Dynamic Requirements","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"steps":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"CUSTOMIZE_ACCOUNT","description":"Step name"},"banner":{"example":null,"nullable":true,"description":"Banner information"},"header":{"type":"string","example":"Custom account name","description":"Step header"},"categories":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"CUSTOMIZATION","description":"Category name"},"alert":{"type":"object","properties":{"type":{"type":"string","example":"INFO","description":"Alert type"},"title":{"type":"string","example":"Account Name","description":"Alert title"},"message":{"type":"string","example":"Add custom account name","description":"Alert message"}},"description":"Alert information"},"banner":{"example":null,"nullable":true,"description":"Banner information"},"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"number","example":1678,"description":"Field ID"},"key":{"type":"string","example":"custom_name","description":"Field key"},"name":{"type":"string","example":"Account Custom Name","description":"Field name"},"type":{"type":"string","example":"text","description":"Field type"},"example":{"example":null,"nullable":true,"description":"Example value"},"tooltip":{"example":null,"nullable":true,"description":"Tooltip information"},"category":{"type":"string","example":"CUSTOMIZATION","description":"Field category"},"disabled":{"type":"boolean","example":false,"description":"Indicates if the field is disabled"},"required":{"type":"boolean","example":false,"description":"Indicates if the field is required"},"sensitive":{"type":"boolean","example":false,"description":"Indicates if the field is sensitive"},"max_length":{"type":"string","example":"30","description":"Maximum length of the field"},"min_length":{"type":"string","example":"0","description":"Minimum length of the field"},"values_allowed":{"example":null,"nullable":true,"description":"Allowed values for the field"},"validation_regexp":{"example":null,"nullable":true,"description":"Validation regex pattern"},"validation_regex_flags":{"example":null,"nullable":true,"description":"Validation regex flags"}}},"example":[{"id":1678,"key":"custom_name","name":"Account Custom Name","type":"text","example":null,"tooltip":null,"category":"CUSTOMIZATION","disabled":false,"required":false,"sensitive":false,"max_length":"30","min_length":"0","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null}],"description":"Fields in the category"},"header":{"type":"string","example":"Account name","description":"Category header"},"priority":{"type":"number","example":1,"description":"Category priority"}}},"example":[{"name":"CUSTOMIZATION","alert":{"type":"INFO","title":"Account Name","message":"Add custom account name"},"banner":null,"fields":[{"id":1678,"key":"custom_name","name":"Account Custom Name","type":"text","example":null,"tooltip":null,"category":"CUSTOMIZATION","disabled":false,"required":false,"sensitive":false,"max_length":"30","min_length":"0","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null}],"header":"Account name","priority":1}],"description":"Categories of the steps"},"right_side_placeholder":{"type":"string","example":"Customize account","description":"Right side placeholder"}}},"example":[{"name":"CUSTOMIZE_ACCOUNT","banner":null,"header":"Custom account name","categories":[{"name":"CUSTOMIZATION","alert":{"type":"INFO","title":"Account Name","message":"Add custom account name"},"banner":null,"fields":[{"id":1678,"key":"custom_name","name":"Account Custom Name","type":"text","example":null,"tooltip":null,"category":"CUSTOMIZATION","disabled":false,"required":false,"sensitive":false,"max_length":"30","min_length":"0","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null}],"header":"Account name","priority":1}],"right_side_placeholder":"Customize account"},{"name":"BANK_DETAILS","banner":null,"header":"Bank account details","categories":[{"name":"ROUTING","alert":null,"banner":null,"fields":[{"id":1676,"key":"payment_type","name":"Payment type","type":"select","example":null,"tooltip":null,"category":"ROUTING","disabled":false,"required":false,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":[{"key":"bank_transfer","name":"Bank transfer"},{"key":"paper_checks","name":"Paper checks"}],"validation_regexp":null,"validation_regex_flags":null},{"id":1677,"key":"currency_code","name":"Currency","type":"select","example":null,"tooltip":null,"category":"ROUTING","disabled":false,"required":true,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":[{"key":"AED","name":"AED - United Arab Emirates Dirham"},{"key":"AFN","name":"AFN - Afghani"},{"key":"ALL","name":"ALL - Albanian Lek"}],"validation_regexp":null,"validation_regex_flags":null},{"id":1679,"key":"bank_country_code","name":"Bank Country Code","type":"select","example":null,"tooltip":null,"category":"ROUTING","disabled":false,"required":true,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":[{"key":"AD","name":"Andorra"},{"key":"AT","name":"Austria"},{"key":"BE","name":"Belgium"}],"validation_regexp":null,"validation_regex_flags":null}],"header":"Payment details","priority":2},{"name":"BANK_DETAILS","alert":null,"banner":null,"fields":[{"id":109,"key":"swift_bic","name":"SWIFT BIC Code","type":"text","example":"BUKBGB22","tooltip":null,"category":"BANK_DETAILS","disabled":false,"required":true,"sensitive":false,"max_length":"11","min_length":"8","values_allowed":null,"validation_regexp":"^[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?$","validation_regex_flags":""},{"id":321,"key":"iban","name":"IBAN","type":"text","example":"SE4550000000058398257466","tooltip":"International Bank Number","category":"BANK_DETAILS","disabled":false,"required":true,"sensitive":false,"extensions":["swift_bic","bank_name"],"max_length":null,"min_length":null,"values_allowed":null,"validation_regexp":"^[^\\s-]+$","validation_regex_flags":""}],"header":"Account details","priority":1,"sub_header":"Please make sure your account is in the <bold>same currency as your contract</bold> to avoid any delays"}],"right_side_placeholder":"Add bank account details"},{"name":"RECIPIENT_DETAILS","banner":null,"header":"Personal information","categories":[{"name":"PERSONAL","alert":null,"banner":null,"fields":[{"id":34,"key":"full_name","name":"Full Name","type":"text","example":null,"tooltip":"With no special characters and only Latin characters","category":"PERSONAL","disabled":false,"required":true,"sensitive":false,"max_length":"140","min_length":"1","values_allowed":null,"validation_regexp":"^[a-zA-ZàáâǎäãåāÀÁÂÄÃÅĀæÆçćčÇĆČèéêëēėęÈÉÊËĒĖĘîïíīįìÎÏÍĪĮÌłŁñńÑŃöòóøôōõÖÒÓØŌÕÔœŒßẞțśșšşŚŠŞûüùúūÛÜÙÚŪÿŸžźżŽŹŻ '-.]*$","validation_regex_flags":""}],"header":"Recipient details","priority":2},{"name":"ADDRESS","alert":null,"banner":null,"fields":[{"id":68,"key":"address_line1","name":"Address Line 1","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":"70","min_length":"1","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null},{"id":69,"key":"address_line2","name":"Address Line 2","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":false,"sensitive":false,"max_length":"70","min_length":"0","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null},{"id":70,"key":"city","name":"City","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":"35","min_length":"1","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null},{"id":107,"key":"country_code","name":"Country Code","type":"select","example":"US","tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":[{"key":"AD","name":"Andorra"},{"key":"AE","name":"United Arab Emirates"},{"key":"AF","name":"Afghanistan"}],"validation_regexp":null,"validation_regex_flags":null},{"id":211,"key":"province_state","name":"State","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":"35","min_length":"1","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null},{"id":287,"key":"postal","name":"Postal Code","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":null,"validation_regexp":null,"validation_regex_flags":null}],"header":"Address","priority":1}],"right_side_placeholder":"Add recipient details"}],"description":"Steps to fulfill the requirements"},"is_final":{"type":"boolean","example":true,"description":"Indicates if the requirements are final"},"requirements_id":{"type":"number","example":1250,"description":"ID of the requirements"}},"description":"Response data"}}},"examples":{"Dynamic Requirements":{"value":{"data":{"steps":[{"name":"CUSTOMIZE_ACCOUNT","banner":null,"header":"Custom account name","categories":[{"name":"CUSTOMIZATION","alert":{"type":"INFO","title":"Account Name","message":"Add custom account name"},"banner":null,"fields":[{"id":1678,"key":"custom_name","name":"Account Custom Name","type":"text","example":null,"tooltip":null,"category":"CUSTOMIZATION","disabled":false,"required":false,"sensitive":false,"max_length":"30","min_length":"0","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null}],"header":"Account name","priority":1}],"right_side_placeholder":"Customize account"},{"name":"BANK_DETAILS","banner":null,"header":"Bank account details","categories":[{"name":"ROUTING","alert":null,"banner":null,"fields":[{"id":1676,"key":"payment_type","name":"Payment type","type":"select","example":null,"tooltip":null,"category":"ROUTING","disabled":false,"required":false,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":[{"key":"bank_transfer","name":"Bank transfer"},{"key":"paper_checks","name":"Paper checks"}],"validation_regexp":null,"validation_regex_flags":null},{"id":1677,"key":"currency_code","name":"Currency","type":"select","example":null,"tooltip":null,"category":"ROUTING","disabled":false,"required":true,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":[{"key":"AED","name":"AED - United Arab Emirates Dirham"},{"key":"AFN","name":"AFN - Afghani"},{"key":"ALL","name":"ALL - Albanian Lek"}],"validation_regexp":null,"validation_regex_flags":null},{"id":1679,"key":"bank_country_code","name":"Bank Country Code","type":"select","example":null,"tooltip":null,"category":"ROUTING","disabled":false,"required":true,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":[{"key":"AD","name":"Andorra"},{"key":"AT","name":"Austria"},{"key":"BE","name":"Belgium"}],"validation_regexp":null,"validation_regex_flags":null}],"header":"Payment details","priority":2},{"name":"BANK_DETAILS","alert":null,"banner":null,"fields":[{"id":109,"key":"swift_bic","name":"SWIFT BIC Code","type":"text","example":"BUKBGB22","tooltip":null,"category":"BANK_DETAILS","disabled":false,"required":true,"sensitive":false,"max_length":"11","min_length":"8","values_allowed":null,"validation_regexp":"^[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?$","validation_regex_flags":""},{"id":321,"key":"iban","name":"IBAN","type":"text","example":"SE4550000000058398257466","tooltip":"International Bank Number","category":"BANK_DETAILS","disabled":false,"required":true,"sensitive":false,"extensions":["swift_bic","bank_name"],"max_length":null,"min_length":null,"values_allowed":null,"validation_regexp":"^[^\\s-]+$","validation_regex_flags":""}],"header":"Account details","priority":1,"sub_header":"Please make sure your account is in the <bold>same currency as your contract</bold> to avoid any delays"}],"right_side_placeholder":"Add bank account details"},{"name":"RECIPIENT_DETAILS","banner":null,"header":"Personal information","categories":[{"name":"PERSONAL","alert":null,"banner":null,"fields":[{"id":34,"key":"full_name","name":"Full Name","type":"text","example":null,"tooltip":"With no special characters and only Latin characters","category":"PERSONAL","disabled":false,"required":true,"sensitive":false,"max_length":"140","min_length":"1","values_allowed":null,"validation_regexp":"^[a-zA-ZàáâǎäãåāÀÁÂÄÃÅĀæÆçćčÇĆČèéêëēėęÈÉÊËĒĖĘîïíīįìÎÏÍĪĮÌłŁñńÑŃöòóøôōõÖÒÓØŌÕÔœŒßẞțśșšşŚŠŞûüùúūÛÜÙÚŪÿŸžźżŽŹŻ '-.]*$","validation_regex_flags":""}],"header":"Recipient details","priority":2},{"name":"ADDRESS","alert":null,"banner":null,"fields":[{"id":68,"key":"address_line1","name":"Address Line 1","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":"70","min_length":"1","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null},{"id":69,"key":"address_line2","name":"Address Line 2","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":false,"sensitive":false,"max_length":"70","min_length":"0","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null},{"id":70,"key":"city","name":"City","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":"35","min_length":"1","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null},{"id":107,"key":"country_code","name":"Country Code","type":"select","example":"US","tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":[{"key":"AD","name":"Andorra"},{"key":"AE","name":"United Arab Emirates"},{"key":"AF","name":"Afghanistan"}],"validation_regexp":null,"validation_regex_flags":null},{"id":211,"key":"province_state","name":"State","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":"35","min_length":"1","values_allowed":null,"validation_regexp":null,"validation_regex_flags":null},{"id":287,"key":"postal","name":"Postal Code","type":"text","example":null,"tooltip":null,"category":"ADDRESS","disabled":false,"required":true,"sensitive":false,"max_length":null,"min_length":null,"values_allowed":null,"validation_regexp":null,"validation_regex_flags":null}],"header":"Address","priority":1}],"right_side_placeholder":"Add recipient details"}],"is_final":true,"requirements_id":1250}}}}}},"description":"Dynamic Requirements"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Returns the progressive field requirements needed to configure a bank transfer payout method, based on the data provided in the request. The `is_final` flag in the response indicates whether all requirements have been satisfied; callers should continue submitting updated data until `is_final` is `true` before calling `POST /payouts/employees/methods`.\n\n **Token scopes**: `worker:read`, `worker:write`","operationId":"dynamicRequirements-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"current_state":{"type":"object","properties":{"payment_type":{"type":"string","example":"bank_transfer","description":"Type of payment"},"currency_code":{"type":"string","example":"EUR","description":"Currency code"},"bank_country_code":{"type":"string","example":"LT","description":"Country code of the bank"}},"description":"Current state of the bank details"}},"description":"Request data"}}},"examples":{"Dynamic Requirements":{"value":{"data":{"current_state":{"payment_type":"bank_transfer","currency_code":"EUR","bank_country_code":"LT"}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/eor/workers/compliance-documents":{"get":{"path":"/rest/eor/workers/compliance-documents","tags":["EOR"],"method":"get","summary":"List of employee compliance documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["documents"],"properties":{"documents":{"type":"array","items":{"type":"object","required":["id","name","description","is_optional","required_in_30_days","country","has_template","fillable","filenames","uploaded_at","status","rejection_message","is_acknowledgement_only_document"],"properties":{"id":{"type":"string","format":"uuid","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","description":"Unique identifier for the compliance document requirement."},"name":{"type":"string","example":"Passport or National ID","description":"Display name of the compliance document."},"status":{"enum":["AWAITING_EX_REVIEW","AWAITING_EXTERNAL_REVIEW","REJECTED","APPROVED","ON_HOLD",null],"type":"string","example":"APPROVED","nullable":true,"description":"Review status of the uploaded document, null if no document has been uploaded yet."},"country":{"type":"string","example":"US","description":"ISO 3166-1 alpha-2 country code where the document is required."},"fillable":{"type":"boolean","example":false,"description":"Whether the document can be filled through the Deel platform."},"filenames":{"type":"array","items":{"type":"string"},"example":["passport_scan.pdf"],"description":"List of uploaded file names. Empty array when no files have been uploaded."},"description":{"type":"string","example":"Please upload a clear copy of your passport or national ID card.","description":"Description of the document requirement. Empty string when no description exists."},"is_optional":{"type":"boolean","example":false,"description":"Whether the document is optional for the worker. Also true when the document is required within 30 days."},"uploaded_at":{"type":"string","format":"date-time","example":"2025-01-05T14:30:00.000Z","nullable":true,"description":"ISO 8601 timestamp when the document was uploaded, null if no document has been uploaded."},"has_template":{"type":"boolean","example":true,"description":"Whether a template is available for this document."},"rejection_message":{"type":"string","example":"Document is not clearly readable","description":"Plain text message explaining why the document was rejected. Empty string when no rejection message exists."},"is_consent_required":{"type":"boolean","example":true,"description":"Whether consent is required for acknowledgement-only documents. Only present when is_acknowledgement_only_document is true."},"required_in_30_days":{"type":"boolean","example":false,"description":"Whether the document is required within 30 days of employment start."},"is_acknowledgement_only_document":{"type":"boolean","example":false,"description":"Whether this document only requires acknowledgement without file upload."}}},"description":"List of compliance documents required for the worker."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"authentication_required"},"field":{"type":"string","example":null,"nullable":true},"message":{"type":"string","example":"Authentication required. Please provide a valid access token."}}}}}}}},"description":"Authentication failed. The access token is missing, expired, or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"insufficient_permissions"},"field":{"type":"string","example":null,"nullable":true},"message":{"type":"string","example":"You do not have permission to access this resource."}}}}}}}},"description":"Access denied. The authenticated user does not have the required worker:read scope or is not an employee profile."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"internal_server_error"},"field":{"type":"string","example":null,"nullable":true},"message":{"type":"string","example":"An unexpected error occurred while processing your request. Please try again later."}}}}}}}},"description":"Internal server error."}},"parameters":[],"description":"Returns the list of compliance documents associated with an EOR employee.\n\n **Token scopes**: `worker:read`","operationId":"listOfEmployeeComplianceDocuments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/payouts/contractors/methods/bank_transfers/supported_routes":{"get":{"path":"/rest/payouts/contractors/methods/bank_transfers/supported_routes","tags":["Payouts"],"method":"get","summary":"Get bank transfer supported routes for contractor","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"AE":["AED","GBP","USD"],"AR":["ARS","EUR","USD"]},"description":"A mapping of country codes to arrays of supported currency codes","additionalProperties":{"type":"array","items":{"type":"string","example":"USD","description":"Supported currency code"}}}}},"example":{"data":{"AE":["AED","GBP","USD"],"AR":["ARS","EUR","USD"]}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Returns all bank transfer routes available to the authenticated contractor.\n\n **Token scopes**: `worker:read`, `worker:write`","operationId":"getBankTransferSupportedRoutes-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/gp/workers/{id}/payslips/{payslip_id}/download":{"get":{"path":"/rest/gp/workers/{id}/payslips/{payslip_id}/download","tags":["Global Payroll"],"method":"get","summary":"Download a GP worker payslip","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url"],"properties":{"url":{"type":"string","example":"https://s3.eu-west-1.amazonaws.com/api-dev-eks.letsdeel.com/employee_payslips/ApdZbLvq0r0E_Payslip_Kulvear_Bowie_2023-12-31.pdf?AWSAccessKeyId=ASIATHF2L5PZ545TTFF7&Expires=1698149134&Signature=DmqwQiXY%2FHmPS%2FYBcB2DOZ9SDVA%3D&x-amz-security-token=zxc","description":"A pre-signed URL to download the payslip PDF."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Invalid query parameters","description":"Error response"}}},"description":"Error messages"},"request":{"type":"object","properties":{"method":{"type":"string","example":"GET","description":"Method of the API"},"status":{"type":"number","example":400,"description":"Status of API response"}},"description":"Error request details"}}}}},"description":"Bad Request - Validation error or invalid parameters"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid","description":"Unique identifier for the worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for the worker."},{"in":"path","name":"payslipId","schema":{"type":"string","format":"uuid","description":"Unique identifier for the payslip in UUID format."},"example":"9a55c23e-1234-5678-9101-abcdefabcdef","required":true,"description":"Unique identifier for the payslip."}],"description":"Returns a pre-signed download URL for a specific Global Payroll (GP) employee payslip PDF. Use this after calling Retrieve employee payslips to obtain the payslipId. Requires the worker id (UUID) and the payslipId from the list response. The returned URL is temporary and should be used promptly to download the file. Supports only GP contract types.\n\n **Token scopes**: `payslips:read`, `worker:read`","operationId":"downloadAGpWorkerPayslip-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["payslips:read","worker:read"]}]}},"/ats/job-postings/{job_posting_id}":{"get":{"path":"/rest/ats/job-postings/{job_posting_id}","tags":["ATS"],"method":"get","summary":"Retrieve ATS job posting","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["id","job_id","title","richtext_description","is_compensation_visible","job","publications","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job posting"},"job":{"type":"object","required":["id","job_locations","job_employment_types","compensation"],"properties":{"id":{"type":"string","format":"uuid","example":"5f3cbc4b-2c51-4b48-a2c5-141f581dbf8a","description":"Unique identifier for the job"},"job_teams":{"type":"array","items":{"type":"object","required":["id","team"],"properties":{"id":{"type":"string","format":"uuid","example":"53e4d5bb-65e3-42ff-ada7-65badeeb9d8f","description":"Unique identifier for the job team"},"team":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"127ee4e0-3776-46c8-8999-5e045e2ae1cf","description":"Unique identifier for the team"},"name":{"type":"string","example":"Product Design Team","description":"Team name"}},"description":"Details for the team assigned to the job"}}},"nullable":true,"description":"Teams associated with the job"},"compensation":{"type":"object","nullable":true,"required":["id","currency_iso_code"],"properties":{"id":{"type":"string","format":"uuid","example":"9a8b7c6d-5e4f-4321-abcd-9876543210ff","description":"Unique identifier for the compensation record"},"max_amount":{"type":"number","example":105000,"nullable":true,"description":"Maximum compensation amount"},"min_amount":{"type":"number","example":85000,"nullable":true,"description":"Minimum compensation amount"},"currency_iso_code":{"type":"string","example":"USD","description":"Currency ISO code for the compensation"}},"description":"Compensation information for the job"},"job_locations":{"type":"array","items":{"type":"object","required":["id","location"],"properties":{"id":{"type":"string","format":"uuid","example":"ae5ea0d8-300b-4027-9d14-0330ac5e527c","description":"Unique identifier for the job location"},"location":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"f61a2d36-2790-45d0-b9c9-988c6c234b9b","description":"Unique identifier for the location"},"name":{"type":"string","example":"France","description":"Location name"}},"description":"Details for the location assigned to the job"}}},"description":"Locations associated with the job"},"job_departments":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Job-department association row identifier."},"department":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Department identifier."},"name":{"type":"string","example":"Product","maxLength":100,"description":"Display name of the department."}}}}},"nullable":true,"description":"Departments associated with the job"},"job_employment_types":{"type":"array","items":{"type":"object","required":["id","employment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"33a13504-ec08-4f2a-98cf-64c0cc20f20b","description":"Unique identifier for the job employment type"},"employment_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"5ed1ab2a-395f-4cf1-854f-7aa060a31db3","description":"Unique identifier for the employment type"},"name":{"type":"string","example":"Temporary","description":"Employment type name"}},"description":"Details for the employment type assigned to the job"}}},"description":"Employment types associated with the job"}},"description":"Associated job information"},"title":{"type":"string","example":"Product Designer","maxLength":200,"description":"Job posting title"},"job_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Identifier of the underlying job this posting belongs to."},"created_at":{"type":"string","format":"date-time","example":"2025-07-24T16:28:46.063Z","description":"Creation timestamp"},"updated_at":{"type":"string","format":"date-time","example":"2025-07-25T10:11:12.613Z","description":"Last update timestamp"},"publications":{"type":"array","items":{"type":"object","required":["id","job_board","current_state"],"properties":{"id":{"type":"string","format":"uuid","example":"07e7f02c-e10f-4751-a1af-a7d110617e27","description":"Unique identifier for the job posting publication"},"job_board":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"95858e6b-3971-408c-97d6-73ca4fce10b7","description":"Unique identifier for the job board"}},"description":"Job board where the posting is published"},"current_state":{"type":"object","required":["id","state_slug","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"958e9211-5944-49df-a9df-af43967b233f","description":"Unique identifier for the publication state"},"created_at":{"type":"string","format":"date-time","example":"2025-07-24T16:28:46.063Z","description":"Timestamp when the publication was created"},"created_by":{"type":"string","format":"uuid","example":"42d103ea-9367-432a-8e6f-7ab548eeddcd","nullable":true,"description":"User who created the publication"},"state_slug":{"enum":["PUBLISHED_BASIC","PUBLISHED_PREMIUM","UNPUBLISHED","EXPIRED","IN_PROGRESS","FAILED"],"type":"string","example":"PUBLISHED_BASIC","description":"Current publication state"},"error_message":{"type":"string","example":"Publication failed due to invalid job board credentials","nullable":true,"description":"Error message if publication failed"}},"description":"Current publication state details"}},"description":"Publication information for different job boards"},"description":"Publication rows for this posting, one per job board integration, with current state."},"application_form":{"type":"object","nullable":true,"required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"6bfbc928-8d34-46a0-8bca-6503f0e7128c","description":"Unique identifier for the application form"},"title":{"type":"string","example":"Standard Application","description":"Title of the application form"}},"description":"Application form assigned to the job posting"},"richtext_description":{"type":"string","example":"<p>Some description</p>","nullable":true,"description":"Rich text description of the job posting"},"is_compensation_visible":{"type":"boolean","example":false,"description":"Indicates if compensation details are visible to candidates"}},"description":"Job posting with nested job details and publication status."}},"description":"Successful operation."}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"job_posting_id","schema":{"type":"string","format":"uuid"},"example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","required":true,"description":"Unique identifier of the job posting to retrieve"}],"description":"Look up a specific job posting when you have its ID. Retrieves the complete posting details including publication status across all job boards, associated job information, and application form configuration. Use the list endpoint for discovery and filtering.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAtsJobPosting-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/worker":{"post":{"path":"/rest/worker","tags":["Workers"],"method":"post","summary":"Create a new worker","security":[{"deelToken":[]},{"oauth2":[]}],"responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["user_id","profile_id","contract_id"],"properties":{"user_id":{"type":"string","example":"usr_abc123def456","nullable":false,"minLength":1,"description":"Created user ID"},"profile_id":{"type":"string","example":"prf_xyz789uvw321","nullable":false,"minLength":1,"description":"Created profile ID"},"contract_id":{"type":"string","example":"m4xdqx6","nullable":false,"minLength":1,"description":"Associated contract ID"}}}}}}},"description":"Worker created successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}},"description":"Validation error"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"}}}}},"description":"Internal server error"}},"parameters":[],"description":"Use this endpoint to provision a new worker in a white-label DaaS setup. Provide the worker's personal details, contract association, profile type, and company information. On success, the response returns the `user_id`, `profile_id`, and `contract_id` identifiers needed for subsequent operations such as generating consent tokens or magic links.","operationId":"createWorker-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["email","first_name","last_name","contract_id","profile_type","timezone","company"],"properties":{"email":{"type":"string","format":"email","example":"john.doe@deel.com","nullable":false,"minLength":5,"description":"Worker's email address"},"company":{"type":"object","required":["type","personal"],"properties":{"type":{"enum":["COMPANY","INDIVIDUAL"],"type":"string","example":"INDIVIDUAL","description":"Type of company registration"},"personal":{"type":"object","required":["street","city","zip","citizen","phone","personal_id"],"properties":{"zip":{"type":"number","example":"M5V2T6","description":"Zip/Postal code"},"city":{"type":"string","example":"Toronto","description":"City"},"phone":{"type":"number","example":14165550123,"description":"Phone number"},"street":{"type":"string","example":"123 Front Street West","description":"Street address"},"citizen":{"type":"string","example":"CA","description":"Citizenship country code"},"country":{"type":"string","example":"CA","description":"Country code"},"id_type":{"type":"string","example":"Passport","description":"Type of identification"},"province":{"type":"string","example":"ON","nullable":true,"description":"Province/State"},"timezone":{"type":"string","example":"America/Toronto","description":"Personal timezone"},"personal_id":{"type":"number","example":123456789,"description":"Personal identification number"},"legal_status":{"type":"string","example":"individual","description":"Legal status (required only when type is INDIVIDUAL)"},"tax_residence":{"type":"string","example":"CA","description":"Tax residence country code"},"entity_tax_residence":{"type":"string","example":"CA","description":"Entity tax residence (only applicable for company type)"}}}}},"timezone":{"type":"string","example":"America/Toronto","nullable":false,"description":"Worker's timezone"},"last_name":{"type":"string","example":"Doe","nullable":false,"minLength":1,"description":"Worker's last name"},"first_name":{"type":"string","example":"John","nullable":false,"minLength":1,"description":"Worker's first name"},"contract_id":{"type":"string","example":"m4xdqx6","nullable":false,"minLength":1,"description":"Associated contract ID"},"middle_name":{"type":"string","example":"Robert","nullable":true,"description":"Worker's middle name"},"profile_type":{"enum":["CONTRACTOR","EOR"],"type":"string","example":"CONTRACTOR","nullable":false,"description":"Type of worker profile"},"preferred_name":{"type":"string","example":"Johnny","nullable":true,"description":"Worker's preferred name"},"preferred_lastName":{"type":"string","example":"Doe Jr","nullable":true,"description":"Worker's preferred last name"},"preferred_firstname":{"type":"string","example":"Johnny","nullable":true,"description":"Worker's preferred first name"}}}}}}},"required":true}}},"/hris/organization-structures/teams/{team_id}/custom-fields":{"patch":{"path":"/rest/hris/organization-structures/teams/{team_id}/custom-fields","tags":["Organization Structure"],"method":"patch","summary":"Update organization structure team custom fields","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"5926d8c4-e7d0-41db-9bec-b73d0de992bf","message":"Organization structure custom field created successfully","created_at":"2024-02-01T12:00:00.000Z"}},"required":["data"],"properties":{"data":{"type":"object","example":{"id":"5926d8c4-e7d0-41db-9bec-b73d0de992bf","message":"Organization structure custom field created successfully","created_at":"2024-02-01T12:00:00.000Z"},"required":["id","created_at","message"],"properties":{"id":{"type":"string","format":"uuid","example":"5926d8c4-e7d0-41db-9bec-b73d0de992bf","description":"System-generated ID of the resource"},"message":{"type":"string","example":"Organization structure custom field created successfully","description":"Success message"},"created_at":{"type":"string","format":"date-time","example":"2024-02-01T12:00:00.000Z","description":"Timestamp when the resource was created"}}}}}}},"description":"Organization structure custom fields updated successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Error code identifying the type of error"},"field":{"type":"string","example":"organization_id","description":"The field name that caused the error, if applicable"},"message":{"type":"string","example":"Organization is not set.","description":"Human-readable error message"}}},"example":[{"code":"invalid_parameter","field":"organization_id","message":"Organization is not set."}],"description":"Array of error objects"}}}}},"description":"Bad request - Organization is not set or Deel HR is not enabled for this organization."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"team_id","schema":{"type":"string","format":"uuid"},"example":"5926d8c4-e7d0-41db-9bec-b73d0de992bf","required":true,"description":"Public ID (UUID) of the HRIS team/organization structure"}],"description":"Applies a partial update to custom field values on the specified team. Updates can be scheduled for a future effective date, and setting a field's value to `null` deletes that field value.\n\n **Token scopes**: `organizations:read`","operationId":"updateOrganizationStructureTeamCustomFields-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["custom_fields"],"properties":{"edit_reason":{"type":"object","example":{"reason_oid":"c3d4e5f6-a7b8-9012-cdef-123456789012","additional_info":"Q4 budget adjustment"},"nullable":true,"properties":{"reason_oid":{"type":"string","format":"uuid","example":"c3d4e5f6-a7b8-9012-cdef-123456789012","description":"The public ID (UUID) of the modification reason"},"effective_date":{"type":"string","format":"date","example":"2024-02-01","nullable":true,"description":"Effective date for the modification reason"},"additional_info":{"type":"string","example":"Q4 budget adjustment","nullable":true,"description":"Additional information about the modification reason"}},"description":"Optional reason for the modification"},"custom_fields":{"type":"array","items":{"type":"object","required":["custom_field_id"],"properties":{"value":{"type":"string","example":"Marketing","nullable":true,"description":"The value for the custom field. Use null to delete."},"currency":{"type":"string","example":"USD","nullable":true,"description":"Currency code for currency-type custom fields (ISO 4217)"},"effective_date":{"type":"string","format":"date","example":"2024-02-01","nullable":true,"description":"Optional effective date for scheduled changes (YYYY-MM-DD)"},"custom_field_id":{"type":"string","format":"uuid","example":"5926d8c4-e7d0-41db-9bec-b73d0de992bf","description":"The public ID (UUID) of the custom field"}}},"example":[{"value":"Marketing","custom_field_id":"5926d8c4-e7d0-41db-9bec-b73d0de992bf"}],"minItems":1,"description":"Array of custom field values to update. Set value to null to delete a custom field."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/immigration/client/cases":{"post":{"path":"/rest/immigration/client/cases","tags":["Immigration"],"method":"post","summary":"Create an immigration case","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","process","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"223e4567-e89b-12d3-a456-426614174111","description":"Unique identifier for the case"},"status":{"enum":["OPEN","CLOSED","ON_HOLD"],"type":"string","example":"OPEN","description":"Current status of the case"},"process":{"type":"object","required":["id","process_name","status_name"],"properties":{"id":{"type":"string","format":"uuid","example":"223e45611-e19b-12d3-a456-426614174000","description":"Unique identifier for the process"},"status_name":{"type":"string","example":"Document Review","description":"Human-readable status of the process"},"process_name":{"type":"string","example":"Right to Work Verification","description":"Name of the immigration process"}},"description":"Details about the current immigration process associated with the case"},"created_at":{"type":"string","format":"date-time","example":"2024-12-10T15:45:00Z","description":"Timestamp when the case was created"},"updated_at":{"type":"string","format":"date-time","example":"2024-12-10T15:45:00Z","description":"Timestamp when the case was last updated"},"closure_note":{"type":"string","example":"All requirements met and visa approved","nullable":true,"maxLength":400,"description":"Optional note explaining why the case was closed"},"closure_reason":{"type":"string","example":"COMPLETED_SUCCESSFULLY","nullable":true,"description":"Standardized reason for case closure"}},"description":"The immigration case data returned after successful creation"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Creates a new immigration case for a worker. The appropriate visa type must be determined before calling this endpoint.\n\n **Token scopes**: `immigration:write`","operationId":"createAnImmigrationCase-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"oneOf":[{"type":"object","title":"Right to Work Case","required":["case_type","country_code","contract_id"],"properties":{"case_type":{"enum":["RIGHT_TO_WORK"],"type":"string","example":"RIGHT_TO_WORK","description":"The type of immigration case to be created. Determines the workflow and requirements"},"contract_id":{"type":"string","example":"12345","maxLength":20,"description":"The contract object identifier. Required for document reviews and visa applications"},"country_code":{"type":"string","example":"US","maxLength":2,"description":"ISO 3166-1 alpha-2 country code where the immigration case needs to be processed"}}},{"type":"object","title":"EOR Visa Case","required":["case_type","country_code","contract_id"],"properties":{"case_type":{"enum":["EOR_VISA"],"type":"string","example":"EOR_VISA","description":"The type of immigration case to be created. Determines the workflow and requirements"},"contract_id":{"type":"string","example":"12345","maxLength":20,"description":"The contract object identifier. Required for document reviews and visa applications"},"country_code":{"type":"string","example":"US","maxLength":2,"description":"ISO 3166-1 alpha-2 country code where the immigration case needs to be processed"},"visa_type_id":{"type":"string","format":"uuid","example":"223e4567-e89b-12d3-a456-426614174000","description":"The id of visa type that is being applied for. Identifies the type of the visa."}}},{"type":"object","title":"Sponsored Visa Case","required":["case_type","country_code","contract_id","entity_id"],"properties":{"case_type":{"enum":["SPONSORED_VISA"],"type":"string","example":"SPONSORED_VISA","description":"The type of immigration case to be created. Determines the workflow and requirements"},"entity_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the entity sponsoring the visa. Required for sponsored visa applications"},"contract_id":{"type":"string","example":"12345","maxLength":20,"description":"The contract object identifier. Required for document reviews and visa applications"},"country_code":{"type":"string","example":"US","maxLength":2,"description":"ISO 3166-1 alpha-2 country code where the immigration case needs to be processed"},"visa_type_id":{"type":"string","format":"uuid","example":"223e4567-e89b-12d3-a456-426614174000","description":"The id of visa type that is being applied for. Identifies the type of the visa."}}},{"type":"object","title":"Pre-hire EOR Visa Case","required":["case_type","country_code","team_id"],"properties":{"team_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the team for which the pre-hire visa case is being created"},"case_type":{"enum":["PRE_HIRE_EOR_VISA"],"type":"string","example":"PRE_HIRE_EOR_VISA","description":"The type of immigration case to be created. Determines the workflow and requirements"},"country_code":{"type":"string","example":"US","maxLength":2,"description":"ISO 3166-1 alpha-2 country code where the immigration case needs to be processed"},"visa_type_id":{"type":"string","format":"uuid","example":"223e4567-e89b-12d3-a456-426614174000","description":"The id of visa type that is being applied for. Identifies the type of the visa."}}},{"type":"object","title":"Pre-hire Sponsorship Visa Case","required":["case_type","country_code","team_id"],"properties":{"team_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the team for which the pre-hire sponsorship visa case is being created"},"case_type":{"enum":["PRE_HIRE_SPONSORSHIP_VISA"],"type":"string","example":"PRE_HIRE_SPONSORSHIP_VISA","description":"The type of immigration case to be created. Determines the workflow and requirements"},"entity_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the entity sponsoring the visa. Required for sponsored visa applications"},"country_code":{"type":"string","example":"US","maxLength":2,"description":"ISO 3166-1 alpha-2 country code where the immigration case needs to be processed"},"visa_type_id":{"type":"string","format":"uuid","example":"223e4567-e89b-12d3-a456-426614174000","description":"The id of visa type that is being applied for. Identifies the type of the visa."}}},{"type":"object","title":"Business Visa Case","required":["case_type","country_code","travel_information","visa_type_id","employee_details"],"properties":{"team_id":{"type":"string","format":"uuid","example":"223e4567-e89b-12d3-a456-426614174000","description":"The id of the team for which the employee will be added to. Required if contract_id is not provided"},"case_type":{"enum":["BUSINESS_VISA"],"type":"string","example":"BUSINESS_VISA","description":"The type of immigration case to be created. Determines the workflow and requirements"},"entity_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the entity sponsoring the visa. Required for sponsored visa applications"},"contract_id":{"type":"string","example":"12345","maxLength":20,"description":"The contract object identifier. If not provided, team_id is required and employee_details must include first_name, last_name, and email."},"country_code":{"type":"string","example":"US","maxLength":2,"description":"ISO 3166-1 alpha-2 country code where the immigration case needs to be processed"},"visa_type_id":{"type":"string","format":"uuid","example":"223e4567-e89b-12d3-a456-426614174000","description":"The id of visa type that is being applied for. Identifies the type of the visa"},"employee_details":{"type":"object","required":["citizenships","residence"],"properties":{"email":{"type":"string","format":"email","example":"john.doe@example.com","maxLength":255,"minLength":3,"description":"Employee's email address. Required if contract_id is not provided"},"last_name":{"type":"string","example":"Doe","maxLength":100,"minLength":3,"description":"Employee's last name. Required if contract_id is not provided"},"residence":{"type":"string","example":"US","maxLength":2,"minLength":2,"description":"ISO 3166-1 alpha-2 country code of employee's current residence"},"first_name":{"type":"string","example":"John","maxLength":100,"minLength":3,"description":"Employee's first name. Required if contract_id is not provided"},"citizenships":{"type":"array","items":{"type":"string","maxLength":2,"minLength":2},"example":["US","BR"],"description":"List of ISO 3166-1 alpha-2 country codes representing employee's citizenships"}},"description":"Employee information. Citizenships and residence attributes are always required for business visa cases. The remaining fields are only required when no contract_id is present."},"travel_information":{"type":"object","required":["start_date","end_date","purpose"],"properties":{"purpose":{"enum":["INTERNAL_BUSINESS_WITH_WORK_FOR_CLIENT","INTERNAL_BUSINESS_WITHOUT_WORK_FOR_CLIENT","MEETINGS_WITH_OR_FOR_A_CLIENT","MEETINGS_WITH_POTENTIAL_CLIENTS","NEGOTIATING_CONTRACTS_OR_SIGNING_AGREEMENTS","OTHER_EXTERNAL_BUSINESS","CONFERENCE","TEAM_OFFSITE","SPEAKING_AT_CONFERENCE_UNPAID","SPEAKING_AT_CONFERENCE_PAID","ATTENDING_INTERNAL_TRAINING","ATTENDING_EXTERNAL_TRAINING","DELIVERING_TRAINING_TO_INTERNAL_PARTICIPANTS","DELIVERING_TRAINING_TO_EXTERNAL_PARTICIPANTS_UNPAID","DELIVERING_TRAINING_TO_EXTERNAL_PARTICIPANTS_PAID","PARTICIPATION_IN_RESEARCH_PROJECTS_AND_STUDIES","ASSEMBLY_MAINTENANCE_REPAIR_INSTALLATION","TECHNICAL_SUPPORT_OR_SUPERVISION","OTHER_HANDS_ON_LABOUR","MARKET_RESEARCH_AND_EXPLORING_INVESTMENT_OPPORTUNITIES","OTHER"],"type":"string","example":"CONFERENCE","description":"The purpose of the business trip"},"end_date":{"type":"string","format":"date","example":"2025-01-30","description":"Trip end date in YYYY-MM-DD format"},"start_date":{"type":"string","format":"date","example":"2025-01-15","description":"Trip start date in YYYY-MM-DD format"}},"description":"Travel details for the business visa"}}}]}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["immigration:write"]}]},"get":{"path":"/rest/immigration/client/cases","tags":["Immigration"],"method":"get","summary":"List of immigration cases","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status","case_type","process","applicant","closure","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d7348f5b-b0a6-4c84-ae07-2e5ccdd60134","description":"Unique identifier of the immigration case."},"status":{"enum":["OPEN","CLOSED","ON_HOLD"],"type":"string","example":"OPEN","description":"Current lifecycle status of the immigration case."},"closure":{"type":"object","example":{"note":"Employee contract was terminated.","reason":"CONTRACT_CANCELLED"},"nullable":true,"required":["reason","note"],"properties":{"note":{"type":"string","example":"Employee contract was terminated.","nullable":true,"maxLength":400,"description":"Additional notes explaining the case closure."},"reason":{"enum":["CONTRACT_CANCELLED","NATIONALITY_CHANGE","NEW_CASE_TYPE_IS_REQUIRED","ONBOARDING_RELEASED","OTHER"],"type":"string","example":"CONTRACT_CANCELLED","nullable":true,"description":"Reason why the immigration case was closed."}},"description":"Closure details of the case if the case has been closed."},"process":{"type":"object","required":["id","name","status"],"properties":{"id":{"type":"string","format":"uuid","example":"c8895566-11aa-22bb-33cc-44dd55ee66ff","description":"Unique identifier of the current process."},"name":{"type":"string","example":"Initial Review","maxLength":255,"description":"Human-readable name of the current process step."},"status":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"f1234567-abcd-ef01-2345-6789abcd0123","nullable":true,"description":"Unique identifier of the process status."},"name":{"type":"string","example":"IN_PROGRESS","nullable":true,"maxLength":255,"description":"Human-readable name of the process status."}},"description":"Current status of the process."}},"description":"Current active process associated with the case."},"applicant":{"type":"object","example":{"id":"b1234567-89ab-cdef-0123-456789abcdef","name":"John Doe"},"nullable":true,"required":["name"],"properties":{"id":{"type":"string","format":"uuid","example":"b1234567-89ab-cdef-0123-456789abcdef","nullable":true,"description":"Unique identifier of the applicant."},"name":{"type":"string","example":"John Doe","maxLength":255,"description":"Full name of the applicant."}},"description":"Applicant associated with the immigration case."},"case_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1234567-89ab-cdef-0123-456789abcdef","description":"Unique identifier of the case type."},"name":{"type":"string","example":"Work Permit","maxLength":255,"description":"Human-readable name of the case type."}},"description":"Type of immigration case."},"created_at":{"type":"string","format":"date-time","example":"2024-01-12T08:30:00Z","description":"Timestamp indicating when the case was created."},"updated_at":{"type":"string","format":"date-time","example":"2024-01-13T10:45:00Z","description":"Timestamp indicating when the case was last updated."}}},"description":"List of cases in the current page."},"has_more":{"type":"boolean","example":true,"description":"Indicates whether more results are available for pagination."},"next_cursor":{"type":"string","example":"eyJpZCI6IjEyMzQ1NiJ9","nullable":true,"description":"Cursor value to be used for fetching the next page of results."},"total_count":{"type":"integer","example":100,"description":"Total number of cases matching the search criteria."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"search","schema":{"type":"string","maxLength":100,"minLength":3},"example":"john","required":false,"description":"Search by applicant name or code"},{"in":"query","name":"case_type_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["e9b4ce94-2e3e-4d41-9faf-1ad2389cac1d"],"required":false,"description":"Filter by case type IDs"},{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["OPEN","ON_HOLD","CLOSED"],"type":"string"}},"example":["OPEN","ON_HOLD","CLOSED"],"required":false,"description":"Filter by case status"},{"in":"query","name":"countries","schema":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2,"description":"The ISO 3166-1 alpha-2 country code."},"maxItems":100,"minItems":1},"example":["AE","SA"],"required":false,"description":"Filter by country. Uses ISO 3166-1 alpha-2 codes (https://www.iban.com/country-codes)."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"next-page-token-123","required":false,"description":"Pagination cursor for fetching next set of results"},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100},"example":20,"required":false,"description":"Max number of results to return"}],"description":"Returns a paginated list of immigration cases, optionally filtered by applicant name or code, case type, status, and country (ISO 3166-1 alpha-2). Use the `cursor` value from each response to retrieve the next page of results.\n\n **Token scopes**: `immigration:read`","operationId":"listOfImmigrationCases-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/ats/candidates":{"post":{"path":"/rest/ats/candidates","tags":["ATS"],"method":"post","summary":"Create ATS Candidate","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","first_name","last_name","email","numeric_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the candidate"},"email":{"type":"string","format":"email","example":"john.doe@example.com","description":"Email address of the candidate","x-sensitive-pii":true},"source":{"type":"string","example":"LINKEDIN","nullable":true,"description":"Source of the candidate"},"pic_url":{"type":"string","example":"https://example.com/pic.jpg","nullable":true,"description":"Profile picture URL of the candidate","x-sensitive-pii":true},"last_name":{"type":"string","example":"Doe","description":"Last name of the candidate","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z","description":"Timestamp when the candidate was created"},"first_name":{"type":"string","example":"John","description":"First name of the candidate","x-sensitive-pii":true},"numeric_id":{"type":"integer","example":123,"description":"Numeric identifier for the candidate"},"updated_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z","description":"Timestamp when the candidate was last updated"},"imported_id":{"type":"string","example":"ext-123","nullable":true,"description":"Imported identifier"},"phone_number":{"type":"string","example":"+1234567890","nullable":true,"description":"Phone number of the candidate","x-sensitive-pii":true},"anonymized_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z","nullable":true,"description":"Timestamp when the candidate was anonymized"},"import_session_id":{"type":"string","example":"session-123","nullable":true,"description":"Import session identifier"},"origin_source_slug":{"type":"string","example":"sourced_internally","nullable":true,"description":"Origin source slug of the candidate (e.g. sourced_internally, external_career_page or a custom source slug)"},"final_archivation_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z","nullable":true,"description":"Timestamp when the candidate was finally archived"},"linkedin_profile_url":{"type":"string","example":"https://linkedin.com/in/johndoe","nullable":true,"description":"LinkedIn profile URL of the candidate","x-sensitive-pii":true}}}}}}},"description":"Successful response with candidate data"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"description":"Add a candidate to the ATS with required information (name and email) and optional details like phone, LinkedIn profile, and CV. Returns the unique identifier from the candidate for creating job applications and managing candidate records.\n\n **Token scopes**: `ats:write`","operationId":"createAtsCandidate-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["first_name","last_name","email"],"properties":{"email":{"type":"string","format":"email","example":"john.doe@example.com","description":"The candidate's email address"},"pic_url":{"type":"string","format":"uri","example":"https://example.com/pic.jpg","nullable":true,"description":"The candidate's picture URL"},"last_name":{"type":"string","example":"Doe","description":"The candidate's last name"},"first_name":{"type":"string","example":"John","description":"The candidate's first name"},"phone_number":{"type":"string","example":"+1234567890","nullable":true,"description":"The candidate's phone number"},"origin_source_slug":{"type":"string","example":"sourced_internally","description":"The candidate's origin source slug. Accepts any active source slug of the organization, e.g. sourced_internally, sourced_externally, external_career_page, linkedin_basic or a custom source slug (case-insensitive)"},"linkedin_profile_url":{"type":"string","format":"uri","example":"https://www.linkedin.com/in/johndoe","nullable":true,"description":"The candidate's LinkedIn profile URL"}}}}}},"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["first_name","last_name","email"],"properties":{"cv":{"type":"string","format":"binary","example":"cv.pdf","description":"CV of candidate in binary format"},"email":{"type":"string","format":"email","example":"john.doe@example.com","description":"The candidate's email address"},"pic_url":{"type":"string","format":"uri","example":"https://example.com/pic.jpg","nullable":true,"description":"The candidate's picture URL"},"last_name":{"type":"string","example":"Doe","description":"The candidate's last name"},"first_name":{"type":"string","example":"John","description":"The candidate's first name"},"phone_number":{"type":"string","example":"+1234567890","nullable":true,"description":"The candidate's phone number"},"origin_source_slug":{"type":"string","example":"sourced_internally","description":"The candidate's origin source slug. Accepts any active source slug of the organization, e.g. sourced_internally, sourced_externally, external_career_page, linkedin_basic or a custom source slug (case-insensitive)"},"linkedin_profile_url":{"type":"string","format":"uri","example":"https://www.linkedin.com/in/johndoe","nullable":true,"description":"The candidate's LinkedIn profile URL"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["ats:write"]}]},"get":{"path":"/rest/ats/candidates","tags":["ATS"],"method":"get","summary":"Retrieve paginated list of ATS Candidates","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","first_name","last_name","email","numeric_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the candidate"},"email":{"type":"string","format":"email","example":"john.doe@example.com","description":"Candidate's email address","x-sensitive-pii":true},"source":{"type":"string","example":"LINKEDIN","nullable":true,"description":"Source of the candidate"},"pic_url":{"type":"string","example":"https://example.com/profile.jpg","nullable":true,"description":"URL of the candidate's profile picture","x-sensitive-pii":true},"last_name":{"type":"string","example":"Doe","description":"Candidate's last name","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-01T12:00:00Z","description":"Timestamp when the candidate was created"},"first_name":{"type":"string","example":"John","description":"Candidate's first name","x-sensitive-pii":true},"numeric_id":{"type":"number","example":12345,"description":"Numeric identifier for the candidate"},"updated_at":{"type":"string","format":"date-time","example":"2023-10-02T12:00:00Z","description":"Timestamp when the candidate was last updated"},"imported_id":{"type":"string","example":"ext-123","nullable":true,"description":"Imported identifier"},"applications":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","nullable":true,"description":"Unique identifier for the application"},"job":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the job"},"title":{"type":"string","example":"Software Engineer","description":"Job title","x-sensitive-employment":true}}},"created_at":{"type":"string","format":"date-time","example":"2024-01-02T00:00:00Z","description":"Timestamp of when the application was created"},"current_application_interview_plan_stage":{"type":"object","nullable":true,"required":["id","status","created_at","application_id","interview_plan_stage_id"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the current application interview plan stage"},"status":{"enum":["ACTIVE","COMPLETED","PENDING","REJECTED"],"type":"string","example":"ACTIVE","description":"Status of the current application interview plan stage","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2024-01-03T00:00:00Z","description":"Timestamp of when the current application interview plan stage was created"},"application_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the application"},"interview_plan_stage":{"type":"object","nullable":true,"required":["id","name","stage_order","interview_plan_id","category_type_slug"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the interview plan stage"},"name":{"type":"string","example":"Phone Screen","description":"Name of the interview plan stage","x-sensitive-employment":true},"description":{"type":"string","example":"Initial phone screening with the candidate","nullable":true,"description":"Description of the interview plan stage","x-sensitive-employment":true},"stage_order":{"type":"number","example":1,"description":"Order of the stage in the interview plan"},"default_type_slug":{"type":"string","example":"phone-screen","nullable":true,"description":"Default type slug for the interview plan stage","x-sensitive-employment":true},"interview_plan_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the interview plan"},"category_type_slug":{"type":"string","example":"initial","description":"Category type slug for the interview plan stage","x-sensitive-employment":true}}},"interview_plan_stage_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the interview plan stage"}}}}},"description":"Applications associated with the candidate"},"phone_number":{"type":"string","example":"+15551234567","nullable":true,"description":"Candidate's phone number","x-sensitive-pii":true},"anonymized_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00Z","nullable":true,"description":"Timestamp when the candidate was anonymized"},"candidate_tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the candidate tag"},"tag":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the tag"},"label":{"type":"string","example":"High Potential","description":"Label for the tag"}}},"tag_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the tag"},"candidate_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the candidate"}}},"example":[],"nullable":true,"description":"Tags associated with the candidate","x-sensitive-pii":true},"import_session_id":{"type":"string","example":"session-123","nullable":true,"description":"Import session identifier"},"origin_source_slug":{"type":"string","example":"sourced_internally","nullable":true,"description":"Origin source slug of the candidate (e.g. sourced_internally, external_career_page or a custom source slug)"},"final_archivation_at":{"type":"string","format":"date-time","example":"2024-01-04T00:00:00Z","nullable":true,"description":"Timestamp of when the candidate was finally archived"},"linkedin_profile_url":{"type":"string","example":"https://www.linkedin.com/in/johndoe","nullable":true,"description":"URL of the candidate's LinkedIn profile","x-sensitive-pii":true},"total_applications_count":{"type":"number","example":5,"description":"Total number of applications the candidate has","x-sensitive-employment":true}}},"description":"List of candidates"},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more items to fetch"},"next_cursor":{"type":"string","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"integer","example":100,"minimum":0,"description":"Total number of candidates"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"cursorValue","description":"The cursor for pagination"},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1},"example":50,"description":"Maximum number of records returned in one response"},{"in":"query","name":"search","schema":{"type":"string"},"example":"John Doe","description":"Search text for filtering candidates"},{"in":"query","name":"job_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"description":"Filter candidates by job IDs"},{"in":"query","name":"department_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"description":"Filter candidates by department IDs"},{"in":"query","name":"tag_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["a1b2c3d4-e5f6-7890-1234-567890abcdef"],"description":"Filter candidates by tag IDs"},{"in":"query","name":"current_stage_category_type_slugs","schema":{"type":"array","items":{"type":"string"}},"example":["phone-screen"],"description":"Filter candidates by current stage category type slugs"},{"in":"query","name":"current_stage_default_type_slugs","schema":{"type":"array","items":{"type":"string"}},"example":["technical-interview","others"],"description":"Filter candidates by current stage default type slugs"},{"in":"query","name":"updated_after","schema":{"type":"string","format":"date-time"},"example":"2025-06-18T00:00:00.000Z","required":false,"description":"Filter applications updated after this timestamp (ISO 8601 format)"}],"description":"Returns a paginated list of candidates, optionally filtered by job IDs, department IDs, tag IDs, current stage category or default type slugs, or a timestamp to return only records updated after a given point.\n\n **Token scopes**: `ats:read`","operationId":"retrievePaginatedListOfAtsCandidates-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/contracts/{contract_id}/invitations":{"delete":{"path":"/rest/contracts/{contract_id}/invitations","tags":["Contracts"],"method":"delete","summary":"Remove invite","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","nullable":false,"description":"Confirms the deletion."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Removes the active signing invitation from a contract to allow a new invitation to be issued to the worker.\n\n **Token scopes**: `contracts:write`","operationId":"uninviteToSignContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"post":{"path":"/rest/contracts/{contract_id}/invitations","tags":["Contracts"],"method":"post","summary":"Send contract to worker","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean"}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Sends a signing invitation email to a worker for the specified contract, setting their email as the expected signer. If the contract was previously rejected, resets its status back to a signing-eligible state. Can only be called if the worker has not already signed the contract.\n\n **Token scopes**: `contracts:write`","operationId":"inviteToSignContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"email":{"type":"string","format":"email","example":"john@example.com","description":"Worker email"},"locale":{"enum":["en","es","fr","de","it","pt","pl","nn","nl","da","deAT","fi","sv","nlBE","ja"],"type":"string","default":"en","example":"en","description":"Locale of the email"},"message":{"type":"string","example":"Please sign the contract","description":"Message to the worker"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/hris/worker_relations/profile/external":{"post":{"path":"/rest/hris/worker_relations/profile/external","tags":["Worker Relations"],"method":"post","summary":"Create worker relation with external Ids","responses":{"201":{"content":{"application/json":{}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Creates a hierarchical worker relation between a worker and their subordinates, using external IDs to identify all parties. The request body must supply the external IDs of both the parent and child workers along with the relation type.\n\n **Token scopes**: `profile:write`","operationId":"createWorkerRelationExternalId-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["parent_external_hris_profile_id","child_hris_profile_ids","hris_relationship_type_external_id"],"properties":{"child_hris_profile_ids":{"type":"array","items":{"type":"object","required":["external_hris_profile_id","relation_external_id"],"properties":{"relation_external_id":{"type":"string","example":"abcdedf","maxLength":100,"description":"A custom ID to set to the relation."},"external_hris_profile_id":{"type":"string","example":"abcdedf","maxLength":100,"description":"The external ID of the secondary HrisProfile."}}},"example":[{"relation_external_id":"abcdedf","external_hris_profile_id":"abcdedf"}],"minItems":1,"description":"An array containing the secondary HrisProfiles external IDs and the relation external ID."},"parent_external_hris_profile_id":{"type":"string","example":"abcdedf","maxLength":100,"description":"Primary HrisProfile external ID"},"hris_relationship_type_external_id":{"type":"string","example":"abcdedf","maxLength":100,"description":"The external ID of the Worker Relation Type."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/ats/job-boards":{"get":{"path":"/rest/ats/job-boards","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS job boards","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","total_count","next_cursor","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type_enum","status_enum","settings_json","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d","description":"Job board unique identifier"},"type_enum":{"enum":["INTERNAL_CAREER_PAGE","EXTERNAL_CAREER_PAGE","LINKEDIN"],"type":"string","example":"INTERNAL_CAREER_PAGE","description":"Type of the job board"},"created_at":{"type":"string","format":"date-time","example":"2024-01-15T10:30:00.000Z","description":"Timestamp when the job board was created"},"updated_at":{"type":"string","format":"date-time","example":"2024-02-01T12:00:00.000Z","description":"Timestamp when the job board was last updated"},"status_enum":{"enum":["ENABLED","DISABLED","ARCHIVED"],"type":"string","example":"ENABLED","description":"Current status of the job board"},"settings_json":{"type":"object","example":{"company_id":"12345678"},"nullable":true,"properties":{"company_id":{"type":"string","example":"12345678","description":"Company ID for external job boards (e.g., LinkedIn)"}},"description":"Job board specific settings"},"career_page_setting":{"type":"object","nullable":true,"required":["id","organization_id","url_slug","preferred_organization_name","title","description","should_show_logo","should_show_job_filters","light_mode_logo_url","dark_mode_logo_url","banner_image_url","should_show_banner_on_job_details_page","light_mode_color_primary_hexcode","dark_mode_color_primary_hexcode","is_primary"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d","description":"Career page setting unique identifier"},"title":{"type":"string","example":"Join Our Team","nullable":true,"description":"Title displayed on the career page"},"url_slug":{"type":"string","example":"company-careers","description":"URL slug for the career page"},"is_primary":{"type":"boolean","example":true,"description":"Whether this is the primary career page setting"},"description":{"type":"string","example":"We are looking for talented individuals","nullable":true,"description":"Description displayed on the career page"},"organization_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d","description":"Organization unique identifier"},"banner_image_url":{"type":"string","example":"https://example.com/banner.jpg","nullable":true,"description":"URL for the banner image"},"should_show_logo":{"type":"boolean","example":true,"description":"Whether to show the organization logo"},"dark_mode_logo_url":{"type":"string","example":"https://example.com/logo-dark.png","nullable":true,"description":"URL for the logo in dark mode"},"light_mode_logo_url":{"type":"string","example":"https://example.com/logo-light.png","nullable":true,"description":"URL for the logo in light mode"},"should_show_job_filters":{"type":"boolean","example":true,"description":"Whether to show job filtering options"},"preferred_organization_name":{"type":"string","example":"Company Name","description":"Display name for the organization on the career page"},"dark_mode_color_primary_hexcode":{"type":"string","example":"#3399FF","nullable":true,"description":"Primary color hex code for dark mode"},"light_mode_color_primary_hexcode":{"type":"string","example":"#0066CC","nullable":true,"description":"Primary color hex code for light mode"},"should_show_banner_on_job_details_page":{"type":"boolean","example":true,"description":"Whether to show the banner on job details page"}},"description":"Career page settings associated with the job board"}},"description":"Job board with type, status, settings, and associated career page configuration if applicable"},"description":"Page of job boards"},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more job boards to fetch"},"next_cursor":{"type":"string","example":null,"nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"integer","example":3,"description":"Total number of job boards available"}},"description":"Paginated list of job boards with cursor-based pagination"}}},"description":"Successfully retrieved job boards"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Number of items to return"},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJpZCI6IjEyMyIsIm51bWVyaWNLZSI6NDU2fQ==","required":false,"description":"Cursor for pagination"}],"description":"Retrieves job boards configured on ATS for an organization. Use this to list available boards (internal, external, or LinkedIn) before selecting one for job postings or career-page configuration.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfAtsJobBoards-v2026-02-09","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/screenings/verification-method":{"get":{"path":"/rest/screenings/verification-method","tags":["Screenings"],"method":"get","summary":"Get verification method","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["verification_method"],"properties":{"verification_method":{"type":"string","example":"veriff","description":"The supported method for KYC"}}}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"country","schema":{"type":"string","maxLength":2,"minLength":2},"example":"CA","required":true,"description":"The document's issuing country code (ISO 3166-1 alpha-2)"},{"in":"query","name":"document_type","schema":{"enum":["passport","government_id","driving_license","other"],"type":"string"},"example":"driving_license","required":true,"description":"The document to be provided during KYC"}],"description":"Returns the KYC verification method supported for a given combination of issuing country and document type.\n\n **Token scopes**: `screenings:read`, `worker:read`","operationId":"getVerificationMethod-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["screenings:read","worker:read"]}]}},"/engage/learning/actionable-journeys":{"get":{"path":"/rest/engage/learning/actionable-journeys","tags":["Learning"],"method":"get","summary":"Retrieve worker's actionable journeys","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor"],"properties":{"data":{"type":"array","items":{"type":"object","required":["journey","completion","recipient_setting_type","recipient_setting_dynamic_role_name","recipient_setting_dynamic_role_id","recipientable","scopeable","step","actionable_path","completed_journey_steps_count","total_journey_steps_count"],"properties":{"step":{"type":"object","required":["id","journey_id","journey"],"properties":{"id":{"type":"string","format":"uuid","example":"54463680-7653-4f99-a87e-efa43d6290c0","description":"Unique identifier of the Step"},"journey":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"69c18d4d-3428-4ebf-96a8-9445c0bbd9ab","description":"Unique identifier of the Journey"},"title":{"type":"string","example":"Health and Safety Training","description":"Title of the journey"}},"description":"Basic Journey information for the step"},"journey_id":{"type":"string","format":"uuid","example":"69c18d4d-3428-4ebf-96a8-9445c0bbd9ab","description":"ID of the Journey this step belongs to"}},"description":"Step details"},"journey":{"type":"object","required":["id","title","description","is_self_assignment_allowed","is_visible_in_library","is_template","is_time_based","visibility_slug","draft_for_id","organization_id","created_at","updated_at","published_at","recently_edited_at","type_slug","created_by_hris_organization_user_profile","updated_by_hris_organization_user_profile"],"properties":{"id":{"type":"string","format":"uuid","example":"69c18d4d-3428-4ebf-96a8-9445c0bbd9ab","description":"Unique identifier of the journey"},"title":{"type":"string","example":"Health and Safety Training","description":"Title of the journey"},"type_slug":{"type":"string","example":"default","description":"The type slug of the Journey e.g default, Scorm"},"created_at":{"type":"string","format":"date-time","example":"2025-02-13T13:25:01.371Z","description":"The timestamp when the Journey was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-04-15T16:18:19.928Z","description":"The timestamp when the Journey was last updated"},"description":{"type":"string","example":"Welcome to Deel's Health and Safety course.","nullable":true,"description":"Description of the Journey"},"is_template":{"type":"boolean","example":false,"description":"Whether the Journey is a template"},"draft_for_id":{"type":"string","format":"uuid","example":"d0fe1c70-aa70-48fa-971a-db805b1ea66d","nullable":true,"description":"If this is draft for an existing Journey, draft_for_id is the reference to the original Journey ID."},"published_at":{"type":"string","format":"date-time","example":"2025-02-05T10:37:26.368Z","description":"The timestamp when the Journey was published"},"cover_picture":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"0127f9ba-e6f7-478d-8dc0-619fda871628","description":"Unique identifier of the CoverPicture Attachment"},"url":{"type":"string","format":"uri","example":"https://picsum.photos/seed/picsum/200/300","description":"URL to access the cover picture"},"file_name":{"type":"string","example":"health-and-safety.png","description":"Name of the file"},"attachable_id":{"type":"string","format":"uuid","example":"69c18d4d-3428-4ebf-96a8-9445c0bbd9ab","description":"ID of the entity this attachment belongs to e.g. JourneyID"},"attachable_type":{"type":"string","example":"Journey","description":"Type of the entity this attachment belongs to e.g Journey"},"file_content_type":{"type":"string","example":"image/jpeg","description":"Content type of the file"},"attachment_type_slug":{"type":"string","example":"cover_picture","description":"Type of the attachment (e.g., cover_picture)"}},"description":"CoverPicture details for the Journey"},"is_time_based":{"type":"boolean","example":false,"description":"Whether the Journey is time-based"},"organization_id":{"type":"integer","example":166431,"description":"The organizationID this Journey belongs to"},"visibility_slug":{"enum":["organization","public","private-marketplace"],"type":"string","example":"private-marketplace","description":"The visibility setting of the Journey"},"recently_edited_at":{"type":"string","format":"date-time","example":"2025-02-05T10:37:26.361Z","description":"The timestamp when the Journey was recently edited"},"is_visible_in_library":{"type":"boolean","example":false,"description":"Whether the Journey is visible in the library"},"is_self_assignment_allowed":{"type":"boolean","example":false,"description":"Whether self-assignment is allowed for this Journey"},"created_by_hris_organization_user_profile":{"type":"object","properties":{"type":{"enum":["WORKER","CLIENT"],"type":"string","example":"CLIENT","description":"Type of the User","x-sensitive-pii":true},"email":{"type":"string","format":"email","example":"mary.crist@private.com","nullable":true,"description":"Email of the user who created the Journey","x-sensitive-pii":true},"country":{"type":"string","example":"DE","nullable":true,"description":"Country of the User","x-sensitive-pii":true},"pic_url":{"type":"string","format":"uri","example":"https://avatars.githubusercontent.com/u/67282049?s=200&v=4","nullable":true,"description":"URL of the profile picture","x-sensitive-pii":true},"job_title":{"type":"string","example":"Software Engineer","nullable":true,"description":"Job title of the User","x-sensitive-pii":true},"last_name":{"type":"string","example":"Crist","nullable":true,"description":"Last name of the User","x-sensitive-pii":true},"first_name":{"type":"string","example":"Mary","nullable":true,"description":"First name of the User","x-sensitive-pii":true},"work_email":{"type":"string","format":"email","example":"mary.crist@workplace.com","nullable":true,"description":"Work email of the User","x-sensitive-pii":true},"deactivated_at":{"type":"string","format":"date-time","example":"2025-02-13T13:25:01.371Z","nullable":true,"description":"Deactivation timestamp, if applicable","x-sensitive-pii":true},"preferred_name":{"type":"string","example":"Mary Crist","nullable":true,"description":"Preferred name of the User","x-sensitive-pii":true},"organization_public_id":{"type":"string","format":"uuid","example":"84352093-cbe1-48f7-92ca-1f4bdb07b76f","description":"Public ID of the organization","x-sensitive-pii":true},"hris_organization_user_id":{"type":"string","format":"uuid","example":"fe5473e1-f6ff-45bf-b7bb-c8e44a225de7","description":"HRIS organization user ID","x-sensitive-pii":true}},"description":"Profile of the user who created the journey","x-sensitive-pii":true},"updated_by_hris_organization_user_profile":{"type":"object","properties":{"type":{"enum":["WORKER","CLIENT"],"type":"string","example":"CLIENT","description":"Type of the User","x-sensitive-pii":true},"email":{"type":"string","format":"email","example":"mary.crist@private.com","nullable":true,"description":"Email of the user who last updated the journey","x-sensitive-pii":true},"country":{"type":"string","example":"DE","nullable":true,"description":"Country of the User","x-sensitive-pii":true},"pic_url":{"type":"string","format":"uri","example":"https://avatars.githubusercontent.com/u/67282049?s=200&v=4","nullable":true,"description":"URL of the profile picture","x-sensitive-pii":true},"job_title":{"type":"string","example":"Software Engineer","nullable":true,"description":"Job title of the User","x-sensitive-pii":true},"last_name":{"type":"string","example":"Crist","nullable":true,"description":"Last name of the User","x-sensitive-pii":true},"first_name":{"type":"string","example":"Mary","nullable":true,"description":"First name of the User","x-sensitive-pii":true},"work_email":{"type":"string","format":"email","example":"mary.crist@workplace.com","nullable":true,"description":"Work email of the User","x-sensitive-pii":true},"deactivated_at":{"type":"string","format":"date-time","example":"2025-02-13T13:25:01.371Z","nullable":true,"description":"Deactivation timestamp, if applicable","x-sensitive-pii":true},"preferred_name":{"type":"string","example":"Mary Crist","nullable":true,"description":"Preferred name of the User","x-sensitive-pii":true},"organization_public_id":{"type":"string","format":"uuid","example":"84352093-cbe1-48f7-92ca-1f4bdb07b76f","description":"Public ID of the organization","x-sensitive-pii":true},"hris_organization_user_id":{"type":"string","format":"uuid","example":"fe5473e1-f6ff-45bf-b7bb-c8e44a225de7","description":"HRIS organization user ID","x-sensitive-pii":true}},"description":"Profile of the user who last updated the journey","x-sensitive-pii":true}},"description":"Journey details"},"scopeable":{"type":"object","required":["id","is_self_assigned","assignee_hris_organization_user"],"properties":{"id":{"type":"string","format":"uuid","example":"0db4a31b-dce1-4ad6-8dcb-a1178b4add22","description":"Unique identifier of the scopeable entity e.g AssignmentID"},"is_self_assigned":{"type":"boolean","example":false,"description":"Whether the assignment was self-assigned"},"assignee_hris_organization_user":{"type":"object","properties":{"type":{"enum":["WORKER","CLIENT"],"type":"string","example":"WORKER","description":"Type of the assignee user","x-sensitive-pii":true},"email":{"type":"string","format":"email","example":"thomas.howel@private.com","description":"Email address of the assignee","x-sensitive-pii":true},"country":{"type":"string","example":"DE","nullable":true,"description":"Country of the assignee","x-sensitive-pii":true},"pic_url":{"type":"string","format":"uri","example":"https://avatars.githubusercontent.com/u/67282049?s=200&v=4","nullable":true,"description":"URL of the profile picture of the assignee","x-sensitive-pii":true},"job_title":{"type":"string","example":"Software Engineer","nullable":true,"description":"Job title of the assignee","x-sensitive-pii":true},"last_name":{"type":"string","example":"Thomas","description":"Last name of the assignee","x-sensitive-pii":true},"first_name":{"type":"string","example":"Howell","description":"First name of the assignee","x-sensitive-pii":true},"work_email":{"type":"string","format":"email","example":"thomas.howe@privatel.com","description":"Work email of the assignee","x-sensitive-pii":true},"deactivated_at":{"type":"string","format":"date-time","example":"2025-02-13T13:25:01.371Z","nullable":true,"description":"Deactivation timestamp of the assignee, if applicable","x-sensitive-pii":true},"preferred_name":{"type":"string","example":"Thomas Howell","description":"Preferred name of the assignee","x-sensitive-pii":true},"organization_public_id":{"type":"string","format":"uuid","example":"e24787df-a7ac-4d01-88a0-6aabeb187692","description":"Public ID of the organization the assignee belongs to","x-sensitive-pii":true},"hris_organization_user_id":{"type":"string","format":"uuid","example":"72b997c0-39ce-4f02-92e6-040fd5131d56","description":"HRIS organization user ID of the assignee","x-sensitive-pii":true}},"description":"Details of the assigned user","x-sensitive-pii":true}},"description":"Scopeable entity details e.g Assignment details"},"completion":{"type":"object","required":["percentage"],"properties":{"percentage":{"type":"number","example":37.5,"maximum":100,"minimum":0,"description":"Completion percentage of the Journey"}},"description":"Completion status of the Journey"},"recipientable":{"type":"object","required":["hris_organization_user_id","type","deactivated_at","organization_public_id","first_name","last_name","preferred_name","country","pic_url","job_title","work_email","email"],"properties":{"type":{"enum":["WORKER","CLIENT"],"type":"string","example":"WORKER","description":"Type of the recipient User","x-sensitive-pii":true},"email":{"type":"string","format":"email","example":"thomas.howel@private.com","description":"Email address of the recipient","x-sensitive-pii":true},"country":{"type":"string","example":"DE","nullable":true,"description":"Country of the recipient","x-sensitive-pii":true},"pic_url":{"type":"string","format":"uri","example":"https://avatars.githubusercontent.com/u/67282049?s=200&v=4","nullable":true,"description":"URL of the profile picture of the recipient","x-sensitive-pii":true},"job_title":{"type":"string","example":"Software Engineer","nullable":true,"description":"Job title of the recipient","x-sensitive-pii":true},"last_name":{"type":"string","example":"Howell","description":"Last name of the recipient","x-sensitive-pii":true},"first_name":{"type":"string","example":"Thomas","description":"First name of the recipient","x-sensitive-pii":true},"work_email":{"type":"string","format":"email","example":"thomas.howell@test.com","description":"Work email of the recipient","x-sensitive-pii":true},"deactivated_at":{"type":"string","format":"date-time","example":"2025-02-13T13:25:01.371Z","nullable":true,"description":"Deactivation timestamp of the recipient, if applicable","x-sensitive-pii":true},"preferred_name":{"type":"string","example":"Thomas Howell","description":"Preferred name of the recipient","x-sensitive-pii":true},"organization_public_id":{"type":"string","format":"uuid","example":"e24787df-a7ac-4d01-88a0-6aabeb187692","description":"Public ID of the organization the recipient belongs to","x-sensitive-pii":true},"hris_organization_user_id":{"type":"string","format":"uuid","example":"72b997c0-39ce-4f02-92e6-040fd5131d56","description":"HRIS organization user ID of the recipient","x-sensitive-pii":true}},"description":"Recipient for the ActionableJourney Step. Used in conjunction with recipient_setting_type. Recipient can be the same user as Assignee or any other user e.g Manager or Accounts Lead based on the RecipientSetting for the Step.","x-sensitive-pii":true},"actionable_path":{"type":"string","example":"/learning/actionable-journeys/75d7c4ad-dc7c-4dab-8031-2f5802c02b07/recipient-step-redirection?scopeableId=f43974d7-2ba2-41ae-b45f-f3c9fcf51502&scopeableType=Assignment","description":"Path to redirect User for starting/resuming the Actionable Journey."},"recipient_setting_type":{"enum":["hris_organization_user","manager","buddy","mentor",null],"type":"string","example":"hris_organization_user","nullable":true,"description":"Type of RecipientSetting. e.g Manager, Buddy etc."},"total_journey_steps_count":{"type":"integer","example":5,"minimum":0,"description":"Total number of Journey Steps in this Journey."},"completed_journey_steps_count":{"type":"integer","example":3,"minimum":0,"description":"Number of Journey Steps the worker has completed so far."},"recipient_setting_dynamic_role_id":{"type":"string","example":"0127f9ba-e6f7-478d-8dc0-619fda871628","nullable":true,"description":"Dynamic role/relationship ID for RecipientSetting."},"recipient_setting_dynamic_role_name":{"type":"string","example":"Accounts Lead","nullable":true,"description":"Dynamic role name for RecipientSetting"}},"description":"ActionableJourney item"}},"next_cursor":{"type":"string","example":"eyJvZmZzZXQiOjAsImxpbWl0IjpudWxsLCJzY29wZSI6bnVsbH0","nullable":true,"description":"Cursor to fetch the next page of results. Null if no more pages."}},"description":"ActionableJourney is a representation of a JourneyAssignment and JourneyStep. This defines which Worker should be acting on which Step of the Journey. Generally, it would be same as Assignee of the JourneyAssignment, but can be different when RecipientSettings are added to Steps."}}},"description":"Successful retrieval of actionable journeys"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"journey_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["985aa5c1-00f0-49a2-ac30-9be1489ecd8d"],"description":"Filter by Journey IDs."},{"in":"query","name":"journey_assignment_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["c765c265-f7c9-41b1-832a-c70fd25b3582"],"description":"Filter by JourneyAssignment IDs."},{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":100,"minimum":1},"example":50,"description":"Return a page of results with given number of records."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJvZmZzZXQiOjF9","description":"Cursor to the next page of results. If not provided, the first page will be returned."}],"description":"Use this endpoint to retrieve the Courses (ActionableJourneys) assigned to the authenticated worker, for building learning dashboards or reminder flows. Results are cursor-paginated. ActionableJourneys correspond to what the user interface labels as Courses. Learn more about [Learning Management](https://www.deel.com/hr/engage/learning-management-software/)\n\n **Token scopes**: `worker:read`","operationId":"retrieveWorkersActionableJourneys-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/workers/session":{"post":{"path":"/rest/workers/session","tags":["Worker Session"],"method":"post","summary":"Create worker access token","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["token","expires_at"],"properties":{"token":{"type":"string","example":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c","description":"Access token"},"expires_at":{"type":"string","format":"date-time","example":"2023-10-01T12:00:00Z","description":"Expiration date of the access token"}}}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Issues a scoped access token granting a worker access to worker-side API endpoints. The response includes the token value and its expiry timestamp.\n\n **Token scopes**: `admin:worker`","operationId":"createWorkerAccessToken-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["profile_id"],"properties":{"profile_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The ID of the profile to create access token for"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["admin:worker"]}]}},"/time_offs/time-off-events":{"get":{"path":"/rest/time_offs/time-off-events","tags":["Time Off"],"method":"get","summary":"Get Time Off Events for Profile","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","hris_profile_id","type","time_off_type_id","policy_id","event_details","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off event id"},"type":{"type":"string","example":"PARENTAL_LEAVE","description":"The type of event"},"policy_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","nullable":false,"description":"Policy id"},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off creation date"},"updated_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Time off update date"},"event_details":{"type":"object","nullable":false,"properties":{"birth_date":{"type":"string","format":"date","example":"2022-01-01","description":"Start date of the time off","x-sensitive-pii":true},"adoption_date":{"type":"string","format":"date","example":"2022-01-01","description":"End date of the time off","x-sensitive-pii":true},"was_premature_birth":{"type":"boolean","example":true,"description":"Was the child born prematurely?","x-sensitive-pii":true},"estimated_birth_date":{"type":"string","format":"date","example":"2022-01-01","description":"The estimated date of the child birth","x-sensitive-pii":true},"had_multiple_children":{"type":"boolean","example":true,"description":"Was it the birth of multiple children?","x-sensitive-pii":true},"estimated_adoption_date":{"type":"string","format":"date","example":"2022-01-01","description":"The estimated date of the child adoption","x-sensitive-pii":true}},"description":"Details of the time off event"},"hris_profile_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Worker hris profile id"},"time_off_type_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","nullable":false,"description":"Time off type id"}},"description":"Time off event object"},"example":[{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","type":"PARENTAL_LEAVE","policy_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","created_at":"2022-01-01T00:00:00Z","updated_at":"2022-01-01T00:00:00Z","event_details":{"birth_date":"2022-01-01","adoption_date":"2022-01-01","was_premature_birth":true,"estimated_birth_date":"2022-01-01","had_multiple_children":true,"estimated_adoption_date":"2022-01-01"},"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851","time_off_type_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"}],"description":"List of time off events for the profile"}},"description":"List of time off events for the profile"}}},"description":"List of time off events for the profile"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"hris_profile_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Worker hris profile id"},{"in":"query","name":"time_off_type_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Time off type id"},{"in":"query","name":"policy_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Policy id"}],"description":"Returns time-off events for a worker profile identified by hris_profile_id, with optional filtering by time_off_type_id or policy_id.\n\n **Token scopes**: `time-off:read`","operationId":"getTimeOffEventsForProfile-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/screenings/kyc/details":{"get":{"path":"/rest/screenings/kyc/details","tags":["Screenings"],"method":"get","summary":"Get worker's KYC details","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["kyc_status","identity_document_type","submission_date","approval_date","expiration_date","rejection_date","created_at","updated_at","document_extracted_middle_name"],"properties":{"created_at":{"type":"string","format":"date-time","example":"2024-01-15T07:30:00Z","nullable":true,"description":"The date and time when the KYC screening was created"},"kyc_status":{"enum":["APPROVED","REJECTED","PENDING_REVIEW","EXPIRED","EXPIRING_SOON","NOT_SUBMITTED","NOT_REQUESTED"],"type":"string","example":"APPROVED","description":"The current KYC verification status of the profile"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-15T17:30:00Z","nullable":true,"description":"The date and time when the KYC screening was last updated"},"approval_date":{"type":"string","format":"date-time","example":"2024-01-16T14:20:00Z","nullable":true,"description":"The date and time when the KYC screening was approved (null if not approved)"},"rejection_date":{"type":"string","format":"date-time","example":"2024-01-16T14:20:00Z","nullable":true,"description":"The date and time when the KYC screening was rejected (null if not rejected or pending review for Veriff)"},"expiration_date":{"type":"string","format":"date-time","example":"2025-01-15T10:30:00Z","nullable":true,"description":"The date and time when the KYC screening expires (null if no expiry)"},"submission_date":{"type":"string","format":"date-time","example":"2024-01-15T10:30:00Z","nullable":true,"description":"The date and time when the KYC screening was submitted"},"identity_document_name":{"type":"string","example":"Custom Document","nullable":true,"description":"The name of the identity document used for verification (in case of other document type)"},"identity_document_type":{"oneOf":[{"enum":["DRIVING_LICENSE","PASSPORT","GOVERNMENT_ID","SELFIE_WITH_ID","PROOF_OF_RESIDENCY","OTHER"],"type":"string"},{"type":"null"}],"example":"DRIVING_LICENSE","description":"The type of identity document used for verification"},"identity_document_number":{"type":"string","example":"DL789012","nullable":true,"description":"Number of the submitted document","x-sensitive-pii":true},"document_extracted_last_name":{"type":"string","example":"Doe","nullable":true,"description":"The last name extracted from the submitted document","x-sensitive-pii":true},"document_extracted_first_name":{"type":"string","example":"John","nullable":true,"description":"The first name extracted from the submitted document","x-sensitive-pii":true},"document_extracted_middle_name":{"type":"string","example":"M","nullable":true,"description":"The middle name extracted from the submitted document"}}}}},"examples":{"expired":{"value":{"data":{"created_at":"2024-01-15T07:30:00Z","kyc_status":"EXPIRED","updated_at":"2025-01-15T17:30:00Z","approval_date":"2024-01-16T14:20:00Z","rejection_date":null,"expiration_date":"2024-01-10T10:30:00Z","submission_date":"2024-01-15T10:30:00Z","identity_document_type":"GOVERNMENT_ID","identity_document_number":"DL789012","document_extracted_last_name":"Doe","document_extracted_first_name":"John","document_extracted_middle_name":"M"}},"summary":"Expired KYC"},"approved":{"value":{"data":{"created_at":"2024-01-15T07:30:00Z","kyc_status":"APPROVED","updated_at":"2025-01-15T17:30:00Z","approval_date":"2024-01-16T14:20:00Z","rejection_date":null,"expiration_date":"2025-01-15T10:30:00Z","submission_date":"2024-01-15T10:30:00Z","identity_document_type":"DRIVING_LICENSE","identity_document_number":"DL789012","document_extracted_last_name":"Doe","document_extracted_first_name":"John","document_extracted_middle_name":null}},"summary":"Approved KYC"},"rejected":{"value":{"data":{"created_at":"2024-01-15T07:30:00Z","kyc_status":"REJECTED","updated_at":"2025-01-15T17:30:00Z","approval_date":null,"rejection_date":"2024-01-16T14:20:00Z","expiration_date":"2025-01-15T10:30:00Z","submission_date":"2024-01-15T10:30:00Z","identity_document_type":"PASSPORT","identity_document_number":"DL789012","document_extracted_last_name":"Doe","document_extracted_first_name":"John","document_extracted_middle_name":"M"}},"summary":"Rejected KYC"},"expiring_soon":{"value":{"data":{"created_at":"2024-01-15T07:30:00Z","kyc_status":"EXPIRING_SOON","updated_at":"2025-01-15T17:30:00Z","approval_date":"2024-01-16T14:20:00Z","rejection_date":null,"expiration_date":"2024-01-20T10:30:00Z","submission_date":"2024-01-15T10:30:00Z","identity_document_type":"SELFIE_WITH_ID","identity_document_number":"DL789012","document_extracted_last_name":"Doe","document_extracted_first_name":"John","document_extracted_middle_name":null}},"summary":"Expiring Soon KYC"},"not_requested":{"value":{"data":{"created_at":null,"kyc_status":"NOT_REQUESTED","updated_at":null,"approval_date":null,"rejection_date":null,"expiration_date":null,"submission_date":null,"identity_document_type":null,"identity_document_number":null,"document_extracted_last_name":null,"document_extracted_first_name":null,"document_extracted_middle_name":null}},"summary":"Not Requested KYC"},"not_submitted":{"value":{"data":{"created_at":null,"kyc_status":"NOT_SUBMITTED","updated_at":null,"approval_date":null,"rejection_date":null,"expiration_date":null,"submission_date":null,"identity_document_type":null,"identity_document_number":null,"document_extracted_last_name":null,"document_extracted_first_name":null,"document_extracted_middle_name":null}},"summary":"Not Submitted KYC"},"pending_review":{"value":{"data":{"created_at":"2024-01-15T07:30:00Z","kyc_status":"PENDING_REVIEW","updated_at":"2025-01-15T17:30:00Z","approval_date":null,"rejection_date":null,"expiration_date":null,"submission_date":"2024-01-15T10:30:00Z","identity_document_name":"My custom document","identity_document_type":"OTHER","identity_document_number":"DL789012","document_extracted_last_name":"Doe","document_extracted_first_name":"John","document_extracted_middle_name":null}},"summary":"Pending Review KYC"}}}},"description":"KYC details retrieved successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"oneOf":[{"type":"string","example":"\"value\" contains a conflict between exclusive peers [workerProfileId, profileId]","description":"Raw error string returned by middleware in some failure paths"},{"type":"object","description":"Error object returned by wrapper middleware"},{"type":"array","items":{"oneOf":[{"type":"string","example":"\"value\" contains a conflict between exclusive peers [workerProfileId, profileId]"},{"type":"object","properties":{"code":{"type":"string","example":"bad_request","description":"Machine-readable error code"},"message":{"type":"string","example":"\"value\" contains a conflict between exclusive peers [workerProfileId, profileId]","description":"Human-readable explanation of the error"}}}]}}]}}}}},"description":"Bad request - Invalid worker profile ID"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"oneOf":[{"type":"string","example":"You do not have permissions to view this profile","description":"Raw error string returned by middleware in some failure paths"},{"type":"object","description":"Error object returned by wrapper middleware"},{"type":"array","items":{"oneOf":[{"type":"string","example":"You do not have permissions to view this profile"},{"type":"object","properties":{"code":{"type":"string","example":"forbidden","description":"Machine-readable error code"},"message":{"type":"string","example":"You do not have permissions to view this profile","description":"Human-readable explanation of the error"}}}]}}]}}}}},"description":"Forbidden - User not authorized to access this resource"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"resource_not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"We could not extract any profile by the provided hris profile","description":"Human-readable explanation of the error"}}}}}}}},"description":"Not Found - We could not extract any profile by the provided hris profile"},"409":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"oneOf":[{"type":"string","example":"We found multiple profiles for the provided worker ID. Please provide the contract id to resolve KYC details","description":"Raw error string returned by middleware in some failure paths"},{"type":"object","description":"Error object returned by wrapper middleware"},{"type":"array","items":{"oneOf":[{"type":"string","example":"We found multiple profiles for the provided worker ID. Please provide the contract id to resolve KYC details"},{"type":"object","properties":{"code":{"type":"string","example":"conflict","description":"Machine-readable error code"},"message":{"type":"string","example":"We found multiple profiles for the provided worker ID. Please provide the contract id to resolve KYC details","description":"Human-readable explanation of the error"}}}]}}]}}}}},"description":"Conflict - We found multiple profiles for the provided worker ID. Please provide the contract id to resolve KYC details"},"412":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"oneOf":[{"type":"string","example":"We could not extract contractor ID from the contract","description":"Raw error string returned by middleware in some failure paths"},{"type":"object","description":"Error object returned by wrapper middleware"},{"type":"array","items":{"oneOf":[{"type":"string","example":"We could not extract contractor ID from the contract"},{"type":"object","properties":{"code":{"type":"string","example":"precondition_failed","description":"Machine-readable error code"},"message":{"type":"string","example":"We could not extract contractor ID from the contract","description":"Human-readable explanation of the error"}}}]}}]}}}}},"description":"Precondition Failed - Could not extract contractor ID from the contract"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"worker_profile_id","schema":{"type":"string","format":"uuid"},"example":"6ad9e983-e68f-473d-9d1d-809ae3d18085","required":false,"description":"Worker's HRIS profile public ID client requests to fetch KYC details for. This parameter is mutually exclusive with profile_id"},{"in":"query","name":"contract_id","schema":{"type":"string","maxLength":100},"example":"3rd4qvw","required":false,"description":"Worker's contract ID. This parameter is required in case there are multiple profiles associated to the target worker. For example, when worker used to work for the former company he had another profile ID. So we need contract ID to properly resolve profile's KYC details. In case this parameter is not provided and multiple associated profiles are found, exception with 409 status code will be thrown"},{"in":"query","name":"profile_id","schema":{"type":"string","format":"uuid"},"example":"6ad9e984-e68f-473d-9d1d-809ae3d18085","required":false,"description":"Worker's profile public ID client requests to fetch KYC details for, This parameter is mutually exclusive with worker_profile_id "}],"description":"Retrieves KYC verification details for a worker identified by `worker_profile_id` or `profile_id`; these two parameters are mutually exclusive. `contract_id` is required when multiple profiles are associated with the worker.\n\n **Token scopes**: `screenings:read`","operationId":"getWorkersKycDetails-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["screenings:read"]}]}},"/eor/contracts/{contract_id}/offboarding/time-offs":{"get":{"path":"/rest/eor/contracts/{contract_id}/offboarding/time-offs","tags":["EOR"],"method":"get","summary":"Retrieve Employee Time Off Data for Offboarding","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["contract_id","tracking_type","entitlements","upcoming_time_offs","has_external_integration","policy_settings"],"properties":{"contract_id":{"type":"string","example":"r78nrqi","description":"The unique identifier of the employee contract"},"entitlements":{"type":"array","items":{"type":"object","required":["id","tracking_period","tracking_period_end_date","used","requests","entitlement_unit","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"aa3b5309-7f99-4417-b082-17aff902ddb5","description":"The entitlement ID"},"used":{"type":"number","example":13,"description":"Amount of time off used in this period"},"requests":{"type":"integer","example":1,"description":"Number of time off requests in this period"},"created_at":{"type":"string","format":"date-time","example":"2025-09-11T00:00:00.000Z","description":"When the entitlement was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-09-11T00:00:00.000Z","description":"When the entitlement was updated"},"tracking_period":{"type":"string","format":"date","example":"2025-03-14","description":"The tracking period start date"},"entitlement_unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR","WEEK","MONTH","YEAR"],"type":"string","example":"CALENDAR_DAY","description":"Unit of time measurement"},"tracking_period_end_date":{"type":"string","format":"date","example":"2026-03-13","description":"The tracking period end date"}}},"description":"List of entitlement periods sorted by tracking period (descending)"},"tracking_type":{"enum":["OFF_PLATFORM","ON_PLATFORM"],"type":"string","example":"ON_PLATFORM","description":"The time off tracking type"},"policy_settings":{"type":"object","required":["is_accrued_days_available","is_estimated_payout_available","entitlement_unit"],"properties":{"entitlement_unit":{"type":"string","example":"CALENDAR_DAY","description":"The entitlement unit for the policy"},"is_accrued_days_available":{"type":"boolean","example":true,"description":"Whether accrued days are available"},"is_estimated_payout_available":{"type":"boolean","example":true,"description":"Whether estimated payout is available"}},"description":"Policy configuration settings for time off calculations"},"remaining_balance":{"type":"number","example":36.49,"nullable":true,"description":"Remaining time off balance"},"upcoming_time_offs":{"type":"array","items":{"type":"object","required":["id","requested_at","status","start_date","end_date","amount","approved_at","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"aa3b5309-7f99-4417-b082-17aff902ddb5","description":"Time off request ID"},"amount":{"type":"number","example":13,"description":"Amount of time off requested"},"status":{"type":"string","example":"APPROVED","description":"Status of the time off request"},"end_date":{"type":"string","format":"date-time","example":"2025-12-28T00:00:00Z","description":"End date of the time off"},"created_at":{"type":"string","format":"date-time","example":"2025-09-11T00:00:00.000Z","description":"When the time off request was created"},"start_date":{"type":"string","format":"date-time","example":"2025-12-08T00:00:00Z","description":"Start date of the time off"},"updated_at":{"type":"string","format":"date-time","example":"2025-09-11T00:00:00.000Z","description":"When the time off request was updated"},"approved_at":{"type":"string","format":"date-time","example":"2025-08-13T00:00:00.000Z","description":"When the time off was approved"},"requested_at":{"type":"string","format":"date-time","example":"2025-08-13T00:00:00.000Z","description":"When the time off was requested"}}},"description":"List of upcoming time off requests"},"has_external_integration":{"type":"boolean","example":true,"description":"Whether the contract has external integration"}}}}}}},"description":"Successfully retrieved used time off information"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"query","name":"end_date","schema":{"type":"string","format":"date"},"example":"2025-10-20","required":false,"description":"Desired end date for offboarding"},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"5B74FnLM","required":true,"description":"The unique identifier of the employee contract."}],"description":"Returns time off entitlements, balances, and upcoming time offs for the employee on the specified contract, optionally scoped to a target end_date. The response includes policy settings and tracking configuration required to support completion of an offboarding request.\n\n **Token scopes**: `contracts:read`","operationId":"retrieveEmployeeTimeOffDataForOffboarding-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/immigration/notes":{"get":{"path":"/rest/immigration/notes","tags":["Immigration"],"method":"get","summary":"List case notes","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","message","note_type","created_at"],"properties":{"id":{"type":"string","example":"8e4a849f-10e0-4052-8b58-ca75d9fc0e88","description":"The unique identifier of the note."},"message":{"type":"string","example":"Your case has moved to the next processing stage.","description":"Note content."},"note_type":{"enum":["EXTERNAL","USCIS_STATUS_UPDATE"],"type":"string","example":"EXTERNAL","description":"The type of note. Only externally-visible note types are returned by this endpoint."},"created_at":{"type":"string","format":"date-time","example":"2026-04-27T10:00:00Z","description":"UTC timestamp when the note was created."}}}},"has_more":{"type":"boolean","example":false,"description":"Whether more notes are available beyond this page."},"next_cursor":{"type":"string","example":"eyJpZCI6IjhlNGE4NDlmLTEwZTAtNDA1Mi04YjU4LWNhNzVkOWZjMGU4OCJ9","nullable":true,"description":"Cursor to pass as cursor to fetch the next page. Null when there is no next page."},"total_count":{"type":"integer","example":2,"nullable":true,"description":"Total number of externally-visible notes for the case, when available."}}}}},"description":"Successful response with the case's externally-visible notes."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"The error code."},"message":{"type":"string","example":"Case not found.","description":"Human-readable explanation of the error."}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"InternalServerError","description":"The error code."},"message":{"type":"string","example":"An unexpected error occurred.","description":"Human-readable explanation of the error."}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"case_id","schema":{"type":"string","format":"uuid"},"example":"8e4a849f-10e0-4052-8b58-ca75d9fc0e88","required":true,"description":"The unique identifier of the case whose notes should be listed."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJpZCI6IjhlNGE4NDlmLTEwZTAtNDA1Mi04YjU4LWNhNzVkOWZjMGU4OCJ9","required":false,"description":"Opaque pagination cursor returned as next_cursor from a previous response. Omit to fetch the first page."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100},"example":20,"required":false,"description":"Maximum number of notes to return. Capped at 100."}],"description":"Retrieves the externally-visible notes for a case, most recent first. Requires the case_id returned from the List cases endpoint.\n\n **Token scopes**: `immigration:read`","operationId":"listCaseNotes-v2026-08-10","security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/legal-entities/{legal_entity_id}/cost-centers/synchronize":{"post":{"path":"/rest/legal-entities/{legal_entity_id}/cost-centers/synchronize","tags":["Cost Centers"],"method":"post","summary":"Sync cost centers for legal entity","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"properties":{"id":{"type":"number","format":"int64","example":1234,"description":"Cost center id"},"created_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z","description":"Cost center date of registration on Deel. Long date-time format following ISO-8601"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z","description":"Cost center date of most recent update on Deel. Long date-time format following ISO-8601"},"cost_center_name":{"type":"string","example":"HRIS main","description":"Cost center name to be displayed"},"cost_center_number":{"type":"string","example":"1254","description":"Cost center code"}}}}}}}},"description":"Cost center data was successfully updated"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"error":{"type":"string","example":"The effective date must be greater than or equal to 2025-06-30","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Cannot define legal entity cost centers as the provided data."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"error":{"type":"string","example":"Unexpected error","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Unexpected error"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string"},"example":"ce652eb3-d49z-3675-8184-d873544eedf","required":true,"description":"Legal entity id"}],"description":"Update legal entity cost center's data to replicate the data provided on the request\n\n **Token scopes**: `legal-entity:write`","operationId":"syncCostCentersForLegalEntity-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["cost_center_name","cost_center_number"],"properties":{"cost_center_name":{"type":"string","example":"Business Unit","maxLength":255,"description":"Cost center name to be displayed"},"cost_center_number":{"type":"string","example":"2134 or F006000100","maxLength":255,"description":"Cost center code"}}}}}}}},"required":true,"description":"Cost center data to overwrite current configuration"},"security":[{"deelToken":[]},{"oauth2":["legal-entity:write"]}]}},"/tasks/{task_id}":{"patch":{"path":"/rest/tasks/{task_id}","tags":["Tasks"],"method":"patch","summary":"Update Task By ID","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"type":"object","required":["updated_at","created_at"],"properties":{"created_at":{"type":"string","format":"date-time","example":"2025-10-14T11:30:00Z","nullable":false,"description":"Timestamp indicating when the task was last updated."},"updated_at":{"type":"string","format":"date-time","example":"2025-10-14T11:30:00Z","nullable":false,"description":"Timestamp indicating when the task was last updated."}}}}},"example":{"data":{"created_at":"2025-10-14T11:30:00Z","updated_at":"2025-10-14T11:30:00Z"}}}},"description":"The task was successfully updated."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"amount","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'amount'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"task_id","schema":{"type":"string"},"example":"4fb343ba-2d86-460b-9e3b-f0e5ef720a84","required":true,"description":"The id of an existing task"}],"description":"Applies a partial update to the specified task and returns whether the update was successful.\n\n **Token scopes**: `tasks:write`","operationId":"updateTaskById-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"amount":{"type":"string","example":"1500.00","nullable":true,"description":"The amount to be associated with the task, in the appropriate currency."},"description":{"type":"string","example":"Completion of Q1 project tasks","nullable":true,"description":"A description of the task."},"hourly_report_preset_id":{"type":"string","example":"4fa345ba-2d86-260b-6e3b-f0e5ef720a23","nullable":true,"description":"Public ID of the hourly report preset, if applicable."}}}}}}},"required":true,"description":"Task update object containing fields to modify."},"security":[{"deelToken":[]},{"oauth2":["tasks:write"]}]}},"/equity-option-ledger":{"get":{"path":"/rest/equity-option-ledger","tags":["Equity Tokens"],"method":"get","summary":"List equity option ledger entries","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","source_file_id","employee_number","hris_profile_id","last_name","first_name","middle_name","stock_options_and_awards_employee_status","stock_options_and_awards_employee_status_effective_date","plan_name","grant_name","grant_type","employee_grant_number","grant_date","expire_date","no_of_shares_granted","early_exercise_allowed","exercise_price_per_share","preferred_share_price","total_exercise_price","fmv_per_share_at_grant_date","total_fmv","compensation_benefit","vesting_start_date","vesting_schedule","no_of_shares_vested","no_of_shares_unvested","shares_exercised_released","shares_subject_to_repurchase","shares_repurchased","shares_cancelled","shares_expired","shares_outstanding","outstanding_vested","outstanding_unvested","outstanding_exercisable","is_under_rule_701","federal_exemption","state_exemption","tax_identifier","formatted_home_address","grant_agreement_template_name","shareworks_grant_agreement_agreement_date","shareworks_grant_agreement_print_instant","carta_grant_acceptance_date","grant_reason","notes","split_employee_grant_number","iso_csop_disqualification_date","section_102_disqualification_date","occurrence_index","row_hash","last_seen_dataset_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"The unique identifier of the record."},"notes":{"type":"string","example":"Amended per board approval","nullable":true,"description":"Free-form notes, as reported by the ingested file.","x-sensitive-pii":true},"row_hash":{"type":"string","example":"9f2c1a7e4b6d8f0a2c4e6b8d0f2a4c6e8b0d2f4a6c8e0b2d4f6a8c0e2b4d6f8a","description":"Hash of the reported values on this record. Compare it between syncs to detect a change without diffing every field."},"last_name":{"type":"string","example":"Doe","nullable":true,"description":"Employee last name, as reported by the ingested file.","x-sensitive-pii":true},"plan_name":{"type":"string","example":"2020 Stock Plan","nullable":true,"description":"Equity plan name, as reported by the ingested file."},"total_fmv":{"type":"number","example":4.7,"nullable":true,"description":"Total fair market value of the grant, as reported by the ingested file.","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was first ingested."},"first_name":{"type":"string","example":"Jane","nullable":true,"description":"Employee first name, as reported by the ingested file.","x-sensitive-pii":true},"grant_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"Date the grant was issued, as reported by the ingested file.","x-sensitive-employment":true},"grant_name":{"type":"string","example":"06/18/2022 - NQSO - $4.7","nullable":true,"description":"Grant name, as reported by the ingested file."},"grant_type":{"type":"string","example":"Options (NQ)","nullable":true,"description":"Grant type (e.g. Options (NQ)), as reported by the ingested file."},"updated_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was last upserted, for incremental sync."},"expire_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"Grant expiration date, as reported by the ingested file.","x-sensitive-employment":true},"middle_name":{"type":"string","example":"Quinn","nullable":true,"description":"Employee middle name, as reported by the ingested file.","x-sensitive-pii":true},"grant_reason":{"type":"string","example":"New Hire","nullable":true,"description":"Grant reason, as reported by the ingested file.","x-sensitive-employment":true},"shares_expired":{"type":"number","example":1000,"nullable":true,"description":"Shares expired, as reported by the ingested file.","x-sensitive-employment":true},"source_file_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"Identifier of the ingested Shareworks report file this record was last upserted from."},"tax_identifier":{"type":"string","example":"123-45-6789","nullable":true,"description":"Tax identifier, as reported by the ingested file.","x-sensitive-pii":true},"employee_number":{"type":"string","example":"9001","nullable":true,"description":"Shareworks employee number, as reported by the ingested file. The intended join key for this record. Some values are non-numeric for legacy or masked records.","x-sensitive-pii":true},"hris_profile_id":{"type":"integer","example":4821,"nullable":true,"description":"Matched HRIS profile id, if employee_number could be resolved to one. Null when unmatched, or when employee_number is non-numeric or blank.","x-sensitive-pii":true},"state_exemption":{"type":"string","example":"Rule 701","nullable":true,"description":"State exemption, as reported by the ingested file."},"occurrence_index":{"type":"integer","example":1,"description":"Discriminates several records the source file reports for the same natural key. Starts at 1, in the order the rows appear in the file."},"shares_cancelled":{"type":"number","example":1000,"nullable":true,"description":"Shares cancelled, as reported by the ingested file.","x-sensitive-employment":true},"vesting_schedule":{"type":"string","example":"4 Year Monthly","nullable":true,"description":"Vesting schedule name, as reported by the ingested file.","x-sensitive-employment":true},"federal_exemption":{"type":"string","example":"Rule 701","nullable":true,"description":"Federal exemption, as reported by the ingested file."},"is_under_rule_701":{"type":"string","example":"Yes","nullable":true,"description":"Whether the grant is under Rule 701, as reported by the ingested file (verbatim text, e.g. Yes/No)."},"outstanding_vested":{"type":"number","example":1000,"nullable":true,"description":"Outstanding vested shares, as reported by the ingested file.","x-sensitive-employment":true},"shares_outstanding":{"type":"number","example":1000,"nullable":true,"description":"Shares outstanding, as reported by the ingested file.","x-sensitive-employment":true},"shares_repurchased":{"type":"number","example":1000,"nullable":true,"description":"Shares repurchased, as reported by the ingested file.","x-sensitive-employment":true},"vesting_start_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"Vesting start date, as reported by the ingested file.","x-sensitive-employment":true},"no_of_shares_vested":{"type":"number","example":1000,"nullable":true,"description":"Number of shares vested, as reported by the ingested file.","x-sensitive-employment":true},"compensation_benefit":{"type":"number","example":4700,"nullable":true,"description":"Compensation benefit amount, as reported by the ingested file.","x-sensitive-employment":true},"last_seen_dataset_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","nullable":true,"description":"Identifier of the most recent ingested dataset in which this record still appeared. Null for records ingested before dataset tracking began."},"no_of_shares_granted":{"type":"number","example":1000,"nullable":true,"description":"Number of shares/units granted, as reported by the ingested file.","x-sensitive-employment":true},"outstanding_unvested":{"type":"number","example":1000,"nullable":true,"description":"Outstanding unvested shares, as reported by the ingested file.","x-sensitive-employment":true},"total_exercise_price":{"type":"number","example":4.7,"nullable":true,"description":"Total exercise price for the grant, as reported by the ingested file.","x-sensitive-employment":true},"employee_grant_number":{"type":"string","example":"ES-0001","description":"Shareworks grant number for this employee, as reported by the ingested file.","x-sensitive-pii":true},"no_of_shares_unvested":{"type":"number","example":1000,"nullable":true,"description":"Number of shares unvested, as reported by the ingested file.","x-sensitive-employment":true},"preferred_share_price":{"type":"number","example":4.7,"nullable":true,"description":"Preferred share price, as reported by the ingested file.","x-sensitive-employment":true},"early_exercise_allowed":{"type":"string","example":"Yes","nullable":true,"description":"Whether early exercise is allowed, as reported by the ingested file (verbatim text, e.g. Yes/No)."},"formatted_home_address":{"type":"string","example":"1 Example Street","nullable":true,"description":"Formatted home address, as reported by the ingested file.","x-sensitive-pii":true},"outstanding_exercisable":{"type":"number","example":1000,"nullable":true,"description":"Outstanding exercisable shares, as reported by the ingested file.","x-sensitive-employment":true},"exercise_price_per_share":{"type":"number","example":4.7,"nullable":true,"description":"Exercise price per share, as reported by the ingested file.","x-sensitive-employment":true},"shares_exercised_released":{"type":"number","example":1000,"nullable":true,"description":"Shares exercised/released, as reported by the ingested file.","x-sensitive-employment":true},"carta_grant_acceptance_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"Carta - Grant Acceptance Date, as reported by the ingested file.","x-sensitive-employment":true},"fmv_per_share_at_grant_date":{"type":"number","example":4.7,"nullable":true,"description":"Fair market value per share at grant date, as reported by the ingested file.","x-sensitive-employment":true},"split_employee_grant_number":{"type":"string","example":"ES-0001","nullable":true,"description":"Split Employee Grant Number, as reported by the ingested file.","x-sensitive-pii":true},"shares_subject_to_repurchase":{"type":"number","example":1000,"nullable":true,"description":"Shares subject to repurchase, as reported by the ingested file.","x-sensitive-employment":true},"grant_agreement_template_name":{"type":"string","example":"Reported value","nullable":true,"description":"Grant agreement template name, as reported by the ingested file."},"iso_csop_disqualification_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"ISO/CSOP disqualification date, as reported by the ingested file.","x-sensitive-employment":true},"section_102_disqualification_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"\"102 Disqualification date\" in the source file (Section 102 of the Israeli tax ordinance).","x-sensitive-employment":true},"shareworks_grant_agreement_print_instant":{"type":"string","example":"2022-06-20 10:15:00","nullable":true,"description":"Shareworks - Grant Agreement - Print Instant, as reported by the ingested file."},"stock_options_and_awards_employee_status":{"type":"string","example":"Active","nullable":true,"description":"Stock Options and Awards Employee Status, as reported by the ingested file.","x-sensitive-employment":true},"shareworks_grant_agreement_agreement_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"Shareworks - Grant Agreement - Agreement Date, as reported by the ingested file.","x-sensitive-employment":true},"stock_options_and_awards_employee_status_effective_date":{"type":"string","format":"date","example":"2022-06-18","nullable":true,"description":"Stock Options and Awards Employee Status (Effective Date), as reported by the ingested file.","x-sensitive-employment":true}}},"description":"Page of option holder ledger records, one per grant occurrence."},"has_more":{"type":"boolean","example":false,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","nullable":true,"description":"Cursor for the next page. Null when has_more is false."}}}}},"description":"List equity option ledger entries returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid cursor","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"validation_error","message":"Invalid cursor"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"unauthorized","message":"Unauthorized"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Insufficient permissions to view equity option ledger entries","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"forbidden","message":"Insufficient permissions to view equity option ledger entries"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — caller lacks the equities.view permission, or the caller's organization is not permitted to access this endpoint."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Not found","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"not_found","message":"Not found"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found — the requested resource does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"internal_server_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Internal server error","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"internal_server_error","message":"Internal server error"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of records to return in this page."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":2048},"example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","required":false,"description":"Opaque pagination cursor returned as next_cursor by a previous response. Omit to fetch the first page."},{"in":"query","name":"employee_number","schema":{"type":"string","maxLength":64},"example":"9001","required":false,"description":"Only return records for this exact Shareworks employee number."},{"in":"query","name":"employee_grant_number","schema":{"type":"string","maxLength":100},"example":"ES-0001","required":false,"description":"Only return records for this exact Shareworks grant number."},{"in":"query","name":"grant_date_from","schema":{"type":"string","format":"date"},"example":"2026-01-01","required":false,"description":"Only return records with a grant_date on or after this date (inclusive), in YYYY-MM-DD format."},{"in":"query","name":"grant_date_to","schema":{"type":"string","format":"date"},"example":"2026-12-31","required":false,"description":"Only return records with a grant_date on or before this date (inclusive), in YYYY-MM-DD format."}],"description":"Retrieves the full option holder ledger for an organization, as ingested from Shareworks, in ascending employee_grant_number order. Use it as the per-grant system of record: it carries the vested, unvested, exercised, cancelled, expired and outstanding share counts for every grant, plus grant agreement and disqualification dates. Records carry direct identifiers, including a tax identifier and a home address. Requires the `equities.view` permission at the organization level.\n\n **Token scopes**: `equities:read`","operationId":"listEquityOptionLedgerEntries-v2026-09-09","security":[{"deelToken":[]},{"oauth2":["equities:read"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/accept":{"post":{"path":"/rest/eor/contracts/{contract_id}/amendments/{amendment_id}/accept","tags":["EOR"],"method":"post","summary":"Accept a contract amendment on behalf of the client","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"b9fd7198-7e81-4e57-bcf9-de6315194327","description":"Id of amendment"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED",null],"type":"string","example":"OPS","nullable":true,"description":"Type of amendment"},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"8e6ba281-c703-4af3-ad93-b27434b70c7d","description":"Id of amendment item"},"item":{"type":"string","example":"SALARY_INCREASE","description":"Amendment item"},"type":{"enum":["INSTANT","OPS","LEGAL","DISABLED","CUSTOM","AUTOMATED"],"type":"string","example":"OPS","description":"Type of amendment"},"new_value":{"type":"string","example":"62382.93","description":"The new valid value after the attempted change."},"data_point":{"type":"string","example":"salary","description":"The field that is selected for amendment."},"previous_value":{"type":"string","example":"68.9170","description":"The previous valid value before the attempted change."}}},"description":"Items of amendment"},"scope":{"type":"string","example":"Project scope details","description":"Scope of the amendment."},"salary":{"type":"string","example":"50000.00","description":"Salary for the amendment.","x-sensitive-employment":true},"source":{"enum":["APP","PUBLIC_API","APP_BULK_AMENDMENT",null],"type":"string","example":"APP","nullable":true,"description":"Source of amendment flow creation."},"currency":{"type":"string","example":"GBP","description":"Contract currency."},"end_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","nullable":true,"description":"End date of the employment."},"holidays":{"type":"integer","example":20,"nullable":true,"description":"Number of holidays."},"job_code":{"type":"string","example":"49589","nullable":true,"description":"Job code associated with the job title."},"job_title":{"type":"string","example":"Software Engineer","maxLength":1000,"description":"Job title associated with the amendment.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Creation date of the amendment."},"net_salary":{"type":"string","example":"95000.0000","nullable":true,"description":"Net salary for the amendment.","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Start date of the employment."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"Date when amendment is updated"},"description":{"type":"string","example":"Reason or note for the amendment.","nullable":true,"description":"Free-text description of the amendment."},"hourly_rate":{"type":"string","example":"50000.00","nullable":true,"description":"Hourly rate of the amendment","x-sensitive-employment":true},"custom_items":{"type":"array","items":{"type":"object","required":["id","type","status"],"properties":{"id":{"type":"string","format":"uuid","example":"e7b45fa6-9a72-4ab6-b163-ef50ccaba7fb","description":"Unique identifier for the custom amendment item"},"type":{"type":"string","example":"START_DATE","description":"Type/context of the custom amendment item"},"status":{"enum":["REJECTED","APPROVED","PENDING_REVIEW","PENDING_LEGAL"],"type":"string","example":"PENDING_REVIEW","description":"Current status of the custom amendment item"},"description":{"type":"string","example":"Please change the start date to 20th November 2025.","nullable":true,"description":"Detailed description of the custom amendment item"},"rejection_reason":{"type":"string","example":"Start date cannot be moved this far in advance.","nullable":true,"description":"Reason for rejection if the item was rejected"}}},"description":"Custom amendment items associated with the amendment flow"},"job_category":{"type":"string","example":"Engineering","nullable":true,"description":"Job category associated with the job title."},"requested_by":{"type":"string","example":"John Doe","nullable":true,"description":"Profile name of the user who requested the change"},"seniority_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","nullable":true,"description":"Seniority level identifier."},"document_type":{"enum":["EA","SOW","SOW_EA",null],"type":"string","example":"SOW_EA","nullable":true,"description":"Amendment document type"},"legal_context":{"type":"object","example":{"status":"REQUEST_LEGAL_REVIEW","details":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","jira_ticket":"COHDSB-9600","jira_web_url":"https://letsdeel.atlassian.net/browse/COHDSB-9600","requested_at":"2025-04-23T10:40:25.527Z"},"nullable":true,"properties":{"status":{"enum":["REQUEST_LEGAL_REVIEW","WAITING_FOR_ANOTHER_TEAM","WAITING_FOR_HRX_ACTION","DECLINED","SOLVED"],"type":"string","example":"REQUEST_LEGAL_REVIEW","description":"Current status of the legal review process"},"details":{"type":"string","example":"This amendment requires input from the legal team and will be moved to `paused` until it is resolved manually","description":"Details regarding the legal request"},"jira_ticket":{"type":"string","example":"COHDSB-9600","description":"Jira ticket identifier linked to the legal context"},"jira_web_url":{"type":"string","format":"uri","example":"https://letsdeel.atlassian.net/browse/COHDSB-9600","description":"Link to the Jira ticket for tracking"},"requested_at":{"type":"string","format":"date-time","example":"2025-04-23T10:40:25.527Z","description":"Timestamp when legal review was requested"}},"description":"Additional details needed for legal input"},"time_off_type":{"enum":["STANDARD","SPECIFIC","PRORATED"],"type":"string","example":"STANDARD","description":"Type of time off."},"void_deadline":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Deadline this SOW to be voided"},"effective_date":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","nullable":true,"description":"Effective date of the amendment."},"seniority_date":{"type":"string","format":"date","example":"2023-01-01","nullable":true,"description":"The seniority date represents the employee’s original start date with a previous employer. It is used to preserve employment tenure when the employee transfers to this company. Can be null if not applicable."},"employment_type":{"enum":["FULL_TIME","PART_TIME"],"type":"string","example":"FULL_TIME","description":"Type of employment."},"sick_leave_days":{"type":"integer","format":"number","example":12,"nullable":true,"description":"Number of sick leave days"},"employment_state":{"type":"string","example":"Active","nullable":true,"description":"State of employment."},"probation_period":{"type":"integer","example":3,"nullable":true,"description":"Duration of the probation period."},"work_schedule_id":{"type":"string","format":"uuid","example":"2b786de3-9b25-42d9-8a2d-61583bcfc09e","nullable":true,"description":"Work schedule id"},"fixed_adjustments":{"type":"array","items":{"type":"object","required":["id","value","description","is_recurring","status","is_amended","is_country_specific","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmfo0hqd5bw00cqs1b1jd7eag","description":"System-generated unique identifier for the fixed adjustment record in an amendment request."},"value":{"type":"string","example":"1200.50","pattern":"^(?!0+(\\.0+)?$)\\d+(?:\\.\\d+)?$","description":"Value of the fixed adjustment."},"status":{"enum":["WAITING_FOR_SIGNING","ACTIVE","OUTDATED","CANCELLED"],"type":"string","example":"WAITING_FOR_SIGNING","description":"Current status of the fixed adjustment."},"created_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was created."},"is_amended":{"type":"boolean","example":true,"description":"Whether this fixed adjustment was amended from a previous one."},"is_deleted":{"type":"boolean","example":false,"description":"True if the fixed adjustment was deleted as part of the amendment; otherwise false."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-22T10:21:13.815Z","description":"Timestamp when the fixed adjustment was last updated."},"description":{"type":"string","example":"Housing allowance for employee relocation","maxLength":256,"minLength":1,"description":"Description of the fixed adjustment."},"is_recurring":{"type":"boolean","example":true,"description":"Whether the fixed adjustment is recurring. If set to false, it will be treated as a one-time fixed allowance."},"is_country_specific":{"type":"boolean","example":false,"description":"Whether this fixed adjustment applies only to a specific country."},"parent_fixed_adjustment_id":{"type":"string","example":"cmfo0hqd5i9kbhfvk8fn7aniy","nullable":true,"description":"Reference to the parent fixed adjustment, if applicable."}}},"description":"List of fixed adjustments associated with the amendment request."},"rejection_context":{"type":"object","example":{"rejected_at":"2025-02-24T11:08:57.433Z","rejection_reason":"Client requested a different start date."},"nullable":true,"properties":{"rejected_at":{"type":"string","format":"date-time","example":"2025-02-24T11:08:57.433Z","description":"Timestamp of when the rejection occurred"},"rejection_reason":{"type":"string","example":"Client requested a different start date.","nullable":true,"description":"Reason provided when the amendment was rejected. Null when the amendment was cancelled rather than rejected by an admin."}},"description":"Additional details containing rejection reason"},"amendment_statuses":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"PREPARING_DOCUMENTS.AMENDMENT_REQUESTED.SOW.PENDING_DOCUMENT_SUBMIT","description":"Logical, system-oriented identifier of the amendment status. Can be used to group statuses under a parent category and subgroup them for more granular state tracking. The structure typically follows a dot-separated hierarchy (e.g., 'PARENT','PARENT.CHILD', 'PARENT.CHILD.CHILD.CHILD', ...), which allows logical grouping and filtering of related statuses."},"friendly_name":{"type":"string","example":"AWAITING_REVIEW","description":"Human-readable label of the amendment status (e.g., DRAFT, PENDING, APPROVED)."},"amendment_flow_status":{"type":"object","properties":{"created_at":{"type":"string","format":"date-time","example":"2023-10-04T13:27:20.148Z","description":"The timestamp when this amendment status was created."}},"description":"Metadata about the amendment status, including when it was created."}},"description":"Details of a specific amendment status in the lifecycle of the amendment."},"description":"List of amendment statuses representing the history and progression of an amendment."},"notice_period_type":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"CUSTOM","nullable":true,"description":"Type of notice period."},"void_deadline_type":{"enum":["CUTOFF","START_DATE","END_DATE","EXPIRY",null],"type":"string","example":"CUTOFF","nullable":true,"description":"Type of void deadline"},"work_hours_per_week":{"type":"string","example":"40.00","description":"Number of work hours per week.","x-sensitive-employment":true},"employee_nationality":{"type":"string","example":"GB","description":"Nationality of the employee.","x-sensitive-pii":true},"is_hrx_action_needed":{"type":"boolean","example":false,"description":"Is HRX action needed."},"variable_compensation":{"type":"object","required":["id","title","amount","type","timeline","parent_id","effective_date","created_at","updated_at"],"properties":{"id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","description":"The unique ID assigned by the system to this variable compensation record."},"type":{"enum":["FIXED","PERCENTAGE"],"type":"string","example":"FIXED","description":"The way the compensation is calculated. `FIXED` means a fixed amount (like $1000). `PERCENTAGE` means it’s based on a percentage of the salary."},"title":{"type":"string","example":"Bonus","description":"Title or name of the variable compensation."},"amount":{"type":"string","format":"decimal","example":"100000.0000","description":"The value of the compensation. Shown as a string to keep the exact number of decimals."},"timeline":{"enum":["MONTHLY","QUARTERLY","ANNUALLY","BIANNUALLY"],"type":"string","example":"ANNUALLY","description":"How often the compensation is paid — for example monthly, quarterly, annually, or twice a year."},"parent_id":{"type":"string","example":"cmg0p4zgszy3m8v3a04bd5sjs","nullable":true,"description":"Reference to the parent variable compensation, if applicable. Null if this compensation is not linked to any compensation."},"created_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was first created in the system."},"is_amended":{"type":"boolean","example":true,"description":"Shows whether this compensation has been changed as part of an amendment."},"is_deleted":{"type":"boolean","example":true,"description":"Shows whether this compensation has been deleted."},"updated_at":{"type":"string","format":"date-time","example":"2025-09-26T10:25:50.476Z","description":"The date and time when this record was last updated."},"effective_date":{"type":"string","format":"date-time","example":"2025-10-18T00:00:00.000Z","description":"The date when this compensation starts being valid."},"incentive_plan":{"type":"object","properties":{"details":{"type":"string","example":"Year-end performance bonus based on quarterly targets.","description":"Extra details about the incentive plan, if any."},"employee_signature":{"type":"string","example":"John Doe","description":"The employee’s signature for the incentive plan, if collected."},"employee_signed_at":{"type":"string","format":"date-time","example":"2025-12-15T14:30:00.000Z","description":"The date and time when the employee signed the incentive plan. Empty if not signed."}},"description":"Details of the incentive plan linked to this compensation, if any."}},"description":"Represents a variable compensation record (such as a bonus, commission, or incentive) within a contract. It contains details like the amount, type, frequency, and whether it is part of an incentive plan. The record also tracks when it was created, updated, and whether it has been amended."},"notice_period_time_unit":{"enum":["DAY","WEEK","MONTH",null],"type":"string","example":"WEEK","nullable":true,"description":"Notice period time unit."},"is_effective_date_updated":{"type":"boolean","example":false,"description":"Is Effective Date updated."},"work_schedule_rules_version":{"type":"string","example":"2","nullable":true,"description":"Work schedule rule version."},"notice_period_after_probation":{"type":"string","example":"30","nullable":true,"description":"Notice period after probation."},"notice_period_during_probation":{"type":"string","example":"15","nullable":true,"description":"Notice period during probation."},"probation_period_type_for_definite":{"enum":["STANDARD","CUSTOM",null],"type":"string","example":"STANDARD","nullable":true,"description":"Type of probation period for definite contracts."}}}}}}},"description":"Amendment info"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","format":"alphanumeric"},"example":"3w6pd6r","required":true,"description":"The unique identifier of EOR worker contract."},{"in":"path","name":"amendment_id","schema":{"type":"string","format":"uuid"},"example":"77733bb9-9e17-4dfd-ba1b-1315f77cd7f7","required":true,"description":"A unique identifier for the employee contract amendment."}],"description":"Accepts a pending amendment on an EOR worker contract, formally approving the proposed modifications on the client's behalf. The amendment must already exist and be in a pending state before this operation can be called.\n\n **Token scopes**: `contracts:write`","operationId":"acceptAContractAmendmentOnBehalfOfTheClient-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":false},"example":{}}},"required":false,"description":"This operation does not require a request body. Provide an empty JSON object if required by the client."},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/eor/contracts/{contract_id}/offboarding":{"get":{"path":"/rest/eor/contracts/{contract_id}/offboarding","tags":["EOR"],"method":"get","summary":"Retrieve Offboarding Request","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the offboarding request"},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"documents":{"type":"object","nullable":false,"required":["supporting","offboarding"],"properties":{"supporting":{"type":"array","items":{"type":"object","required":["id","name","type","created_at","updated_at","is_additional_supporting_document"],"properties":{"id":{"type":"string","example":"cmddlk1ghehm54l18gejg198r","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Supporting Documentation","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-21T21:07:27.713Z","description":"The date and time the file was updated","x-sensitive-pii":true},"is_additional_supporting_document":{"type":"boolean","example":false,"description":"Indicates if this is an additional supporting document added after the initial submission","x-sensitive-pii":true}}},"x-sensitive-pii":true},"offboarding":{"type":"array","items":{"type":"object","required":["files","reviewer_type","is_employee_notification_required","status"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the document set shared with the employee.","x-sensitive-pii":true},"files":{"type":"array","items":{"type":"object","required":["id","name","type","created_at"],"properties":{"id":{"type":"string","example":"cmdeh9wzgvihue4r54n2y51p4","description":"The unique identifier of the file","x-sensitive-pii":true},"name":{"type":"string","example":"Employee Sign Off Documents","description":"The name of the file","x-sensitive-pii":true},"type":{"type":"string","example":"pdf","description":"The type/extension of the file","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the file was updated","x-sensitive-pii":true}}},"x-sensitive-pii":true},"status":{"enum":["AWAITING_REVIEW","AWAITING_FEEDBACK","FEEDBACK_PROVIDED","APPROVED","CHANGES_REQUESTED_BY_CLIENT","CHANGES_REQUESTED_BY_EMPLOYEE","WAIVED_REVIEW","NOT_RESPONDED","CANCELLED"],"type":"string","example":"AWAITING_REVIEW","description":"The current status of the document review","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was created","x-sensitive-pii":true},"updated_at":{"type":"string","format":"date-time","example":"2025-07-22T11:55:23.068Z","description":"The date and time the document set was updated","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2025-07-22T12:30:00.000Z","nullable":true,"description":"The date and time when the document was reviewed","x-sensitive-pii":true},"reviewed_by":{"type":"string","example":"John Doe","nullable":true,"description":"The name of the reviewer for this document. If the reviewer is not an employee, it will be the name of the client","x-sensitive-pii":true},"reviewer_type":{"enum":["CLIENT","EMPLOYEE"],"type":"string","example":"EMPLOYEE","description":"The type of reviewer for this document","x-sensitive-pii":true},"reviewer_feedback":{"type":"string","example":"Document needs clarification on section 3","nullable":true,"description":"Feedback provided by the reviewer","x-sensitive-pii":true},"notification_instructions":{"type":"string","example":"<p>Please review and provide feedback on the attached documents.</p>","nullable":true,"description":"HTML instructions for the reviewer notification","x-sensitive-pii":true},"is_employee_notification_required":{"type":"boolean","example":true,"description":"Indicates if the employee should be notified about this document review","x-sensitive-pii":true}}},"description":"Document set shared that requires client or employee review","x-sensitive-pii":true}},"description":"Document management structure for termination workflow including review processes and supporting documents","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":false,"description":"The date and time the offboarding request was updated"},"contract_id":{"type":"string","example":"5B74FnLM","description":"The unique identifier of the employee contract."},"is_sensitive":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if the offboarding request is sensitive. This is used to restrict access to the request only to the requester and the HRX team."},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"enum":["STATUS_CHANGE","RELOCATION","COMPENSATION","RETIREMENT","JOB_ABANDONMENT","WORK_RELATED","PERSONAL","OTHER_OPPORTUNITY","NON_RENEWAL","PROBATION","ASSIGNMENT_ENDED","POSITION_ELIMINATION","FORCE_REDUCTION","DEATH","FOR_CAUSE","PERFORMANCE","MEDICAL","PERFORMANCE_ISSUES","ATTENDANCE_ISSUES","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE","ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","OFFER_WAS_REVOKED","EXITING_THE_MARKET","NO_LONGER_WISH_TO_WORK_WITH_DEEL","COMPANY_ACQUIRED","STEALING","MISCONDUCT","FALSIFYING","HARASSMENT","VIOLENCE","REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED","UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE","STANDARD_RESELLER_PRACTICE","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","OTHER"],"type":"string","example":"PERFORMANCE","nullable":false,"description":"The reason for the termination","x-sensitive-pii":true,"x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The definitive contract end date","x-sensitive-pii":true,"x-sensitive-employment":true},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request","x-sensitive-pii":true,"x-sensitive-employment":true},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"BUSINESS_DAY","policy_type":"Vacation","tracking_periods":[{"used":0,"end_date":"2025-02-28T00:00:00.000Z","start_date":"2024-03-01T00:00:00.000Z"},{"used":0,"end_date":"2024-02-29T00:00:00.000Z","start_date":"2023-03-01T00:00:00.000Z"},{"used":0,"end_date":"2023-02-28T00:00:00.000Z","start_date":"2022-03-01T00:00:00.000Z"}],"scheduled_until_end_date":0}],"additional_details":null,"is_deel_pto_confirmed":true},"nullable":false,"required":["time_offs","is_deel_pto_confirmed"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["unit","policy_type","tracking_periods","scheduled_until_end_date"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR"],"type":"string","example":"BUSINESS_DAY","description":"The unit of measurement for time off tracking","x-sensitive-employment":true},"policy_type":{"type":"string","example":"Vacation","description":"The type of time-off policy","x-sensitive-employment":true},"tracking_periods":{"type":"array","items":{"type":"object","required":["used","end_date","start_date"],"properties":{"used":{"type":"number","example":0,"description":"The amount of time off used in this tracking period","x-sensitive-employment":true},"end_date":{"type":"string","format":"date-time","example":"2025-02-28T00:00:00.000Z","description":"The end date of the tracking period","x-sensitive-employment":true},"start_date":{"type":"string","format":"date-time","example":"2024-03-01T00:00:00.000Z","description":"The start date of the tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"scheduled_until_end_date":{"type":"number","example":0,"description":"The amount of time off scheduled until the end date of the current tracking period","x-sensitive-employment":true}}},"x-sensitive-employment":true},"additional_details":{"type":"object","nullable":true,"properties":{"notes":{"type":"string","example":"Additional notes about time off allocation","nullable":true,"description":"Additional notes or comments about the time-off data","x-sensitive-employment":true},"updated_by":{"type":"string","example":"HR Administrator","nullable":true,"description":"The person or system that last updated the time-off data","x-sensitive-pii":true,"x-sensitive-employment":true},"last_updated_at":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The date and time when the time-off data was last updated","x-sensitive-employment":true}},"x-sensitive-employment":true},"is_deel_pto_confirmed":{"type":"boolean","example":true,"nullable":false,"description":"Indicates whether the PTO allocation has been confirmed by Deel's system","x-sensitive-employment":true}},"description":"Time-off usage data including policy information and tracking periods","x-sensitive-employment":true},"desired_end_date":{"type":"string","format":"date","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again","x-sensitive-pii":true,"x-sensitive-employment":true},"eligible_for_rehire_reason":{"type":"string","example":"Employee is not eligible for rehire due to performance issues","nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligible_for_rehire","x-sensitive-pii":true,"x-sensitive-employment":true}},"x-sensitive-pii":true},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31T00:00:00.000Z","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}},"description":"Successful retrieval of the offboarding request."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_format","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"email","description":"The field name where input validation failed"},"message":{"type":"string","example":"The email field must be a valid email address format","description":"Description of the returned error"}}}}}}}},"description":"Bad Request"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"expired_token","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"authorization","description":"The field name where authentication failed"},"message":{"type":"string","example":"Your access token has expired. Please authenticate again to continue.","description":"Description of the returned error"}}}}}}}},"description":"Unauthorized"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"access_denied","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":"contract_id","description":"The field name where permission was denied"},"message":{"type":"string","example":"You do not have permission to access contract CT-12345. Contact your administrator for access.","description":"Description of the returned error"}}}}}}}},"description":"Forbidden"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"database_connection_failed","description":"Error code of the handler which produced the returned error"},"field":{"type":"string","example":null,"description":"The field name where error occurred (null for server errors)"},"message":{"type":"string","example":"A temporary server error occurred. Please try again in a few moments or contact support if the issue persists.","description":"Description of the returned error"}}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"1pj00yy","required":true,"description":"The unique identifier of the employee contract."}],"description":"Retrieves the offboarding request associated with a specific EOR contract, including termination details, document review status, offboarding request data, and pending employee notification state.\n\n **Token scopes**: `contracts:read`, `worker:read`","operationId":"retrieveOffboardingRequest-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","worker:read"]}]}},"/eor/workers/contracts/{contract_id}/hr-documents":{"get":{"path":"/rest/eor/workers/contracts/{contract_id}/hr-documents","tags":["EOR"],"method":"get","summary":"List HR verification letters and documents","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","example":"494e14fe-bd3e-44b7-87c4-cf06d4bcb081","description":"Document Id."},"name":{"type":"string","example":"Standard verification letter","description":"Name of the document."}}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Returns all HR verification letters and documents associated with the employee contract.\n\n **Token scopes**: `worker:read`","operationId":"listHrVerificationLettersAndDocuments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/forms/eor/worker-additional-fields/{country_code}":{"get":{"path":"/rest/forms/eor/worker-additional-fields/{country_code}","tags":["Forms"],"method":"get","summary":"Get worker additional fields for (EOR)","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["key","type","is_required","ui_guide","validation","dependencies"],"properties":{"key":{"type":"string","example":"additional_name","description":"Unique identifier for the field"},"type":{"type":"string","example":"string","description":"Data type of the field"},"ui_guide":{"type":"object","required":["label","field_type","order","description"],"properties":{"label":{"type":"string","example":"Preferred Name / Additional Name","description":"The primary label for the field"},"order":{"type":"integer","example":3,"description":"Display order of the field in the UI"},"field_type":{"type":"string","example":"text","description":"Type of the input field in the UI"},"description":{"type":"string","example":"","description":"Additional description for the field UI"},"helper_text":{"type":"string","example":"","description":"Helper text to guide user input"},"local_label":{"type":"string","example":"Imię preferowane","description":"Localized version of the field label"}},"description":"UI guidelines for rendering the field"},"validation":{"type":"array","items":{"type":"object","required":["type","error_message"],"properties":{"type":{"type":"string","example":"REGEX","description":"Type of the validation"},"value":{"type":"string","example":"^.*$","description":"Value to be used in the validation according to the type"},"error_message":{"type":"string","example":"Review the value entered","description":"Error message shown if the validation fails"}},"description":"Validation rules for the field"},"description":"Array of validation rules to apply to the field input"},"is_required":{"type":"boolean","example":false,"description":"Indicates if the field is required"},"required_by":{"type":"string","example":"sign_up","description":"Indicates when the field is required (e.g., sign_up, contract_signing)"},"dependencies":{"type":"array","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","example":"additional_name","description":"Unique identifier for the dependant field"},"value":{"oneOf":[{"type":"string","example":"John"},{"type":"object","required":["op","value"],"properties":{"op":{"type":"string","example":"gt","description":"Comparison operator (e.g., gt, gte, lt, lte, eq, neq)"},"value":{"oneOf":[{"type":"string","example":"0","description":"Value to compare against"},{"type":"number","example":0,"description":"Value to compare against"}]}}},{"type":"array","items":{"type":"string"},"example":["1","2","3"],"description":"Array of allowed values for the dependency"}],"example":"UK","description":"Value expected from dependant in order to display field. Can be a plain value or an object with an operator."}}},"description":"Array of field dependencies that determine when this field should be displayed"},"values_allowed":{"type":"array","items":{"type":"string"},"description":"List of allowed values for select fields"}}},"example":[{"key":"additional_name","type":"string","ui_guide":{"label":"Preferred Name / Additional Name","order":3,"field_type":"text","description":"","helper_text":"","local_label":"Imię preferowane"},"validation":[{"type":"REGEX","value":"^.*$","error_message":"Review the value entered"}],"is_required":false,"required_by":"sign_up","dependencies":[]},{"key":"dob","type":"string","ui_guide":{"label":"Date of Birth","order":4,"field_type":"date","description":"","helper_text":"","local_label":"Data urodzenia"},"validation":[{"type":"REGEX","value":"^.*$","error_message":"Review the value entered"}],"is_required":true,"required_by":"contract_signing","dependencies":[{"key":"country","value":"UK"}]}],"description":"Array of field configuration objects"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"country_code","schema":{"type":"string"},"example":"de","required":true,"description":"Country code"}],"description":"Retrieves the additional form fields required when onboarding EOR workers in the specified country.\n\n **Token scopes**: `forms:read`","operationId":"getWorkerAdditionalFieldsForEor-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["forms:read"]}]}},"/eor/contracts/{contract_id}/documents/{type}/sign":{"post":{"path":"/rest/eor/contracts/{contract_id}/documents/{type}/sign","tags":["EOR"],"method":"post","summary":"Sign EOR contract document","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["document_type"],"properties":{"signature":{"type":"string","example":"Client Signature","nullable":true,"description":"The signature of the client if the document is signed.","x-sensitive-pii":true},"signed_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z","nullable":true,"description":"The date and time the client signed the document if it is signed."},"document_type":{"enum":["FRAMEWORK_AGREEMENT"],"type":"string","example":"FRAMEWORK_AGREEMENT","description":"The type of document. Currently only FRAMEWORK_AGREEMENT is supported."},"eor_signature":{"type":"string","example":"EOR Signature","nullable":true,"description":"The signature of the EOR if the document is signed.","x-sensitive-pii":true},"eor_signed_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00.000Z","nullable":true,"description":"The date and time the EOR signed the document if it is signed."},"client_job_title":{"type":"string","example":"Job Title","nullable":true,"description":"The job title of the client if the document is signed.","x-sensitive-pii":true,"x-sensitive-employment":true}}}}}}},"description":"The document has been signed"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abc123xyz","required":true,"description":"EOR contract ID"},{"in":"path","name":"type","schema":{"enum":["FRAMEWORK_AGREEMENT"],"type":"string"},"example":"FRAMEWORK_AGREEMENT","required":true,"description":"The type of document. Currently only FRAMEWORK_AGREEMENT is supported."}],"description":"Applies a signature and job title to a specified EOR contract document. Currently only the `FRAMEWORK_AGREEMENT` document type is supported.\n\n **Token scopes**: `contracts:write`","operationId":"signEorContractDocument-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["signature","client_job_title"],"properties":{"signature":{"type":"string","example":"John Doe","description":"The signature of the client signing the document."},"client_job_title":{"type":"string","example":"Software Engineer","description":"The job title of the client signing the document."}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/contracts/{contract_id}/adjustments":{"get":{"path":"/rest/contracts/{contract_id}/adjustments","tags":["Adjustments"],"method":"get","summary":"Retrieve adjustments","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the adjustment"},"file":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the file"},"name":{"type":"string","example":"your_file_name","description":"The name of the file"},"fileType":{"type":"string","example":"pdf","description":"The type of the file"}},"description":"Info for the attachment of adjustment"},"title":{"type":"string","example":"Your title here","description":"The title of the adjustment","x-sensitive-pii":true,"x-sensitive-employment":true},"amount":{"type":"string","example":"1234.56","description":"The amount of the adjustment","x-sensitive-pii":true,"x-sensitive-employment":true},"status":{"enum":["open","pending_approval","overwritten","failed","success","DRAFT","PENDING","APPROVED","DENIED","DISBURSE_SCHEDULED","REIMBURSED","UNDER_REVIEW","ERRORS_FOUND","PENDING_DEEL_REVIEW","AI_CHECK_IN_PROGRESS"],"type":"string","example":"open","description":"Adjustment status"},"created_at":{"type":"string","format":"date-time","example":"2020-11-02T12:00:00.000Z","description":"The date and time when the adjustment was created"},"updated_at":{"type":"string","format":"date-time","example":"2020-11-02T12:00:00.000Z","description":"The date and time when the adjustment was last updated"},"contract_id":{"type":"string","example":"m3jk2j","description":"The identifier of the contract associated with the adjustment","x-sensitive-pii":true},"description":{"type":"string","example":"Your description here","description":"The description of the adjustment","x-sensitive-pii":true,"x-sensitive-employment":true},"cycle_reference":{"type":"string","example":"your_cycle_reference","nullable":true,"description":"The reference to the cycle associated with the adjustment"},"move_next_cycle":{"type":"boolean","example":true,"description":"If an adjustments can belong to another payroll cycle"},"date_of_adjustment":{"type":"string","format":"date-time","example":"2023-11-02","nullable":true,"description":"The date of the adjustment","x-sensitive-pii":true},"actual_end_cycle_date":{"type":"string","example":"2023-11-15T00:00:00.000Z","description":"The date of the actual end cycle date"},"adjustment_category_id":{"type":"string","example":"c9cf4c2c0165f48f494415390c3b49","description":"The identifier of the adjustment category associated with the adjustment"},"actual_start_cycle_date":{"type":"string","example":"2023-11-01T00:00:00.000Z","description":"The date of the actual start cycle date"}}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"Not Authorized","description":"You must have access to the contract sent"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"from","schema":{"type":"string","format":"date"},"example":"2023-11-01","description":"Filter adjustments by start date."},{"in":"query","name":"to","schema":{"type":"string","format":"date"},"example":"2023-11-15","description":"Filter adjustments by end date."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"m3jk2j","required":true,"description":"Deel adjustment id."}],"description":"Retrieves all adjustments associated with a specific contract, optionally scoped to a date range.\n\n **Token scopes**: `adjustments:read`","operationId":"retrieveAdjustments-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["adjustments:read"]}]}},"/on-demand-payroll/contract/{contract_id}/current":{"get":{"path":"/rest/on-demand-payroll/contract/{contract_id}/current","tags":["On-Demand Payroll"],"method":"get","summary":"Retrieve current On-Demand Payroll","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","status","sla","entries"],"properties":{"id":{"type":"string","example":"odp_abc123","description":"Public ID of the On-Demand Payroll."},"sla":{"type":"object","properties":{"payment_buffer":{"type":"integer","example":1,"nullable":true,"description":"Payment buffer in days."},"payment_processing":{"type":"integer","example":2,"nullable":true,"description":"Payment processing SLA in days."},"payment_settlement":{"type":"integer","example":3,"nullable":true,"description":"Payment settlement SLA in days."},"payroll_processing":{"type":"integer","example":1,"nullable":true,"description":"Payroll processing SLA in days."},"post_termination_buffer":{"type":"integer","example":30,"nullable":true,"description":"Post-termination buffer in days during which an ODP is still allowed."}},"description":"Processing SLAs (in days) configured for the contract EOR entity."},"status":{"enum":["AWAITING_CLIENT_APPROVAL","AWAITING_CLIENT_SUBMISSION","AWAITING_ADJUSTMENTS_TO_BE_READY","AWAITING_DEEL_PROCESSING","DEEL_PROCESSING","REJECTED","CANCELLED","PARTIALLY_APPROVED","APPROVED"],"type":"string","example":"AWAITING_CLIENT_APPROVAL","description":"Lifecycle status of the ODP."},"entries":{"type":"array","items":{"type":"object","required":["amount","currency","title","type","uom","metadata"],"properties":{"uom":{"enum":["CURRENCY"],"type":"string","example":"CURRENCY","description":"Unit of measure of the entry amount. Always CURRENCY."},"type":{"type":"string","example":"BONUS","description":"The adjustment type of the entry."},"title":{"type":"string","example":"Q1 performance bonus","description":"Short human-readable title of the entry."},"amount":{"type":"number","example":150.5,"description":"The entry amount in the contract currency.","x-sensitive-employment":true},"currency":{"type":"string","example":"USD","description":"ISO 4217 currency code of the entry amount."},"metadata":{"type":"object","properties":{"type":{"type":"string","example":"BONUS","description":"The adjustment type of the entry."},"public_id":{"type":"string","example":"adj_abc123","description":"Public ID of the underlying adjustment."},"reviewed_at":{"type":"string","format":"date-time","example":"2026-01-06T10:00:00Z","nullable":true,"description":"Timestamp of the last review of the entry."},"vendor_name":{"type":"string","example":"Acme Inc.","nullable":true,"description":"Vendor associated with the entry, when applicable.","x-sensitive-pii":true},"category_label":{"type":"string","example":"Bonus","nullable":true,"description":"Label of the adjustment category."},"submission_date":{"type":"string","format":"date-time","example":"2026-01-04T09:00:00Z","nullable":true,"description":"Timestamp when the entry was submitted."},"category_group_label":{"type":"string","example":"Compensation","nullable":true,"description":"Label of the adjustment category group."}},"description":"Additional, non-contractual metadata about the entry."},"submitter":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"p_abc123","nullable":true,"description":"Public ID of the submitter, when available."},"name":{"type":"string","example":"John Doe","description":"Full name of the submitter.","x-sensitive-pii":true}},"description":"The person who submitted the entry."},"description":{"type":"string","example":"Bonus awarded for Q1 results","nullable":true,"description":"Free-text description of the entry."},"date_of_entry":{"type":"string","format":"date","example":"2026-01-05","nullable":true,"description":"Date the entry applies to (YYYY-MM-DD). Null when not available for the entry."}},"description":"An On-Demand Payroll entry (an adjustment attached to the ODP)."},"description":"Entries currently attached to the ODP."},"invoice_id":{"type":"string","example":"inv_abc123","nullable":true,"description":"Public ID of the invoice associated with the ODP, when one has been generated. Use the Invoices API to fetch its details."},"submitted_at":{"type":"string","format":"date-time","example":"2026-01-01T00:00:00Z","nullable":true,"description":"Timestamp when the ODP was submitted, when submitted."},"submitted_by":{"type":"string","example":"Jane Doe","nullable":true,"description":"Name of the person who submitted the ODP, when submitted.","x-sensitive-pii":true},"deel_reviewed_at":{"type":"string","format":"date-time","example":"2026-01-08T12:00:00Z","nullable":true,"description":"Timestamp when Deel reviewed the ODP, when reviewed."},"estimated_payday":{"type":"string","format":"date","example":"2026-01-10","nullable":true,"description":"Estimated payday for the ODP (YYYY-MM-DD)."},"next_available_payment_date":{"type":"string","format":"date","example":"2026-01-12","nullable":true,"description":"Next available payment date for the EOR contract (YYYY-MM-DD), when applicable."}},"description":"An On-Demand Payroll for a contract."}}}}},"description":"The active On-Demand Payroll for the contract."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Authentication is required or has failed."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"The caller is not allowed to perform this action."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"No active On-Demand Payroll for the contract."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"con_abc123","required":true,"description":"Public ID (oid) of the contract."}],"description":"Retrieves the active On-Demand Payroll for the given contract, including its status, SLAs, invoice and attached entries.\n\n **Token scopes**: `on-demand-payroll:read`","operationId":"retrieveCurrentOnDemandPayroll-v2026-07-16","security":[{"deelToken":[]},{"oauth2":["on-demand-payroll:read"]}]}},"/gp/workers/{worker_id}/terminations":{"post":{"path":"/rest/gp/workers/{worker_id}/terminations","tags":["Global Payroll"],"method":"post","summary":"Request termination","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","last_date_of_work"],"properties":{"id":{"type":"string","format":"uuid","example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","description":"Unique identifier for the termination request."},"last_date_of_work":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Long date-time format following ISO-8601."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for a worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for a worker in UUID format."}],"description":"Initiates the termination process for a Global Payroll worker. A successful response confirms the request was accepted and the process has begun, but does not indicate that termination is complete.\n\n **Token scopes**: `global-payroll:write`","operationId":"requestTermination-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["severance","desired_end_date","last_date_of_work","message","is_voluntary"],"properties":{"message":{"type":"string","example":"Termination reason","description":"The reason for terminating the worker's engagement."},"severance":{"oneOf":[{"type":"object","required":["amount","type","time_unit","currency"],"properties":{"type":{"enum":["TIME"],"type":"string","example":"TIME","description":"The type of severance, either in time off."},"amount":{"type":"number","example":100,"description":"The amount of severance, specified in the designated currency or time unit."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":false,"maxLength":3,"minLength":3,"description":"Currency code for severance."},"time_unit":{"enum":["DAYS","WEEKS","MONTHS"],"type":"string","example":"MONTHS","description":"The unit of time for severance (e.g., DAYS, WEEKS, MONTHS)."}}},{"type":"object","required":["amount","type","currency"],"properties":{"type":{"enum":["CASH"],"type":"string","example":"CASH","description":"The type of severance, in cash."},"amount":{"type":"number","example":100,"description":"The amount of severance, specified in the designated currency."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":false,"maxLength":3,"minLength":3,"description":"Currency code for severance."}}}]},"is_voluntary":{"type":"boolean","example":true,"description":"Indicates whether the worker termination is voluntary (true) or involuntary (false)."},"desired_end_date":{"type":"string","format":"date","example":"2023-12-31","description":"The preferred end date for terminating the worker's engagement, in ISO-8601 format (YYYY-MM-DD)."},"last_date_of_work":{"type":"string","format":"date","example":"2023-12-31","description":"The effective termination date of the worker's employment, in ISO-8601 format (YYYY-MM-DD)."}}}}}}},"required":true,"description":"Request body to request a termination for an employee."},"security":[{"deelToken":[]},{"oauth2":["global-payroll:write"]}]}},"/refund-statements":{"get":{"path":"/rest/refund-statements","tags":["Accounting"],"method":"get","summary":"Retrieve refund statements","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["rows","has_more","next_cursor","total_count"],"properties":{"rows":{"type":"array","items":{"type":"object","required":["id","label","amount","status","currency","payment_method","created_at"],"properties":{"id":{"type":"string","example":"34d7Y48Ymu44g66fghN9F","description":"Unique identifier of the refund statement.","x-sensitive-pii":true},"label":{"type":"string","example":"REC-2024-3","description":"A descriptive label for the refund statement.","x-sensitive-pii":true},"amount":{"type":"string","example":"1500.00","description":"Amount of the payment.","x-sensitive-pii":true},"status":{"enum":["paid","processing","cancelled","failed"],"type":"string","example":"paid","description":"Status of the refund statement. Either 'paid', 'processing', 'cancelled' or 'failed'.","x-sensitive-pii":true},"paid_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Date and time when the refund statement was completed, in ISO-8601 format."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3,"description":"Three-letter currency code for the payment, following ISO 4217.","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2022-05-23T14:45:30.123Z","description":"Date and time when the refund statement was created, in ISO-8601 format."},"payment_method":{"enum":["bank_transfer","client_balance"],"type":"string","example":"bank_transfer","description":"Method of payment used for the refund statement.","x-sensitive-pii":true}}},"description":"Array of refund statements matching the query criteria."},"has_more":{"type":"boolean","example":true,"description":"Inform if there are more entries to be fetched using next cursor,."},"next_cursor":{"type":"string","example":"BHF2gkMEMT8D9UQDmty66","nullable":true,"description":"A cursor for pagination. Use the value returned in the 'next_cursor' field to get the next page of results. If there are no more results, this will be null."},"total_count":{"type":"integer","example":150,"description":"The total number of refund statements matching the query."}}}}}}},"description":"Successfully retrieved refund statements."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden","description":"Machine-readable error code"},"message":{"type":"string","example":"You don't have permission to access this resource","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"date_from","schema":{"type":"string","format":"date"},"example":"2022-01-01","description":"Filters results to include payments created on or after this date (in ISO 8601 format)."},{"in":"query","name":"date_to","schema":{"type":"string","format":"date"},"example":"2022-12-31","description":"Filters results to include payments created before this date (in ISO 8601 format)."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"BHF2gkMEMT8D9UQDmty66","description":"A cursor for pagination. Use the value returned in the 'next_cursor' field to get the next page of results."},{"in":"query","name":"currencies","schema":{"type":"array","items":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3}},"example":["USD","EUR"],"description":"Filters payments by their currency codes. Can be a single currency code or an array of codes."},{"in":"query","name":"entities","schema":{"type":"array","items":{"enum":["individual","company"],"type":"string"}},"example":["company"],"description":"Filters payments by legal entity type (e.g., 'individual' or 'company'). Can be a single entity type or an array."}],"description":"Use this endpoint to retrieve a list of refund statements. This allows review of past transactions and reconciliation of accounts.\n\n **Token scopes**: `accounting:read`","operationId":"retrieveRefundStatements-v2026-04-30","security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/contracts/{contract_id}/ic-invoicing-taxes":{"patch":{"path":"/rest/contracts/{contract_id}/ic-invoicing-taxes","tags":["IC invoicing taxes"],"method":"patch","summary":"Update IC invoicing tax","responses":{"204":{"description":"IC tax successfully updated"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel Contract ID"}],"description":"Applies a partial update to the invoicing tax for an independent contractor contract; accepts `tax_type` (WITHHOLDING_TAX or VAT) and `percentage` to modify how taxes are calculated on future invoices.\n\n **Token scopes**: `invoice-adjustments:write`","operationId":"updateIcInvoicingTax-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["tax_type","percentage"],"properties":{"tax_type":{"enum":["WITHHOLDING_TAX","VAT"],"type":"string","example":"WITHHOLDING_TAX","nullable":false,"description":"Type of IC invoicing tax."},"percentage":{"type":"number","example":"5","nullable":false,"description":"Tax percentage amount."}}}}},"example":{"data":{"tax_type":"WITHHOLDING_TAX","percentage":"5"}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}]},"get":{"path":"/rest/contracts/{contract_id}/ic-invoicing-taxes","tags":["IC invoicing taxes"],"method":"get","summary":"Get IC invoicing taxes","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["id"],"properties":{"id":{"type":"string","example":"37nex2x","description":"Deel contract ID"},"vat":{"type":"object","nullable":true,"properties":{"percentage":{"type":"number","example":5,"nullable":true,"description":"VAT percentage"}},"description":"VAT tax details (if applicable)"},"withholding_tax":{"type":"object","nullable":true,"properties":{"percentage":{"type":"number","example":10,"nullable":true,"description":"Withholding tax percentage"}},"description":"Withholding tax details (if applicable)"}}}}}}},"description":"IC invoicing taxes response"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel Contract ID"}],"description":"Retrieves the VAT and withholding tax settings configured for an independent contractor contract.\n\n **Token scopes**: `invoice-adjustments:read`","operationId":"getIcInvoicingTaxes-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:read"]}]},"post":{"path":"/rest/contracts/{contract_id}/ic-invoicing-taxes","tags":["IC invoicing taxes"],"method":"post","summary":"Create IC invoicing tax","responses":{"201":{"description":"IC tax successfully created"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel Contract ID"}],"description":"Creates an invoicing tax entry for an independent contractor contract.\n\n **Token scopes**: `invoice-adjustments:write`","operationId":"createIcInvoicingTax-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["tax_type","percentage"],"properties":{"tax_type":{"enum":["WITHHOLDING_TAX","VAT"],"type":"string","example":"WITHHOLDING_TAX","nullable":false,"description":"Type of IC invoicing tax."},"percentage":{"type":"number","example":5,"nullable":false,"description":"Tax percentage amount."}}}}},"example":{"data":{"tax_type":"WITHHOLDING_TAX","percentage":5}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}]}},"/eor/worker":{"post":{"path":"/rest/eor/worker","tags":["EOR"],"method":"post","summary":"Create EOR Worker","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["hris_profile_id","user_id","profile_id"],"properties":{"user_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the worker's user profile"},"profile_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the worker's profile"},"hris_profile_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"The ID of the worker's HRIS profile"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates an EOR worker record and returns the associated `user_id`, `profile_id`, and `hris_profile_id`.\n\n **Token scopes**: `people:write`","operationId":"createEorWorker-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["contract_id"],"properties":{"contract_id":{"type":"string","example":"mp4y66j","description":"ID of the contract associated with the timesheet"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/ats/applications/{application_id}/interview-plan-stages":{"post":{"path":"/rest/ats/applications/{application_id}/interview-plan-stages","tags":["ATS"],"method":"post","summary":"Assign application to interview plan stage","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"The unique identifier of the created application interview plan stage record"},"created_at":{"type":"string","format":"date-time","example":"2025-11-14T10:30:00Z","description":"The timestamp when the record was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-11-14T10:30:00Z","description":"The timestamp when the record was last updated"}},"description":"The created application interview plan stage record"}}}}},"description":"Application interview plan stage successfully created"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"application_id","schema":{"type":"string","format":"uuid"},"example":"faac641e-a484-4875-aed5-bfcb0a0691a0","required":true,"description":"ID of the application to be associated with the interview plan stage"}],"description":"Associates an application with a specific interview plan stage. Set `is_current_stage` to `true` to advance the application's active stage, or `false` to record a historical stage entry without changing the current stage. Pass `applicable_job_activities` to selectively trigger activities, omit it to trigger all, or pass an empty array to trigger none; if archiving the candidate, include `candidate_archivation_reason_id` and optionally `candidate_archivation_email_template_id` to send a rejection email.\n\n **Token scopes**: `ats:write`","operationId":"associateApplicationWithAnInterviewPlanStage-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["interview_plan_stage_id","is_current_stage","creator_id"],"properties":{"creator_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"HRIS Organization User ID of the user creating the resource"},"delay_unit":{"enum":["hours","days","weeks"],"type":"string","example":"days","description":"The unit of time for the delay. Must be provided together with delay_amount. Cannot be used together with scheduled_send_at."},"delay_amount":{"type":"integer","example":2,"maximum":100,"minimum":1,"description":"The amount of time to delay the archivation email. Must be provided together with delay_unit. Cannot be used together with scheduled_send_at."},"is_current_stage":{"type":"boolean","example":true,"description":"When true, sets this stage as the application's current stage in the hiring workflow. When false, creates a historical record without changing the application's current stage."},"scheduled_send_at":{"type":"string","format":"date-time","example":"2026-04-01T10:00:00.000Z","description":"The exact future datetime to send the archivation email. Cannot be used together with delay_amount/delay_unit."},"interview_plan_stage_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"The ID of the interview plan stage to associate with the application"},"applicable_job_activities":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"The ID of the job activity to trigger"},"participants":{"type":"array","items":{"type":"object","required":["participant_hris_organization_user_id","role_slug"],"properties":{"role_slug":{"enum":["REVIEWER","INTERVIEWER"],"type":"string","example":"INTERVIEWER","description":"The role of the participant in the activity"},"participant_hris_organization_user_id":{"type":"string","format":"uuid","example":"c3d4e5f6-a7b8-9012-cdef-123456789012","description":"The HRIS organization user ID of the participant"}}},"description":"Optional array of custom participants for this activity. If not provided, the default participants from the job activity template will be used."},"candidate_self_scheduling_email_template_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Optional custom email template ID for candidate self-scheduling (only applicable for interview scheduling activities)"}}},"description":"Optional array of job activities to trigger when associating the application with this stage. If not provided, all activities will be triggered. If an empty array is provided, no activities will be triggered."},"candidate_archivation_reason_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Optional ID of the archivation reason if the candidate is being archived"},"candidate_archivation_email_template_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Optional ID of the rejection email template if the candidate is being archived"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["ats:write"]}]}},"/eor/mailboxes/change-password":{"post":{"path":"/rest/eor/mailboxes/change-password","tags":["EOR"],"method":"post","summary":"Change EOR Mailbox Password","responses":{"204":{"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Changes the mailbox password for an EOR worker.\n\n **Token scopes**: `worker:write`","operationId":"changeEorMailboxPassword-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"password":{"type":"string","example":"Password!@#456","description":"The new password."}}}}}}},"required":true,"description":"The new password to be set"},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/integrations/consent":{"get":{"path":"/rest/integrations/consent","tags":["Integrations"],"method":"get","summary":"Get integration consent","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","nullable":false,"description":"Unique identifier for the consent."},"scope":{"type":"string","nullable":false,"description":"Scope of the consent."},"state":{"type":"string","nullable":false,"description":"State of the consent."},"status":{"type":"string","nullable":false,"description":"Status of the consent."},"user_id":{"type":"string","nullable":true,"description":"User ID associated with the consent."},"client_id":{"type":"string","nullable":false,"description":"Client ID associated with the consent."},"user_name":{"type":"string","nullable":true,"description":"User name associated with the consent."},"created_at":{"type":"string","nullable":false,"description":"Creation date for the consent."},"expires_at":{"type":"string","nullable":false,"description":"Expiration date for the consent."},"profile_id":{"type":"string","nullable":true,"description":"Profile ID associated with the consent."},"updated_at":{"type":"string","nullable":false,"description":"Update date for the consent."},"user_email":{"type":"string","nullable":true,"description":"User email associated with the consent."},"redirect_uri":{"type":"string","nullable":false,"description":"Redirect URI for the consent."},"organization_id":{"type":"string","nullable":true,"description":"Organization ID associated with the consent."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Retrieves the OAuth consent record for the authenticated user or organization, including its current status, granted scope, and expiry.","operationId":"getIntegrationConsent-v2026-01-01","security":[{"deelToken":[]},{"oauth2":[]}]}},"/people/{worker_id}/custom_fields/{id}":{"delete":{"path":"/rest/people/{worker_id}/custom_fields/{id}","tags":["Custom Fields"],"method":"delete","summary":"Delete the custom field value from Worker by Id","responses":{"204":{"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"description":"Not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Custom field id."},{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Worker id."}],"description":"Removes a specific custom field value from a worker record by the custom field's ID.\n\n **Token scopes**: `people:write`","operationId":"DeleteCustomFieldValueFromWorker-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/hris/worker_relations/profile/{hrisProfileOid}/parent":{"put":{"path":"/rest/hris/worker_relations/profile/{hrisProfileOid}/parent","tags":["Worker Relations"],"method":"put","summary":"Create a parent worker relation","responses":{"204":{"content":{"application/json":{}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"hrisProfileOid","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"HrisProfile ID"}],"description":"Creates or replaces the parent worker relation for the HrisProfile. If a parent relation already exists for this profile, it is overwritten with the supplied data.\n\n **Token scopes**: `profile:write`","operationId":"upsertParentWorkerRelations-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["id","hris_relationship_type_id"],"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the parent profile"},"hris_relationship_type_id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the relationship type"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/payouts/contractors/methods/{id}":{"put":{"path":"/rest/payouts/contractors/methods/{id}","tags":["Payouts"],"method":"put","summary":"Update a bank transfer method","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","description":"Unique identifier for the bank transfer method"},"status":{"enum":["pending","verifying","failed","approved"],"type":"string","example":"approved","description":"Status of the method. Can be `pending`, `verifying`, `failed`, or `approved`"}}}}},"example":{"data":{"id":"123e4567-e89b-12d3-a456-426614174000","status":"approved"}}}},"description":"Bank transfer method created successfully."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Method unique identifier"}],"description":"Fully replaces the bank transfer method; all method fields must be provided as this is a complete replacement, not a partial update.\n\n **Token scopes**: `worker:read`, `worker:write`","operationId":"updateBankTransferMethod-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["payment_method","address","payload","selected_option"],"properties":{"address":{"type":"object","required":["first_line","country","post_code","city"],"properties":{"city":{"type":"string","example":"San Francisco","description":"City name"},"state":{"type":"string","example":"CA","description":"State code"},"country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","description":"Country code"},"post_code":{"type":"string","example":"210000","description":"Post code"},"first_line":{"type":"string","example":"First Line","description":"First line of the address"}}},"payload":{"type":"object","example":{"currency":"US","swiftCode":"DBDBRSBG","intermediary":{"bic":"RSDASDS","country":"DE"},"accountNumber":"SA0380000000608010167222","accountHolderName":"John Doe"},"description":"Dynamic properties based on selected option. For example, if `selectedOption` is `swift_code`, payload may include `swiftCode`, `accountHolderName`, and `accountNumber`.","additionalProperties":true},"is_default":{"type":"boolean","example":true,"description":"Specifies if the method is the default payout method - if true, autowithdrawal will be enabled for the contractor using this method"},"method_name":{"type":"string","example":"Bank Method","description":"Name for method"},"payment_method":{"enum":["bank_transfer"],"type":"string","example":"bank_transfer","description":"Specifies the type of payment method"},"selectedOption":{"type":"string","example":"swift_code","description":"Specifies the type of bank transfer method. Maps from requirements type field"}}}}},"example":{"data":{"name":"Bank Method","address":{"city":"San Francisco","state":"CA","country":"US","post_code":"22406","first_line":"First Line"},"payload":{"currency":"USD","swiftCode":"DBDBRSBG","intermediary":{"bic":"RSDASDS","country":"US"},"accountNumber":"SA0380000000608010165443","accountHolderName":"John Doe"},"is_default":true,"payment_method":"bank_transfer","selected_option":"swift_code"}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/contracts/custom_fields/{id}":{"get":{"path":"/rest/contracts/custom_fields/{id}","tags":["Custom Fields"],"method":"get","summary":"Get custom fields from contracts","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{}},"required":["data"],"properties":{"data":{"type":"object","example":{"id":"d290f1ee-6c54-4b01-90e6-d701748f0851","name":"Custom field name","type":{"name":"text"},"settings":{},"placement":"profile","created_at":"2025-12-12T03:31:53.183Z","description":"Custom field description"},"properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Custom field id"},"name":{"type":"string","example":"Custom field name","description":"Name of the custom field"},"type":{"oneOf":[{"type":"object","example":{"name":"text"},"properties":{"name":{"enum":["text","number","date","percentage"],"type":"string","example":"text","description":"Simple field type"}},"description":"Simple custom field types"},{"type":"object","example":{"name":"currency","currency":"USD","is_fixed":true},"properties":{"name":{"enum":["currency"],"type":"string","example":"currency","description":"Currency field type"},"currency":{"type":"string","example":"USD","description":"ISO currency code"},"is_fixed":{"type":"boolean","example":true,"description":"Whether the currency is fixed"}},"description":"Currency custom field type"},{"type":"object","example":{"name":"list","options":["Option 1","Option 2"]},"properties":{"name":{"enum":["list","multiselect"],"type":"string","example":"list","description":"List field type"},"options":{"type":"array","items":{"type":"string","example":"Option 1","description":"Single option value"},"example":["Option 1","Option 2"],"description":"Available options for the list field"}},"description":"List or multiselect custom field type"}],"example":{"name":"currency","currency":"USD","is_fixed":true},"description":"Type definition of the custom field"},"settings":{"type":"object","example":{"access":{"provided_by":"organization","is_sensitive":true},"required":true,"countries":["CA","GB","US"],"is_enabled":true,"worker_types":["eor"]},"properties":{"access":{"type":"object","example":{"provided_by":"organization","is_sensitive":true},"properties":{"provided_by":{"enum":["organization","worker"],"type":"string","example":"organization","nullable":true,"description":"Entity providing access"},"is_sensitive":{"type":"boolean","example":true,"description":"Whether the field contains sensitive data"}},"description":"Access control settings"},"required":{"type":"boolean","example":true,"description":"Whether the field is mandatory"},"countries":{"type":"array","items":{"type":"string","example":"US","description":"ISO country code"},"example":["CA","GB","US"],"description":"Countries where the field applies"},"is_enabled":{"type":"boolean","example":true,"description":"Whether the field is enabled"},"worker_types":{"type":"array","items":{"enum":["eor","contractor","hris_direct_employee","direct_employee"],"type":"string","example":"eor","description":"Worker type"},"example":["eor"],"description":"Applicable worker types"}},"description":"Configuration settings for the custom field"},"placement":{"enum":["profile","contract"],"type":"string","example":"profile","description":"Where the custom field is displayed"},"created_at":{"type":"string","format":"date-time","example":"2025-12-12T03:31:53.183Z","description":"Creation timestamp"},"description":{"type":"string","example":"Custom field description","nullable":true,"description":"Optional description of the custom field"}},"description":"Custom field object"}},"description":"Response wrapper object"}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["message","code"],"properties":{"code":{"type":"string","example":"INTERNAL_SERVER_ERROR","description":"Error code identifying the type of error."},"details":{"type":"string","example":"An unexpected error occurred while processing the request.","nullable":true,"description":"Additional details about the error."},"message":{"type":"string","example":"Internal server error","description":"Error message describing what went wrong."}}}}}}},"description":"Internal Server Error"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Custom field id."}],"description":"Retrieves a single custom field definition from a contract by its `id`, returning the field's name, type, settings, placement, and description.\n\n **Token scopes**: `contracts:read`","operationId":"getCustomFieldsFromContracts-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/hris/worker_relations/types/{typeId}":{"patch":{"path":"/rest/hris/worker_relations/types/{typeId}","tags":["Worker Relations"],"method":"patch","summary":"Update a worker relation type","responses":{"204":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"integer","example":1,"description":"Worker Relation Type id"},"child_name":{"type":"string","example":"Child","description":"The name of the secondary party in the relationship"},"is_default":{"type":"boolean","example":false,"description":"Whether this relation is default or not"},"external_id":{"type":"string","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","maxLength":100,"description":"A custom ID for the relation type"},"parent_name":{"type":"string","example":"Parent","description":"The name of the primary party in the relationship"}}}}}}},"description":"Successful operation"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"typeId","schema":{"type":"string","format":"uuid"},"example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","required":true,"description":"Worker Relation Type id"}],"description":"Applies a partial update to an existing worker relation type. Only fields provided in the request body are modified; omitted fields retain their current values.\n\n **Token scopes**: `organizations:write`","operationId":"updateWorkerRelationType-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"child_name":{"type":"string","example":"Child","maxLength":100,"description":"The name of the secondary party in the relationship"},"external_id":{"type":"string","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","maxLength":100,"description":"A custom ID for the relation type"},"parent_name":{"type":"string","example":"Parent","maxLength":100,"description":"The name of the primary party in the relationship"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/time_offs/profile/{hris_profile_id}/policies":{"get":{"path":"/rest/time_offs/profile/{hris_profile_id}/policies","tags":["Time Off"],"method":"get","summary":"List policies","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"policies":{"type":"array","items":{"type":"object","required":["id","name","tracking_unit","tracking_unit_amount","request_start_type","request_start_unit","request_start_unit_amount","leave_type","time_off_request_type","retrospective_request_type","overlap_request_type","allow_to_edit_past_time_offs","auto_approval_inactivity_time_unit","auto_approval_inactivity_time_unit_amount","notice_period_unit","notice_period_unit_amount","is_description_required","is_attachment_required","created_at","updated_at","policy_type","policy_allowances","policy_allowance_proration","payment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"c7f4986f-39a4-4f5d-9325-f37a8e9f5cdf","description":"Unique identifier of the policy"},"name":{"type":"string","example":"US PTO Policy","description":"Name of the policy"},"created_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","description":"Date and time when the policy was created"},"leave_type":{"enum":["SHORT_TERM_LEAVE","LONG_TERM_LEAVE"],"type":"string","example":"SHORT_TERM_LEAVE","description":"Type of leave for this policy"},"updated_at":{"type":"string","format":"date-time","example":"2023-01-15T12:30:45Z","description":"Date and time when the policy was last updated"},"description":{"type":"string","example":"Standard paid time off policy for US employees","nullable":true,"description":"Description of the policy"},"policy_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"c7f4986f-39a4-4f5d-9325-f37a8e9f5cdf","description":"Unique identifier of the policy type"},"name":{"type":"string","example":"Vacation","description":"Name of the policy type"}},"description":"Type of this policy"},"payment_type":{"enum":["PAID","UNPAID"],"type":"string","example":"PAID","description":"Payment type for the time off policy"},"tracking_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"YEAR","nullable":true,"description":"Unit used for tracking policy periods"},"policy_type_id":{"type":"string","format":"uuid","example":"c7f4986f-39a4-4f5d-9325-f37a8e9f5cdf","description":"Unique identifier of the policy type"},"time_off_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"c7f4986f-39a4-4f5d-9325-f37a8e9f5cdf","description":"Unique identifier of the time off type"},"name":{"type":"string","example":"Vacation","description":"Name of the time off type"},"description":{"type":"string","example":"Annual vacation leave","nullable":true,"description":"Description of the time off type"}}},"description":"Time off types associated with this policy"},"tracking_cadence":{"enum":["FIXED_DAY","ANNIVERSARY","NOT_SPECIFIED"],"type":"string","example":"FIXED_DAY","description":"Cadence for tracking policy periods"},"policy_allowances":{"type":"array","items":{"type":"object","required":["id","type","accrual_type","accrual_unit","accrual_unit_amount","accrual_application_type","entitlement_unit","entitlement_unit_amount","entitlement_start_type","entitlement_start_unit","entitlement_start_unit_amount","entitlement_start_date","entitlement_expiration_unit","entitlement_expiration_unit_amount","rollover_type","rollover_limit_unit_amount","rollover_expiration_unit","rollover_expiration_unit_amount","zero_out_negative_balances_on_rollover","enable_bank_holidays","balance_tracking_type","balance_tracking_flexible_custom_request_amount"],"properties":{"id":{"type":"string","format":"uuid","example":"c7f4986f-39a4-4f5d-9325-f37a8e9f5cdf","description":"Unique identifier of the policy allowance"},"type":{"enum":["BASE_ALLOWANCE","ADDITIONAL_ALLOWANCE"],"type":"string","example":"BASE_ALLOWANCE","description":"Type of the policy allowance"},"accrual_type":{"enum":["TIMEFRAME","EVENT","TIME_OFF_IN_LIEU","HOURLY","LUMPSUM","NO_AUTO_ACCRUAL"],"type":"string","example":"TIMEFRAME","description":"Type of accrual for the allowance. Determines how/when profiles should earn their entitlement (aka: allowance)."},"accrual_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"MONTH","nullable":true,"description":"Unit used for accrual"},"rollover_type":{"enum":["NO_ROLLOVER","PAY_OUT","CARRY_OVER","CARRY_OVER_PAY_OUT",null],"type":"string","example":"CARRY_OVER","nullable":true,"description":"Type of rollover"},"entitlement_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"CALENDAR_DAY","nullable":true,"description":"Unit used for entitlement"},"accrual_unit_amount":{"type":"number","example":1,"nullable":true,"description":"Amount of accrual units"},"enable_bank_holidays":{"type":"boolean","example":true,"description":"Whether bank holidays are enabled for this allowance"},"balance_tracking_type":{"enum":["INFLEXIBLE","FLEXIBLE_NO_LIMIT","FLEXIBLE_CUSTOM_AMOUNT","FLEXIBLE_UP_TO_YEARLY_ALLOWANCE",null],"type":"string","example":"FLEXIBLE_NO_LIMIT","nullable":true,"description":"Type of balance tracking. Determines how workers can request their time off."},"entitlement_start_date":{"type":"string","format":"date","example":"2023-01-01","nullable":true,"description":"Start date for entitlement"},"entitlement_start_type":{"enum":["IMMEDIATELY","FIXED_PERIOD","FIXED_DAY"],"type":"string","example":"IMMEDIATELY","description":"Type of entitlement start"},"entitlement_start_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"CALENDAR_DAY","nullable":true,"description":"Unit used for entitlement start"},"entitlement_unit_amount":{"type":"number","example":15,"nullable":true,"description":"Amount of entitlement units"},"accrual_application_type":{"enum":["BEGIN_OF_CYCLE","END_OF_CYCLE","BEGIN_OF_NEXT_CYCLE",null],"type":"string","example":"BEGIN_OF_CYCLE","nullable":true,"description":"Type of accrual application. Enum to indicate when accruals will be applied within the accrual cycles."},"rollover_expiration_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"MONTH","nullable":true,"description":"Unit used for rollover expiration"},"rollover_limit_unit_amount":{"type":"number","example":5,"nullable":true,"description":"Amount of rollover limit units"},"entitlement_expiration_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"MONTH","nullable":true,"description":"Unit used for entitlement expiration"},"entitlement_start_unit_amount":{"type":"number","example":90,"nullable":true,"description":"Amount of entitlement start units"},"rollover_expiration_unit_amount":{"type":"number","example":6,"nullable":true,"description":"Amount of rollover expiration units"},"entitlement_expiration_unit_amount":{"type":"number","example":3,"nullable":true,"description":"Amount of entitlement expiration units"},"zero_out_negative_balances_on_rollover":{"type":"boolean","example":true,"description":"Whether negative balances are zeroed out on rollover"},"part_time_prorated_entitlement_unit_amount":{"type":"number","example":7.5,"nullable":true,"description":"The total prorated policy allowance entitlement amount if the worker is part-time."},"balance_tracking_flexible_custom_request_amount":{"type":"number","example":8,"nullable":true,"description":"Amount for flexible custom request balance tracking. The flexible custom extra amount request of the policy allowance."}}},"description":"Allowances associated with this policy"},"notice_period_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"BUSINESS_DAY","nullable":true,"description":"Unit for notice period"},"request_start_type":{"enum":["IMMEDIATELY","FIXED_PERIOD",null],"type":"string","example":"IMMEDIATELY","nullable":true,"description":"Type of request start configuration"},"request_start_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"BUSINESS_DAY","nullable":true,"description":"Unit used for request start configuration"},"tracking_start_date":{"type":"string","format":"date","example":"2023-01-01","nullable":true,"description":"Start date for tracking policy periods"},"overlap_request_type":{"enum":["ALLOWED","NOT_ALLOWED"],"type":"string","example":"NOT_ALLOWED","description":"Type of overlapping requests allowed"},"tracking_unit_amount":{"type":"number","example":1,"nullable":true,"description":"Amount of tracking units"},"time_off_request_type":{"enum":["HALF_DAY","HOURLY","FULL_DAY","PERCENTAGE","PARTIAL_HOURS"],"type":"string","example":"FULL_DAY_ONLY","description":"Type of time off requests allowed"},"is_attachment_required":{"enum":["NOT_REQUIRED","REQUIRED","CONDITIONALLY_REQUIRED"],"type":"string","example":"REQUIRED","description":"Whether an attachment is required for time off requests"},"is_description_required":{"type":"boolean","example":true,"description":"Whether a description is required for time off requests"},"notice_period_unit_amount":{"type":"number","example":14,"nullable":true,"description":"Amount of notice period units"},"request_start_unit_amount":{"type":"number","example":14,"nullable":true,"description":"Amount of request start units"},"policy_allowance_proration":{"type":"object","required":["part_time_worker_treatment_type","part_time_worker_treatment_specific_amount","prorates_on_hire","prorates_on_termination"],"properties":{"prorates_on_hire":{"type":"boolean","example":true,"description":"Whether proration is applied on hire"},"prorates_on_termination":{"type":"boolean","example":true,"description":"Whether proration is applied on termination"},"part_time_worker_treatment_type":{"enum":["SAME_AS_FTE","PERCENTAGE_OF_FTE","BASED_ON_WORK_HOURS","BASED_ON_WORK_DAYS","CUSTOM_ENTITLEMENT"],"type":"string","example":"SAME_AS_FTE","description":"Type of treatment for part-time workers"},"part_time_worker_treatment_specific_amount":{"type":"number","example":10,"nullable":true,"description":"Specific amount for part-time worker treatment when the type is CUSTOM_ENTITLEMENT"}},"description":"Proration configuration for policy allowances"},"retrospective_request_type":{"enum":["ALLOWED","NOT_ALLOWED"],"type":"string","example":"ALLOWED","description":"Type of retrospective requests allowed"},"allow_to_edit_past_time_offs":{"type":"boolean","example":false,"description":"Whether editing past time offs is allowed"},"auto_approval_inactivity_time_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR",null],"type":"string","example":"CALENDAR_DAY","nullable":true,"description":"Unit for auto-approval inactivity time"},"auto_approval_inactivity_time_unit_amount":{"type":"number","example":3,"nullable":true,"description":"Amount of auto-approval inactivity time units"}},"description":"Time off policy"}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Policy not found"}}}}},"description":"Not Found - Resource not found"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"policy_type_name","schema":{"enum":["Adoption leave","Advanced vacation","Bereavement leave","Blood donation leave","Breastfeeding leave","Childbirth leave","Childcare leave","Civic/public duty leave","Compensatory leave","Disability leave","Doctor's appointment leave","Family & domestic violence leave","Family responsibility leave","Floating Holiday Allowance","Hajj leave","Hospitalization leave","Long Service Leave","Marriage/wedding leave","Maternity leave","Menstrual leave","Military leave","Moving leave","Other leave","Paid leave","Parental leave","Paternity leave","Personal leave","Pregnancy leave","Regional holiday","RTT","Sick leave","Study leave","Supplementary Leave","Unpaid leave","Vacation","Vacation - public holidays replacement","Volunteer leave","Work accident leave","Work Location"],"type":"string"},"example":"Adoption leave","required":false,"description":"Policy type name."},{"in":"query","name":"policy_type_id","schema":{"type":"string","format":"uuid"},"example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","required":false,"description":"policy type id"},{"in":"path","name":"hris_profile_id","schema":{"type":"string","format":"uuid"},"example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","required":true,"description":"hrisProfileId id."}],"description":"Returns the time-off policies assigned to the specified hris_profile_id, including policy details such as allowed types, accrual rules, and balances. Results can be filtered by policy type name or policy type ID.\n\n **Token scopes**: `time-off:read`","operationId":"listPolicies-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/contracts/{contract_id}/tasks/many/reviews":{"post":{"path":"/rest/contracts/{contract_id}/tasks/many/reviews","tags":["Tasks"],"method":"post","summary":"Review multiple tasks","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean","example":true,"description":"Indicating whether the task review was created"}}}}},"example":{"data":{"created":true}}}},"description":"The task reviews were successfully processed."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Invalid 'status' field. Must be 'approved' or 'declined'."}}}}},"description":"Bad request. Missing required fields or invalid data format."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized access. Please provide a valid authentication token."}}}}},"description":"Unauthorized. Authentication credentials are missing or invalid."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Task with ID '00000000-0000-0000-0000-000000000001' not found."}}}}},"description":"Not found. One or more specified tasks or the contract was not found."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"An error occurred while reviewing the tasks. Please try again later."}}}}},"description":"Internal server error. An unexpected error occurred while processing the request."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"The unique Deel contract ID associated with the tasks."}],"description":"Approves or declines multiple submitted tasks associated with a contract in a single request. Each task review must include a status of approved or declined, with an optional reason required when declining.\n\n **Token scopes**: `contracts:write`","operationId":"reviewMultipleTasks-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["status","ids"],"properties":{"ids":{"type":"array","items":{"type":"string","format":"uuid"},"example":["00000000-0000-0000-0000-000000000001","00000000-0000-0000-0000-000000000002"],"maxItems":1000,"minItems":1,"description":"An array of task IDs to review. A maximum of 1000 task IDs is allowed per request."},"reason":{"type":"string","example":"Incomplete documentation","nullable":true,"description":"Optional reason for declining the tasks."},"status":{"enum":["approved","declined"],"type":"string","example":"approved","nullable":false,"description":"The review status of the tasks. Possible values are 'approved' or 'declined'."}}}}},"example":{"data":{"ids":["00000000-0000-0000-0000-000000000001","00000000-0000-0000-0000-000000000002"],"reason":"Incomplete documentation","status":"declined"}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/legal-entities/{legal_entity_id}/settings":{"post":{"path":"/rest/legal-entities/{legal_entity_id}/settings","tags":["Legal Entities"],"method":"post","summary":"Update GP employee app access for a legal entity","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"key":{"type":"string","example":"ALLOW_GP_EMPLOYEE_APP_ACCESS","description":"The setting key that was updated."},"value":{"type":"string","example":"true","description":"The setting value that was applied."}}}}}}},"description":"Successfully updated the setting."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","example":"Invalid request parameters.","description":"Error message explaining what went wrong."}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"The ID of the legal entity."}],"description":"Controls whether employees under this legal entity can access the Deel employee app for self-service tasks such as viewing payslips and managing personal information. Use this endpoint after you have finished configuring a Global Payroll legal entity and its workforce and are ready to grant or revoke employee app access. Set value to \"true\" to allow employees to log in to the app, or \"false\" to block access — for example, during a compliance review or when offboarding a cohort.\n\n **Token scopes**: `legal-entity:write`","operationId":"updateLegalEntitySetting-v2026-09-02","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["key","value"],"properties":{"key":{"enum":["ALLOW_GP_EMPLOYEE_APP_ACCESS"],"type":"string","example":"ALLOW_GP_EMPLOYEE_APP_ACCESS","description":"The setting key to update. Only ALLOW_GP_EMPLOYEE_APP_ACCESS is supported today."},"value":{"enum":["true","false"],"type":"string","example":"true","description":"Set to \"true\" to grant employees access to the Deel app, or \"false\" to revoke it."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["legal-entity:write"]}]}},"/immigration/workers/{worker_id}/cases/{case_id}/required-document/{document_request_id}":{"post":{"path":"/rest/immigration/workers/{worker_id}/cases/{case_id}/required-document/{document_request_id}","tags":["Immigration"],"method":"post","summary":"Upload a required immigration document","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the document."},"status":{"enum":["IN_REVIEW"],"type":"string","example":"IN_REVIEW","description":"Status of the document."},"created_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Creation date of the document."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Last update date of the document."}}}}}}},"description":"Document uploaded."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string"},"example":"a6fb5c89-5abd-45d1-afc1-7e98d550eb71","required":true,"description":"The hris profile oid (public id) of the worker."},{"in":"path","name":"case_id","schema":{"type":"string"},"example":"a6fb5c89-5abd-45d1-afc1-7e98d550eb71","required":true,"description":"The unique identifier of the case for which the required document is being requested."},{"in":"path","name":"document_request_id","schema":{"type":"string"},"example":"a6fb5c89-5abd-45d1-afc1-7e98d550eb71","required":true,"description":"The unique identifier of the document request fo which this document is being uplodaded"}],"description":"Uploads a document against a specific case document requirement and submits it for review.\n\n **Token scopes**: `worker:write`","operationId":"uploadARequiredImmigrationDocument-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["file"],"properties":{"file":{"type":"string","format":"binary","example":"passport.jpg","minLength":1,"description":"Immigration right to work document. More than 1 document can be uploaded at the same time (e.g.: front and back)"}},"description":"Details of immigration document upload"}}}}},"required":true,"description":"Upload of immigration document"},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/ats/openings":{"get":{"path":"/rest/ats/openings","tags":["ATS"],"method":"get","summary":"List job openings","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","opening_numeric_id","opening_prefix","opening_type_slug","title","status","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the opening."},"team":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the team."},"name":{"type":"string","example":"Backend Engineering","description":"Name of the team."}},"description":"Team details."},"title":{"type":"string","example":"Senior Software Engineer","description":"Title of the job opening."},"status":{"enum":["DRAFT","OPEN","FILLED","CLOSED","WAITING_FOR_APPROVAL","APPROVED","NOT_APPROVED","ARCHIVED"],"type":"string","example":"OPEN","description":"Current lifecycle status of the opening."},"job_ids":{"type":"array","items":{"type":"string","format":"uuid"},"example":["f47ac10b-58cc-4372-a567-0e02b2c3d479"],"description":"IDs of jobs linked to this opening."},"team_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"ID of the team this opening belongs to."},"location":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the location."},"name":{"type":"string","example":"New York","description":"Name of the location."},"country":{"type":"string","example":"US","nullable":true,"description":"ISO 3166-1 alpha-2 country code of the location."}},"description":"Location details."},"created_at":{"type":"string","format":"date-time","example":"2026-01-15T08:00:00Z","description":"ISO 8601 datetime when the opening was created."},"updated_at":{"type":"string","format":"date-time","example":"2026-01-20T14:30:00Z","description":"ISO 8601 datetime when the opening was last updated."},"location_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"ID of the location associated with the opening."},"opening_prefix":{"type":"string","example":"ENG","description":"Prefix of the opening identifier (e.g. ENG in ENG-42)."},"employment_type":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the employment type."},"name":{"type":"string","example":"Full-time","description":"Name of the employment type."}},"description":"Employment type details."},"filled_by_offer":{"type":"object","nullable":true,"properties":{"start_date":{"type":"string","format":"date-time","example":"2026-09-01T00:00:00Z","description":"Start date from the accepted offer (ISO 8601)."},"offer_status_enum":{"enum":["ACCEPTED"],"type":"string","example":"ACCEPTED","description":"Status of the filling offer. This object is only present for the accepted offer that filled the opening, so the value is always ACCEPTED."}},"description":"The accepted offer that filled this opening (latest ACCEPTED offer by update time). Null unless the opening is filled with an accepted offer. Contains no compensation data."},"is_confidential":{"type":"boolean","example":false,"description":"Whether this opening is marked confidential."},"target_hire_date":{"type":"string","format":"date-time","example":"2026-09-01T00:00:00Z","nullable":true,"description":"Target date by which the opening should be filled (ISO 8601)."},"opening_type_slug":{"enum":["NEW_HIRE","BACKFILL"],"type":"string","example":"NEW_HIRE","description":"Whether this opening is for a new hire or a backfill."},"target_start_date":{"type":"string","format":"date-time","example":"2026-10-01T00:00:00Z","nullable":true,"description":"Target start date for the new hire (ISO 8601)."},"employment_type_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"ID of the employment type associated with the opening."},"opening_numeric_id":{"type":"integer","example":42,"description":"Numeric part of the opening identifier (e.g. 42 in ENG-42)."},"compensation_period":{"type":"string","example":"yearly","nullable":true,"description":"Compensation period (e.g. yearly, monthly)."},"filled_by_application":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"ID of the application that filled this opening."},"candidate":{"type":"object","nullable":true,"properties":{"last_name":{"type":"string","example":"Doe","description":"Last name of the hired candidate."},"first_name":{"type":"string","example":"Jane","description":"First name of the hired candidate."}},"description":"Minimal identity of the hired candidate."}},"description":"The application that filled this opening, including the hired candidate name. Null unless the opening is filled."},"max_compensation_amount":{"type":"string","example":"120000.0000","nullable":true,"description":"Maximum compensation amount as a decimal string."},"min_compensation_amount":{"type":"string","example":"80000.0000","nullable":true,"description":"Minimum compensation amount as a decimal string."},"filled_by_application_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"ID of the application that filled this opening, if any."},"compensation_currency_iso_code":{"type":"string","example":"USD","nullable":true,"description":"ISO 4217 currency code for compensation."},"created_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"HRIS organization user ID of the user who created this opening."},"updated_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"HRIS organization user ID of the user who last updated this opening."}}},"description":"Page of openings."},"has_more":{"type":"boolean","example":false,"description":"Whether more pages are available beyond the current page."},"next_cursor":{"type":"string","example":"eyJpZCI6IjEyMzQifQ==","nullable":true,"description":"Cursor to fetch the next page; null when there are no more pages."},"total_count":{"type":"integer","example":42,"description":"Total number of openings matching the filters."}}}}},"description":"Paginated list of job openings."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJpZCI6IjEyMzQifQ==","required":false,"description":"Pagination cursor returned by a previous response."},{"in":"query","name":"limit","schema":{"type":"integer","maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of openings to return per page."},{"in":"query","name":"status","schema":{"type":"array","items":{"enum":["DRAFT","OPEN","FILLED","CLOSED","WAITING_FOR_APPROVAL","APPROVED","NOT_APPROVED","ARCHIVED"],"type":"string"}},"example":["OPEN"],"required":false,"description":"Filter openings by one or more statuses."},{"in":"query","name":"team_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["f47ac10b-58cc-4372-a567-0e02b2c3d479"],"required":false,"description":"Filter openings by team IDs."},{"in":"query","name":"location_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["f47ac10b-58cc-4372-a567-0e02b2c3d479"],"required":false,"description":"Filter openings by location IDs."},{"in":"query","name":"job_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["f47ac10b-58cc-4372-a567-0e02b2c3d479"],"required":false,"description":"Filter openings by linked job IDs."},{"in":"query","name":"tag_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["f47ac10b-58cc-4372-a567-0e02b2c3d479"],"required":false,"description":"Filter openings by tag IDs."},{"in":"query","name":"tag_ids_operator","schema":{"enum":["ANY","ALL"],"type":"string"},"example":"ANY","required":false,"description":"Operator for tag_ids filter. 'ANY' returns openings with at least one matching tag; 'ALL' returns openings with all specified tags. Defaults to 'ANY'."}],"description":"Returns all job openings (requisitions/headcount requests) for the authenticated organization. Supports filtering by status, team, location, and linked job. Results are cursor-paginated. Openings track headcount requests through a lifecycle from DRAFT to FILLED or CLOSED.\n\n **Token scopes**: `ats:read`","operationId":"listOpenings-v2026-06-15","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/eor/contracts/{contract_id}/project-assignment/checkin":{"get":{"path":"/rest/eor/contracts/{contract_id}/project-assignment/checkin","tags":["EOR"],"method":"get","summary":"Fetch Project Assignment Checkin Questionnaire Data","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["sections","updated_at","created_at","id"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440004","description":"Unique identifier of the resource"},"sections":{"type":"array","items":{"type":"object","required":["title","questions"],"properties":{"title":{"type":"string","example":"Section Title","description":"Title of the section."},"subtitle":{"type":"string","example":"Information about the section","description":"Additional information shown at the top of the section."},"questions":{"type":"array","items":{"type":"object","required":["title","type","key"],"properties":{"key":{"type":"string","example":"questionExampleId","description":"Unique key identifier for the question."},"type":{"enum":["FreeText","Paragraph","SingleSelection","MultiSelection","Address","PhoneNumber","DocumentUpload","Number","Dropdown","DatePicker","Email"],"type":"string","example":"Dropdown","description":"Type of the question."},"title":{"type":"string","example":"Please  confirm, that you have read through the Employment Compliance Notice above","description":"Title of the question."},"options":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string","example":"Yes","description":"Display text for the option."},"value":{"type":"string","example":"true","nullable":true,"description":"Value associated with the option."}}},"example":[{"title":"Yes","value":"Yes"},{"title":"No","value":"No"}],"nullable":true,"description":"List of selectable options for selection-type questions. Value may be of any type."},"is_required":{"type":"boolean","example":true,"description":"Indicates if the question is required."},"default_value":{"oneOf":[{"type":"string","nullable":true},{"type":"number","nullable":true},{"type":"boolean","nullable":true}],"example":40,"description":"Default value to pre-fill in the form."},"is_only_digits":{"type":"boolean","example":false,"description":"Restricts input to numeric characters only, for FreeText questions."}}},"description":"List of questions within the section."}}},"example":{"sections":[{"title":"Section Title","subtitle":"Section Subtitle","questions":[{"key":"questionKey","type":"SingleSelection","title":"Question Title","options":[{"title":"Yes, I confirm","value":"Yes, I confirm"}],"is_required":true}]}]},"description":"Sections of questions"},"created_at":{"type":"string","format":"date-time","example":"2025-02-14T12:34:56.000Z","description":"Timestamp indicating when the resource was created (ISO 8601)."},"updated_at":{"type":"string","format":"date-time","example":"2025-02-15T09:12:34.000Z","description":"Timestamp indicating when the resource was last updated (ISO 8601)."}}}}}}},"description":"Successful response containing form configuration data."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"code","description":"The code of the source handler which produced the returned error"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"The requested version of the document mismatch the current version.","description":"The requested version of the document mismatch the current version."}}}}}}}},"description":"The requested version of the document mismatch the current version."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"version","schema":{"type":"string","maxLength":20,"minLength":20},"example":"e374540fc9a92390f9a1","required":false,"description":"This field is to ensure that the latest version of the project assignment checkin matches the version received from the webhook. If it is not sent, the version validation is not performed. If it is sent, it is checked whether the current version is equal to the version sent; if not, a 409 error occurs, otherwise, the data is returned."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"m623fez","required":true,"description":"The unique identifier of the contract."}],"description":"Returns the checkin questionnaire for a project assignment, including all sections and questions required for completion. The optional version parameter ensures the fetched questionnaire matches an expected version before it is rendered or submitted.\n\n **Token scopes**: `contracts:read`","operationId":"fetchProjectAssignmentCheckinQuestionnaireData-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]},"post":{"path":"/rest/eor/contracts/{contract_id}/project-assignment/checkin","tags":["EOR"],"method":"post","summary":"Submit Project Assignment Checkin Questionnaire Data","responses":{"204":{"description":"No content. The request was successful, but there is no response body."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"code","description":"The code of the source handler which produced the returned error"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"The requested version of the document mismatch the current version.","description":"The requested version of the document mismatch the current version."}}}}}}}},"description":"The requested version of the document mismatch the current version."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"m623fez","required":true,"description":"The unique identifier of the contract."}],"description":"Submits completed answers for a project assignment checkin questionnaire. All required questionnaire fields must be included; partial submissions are not accepted.\n\n **Token scopes**: `contracts:read`, `contracts:write`","operationId":"submitProjectAssignmentCheckinQuestionnaireData-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["type","questions_with_answers"],"properties":{"type":{"enum":["EMPLOYEE","CLIENT"],"type":"string","example":"EMPLOYEE","description":"Indicates who is submitting the form. Can be either 'EMPLOYEE' or 'CLIENT'."},"version":{"type":"string","example":"7d39089b657fd85a602b","maxLength":20,"description":"Optional version identifier of the form or schema."},"questions_with_answers":{"type":"object","example":{"questionId":"Yes, I confirm","questionId2":"Free Text Answer"},"description":"Map of question IDs to their corresponding answers.","minProperties":1,"additionalProperties":{"type":"string","minLength":1,"description":"Answer for a specific question, mapped by its unique question ID."}}},"description":"Form submission payload containing respondent type, question answers, and optional version."}}}}},"required":true,"description":"Payload for submitting employee or client form answers."},"security":[{"deelToken":[]},{"oauth2":["contracts:read","contracts:write"]}]}},"/contracts/{contract_id}/custom_fields/{id}":{"delete":{"path":"/rest/contracts/{contract_id}/custom_fields/{id}","tags":["Custom Fields"],"method":"delete","summary":"Delete Contract custom field by Id","responses":{"204":{"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Custom field id."},{"in":"path","name":"contract_id","schema":{"type":"string","format":"uuid"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Contract id."}],"description":"Clears the value of a custom field on the specified contract, identified by the custom field `id`.\n\n **Token scopes**: `contracts:write`","operationId":"DeleteContractCustomField-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/adjustments/categories":{"get":{"path":"/rest/adjustments/categories","tags":["Adjustments"],"method":"get","summary":"Retrieve categories","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"c0431543f64c448e5ba4b525a50291","description":"Unique identifier of an adjustment category."},"name":{"type":"string","example":"Employee Dinner","description":"The name of the adjustment category."},"label":{"type":"string","example":"Employee Dinner","description":"The label of the adjustment category."},"unit_type":{"type":"string","example":"currency","description":"The unit type of the adjustment category."}}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"contract_types","schema":{"type":"array","items":{"enum":["peo","global_payroll","hris_direct_employee","eor","employee","independent_contractor"],"type":"string"},"default":["eor"]},"example":["eor","global_payroll"],"required":false,"description":"array of contract types to filter categories"}],"description":"Returns the available adjustment categories, optionally filtered by contract type. Category IDs returned here are required when creating adjustments and define the type and accounting treatment applied.\n\n **Token scopes**: `adjustments:read`","operationId":"retrieveCategories-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["adjustments:read"]}]}},"/on-demand-payroll/{odp_id}/cancel":{"post":{"path":"/rest/on-demand-payroll/{odp_id}/cancel","tags":["On-Demand Payroll"],"method":"post","summary":"Cancel On-Demand Payroll","responses":{"204":{"description":"On-Demand Payroll cancelled successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Invalid request."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"Authentication is required or has failed."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"The caller is not allowed to perform this action."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"ODP_NOT_FOUND","description":"Machine-readable error code."},"field":{"type":"string","example":"existing_entry_ids","description":"Field that caused the error, when applicable."},"message":{"type":"string","example":"No active On Demand Payroll for this contract","description":"Human-readable error message."}}},"description":"List of errors."}}}}},"description":"On-Demand Payroll not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"odp_id","schema":{"type":"string"},"example":"odp_abc123","required":true,"description":"Public ID of the On-Demand Payroll."}],"description":"Cancels an On-Demand Payroll, optionally keeping the specified entries available for a future regular payroll cycle.\n\n **Token scopes**: `on-demand-payroll:write`","operationId":"cancelOnDemandPayroll-v2026-07-31","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"move_to_regular":{"type":"array","items":{"type":"string","example":"adj_abc123","description":"Public ID of an entry to move to the regular payroll cycle."},"example":["adj_abc123"],"description":"Public IDs of the entries to move to the regular payroll cycle instead of cancelling them with the ODP."}}}}}}},"required":false,"description":"Optionally, the entries to keep when cancelling the ODP."},"security":[{"deelToken":[]},{"oauth2":["on-demand-payroll:write"]}]}},"/hris/worker_relations/types":{"get":{"path":"/rest/hris/worker_relations/types","tags":["Worker Relations"],"method":"get","summary":"Retrieve all worker relation types","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"877ccad0-1234-5678-9abc-def012345678","description":"The ID of the relation type"},"child_name":{"type":"string","example":"Child","description":"The name of the secondary party in the relationship"},"is_default":{"type":"boolean","example":true,"description":"Whether this relation is default or not"},"external_id":{"type":"string","example":"child","nullable":true,"maxLength":100,"description":"A custom ID for the relation type"},"parent_name":{"type":"string","example":"Parent","description":"The name of the primary party in the relationship"}}}}}}}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Returns all configured worker relation types available in the organization, which define the valid relationship categories that can be assigned when creating or upserting worker relations.\n\n **Token scopes**: `organizations:read`","operationId":"retrieveAllWorkerRelationTypes-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"post":{"path":"/rest/hris/worker_relations/types","tags":["Worker Relations"],"method":"post","summary":"Create worker relation type","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"The ID of the relation type"},"child_name":{"type":"string","example":"Child","description":"The name of the secondary party in the relationship"},"is_default":{"type":"boolean","example":false,"description":"Whether this relation is default or not"},"external_id":{"type":"string","example":"child","description":"A custom ID for the relation type"},"parent_name":{"type":"string","example":"Parent","description":"The name of the primary party in the relationship"}}}}}}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[],"description":"Creates a new worker relation type, defining a named parent–child relationship structure that can be applied to worker associations. The `is_default` flag on the response indicates whether the created type has been set as the default relation type.\n\n **Token scopes**: `organizations:write`","operationId":"createWorkerRelationType-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"child_name":{"type":"string","example":"Child","maxLength":100,"description":"The name of the secondary party in the relationship"},"is_default":{"type":"boolean","default":false,"example":false,"description":"Whether this relation is default or not"},"external_id":{"type":"string","example":"child","maxLength":100,"description":"A custom ID for the relation type"},"parent_name":{"type":"string","example":"Parent","maxLength":100,"description":"The name of the primary party in the relationship"}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/people/{id}/working-location":{"put":{"path":"/rest/people/{id}/working-location","tags":["People"],"method":"put","summary":"Update working location","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"type":"boolean","example":true,"description":"Indicates if the resource was updated successfully."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"id","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Hris profile ID"}],"description":"Sets the working location for a worker identified by their HRIS profile ID.\n\n **Token scopes**: `people:write`","operationId":"updatePeopleWorkingLocation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["working_location_id"],"properties":{"working_location_id":{"type":"number","example":1,"description":"Unique identifier of this resource."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/time-offs/policy":{"get":{"path":"/rest/time-offs/policy","tags":["Time Off"],"method":"get","summary":"Get Policies for Organization","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","tracking_cadence","request_start_type","leave_type","time_off_request_type","retrospective_request_type","overlap_request_type","should_allow_editing_past_time_offs","is_description_required","is_attachment_required","is_event_based","payment_type","created_at","updated_at","policy_type","time_off_types","policy_allowances","policy_allowance_proration","assigned_profiles_count"],"properties":{"id":{"type":"string","format":"uuid","example":"f7b3b3b3-3b3b-3b3b-3b3b-3b3b3b3b3b3b","description":"Policy UID"},"name":{"type":"string","example":"Standard PTO Policy","description":"Policy name"},"created_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00Z","description":"Timestamp when the policy was created"},"leave_type":{"enum":["SHORT_TERM_LEAVE","LONG_TERM_LEAVE"],"type":"string","example":"SHORT_TERM_LEAVE","description":"Type of leave policy. Either short-term leave (e.g., PTO, vacation) or long-term leave (e.g., maternity, paternity)"},"updated_at":{"type":"string","format":"date-time","example":"2025-01-01T00:00:00Z","description":"Timestamp when the policy was last updated"},"description":{"type":"string","example":"This policy provides standard paid time off for employees","description":"Policy description"},"policy_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6","description":"Policy type UID"},"name":{"type":"string","example":"Paid Time Off","description":"Policy type name"}},"description":"Details of the policy type associated with this policy"},"payment_type":{"enum":["PAID","UNPAID","PARTIALLY_PAID"],"type":"string","example":"PAID","description":"Type of payment for the time off"},"tracking_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"YEAR","description":"Unit of time used for calculating tracking periods"},"is_event_based":{"type":"boolean","example":false,"description":"Indicates if the policy's base allowance accrues based on an event (e.g., a life event like child birth) rather than on a time-based schedule"},"time_off_types":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6","description":"Time-off type UID"},"name":{"type":"string","example":"Paid Time Off","description":"Time-off type name"},"description":{"type":"string","example":"This policy provides paid time off for employees.","description":"Time-off type description"}},"description":"Details of the time-off type associated with this policy. Time-off types are subcategories for a policy and represent different reasons for requesting a leave"}},"tracking_cadence":{"enum":["FIXED_DAY","ANNIVERSARY","NOT_SPECIFIED"],"type":"string","example":"FIXED_DAY","description":"Cadence of the tracking period. Either a fixed day (e.g., Jan 1), based on the anniversary of the employee's start date, or NOT_SPECIFIED if the policy has no tracking cadence configured"},"policy_allowances":{"type":"array","items":{"type":"object","required":["id","type","accrual_type","entitlement_start_type","rollover_type","should_zero_out_negative_balances_on_rollover","is_bank_holidays_enabled","balance_tracking_type","is_unlimited_allowance"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6","description":"Policy allowance UID"},"type":{"enum":["BASE_ALLOWANCE","ADDITIONAL_ALLOWANCE"],"type":"string","example":"BASE_ALLOWANCE","description":"Type of policy allowance. Either a base allowance or an additional allowance"},"accrual_type":{"enum":["LUMPSUM","TIMEFRAME","EVENT","TIME_OFF_IN_LIEU","HOURLY","NO_AUTO_ACCRUAL"],"type":"string","example":"TIMEFRAME","description":"Determines how and when profiles earn this allowance: LUMPSUM (accrued all at once at the start of the tracking period), TIMEFRAME (accrued periodically, e.g. monthly), EVENT (accrued based on a life event, e.g. child birth), TIME_OFF_IN_LIEU (accrued from extra hours worked), HOURLY (accrued based on hours worked), or NO_AUTO_ACCRUAL (balance managed only via manual adjustments)"},"accrual_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"BUSINESS_DAY","description":"Unit for how long are the accrual period in each tracking period"},"rollover_type":{"enum":["NO_ROLLOVER","PAY_OUT","CARRY_OVER","CARRY_OVER_PAY_OUT"],"type":"string","example":"CARRY_OVER","description":"Defines if the rollover carryover treatment for the policy allowance"},"entitlement_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"BUSINESS_DAY","description":"Unit for the entitled allowance"},"accrual_unit_amount":{"type":"number","example":1,"description":"Amount of time units for how long are the accrual period in each tracking period"},"balance_tracking_type":{"enum":["INFLEXIBLE","FLEXIBLE_NO_LIMIT","FLEXIBLE_CUSTOM_AMOUNT","FLEXIBLE_UP_TO_YEARLY_ALLOWANCE"],"type":"string","example":"INFLEXIBLE","description":"Defines if the balance tracking is flexible or inflexible. INFLEXIBLE means the worker cannot go below zero. The FLEXIBLE_* values allow the worker to request more time off than their allowance and go negative, either without limit (FLEXIBLE_NO_LIMIT), up to a custom amount (FLEXIBLE_CUSTOM_AMOUNT), or up to the yearly allowance (FLEXIBLE_UP_TO_YEARLY_ALLOWANCE)"},"entitlement_start_date":{"type":"string","format":"date","example":"2025-01-01","description":"Start date for the entitlement, if applicable. This is used when the entitlement start type is FIXED_DAY. So all entitlements starts in the given month and day of each year"},"entitlement_start_type":{"enum":["IMMEDIATELY","FIXED_PERIOD","FIXED_DAY"],"type":"string","example":"IMMEDIATELY","description":"Defines when the workers start to receive their allowance"},"entitlement_start_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"BUSINESS_DAY","description":"Unit for the entitlement start period, if applicable. This is used when the entitlement start type is FIXED_PERIOD"},"is_unlimited_allowance":{"type":"boolean","example":false,"description":"Indicates if the allowance is unlimited. Unlimited means that the worker can request any amount of time off without any limit"},"entitlement_unit_amount":{"type":"number","example":10,"nullable":true,"description":"Amount of time units for the entitled allowance. Null means unlimited allowance"},"accrual_application_type":{"enum":["BEGIN_OF_CYCLE","END_OF_CYCLE","BEGIN_OF_NEXT_CYCLE"],"type":"string","example":"BEGIN_OF_CYCLE","description":"Defines when the accruals are applied. Either at the beginning of the cycle, at the end of the cycle, or at the beginning of the next cycle"},"is_bank_holidays_enabled":{"type":"boolean","example":true,"description":"Indicates if bank holidays are enabled used considered non-working days when calculating leave usage for this allowance"},"rollover_expiration_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"MONTH","description":"Unit for the rollover expiration period, if applicable"},"rollover_limit_unit_amount":{"type":"number","example":5,"description":"Maximum amount that can be rolled over, if applicable"},"entitlement_expiration_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"BUSINESS_DAY","description":"Unit for the entitlement expiration period, if applicable"},"entitlement_start_unit_amount":{"type":"number","example":3,"description":"Amount of time units for the entitlement start period, if applicable. This is used when the entitlement start type is FIXED_PERIOD"},"rollover_expiration_unit_amount":{"type":"number","example":3,"description":"Amount of time units for the rollover expiration period, if applicable"},"entitlement_expiration_unit_amount":{"type":"number","example":3,"description":"Amount of time units for the entitlement expiration period, if applicable"},"part_time_prorated_entitlement_unit_amount":{"type":"number","example":2,"nullable":true,"description":"Amount of time units for part-time prorated entitlement, if applicable"},"should_zero_out_negative_balances_on_rollover":{"type":"boolean","example":false,"description":"Indicates if negative balances should be zeroed out on rollover"},"balance_tracking_flexible_custom_request_amount":{"type":"number","example":5,"description":"Limit allowed for the worker balance to be negative. This value if applicable is always positive"}}},"description":"Details of the policy allowances associated with this policy"},"notice_period_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"BUSINESS_DAY","description":"Unit of time used for calculating the notice period, if applicable. This is the minimum amount of time before the start of the leave that a worker must submit a request"},"request_start_type":{"enum":["IMMEDIATELY","FIXED_PERIOD"],"type":"string","example":"IMMEDIATELY","description":"Defines when a the worker can start to request leaves. Either immediately or after a fixed period of time from the start of the tracking period"},"request_start_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"MONTH","description":"Unit of time used for calculating the request start period, if applicable. This is used when the request start type is FIXED_PERIOD"},"tracking_start_date":{"type":"string","format":"date","example":"2025-01-01","description":"Start date for tracking periods, if applicable. This is used when the tracking cadence is FIXED_DAY. So all tracking periods starts in the given month and day of each year"},"overlap_request_type":{"enum":["ALLOWED","NOT_ALLOWED"],"type":"string","example":"NOT_ALLOWED","description":"Defines if overlap requests are allowed or not. Overlap requests are requests that overlap with existing time off requests"},"tracking_unit_amount":{"type":"number","example":1,"description":"Amount of the tracking unit"},"time_off_request_type":{"enum":["HALF_DAY","HOURLY","FULL_DAY","PERCENTAGE","PARTIAL_HOURS"],"type":"string","example":"FULL_DAY","description":"Type of time off request. Can be full day, half day, or partial day"},"is_attachment_required":{"type":"boolean","example":true,"description":"Indicates if an attachment is required for the time off request"},"assigned_profiles_count":{"type":"integer","example":42,"description":"Count of profiles assigned to this policy."},"is_description_required":{"type":"boolean","example":true,"description":"Indicates if a description is required for the time off request"},"notice_period_unit_amount":{"type":"number","example":5,"description":"Amount of time units used for calculating the notice period, if applicable"},"request_start_unit_amount":{"type":"number","example":3,"description":"Amount of time units used for calculating the request start period, if applicable. This is used when the request start type is FIXED_PERIOD"},"policy_allowance_proration":{"type":"object","required":["part_time_worker_treatment_type","is_prorated_on_hire","is_prorated_on_termination"],"properties":{"is_prorated_on_hire":{"type":"boolean","example":true,"description":"Indicates if the allowance is prorated on hire"},"is_prorated_on_termination":{"type":"boolean","example":true,"description":"Indicates if the allowance is prorated on termination"},"part_time_worker_treatment_type":{"enum":["SAME_AS_FTE","PERCENTAGE_OF_FTE","BASED_ON_WORK_HOURS","BASED_ON_WORK_DAYS","CUSTOM_ENTITLEMENT"],"type":"string","example":"SAME_AS_FTE","description":"Defines how the allowance is prorated for part-time workers. Either no proration, full month proration based on day, tenure boundary proration, or country specific proration"},"part_time_worker_treatment_specific_amount":{"type":"number","example":50,"nullable":true,"description":"Specific amount for part-time worker treatment, if applicable."}},"description":"Details of the proration rules for the policy allowance"},"retrospective_request_type":{"enum":["ALLOWED","NOT_ALLOWED"],"type":"string","example":"NOT_ALLOWED","description":"Defines if retrospective requests are allowed or not. Retrospective requests are requests for time off in the past"},"auto_approval_inactivity_time_unit":{"enum":["HOUR","BUSINESS_DAY","CALENDAR_DAY","WEEK","MONTH","YEAR"],"type":"string","example":"BUSINESS_DAY","description":"Unit of time used for calculating the auto-approval after inactivity on reviewing the leave, if applicable"},"should_allow_editing_past_time_offs":{"type":"boolean","example":false,"description":"Indicates if users are allowed to edit past time off requests"},"auto_approval_inactivity_time_unit_amount":{"type":"number","example":5,"description":"Amount of time units used for calculating the auto-approval after inactivity on reviewing the leave, if applicable"}}}},"next":{"type":"string","nullable":true,"description":"Opaque cursor to fetch the next page of results. Null when there are no more results"},"has_next_page":{"type":"boolean","example":true,"description":"Indicates if there are more results available beyond the current page"}}}}},"description":"Paginated list of policies."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Bad request (invalid page_size or query parameters)."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Unauthorized (missing or invalid token)."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Forbidden (insufficient permissions)."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}}}},"description":"Server error."}},"parameters":[{"in":"query","name":"policy_type","schema":{"type":"array","items":{"enum":["Adoption leave","Advanced vacation","Bereavement leave","Blood donation leave","Breastfeeding leave","Childbirth leave","Childcare leave","Civic/public duty leave","Compensatory leave","Disability leave","Doctor's appointment leave","Family & domestic violence leave","Family responsibility leave","Floating Holiday Allowance","Hajj leave","Hospitalization leave","Long Service Leave","Marriage/wedding leave","Maternity leave","Menstrual leave","Military leave","Moving leave","Other leave","Paid leave","Parental leave","Paternity leave","Personal leave","Pregnancy leave","Regional holiday","RTT","Sick leave","Study leave","Supplementary Leave","Unpaid leave","Vacation","Vacation - public holidays replacement","Volunteer leave","Work accident leave","Work Location"],"type":"string","example":"Vacation"}},"example":["Vacation"],"description":"Filter by policy type names"},{"in":"query","name":"policy_name","schema":{"type":"string"},"example":"Standard PTO","description":"Filter by policy name (case-insensitive search)"},{"in":"query","name":"country","schema":{"type":"array","items":{"type":"string"}},"example":["US"],"description":"Filter by country codes"},{"in":"query","name":"state_or_region","schema":{"type":"array","items":{"type":"string"}},"example":["CA"],"description":"Filter by state/region codes"},{"in":"query","name":"worker_types_assigned","schema":{"type":"array","items":{"type":"string"}},"example":["eor"],"description":"Filter by worker types"},{"in":"query","name":"has_workers_assigned","schema":{"type":"boolean"},"example":true,"description":"Filter by assignment status"},{"in":"query","name":"page_size","schema":{"type":"integer","maximum":50,"minimum":1},"example":20,"description":"Items per page (max 50)"},{"in":"query","name":"next","schema":{"type":"string"},"example":"eyJpZCI6IjEyMyJ9","description":"Pagination token from the previous response (next)"}],"description":"Look up an organization's time-off policies, most commonly to resolve a policy_id for use with Get Profiles Assigned to Policy, or to audit policy configuration (allowances, tracking rules) before assigning workers or reviewing compliance. Filter by policy_type to narrow results to the leave categories relevant to your integration; each result's assigned profile count lets you spot unused or over-assigned policies without an extra call.\n\n **Token scopes**: `time-off:read`","operationId":"getPoliciesForOrganization-v2026-09-09","security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/legal-entities":{"post":{"path":"/rest/legal-entities","tags":["Legal Entities"],"method":"post","summary":"Create a new legal entity","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"le_12345","description":"The unique identifier for the legal entity."},"name":{"type":"string","example":"Acme Corporation","description":"The name of the entity."},"phone":{"type":"string","example":"+1-800-555-0199","description":"The contact number of the entity."},"address":{"type":"object","properties":{"zip":{"type":"string","example":"12345"},"city":{"type":"string","example":"San Francisco"},"state":{"type":"string","example":"Texas"},"street":{"type":"string","example":"123 Main St"},"country":{"type":"string","example":"US"}},"description":"The entity's address."},"created_at":{"type":"string","format":"date-time","example":"2024-01-01T12:00:00Z","description":"Timestamp when the entity was created."},"sic_number":{"type":"string","example":"1234","description":"The SIC number of the entity."},"updated_at":{"type":"string","format":"date-time","example":"2024-01-02T12:00:00Z","description":"Timestamp when the entity was last updated."},"entity_type":{"type":"string","example":"LLC","description":"Type of the entity."}}}}}}},"description":"Successfully created legal entity."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message explaining what went wrong."}}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message explaining the lack of permission."}}}}},"description":"Permission denied. User must have the `entities.manage` permission."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"description":"Creates a new legal entity under the organization and returns the entity record including its assigned id.\n\n **Token scopes**: `legal-entity:write`, `legal-entity:read`","operationId":"createLegalEntity-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["name","entity_type","address","phone","company_identifiers","sic_number"],"properties":{"name":{"type":"string","example":"Acme Corporation","description":"The legal name of the entity."},"phone":{"type":"string","example":"+1-800-555-0199","description":"Contact phone number for the entity."},"address":{"type":"object","required":["street","city","country","zip"],"properties":{"zip":{"type":"string","example":"12345","description":"Zip code."},"city":{"type":"string","example":"San Francisco","description":"City name."},"state":{"type":"string","example":"Texas","description":"State "},"street":{"type":"string","example":"123 Main St","description":"Street address."},"country":{"type":"string","example":"US","description":"Country code."}},"description":"The physical address of the entity."},"sic_number":{"type":"string","example":"7311","description":"The SIC number for the entity."},"entity_type":{"type":"string","example":"LLC","description":"Type of the entity."},"company_identifiers":{"type":"object","required":["registration_number","tax_number"],"properties":{"tax_number":{"type":"string","example":"987654321","description":"Tax number of the entity."},"registration_number":{"type":"string","example":"123456789","description":"Registration number of the entity."}}}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["legal-entity:write","legal-entity:read"]}]},"get":{"path":"/rest/legal-entities","tags":["Organizations"],"method":"get","summary":"List of legal entities","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"b61f6b35-7670-4515-b667-066f02b7b8a0","description":"Id of the legal entity"},"name":{"type":"string","example":"Deel US","nullable":false,"description":"Name of the legal entity"},"phone":{"type":"string","example":"+137867888","nullable":true,"description":"Phone number"},"vat_id":{"type":"string","example":"P051709055R","nullable":true,"description":"VAT ID"},"address":{"type":"object","nullable":true,"properties":{"zip":{"type":"string","example":"12345","nullable":true,"description":"Zip code"},"city":{"type":"string","example":"San Francisco","nullable":true,"description":"City"},"state":{"type":"string","example":"Texas","nullable":true,"description":"State"},"street":{"type":"string","example":"123 Main St","nullable":true,"description":"Street"},"country":{"type":"string","example":"US","nullable":true,"description":"Country"}}},"country":{"type":"string","example":"US","nullable":true,"description":"Country of the legal entity"},"created_at":{"type":"string","format":"date-time","example":"2024-01-01T12:00:00Z","description":"Created date"},"sic_number":{"type":"string","example":"9072","nullable":true,"description":"SIC Company Identifier"},"updated_at":{"type":"string","format":"date-time","example":"2024-01-02T12:00:00Z","description":"Updated date"},"archived_at":{"type":"string","format":"date-time","example":"2024-01-06T12:00:00Z","nullable":true,"description":"Archived date"},"entity_type":{"enum":["individual","company","light"],"type":"string","example":"company","nullable":true,"description":"Entity type"},"industry_name":{"type":"string","example":"Marketing Agency","nullable":true,"description":"Industry name"},"entity_subtype":{"type":"string","example":"company","description":"Entity sub type"},"registrationNumber":{"type":"string","example":"GSUGO3B5","nullable":true,"description":"Registration number"}}}},"page":{"type":"object","properties":{"cursor":{"type":"string","example":"cursor123","nullable":true,"description":"Cursor link"}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Error code identifier"},"field":{"type":"string","example":"cursor","description":"Name of the field that failed validation"},"details":{"type":"object","description":"Additional error details"},"message":{"type":"string","example":"\"cursor\" must be a string","description":"Human-readable error message"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":100,"maximum":100,"minimum":1},"example":100,"required":false,"description":"The number of results to return per page."},{"in":"query","name":"sort_order","schema":{"enum":["ASC","DESC"],"type":"string","default":"ASC"},"example":"ASC","required":false,"description":"Sorting order of the results."},{"in":"query","name":"cursor","schema":{"type":"string","nullable":true},"example":"cusorpage123","required":false,"description":"Cursor for pagination."},{"in":"query","name":"include_archived","schema":{"type":"boolean","default":true},"example":false,"required":false,"description":"Whether to include archived legal entities in the results."},{"in":"query","name":"legal_entity_id","schema":{"type":"string"},"example":"23378","required":false,"description":"Filter by specific legal entity ID."},{"in":"query","name":"global_payroll","schema":{"type":"boolean"},"example":false,"required":false,"description":"Filter by global payroll flag."},{"in":"query","name":"type","schema":{"type":"string"},"example":"company","required":false,"description":"Filter by entity type."},{"in":"query","name":"country","schema":{"type":"string"},"example":"US","required":false,"description":"Filter by country."},{"in":"query","name":"include_payroll_settings","schema":{"type":"boolean"},"example":true,"required":false,"description":"Whether to include payroll settings in the response."}],"description":"Returns a paginated list of legal entities in the account, with optional filtering by country, entity type, global payroll flag, and archived status.\n\n **Token scopes**: `organizations:read`, `accounting:read`","operationId":"listOfLegalEntities-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read","accounting:read"]}]}},"/ats/attachments/{attachable_type_slug}/{attachable_id}/{attachment_type_slug}":{"get":{"path":"/rest/ats/attachments/{attachable_type_slug}/{attachable_id}/{attachment_type_slug}","tags":["ATS"],"method":"get","summary":"Retrieve paginated list of ATS attachment files","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","total_count","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","file_name","file_content_type","attachment_type_slug","attachable_type_slug"],"properties":{"id":{"type":"string","format":"uuid","example":"e9586b57-a4f9-40d5-ac8f-a6f2b688557e","description":"Unique identifier for the attachment"},"url":{"type":"string","format":"url","example":"https://example.com/MQZGU5U53Y","description":"URL of the attachment","x-sensitive-employment":true},"file_name":{"type":"string","example":"OCRU0ZEHD0","description":"Name of the file","x-sensitive-employment":true},"ai_summary":{"type":"string","example":"MBNNQV3FU6","nullable":true,"description":"AI-generated summary of the attachment","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2025-05-19T21:31:53.517Z","description":"Timestamp when the attachment was created"},"updated_at":{"type":"string","format":"date-time","example":"2025-05-19T21:33:27.939Z","description":"Timestamp when the attachment was last updated"},"attachable_id":{"type":"string","format":"uuid","example":"e9586b57-a4f9-40d5-ac8f-a6f2b688557e","description":"Unique identifier for the attachable entity"},"file_content_type":{"type":"string","example":"7IZJYL457S","description":"Content type of the file","x-sensitive-employment":true},"attachable_type_slug":{"type":"string","example":"CANDIDATE","description":"Type of the attachable entity"},"attachment_type_slug":{"type":"string","example":"CV","description":"Type of the attachment"},"created_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"e9586b57-a4f9-40d5-ac8f-a6f2b688557e","nullable":true,"description":"User ID who created the attachment"}}},"description":"Array of attachment objects"},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more results available"},"next_cursor":{"type":"string","example":null,"nullable":true,"maxLength":1000,"description":"Cursor for pagination to fetch next page"},"total_count":{"type":"number","example":1,"description":"Total count of attachments"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string","maxLength":1000},"example":"cursorValue","required":false,"description":"The cursor for pagination"},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of records returned in one response"},{"in":"path","name":"attachable_type_slug","schema":{"enum":["CANDIDATE","CAREER_PAGE_SETTING","JOB_POSTING","NOTE","OFFER","SENT_CANDIDATE_EMAIL","EMAIL_MESSAGE","TEMPORARY","EMAIL_TEMPLATE","JOB_ACTIVITY"],"type":"string"},"example":"CANDIDATE","required":true,"description":"Type of the attachable entity"},{"in":"path","name":"attachable_id","schema":{"type":"string","format":"uuid"},"example":"e9586b57-a4f9-40d5-ac8f-a6f2b688557e","required":true,"description":"Unique identifier for the attachable entity"},{"in":"path","name":"attachment_type_slug","schema":{"enum":["CV","LOGO","OFFER_LETTER","OTHER"],"type":"string"},"example":"CV","required":true,"description":"Type of the attachment"}],"description":"Retrieves attachment files (such as resumes, cover letters, or offer letters) associated with a specific ATS entity. Scope results by the entity type (candidate, job, note, etc.), its ID, and the attachment type.\n\n **Token scopes**: `ats:read`","operationId":"retrievePaginatedListOfAtsAttachmentFiles-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/eor/workers/banks/guide":{"get":{"path":"/rest/eor/workers/banks/guide","tags":["EOR"],"method":"get","summary":"Retrieve bank account guide","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["key","required"],"properties":{"key":{"type":"string","example":"countryCode","nullable":false,"description":"The key of the field."},"type":{"type":"string","example":"text","description":"Type of the field"},"label":{"type":"string","example":"Country","description":"Label for this field."},"required":{"type":"boolean","example":true,"nullable":false,"description":"Whether the field is required or not."},"validations":{"type":"array","items":{"type":"object","properties":{"type":{"enum":["MIN_LENGTH","MAX_LENGTH","REGEX"],"type":"string"},"value":{"oneOf":[{"type":"string","example":"2","description":"Validation value."},{"type":"number","example":2,"description":"Validation value."}]}}}},"values_allowed":{"type":"array","items":{"type":"object","properties":{"label":{"type":"string","example":"Argentina","description":"The name of the allowed value."},"value":{"type":"string","example":"AR","description":"The value of the allowed value."}}}}}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns the bank account form guide for an EOR employee, providing the field structure required to add a new bank account.\n\n **Token scopes**: `worker:read`","operationId":"getEORBankAccountGuide-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/escalations/workers/me/hrx":{"get":{"path":"/rest/escalations/workers/me/hrx","tags":["Worker HR"],"method":"get","summary":"Get HRX manager for worker","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["id","name","avatar","cal_com_link","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","description":"Unique identifier (UUID) for the HRX representative"},"name":{"type":"string","example":"Person Name","description":"Full name of the HRX representative","x-sensitive-pii":true,"x-sensitive-employment":true},"avatar":{"type":"string","example":"www.storage.com/person/avatar.png","description":"URL to the HRX representative's avatar/profile picture","x-sensitive-pii":true},"created_at":{"type":"string","format":"date-time","example":"2024-01-15T10:30:00Z","description":"Timestamp when the HRX record was created"},"updated_at":{"type":"string","format":"date-time","example":"2024-01-15T10:30:00Z","description":"Timestamp when the HRX record was last updated"},"cal_com_url":{"type":"string","example":"https://www.website.com/schedule-a-call","description":"A link to schedule call with HRX Manager"}}}}}}},"description":"Successful operation. Returns HRX representative information for the worker based on their country."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"unauthorized","description":"Machine-readable error code"},"message":{"type":"string","example":"User is no authorized to use read this information","description":"Human-readable explanation of the error"}}}}}}}},"description":"Forbidden - user is not authorized to access this resource. Only employees can access HRX information."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"message":{"type":"string","example":"No assigned HRX Manager found","description":"Human-readable explanation of the error"}}}}}}}},"description":"Not Found - There is no assignment of HRX Manager against this worker"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Internal server error - unexpected error occurred while processing the request."}},"parameters":[],"description":"Retrieves the Human Resource Experience (HRX) Manager assigned to the authenticated worker, including contact details and a scheduling URL. Accessible only to workers with the appropriate permissions.\n\n **Token scopes**: `worker:read`","operationId":"getHrxManagerForWorker-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/ats/applications/{application_id}":{"get":{"path":"/rest/ats/applications/{application_id}","tags":["ATS"],"method":"get","summary":"Retrieve ATS application","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["id","numeric_id","created_at","updated_at","moved_to_current_stage_at","job","job_employment_type","current_application_interview_plan_stage","created_by","referred_by","referral_form_submission","source_slug","notes","all_application_interview_plan_stages","application_job_criterias_matchings","candidate","job_board","job_posting","job_posting_publication","job_posting_publication_state","application_automation_rule_executions"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the application"},"job":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the job"},"title":{"type":"string","example":"Senior Software Engineer","description":"Title of the job"}},"description":"Job details"},"notes":{"type":"array","items":{"type":"object","required":["id","richtext_content","created_by","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the note"},"created_at":{"type":"string","format":"date-time","example":"2024-11-01T10:30:00Z","description":"Timestamp when the note was created"},"created_by":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the user who created the note"},"updated_at":{"type":"string","format":"date-time","example":"2024-11-15T14:45:00Z","description":"Timestamp when the note was last updated"},"richtext_content":{"type":"string","example":"<p>This candidate has excellent experience in backend development.</p>","description":"Rich text content of the note"}},"description":"Note associated with the application"},"description":"Notes on application"},"candidate":{"type":"object","required":["id","first_name","last_name","email","import_session_id","attachments","candidate_tags","phone_number","profile_picture_url"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Candidate unique identifier"},"email":{"type":"string","format":"email","example":"john.doe@example.com","description":"Candidate email address","x-sensitive-pii":true},"last_name":{"type":"string","example":"Doe","description":"Candidate last name","x-sensitive-pii":true},"first_name":{"type":"string","example":"John","description":"Candidate first name","x-sensitive-pii":true},"attachments":{"type":"array","items":{"type":"object","required":["id","ai_summary"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the attachment"},"ai_summary":{"type":"string","example":"Resume shows 7 years of software engineering experience with expertise in full-stack development. Strong background in React, Node.js, and cloud technologies.","nullable":true,"description":"AI-generated summary of the attachment content"}}},"example":[{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","ai_summary":"Resume shows 7 years of software engineering experience with expertise in full-stack development. Strong background in React, Node.js, and cloud technologies."}],"description":"Array of attachments associated with the candidate (e.g., resume, cover letter)","x-sensitive-pii":true},"phone_number":{"type":"string","example":"+1234567890","nullable":true,"description":"Candidate phone number","x-sensitive-pii":true},"candidate_tags":{"type":"array","items":{"type":"object","required":["id","tag"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the candidate tag"},"tag":{"type":"object","required":["id","label"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the tag"},"label":{"type":"string","example":"Experienced","description":"Label of the tag"}},"description":"Tag details"}},"description":"Candidate tag"},"description":"Tags associated with the candidate"},"import_session_id":{"type":"string","example":"import_session_12345","nullable":true,"description":"Import session identifier if bulk imported"},"profile_picture_url":{"type":"string","example":"https://example.com/picture.jpg","nullable":true,"description":"Candidate profile picture URL","x-sensitive-pii":true}},"description":"Candidate details"},"job_board":{"type":"object","nullable":true,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job board unique identifier"},"type":{"enum":["INTERNAL_CAREER_PAGE","EXTERNAL_CAREER_PAGE","LINKEDIN"],"type":"string","example":"INTERNAL_CAREER_PAGE","description":"Type of job board"}},"description":"Job board where application originated"},"created_at":{"type":"string","format":"date-time","example":"2024-10-15T09:12:00Z","description":"Timestamp when the application was created"},"created_by":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Unique identifier for the HRIS organization user who created the application"},"numeric_id":{"type":"integer","example":2561,"description":"Numeric identifier for the application"},"updated_at":{"type":"string","format":"date-time","example":"2024-11-20T11:45:00Z","description":"Timestamp when the application was last updated"},"job_posting":{"type":"object","nullable":true,"required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the job posting"},"title":{"type":"string","example":"Job posting","nullable":false,"description":"Title of the job posting"}},"description":"Job posting details"},"referred_by":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Unique identifier for the HRIS organization user who referred the candidate"},"source_slug":{"type":"string","example":"INTERNAL_CAREER_PAGE","nullable":true,"description":"Source slug"},"job_employment_type":{"type":"object","nullable":true,"required":["id","employment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Identifier of the job employment type record"},"employment_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Identifier of the employment type"},"name":{"type":"string","example":"Full-time","description":"Human readable employment type"}},"description":"Employment type metadata"}},"description":"Employment type associated with the application"},"submitter_ip_address":{"type":"string","example":"203.0.113.42","nullable":true,"description":"IP address of the applicant who submitted the application","x-sensitive-pii":true},"submitter_user_agent":{"type":"string","example":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36","nullable":true,"description":"User agent of the applicant who submitted the application","x-sensitive-pii":true},"job_posting_publication":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job posting publication unique identifier"}},"description":"Job posting publication details"},"referral_form_submission":{"type":"object","required":["id","form_builder_stringified"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Identifier of the referral form submission"},"form_builder_stringified":{"type":"string","example":"{\"question_1\": \"answer_1\", \"question_2\": \"answer_2\"}","nullable":true,"description":"Stringified JSON data for the referral form submission"}},"description":"Referral form submission metadata"},"moved_to_current_stage_at":{"type":"string","format":"date-time","example":"2024-11-18T12:30:00Z","description":"Timestamp when the application moved to the current stage"},"application_form_submission":{"type":"object","nullable":true,"required":["id","answers"],"properties":{"id":{"type":"string","format":"uuid","example":"509d5153-5b10-4718-b16f-417e726d39f1","description":"Identifier of the application form submission"},"answers":{"type":"array","items":{"type":"object","required":["data_binding_id","question_type","question_text","answer"],"properties":{"answer":{"oneOf":[{"type":"string","example":"John Doe","description":"String answer"},{"type":"number","example":42,"description":"Numeric answer"}],"example":"John Doe","description":"The answer value"},"question_text":{"type":"string","example":"Full Name","description":"Text of the question"},"question_type":{"enum":["FREETEXT","PARAGRAPH","SINGLESELECTION","MULTISELECTION","DOCUMENTUPLOAD","PRESETDROPDOWN","CUSTOMDROPDOWN","NUMBER","DATEPICKER","ADDRESS","PHONENUMBER","EMAIL"],"type":"string","example":"FREETEXT","description":"Type of the question (uppercase)"},"data_binding_id":{"type":"string","example":"83a642fd-de0a-45f6-8fe0-b9188ed72990","description":"Data binding identifier for the question"}},"description":"Form submission answer"},"description":"Array of question answers with parsed data"}},"description":"Application form submission data with mapped answers"},"job_posting_publication_state":{"type":"object","nullable":true,"required":["id","state_slug"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job posting publication state identifier"},"state_slug":{"enum":["PUBLISHED_BASIC","PUBLISHED_PREMIUM","UNPUBLISHED","EXPIRED","IN_PROGRESS","FAILED"],"type":"string","example":"PUBLISHED_BASIC","description":"State of job posting publication"}},"description":"Current state of job posting publication"},"application_job_criterias_matchings":{"type":"array","items":{"type":"object","required":["id","description","is_matched","job_criteria"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job criteria matching identifier"},"is_matched":{"enum":["MATCHED","NOT_MATCHED","UNDECIDED"],"type":"string","example":"MATCHED","description":"Match status"},"description":{"type":"string","example":"The candidate has 5+ years of experience in React and TypeScript","description":"Match description"},"job_criteria":{"type":"object","required":["id","title","description"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Job criteria identifier"},"title":{"type":"string","example":"Frontend Development Experience","description":"Job criteria title"},"description":{"type":"string","example":"5+ years of experience with React, TypeScript, and modern frontend frameworks","description":"Job criteria description"}}}}},"description":"Job criteria matchings"},"all_application_interview_plan_stages":{"type":"array","items":{"type":"object","required":["id","updated_at","interview_plan_stage","offers"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the application interview plan stage"},"offers":{"type":"array","items":{"type":"object","required":["id","offer_status_enum","worker_type_enum","compensation_amount","compensation_currency","compensation_period_slug","country_code","application_interview_plan_stage_id","job_title","attachment_id","start_date","rejection_reason_id","approval_rule_id","approval_request_id","email","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the offer"},"email":{"type":"object","nullable":true,"required":["id","from_string","recipients_to","recipients_cc","recipients_bcc","subject","body_html"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the email message"},"subject":{"type":"string","example":"Job Offer - Senior Software Engineer","description":"Email subject line"},"body_html":{"type":"string","example":"<html><body><p>Dear Candidate,</p><p>We are pleased to offer you the position...</p></body></html>","description":"HTML body of the email"},"from_string":{"type":"string","example":"recruiter@company.com","description":"Email sender address"},"recipients_cc":{"type":"array","items":{"type":"string"},"example":["hiring-manager@company.com"],"description":"Array of CC recipient email addresses"},"recipients_to":{"type":"array","items":{"type":"string"},"example":["candidate@email.com"],"description":"Array of recipient email addresses"},"recipients_bcc":{"type":"array","items":{"type":"string"},"example":[],"description":"Array of BCC recipient email addresses"}},"description":"Email message associated with the offer"},"job_title":{"type":"string","example":"Senior Software Engineer","description":"Job title for the offer"},"created_at":{"type":"string","format":"date-time","example":"2024-11-12T09:00:00Z","description":"Timestamp when the offer was created"},"start_date":{"type":"string","format":"date-time","example":"2025-01-15T00:00:00Z","description":"Start date for the position"},"updated_at":{"type":"string","format":"date-time","example":"2024-11-14T11:30:00Z","description":"Timestamp when the offer was last updated"},"country_code":{"type":"string","example":"US","description":"Country code (ISO 3166-1 alpha-2)"},"attachment_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Unique identifier for the offer attachment"},"approval_rule_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Unique identifier for the approval rule"},"worker_type_enum":{"enum":["CONTRACTOR","DIRECT_EMPLOYEE","EOR_EMPLOYEE","GLOBAL_PAYROLL_EMPLOYEE","PEO_EMPLOYEE","UNKNOWN"],"type":"string","example":"DIRECT_EMPLOYEE","description":"Type of worker for the offer"},"offer_status_enum":{"enum":["CREATED","WAITING_FOR_APPROVAL","APPROVED","NOT_APPROVED","SENT","ACCEPTED","REJECTED"],"type":"string","example":"SENT","description":"Status of the offer"},"approval_request_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Unique identifier for the approval request"},"compensation_amount":{"type":"number","example":120000,"description":"Compensation amount","x-sensitive-employment":true},"rejection_reason_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":true,"description":"Unique identifier for the rejection reason (if rejected)"},"compensation_currency":{"type":"string","example":"USD","description":"Currency code for compensation (ISO 4217)"},"compensation_period_slug":{"enum":["ANNUALLY","MONTHLY","SEMIMONTHLY","BIWEEKLY","WEEKLY","DAILY","HOURLY"],"type":"string","example":"ANNUALLY","nullable":true,"description":"Compensation period","x-sensitive-employment":true},"application_interview_plan_stage_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the application interview plan stage"}},"description":"Offer details"},"description":"Array of offers associated with this stage"},"updated_at":{"type":"string","format":"date-time","example":"2024-11-10T16:20:00Z","nullable":true,"description":"Timestamp when the stage was last updated"},"interview_plan_stage":{"type":"object","nullable":true,"required":["id","name","category_type_slug","default_type_slug"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Interview plan stage unique identifier"},"name":{"type":"string","example":"Phone Screen","description":"Interview plan stage name"},"default_type_slug":{"type":"string","example":"phone_screen","nullable":true,"description":"Default type slug"},"category_type_slug":{"type":"string","example":"ACTIVE","description":"Category type slug"}}}}},"description":"All interview plan stages"},"application_automation_rule_executions":{"type":"array","items":{"type":"object","required":["id","application_automation_rule_id","action_type_enum","evaluation_result"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the automation rule execution"},"action_type_enum":{"enum":["ADD_CANDIDATE_TAG","TRANSITION_APPLICATION"],"type":"string","example":"ADD_CANDIDATE_TAG","description":"Type of action to execute"},"evaluation_result":{"type":"array","items":{"type":"object","required":["id","form_builder_question_data_binding_id","operator_enum","comparison_value","group_id","is_condition_met"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier for the evaluation result"},"group_id":{"type":"integer","example":0,"description":"Group identifier for the condition"},"operator_enum":{"enum":["EQUALS","NOT_EQUALS","CONTAINS","DOES_NOT_CONTAIN","IS_EMPTY","IS_NOT_EMPTY","GREATER_THAN","GREATER_THAN_OR_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL"],"type":"string","example":"EQUALS","description":"Comparison operator"},"comparison_value":{"type":"string","example":"value","description":"Value to compare against"},"is_condition_met":{"type":"boolean","example":true,"description":"Whether the condition is met"},"form_builder_question_data_binding_id":{"type":"string","example":"83a642fd-de0a-45f6-8fe0-b9188ed72990","description":"Form builder question data binding identifier"}},"description":"Evaluation result for automation rule"},"description":"Array of evaluation results"},"application_automation_rule_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Automation rule identifier"}},"description":"Application automation rule execution"},"description":"Automation rule executions"},"current_application_interview_plan_stage":{"type":"object","nullable":true,"required":["id","interview_plan_stage"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Identifier of the application interview plan stage record"},"interview_plan_stage":{"type":"object","nullable":true,"required":["id","name","category_type_slug","default_type_slug"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Interview plan stage unique identifier"},"name":{"type":"string","example":"Phone Screen","description":"Interview plan stage name"},"default_type_slug":{"type":"string","example":"phone_screen","nullable":true,"description":"Default type slug"},"category_type_slug":{"type":"string","example":"ACTIVE","description":"Category type slug"}}}},"description":"Current interview plan stage for the application"}},"description":"Complete application details"}},"description":"Single application response"}}},"description":"Successfully retrieved application"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"application_id","schema":{"type":"string","format":"uuid"},"example":"1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c","required":true,"description":"Application ID"}],"description":"Retrieves a single ATS application by its application_id. Use this endpoint to look up application details, including job, candidate, and submission metadata, when integrating with the ATS pipeline.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAtsApplication-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/invoices/deel":{"get":{"path":"/rest/invoices/deel","tags":["Accounting"],"method":"get","summary":"Retrieve Deel invoices","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","label","status","currency","total","created_at"],"properties":{"id":{"type":"string","example":"rhCTiRd9Mad41RwjsFWw-","description":"Unique identifier of the invoice."},"label":{"type":"string","example":"INV-2023-4","description":"Label of the invoice."},"total":{"type":"string","example":"1000","description":"Total invoice amount including Fee and VAT."},"status":{"enum":["pending","paid","processing","canceled","skipped","failed","refunded"],"type":"string","example":"paid","nullable":false,"description":"Current status of the invoice."},"currency":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","nullable":false,"maxLength":3,"minLength":3,"description":"Currency code."},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":true,"description":"Long date-time format following ISO-8601"}}}},"page":{"type":"object","required":["total_rows","items_per_page","offset"],"properties":{"offset":{"type":"number","example":0,"maximum":999999999,"minimum":0,"nullable":false,"description":"Offset"},"total_rows":{"type":"number","example":0,"nullable":false,"description":"Total number of rows"},"items_per_page":{"type":"number","example":10,"maximum":99,"minimum":1,"nullable":false,"description":"Number of items per page"}}}}}}},"description":"Successful response"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Invalid query parameter","description":"A description of the returned error"}}},"minItems":1}}}}},"description":"Validation error"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"limit","schema":{"type":"string"},"example":"10","description":"Return a page of results with given number of records; NOTE technically ALL query parameters are strings or array of strings"},{"in":"query","name":"offset","schema":{"type":"string"},"example":"10","description":"Return a page of results after given index of row; NOTE technically ALL query parameters are strings or array of strings'"}],"description":"Returns a paginated list of invoices for Deel platform fees.\n\n **Token scopes**: `accounting:read`","operationId":"retrieveDeelInvoices-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/people/me":{"get":{"path":"/rest/people/me","tags":["People"],"method":"get","summary":"Get my current personal profile","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"number","example":123,"description":"Unique identifier for the user profile "},"email":{"type":"string","example":"email@email.com","description":"Email address of the user","x-sensitive-pii":true},"user_id":{"type":"number","example":123,"description":"Unique identifier for the user"},"username":{"type":"string","example":"username","description":"Username of the user","x-sensitive-pii":true},"full_name":{"type":"string","example":"John Doe","description":"Full name of the user","x-sensitive-pii":true},"last_name":{"type":"string","example":"Doe","description":"Last name of the user","x-sensitive-pii":true},"avatar_url":{"type":"string","example":"https://example.com/avatar.jpg","nullable":true,"description":"URL of the user's avatar"},"first_name":{"type":"string","example":"John","description":"First name of the user","x-sensitive-pii":true},"middle_name":{"type":"string","example":"","nullable":true,"description":"Middle name of the user","x-sensitive-pii":true},"hris_enabled":{"type":"boolean","example":true,"nullable":true,"description":"HRIS feature enabled."},"profile_type":{"enum":["client","contractor","icp","direct_employee","hris_direct_employee","peo_employee","service_account"],"type":"string","example":"client","description":"Type of profile"},"slack_team_id":{"type":"string","example":"T123456","nullable":true,"description":"User's team slack id"},"slack_user_id":{"type":"string","example":"U123456","nullable":true,"description":"User's slack id"},"client_country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"Country code."},"organization_id":{"type":"number","example":123,"description":"Unique identifier for the organization"},"organization_name":{"type":"string","example":"Deel","nullable":true,"description":"Name of the organization"},"contractor_country":{"type":"string","example":"US","pattern":"^[A-Z]{2}$","nullable":true,"maxLength":2,"minLength":2,"description":"Country code."},"hris_organization_user_id":{"type":"string","format":"uuid","example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","nullable":true,"description":"HRIS Organization User ID of the user. Used in products like Deel Engage."}},"description":"People object representing a Deel"}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","description":"Machine-readable error code."},"message":{"type":"string","example":"Authentication required.","description":"A human-readable description of the error."}}}}}}}},"description":"Unauthorized. Missing or invalid authentication credentials."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Returns the profile of the currently authenticated user, including identity, organizational membership, and integration identifiers for connected services such as Slack.\n\n **Token scopes**: `worker:read`, `people:read`","operationId":"getMyCurrentPersonalProfile-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read","people:read"]}]}},"/immigration/workers/{worker_id}/cases/{case_id}/required-document":{"get":{"path":"/rest/immigration/workers/{worker_id}/cases/{case_id}/required-document","tags":["Immigration"],"method":"get","summary":"Retrieve a required document for a case","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"The unique identifier of the document requirement."},"name":{"type":"string","example":"Proof of employment","description":"The name of the document requirement to be uploaded."},"document":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the document."},"name":{"type":"string","example":"Compliance Document","description":"The name of the document."},"status":{"enum":["PENDING","IN_REVIEW","ACTIVE","EXPIRING","EXPIRED"],"type":"string","example":"IN_REVIEW","description":"Status of the document."},"expiration_date":{"type":"string","format":"date-time","example":"2023-10-31","nullable":true,"description":"Expiration date of the document. If document does not expire, it will be null"}}},"created_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Creation date of the document request."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Last update date of the document request."},"description":{"type":"string","example":"Please provide proof of your eligibility to work in Canada.","description":"A short text description of the document requirement to be uploaded."},"previous_rejected_document":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"The unique identifier of the document."},"status":{"enum":["REJECTED"],"type":"string","example":"REJECTED","description":"Status of the document."},"rejection_note":{"type":"string","example":"The document contains incorrect or inconsistent information, which does not match the records of requirements","nullable":true,"description":"A detailed description about why the document was rejected."},"rejection_reason":{"type":"string","example":"Inaccurate data","nullable":true,"description":"The reason why the document was rejected."}}},"immigration_document_requirement_id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"The unique identifier of the immigration document requirement."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string"},"example":"a6fb5c89-5abd-45d1-afc1-7e98d550eb71","required":true,"description":"The hris profile oid (public id) of the worker."},{"in":"path","name":"case_id","schema":{"type":"string"},"example":"a6fb5c89-5abd-45d1-afc1-7e98d550eb71","required":true,"description":"The unique identifier of the case for which the required document is being requested."}],"description":"Retrieves the details of a specific document requirement within a worker's immigration case, including the requirement's current status and information about any previously rejected document.\n\n **Token scopes**: `worker:read`","operationId":"retrieveARequiredDocumentForACase-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/effective-date-limitations":{"get":{"path":"/rest/eor/contracts/{contract_id}/amendments/{amendment_id}/effective-date-limitations","tags":["EOR"],"method":"get","summary":"Retrieve Effective Date Limitations","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","example":{"message":"Due to the country's regulations, the effective date is available from the first day of the current payroll cycle onwards","is_hidden":false,"is_disabled":true,"max_effective_date":"2025-12-31T00:00:00Z","min_effective_date":"2025-07-01T00:00:00Z","default_effective_date":"2025-08-01T00:00:00Z"},"properties":{"message":{"type":"string","example":"Due to the country's regulations, the effective date is available from the first day of the current payroll cycle onwards","description":"Optional human-readable additional explanation on effective date limitation"},"is_hidden":{"type":"boolean","example":false,"description":"Indicates if the effective date field should be hidden."},"is_disabled":{"type":"boolean","example":true,"description":"Indicates if the effective date field is disabled"},"max_effective_date":{"type":"string","format":"date-time","example":"2025-12-31T00:00:00Z","nullable":true,"description":"The latest valid effective date"},"min_effective_date":{"type":"string","format":"date-time","example":"2025-07-01T00:00:00Z","nullable":true,"description":"The earliest valid effective date"},"default_effective_date":{"type":"string","format":"date-time","example":"2025-08-01T00:00:00Z","nullable":true,"description":"A default effective date suggested by the system"}}}}}}},"description":"Returns the effective date limits for the amendment."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR"},"message":{"type":"string","example":"Internal validation error occurred"}}}}}},"example":{"errors":[{"code":"VALIDATION_ERROR","message":"Internal validation error occurred."}]}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"FORBIDDEN"},"message":{"type":"string","example":"You do not have permission to perform this action"}}}}}},"example":{"errors":[{"code":"FORBIDDEN","message":"You do not have permission to perform this action"}]}}},"description":"Forbidden. The caller does not have permission to perform this action."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR","description":"Unique error code identifying the type of not-found error."},"message":{"type":"string","example":"The requested resource could not be found.","description":"Human-readable description of the missing resource."}}}}}}}},"description":"Resource not found (e.g., contract, profile, amendment, change request)."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"AMENDMENT_ERROR"},"message":{"type":"string","example":"An unexpected error occurred"}}}}}},"example":{"errors":[{"code":"AMENDMENT_ERROR","message":"An unexpected error occurred"}]}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","example":"3w6pd6r"},"example":"3w6pd6r","required":true,"description":"The unique identifier of the EOR worker contract"},{"in":"path","name":"amendment_id","schema":{"type":"string","format":"uuid","example":"ad8e84f9-a9a2-4842-a6ee-1d76228e39b1"},"example":"ad8e84f9-a9a2-4842-a6ee-1d76228e39b1","required":true,"description":"A unique identifier for the employee contract amendment"}],"description":"Returns validation rules for the effective date field within an EOR contract amendment flow.\n\n **Token scopes**: `contracts:read`","operationId":"retrieveEffectiveDateLimitations-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/equity-expenses":{"get":{"path":"/rest/equity-expenses","tags":["Equity Tokens"],"method":"get","summary":"List equity grant total expense records","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","source_file_id","employee_number","hris_profile_id","grant_name","plan_name","award_type","grant_price","grant_date","employee_grant_number","fair_value_per_share","valuation_status","base_shares","base_expense","actual_performance_factor","factor_shares","estimated_performance_factor","actual_forfeitures","unvested_repurchased","total_actual_shares_to_expense","total_actual_expense_to_accrue","forfeiture_rate_percent","estimated_forfeitures","total_estimated_shares_to_expense","total_estimated_expense","occurrence_index","row_hash","last_seen_dataset_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"The unique identifier of the record."},"row_hash":{"type":"string","example":"9f2c1a7e4b6d8f0a2c4e6b8d0f2a4c6e8b0d2f4a6c8e0b2d4f6a8c0e2b4d6f8a","description":"Hash of the reported values on this record. Compare it between syncs to detect a change without diffing every field."},"plan_name":{"type":"string","example":"2020 Stock Plan","description":"Equity plan name, as reported by the ingested file."},"award_type":{"type":"string","example":"Options (NQ)","description":"Award type (e.g. Restricted Stock - Standard), as reported by the ingested file."},"created_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was first ingested."},"grant_date":{"type":"string","format":"date","example":"2022-06-18","description":"Date the grant was issued, as reported by the ingested file.","x-sensitive-employment":true},"grant_name":{"type":"string","example":"06/18/2022 - NQSO - $4.7","description":"Grant name, as reported by the ingested file."},"updated_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was last upserted, for incremental sync."},"base_shares":{"type":"number","example":1000,"description":"Base share count for this grant, as reported by the ingested file.","x-sensitive-employment":true},"grant_price":{"type":"number","example":4.7,"nullable":true,"description":"Strike/grant price per unit, as reported by the ingested file.","x-sensitive-employment":true},"base_expense":{"type":"number","example":4700,"nullable":true,"description":"Base expense amount, as reported by the ingested file.","x-sensitive-employment":true},"factor_shares":{"type":"number","example":5.5,"nullable":true,"description":"Shares resulting from the performance factor, as reported by the ingested file.","x-sensitive-employment":true},"source_file_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"Identifier of the ingested Shareworks report file this record was last upserted from."},"employee_number":{"type":"string","example":"9001","description":"Shareworks employee number, as reported by the ingested file. The intended join key for this record. Some values are non-numeric for legacy or masked records.","x-sensitive-pii":true},"hris_profile_id":{"type":"integer","example":4821,"nullable":true,"description":"Matched HRIS profile id, if employee_number could be resolved to one. Null when unmatched, or when employee_number is non-numeric or blank.","x-sensitive-pii":true},"occurrence_index":{"type":"integer","example":1,"description":"Discriminates several records the source file reports for the same natural key. Starts at 1, in the order the rows appear in the file."},"valuation_status":{"type":"string","example":"Active","nullable":true,"description":"Valuation status (e.g. Approved, Do Not Expense), as reported by the ingested file."},"actual_forfeitures":{"type":"number","example":1000,"description":"Actual forfeited share count, as reported by the ingested file.","x-sensitive-employment":true},"fair_value_per_share":{"type":"number","example":4.7,"nullable":true,"description":"Fair market value per share, as reported by the ingested file.","x-sensitive-employment":true},"last_seen_dataset_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","nullable":true,"description":"Identifier of the most recent ingested dataset in which this record still appeared. Null for records ingested before dataset tracking began."},"unvested_repurchased":{"type":"number","example":1000,"nullable":true,"description":"Unvested shares repurchased, as reported by the ingested file.","x-sensitive-employment":true},"employee_grant_number":{"type":"string","example":"ES-0001","description":"Shareworks grant number for this employee, as reported by the ingested file.","x-sensitive-pii":true},"estimated_forfeitures":{"type":"number","example":1000,"nullable":true,"description":"Estimated forfeited share count, as reported by the ingested file.","x-sensitive-employment":true},"forfeiture_rate_percent":{"type":"number","example":5.5,"nullable":true,"description":"Forfeiture rate, stored as the percent NUMBER itself (e.g. 44.336788 means 44.336788%), NOT a fraction. See parseShareworksPercent.","x-sensitive-employment":true},"total_estimated_expense":{"type":"number","example":4700,"nullable":true,"description":"Total estimated expense, as reported by the ingested file.","x-sensitive-employment":true},"actual_performance_factor":{"type":"number","example":5.5,"nullable":true,"description":"Actual performance factor applied, as reported by the ingested file.","x-sensitive-employment":true},"estimated_performance_factor":{"type":"number","example":5.5,"nullable":true,"description":"Estimated performance factor, as reported by the ingested file.","x-sensitive-employment":true},"total_actual_expense_to_accrue":{"type":"number","example":4700,"nullable":true,"description":"Total actual expense to accrue, as reported by the ingested file.","x-sensitive-employment":true},"total_actual_shares_to_expense":{"type":"number","example":4700,"description":"Total actual shares to expense, as reported by the ingested file.","x-sensitive-employment":true},"total_estimated_shares_to_expense":{"type":"number","example":4700,"nullable":true,"description":"Total estimated shares to expense, as reported by the ingested file.","x-sensitive-employment":true}}},"description":"Page of total expense records, one per grant occurrence."},"has_more":{"type":"boolean","example":false,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","nullable":true,"description":"Cursor for the next page. Null when has_more is false."}}}}},"description":"List equity grant total expense records returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid cursor","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"validation_error","message":"Invalid cursor"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"unauthorized","message":"Unauthorized"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Insufficient permissions to view equity grant total expense records","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"forbidden","message":"Insufficient permissions to view equity grant total expense records"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — caller lacks the equities.view permission, or the caller's organization is not permitted to access this endpoint."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Not found","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"not_found","message":"Not found"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found — the requested resource does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"internal_server_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Internal server error","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"internal_server_error","message":"Internal server error"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of records to return in this page."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":2048},"example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","required":false,"description":"Opaque pagination cursor returned as next_cursor by a previous response. Omit to fetch the first page."},{"in":"query","name":"employee_number","schema":{"type":"string","maxLength":64},"example":"9001","required":false,"description":"Only return records for this exact Shareworks employee number."},{"in":"query","name":"employee_grant_number","schema":{"type":"string","maxLength":100},"example":"ES-0001","required":false,"description":"Only return records for this exact Shareworks grant number."},{"in":"query","name":"grant_date_from","schema":{"type":"string","format":"date"},"example":"2026-01-01","required":false,"description":"Only return records with a grant_date on or after this date (inclusive), in YYYY-MM-DD format."},{"in":"query","name":"grant_date_to","schema":{"type":"string","format":"date"},"example":"2026-12-31","required":false,"description":"Only return records with a grant_date on or before this date (inclusive), in YYYY-MM-DD format."}],"description":"Retrieves the total share-based compensation expense recognised per equity grant in an organization, as ingested from Shareworks. Use it at period close to tie the equity expense in the ledger back to the individual grants that produced it. Each record reflects the most recently ingested reporting period; earlier periods are overwritten, so this is not a period history. Requires the `equities.view` permission at the organization level.\n\n **Token scopes**: `equities:read`","operationId":"listEquityExpenses-v2026-09-09","security":[{"deelToken":[]},{"oauth2":["equities:read"]}]}},"/teams":{"get":{"path":"/rest/teams","tags":["Organizations"],"method":"get","summary":"Get Team List","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":[{"id":"00000000-0000-0000-0000-000000000000","name":"Engineering"},{"id":"11111111-1111-1111-1111-111111111111","name":"Marketing"}]},"required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","nullable":false,"description":"The unique identifier of the team within the organization."},"name":{"type":"string","example":"Engineering","nullable":false,"minLength":1,"description":"The name of the team."}}}}}}}},"description":"Successful retrieval of the teams in the organization."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized. Please provide valid authentication credentials.","description":"An error message indicating that the authentication failed."}}}}},"description":"Unauthorized. The request is missing authentication credentials or the credentials provided are invalid."},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"No teams found in this organization.","description":"An error message indicating that no teams were found."}}}}},"description":"No teams found. There are no teams associated with the current organization."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Internal server error.","description":"A general error message indicating that the server encountered an unexpected issue."}}}}},"description":"Internal server error. An error occurred on the server while processing the request."}},"parameters":[],"description":"Returns the list of teams within the authenticated user's organization, with each entry including the team's ID and name.\n\n **Token scopes**: `organizations:read`","operationId":"getTeams-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/daas/banks/{bank_id}":{"patch":{"path":"/rest/daas/banks/{bank_id}","tags":["Deel As a Service"],"method":"patch","summary":"Modify bank account for an EOR employee","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"dcc7b587-2246-4909-853e-12056e90c451","description":"ID of Bank Account."},"status":{"enum":["new","pending","approved","failed"],"type":"string","example":"pending","description":"Bank Account status"},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","description":"Long date-time format following ISO-8601"},"updated_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","description":"Long date-time format following ISO-8601"}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"bank_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for a bank in UUID format."},"example":"dcc7b587-2246-4909-853e-12056e90c451","required":true,"description":"Unique identifier for a bank in UUID format."}],"description":"Applies a partial update to the bank account details for an EOR employee. The request body accepts an array of field-level updates.\n\n **Token scopes**: `worker:write`","operationId":"patchEORBankAccount-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","required":["key","value"],"properties":{"key":{"type":"string","example":"beneficiaryName","description":"The key of the bank account properties."},"value":{"type":"string","example":"John Doe","description":"The value for that key property."}}},"description":"Array of key value properties of bank account"}}}}},"description":"Bank Account object that needs to be modified"},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/contract-templates":{"get":{"path":"/rest/contract-templates","tags":["Contracts"],"method":"get","summary":"Retrieve contract templates","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["id","title"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}]},"title":{"type":"string","nullable":false,"description":"The title of a contract template."}}}}}},"examples":{"success":{"value":{"data":[{"id":"12345","title":"Standard Employment Contract"},{"id":"67890","title":"Non-Disclosure Agreement"}]},"summary":"Example response"}}}},"description":"A successful response containing contract templates."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":400,"message":"Invalid request format."}},"summary":"Example error response"}}}},"description":"Invalid request parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":500,"message":"An unexpected error occurred."}},"summary":"Example server error response"}}}},"description":"Internal server error."}},"description":"Returns all contract templates available to the organization, including fixed-rate, pay-as-you-go, and milestone-based types. Template identifiers returned here can be supplied when creating new contracts.\n\n **Token scopes**: `contracts:read`","operationId":"getContractTemplates-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/immigration/workers/cases/{case_id}":{"get":{"path":"/rest/immigration/workers/cases/{case_id}","tags":["Immigration"],"method":"get","summary":"Get specific immigration case details ","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of immigration case."},"status":{"enum":["OPEN","CLOSED","ON_HOLD"],"type":"string","example":"OPEN","description":"Status of the immigration case."},"process":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the current active process."},"name":{"type":"string","example":"Eligibility Check","description":"Name of the current active process."},"status":{"type":"string","example":"Verify your Identity","description":"Status of the current active process."},"rejection_note":{"type":"string","example":"We couldn't accept the document because the file or photo that has been submitted cannot be read fully.","description":"A detailed description of why the case was rejected. Only available if the case status is REJECTED."},"rejection_reason":{"type":"string","example":"Poor image quality","description":"The reason why the case was rejected. Only available if the case status is REJECTED."}},"description":"The current active process"},"contract":{"type":"object","properties":{"id":{"type":"string","example":"359pr8y","nullable":true,"description":"Id of the contract associated with the immigration case"}},"description":"The contract associated with the returned immigration case","x-sensitive-employment":true},"applicant":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the applicant profile id.","x-sensitive-pii":true},"external_id":{"type":"string","example":"123456","nullable":true,"description":"External identifier of the applicant  (from partner system or third party)."}},"description":"The employee for which this Right to Work case has been created for","x-sensitive-pii":true},"case_type":{"type":"string","example":"Business Visa","description":" Type of the case."},"documents":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"5f5b3b3b-4b3b-4b3b-4b3b-4b3b3b3b3b3b","description":"Unique identifier of the document."},"status":{"enum":["IN_REVIEW","ACTIVE","EXPIRED","EXPIRING","PENDING","REJECTED","COMPLETED","FAILED","PROCESSING","UNKNOWN"],"type":"string","example":"EXPIRING","description":"Status of the document."},"document_type":{"type":"string","example":"Eu blue card","nullable":true,"description":"The type of the document. Represents the visa type for right to work cases."},"expiration_date":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","nullable":true,"description":"Expiry date of the document. If document does not expire, it will be null"}}},"description":"A list of documents associated to the immigration case"},"visa_type":{"type":"string","example":"Eu blue card","nullable":true,"description":"The type of the visa."},"created_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Creation date of the immigration case."},"updated_at":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","description":"Last activity on the immigration case."},"country_code":{"type":"string","example":"DE","description":"The country of the immigration case."},"estimated_completion_date":{"type":"string","format":"date-time","example":"2023-10-31T13:45:30Z","nullable":true,"description":"Estimated completion date of the immigration case."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"case_id","schema":{"type":"string","format":"uuid"},"example":"e9b4ce94-2e3e-4d41-9faf-1ad2389cac1d","required":true,"description":"Filter by case ID"}],"description":"Get detailed information for a specific immigration case. Use this to check case status and track process progress. The id path parameter is the case UUID returned from the 'Create Client Case' endpoint. Response is enriched with applicant profile, visa type, case status, estimated completion date, process details, and compliance document details.\n\n **Token scopes**: `worker:read`","operationId":"getSpecificImmigrationCaseDetails-v2026-04-02","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/{oid}/terminations/resignation":{"post":{"path":"/rest/eor/{oid}/terminations/resignation","tags":["EOR"],"method":"post","summary":"Request EOR Contract Resignation","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"id":{"type":"number","format":"float"},"end_date":{"type":"string","format":"date-time","example":"'2025-01-31T00:00:00.000Z'","nullable":true,"description":"The definitive contract end date"},"contract_id":{"type":"string","example":"5B74FnLM","description":"Public contract oid"},"request_data":{"type":"object","nullable":true,"properties":{"reason":{"type":"string","nullable":true},"end_date":{"type":"string","format":"date-time","example":"'2025-01-31T00:00:00.000Z'","nullable":true,"description":"The definitive contract end date"},"reason_detail":{"type":"string","example":"Employee is moving to another country","nullable":true,"description":"Optional field to describe the reason behind the resignation request"},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible"},"termination_impact":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid"},"title":{"type":"string","example":"Bad Impact","description":"Termination impact title"},"description":{"type":"string","example":"It will be bad","description":"Termination impact description"}},"description":"Custom termination impact data if there is some configured on HR module"},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again"},"eligible_for_rehire_reason":{"type":"string","example":false,"nullable":true,"description":"Describe if the option DONT_KNOW was selected on eligibleForRehire"},"custom_termination_reason_id":{"type":"number","format":"float","nullable":true,"description":"Custom termination reason ID. A custom termination reason can be added on Client HR module"}}},"desired_end_date":{"type":"string","format":"date-time","example":"2025-01-31","nullable":true,"description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible"}}}}}}},"description":"Ok response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"minItems":1}}},"description":"Unauthorized response"},"403":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"minItems":1}}},"description":"Forbidden response"},"404":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string"}}},"minItems":1}}},"description":"Not Found response"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"oid","schema":{"type":"string","example":"5B74FnLM"},"required":true,"description":"Public contract oid"}],"description":"Submits a resignation request for an EOR contract on behalf of a team member. Callers must hold group admin or people manager permissions.\n\n **Token scopes**: `contracts:read`, `contracts:write`","operationId":"eorResignationRequest-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["reason","used_time_off","is_employee_staying_with_deel"],"properties":{"reason":{"enum":["EMPLOYEE_IS_MOVING_TO_ANOTHER_COUNTRY","MOVING_EMPLOYEE_TO_INTERNAL_ENTITY","MOVING_EMPLOYEE_TO_DEEL_PEO","EMPLOYEE_FOUND_ANOTHER_JOB","EMPLOYEE_NOT_HAPPY_WITH_BENEFITS","EMPLOYEE_NOT_HAPPY_WITH_SALARY","EMPLOYEE_NOT_HAPPY_WITH_THE_ROLE","EMPLOYEE_NOT_HAPPY_WITH_COMPANY_CULTURE","EMPLOYEE_NOT_HAPPY_WITH_DEEL","EMPLOYEE_PROJECT_ENDED","EMPLOYEE_SWITCHING_TO_OTHER_EOR_PROVIDER","EMPLOYEE_LEFT_ROLE_FOR_PERSONAL_MATTERS","EMPLOYEE_MOVING_FROM_EOR_TO_CONTRACTOR_OR_FREELANCE","WORKER_TYPE_CHANGE","DEEL_COLLECTIONS","EMPLOYEE_DID_NOT_TAKE_THE_OFFER","EMPLOYEE_PROVIDED_NO_REASON","OTHER_BUSINESS_REASONS"],"type":"string","example":"EMPLOYEE_IS_MOVING_TO_ANOTHER_COUNTRY","description":"Reason why the contract is being terminated"},"attachments":{"type":"array","items":{"type":"object","required":["key","fileName"],"properties":{"key":{"type":"string"},"file_name":{"type":"string","pattern":"\\.(png|PNG|jpg|JPG|jpeg|JPEG|heic|HEIC|pdf|PDF)$"}}},"description":"Any document that is important for the request to terminate the contract"},"is_sensitive":{"type":"boolean","example":false,"description":"Defines whether the termination is sensitive. In this case, only the person requesting the termination will be able to view the termination, receive emails or notifications."},"reason_detail":{"type":"string","example":"Employee is moving to another country","maxLength":5000,"description":"Optional field to describe the reason behind the resignation request"},"used_time_off":{"type":"object","example":{"time_offs":[{"unit":"CALENDAR_DAY","policy_type":"Vacation","tracking_periods":[{"used":25,"end_date":"2024-12-31T00:00:00.000Z","start_date":"2024-01-01T00:00:00.000Z"},{"used":30,"end_date":"2023-12-31T00:00:00.000Z","start_date":"2023-01-01T00:00:00.000Z"}],"scheduled_until_end_date":5}],"additional_details":"Any additional details regarding time off that HRX should know","is_deel_pto_confirmed":true},"required":["isDeelPtoConfirmed","timeOffs"],"properties":{"time_offs":{"type":"array","items":{"type":"object","required":["policyType","unit","trackingPeriods","scheduledUntilEndDate"],"properties":{"unit":{"enum":["BUSINESS_DAY","CALENDAR_DAY","HOUR","WEEK","MONTH","YEAR"],"type":"string","description":"Time off unit"},"policy_type":{"enum":["Vacation","Sick leave","Maternity leave","Paternity leave","Parental leave","Bereavement leave","Childcare leave","Civic/public duty leave","Personal leave","Adoption leave","Blood donation leave","Childbirth leave","Disability leave","Doctor's appointment leave","Family & domestic violence leave","Hajj leave","Marriage/wedding leave","Military leave","Moving leave","Pregnancy leave","Study leave","Volunteer leave","Unpaid leave","Paid leave","Other leave","RTT","Regional holiday","Breastfeeding leave","Advanced vacation","Supplementary Leave","Floating Holiday Allowance"],"type":"string","description":"Time off policy type"},"tracking_periods":{"type":"array","items":{"type":"object","required":["startDate","endDate","used"],"properties":{"used":{"type":"number","format":"float","maximum":365,"minimum":0,"description":"Time off used in the period"},"end_date":{"type":"string","format":"date-time","description":"Time off start period"},"start_date":{"type":"string","format":"date-time","description":"Time off end period"}}}},"scheduled_until_end_date":{"type":"number","format":"float","maximum":365,"minimum":0,"description":"Time off escheduled until contract end date"}}},"description":"All time-off used by the employee during contract period"},"additional_details":{"type":"string","nullable":true,"description":"Any additional details regarding time off that HRX should know"},"is_deel_pto_confirmed":{"type":"boolean","description":"Defines whether the client agrees with the time off values that are registered in Deel. If false, it means that the client changed the values."}}},"severance_type":{"enum":["DAYS","WEEKS","MONTHS","CASH"],"type":"string","example":"CASH","description":"The type of severance selected by the client. It's an optional field"},"desired_end_date":{"type":"string","example":"2025-01-31","pattern":"^\\d{4}-\\d{2}-\\d{2}$","description":"The desired end date. If the date is not provided, it will be selected by HRX the closest date possible"},"severance_amount":{"type":"number","format":"float","example":1000,"minimum":0,"description":"The amount of severance needed"},"additional_reason":{"enum":["MOVING_TO_INTERNAL_ENTITY_WITH_DEEL_GLOBAL_PAYROLL","MOVING_TO_INTERNAL_ENTITY_WITH_OTHER_PROVIDER"],"type":"string","example":"MOVING_TO_INTERNAL_ENTITY_WITH_OTHER_PROVIDER","nullable":true,"description":"An additional reason can be provided in case the reason selected is MOVING_EMPLOYEE_TO_INTERNAL_ENTITY"},"termination_notes":{"type":"array","items":{"type":"string","maxLength":5000},"default":[],"example":["What severance pay, if any, am I entitled to receive upon termination of this contract?","How will accrued vacation time, sick leave, or other paid time off be handled upon termination of this contract?"],"description":"Additional notes can be provided regarding the termination for Deel, like questions and doubts"},"eligible_for_rehire":{"enum":["YES","NO","DONT_KNOW"],"type":"string","example":"DONT_KNOW","nullable":true,"description":"Parameter to inform whether it would be possible for the client to hire the employee again"},"termination_impact_id":{"type":"string","format":"uuid","description":"Termination impact data if there is some configured on HR module"},"eligible_for_rehire_reason":{"type":"string","example":false,"nullable":true,"maxLength":255,"description":"Describe if the option DONT_KNOW was selected on eligibleForRehire"},"custom_termination_reason_id":{"type":"string","format":"uuid","nullable":true,"description":"Custom termination reason ID. A custom termination reason can be added on Client HR module"},"is_employee_staying_with_deel":{"type":"boolean","example":false,"nullable":true,"description":"Defines if employee will keep using Deel as provider"}}}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:read","contracts:write"]}]}},"/workers/contracts/{contract_id}/compliance-documents":{"get":{"path":"/rest/workers/contracts/{contract_id}/compliance-documents","tags":["Workers"],"method":"get","summary":"List compliance documents of a worker contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","description","country","is_required","has_template","filenames","uploaded_at","created_at","updated_at","submission_status","is_acknowledgement_only_document"],"properties":{"id":{"type":"string","format":"uuid","example":"c106a26a-21bb-5538-8bf2-57095d1976c1","description":"Public UUID of the compliance document requirement. Use it as `document_id` on the other endpoints."},"name":{"type":"string","example":"Passport or National ID","description":"Display name of the document, in the worker language."},"country":{"type":"string","example":"US","nullable":true,"description":"ISO 3166-1 alpha-2 country code the requirement applies to. Null for a requirement that applies everywhere."},"filenames":{"type":"array","items":{"type":"string"},"example":["passport_scan.pdf"],"description":"Names of the files submitted against this requirement. Empty array when nothing has been submitted."},"created_at":{"type":"string","format":"date-time","example":"2026-01-05T14:30:00.000Z","nullable":true,"description":"When the submission was created. Carries the same value as `uploaded_at`."},"updated_at":{"type":"string","format":"date-time","example":"2026-01-06T08:15:00.000Z","nullable":true,"description":"When the submission was last changed. Null when nothing has been submitted."},"description":{"type":"string","example":"Please upload a clear copy of your passport or national ID card.","description":"What the document asks for, in the worker language. Empty string when the requirement has no description."},"is_required":{"type":"boolean","example":true,"description":"Whether the worker has to submit this document. A requirement with a 30-day grace period after the employment start reads `true`: it is required, only not immediately."},"uploaded_at":{"type":"string","format":"date-time","example":"2026-01-05T14:30:00.000Z","nullable":true,"description":"When the submission was created. Null when nothing has been submitted."},"has_template":{"type":"boolean","example":true,"description":"Whether a template is provided for this document."},"submission_status":{"type":"string","example":"REVIEWING","nullable":true,"description":"Reads `REVIEWING` while a submission is not final yet. Null at every other time."},"is_consent_required":{"type":"boolean","example":true,"description":"Whether the worker has to consent. Present only for acknowledgement-only documents that declare the flag."},"is_acknowledgement_only_document":{"type":"boolean","example":false,"description":"Whether the document only has to be acknowledged, with no file to submit."}}},"description":"Documents on this page."},"has_more":{"type":"boolean","example":true,"description":"Whether another page follows this one."},"next_cursor":{"type":"string","example":"eyJpZCI6IjRiMWYwZDYxLTljNmEtNGE1Zi05ZjJmLTZiMGQzYTFmNzdhYSJ9","nullable":true,"description":"Opaque token to pass as `cursor` to fetch the next page. Null on the last page. Never construct or parse one."},"total_count":{"type":"integer","example":12,"minimum":0,"description":"Total number of documents for the contract, across every page."}}},"example":{"data":[{"id":"c106a26a-21bb-5538-8bf2-57095d1976c1","name":"Passport or National ID","country":"US","filenames":["passport_scan.pdf"],"created_at":"2026-01-05T14:30:00.000Z","updated_at":"2026-01-06T08:15:00.000Z","description":"Please upload a clear copy of your passport or national ID card.","is_required":true,"uploaded_at":"2026-01-05T14:30:00.000Z","has_template":false,"submission_status":"REVIEWING","is_acknowledgement_only_document":false},{"id":"4b1f0d61-9c6a-4a5f-9f2f-6b0d3a1f77aa","name":"Direct Deposit Authorization","country":"US","filenames":[],"created_at":null,"updated_at":null,"description":"Complete and sign the direct deposit form.","is_required":true,"uploaded_at":null,"has_template":true,"submission_status":null,"is_acknowledgement_only_document":false}],"has_more":true,"next_cursor":"eyJpZCI6IjRiMWYwZDYxLTljNmEtNGE1Zi05ZjJmLTZiMGQzYTFmNzdhYSJ9","total_count":12}}},"description":"Compliance documents returned successfully. `created_at` and `updated_at` come from the submission; `created_at` carries the same value as `uploaded_at`, and all three are null until something is submitted against the requirement. The language of `name` and `description` follows the language preference of the authenticated worker. It cannot be selected per request, and the same document may read differently for two workers of the same organization. Text falls back to English when no published translation exists for that language. `total_count`, `has_more` and `next_cursor` always describe the whole set of requirements for the contract rather than an estimate. `next_cursor` is an opaque token: pass it back unchanged and never construct or parse one. The set is small — expect tens of documents for one contract, not thousands."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"limit must be an integer between 1 and 100","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Bad request — `limit` is outside 1 to 100, or `cursor` is not a token a previous response handed out."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Authentication required.","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unauthorized — the access token is missing, expired or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Forbidden — the worker does not hold this contract, or the token lacks the required scope."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Contract not found","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Not found — no contract of the authenticated worker matches `contract_id`."},"422":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"WORKER_TYPE_NOT_SUPPORTED","maxLength":255,"description":"Machine-readable error code."},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, when the error is about one."},"message":{"type":"string","example":"Compliance documents are not supported for this contract type on this endpoint yet","description":"Human-readable explanation."}},"additionalProperties":true},"minItems":1,"description":"Errors that occurred while processing the request."}}}}},"description":"Unprocessable entity — the contract is not a Global Payroll contract, so compliance documents are not available on this endpoint. The error code is `WORKER_TYPE_NOT_SUPPORTED`."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string","maxLength":64,"minLength":1},"example":"37nex2x","required":true,"description":"Public id of the Global Payroll contract the documents belong to."},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100,"minimum":1},"example":20,"required":false,"description":"Maximum number of documents to return per page."},{"in":"query","name":"cursor","schema":{"type":"string","pattern":"^[A-Za-z0-9_-]+$","maxLength":512,"minLength":1},"example":"eyJpZCI6IjRiMWYwZDYxLTljNmEtNGE1Zi05ZjJmLTZiMGQzYTFmNzdhYSJ9","required":false,"description":"Opaque `next_cursor` value from the previous response, passed back unchanged. Omit for the first page."}],"description":"Lists the compliance documents the authenticated worker has to satisfy on one of their Global Payroll contracts, together with what has already been submitted against each one. Use it to see what is still outstanding before payroll. Requirements with nothing submitted are included, with an empty `filenames` array and null timestamps. Retired requirements are excluded, except a retired I9, which stays listed while it can still be submitted. Only Global Payroll contracts are supported.\n\n **Token scopes**: `worker:read`","operationId":"listWorkerContractComplianceDocuments-v2026-08-25","security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/contracts/{contract_id}/employee-information":{"patch":{"path":"/rest/eor/contracts/{contract_id}/employee-information","tags":["EOR"],"method":"patch","summary":"Update Employee Information for EOR Contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["id","status"],"properties":{"id":{"type":"string","example":"38j84xg","description":"The unique identifier of the employee contract."},"status":{"enum":["new","under_review","waiting_for_client_sign","waiting_for_eor_sign","waiting_for_employee_contract","waiting_for_employee_sign","awaiting_deposit_payment","rejected"],"type":"string","example":"under_review","description":"Current status of the contract"},"scope_of_work":{"type":"string","example":"Scope of work description.","description":"Scope of work description.","x-sensitive-employment":true},"employee_last_name":{"type":"string","example":"Doe","description":"The last name of the contract employee.","x-sensitive-pii":true},"employee_first_name":{"type":"string","example":"John","description":"The first name of the contract employee.","x-sensitive-pii":true}}}}}}},"description":"Employee information updated successfully"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"/data/example_field","description":"Name of the field causing the error (for validation issues)"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"Human-readable explanation of the error"}}}}}}}},"description":"Contract not found."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"service_unavailable","description":"Machine-readable error code"},"message":{"type":"string","example":"The service is currently experiencing issues","description":"Human-readable explanation of the error"}}}}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"38j84xg","required":true,"description":"The unique identifier of the employee contract."}],"description":"Applies partial updates to employee information on an EOR contract. Only accepts documented fields — any undocumented fields will cause a validation error. Updates are permitted only when the contract has a status of `new`, `under_review`, `waiting_for_client_sign`, `waiting_for_eor_sign`, `waiting_for_employee_contract`, `waiting_for_employee_sign`, `awaiting_deposit_payment`, or `rejected`.\n\n **Token scopes**: `contracts:write`","operationId":"updateEmployeeInformationForEorContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"employee_last_name":{"type":"string","example":"Doe","description":"The last name of the employee."},"employee_first_name":{"type":"string","example":"John","description":"The first name of the employee."}}}}}}}},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/webhooks/events/types":{"get":{"path":"/rest/webhooks/events/types","tags":["Webhooks"],"method":"get","summary":"List webhook event types","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["id","module_name","module_label","name","description"],"properties":{"id":{"type":"number","example":1,"nullable":false,"description":"Event type unique identifier."},"name":{"type":"string","example":"invoice-adjustment.reviewed","nullable":false,"description":"Name of the webhook event."},"created_at":{"type":"string","example":"2024-01-01T12:00:00Z","description":"Time at which the event type was created."},"updated_at":{"type":"string","example":"2024-01-02T12:00:00Z","description":"Time at which the event type was updated."},"description":{"type":"string","example":"Triggered when a contract status changes.","description":"Describes the webhook event and other pertinent info."},"module_name":{"type":"string","example":"contract","nullable":false,"description":"Name of the rabbit queue."},"module_label":{"type":"string","example":"Contracts","nullable":false,"description":"Display name of the rabbit queue in Deel UI."},"payload_example":{"type":"string","example":"{\"event\":\"contract.created\",\"data\":{\"id\":\"00000000-0000-0000-0000-000000000000\"}}","nullable":true,"description":"JSON payload example of the specific event."}}},"description":"The list of webhook event types."}}}}},"description":"successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Bad Request. The request could not be understood or was missing required parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Unauthorized. Authentication credentials were missing or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Forbidden. You do not have permission to access this resource."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Not Found. The requested resource could not be found."},"405":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Method Not Allowed. The HTTP method is not supported for this resource."},"429":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Too Many Requests. The rate limit has been exceeded."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Internal validation error occurred","description":"Human-readable description of the error."},"error_code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code."}}},"description":"The list of errors that caused the request to fail."}}}}},"description":"Internal Server Error. An unexpected error occurred."}},"description":"Returns all available webhook event types that can be subscribed to. Each entry includes the event name, description, and a payload example.\n\n **Token scopes**: `webhooks:read`","operationId":"getAllWebhookEventTypes-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["webhooks:read"]}]}},"/people/custom_fields":{"get":{"path":"/rest/people/custom_fields","tags":["Custom Fields"],"method":"get","summary":"List all people custom fields","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Unique identifier of the custom field"},"name":{"type":"string","example":"Custom Field Name","maxLength":255,"description":"Name of the custom field"},"type":{"oneOf":[{"type":"object","required":["name"],"properties":{"name":{"enum":["text","number","date","percentage"],"type":"string","example":"text","description":"Simple types"}}},{"type":"object","required":["name","is_fixed"],"properties":{"name":{"enum":["currency"],"type":"string","example":"currency","description":"Currency type"},"currency":{"type":"string","example":"USD","nullable":true,"maxLength":3,"description":"Currency code"},"is_fixed":{"type":"boolean","example":true,"description":"When currency is fixed, only the amount can be edited by the users"}}},{"type":"object","required":["name","options"],"properties":{"name":{"enum":["list","multiselect"],"type":"string","example":"list","description":"List types"},"options":{"type":"array","items":{"type":"string"},"example":["Option 1","Option 2"],"description":"List of options for the custom field"}}}],"example":"text","description":"Type of the custom field"},"settings":{"type":"object","required":["required","is_enabled","access"],"properties":{"access":{"type":"object","required":["is_sensitive"],"properties":{"provided_by":{"enum":["organization","worker"],"type":"string","example":"organization","nullable":true,"description":"Entity providing access to the custom field"},"is_sensitive":{"type":"boolean","example":true,"description":"Whether the custom field is sensitive"},"group_permission_set":{"type":"string","example":"custom_fields_set1","nullable":true,"description":"Permission set identifier for the custom field"}},"description":"Access settings for the custom field"},"required":{"type":"boolean","example":true,"description":"Whether the custom field is required"},"countries":{"type":"array","items":{"type":"string"},"example":["CA","GB","US"],"description":"Countries for which the custom field is applicable."},"is_enabled":{"type":"boolean","example":true,"description":"Whether the custom field is enabled"},"worker_types":{"type":"array","items":{"enum":["eor","contractor","hris_direct_employee","direct_employee","contractor_outside_deel"],"type":"string"},"example":["eor","contractor"],"description":"Worker types for which the custom field is applicable"}},"description":"Settings for the custom field"},"placement":{"enum":["profile","contract"],"type":"string","example":"profile","nullable":true,"description":"Valid placements for custom field"},"created_at":{"type":"string","format":"date-time","example":"2022-01-01T00:00:00Z","description":"Creation date of the custom field"},"description":{"type":"string","example":"Description of the custom field","nullable":true,"maxLength":140,"description":"Description of the custom field"}}}}}}}},"description":"Successful response"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Error message"}}}}},"description":"Internal Server Error"}},"parameters":[],"description":"Returns the list of custom field definitions configured for people within the organization. The response includes field metadata, not specific person field values. It provides definitions with people placement for supported types such as text, list, multiselect, number, percentage, currency, and date.\n\n **Token scopes**: `people:read`","operationId":"listAllPeopleCustomFields-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/eor/job-scopes/validate":{"post":{"path":"/rest/eor/job-scopes/validate","tags":["EOR"],"method":"post","summary":"Request job scope validation","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"Job scope contains restricted pronouns","description":"Message with error description"},"relevant_text":{"type":"string","example":"you","description":"Part of the scope that caused the error."}}},"example":[{"message":"Job scope contains restricted pronouns","relevant_text":"you"}],"description":"List of validation errors, if empty the validation was successfully."},"quote_validation_log_public_id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174002","description":"Id from validation request."},"data_for_corrected_job_scope_endpoint":{"type":"object","properties":{"anonymized_job_scope":{"type":"string","example":"Software development and maintenance.","nullable":true,"description":"Anonymized job scope."},"errors_for_correct_job_scope":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"Job scope contains restricted pronouns","description":"Message with error description"}}},"example":[{"message":"Job scope contains restricted pronouns"}],"description":"List of errors for corrected job scope."},"must_create_correct_job_scope":{"type":"boolean","example":true,"description":"Indicates if a corrected job scope is required."}},"description":"Data for corrected job scope endpoint."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string","example":"/data/type","description":"The JSON path where input validation failed"},"message":{"type":"string","example":"Must have required property 'example_field'","description":"A description of the returned error"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"code":{"type":"number","example":3,"description":"The code of the source handler which produced the returned error"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"AJV","description":"The source handler which produced the returned error"},"status":{"type":"number","example":400,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Validates a job scope description and returns any validation errors. When errors are present, the response also includes a `quote_validation_log_public_id` and pre-populated `data_for_corrected_job_scope_endpoint` to support subsequent correction.\n\n **Token scopes**: `contracts:write`","operationId":"requestJobScopeValidation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["employment_country","team_id","job_scope","job_title","employee_name","client_legal_entity_id"],"properties":{"team_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The ID of the team."},"job_scope":{"type":"string","example":"Software development and maintenance.","maxLength":10000,"minLength":100,"description":"The scope of the job."},"job_title":{"type":"string","example":"Software Engineer","description":"The title of the job."},"work_visa":{"type":"boolean","example":true,"description":"Indicates if a work visa is required."},"client_name":{"type":"string","example":"Acme Inc.","description":"Optional client name. The validation refuses a job scope if it includes the client name. If not provided, it will be inferred from the legal entity instead."},"employee_name":{"type":"string","example":"John Doe","description":"The name of the employee."},"special_job_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174001","nullable":true,"description":"The ID of the special job."},"employment_state":{"type":"string","example":"California","nullable":true,"description":"The state of employment."},"employment_country":{"type":"string","example":"US","description":"The country of employment."},"employee_nationality":{"type":"string","example":"Canadian","description":"The nationality of the employee."},"client_legal_entity_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174002","description":"The ID of the client's legal entity."}},"description":"details of job scope"}}}}},"required":true,"description":"Run job scope validation"},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/contracts/{contract_id}/documents":{"post":{"path":"/rest/contracts/{contract_id}/documents","tags":["Contracts"],"method":"post","summary":"Attach a file to contract","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","nullable":true,"required":["filename","key"],"properties":{"key":{"type":"string","nullable":false,"description":"You can call attachments end-point, get key and URL to upload your file."},"filename":{"type":"string","nullable":false,"description":"Original filename you used to upload using attachments end-point."}},"description":"This object is used for linking file attachments to your records."}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."}],"description":"Uploads a file and attaches it as a document to the specified contract by creating an amendment with the attachment. Only supported for ongoing_time_based, milestones, payg_tasks, time_based, pay_as_you_go_time_based, and eor contract types.\n\n **Token scopes**: `contracts:write`","operationId":"addContractDocument-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","nullable":false,"description":"Upload the file you want to attach to this entry."}},"description":"This is the file you will upload in a multi-part form."}}},"description":"A form to attach a file to contract document."},"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/onboarding/tracker/hris_profile/{hris_profile_id}":{"get":{"path":"/rest/onboarding/tracker/hris_profile/{hris_profile_id}","tags":["Onboarding"],"method":"get","summary":"Get onboarding details by employee HRIS profile ID","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"profile":{"type":"object","nullable":true,"properties":{"name":{"type":"string","example":"John Doo","description":"Name associated with the profile","x-sensitive-pii":true},"email":{"type":"string","format":"email","example":"test@email.com","description":"Email of the profile","x-sensitive-pii":true},"country":{"type":"string","example":"CA","nullable":true,"description":"Country code","x-sensitive-pii":true},"last_login":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","description":"Last login timestamp"},"previously_onboarded":{"type":"boolean","example":true,"description":"Indicates if the contractor has previously onboarded"}},"description":"Employee profile information"},"stepper":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"object","properties":{"meta":{"type":"object","properties":{"type":{"type":"string","example":"CONTRACTOR_INVITE_SIGN_UP","description":"Type of email"},"email":{"type":"string","format":"email","example":"test@email.com","description":"Email address","x-sensitive-pii":true},"sent_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","description":"Timestamp when the email was sent"}},"description":"Email metadata"}}},"description":"List of emails sent during the stepper process"},"next_reminder_date":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Next reminder date, if applicable"}}},"type":{"type":"string","example":"REMINDER_SENT","description":"Type of the stepper action"},"completed_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Completion timestamp of the stepper action"}},"description":"Stepper action information"},"description":"List of stepper actions taken during the onboarding process"},"summary":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"country":{"type":"string","example":"CA","description":"Country code for location-related summaries"},"timezone":{"type":"string","example":"Europe/Brussels","description":"Timezone information"},"has_withdraw_methods":{"type":"boolean","example":true,"description":"Indicates if withdrawal methods exist"}},"description":"Additional data about the summary item"},"name":{"type":"string","example":"Contract start date","description":"Name of the summary item"},"type":{"type":"string","example":"START_DATE","description":"Type of the summary item"},"value":{"anyOf":[{"type":"string","nullable":true},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time","nullable":true},{"type":"object","additionalProperties":true}],"example":"2021-07-14T22:00:00+00:00","description":"Value of the summary item"}},"description":"Summary item information"},"description":"Summary of the onboarding process"},"contract":{"type":"object","properties":{"id":{"type":"string","example":"PzpYaren","description":"Unique contract ID"},"oid":{"type":"string","example":"PzpYaren","description":"Contract OID"},"name":{"type":"string","example":"Contract Name","description":"Contract name"},"status":{"type":"string","example":"in_progress","description":"Contract status (e.g., in_progress)"},"created_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","description":"Contract creation timestamp"},"first_sign":{"type":"string","example":"client","description":"The first sign (either 'client' or 'contractor')"},"completion_date":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"The completion date of the contract, if applicable"},"client_signed_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Timestamp when the client signed the contract"},"employee_agreement":{"type":"object","properties":{"status":{"type":"string","example":"AwaitingEmployeeSignature","nullable":true,"description":"Status of the Employment Agreement. Can be null if the EA has not yet been generated"},"version_hash":{"type":"string","example":"cdf4f572eb13a5eaf46d","nullable":true,"description":"Version of the Employment Agreement. Can be null if the EA has not yet been generated"}},"description":"Information about the Employment Agreement"},"first_early_invoice":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"9r259RyjAnP7GeMpQnjAT","description":"Unique invoice ID"},"amount":{"type":"string","example":"100.00","description":"Invoice amount"},"status":{"enum":["OPEN","PENDING","SKIPPED","PREPROCESSING","PROCESSING","CREDITED","PROCESSED","PAID","FAILED","CANCELLED","REFUNDED","UNPAYABLE","AWAITING_PAYMENT"],"type":"string","example":"PENDING","description":"Status of the invoice"},"paid_at":{"type":"string","format":"date-time","example":"2026-03-01T00:00:00+00:00","nullable":true,"description":"Timestamp when the invoice was paid, if applicable"},"currency":{"type":"string","example":"EUR","description":"Currency code for the invoice amount"},"due_date":{"type":"string","format":"date-time","example":"2026-04-01T00:00:00.000Z","nullable":true,"description":"Due date for the invoice"},"description":{"type":"string","example":"EOR funding statement for February, 2026","description":"Invoice description"}},"description":"Only applicable for EOR contracts. First early invoice (EOR funding statement) for the contract, if any"},"contractor_signed_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Timestamp when the contractor signed the contract"},"invited_contractor_email":{"type":"string","format":"email","example":"test@email.com","nullable":true,"description":"Email of the invited contractor","x-sensitive-pii":true}},"description":"Information about the contract"},"progress":{"type":"object","properties":{"status":{"type":"string","example":"ACTIVE","description":"Current status of the onboarding process (e.g., ACTIVE)"},"reference_date":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","description":"Reference date for the progress"},"subject_to_overdue":{"type":"boolean","example":true,"description":"Indicates if the onboarding is subject to overdue"},"reference_date_timezone":{"type":"string","example":"Europe/Brussels","description":"Timezone of the reference date"},"is_action_required_from_client":{"type":"boolean","example":true,"description":"Indicates if action is required from the client"}},"description":"Progress of the onboarding process"},"checklist":{"type":"object","properties":{"steps":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"sign_up_to_deel","description":"The type of checklist step"},"label":{"type":"string","example":"Create contractor account","description":"The label for the checklist step"},"status":{"type":"string","example":"done","description":"Status of the checklist step"},"completed_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Completion timestamp of the checklist step"},"reject_reason":{"type":"string","example":"<p>Please submit the correct document for Form 145</p>","description":"Reason for rejecting the checklist step (It may contain HTML elements)"}},"description":"Checklist step information"},"description":"List of checklist steps"}},"description":"List of checklist steps"},"hiring_type":{"type":"string","example":"contractor","description":"Hiring type (e.g., contractor)"},"hris_profile":{"type":"object","properties":{"oid":{"type":"string","example":"150f635e-fae1-4b9d-9f86-768bbbac3698","description":"HRIS Profile OID"},"name":{"type":"string","example":"John Doo","description":"HRIS Profile name","x-sensitive-pii":true},"email":{"type":"string","format":"email","example":"test@email.com","description":"Email of the HRIS profile","x-sensitive-pii":true},"work_email":{"type":"string","format":"email","example":"test@email.com","nullable":true,"description":"Work email of the HRIS profile","x-sensitive-pii":true}},"description":"Employeee HRIS profile information"}}}}}}},"description":"Onboarding overview"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","type","message"],"properties":{"code":{"type":"string","example":"resource_not_found","description":"Machine-readable error code"},"type":{"type":"string","example":"invalid_request","description":"Error category"},"context":{"type":"object","description":"Additional error context","additionalProperties":true},"message":{"type":"string","example":"Onboarding not found","description":"Human-readable error message"}}},"description":"Error messages"}}}}},"description":"Not Found - No onboarding exists for the provided HRIS profile ID"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"hris_profile_id","schema":{"type":"string"},"example":"150f635e-fae1-4b9d-9f86-768bbbac3698","required":true,"description":"The unique identifier of the employee HRIS profile."}],"description":"Returns a worker's onboarding status by `hris_profile_id`.\n\n **Token scopes**: `contracts:read`, `people:read`","operationId":"getOnboardingDetailsByEmployeeHrisProfileId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/onboarding/tracker/{tracker_id}":{"get":{"path":"/rest/onboarding/tracker/{tracker_id}","tags":["Onboarding"],"method":"get","summary":"Get onboarding details by onboarding tracker ID","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"profile":{"type":"object","nullable":true,"properties":{"name":{"type":"string","example":"John Doo","description":"Name associated with the profile","x-sensitive-pii":true},"email":{"type":"string","format":"email","example":"test@email.com","description":"Email of the profile","x-sensitive-pii":true},"country":{"type":"string","example":"CA","description":"Country code","x-sensitive-pii":true},"last_login":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","description":"Last login timestamp"},"previously_onboarded":{"type":"boolean","example":true,"description":"Indicates if the contractor has previously onboarded"}},"description":"Employee profile information"},"stepper":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"emails":{"type":"array","items":{"type":"object","properties":{"meta":{"type":"object","properties":{"type":{"type":"string","example":"CONTRACTOR_INVITE_SIGN_UP","description":"Type of email"},"email":{"type":"string","format":"email","example":"test@email.com","description":"Email address","x-sensitive-pii":true},"sent_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","description":"Timestamp when the email was sent"}},"description":"Email metadata"}}},"description":"List of emails sent during the stepper process"},"next_reminder_date":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Next reminder date, if applicable"}}},"type":{"type":"string","example":"REMINDER_SENT","description":"Type of the stepper action"},"completed_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Completion timestamp of the stepper action"}},"description":"Stepper action information"},"description":"List of stepper actions taken during the onboarding process"},"summary":{"type":"array","items":{"type":"object","properties":{"data":{"type":"object","properties":{"country":{"type":"string","example":"CA","description":"Country code for location-related summaries"},"timezone":{"type":"string","example":"Europe/Brussels","description":"Timezone information"},"has_withdraw_methods":{"type":"boolean","example":true,"description":"Indicates if withdrawal methods exist"}},"description":"Additional data about the summary item"},"name":{"type":"string","example":"Contract start date","description":"Name of the summary item"},"type":{"type":"string","example":"START_DATE","description":"Type of the summary item"},"value":{"anyOf":[{"type":"string","nullable":true},{"type":"number"},{"type":"boolean"},{"type":"string","format":"date-time","nullable":true},{"type":"object","additionalProperties":true}],"example":"2021-07-14T22:00:00+00:00","description":"Value of the summary item"}},"description":"Summary item information"},"description":"Summary of the onboarding process"},"contract":{"type":"object","properties":{"id":{"type":"string","example":"PzpYaren","description":"Unique contract ID"},"oid":{"type":"string","example":"PzpYaren","description":"Contract OID"},"name":{"type":"string","example":"Contract Name","description":"Contract name"},"status":{"type":"string","example":"in_progress","description":"Contract status (e.g., in_progress)"},"created_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","description":"Contract creation timestamp"},"first_sign":{"type":"string","example":"client","description":"The first sign (either 'client' or 'contractor')"},"completion_date":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"The completion date of the contract, if applicable"},"client_signed_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Timestamp when the client signed the contract"},"employee_agreement":{"type":"object","properties":{"status":{"type":"string","example":"AwaitingEmployeeSignature","nullable":true,"description":"Status of the Employment Agreement. Can be null if the EA has not yet been generated"},"version_hash":{"type":"string","example":"cdf4f572eb13a5eaf46d","nullable":true,"description":"Version of the Employment Agreement. Can be null if the EA has not yet been generated"}},"description":"Information about the Employment Agreement"},"first_early_invoice":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"9r259RyjAnP7GeMpQnjAT","description":"Unique invoice ID"},"amount":{"type":"string","example":"100.00","description":"Invoice amount"},"status":{"enum":["OPEN","PENDING","SKIPPED","PREPROCESSING","PROCESSING","CREDITED","PROCESSED","PAID","FAILED","CANCELLED","REFUNDED","UNPAYABLE","AWAITING_PAYMENT"],"type":"string","example":"PENDING","description":"Status of the invoice"},"paid_at":{"type":"string","format":"date-time","example":"2026-03-01T00:00:00+00:00","nullable":true,"description":"Timestamp when the invoice was paid, if applicable"},"currency":{"type":"string","example":"EUR","description":"Currency code for the invoice amount"},"due_date":{"type":"string","format":"date-time","example":"2026-04-01T00:00:00.000Z","nullable":true,"description":"Due date for the invoice"},"description":{"type":"string","example":"EOR funding statement for February, 2026","description":"Invoice description"}},"description":"Applicable only for EOR contracts. First early invoice (EOR funding statement) for the contract, if any"},"contractor_signed_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Timestamp when the contractor signed the contract"},"invited_contractor_email":{"type":"string","format":"email","example":"test@email.com","nullable":true,"description":"Email of the invited contractor","x-sensitive-pii":true}},"description":"Information about the contract"},"progress":{"type":"object","properties":{"status":{"type":"string","example":"ACTIVE","description":"Current status of the onboarding process (e.g., ACTIVE)"},"reference_date":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","description":"Reference date for the progress"},"subject_to_overdue":{"type":"boolean","example":true,"description":"Indicates if the onboarding is subject to overdue"},"reference_date_timezone":{"type":"string","example":"Europe/Brussels","description":"Timezone of the reference date"},"is_action_required_from_client":{"type":"boolean","example":true,"description":"Indicates if action is required from the client"}},"description":"Progress of the onboarding process"},"checklist":{"type":"object","properties":{"steps":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"sign_up_to_deel","description":"The type of checklist step"},"label":{"type":"string","example":"Create contractor account","description":"The label for the checklist step"},"status":{"type":"string","example":"done","description":"Status of the checklist step"},"completed_at":{"type":"string","format":"date-time","example":"2021-07-14T22:00:00+00:00","nullable":true,"description":"Completion timestamp of the checklist step"},"reject_reason":{"type":"string","example":"<p>Please submit the correct document for Form 145</p>","description":"Reason for rejecting the checklist step (It may contain HTML elements)"}},"description":"Checklist step information"},"description":"List of checklist steps"}},"description":"List of checklist steps"},"hiring_type":{"type":"string","example":"contractor","description":"Hiring type (e.g., contractor)"},"hris_profile":{"type":"object","properties":{"oid":{"type":"string","example":"150f635e-fae1-4b9d-9f86-768bbbac3698","description":"HRIS Profile OID"},"name":{"type":"string","example":"John Doo","description":"HRIS Profile name","x-sensitive-pii":true},"email":{"type":"string","format":"email","example":"test@email.com","description":"Email of the HRIS profile","x-sensitive-pii":true},"work_email":{"type":"string","format":"email","example":"test@email.com","nullable":true,"description":"Work email of the HRIS profile","x-sensitive-pii":true}},"description":"Employeee HRIS profile information"}}}}}}},"description":"Onboarding overview"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"tracker_id","schema":{"type":"string"},"example":"eyJjb250cmFjdE9pZCI6IlB6cFlhcmVuIiwiaGlyaW5nVHlwZSI6ImNvbnRyYWN0b3IiLCJwcm9maWxlSWQiOjE2NzgyMCwidXNlcklkIjoxNDM3ODl9","required":true,"description":"The unique identifier of the onboarding tracker."}],"description":"Returns a worker's onboarding status by `tracker_id`.\n\n **Token scopes**: `contracts:read`, `people:read`","operationId":"getOnboardingDetailsByOnboardingTrackerId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/contracts/{contract_id}/timesheets":{"get":{"path":"/rest/contracts/{contract_id}/timesheets","tags":["Timesheets"],"method":"get","summary":"List of timesheets by contract","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","page"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","type","status","description","date_submitted","created_at","currency_code","total_amount","quantity","contract","worksheet","reported_by"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"type":{"type":"string","example":"work","description":"Deprecated - it is always \"work\""},"scale":{"type":"string","example":"hourly","nullable":true,"description":"Predefined scale used to calculate the timesheet amount (e.g. hourly, daily, custom)."},"status":{"enum":["approved","declined","new","not_payable","paid","pending","processing",null],"type":"string","example":"approved","nullable":true,"description":"Current processing status of the timesheet."},"contract":{"type":"object","required":["id","title","type"],"properties":{"id":{"type":"string","example":"abcdefg","nullable":false,"description":"Unique identifier of the contract."},"type":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","example":"ongoing_time_based","description":"Type of a contract"},"title":{"type":"string","example":"Senior Backend Engineer","nullable":false,"description":"Human-readable title of the contract."}},"description":"Contract associated with this timesheet."},"quantity":{"type":"number","example":8,"nullable":true,"description":"Quantity of work units (hours, days, etc.) used to calculate the total amount."},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","example":0,"minimum":0,"description":"Number of days reported."},"hours":{"type":"number","example":8,"minimum":0,"description":"Number of hours reported."},"weeks":{"type":"number","example":0,"minimum":0,"description":"Number of weeks reported."},"minutes":{"type":"number","example":0,"minimum":0,"description":"Number of minutes reported."}},"description":"Breakdown of time worked across different units."},"attachment":{"type":"object","nullable":true,"required":["filename","key"],"properties":{"key":{"type":"string","example":"attachments/timesheet_receipt.pdf","nullable":false,"description":"You can call attachments end-point, get key and URL to upload your file."},"filename":{"type":"string","example":"timesheet_receipt.pdf","nullable":false,"description":"Original filename you used to upload using attachments end-point."}},"description":"This object is used for linking file attachments to your records."},"created_at":{"type":"string","example":"2022-05-04T03:45:27.108Z","nullable":false,"description":"Timestamp when the timesheet was created (ISO-8601)."},"description":{"type":"string","example":"Backend development work for sprint 42","nullable":false,"description":"Human-readable description of the work performed."},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the reporting user."},"full_name":{"type":"string","example":"John Smith","nullable":false,"description":"Full name of the user who submitted the timesheet.","x-sensitive-pii":true}},"description":"User who submitted the timesheet."},"reviewed_by":{"type":"object","nullable":true,"required":["id","reviewed_at","remarks"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of the reviewer."},"remarks":{"type":"string","example":"Approved after verification","nullable":false,"description":"Reviewer remarks or decision notes."},"full_name":{"type":"string","example":"Jane Smith","description":"Full name of the reviewer.","x-sensitive-pii":true},"reviewed_at":{"type":"string","example":"2022-05-04T03:45:27.899Z","description":"Timestamp when the review occurred (ISO-8601)."}},"description":"Reviewer information if the timesheet has been reviewed."},"custom_scale":{"type":"string","example":"night_shift","nullable":true,"description":"Custom scale label defined by the client for non-standard billing rates."},"total_amount":{"type":"string","example":"200.0000","nullable":false,"description":"Total monetary value equal to quantity times rate of active work statement plus any bonus."},"currency_code":{"type":"string","example":"GBP","pattern":"^[A-Z]{3}$","nullable":true,"maxLength":3,"minLength":3,"description":"ISO 4217 currency code used for the amount."},"payment_cycle":{"type":"object","properties":{"end_date":{"type":"string","format":"date-time","example":"2022-05-31T23:59:59.999Z","nullable":true,"description":"End date of the payment cycle (ISO-8601)."},"start_date":{"type":"string","format":"date-time","example":"2022-05-01T00:00:00.000Z","nullable":true,"description":"Start date of the payment cycle (ISO-8601)."}},"description":"Payment cycle associated with this timesheet."},"date_submitted":{"type":"string","format":"date-time","example":"2022-05-24T03:45:27.899Z","nullable":true,"description":"Timestamp when the timesheet was submitted for review (ISO-8601)."},"hourly_report_preset":{"type":"object","nullable":true,"properties":{"id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","nullable":true,"description":"Unique identifier of the related timesheet preset."},"rate":{"type":"number","example":50,"nullable":true,"description":"Hourly rate of the related timesheet preset."},"title":{"type":"string","example":"Standard Rate","nullable":true,"description":"Title of the related timesheet preset."},"description":{"type":"string","example":"Default hourly rate for backend engineers","nullable":true,"description":"Description of the related timesheet preset."}},"description":"Timesheet preset linked to this entry, if any."}}},"description":"List of timesheet entries associated with the specified contract."},"page":{"type":"object","example":{"total_rows":100},"required":["total_rows"],"properties":{"total_rows":{"type":"number","example":100,"nullable":false,"description":"Total number of records available."}},"description":"Pagination metadata for the response."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"VALIDATION_ERROR","message":"Invalid query parameters"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"VALIDATION_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Invalid query parameters","description":"Human-readable description of the validation error."}}},"description":"Validation errors describing why the contract timesheets could not be listed."}}}}},"description":"Bad Request - Validation error or invalid parameters."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"ACCESS_DENIED","message":"Access denied"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"ACCESS_DENIED","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Access denied","description":"Human-readable description of why access was denied."}}},"description":"Errors describing why the contract timesheets could not be accessed."}}}}},"description":"Forbidden - The requester does not have access to the specified contract."},"404":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"NOT_FOUND","message":"Contract not found"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"NOT_FOUND","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"Contract not found","description":"Human-readable description of the not-found condition."}}},"description":"Errors describing why the contract could not be found."}}}}},"description":"Not Found - The specified contract does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","example":{"errors":[{"code":"GENERIC_ERROR","message":"An unexpected error occurred"}]},"required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"GENERIC_ERROR","description":"Machine-readable error code identifying the failure category."},"message":{"type":"string","example":"An unexpected error occurred","description":"Human-readable error message describing the unexpected condition."}}},"description":"Generic upstream or internal errors emitted when the contract timesheets cannot be listed."}}}}},"description":"Internal Server Error - The contract timesheets could not be listed due to an unexpected upstream or internal failure."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"abcdefg","required":true,"description":"Deel contract id."},{"in":"query","name":"contract_types","schema":{"type":"array","items":{"enum":["ongoing_time_based","milestones","time_based","pay_as_you_go_time_based","commission","payg_milestones","payg_tasks","eor","unknown","employee","global_payroll","shield_msa","hris_direct_employee","peo"],"type":"string","description":"Type of a contract"},"description":"List of contract types"},"example":"ongoing_time_based","description":"Filter results to timesheets associated with the specified contract types."},{"in":"query","name":"statuses","schema":{"type":"array","items":{"enum":["approved","declined","new","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"Current processing status of the timesheet."},"description":"List of statuses to filter by"},"example":"approved","description":"Filter results to timesheets with the specified statuses."},{"in":"query","name":"reporter_id","schema":{"type":"string","format":"uuid"},"example":"00000000-0000-0000-0000-000000000000","description":"Filter results to timesheets submitted by this user ID."},{"in":"query","name":"date_from","schema":{"type":"string","format":"date","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example 2022-12-31."},"example":"2022-12-31","description":"Filter results to timesheets submitted on or after this date (inclusive). Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},{"in":"query","name":"date_to","schema":{"type":"string","format":"date","nullable":true,"description":"Short date in format ISO-8601 (YYYY-MM-DD). For example 2022-12-31."},"example":"2022-12-31","description":"Filter results to timesheets submitted before this date (exclusive). Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},{"in":"query","name":"limit","schema":{"type":"string"},"example":"10","description":"Maximum number of records to return per page. NOTE: query parameters are passed as strings."},{"in":"query","name":"offset","schema":{"type":"string"},"example":"0","description":"Number of records to skip before starting to return results. NOTE: query parameters are passed as strings."}],"description":"Returns timesheets associated with the specified contract, with optional filtering by contract type, status, reporter, and date range.\n\n **Token scopes**: `timesheets:read`","operationId":"getTimesheetsByContract-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]}},"/screenings/manual-verification":{"post":{"path":"/rest/screenings/manual-verification","tags":["Screenings"],"method":"post","summary":"Create manual verification screening","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["request_id","created_at"],"properties":{"created_at":{"type":"string","format":"date-time","example":"2017-07-21T17:32:28Z","description":"Timestamp when screening was successfully received and processed (ISO 8601)"},"request_id":{"type":"string","example":"64rpWq2xQT225nGMQIaKg","description":"Unique request identifier"}}}}}}},"description":"Successful operation"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer","example":400},"message":{"type":"string","example":"Validation failed","description":"Human-readable error message"}}}}},"description":"Bad Request - Validation error"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","required":["code","message"],"properties":{"code":{"type":"integer","example":409},"message":{"type":"string","example":"There is an existing name change screening pending"}}}}},"description":"Conflict - There is an existing name change screening pending"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"description":"Creates a manual identity verification submission as a fallback when automated verification has failed multiple times or when the document's country of issue is not supported by the automated solution.\n\n **Token scopes**: `worker:write`","operationId":"createManualVerificationScreening-v2026-01-01","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","required":["operation_type","document_type","translation_required","front","selfie_with_id"],"properties":{"back":{"type":"string","format":"binary","description":"The back side of the document"},"front":{"type":"string","format":"binary","description":"The front side of the document"},"additional":{"type":"string","format":"binary","description":"An additional document"},"document_type":{"enum":["PASSPORT","DRIVING_LICENSE","GOVERNMENT_ID","OTHER"],"type":"string","example":"PASSPORT","description":"The type of document to be verified"},"operation_type":{"enum":["IDENTITY_RESUBMISSION_KYC","IDENTITY_VERIFICATION_KYC","NAME_CHANGE_KYC"],"type":"string","example":"IDENTITY_RESUBMISSION_KYC","description":"The type of KYC operation to perform"},"selfie_with_id":{"type":"string","format":"binary","description":"A selfie of the user holding the ID document"},"document_country":{"type":"string","example":"US","maxLength":2,"minLength":2,"description":"The issuing country code of the document to be verified (ISO 3166-1 alpha-2)"},"proof_of_residence":{"type":"string","format":"binary","description":"A proof of residence document"},"translation_required":{"type":"boolean","example":true,"description":"Indicates whether the document requires translation"}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/hris/worker_relations/profile/external/{profileId}":{"delete":{"path":"/rest/hris/worker_relations/profile/external/{profileId}","tags":["Worker Relations"],"method":"delete","summary":"Delete a worker relation by external id","responses":{"204":{"description":"Successfully deleted"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"profileId","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","required":true,"description":"Worker Relation external ID"}],"description":"Removes the worker relation identified by the given external ID. This operation removes all hierarchical associations (parent and child) linked to that relation.\n\n **Token scopes**: `profile:write`","operationId":"deleteWorkerRelationExternalId-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/ats/employment-types":{"get":{"path":"/rest/ats/employment-types","tags":["ATS"],"method":"get","summary":"Retrieve a list of ATS employment types","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","next_cursor","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","name","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-1234-567890abcdef","description":"Unique identifier for the employment type"},"name":{"type":"string","example":"Full-time","description":"Name of the employment type","x-sensitive-employment":true},"created_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","description":"Timestamp when the employment type was created"},"updated_at":{"type":"string","format":"date-time","example":"2023-01-01T00:00:00Z","description":"Timestamp when the employment type was last updated"}}},"description":"List of employment types"},"has_more":{"type":"boolean","example":false,"description":"Indicates if there are more employment types available"},"next_cursor":{"type":"string","example":null,"nullable":true,"description":"Cursor for pagination to get the next set of results"},"total_count":{"type":"integer","example":100,"minimum":0,"description":"Total number of employment types available"}}}}},"description":"Successful response with employment types data"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"cursor","schema":{"type":"string"},"example":"cursorValue","description":"The cursor for pagination"},{"in":"query","name":"limit","schema":{"type":"integer","format":"int32","default":20,"maximum":100,"minimum":1},"example":50,"description":"Maximum number of records returned in one response"}],"description":"Returns a paginated list of employment types available in the organization's ATS. Use it to resolve the employment type IDs required when creating a job and accepted by the `employment_type_ids` filter when listing jobs.\n\n **Token scopes**: `ats:read`","operationId":"retrieveAListOfAtsEmploymentTypes-v2026-01-01","security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/people/{id}/department":{"put":{"path":"/rest/people/{id}/department","tags":["People"],"method":"put","summary":"Update organization structure","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"type":"boolean","example":true,"description":"Indicates if the resource was updated successfully."}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"query","name":"replace_other_positions","schema":{"type":"boolean"},"example":"true","required":false,"description":"Indicates if this department position should replace all other positions or only append to the existing ones."},{"in":"path","name":"id","schema":{"type":"string"},"example":"00000000-0000-0000-0000-000000000000","required":true,"description":"Hris profile ID"}],"description":"Assigns a worker to a department by their HRIS profile ID. By default the new assignment appends to existing positions; set `replace_other_positions` to true to replace all current positions instead.\n\n **Token scopes**: `people:write`","operationId":"updateOrganizationStructure-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["department_id"],"properties":{"department_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"effective_date":{"type":"string","format":"date","example":"2024-01-15","description":"Effective date in YYYY-MM-DD format."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/v2/time_tracking/shifts/bulk-delete":{"post":{"path":"/rest/v2/time_tracking/shifts/bulk-delete","tags":["Time Tracking Shifts"],"method":"post","summary":"Delete multiple shifts by External ID","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["message"],"properties":{"message":{"type":"string","example":"Successfully deleted 3 shifts","description":"Success message indicating the number of shifts deleted"}}}}}}},"description":"Shifts deleted successfully"},"400":{"content":{"application/json":{"example":{"error":"Invalid external ID format or request is malformed."}}},"description":"Invalid external IDs provided or the request is malformed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"example":{"error":"One or more shifts not found."}}},"description":"One or more shifts with the given external IDs were not found."},"500":{"content":{"application/json":{"example":{"error":"An unexpected error occurred. Please try again later."}}},"description":"Internal server error while attempting to delete the shifts."}},"parameters":[],"description":"This endpoint deletes shifts using external IDs. Once deleted, the shifts will no longer be retrievable or editable.\n\n **Token scopes**: `time-tracking:write`","operationId":"deleteMultipleShiftsByExternalId-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["external_ids"],"properties":{"external_ids":{"type":"array","items":{"type":"string"},"example":["shift_123","shift_456","shift_789"],"description":"Array of shift external IDs to delete."}},"description":"Request data containing the external IDs of shifts to be deleted."}}}}},"description":"Request body to bulk delete shifts by their external IDs."},"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]}},"/gp/workers/{worker_id}/employee-information":{"patch":{"path":"/rest/gp/workers/{worker_id}/employee-information","tags":["Global Payroll"],"method":"patch","summary":"Update employee information","responses":{"202":{"content":{"application/json":{"schema":{}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"worker_id","schema":{"type":"string","format":"uuid","description":"Unique identifier for a worker in UUID format."},"example":"6f50539e-9f62-45d0-a42e-62a62fbb984a","required":true,"description":"Unique identifier for a worker in UUID format."}],"description":"Partially updates personal details, tax information, and employment-related fields for the GP worker.\n\n **Token scopes**: `people:write`","operationId":"updateEmployeeInformation-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"employee_number":{"type":"string","example":"100","description":"Employee's unique number."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/equity-amortizations":{"get":{"path":"/rest/equity-amortizations","tags":["Equity Tokens"],"method":"get","summary":"List equity grant expense amortization records","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","source_file_id","employee_number","hris_profile_id","grant_name","plan_name","award_type","grant_price","grant_date","employee_grant_number","fair_value_per_share","valuation_status","actual_performance_factor","estimated_performance_factor","total_estimated_shares_to_expense","total_estimated_expense","before_period_total_shares_accrued","before_period_total_expense_accrued","before_period_unamortized_shares","before_period_unamortized_expense","within_period_total_shares_accrued","within_period_total_expense_accrued","within_period_shares_vesting","within_period_expense_fv_of_shares_vesting","within_period_shares_exercised_released","within_period_expense_fv_of_shares_exercised_released","within_period_agg_grant_price_of_shares_exercised_in_period","within_period_shares_early_exercised_vested","within_period_expense_fv_of_shares_early_exercised_vested","within_period_agg_grant_price_of_shares_early_exercised_vested","period_end_life_to_date_total_shares_accrued","period_end_life_to_date_total_expense_accrued","period_end_unamortized_shares","period_end_unamortized_expense","period_end_weighted_avg_remaining_recognition_period","occurrence_index","row_hash","last_seen_dataset_id","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"The unique identifier of the record."},"row_hash":{"type":"string","example":"9f2c1a7e4b6d8f0a2c4e6b8d0f2a4c6e8b0d2f4a6c8e0b2d4f6a8c0e2b4d6f8a","description":"Hash of the reported values on this record. Compare it between syncs to detect a change without diffing every field."},"plan_name":{"type":"string","example":"2020 Stock Plan","description":"Equity plan name, as reported by the ingested file."},"award_type":{"type":"string","example":"Options (NQ)","description":"Award type (e.g. Restricted Stock - Standard), as reported by the ingested file."},"created_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was first ingested."},"grant_date":{"type":"string","format":"date","example":"2022-06-18","description":"Date the grant was issued, as reported by the ingested file.","x-sensitive-employment":true},"grant_name":{"type":"string","example":"06/18/2022 - NQSO - $4.7","description":"Grant name, as reported by the ingested file."},"updated_at":{"type":"string","format":"date-time","example":"2026-08-13T09:01:02.000Z","description":"Timestamp this record was last upserted, for incremental sync."},"grant_price":{"type":"number","example":4.7,"nullable":true,"description":"Strike/grant price per unit, as reported by the ingested file.","x-sensitive-employment":true},"source_file_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","description":"Identifier of the ingested Shareworks report file this record was last upserted from."},"employee_number":{"type":"string","example":"9001","description":"Shareworks employee number, as reported by the ingested file. The intended join key for this record. Some values are non-numeric for legacy or masked records.","x-sensitive-pii":true},"hris_profile_id":{"type":"integer","example":4821,"nullable":true,"description":"Matched HRIS profile id, if employee_number could be resolved to one. Null when unmatched, or when employee_number is non-numeric or blank.","x-sensitive-pii":true},"occurrence_index":{"type":"integer","example":1,"description":"Discriminates several records the source file reports for the same natural key. Starts at 1, in the order the rows appear in the file."},"valuation_status":{"type":"string","example":"Active","nullable":true,"description":"Valuation status (e.g. Approved, Do Not Expense), as reported by the ingested file."},"fair_value_per_share":{"type":"number","example":4.7,"nullable":true,"description":"Fair market value per share, as reported by the ingested file.","x-sensitive-employment":true},"last_seen_dataset_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f23456789012","nullable":true,"description":"Identifier of the most recent ingested dataset in which this record still appeared. Null for records ingested before dataset tracking began."},"employee_grant_number":{"type":"string","example":"ES-0001","description":"Shareworks grant number for this employee, as reported by the ingested file.","x-sensitive-pii":true},"total_estimated_expense":{"type":"number","example":4700,"nullable":true,"description":"Total estimated expense, as reported by the ingested file.","x-sensitive-employment":true},"actual_performance_factor":{"type":"number","example":5.5,"nullable":true,"description":"Actual performance factor applied, as reported by the ingested file. Sparsely populated (measured: 5 of 11,863 real rows).","x-sensitive-employment":true},"estimated_performance_factor":{"type":"number","example":5.5,"nullable":true,"description":"Estimated performance factor, as reported by the ingested file.","x-sensitive-employment":true},"within_period_shares_vesting":{"type":"number","example":1000,"nullable":true,"description":"Within Period > Shares Vesting, as reported by the ingested file.","x-sensitive-employment":true},"period_end_unamortized_shares":{"type":"number","example":1000,"nullable":true,"description":"Period End > Unamortized Shares, as reported by the ingested file.","x-sensitive-employment":true},"period_end_unamortized_expense":{"type":"number","example":4700,"nullable":true,"description":"Period End > Unamortized Expense, as reported by the ingested file.","x-sensitive-employment":true},"before_period_unamortized_shares":{"type":"number","example":1000,"nullable":true,"description":"Before Period > Unamortized Shares, as reported by the ingested file.","x-sensitive-employment":true},"before_period_unamortized_expense":{"type":"number","example":4700,"nullable":true,"description":"Before Period > Unamortized Expense, as reported by the ingested file.","x-sensitive-employment":true},"total_estimated_shares_to_expense":{"type":"number","example":4700,"nullable":true,"description":"Total estimated shares to expense, as reported by the ingested file.","x-sensitive-employment":true},"before_period_total_shares_accrued":{"type":"number","example":1000,"nullable":true,"description":"Before Period > Total Shares Accrued, as reported by the ingested file.","x-sensitive-employment":true},"within_period_total_shares_accrued":{"type":"number","example":1000,"nullable":true,"description":"Within Period > Total Shares Accrued, as reported by the ingested file.","x-sensitive-employment":true},"before_period_total_expense_accrued":{"type":"number","example":4700,"nullable":true,"description":"Before Period > Total Expense Accrued, as reported by the ingested file.","x-sensitive-employment":true},"within_period_total_expense_accrued":{"type":"number","example":4700,"nullable":true,"description":"Within Period > Total Expense Accrued, as reported by the ingested file.","x-sensitive-employment":true},"within_period_shares_exercised_released":{"type":"number","example":1000,"nullable":true,"description":"Within Period > Shares Exercised / Released, as reported by the ingested file.","x-sensitive-employment":true},"within_period_expense_fv_of_shares_vesting":{"type":"number","example":4700,"nullable":true,"description":"Within Period > Expense (Fair Value) of Shares Vesting, as reported by the ingested file.","x-sensitive-employment":true},"within_period_shares_early_exercised_vested":{"type":"number","example":1000,"nullable":true,"description":"Within Period > Shares Early Exercised Vested, as reported by the ingested file. Sparsely populated (measured: 13 of 11,863 real rows).","x-sensitive-employment":true},"period_end_life_to_date_total_shares_accrued":{"type":"number","example":1000,"nullable":true,"description":"Period End > Life-to-Date Total Shares Accrued, as reported by the ingested file.","x-sensitive-employment":true},"period_end_life_to_date_total_expense_accrued":{"type":"number","example":4700,"nullable":true,"description":"Period End > Life-to-Date Total Expense Accrued, as reported by the ingested file.","x-sensitive-employment":true},"period_end_weighted_avg_remaining_recognition_period":{"type":"number","example":1000,"nullable":true,"description":"Period End > Weighted Average Remaining Recognition Period, as reported by the ingested file.","x-sensitive-employment":true},"within_period_expense_fv_of_shares_exercised_released":{"type":"number","example":4700,"nullable":true,"description":"Within Period > Expense (Fair Value) of Shares Exercised / Released, as reported by the ingested file.","x-sensitive-employment":true},"within_period_expense_fv_of_shares_early_exercised_vested":{"type":"number","example":4700,"nullable":true,"description":"Within Period > Expense (Fair Value) of Shares Early Exercised Vested, as reported by the ingested file. Sparsely populated.","x-sensitive-employment":true},"within_period_agg_grant_price_of_shares_exercised_in_period":{"type":"number","example":4.7,"nullable":true,"description":"Within Period > Aggregate Grant Price of Shares Exercised in Period, as reported by the ingested file.","x-sensitive-employment":true},"within_period_agg_grant_price_of_shares_early_exercised_vested":{"type":"number","example":4.7,"nullable":true,"description":"Within Period > Aggregate Grant Price of Shares Early Exercised Vested, as reported by the ingested file. Sparsely populated.","x-sensitive-employment":true}}},"description":"Page of expense amortization records, one per grant occurrence."},"has_more":{"type":"boolean","example":false,"description":"Whether another page of results is available."},"next_cursor":{"type":"string","example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","nullable":true,"description":"Cursor for the next page. Null when has_more is false."}}}}},"description":"List equity grant expense amortization records returned successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Invalid cursor","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"validation_error","message":"Invalid cursor"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"unauthorized","message":"Unauthorized"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Insufficient permissions to view equity grant expense amortization records","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"forbidden","message":"Insufficient permissions to view equity grant expense amortization records"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — caller lacks the equities.view permission, or the caller's organization is not permitted to access this endpoint."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Not found","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"not_found","message":"Not found"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found — the requested resource does not exist."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"internal_server_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"cursor","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Internal server error","description":"Human-readable explanation"}},"additionalProperties":true},"example":[{"code":"internal_server_error","message":"Internal server error"}],"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":50,"maximum":100,"minimum":1},"example":50,"required":false,"description":"Maximum number of records to return in this page."},{"in":"query","name":"cursor","schema":{"type":"string","maxLength":2048},"example":"eyJzb3J0VmFsdWUiOiI5MDAxIiwiaWQiOiJhMWIyYzNkNC1lNWY2LTc4OTAtYWJjZC1lZjEyMzQ1Njc4OTAifQ==","required":false,"description":"Opaque pagination cursor returned as next_cursor by a previous response. Omit to fetch the first page."},{"in":"query","name":"employee_number","schema":{"type":"string","maxLength":64},"example":"9001","required":false,"description":"Only return records for this exact Shareworks employee number."},{"in":"query","name":"employee_grant_number","schema":{"type":"string","maxLength":100},"example":"ES-0001","required":false,"description":"Only return records for this exact Shareworks grant number."},{"in":"query","name":"grant_date_from","schema":{"type":"string","format":"date"},"example":"2026-01-01","required":false,"description":"Only return records with a grant_date on or after this date (inclusive), in YYYY-MM-DD format."},{"in":"query","name":"grant_date_to","schema":{"type":"string","format":"date"},"example":"2026-12-31","required":false,"description":"Only return records with a grant_date on or before this date (inclusive), in YYYY-MM-DD format."}],"description":"Retrieves the period-by-period amortization of share-based compensation expense per equity grant in an organization, as ingested from Shareworks. Use it to build an expense recognition schedule, or to forecast the expense still to be accrued on outstanding grants. Each record reflects the most recently ingested reporting period; earlier periods are overwritten, so this is not a period history. Requires the `equities.view` permission at the organization level.\n\n **Token scopes**: `equities:read`","operationId":"listEquityAmortizations-v2026-09-09","security":[{"deelToken":[]},{"oauth2":["equities:read"]}]}},"/ats/applications/{application_id}/feedbacks":{"get":{"path":"/rest/ats/applications/{application_id}/feedbacks","tags":["ATS"],"method":"get","summary":"List feedbacks for an application","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","next_cursor","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","status","created_at","reviewer","feedback_form"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the feedback record."},"status":{"enum":["SUBMITTED","NOT_SUBMITTED"],"type":"string","example":"SUBMITTED","description":"Submission status of the feedback."},"reviewer":{"type":"object","required":["participant_hris_organization_user_id"],"properties":{"reviewer_profile":{"type":"object","nullable":true,"properties":{"type":{"enum":["CLIENT","WORKER"],"type":"string","example":"CLIENT","description":"Participant type within the organization."},"country":{"type":"string","example":"US","nullable":true,"description":"ISO 3166-1 alpha-2 country code.","x-sensitive-employment":true},"pic_url":{"type":"string","example":"https://avatars.githubusercontent.com/u/12345678","nullable":true,"description":"Profile picture URL.","x-sensitive-pii":true},"full_name":{"type":"string","example":"Jane Smith","description":"Full name.","x-sensitive-pii":true},"job_title":{"type":"string","example":"Engineering Manager","nullable":true,"description":"Job title.","x-sensitive-employment":true},"last_name":{"type":"string","example":"Smith","description":"Last name.","x-sensitive-pii":true},"first_name":{"type":"string","example":"Jane","description":"First name.","x-sensitive-pii":true},"work_email":{"type":"string","format":"email","example":"jane.smith@example.com","nullable":true,"description":"Work email.","x-sensitive-pii":true},"hris_organization_user_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"HRIS organization user ID."}}},"participant_hris_organization_user_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"HRIS organization user ID of the reviewer."}},"description":"Reviewer who provided the feedback."},"created_at":{"type":"string","format":"date-time","example":"2026-05-30T14:00:00Z","description":"ISO 8601 datetime when the feedback record was created."},"stage_name":{"type":"string","example":"Technical Interview","nullable":true,"description":"Name of the interview plan stage."},"submitted_at":{"type":"string","format":"date-time","example":"2026-06-01T10:00:00Z","nullable":true,"description":"ISO 8601 datetime when the feedback was submitted."},"activity_type":{"type":"string","example":"interview","nullable":true,"description":"Type slug of the interview activity."},"feedback_form":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the feedback form."},"title":{"type":"string","example":"Technical Interview Scorecard","description":"Title of the feedback form."}},"description":"Feedback form template used for this feedback."},"form_responses":{"type":"array","items":{"type":"object","required":["question_type","question_text","answer"],"properties":{"answer":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{}},{"type":"object"}],"example":"Great communicator","description":"Answer value; shape varies by question type (string, number, array, or object)."},"question_text":{"type":"string","example":"How well did the candidate communicate?","description":"Text of the feedback form question."},"question_type":{"type":"string","example":"FreeText","description":"Type of the question field."}}},"nullable":true,"description":"Submitted form question/answer pairs from FormBuilder."},"overall_recommendation":{"type":"object","nullable":true,"properties":{"scale_title":{"type":"string","example":"Recommendation","nullable":true,"description":"Title of the feedback scale."},"scale_item_id":{"type":"string","format":"uuid","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","description":"Unique identifier of the selected feedback scale item."},"scale_item_label":{"type":"string","example":"Strong Yes","description":"Display label of the selected scale item."}},"description":"Overall recommendation selected by the reviewer."}}},"description":"Page of application feedbacks."},"has_more":{"type":"boolean","example":false,"description":"Whether more pages are available beyond the current page."},"next_cursor":{"type":"string","example":"eyJpZCI6IjEyMzQifQ==","nullable":true,"description":"Cursor to fetch the next page; null when there are no more pages."},"total_count":{"type":"integer","example":8,"description":"Total number of feedbacks for this application."}}}}},"description":"Paginated list of application feedbacks."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Forbidden. ATS is not enabled for this organization or insufficient permissions."},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"field":{"type":"string","example":"start_date","description":"Request field related to the error, if applicable"},"message":{"type":"string","example":"start_date is required","description":"Human-readable error message"}}},"description":"List of error objects"}}}}},"description":"Operation failed."}},"parameters":[{"in":"path","name":"application_id","schema":{"type":"string","format":"uuid"},"example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","required":true,"description":"Unique identifier of the application to retrieve feedbacks for."},{"in":"query","name":"status","schema":{"enum":["SUBMITTED","NOT_SUBMITTED"],"type":"string"},"example":"SUBMITTED","required":false,"description":"Filter feedbacks by submission status."},{"in":"query","name":"should_hide_sensitive_fields","schema":{"type":"boolean"},"example":true,"required":false,"description":"When true, form responses marked as sensitive are omitted from the response. Defaults to true."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJpZCI6IjEyMzQifQ==","required":false,"description":"Pagination cursor returned by a previous response."},{"in":"query","name":"limit","schema":{"type":"integer","maximum":100,"minimum":1},"example":30,"required":false,"description":"Maximum number of feedbacks to return per page."}],"description":"Returns a paginated list of feedbacks submitted for activities on the given application, including reviewer profiles, overall recommendations, and form responses.\n\n **Token scopes**: `ats:read`, `worker:read`","operationId":"listApplicationFeedbacks-v2026-07-02","security":[{"deelToken":[]},{"oauth2":["ats:read","worker:read"]}]}},"/eor/workers/contracts/{contract_id}/signatures":{"post":{"path":"/rest/eor/workers/contracts/{contract_id}/signatures","tags":["EOR"],"method":"post","summary":"Sign a contract ","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"created":{"type":"boolean"}}}}}}},"description":"Successful operation."},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"409":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","example":"Employment Agreement version mismatch.","description":"The error message"}}}},"request":{"type":"object","properties":{"url":{"type":"string","example":"/rest/v2/example","description":"The relative URL of the failed request"},"docs":{"type":"string","example":"https://developer.deel.com/reference/example","description":"A link to the official documentation for the requested endpoint resource"},"method":{"type":"string","example":"POST","description":"The HTTP method of the failed request"},"source":{"type":"string","example":"http","description":"The source handler which produced the returned error"},"status":{"type":"number","example":409,"description":"The status code of the response"},"api_req_id":{"type":"string","example":"00000000-0000-0000-0000-000000000000","description":"The request ID of the failed request"}}}}}}},"description":"Employment Agreement version mismatch."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"mryv8dx","required":true,"description":"The unique identifier of the employee contract."}],"description":"Signs a contract on behalf of the contractor, transitioning contract status to active and completing the contractor onboarding workflow.\n\n **Token scopes**: `worker:write`","operationId":"signAContract-v2026-01-01","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["signature"],"properties":{"version":{"type":"string","example":"cdf4f572eb13a5eaf46d","maxLength":20,"minLength":20,"description":"Optional version of the Employment Agreement to be signed. If informed and in the case of a mismatch, the API will return an error."},"signature":{"type":"string","example":"John Doe","minLength":2,"description":"Signature of employee."}}}}}}},"required":true},"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/legal-entities/{legal_entity_id}/registration-documents/{document_id}/files/{file_id}/download":{"get":{"path":"/rest/legal-entities/{legal_entity_id}/registration-documents/{document_id}/files/{file_id}/download","tags":["Documents"],"method":"get","summary":"Download Legal Entity Registration Document File","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["url"],"properties":{"url":{"type":"string","example":"https://files.example.com/doc.pdf?token=abc123","description":"Time-limited download URL. Expires shortly after issue, so fetch it rather than storing it."}}}}}}},"description":"Download URL issued successfully."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"validation_error","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"limit must be less than or equal to 100","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Bad request — invalid or missing parameters."},"401":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"unauthorized","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Unauthorized","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Unauthorized — missing or invalid authentication token."},"403":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"forbidden","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"Permission denied","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Forbidden — the token lacks access to this legal entity."},"404":{"content":{"application/json":{"schema":{"type":"object","required":["errors"],"properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"code":{"type":"string","example":"resource_not_found","maxLength":255,"description":"Machine-readable error code"},"field":{"type":"string","example":"limit","nullable":true,"description":"Field that caused the error, if applicable."},"message":{"type":"string","example":"File not found","description":"Human-readable explanation"}},"additionalProperties":true},"minItems":1,"description":"List of errors that occurred while processing the request."}}}}},"description":"Not found."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the legal entity."},{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of the document submission."},{"in":"path","name":"file_id","schema":{"type":"string","format":"uuid"},"example":"c106a26a-21bb-5538-8bf2-57095d1976c1","required":true,"description":"Public UUID of a file attached to the submission."}],"description":"Issues a time-limited download URL for one file attached to a submission. Use this to retrieve a document already on file — for an audit, or to re-file it in your own system. The URL expires shortly after it is issued, so fetch it rather than storing it; request a new one when it lapses.\n\n **Token scopes**: `legal-entity:read`","operationId":"downloadLegalEntityRegistrationDocumentFile-v2026-08-17","security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}}},"components":{"responses":{"ResponseBodyForApiError":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiErrorContainer"}}}},"ResponseBodyForGenericResultDeleted":{"description":"Successful operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenericResultDeleted"}}}}},"schemas":{"ApiErrorContainer":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/ApiErrorRequest"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/ApiError"}}}},"ApiErrorRequest":{"type":"object","properties":{"method":{"type":"string","description":"The HTTP method of the failed request","example":"POST"},"url":{"type":"string","description":"The relative URL of the failed request","example":"/rest/v2/example"},"status":{"type":"number","description":"The status code of the response","example":400},"api_req_id":{"type":"string","description":"The request ID of the failed request","example":"00000000-0000-0000-0000-000000000000"},"docs":{"type":"string","description":"A link to the official documentation for the requested endpoint resource","example":"https://developer.deel.com/reference/example"},"source":{"type":"string","description":"The source handler which produced the returned error","example":"AJV"},"code":{"type":"number","description":"The code of the source handler which produced the returned error","example":3}}},"ApiError":{"type":"object","properties":{"message":{"type":"string","description":"A description of the returned error","example":"Must have required property 'example_field'"},"path":{"type":"string","description":"The JSON path where input validation failed","example":"/data/"}}},"GenericResultDeleted":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","description":"Confirms the deletion.","nullable":false}}}}}},"securitySchemes":{"deelToken":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"## Authentication\nThe 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.\n\n```curl\ncurl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \\\n  -H 'Authorization: Bearer YOUR-TOKEN-HERE'\n```\n\n[Learn more about authentication](/api/authentication)"},"oauth2":{"type":"oauth2","description":"Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/","flows":{"authorizationCode":{"authorizationUrl":"https://auth.deel.com/authorize","tokenUrl":"https://auth.deel.com/tokens","scopes":{"accounting:read":"View payments and invoices in your organization.","accounting:write":"Create and edit payments and invoices.","candidates:read":"View candidates in your organization.","candidates:write":"Create, edit and delete candidates in your organization.","contracts:read":"View contracts in your organization.","contracts:write":"Create and amend contracts.","people:write":"Write worker's information such as profile, time-off and expense.","people:read":"Read worker's information such as profile, time-off and expenses.","profile:read":"Read Profile information such as name, email, phone","Users:read":"View information about people in Deel HR.","webhooks:read":"View webhooks in your organization.","webhooks:write":"Create and edit webhooks in your organization.","global-payroll:read":"View global payroll information about your employees.","global-payroll:write":"Write global payroll information about your employees.","adjustments:write":"Create / update adjustments of your employee.","adjustments:read":"View adjustments of your employee.","invoice-adjustments:read":"View invoices of your workforce.","invoice-adjustments:write":"Create, edit, review, and delete invoice adjustments.","milestones:read":"View milestones of your contractors.","milestones:write":"Create, edit, review, and delete milestones.","organizations:read":"View basic information about your organizations, teams, legal entities and agreements.","organizations:write":"Modify information in your organization. Create, edit, delete admin users or managers.","off-cycle-payments:read":"View your off-cycle payments.","off-cycle-payments:write":"Create, edit, review your off-cycle payments.","timesheets:read":"View work submitted for time-based contracts.","timesheets:write":"Create, edit, review, and delete timesheets.","tasks:read":"View your pay-as-you-go tasks.","tasks:write":"Create, edit, review and delete your pay-as-you-go tasks.","payslips:read":"View employee payslips.","payslips:write":"Create, edit, review and delete employee payslips.","public-token:write":"Create, edit, review and delete public tokens.","profile:write":"Write Profile information such as name, email, phone"}}}},"public":{"type":"oauth2","description":"public token","flows":{"authorizationCode":{"authorizationUrl":"","tokenUrl":"https://api.deel.com/rest/v1/public-tokens","scopes":{"contracts:read":"View contracts in your organization."}}}}}}}