{"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/v2","description":"Production server"},{"url":"https://api-sandbox.demo.deel.com/rest/v2","description":"Demo server"}],"tags":[{"name":"Accounting","description":"End-points to retrieve paid invoices and receipts.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Custom Fields","description":"End-points to retrieve custom fields.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Positions","description":"End-points to retrieve HRIS positions.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Organization structure","description":"End-points to retrieve HRIS organization structure.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Time Off","description":"End-points to retrieve Time-Offs related data like policies, timeOffs, entitlements.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Groups","description":"End-points to retrieve Groups related data.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"EOR","description":"Employee of Record (EOR).","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Global Payroll","description":"Global Payroll","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Contractors","description":"The Contracts resource lets you create, amend and, retrieve Deel contracts.","externalDocs":{"description":"See","url":"https://developer.deel.com/rest/v2/#contracts"}},{"name":"Contracts","description":"The Contracts resource lets you create, amend and, retrieve Deel contracts.","externalDocs":{"description":"See","url":"https://developer.deel.com/rest/v2/#contracts"}},{"name":"Hris","description":"API end-points related to HRIS data.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Invoices","description":"The Invoices resource lets you create, amend and retrieve invoices related to Deel contracts.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Legal Entities","description":"The Legal Entities resource lets you manage your legal entities","externalDocs":{"description":"See","url":"https://developer.deel.com/rest/v2/#legalentities"}},{"name":"Lookups","description":"Helper end-points for choosing options for other operations","externalDocs":{"description":"See","url":"https://developer.deel.com/rest/v2/#lookups"}},{"name":"Milestones","description":"Helper end-points for managing milestones of Deel contracts","externalDocs":{"description":"See","url":"https://developer.deel.com/rest/v2/#milestones"}},{"name":"Off-cycle Payments","description":"End-points to manage off-cycle payments for a given contract","externalDocs":{"description":"See","url":"https://developer.deel.com/rest/v2/#off-cycle-payments"}},{"name":"Organizations","description":"Helper end-points for additional information about your organizations","externalDocs":{"description":"See","url":"https://developer.deel.com/rest/v2/#organizations"}},{"name":"Tasks","description":"End-points to manage tasks for a given contract","externalDocs":{"description":"See","url":"https://developer.deel.com/rest/v2/#tasks"}},{"name":"Teams","description":"Helper end-points for additional information about your teams","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Timesheets","description":"The Invoices resource lets you create, amend and retrieve timesheets of Deel contracts.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Time Tracking Shifts","description":"API endpoints related to Time Tracking Shifts data.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Time Tracking Rates","description":"API endpoints related to Time Tracking Rates data.","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":"Managers","description":"API end-points related to Manager data.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"People","description":"API end-points related to People data.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Partner Managed","description":"API end-points related to Partner Managed data.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Adjustments","description":"API end-points related to Adjustments data.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Token","description":"End-points to generate temporary tokens to use with embedded Deel SDK components.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Webhooks","description":"End-points to manage webhooks for Deel events. Webhooks are used to notify your application about events that happen in Deel.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Carta","description":"End-points to manage Carta data.","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":"Background Checks","description":"API endpoints related to Background Checks.","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":"Deel As a Service","description":"API endpoints related to Deel As a Service.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Employees","description":"API endpoints related to Employees.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Enrollments","description":"API endpoints related to Enrollments.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Equity","description":"API endpoints related to Equity.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"HrisPosition","description":"API endpoints related to HrisPosition.","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":"Integrations","description":"API endpoints related to Integrations.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Loans","description":"API endpoints related to Loans.","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":"Onboarding","description":"API endpoints related to Onboarding.","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":"Payroll","description":"API endpoints related to Payroll.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Paystubs","description":"API endpoints related to Paystubs.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Plans 401K","description":"API endpoints related to Plans 401K.","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":"Screenings","description":"API endpoints related to Screenings.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"User","description":"API endpoints related to User.","externalDocs":{"description":"See","url":"https://developer.deel.com"}},{"name":"Workers","description":"API endpoints related to Workers.","externalDocs":{"description":"See","url":"https://developer.deel.com"}}],"paths":{"/webhooks":{"get":{"operationId":"getAllWebhooks","summary":"List of webhooks","description":"Retrieve a list of webhook subscriptions.","tags":["Webhooks"],"security":[{"deelToken":[]},{"oauth2":["webhooks:read"]}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookListResponse"}}}},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"405":{"$ref":"#/components/responses/ResponseBodyForApiError"},"429":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}}},"post":{"operationId":"createWebhook","summary":"Create a webhook","description":"Create a new webhooks subscription.","tags":["Webhooks"],"security":[{"deelToken":[]},{"oauth2":["webhooks:write"]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWebhookRequest"}}}},"responses":{"201":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookItemResponse"}}}},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"405":{"$ref":"#/components/responses/ResponseBodyForApiError"},"429":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}}}},"/webhooks/{id}":{"get":{"operationId":"WebhookController_getById","summary":"Retrieve a single webhook","description":"Retrieve a single webhook subscription.","tags":["Webhooks"],"security":[{"deelToken":[]},{"oauth2":["webhooks:read"]}],"parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookItemResponse"}}}},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"405":{"$ref":"#/components/responses/ResponseBodyForApiError"},"429":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}}},"patch":{"operationId":"WebhookController_editById","summary":"Edit a webhook","description":"Edit a webhook subscription.","tags":["Webhooks"],"security":[{"deelToken":[]},{"oauth2":["webhooks:write"]}],"parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PatchWebhookRequest"}}}},"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookItemResponse"}}}},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"405":{"$ref":"#/components/responses/ResponseBodyForApiError"},"429":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}}},"delete":{"operationId":"WebhookController_deleteById","summary":"Delete a webhook","description":"Delete a webhook subscription.","tags":["Webhooks"],"security":[{"deelToken":[]},{"oauth2":["webhooks:write"]}],"parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"$ref":"#/components/responses/ResponseBodyForGenericResultDeleted"},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"405":{"$ref":"#/components/responses/ResponseBodyForApiError"},"429":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}}}},"/webhooks/events/types":{"get":{"operationId":"getAllWebhookEventTypes","summary":"List of webhook event types","description":"Retrieve a list of webhook event types.","tags":["Webhooks"],"security":[{"deelToken":[]},{"oauth2":["webhooks:read"]}],"responses":{"200":{"description":"successful operation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookEventTypeListResponse"}}}},"400":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"405":{"$ref":"#/components/responses/ResponseBodyForApiError"},"429":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}}}},"/eor/workers/resignations":{"get":{"tags":["EOR"],"summary":"Retrieve worker resignations","operationId":"retrieveWorkerResignations","description":"Returns resignations submitted by EOR workers, optionally filtered by resignation letter status.\n **Token scopes**: `worker:read`","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":["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"}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/contracts/amendments/data-points/configuration":{"get":{"tags":["EOR"],"summary":"Get amendment data points configuration by country","operationId":"getAmendmentDataPointsConfigurationByCountry-v2026-05-06","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 **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/time_offs":{"get":{"tags":["Time Off"],"summary":"List time-off requests for Organization","operationId":"listTimeOffRequestsForOrganization","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 **Token scopes**: `time-off:read`","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"},"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"},"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"],"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"},"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":{"$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":"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":"next","schema":{"type":"string"},"example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"Next page"}],"security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]},"post":{"tags":["Time Off"],"summary":"Create time-off request","operationId":"createTimeOffRequest-v2026-01-01","description":"Creates a new time-off request for a worker.\n **Token scopes**: `time-off:write`, `worker:write`","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"],"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."},"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."},"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"],"type":"string","example":"WORKING_DAY","description":"Type of the time off daily. Can be WORKING_DAY, NON_WORKING_DAY or HOLIDAY."},"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":"object","properties":{"message":{"type":"string","example":"There is already a time-off for the dates 2026-03-05 and 2026-03-05","description":"Error message describing what went wrong"}},"description":"Error details"},"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":{"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":"object","properties":{"message":{"type":"string","example":"You do not have permission to access this resource","description":"Error message describing what went wrong"}},"description":"Error details"},"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":{"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":"object","properties":{"message":{"type":"string","example":"HrisProfile not found","description":"Error message describing what went wrong"}},"description":"Error details"},"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":{"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":[],"security":[{"deelToken":[]},{"oauth2":["time-off:write","worker:write"]}],"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":{"oneOf":[{"type":"string","format":"date","example":"2025-05-13","description":"An specific date in the time-off request"},{"type":"string","format":"date-time","example":"2025-05-13T00:00:00Z","description":"An specific date in the time-off request. Please note that only the date (YYYY-MM-DD) part will be used."}],"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 the Approve/Reject time off api."},"is_paid":{"type":"boolean","example":false,"description":"Whether the time off is paid or unpaid. By default it follows the policy configuration."},"end_date":{"oneOf":[{"type":"string","format":"date","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."},{"type":"string","format":"date-time","example":"2021-08-02T00:00:00Z","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. Please note that only the date (YYYY-MM-DD) part will be used."}],"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":{"oneOf":[{"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."},{"type":"string","format":"date-time","example":"2021-08-01T00:00:00Z","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. Please note that only the date (YYYY-MM-DD) part will be used."}],"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":{"oneOf":[{"type":"string","format":"date","example":"2025-05-13","description":"An specific date in the time-off request"},{"type":"string","format":"date-time","example":"2025-05-13T00:00:00Z","description":"An specific date in the time-off request. Please note that only the date (YYYY-MM-DD) part will be used."}],"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 the Approve/Reject time off api."},"is_paid":{"type":"boolean","example":false,"description":"Whether the time off is paid or unpaid. By default it follows the policy configuration."},"end_date":{"oneOf":[{"type":"string","format":"date","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."},{"type":"string","format":"date-time","example":"2021-08-02T00:00:00Z","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. Please note that only the date (YYYY-MM-DD) part will be used."}],"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":{"oneOf":[{"type":"string","format":"date","example":"2021-08-02","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."},{"type":"string","format":"date-time","example":"2021-08-02T00:00:00Z","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. Please note that only the date (YYYY-MM-DD) part will be used."}],"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"}}},"/onboarding/tracker":{"get":{"tags":["Onboarding"],"summary":"List onboarding employees","operationId":"listOnboardingEmployees-v2026-01-01","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 **Token scopes**: `contracts:read`, `people:read`","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","description":"The unique identifier for the contract"},"effective_date":{"type":"string","format":"date","example":"2021-07-14","description":"The effective date of the 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)"}],"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,"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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/eor/{contract_id}/benefits":{"get":{"tags":["EOR"],"summary":"Retrieve Benefits for EOR Contract","operationId":"getEORContractBenefits","description":"Returns benefits associated with the specified EOR contract.\n **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/details":{"get":{"tags":["EOR"],"summary":"Retrieve EOR Contract Details","operationId":"retrieveEorContractDetails-v2026-01-01","description":"Returns basic contract information and associated employment costs for a specific EOR contract.\n **Token scopes**: `contracts:read`","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."},"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"},"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."},"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."},"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."},"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."},"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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/ic/workers/invoices/{invoice_id}":{"get":{"tags":["Workers"],"summary":"Get invoice details by ID","operationId":"getInvoiceDetailsById-v2026-04-27","description":"This endpoint retrieves invoice information by ID. Use it to access detailed invoice data for reference or verification.\n **Token scopes**: `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/offboarding/tracker/hris_profile/{oid}":{"get":{"tags":["Offboarding"],"summary":"Retrieve termination details by HRIS profile identifier","operationId":"retrieveTerminationDetailsByHrisProfileIdentifier-v2026-01-01","description":"Returns termination details for a contract identified by its HRIS profile `oid`.\n **Token scopes**: `contracts:read`, `people:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/legal-entities/{legal_entity_id}/cost-centers/synchronize":{"post":{"tags":["Cost Centers"],"summary":"Sync cost centers for legal entity","operationId":"syncCostCentersForLegalEntity-v2026-01-01","description":"Update legal entity cost center's data to replicate the data provided on the request\n **Token scopes**: `legal-entity:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["legal-entity:write"]}],"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"}}},"/ic/workers/transactions":{"get":{"tags":["Workers"],"summary":"Retrieve worker transaction history","operationId":"retrieveWorkerTransactionHistory-v2026-04-30","description":"Use this endpoint to access a worker's transaction history quickly. This integration works with white-label clients and ensures compliance by not following the generic contractor route\n **Token scopes**: `worker:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data","has_more","total_count"],"properties":{"data":{"type":"array","items":{"type":"object","required":["id","created_at"],"properties":{"id":{"type":"string","example":"aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee","description":"Unique identifier of this resource (public transaction id)."},"amount":{"type":"string","example":"10.00","nullable":true,"description":"Transaction amount."},"status":{"type":"string","example":"PAID","description":"Transaction status."},"currency":{"type":"string","example":"USD","pattern":"^[A-Z]{3}$","nullable":false,"maxLength":3,"minLength":3,"description":"Three-letter currency code."},"created_at":{"type":"string","format":"date-time","example":"2022-05-24T09:38:46.235Z","nullable":false,"description":"Date and time when the transaction was created (ISO-8601)."}},"description":"One contractor transaction; `id` is the public transaction UUID.","additionalProperties":true},"description":"Transaction rows for this page.","x-sensitive-pii":true,"x-sensitive-employment":true},"has_more":{"type":"boolean","example":true,"nullable":false,"description":"Whether another page exists after this one."},"next_cursor":{"type":"string","example":"eyJsaW1pdCI6MTAwLCJ0aW1lc3RhbXAiOiIyMDIyLTA1LTI0VDA5OjM4OjQ","nullable":true,"description":"Opaque cursor for the next page; null when there is no next page. Pass this value as the `cursor` query parameter to request the following page."},"total_count":{"type":"integer","example":42,"minimum":0,"nullable":false,"description":"Total number of transactions matching server-side filters for this request (ignores pagination). If `statuses` is provided, that filter is applied in memory to listed rows only, so this count may be higher than the rows returned across all pages."}}}}},"description":"Successful operation — paginated contractor transactions."},"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"},"details":{"type":"object","description":"Optional structured details","additionalProperties":true},"message":{"type":"string","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","description":"Machine-readable error code"},"field":{"type":"string","description":"JSON pointer to the invalid field"},"details":{"type":"object","description":"Optional structured details","additionalProperties":true},"message":{"type":"string","description":"Human-readable explanation of the error"}}},"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","description":"Machine-readable error code"},"field":{"type":"string","description":"JSON pointer to the invalid field"},"details":{"type":"object","description":"Optional structured details","additionalProperties":true},"message":{"type":"string","description":"Human-readable explanation of the error"}}},"minItems":1},"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 (not allowed for this worker or token)."},"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"},"details":{"type":"object","description":"Optional structured details","additionalProperties":true},"message":{"type":"string","description":"Human-readable explanation of the error"}}},"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","description":"Machine-readable error code"},"field":{"type":"string","description":"JSON pointer to the invalid field"},"details":{"type":"object","description":"Optional structured details","additionalProperties":true},"message":{"type":"string","description":"Human-readable explanation of the error"}}},"minItems":1}}}}},"description":"Internal server error."}},"parameters":[{"in":"query","name":"limit","schema":{"type":"integer","default":100,"maximum":1000,"minimum":1},"example":100,"required":false,"description":"Maximum number of transactions to return in this page (page size)."},{"in":"query","name":"filter","schema":{"enum":["ALL","ONLY_PROCESSING","WITHOUT_PROCESSING"],"type":"string","default":"ALL"},"example":"ALL","required":false,"description":"Subset of transactions by processing state. Public enum is UPPER_SNAKE; the server lowercases for validation (legacy lowercase query values are still accepted)."},{"in":"query","name":"from","schema":{"type":"string","format":"date-time"},"example":"2024-01-01T00:00:00.000Z","required":false,"description":"Lower bound on transaction `created_at` (inclusive), ISO-8601 date-time."},{"in":"query","name":"to","schema":{"type":"string","format":"date-time"},"example":"2024-12-31T23:59:59.999Z","required":false,"description":"Upper bound on transaction `created_at` (inclusive), ISO-8601 date-time."},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJsaW1pdCI6MTAwLCJ0aW1lc3RhbXAiOiIyMDIyLTA1LTI0VDA5OjM4OjQ2LjIzNVoiLCJsYXN0SWQiOjEyMzQ1fQ==","required":false,"description":"Opaque pagination cursor from the previous response field `next_cursor`. Omit on the first page; pass the last `next_cursor` value as `cursor` to fetch the next page."},{"in":"query","name":"statuses","schema":{"type":"array","items":{"type":"string"}},"example":["paid","pending"],"required":false,"description":"Filter listed transactions to these mapped status values (applied after fetch; may affect how rows align with `total_count`)."},{"in":"query","name":"amount_from","schema":{"type":"number","minimum":0},"example":0,"required":false,"description":"Minimum transaction amount to include."},{"in":"query","name":"amount_to","schema":{"type":"number","minimum":0},"example":5000.5,"required":false,"description":"Maximum transaction amount to include."},{"in":"query","name":"currencies","schema":{"type":"array","items":{"type":"string"}},"example":["USD","EUR"],"required":false,"description":"Only include transactions in one of these currency codes."},{"in":"query","name":"transaction_type","schema":{"enum":["PAY_IN","PAY_OUT"],"type":"string"},"example":"PAY_OUT","required":false,"description":"Restrict to pay-in or pay-out. Public enum is UPPER_SNAKE; the server lowercases for validation (legacy lowercase query values are still accepted)."},{"in":"query","name":"withdrawal_methods","schema":{"type":"array","items":{"type":"string"}},"example":["bank_transfer"],"required":false,"description":"Filter by withdrawal / payout method identifiers."},{"in":"query","name":"last_days","schema":{"type":"integer"},"example":30,"required":false,"description":"Only include transactions created in the last N days."},{"in":"query","name":"type","schema":{"type":"string","maxLength":100},"example":"bonus","required":false,"description":"Additional transaction type filter (backend-specific string)."},{"in":"query","name":"include_running_total","schema":{"type":"boolean","default":false},"example":false,"required":false,"description":"When true, each row may include a running total over the result set."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/immigration/workers/cases/{case_id}":{"get":{"tags":["Immigration"],"summary":"Get specific immigration case details ","operationId":"getSpecificImmigrationCaseDetails-v2026-04-02","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 **Token scopes**: `worker:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/cycles/{cycle_id}/payroll-report":{"get":{"tags":["Global Payroll"," Payroll"," Payroll Report"],"summary":"Get Payroll Report","operationId":"getPayrollReport-v2026-01-01","description":"Get payroll report data for a payroll cycle, including available columns, employee row values, and optional previous report items. Use this response to discover payroll_report_column_id and payroll_id before updating entries.\n **Token scopes**: `global-payroll:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["employment_payroll_events","event_entity_items","count"],"properties":{"count":{"type":"integer","example":1,"description":"Number of rows returned."},"cursor":{"oneOf":[{"type":"string","nullable":true},{"type":"number","nullable":true}],"example":"cursor_123","description":"Cursor for pagination."},"overview":{"type":"object","example":{},"nullable":true,"description":"Optional aggregated overview for the report."},"event_entity_items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"c57dde3d84d9640b09530582c7be34","description":"Column id."},"type":{"type":"string","example":"earnings","description":"Column type."},"label":{"type":"string","example":"Gross Salary","description":"Display label."},"scope":{"type":"string","example":"EMPLOYMENT","description":"Column scope."},"status":{"type":"string","example":"ACTIVE","description":"Column status."},"tooltip":{"type":"string","example":"Monthly gross salary","nullable":true,"description":"Tooltip text."},"countries":{"type":"array","items":{"type":"string"},"example":["US"],"description":"Countries where column applies."},"is_global":{"type":"boolean","example":false,"description":"Whether column is global."},"created_at":{"type":"string","format":"date-time","example":"2026-03-18T12:00:00.000Z","description":"Creation time."},"item_order":{"type":"integer","example":1,"description":"Ordering index."},"updated_at":{"type":"string","format":"date-time","example":"2026-03-18T12:00:00.000Z","description":"Last update time."},"description":{"type":"string","example":"Total gross salary","nullable":true,"description":"Column description."},"system_name":{"type":"string","example":"gross_salary","nullable":true,"description":"System name."},"deel_enabled":{"type":"boolean","example":true,"description":"Whether enabled for Deel."},"is_adjustable":{"type":"boolean","example":true,"description":"Whether item is adjustable."},"appears_on_g2n":{"type":"boolean","example":true,"description":"Whether appears on G2N."},"client_enabled":{"type":"boolean","example":true,"description":"Whether enabled for clients."},"unit_of_measure":{"type":"string","example":"CURRENCY","nullable":true,"description":"Unit of measure."},"can_be_recurring":{"type":"boolean","example":true,"description":"Whether item can recur."},"employer_cost_type":{"type":"string","example":"TAX","nullable":true,"description":"Employer cost type."},"add_to_employer_cost":{"type":"boolean","example":true,"description":"Whether adds to employer cost."},"included_in_g2n_report":{"type":"boolean","example":true,"description":"Whether included in G2N report."},"payroll_legal_entity_id":{"type":"integer","example":456,"nullable":true,"description":"Payroll legal entity id."},"is_recurring_in_offcycle":{"type":"boolean","example":false,"description":"Whether recurring in offcycle."},"appears_on_recurring_items":{"type":"boolean","example":true,"description":"Whether appears on recurring items."},"client_payroll_report_label":{"type":"string","example":"Client Gross Salary","nullable":true,"description":"Client-facing label."},"supported_in_payroll_report":{"type":"boolean","example":true,"description":"Whether supported in payroll report."},"payroll_report_sub_category_id":{"type":"string","example":"subcat_123","nullable":true,"description":"Sub-category id."},"adjustment_payroll_report_column_id":{"type":"string","example":"adj_col_123","nullable":true,"description":"Adjustment column id."}}},"description":"Column definitions available for update."},"employment_payroll_events":{"type":"array","items":{"type":"object","properties":{"contract":{"type":"object","properties":{"id":{"type":"integer","example":12345,"description":"Internal contract id."},"oid":{"type":"string","example":"ctr_abc123","description":"Public contract identifier."},"status":{"type":"string","example":"active","nullable":true,"description":"Contract status.","x-sensitive-employment":true},"hris_profile":{"type":"object","properties":{"oid":{"type":"string","example":"hris_profile_123","description":"HRIS profile identifier."}},"description":"HRIS profile details."},"contract_type":{"type":"string","example":"employee","nullable":true,"description":"Contract type.","x-sensitive-employment":true},"completion_date":{"type":"string","format":"date-time","example":"2026-03-18T12:00:00.000Z","nullable":true,"description":"Contract completion date.","x-sensitive-employment":true}},"description":"Contract details for the employee."},"employment":{"type":"object","properties":{"employee":{"type":"object","properties":{"last_name":{"type":"string","example":"Doe","nullable":true,"description":"Last name.","x-sensitive-employment":true},"first_name":{"type":"string","example":"Jane","nullable":true,"description":"First name.","x-sensitive-employment":true},"middle_name":{"type":"string","example":"Q","nullable":true,"description":"Middle name.","x-sensitive-employment":true}},"description":"Employee name details."},"employment_id":{"type":"string","example":"employment_123","nullable":true,"description":"Employment id."},"employee_status":{"type":"string","example":"ACTIVE","nullable":true,"description":"Employee status.","x-sensitive-employment":true},"employee_recurring_items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"pri_recurring_123","description":"Recurring item id."},"amount":{"oneOf":[{"type":"string"},{"type":"number"}],"example":"100.00","description":"Recurring item amount."},"unit_of_measure":{"type":"string","example":"CURRENCY","nullable":true,"description":"Unit of measure."},"payroll_report_column":{"type":"object","example":{"id":"c57dde3d84d9640b09530582c7be34"},"description":"Payroll report column details."},"payroll_report_column_id":{"type":"string","example":"c57dde3d84d9640b09530582c7be34","description":"Payroll report column id."}}},"description":"Recurring payroll items for the employee."}}},"payroll_report_items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"pri_123","description":"Payroll report item id."},"value":{"type":"string","example":"2500.00","nullable":true,"description":"Item value."},"source":{"type":"string","example":"MANUAL","nullable":true,"description":"Value source."},"qtd_value":{"type":"string","example":"6000.00","nullable":true,"description":"Quarter-to-date value."},"ytd_value":{"type":"string","example":"12000.00","nullable":true,"description":"Year-to-date value."},"created_at":{"type":"string","format":"date-time","example":"2026-03-18T12:00:00.000Z","description":"Item creation time."},"updated_at":{"type":"string","format":"date-time","example":"2026-03-18T12:00:00.000Z","description":"Item update time."},"is_prorated":{"type":"boolean","example":false,"description":"Whether the value is prorated."},"is_recurring":{"type":"boolean","example":true,"nullable":true,"description":"Whether the item is recurring."},"is_overwritten":{"type":"boolean","example":false,"description":"Whether the value was overwritten."},"last_change_by":{"type":"integer","example":101,"nullable":true,"description":"Last editor user id."},"unit_of_measure":{"type":"string","example":"CURRENCY","nullable":true,"description":"Unit of measure."},"updated_by_profile":{"type":"object","properties":{"name":{"type":"string","example":"Jane Doe","nullable":true,"description":"User name.","x-sensitive-employment":true},"email":{"type":"string","example":"jane@deel.com","nullable":true,"description":"User email.","x-sensitive-employment":true},"user_id":{"type":"integer","example":101,"nullable":true,"description":"User id.","x-sensitive-employment":true}},"description":"Profile of the user who last updated the item."},"payroll_report_column":{"type":"object","properties":{"id":{"type":"string","example":"c57dde3d84d9640b09530582c7be34","description":"Column id."},"type":{"type":"string","example":"earnings","description":"Column type."},"label":{"type":"string","example":"Gross Salary","description":"Display label."},"scope":{"type":"string","example":"EMPLOYMENT","description":"Column scope."},"status":{"type":"string","example":"ACTIVE","description":"Column status."},"tooltip":{"type":"string","example":"Monthly gross salary","nullable":true,"description":"UI tooltip."},"countries":{"type":"array","items":{"type":"string"},"example":["US"],"description":"Countries where the column applies."},"is_global":{"type":"boolean","example":false,"description":"Whether the column is global."},"created_at":{"type":"string","format":"date-time","example":"2026-03-18T12:00:00.000Z","description":"Column creation time."},"item_order":{"type":"integer","example":1,"description":"Column ordering."},"updated_at":{"type":"string","format":"date-time","example":"2026-03-18T12:00:00.000Z","description":"Column update time."},"description":{"type":"string","example":"Total gross salary","nullable":true,"description":"Column description."},"system_name":{"type":"string","example":"gross_salary","nullable":true,"description":"System name."},"deel_enabled":{"type":"boolean","example":true,"description":"Whether enabled for Deel."},"is_adjustable":{"type":"boolean","example":true,"description":"Whether the column is adjustable."},"appears_on_g2n":{"type":"boolean","example":true,"description":"Whether it appears on G2N."},"client_enabled":{"type":"boolean","example":true,"description":"Whether enabled for clients."},"unit_of_measure":{"type":"string","example":"CURRENCY","nullable":true,"description":"Unit of measure."},"can_be_recurring":{"type":"boolean","example":true,"description":"Whether the item can recur."},"employer_cost_type":{"type":"string","example":"TAX","nullable":true,"description":"Employer cost type."},"add_to_employer_cost":{"type":"boolean","example":true,"description":"Whether adds to employer cost."},"included_in_g2n_report":{"type":"boolean","example":true,"description":"Whether included in G2N report."},"payroll_legal_entity_id":{"type":"integer","example":456,"nullable":true,"description":"Payroll legal entity id."},"is_recurring_in_offcycle":{"type":"boolean","example":false,"description":"Whether recurring in offcycle."},"appears_on_recurring_items":{"type":"boolean","example":true,"description":"Whether appears on recurring items."},"client_payroll_report_label":{"type":"string","example":"Client Gross Salary","nullable":true,"description":"Client-facing label."},"supported_in_payroll_report":{"type":"boolean","example":true,"description":"Whether the column appears in payroll report."},"payroll_report_sub_category_id":{"type":"string","example":"subcat_123","nullable":true,"description":"Report sub-category id."},"adjustment_payroll_report_column_id":{"type":"string","example":"adj_col_123","nullable":true,"description":"Adjustment column id."}},"description":"Payroll report column details."},"payroll_report_column_id":{"type":"string","example":"c57dde3d84d9640b09530582c7be34","description":"Payroll report column id."},"employment_payroll_event_id":{"oneOf":[{"type":"integer"},{"type":"string"}],"example":899472,"description":"Employment payroll event id."}}},"description":"Current payroll report items."},"previous_payroll_report_items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"pri_456","description":"Payroll report item id."},"value":{"type":"string","example":"2400.00","nullable":true,"description":"Item value."},"source":{"type":"string","example":"MANUAL","nullable":true,"description":"Value source."},"qtd_value":{"type":"string","example":"4500.00","nullable":true,"description":"Quarter-to-date value."},"ytd_value":{"type":"string","example":"9500.00","nullable":true,"description":"Year-to-date value."},"created_at":{"type":"string","format":"date-time","example":"2026-02-18T12:00:00.000Z","description":"Item creation time."},"updated_at":{"type":"string","format":"date-time","example":"2026-02-18T12:00:00.000Z","description":"Item update time."},"is_prorated":{"type":"boolean","example":false,"description":"Whether the value is prorated."},"is_overwritten":{"type":"boolean","example":false,"description":"Whether the value was overwritten."},"last_change_by":{"type":"integer","example":101,"nullable":true,"description":"Last editor user id."},"unit_of_measure":{"type":"string","example":"CURRENCY","nullable":true,"description":"Unit of measure."},"payroll_report_column":{"type":"object","example":{"id":"c57dde3d84d9640b09530582c7be34"},"description":"Payroll report column details."},"payroll_report_column_id":{"type":"string","example":"c57dde3d84d9640b09530582c7be34","description":"Payroll report column id."},"employment_payroll_event_id":{"oneOf":[{"type":"integer"},{"type":"string"}],"example":899471,"description":"Employment payroll event id."}}},"description":"Previous payroll report items for comparison."}}},"description":"Employee rows for the cycle."}}}}}}},"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":"query","name":"contract_oids","schema":{"type":"array","items":{"type":"string"}},"example":["LnjP6kYv"],"description":"Contract OID(s) to filter report rows."},{"in":"query","name":"search","schema":{"type":"string"},"example":"Luis Aguado","description":"Filter by employee name."},{"in":"query","name":"employee_status","schema":{"type":"array","items":{"type":"string"}},"example":["ACTIVE"],"description":"Employee status filter."},{"in":"query","name":"limit","schema":{"type":"integer","default":100,"maximum":200,"minimum":1},"example":100,"description":"Maximum number of report rows."},{"in":"query","name":"cursor","schema":{"oneOf":[{"type":"string"},{"type":"number"}]},"description":"Cursor for pagination."},{"in":"path","name":"cycle_id","schema":{"type":"string"},"required":true,"description":"Payroll event/cycle id."}],"security":[{"deelToken":[]},{"oauth2":["global-payroll:read"]}]}},"/ic/workers/invoices/{invoice_id}/pdf":{"get":{"tags":["Workers"],"summary":"/ic/workers/invoices/:invoice_id/pdf","operationId":"icWorkersInvoicesInvoiceIdPdf-v2026-04-20","description":"This endpoint provides embedded worker flows access to download a pdf of a specific invoice while using a worker:PAT token.\n **Token scopes**: `accounting:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/hris/organization-structures/teams/{team_id}/custom-fields":{"patch":{"tags":["Organization Structure"],"summary":"Update organization structure team custom fields","operationId":"updateOrganizationStructureTeamCustomFields","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 **Token scopes**: `organizations:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}],"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}},"get":{"tags":["Organization Structure"],"summary":"Retrieve custom fields for organization","operationId":"retrieveCustomFieldsForOrganization","description":"Returns all custom field values configured for the specified team in the organizational hierarchy, including each field's inheritance status (whether the value is set directly on the team or inherited from a parent), and any pending change requests visible to the caller.\n **Token scopes**: `organizations:read`","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","type","value","raw_value","is_inherited","inherited_from","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"5926d8c4-e7d0-41db-9bec-b73d0de992bf","description":"Public ID (UUID) of the custom field"},"name":{"type":"string","example":"Department Budget","description":"Name of the custom field"},"type":{"enum":["TEXT","LIST","MULTISELECT","NUMBER","CURRENCY","PERCENTAGE","DATE","NESTED"],"type":"string","example":"CURRENCY","description":"Type of the custom field"},"value":{"type":"string","example":"USD50000.00","nullable":true,"description":"Formatted value of the custom field. Null if no value is set."},"values":{"type":"array","items":{"type":"string"},"example":["Engineering","Sales","Marketing","HR"],"description":"Available options for LIST or MULTISELECT type custom fields"},"currency":{"type":"string","example":"USD","description":"Currency code for CURRENCY type custom fields"},"raw_value":{"type":"string","example":"50000.00","nullable":true,"description":"Raw/unformatted value. Null if no value is set."},"created_at":{"type":"string","format":"date-time","example":"2024-01-01T00:00:00.000Z","description":"ISO 8601 timestamp when the resource was created"},"updated_at":{"type":"string","format":"date-time","example":"2024-01-10T15:30:00.000Z","description":"ISO 8601 timestamp when the resource was last updated"},"is_editable":{"type":"boolean","example":true,"description":"Indicates whether the custom field value can be edited"},"is_required":{"type":"boolean","example":false,"description":"Indicates whether the custom field is required"},"is_inherited":{"type":"boolean","example":true,"description":"Indicates whether the value is inherited from a parent team"},"inherited_from":{"type":"object","nullable":true,"required":["team_id","team_name"],"properties":{"team_id":{"type":"string","format":"uuid","example":"5926d8c4-e7d0-41db-9bec-b73d0de992bf","description":"Public ID of the parent team from which the value is inherited"},"team_name":{"type":"string","example":"Engineering Department","description":"Name of the parent team from which the value is inherited"}},"description":"Parent team from which the value is inherited. Null if not inherited."},"pending_change":{"type":"object","nullable":true,"required":["change_request_id","status","value","raw_value","is_approvable"],"properties":{"value":{"type":"string","example":"Sales","nullable":true,"description":"Pending value for the custom field (type depends on field type - can be string, number, array, or null)"},"status":{"enum":["PENDING","SCHEDULED","COMMITTED","CANCELLED"],"type":"string","example":"PENDING","description":"Status of the change request"},"edited_by":{"type":"string","example":"Jane Smith","nullable":true,"description":"Full name of the user who requested the change"},"raw_value":{"type":"string","example":"Sales","nullable":true,"description":"Pending raw value for the custom field (type depends on field type - can be string, number, array, or null)"},"requested_at":{"type":"string","format":"date","example":"2024-01-15","nullable":true,"description":"Date when the change was requested (YYYY-MM-DD format)"},"is_approvable":{"type":"boolean","example":false,"description":"Indicates whether the current user can approve this change request"},"effective_date":{"type":"string","format":"date","example":"2024-02-01","nullable":true,"description":"Effective date for the change (YYYY-MM-DD format)"},"change_request_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-4789-a012-b3c4d5e6f790","description":"Public ID (UUID) of the change request"},"approval_request_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-4890-b123-c4d5e6f7a891","nullable":true,"description":"Public ID (UUID) of the approval request associated with the change request"},"modification_reason":{"type":"string","example":"Department reorganization","nullable":true,"description":"Reason for the modification"},"hris_custom_field_value_ids":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"c3d4e5f6-a7b8-4901-c234-d5e6f7a8b902","description":"Public ID (UUID) of the nested custom field value"},"value":{"type":"string","example":"Sub-department","description":"Value of the nested custom field"},"parent_id":{"type":"string","format":"uuid","example":"d4e5f6a7-b8c9-4012-d345-e6f7a8b9c013","nullable":true,"description":"Public ID (UUID) of the parent nested custom field value, if applicable"}}},"example":[{"id":"c3d4e5f6-a7b8-4901-c234-d5e6f7a8b902","value":"Sub-department","parent_id":"d4e5f6a7-b8c9-4012-d345-e6f7a8b9c013"}],"nullable":true,"description":"Array of nested custom field value IDs (for NESTED type fields)"},"modification_reason_additional_info":{"type":"string","example":"Additional context for the change","nullable":true,"description":"Additional information about the modification reason"}},"description":"Pending change request information (only included if user has 'data_change_request.view' permission)"}}},"description":"Array of custom field values for the organization structure team"},"has_more":{"type":"boolean","example":false,"description":"Whether more pages are available"},"next_cursor":{"type":"string","example":"eyJsaW1pdCI6MjAsIm9mZnNldCI6MjB9","nullable":true,"description":"Opaque cursor for the next page. Null if no more pages."},"total_count":{"type":"integer","example":2,"description":"Total number of custom field values (across all pages)"}}},"example":{"data":[{"id":"5926d8c4-e7d0-41db-9bec-b73d0de992bf","name":"Department Budget","type":"CURRENCY","value":"USD50000.00","currency":"USD","raw_value":"50000.00","created_at":"2024-01-01T00:00:00.000Z","updated_at":"2024-01-10T15:30:00.000Z","is_editable":true,"is_required":false,"is_inherited":true,"inherited_from":{"team_id":"5926d8c4-e7d0-41db-9bec-b73d0de992bf","team_name":"Engineering Department"}},{"id":"a1b2c3d4-e5f6-4789-a012-b3c4d5e6f789","name":"Department Type","type":"LIST","value":"Engineering","values":["Engineering","Sales","Marketing","HR"],"raw_value":"Engineering","created_at":"2024-01-01T00:00:00.000Z","updated_at":"2024-01-15T10:00:00.000Z","is_editable":true,"is_required":true,"is_inherited":false,"inherited_from":null,"pending_change":{"value":"Sales","status":"PENDING","edited_by":"Jane Smith","raw_value":"Sales","requested_at":"2024-01-15","is_approvable":false,"effective_date":"2024-02-01","change_request_id":"a1b2c3d4-e5f6-4789-a012-b3c4d5e6f790","approval_request_id":"b2c3d4e5-f6a7-4890-b123-c4d5e6f7a891","modification_reason":"Department reorganization"}}],"has_more":false,"next_cursor":null,"total_count":2}}},"description":"Custom field values retrieved 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":"query","name":"limit","schema":{"type":"integer","default":20,"maximum":100},"example":20,"required":false,"description":"Max items per page (default 20, max 100)"},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"eyJsaW1pdCI6MjAsIm9mZnNldCI6MjB9","required":false,"description":"Opaque cursor for pagination"},{"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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/hris/worker_relations/types/{type_id}":{"delete":{"tags":["Worker Relations"],"summary":"Delete a worker relation type","operationId":"deleteAWorkerRelationType-v2026-01-01","description":"Deletes an existing worker relationship type.\n **Token scopes**: `organizations:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/workers/compliance-documents":{"get":{"tags":["Workers"],"summary":"List of worker compliance documents","operationId":"listOfWorkerComplianceDocuments-v2026-01-01","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 **Token scopes**: `worker:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/worker/benefits":{"get":{"tags":["EOR"],"summary":"Retrieve Benefits for Employee","operationId":"retrieveBenefitsForEmployee-v2026-01-01","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 **Token scopes**: `benefits:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["benefits:read"]}]}},"/contracts/{contract_id}/timesheets/presets":{"get":{"tags":["Projects"],"summary":"Get Hourly Report Presets","operationId":"getHourlyReportPresets","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 **Token scopes**: `timesheets:read`","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":"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"}}},"rate":{"type":"number","example":75.5,"description":"The hourly rate for this preset"},"title":{"type":"string","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":"123e4567-e89b-12d3-a456-426614174000","description":"The unique identifier of the 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 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","description":"Detailed description of the root preset template"}}}}}},"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":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","example":"Work statement is not found"}}}}},"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":"work_statement_id","schema":{"type":"string","format":"uuid"},"required":false,"description":"ID of the work statement (optional)"},{"in":"query","name":"order_by","schema":{"type":"string","default":"title"},"required":false,"description":"Field to order results by (title or created_at)"},{"in":"query","name":"order_direction","schema":{"type":"string","default":"ASC"},"required":false,"description":"Direction of ordering (ASC or DESC)"},{"in":"query","name":"cursor","schema":{"type":"string"},"required":false,"description":"Pagination cursor for fetching next set of results"},{"in":"query","name":"limit","schema":{"type":"integer","default":100,"maximum":100,"minimum":1},"required":false,"description":"Number of results to return per page"},{"in":"path","name":"contract_id","schema":{"type":"string","format":"uuid"},"required":true,"description":"ID of the Deel contract"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]}},"/people/{worker_id}/custom_fields":{"put":{"tags":["Custom Fields"],"summary":"Update custom field value","operationId":"UpsertCustomFieldValueFromWorker","description":"Creates or updates a custom field value for a worker; if a value for the specified field already exists it is overwritten.\n **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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}},"get":{"tags":["Custom Fields"],"summary":"Retrieve custom fields for a worker","operationId":"retrieveCustomFieldsForAWorker","description":"Returns all custom field values currently set for the specified worker.\n **Token scopes**: `people:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/gp/workers/{id}/payslips/{payslip_id}/download":{"get":{"tags":["Global Payroll"],"summary":"Download a GP worker payslip","operationId":"downloadAGpWorkerPayslip-v2026-01-01","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 **Token scopes**: `payslips:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["payslips:read"]}]}},"/hris/positions/profile/{hris_profile_id}":{"get":{"tags":["Positions"],"summary":"Fetch HrisPositions from a HrisProfile","operationId":"fetchHrisPositionsFromAHrisProfile-v2026-01-01","description":"Retrieves all positions assigned to a given HRIS profile, including the associated role, team, and organization structure for each position.\n **Token scopes**: `profile:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["profile:read"]}]}},"/hris/worker_relations/types/{typeId}":{"patch":{"tags":["Worker Relations"],"summary":"Update a worker relation type","operationId":"updateWorkerRelationType","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 **Token scopes**: `organizations:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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}}},"/hris/worker_relations/profile/external/{profile_id}":{"get":{"tags":["Worker Relations"],"summary":"Fetch Worker Relations of a given HrisProfile by external id","operationId":"fetchWorkerRelationsOfAGivenHrisProfileByExternalId-v2026-01-01","description":"Retrieves all worker relationships for a given HRIS profile identified by its external identifier, including parent and child relationships.\n **Token scopes**: `profile:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["profile:read"]}]}},"/people/external/{worker_id}/personal":{"get":{"tags":["People"],"summary":"Get worker profile by external ID","operationId":"getWorkerProfileSummaryByExternalId","description":"Retrieves a worker profile record using a system-wide external worker identifier.\n **Token scopes**: `people:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]},"patch":{"tags":["People"],"summary":"Update personal information by external id","operationId":"updatePeoplePersonalInformationByExternalId","description":"Partially updates a worker's personal information using an external identifier. Only fields included in the request body are modified.\n **Token scopes**: `people:write`","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)."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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."}}}}}}}}}},"/ats/applications":{"get":{"tags":["ATS"],"summary":"Retrieve a list of ATS applications","operationId":"retrieveAListOfAtsApplications-v2026-01-01","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 **Token scopes**: `ats:read`","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","numeric_id","created_at","moved_to_current_stage_at"],"properties":{"id":{"type":"string","format":"uuid","example":"f6281620-93be-45fb-ab91-dd1d8cd89395","description":"Application unique identifier"},"job":{"type":"object","example":{"id":"45039abb-82a7-49c8-80f7-dbb0946c5fd4","title":"Senior Product Designer"},"required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"45039abb-82a7-49c8-80f7-dbb0946c5fd4","description":"Job unique identifier"},"title":{"type":"string","example":"Product Designer","description":"Job title"}},"description":"Job information for the application"},"candidate":{"type":"object","example":{"id":"7b6b3d8e-84b7-4bbe-a680-faf2bec43dca","email":"john.doe@example.com","pic_url":"https://example.com/avatars/john-doe.jpg","last_name":"Doe","first_name":"John","phone_number":"+1234567890","candidate_tags":[]},"required":["id","first_name","last_name","email","phone_number","pic_url","candidate_tags"],"properties":{"id":{"type":"string","format":"uuid","example":"7b6b3d8e-84b7-4bbe-a680-faf2bec43dca","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":"0d84657e-2fce-4f67-8cb1-9d88cf1ff994","description":"Candidate tag unique identifier"},"tag":{"type":"object","required":["id","label"],"properties":{"id":{"type":"string","format":"uuid","example":"c8a7d362-6960-4f75-98d3-5118df39c84c","description":"Tag unique identifier"},"label":{"type":"string","example":"Top talent","description":"Tag 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","example":{"id":"c3d4e5f6-a7b8-9012-3456-7890abcdef12","title":"Senior Product Designer - Remote"},"nullable":true,"required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"c3d4e5f6-a7b8-9012-3456-7890abcdef12","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":{"enum":["SOURCED_INTERNALLY","EXTERNAL_CAREER_PAGE","LINKEDIN_PREMIUM","LINKEDIN_BASIC","INTERNAL_CAREER_PAGE","INTERNAL_REFERRAL","BULK_IMPORTED"],"type":"string","example":"INTERNAL_CAREER_PAGE","nullable":true,"description":"Source of the application"},"job_employment_type":{"type":"object","example":{"id":"98ee37f0-9dd1-4d0f-82d9-1008e7cc92e6","employment_type":{"id":"e34044e5-412c-4033-b940-8d0956d5943b","name":"Full-time"}},"required":["id","employment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"98ee37f0-9dd1-4d0f-82d9-1008e7cc92e6","description":"Job employment type unique identifier"},"employment_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"e34044e5-412c-4033-b940-8d0956d5943b","description":"Employment type unique identifier"},"name":{"type":"string","example":"Full-time","description":"Employment type name"}}}},"description":"Employment type information for the job"},"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":"509d5153-5b10-4718-b16f-417e726d39f1","nullable":true,"description":"Identifier of the application form submission"},"answers":{"type":"array","items":{"type":"object","example":"John Doe","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":"83a642fd-de0a-45f6-8fe0-b9188ed72990","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":"a7b8c9d0-e1f2-3456-789a-bcdef1234567","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":"b8c9d0e1-f2a3-4567-89ab-cdef12345678","description":"Job criteria unique identifier"}}},"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"}],"description":"AI-generated job criteria matching results for the application"},"created_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"b2ab2c64-9443-455a-af6e-eed9f3426b26","nullable":true,"description":"User who created the application"},"current_application_interview_plan_stage":{"type":"object","example":{"id":"cc7ec13b-c0c7-46d7-b9a2-e7f60503a8a2","application_id":"f6281620-93be-45fb-ab91-dd1d8cd89395","interview_plan_stage":{"id":"5c1d7a1b-d1db-4987-a406-9f87d57a4f04","name":"Technical Interview","default_type_slug":"technical_interview","category_type_slug":"active"},"interview_plan_stage_id":"5c1d7a1b-d1db-4987-a406-9f87d57a4f04"},"required":["id","interview_plan_stage_id","application_id","interview_plan_stage"],"properties":{"id":{"type":"string","format":"uuid","example":"cc7ec13b-c0c7-46d7-b9a2-e7f60503a8a2","description":"Application interview plan stage unique identifier"},"application_id":{"type":"string","format":"uuid","example":"f6281620-93be-45fb-ab91-dd1d8cd89395","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":"5c1d7a1b-d1db-4987-a406-9f87d57a4f04","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":"5c1d7a1b-d1db-4987-a406-9f87d57a4f04","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":"cc7ec13b-c0c7-46d7-b9a2-e7f60503a8a2","nullable":true,"description":"Current interview plan stage unique identifier"},"application_form_form_builder_form_submission_id":{"type":"string","format":"uuid","example":"b8c9d0e1-f2a3-4567-89ab-cdef12345678","nullable":true,"description":"Application form submission unique identifier"}}}},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more applications to fetch"},"next_cursor":{"type":"string","example":"eyJsYXN0Q3JlYXRlZEF0IjoiMjAyNS0wNi0xOFQwOToxNzoyMi40NDFaIiwibGFzdElkIjoiMWVhOTlmMzYtZWEzYy00N2QyLWI3NDAtNmFkNTM2ZjU4OTI4In0=","nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"integer","example":6,"description":"Total number of applications available"}}},"example":{"data":[{"id":"f6281620-93be-45fb-ab91-dd1d8cd89395","job":{"id":"45039abb-82a7-49c8-80f7-dbb0946c5fd4","title":"Senior Product Designer"},"candidate":{"id":"7b6b3d8e-84b7-4bbe-a680-faf2bec43dca","email":"john.doe@example.com","pic_url":"https://example.com/avatars/john-doe.jpg","last_name":"Doe","first_name":"John","phone_number":"+1234567890","candidate_tags":[{"id":"0d84657e-2fce-4f67-8cb1-9d88cf1ff994","tag":{"id":"c8a7d362-6960-4f75-98d3-5118df39c84c","label":"Top talent"}},{"id":"d5a42e62-6872-46bf-906c-4df01b51eaf0","tag":{"id":"06ace055-faf4-4436-a148-76e58ee95d13","label":"Technical expert"}}]},"created_at":"2025-06-18T13:04:03.920Z","numeric_id":183,"job_posting":{"id":"c3d4e5f6-a7b8-9012-3456-7890abcdef12","title":"Senior Product Designer - Remote"},"source_slug":"INTERNAL_CAREER_PAGE","job_employment_type":{"id":"98ee37f0-9dd1-4d0f-82d9-1008e7cc92e6","employment_type":{"id":"e34044e5-412c-4033-b940-8d0956d5943b","name":"Full-time"}},"moved_to_current_stage_at":"2025-06-18T13:04:04.805Z","application_form_submission":{"id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","answers":[{"answer":"John Doe","question_text":"Full Name","question_type":"FREETEXT","data_binding_id":"83a642fd-de0a-45f6-8fe0-b9188ed72990"}]},"application_job_criterias_matchings":[{"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"}],"created_by_hris_organization_user_id":"b2ab2c64-9443-455a-af6e-eed9f3426b26","current_application_interview_plan_stage":{"id":"cc7ec13b-c0c7-46d7-b9a2-e7f60503a8a2","application_id":"f6281620-93be-45fb-ab91-dd1d8cd89395","interview_plan_stage":{"id":"5c1d7a1b-d1db-4987-a406-9f87d57a4f04","name":"Technical Interview","default_type_slug":"technical_interview","category_type_slug":"active"},"interview_plan_stage_id":"5c1d7a1b-d1db-4987-a406-9f87d57a4f04"},"current_application_interview_plan_stage_id":"cc7ec13b-c0c7-46d7-b9a2-e7f60503a8a2","application_form_form_builder_form_submission_id":"a1b2c3d4-e5f6-7890-abcd-ef1234567890"}],"has_more":true,"next_cursor":"eyJsYXN0Q3JlYXRlZEF0IjoiMjAyNS0wNi0xOFQxMzowNDowMy45MjBaIiwibGFzdElkIjoiZjYyODE2MjAtOTNiZS00NWZiLWFiOTEtZGQxZDhjZDg5Mzk1In0=","total_count":150}}},"description":"Successfully retrieved applications"},"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":"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 by candidate name or email"},{"in":"query","name":"job_id","schema":{"type":"string","format":"uuid"},"example":"45039abb-82a7-49c8-80f7-dbb0946c5fd4","required":false,"description":"Filter applications by specific 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 applications by specific interview plan stage IDs"},{"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 applications by candidate tag IDs"},{"in":"query","name":"source_slugs","schema":{"type":"array","items":{"type":"string"}},"example":["sourced_internally","linkedin_premium"],"required":false,"description":"Filter applications by source slugs"},{"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","description":"The matching state for the job criteria"},"job_criteria_id":{"type":"string","format":"uuid","description":"The job criteria ID to filter by"}}}},"example":[{"is_matched":"MATCHED","job_criteria_id":"f8a7d362-6960-4f75-98d3-5118df39c84c"}],"required":false,"description":"Filter applications by job criteria matching state. Each object specifies a job criteria ID and whether the candidate matches it."},{"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"},{"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."},{"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"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]},"post":{"tags":["ATS"],"summary":"Create ATS Application","operationId":"createAtsApplication-v2026-01-01","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 **Token scopes**: `ats:write`","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":"cf3bf34f-89e9-49fb-83a5-32104271f261","description":"Unique identifier for the application"},"job_id":{"type":"string","format":"uuid","example":"3cfbb359-6084-46c0-9d3f-1ed1a1007a7a","description":"Unique identifier for the job"},"created_at":{"type":"string","format":"date-time","example":"2026-01-07T17:51:39.961Z","description":"Timestamp when the application was created"},"numeric_id":{"type":"integer","example":2,"description":"Numeric identifier for the application"},"updated_at":{"type":"string","format":"date-time","example":"2026-01-07T17:51:39.961Z","description":"Timestamp when the application was last updated"},"candidate_id":{"type":"string","format":"uuid","example":"10164abf-6ea2-4fb9-963c-de2fa2ea4e1b","description":"Unique identifier for the candidate"},"job_posting_id":{"type":"string","format":"uuid","example":"10164abf-6ea2-4fb9-963c-de2fa2ea4e1b","nullable":true,"description":"Unique identifier for the job posting"},"job_employment_type_id":{"type":"string","format":"uuid","example":"8ed5dd1f-b8ad-4847-b185-eb8209a3d54f","nullable":true,"description":"Unique identifier for the job employment type"},"moved_to_current_stage_at":{"type":"string","format":"date-time","example":"2026-01-07T17:51:39.961Z","nullable":true,"description":"Timestamp when the application was moved to the current stage"},"current_application_interview_plan_stage_id":{"type":"string","format":"uuid","example":"10164abf-6ea2-4fb9-963c-de2fa2ea4e1b","nullable":true,"description":"Unique identifier for the current application interview plan stage"}}}}}}},"description":"Successful response with application 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":[],"security":[{"deelToken":[]},{"oauth2":["ats:write"]}],"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":"<p>Sample note</p>","description":"The richtext content of the note"}}},"example":[{"richtext_content":"Sample note content"}],"nullable":true,"description":"Array of notes to attach to the application"},"job_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","description":"The ID of the job for this application"},"candidate_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174003","description":"The ID of the candidate applying"},"job_posting_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174001","nullable":true,"description":"The ID of the job posting (optional)"},"job_employment_type_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174002","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","description":"The type of the question"},"answer":{"type":"string","example":"My answer","description":"The answer text"},"question_id":{"type":"string","example":"q1","description":"The unique identifier of the question"}}},{"type":"object","required":["question_id","type","answer"],"properties":{"type":{"enum":["PARAGRAPH"],"type":"string","example":"PARAGRAPH","description":"The type of the question"},"answer":{"type":"string","example":"My paragraph answer","description":"The paragraph answer text"},"question_id":{"type":"string","example":"q2","description":"The unique identifier of the question"}}},{"type":"object","required":["question_id","type","selected_option_id"],"properties":{"type":{"enum":["SINGLESELECTION"],"type":"string","example":"SINGLESELECTION","description":"The type of the question"},"question_id":{"type":"string","example":"q3","description":"The unique identifier of the question"},"selected_option_id":{"type":"string","example":"opt1","description":"The ID of the selected option"}}},{"type":"object","required":["question_id","type","selected_option_ids"],"properties":{"type":{"enum":["MULTISELECTION"],"type":"string","example":"MULTISELECTION","description":"The type of the question"},"question_id":{"type":"string","example":"q4","description":"The unique identifier of the question"},"selected_option_ids":{"type":"array","items":{"type":"string"},"example":["opt1","opt2"],"description":"Array of selected option IDs"}}},{"type":"object","required":["question_id","type","document_ids"],"properties":{"type":{"enum":["DOCUMENTUPLOAD"],"type":"string","example":"DOCUMENTUPLOAD","description":"The type of the question"},"question_id":{"type":"string","example":"q5","description":"The unique identifier of the question"},"document_ids":{"type":"array","items":{"type":"string"},"example":["doc1"],"description":"Array of uploaded document IDs"}}},{"type":"object","required":["question_id","type","preset","selected_options"],"properties":{"type":{"enum":["PRESETDROPDOWN"],"type":"string","example":"PRESETDROPDOWN","description":"The type of the question"},"preset":{"type":"string","example":"countries","description":"The preset used"},"question_id":{"type":"string","example":"q6","description":"The unique identifier of the question"},"selected_options":{"type":"array","items":{"type":"string"},"example":["USA"],"description":"Array of selected options"}}},{"type":"object","required":["question_id","type","selected_option_ids"],"properties":{"type":{"enum":["CUSTOMDROPDOWN"],"type":"string","example":"CUSTOMDROPDOWN","description":"The type of the question"},"question_id":{"type":"string","example":"q7","description":"The unique identifier of the question"},"selected_option_ids":{"type":"array","items":{"type":"string"},"example":["opt1"],"description":"Array of selected option IDs"}}},{"type":"object","required":["question_id","type","value"],"properties":{"type":{"enum":["NUMBER"],"type":"string","example":"NUMBER","description":"The type of the question"},"value":{"type":"string","example":"100","description":"The numeric answer value"},"question_id":{"type":"string","example":"q8","description":"The unique identifier of the question"}}},{"type":"object","required":["question_id","type"],"properties":{"type":{"enum":["DATEPICKER"],"type":"string","example":"DATEPICKER","description":"The type of the question"},"end_date":{"type":"string","example":"2023-01-05","description":"The end date selected (for ranges)"},"start_date":{"type":"string","example":"2023-01-01","description":"The start date selected"},"question_id":{"type":"string","example":"q9","description":"The unique identifier of the question"}}},{"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","description":"The type of the question"},"question_id":{"type":"string","example":"q10","description":"The unique identifier of the question"},"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","description":"The type of the question"},"question_id":{"type":"string","example":"q11","description":"The unique identifier of the question"},"phone_number":{"type":"string","example":"+1234567890","description":"The phone number"}}},{"type":"object","required":["question_id","type","email"],"properties":{"type":{"enum":["EMAIL"],"type":"string","example":"EMAIL","description":"The type of the question"},"email":{"type":"string","format":"email","example":"test@example.com","description":"The email address"},"question_id":{"type":"string","example":"q12","description":"The unique identifier of the question"}}}]},"example":[{"type":"FREETEXT","answer":"Sample answer","question_id":"q1"}],"nullable":true,"description":"Array of form submission answers"}}}}}}}}}},"/gp/reports/{id}/gross_to_net/csv":{"get":{"tags":["Global Payroll"],"summary":"Download gross to net report","operationId":"downloadGrossToNetReport","description":"Downloads the gross-to-net calculation report for the specified payroll report as a CSV file, with optional currency conversion applied.\n **Token scopes**: `global-payroll:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["global-payroll:read"]}]}},"/eor/workers/compliance-documents/{document_id}/templates/download":{"get":{"tags":["EOR"],"summary":"Download employee compliance document template","operationId":"downloadEmployeeComplianceDocumentTemplate","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 **Token scopes**: `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/legal-entities":{"post":{"tags":["Legal Entities"],"summary":"Create a new legal entity","operationId":"createLegalEntity","description":"Creates a new legal entity under the organization and returns the entity record including its assigned id.\n **Token scopes**: `legal-entity:write`, `legal-entity:read`","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"}},"security":[{"deelToken":[]},{"oauth2":["legal-entity:write","legal-entity:read"]}],"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."}}}}}}}}}}},"get":{"tags":["Organizations"],"summary":"List of legal entities","operationId":"listOfLegalEntities","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 **Token scopes**: `organizations:read`, `accounting:read`","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","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","description":"Street"},"country":{"type":"string","example":"US","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":null,"nullable":true,"description":"Archived date"},"entity_type":{"enum":["individual","company"],"type":"string","example":"company","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":{"$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":"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."}],"security":[{"deelToken":[]},{"oauth2":["organizations:read","accounting:read"]}]}},"/offboarding/tracker/{id}":{"get":{"tags":["Offboarding"],"summary":"Retrieve termination details","operationId":"retrieveTerminationDetails-v2026-01-01","description":"Returns termination details for a contract identified by its offboarding tracker `id`.\n **Token scopes**: `contracts:read`, `people:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/people/me":{"get":{"tags":["People"],"summary":"Get my current personal profile","operationId":"getMyCurrentPersonalProfile","description":"Returns the profile of the currently authenticated user, including identity, organizational membership, and integration identifiers for connected services such as Slack.\n **Token scopes**: `worker:read`, `people:read`","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","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":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"security":[{"deelToken":[]},{"oauth2":["worker:read","people:read"]}]}},"/people/{worker_id}/personal":{"get":{"tags":["People"],"summary":"Get personal information by id","operationId":"getPersonalInformationById","description":"Returns personal information for a worker by their worker ID.\n **Token scopes**: `people:read`","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)."}],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]},"patch":{"tags":["People"],"summary":"Update personal information","operationId":"updatePeoplePersonalInformationById","description":"Partially updates personal information for a worker by their worker ID; only fields included in the request body are modified.\n **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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."}}}}}}}}}},"/eor/{oid}/terminations/regular":{"post":{"tags":["EOR"],"summary":"Termination Request","operationId":"eorTerminationRequest","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 **Token scopes**: `contracts:read`, `contracts:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","contracts:write"]}],"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}}},"/contracts/{contract_id}/off-cycle-payments":{"post":{"tags":["Off-cycle Payments"],"summary":"Add off-cycle payment","operationId":"addOffCyclePayment","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 **Token scopes**: `off-cycle-payments:write`","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"id":{"type":"string","format":"uuid","description":"The unique identifier of the created off-cycle payment."},"created":{"type":"boolean","description":"Indicates whether the off-cycle payment was successfully created."}}}}},"examples":{"success":{"value":{"data":{"id":"123e4567-e89b-12d3-a456-426614174000","created":true}}}}}},"description":"The off-cycle payment was successfully created."},"400":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":400,"message":"Invalid contract ID or input data provided."}}}}}},"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":"Contract with the specified ID does not exist."}}}}}},"description":"Contract not found."},"500":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":500,"message":"An unexpected error occurred while creating the off-cycle payment."}}}}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"38g2edw","required":true,"description":"The unique identifier (ID) of the Deel contract for which the off-cycle payment is being created."}],"security":[{"deelToken":[]},{"oauth2":["off-cycle-payments:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","nullable":false,"required":["date_submitted","amount","description"],"properties":{"amount":{"type":"number","minimum":0,"nullable":false,"description":"The amount of the off-cycle payment."},"description":{"type":"string","nullable":false,"description":"A description or reason for the off-cycle payment."},"date_submitted":{"type":"string","format":"date","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":"990c9b5b-6d41-4917-b032-ac049877df3a","nullable":true,"description":"Id of an existing preset."}}}}},"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."}},"get":{"tags":["Off-cycle Payments"],"summary":"List of off-cycle payments","operationId":"getOffCyclePaymentsByContract","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 **Token scopes**: `off-cycle-payments:read`","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","description":"Unique identifier of the off-cycle payment."},"amount":{"type":"string","nullable":false,"description":"The amount of the off-cycle payment."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"The current status of the off-cycle payment."},"created_at":{"type":"string","format":"date-time","nullable":false,"description":"The timestamp when the off-cycle payment was created."},"description":{"type":"string","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","description":"Unique identifier of the reporter."},"full_name":{"type":"string","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","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","nullable":false,"description":"The timestamp when the off-cycle payment was submitted."}}}}}},"examples":{"success":{"value":{"data":[{"id":"123e4567-e89b-12d3-a456-426614174000","amount":"500.00","status":"approved","created_at":"2024-11-25T14:30:00.000Z","description":"Reimbursement for travel expenses","reported_by":{"id":"987e1234-e89b-56d3-a456-426614170000","full_name":"Jane Doe"},"currency_code":"USD","date_submitted":"2024-11-20T09:00:00.000Z"},{"id":"123e4567-e89b-12d3-a456-426614174001","amount":"1500.00","status":"pending","created_at":"2024-11-22T10:15:00.000Z","description":"Bonus payment","reported_by":{"id":"123e5678-e89b-12d3-a456-426614174002","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":{"examples":{"error":{"value":{"error":{"code":400,"message":"Invalid contract ID provided."}},"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":"Contract with the specified ID does not exist."}},"summary":"Example error response"}}}},"description":"Contract not found."},"500":{"content":{"application/json":{"examples":{"error":{"value":{"error":{"code":500,"message":"An unexpected error occurred while retrieving off-cycle payments."}},"summary":"Example server error response"}}}},"description":"Internal server error."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"required":true,"description":"The unique identifier (ID) of the Deel contract for which to retrieve off-cycle payments."}],"security":[{"deelToken":[]},{"oauth2":["off-cycle-payments:read"]}]}},"/time_offs/profile/{hris_profile_id}":{"get":{"tags":["Time Off"],"summary":"List time-off requests","operationId":"listTimeOffRequests","description":"Returns a paginated list of time-off requests for the specified hris_profile_id, with optional filters for status, policy type, date ranges covering the time-off period, approval date, and last-updated date.\n **Token scopes**: `time-off:read`","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"],"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"},"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":{"$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":"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":"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"}],"security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}":{"patch":{"tags":["EOR"],"summary":"Update a specific EOR contract amendment","operationId":"updateASpecificEorContractAmendment","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 **Token scopes**: `contracts:write`","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":"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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."}}}}}}}}},"delete":{"tags":["EOR"],"summary":"Cancel amendment","operationId":"cancelAmendment","description":"Cancels a pending EOR contract amendment, voiding the request and preventing it from being reviewed or applied to the contract.\n **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"get":{"tags":["EOR"],"summary":"View information about amendment","operationId":"viewInformationAboutAmendment","description":"Retrieves a specific amendment for an EOR contract.\n **Token scopes**: `contracts:read`","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":"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/employee-information":{"patch":{"tags":["EOR"],"summary":"Update Employee Information for EOR Contract","operationId":"updateEmployeeInformationForEorContract","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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."}}}}}}}}}},"/consent_token":{"post":{"tags":["Consent"],"summary":"Create a consent token","operationId":"createConsentToken","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.","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"}},"security":[{"deelToken":[]},{"oauth2":[]}],"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}}},"/contracts/{contract_id}":{"patch":{"tags":["Contracts"],"summary":"Add external Id","operationId":"addExternalId","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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"}},"get":{"tags":["Contracts"],"summary":"Retrieve a single contract","operationId":"retrieveASingleContract-v2026-01-01","description":"Retrieves the full record for a specific contract by `contract_id`, including status, compensation, worker details, and metadata. Pass `expand=cost_centers` as a query parameter to include cost center data in the response.\n **Token scopes**: `contracts:read`","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","format":"email","example":"client@example.com","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","format":"email","example":"client@example.com","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","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":"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":{"enum":["cost_centers"],"type":"string"},"example":"cost_centers","description":"Include cost centers in the response."},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Unique identifier of the contract."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/workers/contracts/{contract_id}/employee-agreement/download":{"get":{"tags":["EOR"],"summary":"Download employee agreement PDF","operationId":"downloadEmployeeAgreementPdf","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 **Token scopes**: `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/workers/contracts/{contract_id}/additional-information":{"patch":{"tags":["EOR"],"summary":"Update additional information","operationId":"updateAdditionalInformation-v2026-01-01","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 **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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."}},"post":{"tags":["EOR"],"summary":"Add additional information","operationId":"addAdditionalInformation-v2026-01-01","description":"Adds supplemental information fields to an EOR employee's contract record.\n **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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."}}},"/eor/contract/{oid}/delay-onboarding":{"patch":{"tags":["EOR"],"summary":"Delay EOR employee onboarding","operationId":"delayEorEmployeeOnboarding","description":"Defers the scheduled onboarding start date for the EOR employee on the specified contract.\n **Token scopes**: `contracts:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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"}}},"/contracts/{contract_id}/signatures":{"post":{"tags":["Contracts"],"summary":"Sign a contract","operationId":"signContract","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/gp/workers/{worker_id}/banks/guide":{"get":{"tags":["Global Payroll"],"summary":"Retrieve bank guide","operationId":"getGpBankGuide","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 **Token scopes**: `people:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/benefits/legal-entities/{id}":{"get":{"tags":["Legal Entities"],"summary":"Get legal entity data from organization integrated with external benefits vendor","operationId":"getLegalEntityDataFromOrganizationIntegratedWithExternalBenefitsVendor-v2026-01-01","description":"Returns legal entity data for an organization integrated with an external benefits vendor.\n **Token scopes**: `organizations:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","example":"123e4567-e89b-12d3-a456-426614174000","nullable":false,"description":"Unique identifier for the legal entity."},"name":{"type":"string","example":"Acme Corporation","nullable":false,"description":"Name of the legal entity."},"phone":{"type":"string","example":"+1-800-555-1234","nullable":true,"description":"Phone number of the legal entity."},"vat_id":{"type":"string","example":"US123456789","nullable":true,"description":"VAT ID of the legal entity, known as EIN in the US."},"address":{"type":"object","nullable":false,"properties":{"zip":{"type":"string","example":"10001","nullable":false},"city":{"type":"string","example":"New York","nullable":false},"state":{"type":"string","example":"NY","nullable":true},"street":{"type":"string","example":"123 Main Street","nullable":false},"country":{"type":"string","example":"US","nullable":false},"province":{"type":"string","example":"New York County","nullable":true}},"description":"Address of the legal entity."},"country":{"type":"string","example":"US","nullable":true,"description":"Country of the legal entity."},"naics_code":{"type":"string","example":"541330","nullable":true,"description":"NAICS code of the legal entity."},"entity_type":{"type":"string","example":"LLC","nullable":false,"description":"Type of the legal entity (e.g., LLC)."},"employment_type":{"enum":["peo","usp","gp"],"type":"string","example":"peo","nullable":false,"description":"Employment type of the legal entity."},"registration_number":{"type":"string","example":"REG123456","nullable":true,"description":"Registration number of the legal entity."},"registration_address":{"type":"object","nullable":true,"properties":{"zip":{"type":"string","example":"20001","nullable":false},"city":{"type":"string","example":"Washington","nullable":false},"state":{"type":"string","example":"DC","nullable":false},"street":{"type":"string","example":"456 Another Street","nullable":false},"country":{"type":"string","example":"US","nullable":false},"province":{"type":"string","example":"District of Columbia","nullable":false}},"description":"Registration address of the legal entity."},"union_or_leased_employees":{"type":"boolean","example":false,"nullable":false,"description":"Indicates if the legal entity has union or leased employees."}}}}},"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":"Id from the legal entity to fetch data"}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/benefits/legal-entities/{id}/pay-stub":{"get":{"tags":["Payroll"],"summary":"Get pay stub from employees from organization integrated with external benefits vendor","operationId":"getPayStubFromEmployeesFromOrganizationIntegratedWithExternalBenefitsVendor-v2026-01-01","description":"Returns pay stub records for employees within a legal entity integrated with an external benefits vendor, with support for filtering by payroll date range, status, and offset-based pagination.\n **Token scopes**: `organizations:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"source":{"enum":["HISTORICAL","NEW"],"type":"string","example":"NEW","nullable":false,"description":"Source of the payroll data."},"employees":{"type":"array","items":{"type":"object","properties":{"gross_pay":{"type":"number","example":1000,"nullable":false,"description":"Total gross pay for the employee for this payroll period.","x-sensitive-employment":true},"contract_id":{"type":"string","example":"mqj9gkr","nullable":false,"description":"Identifier for the employee contract."},"employee_id":{"type":"string","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":false,"description":"Unique identifier for the employee."},"hours_worked":{"type":"number","example":40,"nullable":false,"description":"Total hours worked by the employee in this payroll period."},"contributions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"401k","nullable":false,"description":"Name of the contribution."},"type":{"enum":["Roth","Trad"],"type":"string","example":"Roth","nullable":false,"description":"Type of the contribution."},"amount":{"type":"number","example":100,"nullable":false,"description":"Amount contributed.","x-sensitive-employment":true}}},"nullable":false,"description":"List of contributions made by the employee."},"employer_contributions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"401k","nullable":false,"description":"Name of the employer contribution."},"type":{"enum":["Match Rate","Non Elective"],"type":"string","example":"Match Rate","nullable":false,"description":"Type of the employer contribution."},"amount":{"type":"number","example":100,"nullable":false,"description":"Amount of the employer contribution."}}},"nullable":false,"description":"List of contributions made by the employer.","x-sensitive-employment":true}}},"nullable":false,"description":"List of employees included in the payroll."},"payroll_id":{"type":"string","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","nullable":false,"description":"Unique identifier for the payroll."},"payment_date":{"type":"string","example":"2021-01-01","nullable":false,"description":"Date when the payment is made."},"payment_type":{"enum":["RECONCILIATION","PARALLEL","HISTORICAL","OFFCYCLE","REGULAR"],"type":"string","example":"REGULAR","nullable":false,"description":"Type of payroll payment."},"payment_status":{"enum":["OPEN","LOCKED","CLOSED"],"type":"string","example":"OPEN","nullable":false,"description":"Current status of the payroll payment."},"payroll_end_date":{"type":"string","example":"2021-01-15","nullable":false,"description":"End date of the payroll period."},"payroll_schedule":{"enum":["BIMONTHLY","MONTHLY","BIWEEKLY","WEEKLY"],"type":"string","example":"BIWEEKLY","nullable":false,"description":"Frequency of the payroll schedule."},"payroll_start_date":{"type":"string","example":"2021-01-01","nullable":false,"description":"Start date of the payroll period."}}}},"page":{"type":"object","properties":{"offset":{"type":"integer","example":0,"nullable":false,"description":"Items to be skipped when searching"},"total_rows":{"type":"integer","example":100,"nullable":false,"description":"Total number of rows"},"items_per_page":{"type":"integer","example":100,"nullable":false,"description":"Items per page"}}}}}}},"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":"payroll_start_date","schema":{"type":"string"},"example":"2021-01-01","required":false,"description":"Payroll start date"},{"in":"query","name":"payroll_end_date","schema":{"type":"string"},"example":"2021-01-15","required":false,"description":"Payroll end date"},{"in":"query","name":"status","schema":{"type":"string"},"example":"OPEN","required":false,"description":"Payroll status"},{"in":"query","name":"items_per_page","schema":{"type":"integer","default":100},"example":100,"required":false,"description":"Items per page"},{"in":"query","name":"offset","schema":{"type":"integer","default":0},"example":0,"required":false,"description":"Items to be skipped when searching"},{"in":"path","name":"id","schema":{"type":"string"},"example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","required":true,"description":"Id from the legal entity to fetch data"}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/eor/contract/{oid}/cancel":{"post":{"tags":["EOR"],"summary":"Cancel EOR Contract","operationId":"cancelEorContract","description":"Cancels the EOR contract identified by oid. The contract must be in an active or pending state to be eligible for cancellation.\n **Token scopes**: `contracts:write`","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"},"required":true,"description":"Contract oid"}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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"}}},"/contracts/{contract_id}/amendments":{"post":{"tags":["Contractors"],"summary":"Amend contract","operationId":"amendContract","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 **Token scopes**: `contracts:write`","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created","id","worker_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":false,"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":{"$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":"The unique identifier of the employee contract."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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"}},"get":{"tags":["Contracts"],"summary":"List contract amendments","operationId":"listContractAmendments-v2026-01-01","description":"Retrieves the paginated list of amendments associated with a given contract, with optional filtering by amendment status and sign status.\n **Token scopes**: `contracts:read`, `contracts:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","contracts:write"]}]}},"/benefits/legal-entities/{id}/year-to-date-pay":{"get":{"tags":["Payroll"],"summary":"Get year to date payment for benefits 401k.","operationId":"getYearToDatePay","description":"Returns aggregated year-to-date payroll figures for employees in the specified legal entity over a caller-specified date range. Both `date_start` and `date_end` are required.\n **Token scopes**: `organizations:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"end_date":{"type":"string","format":"date","example":"2021-01-15","nullable":false,"description":"The end date of the pay period."},"employees":{"type":"array","items":{"type":"object","properties":{"gross_pay":{"type":"number","example":1000,"nullable":false,"description":"Total pay before deductions.","x-sensitive-employment":true},"contract_id":{"type":"string","example":"123","nullable":false,"description":"Identifier for the employee's contract."},"employee_id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","nullable":false,"description":"Unique identifier for the employee."},"hours_worked":{"type":"number","example":40,"nullable":false,"description":"Total hours worked in the pay period."},"contributions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"401k","nullable":false,"description":"Name of the contribution."},"type":{"enum":["roth","trad","loan"],"type":"string","nullable":false,"description":"Type of the contribution."},"amount":{"type":"number","example":10,"nullable":false,"description":"Amount of the contribution.","x-sensitive-employment":true}}}},"employer_contributions":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"401k","nullable":false,"description":"Name of the employer contribution.","x-sensitive-employment":true},"type":{"enum":["match_rate","non_elective"],"type":"string","nullable":false,"description":"Type of the employer contribution.","x-sensitive-employment":true},"amount":{"type":"number","example":10,"nullable":false,"description":"Amount of the employer contribution.","x-sensitive-employment":true}}}}}}},"start_date":{"type":"string","format":"date","example":"2021-01-01","nullable":false,"description":"The start date of the pay period."}}}}},"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":"123","required":true,"description":"Id from the legal entity to fetch data"},{"in":"query","name":"date_start","schema":{"type":"string"},"example":"2021-01-01","required":true,"description":"Start date to fetch aggregated pay data"},{"in":"query","name":"date_end","schema":{"type":"string"},"example":"2022-01-01","required":true,"description":"End date to fetch aggregated pay data"}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/benefits/legal-entities/{legal_entity_id}/401k/plans":{"post":{"tags":["Plans 401K"],"summary":"Create 401k plan for legal entity","operationId":"create401KPlanForLegalEntity-v2026-01-01","description":"Creates a new 401k plan for the specified legal entity. The 401k integration must be activated before this endpoint can be called. The response includes the plan's unique identifier required for subsequent enrollment and management operations.\n **Token scopes**: `benefits:write`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","example":"550e8400-e29b-41d4-a716-446655440000","description":"ID of the 401K plan."},"name":{"type":"string","example":"Employee Retirement Savings Plan","description":"Name of the 401K plan."},"details":{"type":"object","properties":{"key":{"type":"string","example":"Plan administrator contact details","description":"A key-value pair providing additional details about the plan."}},"description":"Object containing additional information about the 401K plan."},"currency":{"type":"string","example":"USD","description":"Currency for the contributions in ISO 4217 format."},"start_date":{"type":"string","format":"date-time","example":"2025-09-02T00:00:00.000Z","description":"Start date of the plan."},"contribution_type":{"enum":["PERCENTAGE","NEC_PERCENTAGE","NEC_FIXED_AMOUNT","FIXED_AMOUNT","MATCH"],"type":"string","example":"PERCENTAGE","description":"Type of contribution for the 401K plan."},"contribution_limit":{"type":"number","example":5,"description":"Limit of the contribution."},"contribution_value":{"type":"number","example":5,"description":"Value of the contribution if type is percent or amount."},"contribution_value_for_match_rate":{"type":"array","items":{"type":"object","required":["limit","rate"],"properties":{"rate":{"type":"number","example":50,"description":"Rate of matching contribution."},"limit":{"type":"number","example":10000,"description":"Limit up to which the match rate is applicable."}},"description":"Contribution values for match rate type."},"description":"Array of objects containing limits and rates for match rate contribution type."}}}}}}},"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":"legal_entity_id","schema":{"type":"string","example":"f47ac10b-58cc-4372-a567-0e02b2c3d479"},"required":true,"description":"Id from the legal entity to receive a new 401k plan"}],"security":[{"deelToken":[]},{"oauth2":["benefits:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["name","contribution_type","start_date"],"properties":{"name":{"type":"string","example":"Employee Retirement Savings Plan","description":"Name of the 401K plan."},"details":{"type":"object","properties":{"key":{"type":"string","example":"Plan administrator contact details","description":"A key-value pair providing additional details about the plan."}},"description":"Object containing additional information about the 401K plan."},"start_date":{"type":"string","format":"date","example":"2023-01-01","description":"Start date of the plan."},"contribution_type":{"enum":["PERCENTAGE","NEC_PERCENTAGE","NEC_FIXED_AMOUNT","FIXED_AMOUNT","MATCH"],"type":"string","example":"PERCENTAGE","description":"Type of contribution for the 401K plan."},"contribution_value":{"type":"number","example":5,"description":"Value of the contribution if type is percent or amount."},"contribution_value_for_match_rate":{"type":"array","items":{"type":"object","required":["limit","rate"],"properties":{"rate":{"type":"number","example":50,"description":"Rate of matching contribution."},"limit":{"type":"number","example":10000,"description":"Limit up to which the match rate is applicable."}},"description":"Contribution values for match rate type."},"description":"Array of objects containing limits and rates for match rate contribution type."}},"description":"Schema for the 401K Guideline Plan request body."}}},"required":true}}},"/forms/gp/worker-additional-fields/{country_code}":{"get":{"tags":["Global Payroll"],"summary":"Retrieve additional information fields for GP workers by country","operationId":"retrieveAdditionalInformationFieldsForGpWorkersByCountry-v2026-01-01","description":"Retrieves the country-specific additional information fields required for GP workers to run payroll in compliance with local regulations.\n **Token scopes**: `forms:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["forms:read"]}]}},"/eor/workers/compliance-documents/{document_id}/acknowledgement":{"post":{"tags":["EOR"],"summary":"Acknowledge a compliance document","operationId":"acknowledgeAComplianceDocument","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 **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/payments/{payment_id}/breakdown":{"get":{"tags":["Accounting"],"summary":"Retrieve a payment breakdown","operationId":"retrieveAPaymentBreakdown-v2026-01-01","description":"Returns a breakdown of a payment made to Deel, with individual invoices and the Deel fee included as discrete line items.\n **Token scopes**: `accounting:read`","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},"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"],"type":"string","example":"ongoing_time_based","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."},"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":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"payment_id","schema":{"type":"string"},"example":"YJdYFAA586JYf8A324T57","required":true,"description":"Unique identifier for the payment to retrieve the breakdown."}],"security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/gp/workers/contracts/{contract_id}/additional-information":{"post":{"tags":["Global Payroll"],"summary":"Add GP Workers Additional Information","operationId":"addGpWorkersAdditionalInformation","description":"Adds supplementary fields to the contract, with the extra data supplied under the `data` object in the request body.\n **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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}},"patch":{"tags":["Global Payroll"],"summary":"Update GP Workers Additional Information","operationId":"updateGpWorkersAdditionalInformation","description":"Partially updates the additional information on the contract; only fields supplied under the `data` object are modified.\n **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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}}},"/payments":{"get":{"tags":["Accounting"],"summary":"Retrieve payment receipts","operationId":"retrievePaymentReceipts-v2026-01-01","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 **Token scopes**: `accounting:read`","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"],"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}$","maxLength":3,"minLength":3,"description":"Three-letter currency code for the payment, following ISO 4217."},"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","nullable":true,"description":"Currency in which the general funds were held, following ISO 4217. 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":null,"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":null,"nullable":true,"description":"Currency in which the Deel-granted credits were held, following ISO 4217. 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","nullable":true,"description":"Currency in which the prepaid billing credits were held, following ISO 4217. 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","nullable":true,"description":"Currency in which the EOR early invoicing funds were held, following ISO 4217. 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":{"oneOf":[{"type":"array","items":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3}},{"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":{"oneOf":[{"type":"array","items":{"enum":["individual","company"],"type":"string"}},{"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":{"oneOf":[{"type":"array","items":{"enum":["paid","processing"],"type":"string"}},{"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."}],"security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/eor/workers/contracts/{contract_id}/offboarding/resignation-letter":{"get":{"tags":["EOR"],"summary":"Preview Resignation Letter","operationId":"previewResignationLetter","description":"Returns a preview of the resignation letter for the EOR contract before the worker submits their signature.\n **Token scopes**: `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/people/custom_fields":{"get":{"tags":["Custom Fields"],"summary":"List all people custom fields","operationId":"listAllPeopleCustomFields","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 **Token scopes**: `people:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/working-locations":{"get":{"tags":["Organizations"],"summary":"Retrieve working locations","operationId":"retrieveWorkingLocations","description":"Returns the list of available work location labels for the organization. Populate options when creating or editing people or contract records.\n **Token scopes**: `organizations:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/people/{hris_profile_id}":{"get":{"tags":["People"],"summary":"Retrieve a single person","operationId":"retrieveASinglePerson","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 **Token scopes**: `people:read`","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."},"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."},"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."},"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."}],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/eor/worker":{"post":{"tags":["EOR"],"summary":"Create EOR Worker","operationId":"createEorWorker-v2026-01-01","description":"Creates an EOR worker record and returns the associated `user_id`, `profile_id`, and `hris_profile_id`.\n **Token scopes**: `people:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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}}},"/pwac":{"post":{"tags":["People"],"summary":"Create a person without a contract","operationId":"createAPersonWithoutAContract-v2026-01-01","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 **Token scopes**: `people:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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}}},"/eor/contracts/{contract_id}/offboarding/attachments/{attachment_id}":{"get":{"tags":["EOR"],"summary":"Retrieve offboarding attachment","operationId":"retrieveOffboardingAttachment","description":"Downloads the content of a specific attachment associated with the termination for a given contract.\n **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/contracts/{contract_id}/ic-invoicing-taxes/{tax_type}":{"delete":{"tags":["IC invoicing taxes"],"summary":"Delete IC invoicing tax","operationId":"deleteIcInvoicingTax","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 **Token scopes**: `invoice-adjustments:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}]}},"/contracts/{contract_id}/ic-invoicing-taxes":{"get":{"tags":["IC invoicing taxes"],"summary":"Get IC invoicing taxes","operationId":"getIcInvoicingTaxes","description":"Retrieves the VAT and withholding tax settings configured for an independent contractor contract.\n **Token scopes**: `invoice-adjustments:read`","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.0","nullable":true,"description":"VAT percentage"}},"description":"VAT tax details (if applicable)"},"withholding_tax":{"type":"object","nullable":true,"properties":{"percentage":{"type":"number","example":"10.0","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"}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:read"]}]},"post":{"tags":["IC invoicing taxes"],"summary":"Create IC invoicing tax","operationId":"createIcInvoicingTax","description":"Creates an invoicing tax entry for an independent contractor contract.\n **Token scopes**: `invoice-adjustments:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}],"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}},"patch":{"tags":["IC invoicing taxes"],"summary":"Update IC invoicing tax","operationId":"updateIcInvoicingTax","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 **Token scopes**: `invoice-adjustments:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}],"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}}},"/contracts/{contract_id}/milestones":{"get":{"tags":["Milestones"],"summary":"Retrieve Milestones by Contract","operationId":"getMilestonesByContract","description":"Retrieves all milestones associated with a specific contract, including each milestone's title, amount, status, relevant dates, and creator and reviewer information.\n **Token scopes**: `milestones:read`","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"}],"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","format":"date-time","example":"2024-11-26T15:30:00Z","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"}],"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"}],"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":{"$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":"The unique identifier of the Deel contract for which milestones are being retrieved."}],"security":[{"deelToken":[]},{"oauth2":["milestones:read"]}]},"post":{"tags":["Milestones"],"summary":"Create a Milestone","operationId":"createMilestone","description":"Creates a new payment milestone on a milestone-based contract. After creation, the milestone enters a review workflow before payment is processed.\n **Token scopes**: `milestones:write`","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","properties":{"error":{"type":"string","example":"The title is required and cannot be empty.","description":"A detailed error message explaining the validation issue."}}}}},"description":"Invalid request. The input data did not meet the required validation rules."},"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":"A message indicating the contract was not found."}}}}},"description":"The specified contract ID does not exist."},"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 where the milestone will be added."}],"security":[{"deelToken":[]},{"oauth2":["milestones:write"]}],"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","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","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","nullable":false,"description":"An optional file to attach to the milestone entry."}},"description":"An optional file attachment for the milestone."}]}}}}},"required":true,"description":"The milestone object containing the required details to be added to the contract."}}},"/contracts/{contract_id}/tasks/{task_id}":{"delete":{"tags":["Tasks"],"summary":"Delete task","operationId":"deleteContractTaskById","description":"Deletes a specific task from a contract. An optional `reason` can be supplied for audit or documentation purposes.\n **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/contracts/{contract_id}/tasks":{"get":{"tags":["Tasks"],"summary":"List of tasks","operationId":"listOfTasks","description":"Retrieves all tasks associated with a specific contract, including each task's ID, amount, submission date, status, and description.\n **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]},"post":{"tags":["Tasks"],"summary":"Create a new task","operationId":"createANewTask","description":"Creates a new task for the contractor associated with the specified contract. A task can include an amount, description, and submission date.\n **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/contracts/gp":{"post":{"tags":["Global Payroll"],"summary":"Create a Global Payroll (GP) contract","operationId":"createAGlobalPayrollGpContract-v2026-01-01","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 **Token scopes**: `contracts:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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":{"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."}}},"/contracts/{contract_id}/tasks/many/reviews":{"post":{"tags":["Tasks"],"summary":"Review multiple tasks","operationId":"reviewMultipleTasks","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/gp/workers/{worker_id}/banks":{"get":{"tags":["Global Payroll"],"summary":"Retrieve bank accounts","operationId":"getGpBankAccounts","description":"Returns all bank accounts associated with the employee.\n **Token scopes**: `people:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]},"post":{"tags":["Global Payroll"],"summary":"Add bank account","operationId":"addGpBankAccount","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 **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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."}}},"/contracts/{contract_id}/tasks/{task_id}/reviews":{"post":{"tags":["Tasks"],"summary":"Review a single task","operationId":"reviewASingleTask","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 **Token scopes**: `contracts:write`","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":[{"id":"00000000-0000-0000-0000-000000000000","amount":1500,"status":"approved","attachment":{"key":"file-key-123","filename":"task-details.pdf"},"description":"Completion of Q1 project tasks","date_submitted":"2024-11-01"}]}}},"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/employee-info/contract-types/{type}/countries/{country}":{"get":{"tags":["Employee Information"],"summary":"Employee additional info template","operationId":"employeeAdditionalInfoTemplate-v2026-01-01","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 **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/invoices":{"get":{"tags":["Accounting"],"summary":"Retrieve invoices","operationId":"retrieveInvoices","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 **Token scopes**: `accounting:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/invoice-adjustments":{"get":{"tags":["Invoices"],"summary":"List invoice adjustments","operationId":"listInvoiceAdjustments-v2026-01-01","description":"Returns invoice adjustments, optionally filtered by contract, adjustment type, status, invoice, reporter, or submission date range.\n **Token scopes**: `invoice-adjustments:read`","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":"990c9b5b-6d41-4917-b032-ac049877df3a","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":{"oneOf":[{"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"},{"enum":["ongoing_time_based","pay_as_you_go_time_based","payg_milestones","payg_tasks"],"type":"string"}]},"example":"milestones","description":"types of contracts to filter"},{"in":"query","name":"types","schema":{"oneOf":[{"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."}},{"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":"milestone","description":"types of invoice adjustments to filter"},{"in":"query","name":"statuses","schema":{"oneOf":[{"type":"array","items":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"status of invoice adjustment"}},{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string"}]},"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"}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:read"]}]},"post":{"tags":["Invoices"],"summary":"Create an invoice adjustment","operationId":"createAnInvoiceAdjustment","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 **Token scopes**: `invoice-adjustments:write`, `worker:write`","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}]},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"status of invoice adjustment"},"created":{"type":"boolean","nullable":false},"created_at":{"type":"string","format":"date-time","nullable":true,"description":"Long date-time format following ISO-8601"}},"description":"Details of invoice adjustment created."}}}}},"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":"recurring","schema":{"type":"string"},"example":"true","required":false,"description":"Add this invoice adjustment as recurring"}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write","worker:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["contract_id","date_submitted","type","description","amount"],"properties":{"type":{"enum":["bonus","commission","deduction","expense","other","overtime","time_off","vat"],"type":"string","description":"Type of invoice adjustment."},"amount":{"type":"number","example":100,"minimum":0,"nullable":false,"description":"Amount to be paid. Must be a positive number."},"contract_id":{"type":"string","example":"string","nullable":false,"description":"Id of a Deel contract."},"description":{"type":"string","example":"string","maxLength":30000,"description":"Description of the adjustment."},"date_submitted":{"type":"string","format":"date","example":"2022-12-31","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"paymentCycleId":{"type":"number","example":1,"nullable":true,"description":"ID of an existing active payment cycle - required if type is \"vat\""},"is_auto_approved":{"type":"boolean","example":true,"description":"If true, the invoice adjustment will be automatically approved as part of the request."},"hourly_report_preset_id":{"type":"string","format":"uuid","example":"990c9b5b-6d41-4917-b032-ac049877df3a","nullable":true,"description":"Id of an existing preset."}},"description":"Details of invoice adjustment to create."}}}},"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","description":"Type of invoice adjustment."},"amount":{"type":"number","minimum":0,"nullable":false,"description":"Amount to be paid. Must be a positive number."},"contract_id":{"type":"string","nullable":false,"description":"Id of a Deel contract."},"description":{"type":"string","maxLength":30000,"description":"Description of the adjustment."},"date_submitted":{"type":"string","format":"date","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"paymentCycleId":{"type":"string","nullable":true,"description":"ID of an existing active payment cycle - required if type is \"vat\""},"is_auto_approved":{"type":"boolean","description":"If true, the invoice adjustment will be automatically approved as part of the request."}},"description":"Details of invoice adjustment to create."},{"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."}]}}},"required":true,"description":"InvoiceAdjustment object that needs to be created"}}},"/hris/organization_structures/{hris_org_structure_id}":{"delete":{"tags":["Organization structure"],"summary":"Delete an Org Structure from the Organization","operationId":"deleteAnOrgStructureFromTheOrganization-v2026-01-01","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 **Token scopes**: `organizations:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]},"patch":{"tags":["Organization structure"],"summary":"Update an existing HRIS Org Structure","operationId":"updateAnExistingHrisOrgStructure-v2026-01-01","description":"Update an existing HRIS Org Structure including its name, settings, and teams hierarchy.\n **Token scopes**: `organizations:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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}},"get":{"tags":["Organization structure"],"summary":"Fetch an Org Structure from the Organization","operationId":"fetchAnOrgStructureFromTheOrganization-v2026-01-01","description":"Retrieves detailed information about a specific organizational structure including its teams and roles.\n **Token scopes**: `organizations:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/lookups/time-off-types":{"get":{"tags":["Lookups"],"summary":"Retrieve Time-Off Types","operationId":"retrieveTimeOffTypes","description":"Returns the predefined time-off types available for registration on the platform.","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":[],"security":[{"deelToken":[]},{"oauth2":[]}]}},"/knowledge-hub/country-guide/{country_code}":{"get":{"tags":["Knowledge Hub"],"summary":"Get Knowledge Hub Country Guides by Country Code","operationId":"getKnowledgeHubCountryGuidesByCountryCode","description":"Returns country guides segmented by audience and contract type for the specified `country_code`.\n **Token scopes**: `knowledge-hub:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["knowledge-hub:read"]}]}},"/eor/contracts/{contract_id}/offboarding":{"get":{"tags":["EOR"],"summary":"Retrieve Offboarding Request","operationId":"retrieveOffboardingRequest","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 **Token scopes**: `contracts:read`, `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","worker:read"]}]}},"/gp/workers/{worker_id}/terminations":{"post":{"tags":["Global Payroll"],"summary":"Request termination","operationId":"requestTermination","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 **Token scopes**: `global-payroll:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["global-payroll:write"]}],"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."}}},"/eor/contracts/{contract_id}/offboarding/required-information":{"get":{"tags":["EOR"],"summary":"Get additional information required to request employee termination","operationId":"getAdditionalInformationRequiredToRequestEmployeeTermination","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 **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/offboarding/restricted-dates":{"get":{"tags":["EOR"],"summary":"Retrieve restricted offboarding dates","operationId":"retrieveRestrictedOffboardingDates","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 **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/offboarding/time-offs":{"get":{"tags":["EOR"],"summary":"Retrieve Employee Time Off Data for Offboarding","operationId":"retrieveEmployeeTimeOffDataForOffboarding","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 **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/offboarding/resignation":{"post":{"tags":["EOR"],"summary":"Request contract resignation","operationId":"requestContractResignation","description":"Initiates a resignation request for an EOR contract.\n **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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"}}}}}}}}}},"/eor/contracts/{contract_id}/offboarding/resignations/review-pto":{"post":{"tags":["EOR"],"summary":"Submit employee resignation PTO review","operationId":"submitEmployeeResignationPtoReview","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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"}}}}}}}}}},"/eor/contracts/{contract_id}/offboarding/review-client-sign-offs":{"post":{"tags":["EOR"],"summary":"Review, approve, or request changes to EOR offboarding documents","operationId":"reviewApproveOrRequestChangesToEorOffboardingDocuments","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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"}}}}}}}}}},"/eor/contracts/{contract_id}/offboarding/termination":{"post":{"tags":["EOR"],"summary":"Initiate EOR contract termination request","operationId":"initiateEorContractTerminationRequest","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/eor/workers/contracts/{contract_id}/offboarding/resignation-letter/sign":{"post":{"tags":["EOR"],"summary":"Sign Resignation Letter","operationId":"signResignationLetter","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 **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","properties":{"signature":{"type":"string","example":"John Doe","description":"Employee signature"}}}}}}}}}},"/lookups/currencies":{"get":{"tags":["Lookups"],"summary":"Retrieve Supported Currency List","operationId":"retrieveSupportedCurrencyList","description":"Returns all currencies supported by the platform, including their ISO codes and names.","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":[],"security":[{"deelToken":[]},{"oauth2":[]}]}},"/legal-entities/{legal_entity_id}/cost-centers":{"get":{"tags":["Cost Centers"],"summary":"Get cost centers by legal entity","operationId":"getCostCentersByLegalEntity","description":"Returns all cost centers associated with the specified legal_entity_id.\n **Token scopes**: `legal-entity:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/tasks/{task_id}":{"patch":{"tags":["Tasks"],"summary":"Update Task By ID","operationId":"updateTaskById","description":"Applies a partial update to the specified task and returns whether the update was successful.\n **Token scopes**: `tasks:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["tasks:write"]}],"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."}}},"/managers":{"get":{"tags":["Managers"],"summary":"Retrieve List of Managers","operationId":"getManagers","description":"Returns a paginated list of all managers in the organization.\n **Token scopes**: `organizations:read`","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","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":{"$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,"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."}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"post":{"tags":["Managers"],"summary":"Create a Manager","operationId":"createManager","description":"Creates a new manager in the organization and returns the created manager's identity fields, including the assigned `id`.\n **Token scopes**: `organizations:write`","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"}},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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."}}},"/organizations":{"get":{"tags":["Organizations"],"summary":"Get Current Organization","operationId":"getOrganizations","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 **Token scopes**: `organizations:read`","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."}},"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/teams":{"get":{"tags":["Organizations"],"summary":"Get Team List","operationId":"getTeams","description":"Returns the list of teams within the authenticated user's organization, with each entry including the team's ID and name.\n **Token scopes**: `organizations:read`","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","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."}},"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/eor/validations/{country_code}":{"get":{"tags":["EOR"],"summary":"Retrieve detailed hiring guide for a country","operationId":"getEorCountryValidations","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 **Token scopes**: `contracts:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"salary":{"type":"object","properties":{"max":{"type":"string","nullable":true,"description":"Maximum salary."},"min":{"type":"string","nullable":true,"description":"Minimum salary."},"frequency":{"enum":["monthly","quarterly","annually","specific_month","specific_date"],"type":"string","description":"Frequency of the salary payment."}}},"holiday":{"type":"object","properties":{"max":{"type":"string","nullable":true,"description":"Maximum holidays."},"min":{"type":"string","nullable":true,"description":"Minimum holidays."},"mostCommon":{"type":"string","nullable":true,"description":"Most common holiday period."}}},"currency":{"type":"string","description":"Country currency."},"probation":{"type":"object","properties":{"max":{"type":"number","nullable":true,"description":"Maximum probation period."},"min":{"type":"number","nullable":true,"description":"Minimum probation period."}}},"health_insurance":{"type":"object","nullable":true,"properties":{"status":{"enum":["REQUIRED","ENABLED","DISABLED"],"type":"string","description":"Health insurance status."},"providers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Provider ID."},"name":{"type":"string","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."},"required":true,"description":"The two-letter ISO code of the country for which to retrieve the hiring guide."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/mailboxes/change-password":{"post":{"tags":["EOR"],"summary":"Change EOR Mailbox Password","operationId":"changeEorMailboxPassword","description":"Changes the mailbox password for an EOR worker.\n **Token scopes**: `worker:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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"}}},"/eor/contracts/{contract_id}/amendments":{"get":{"tags":["EOR"],"summary":"List all amendments for an EOR contract","operationId":"listAllAmendmentsForAnEorContract-v2026-01-01","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 **Token scopes**: `contracts:read`","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."},"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":"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"},"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":"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]},"post":{"tags":["EOR"],"summary":"Create an EOR contract amendment","operationId":"createAnEorContractAmendment-v2026-01-01","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 **Token scopes**: `contracts:write`","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."},"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-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"},"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":"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"},"example":"3w6pd6r","required":true,"description":"The unique identifier of the EOR worker contract"}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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."}}}}}}}}}},"/eor/contracts/{contract_id}/amendments/validation/settings":{"get":{"tags":["EOR"],"summary":" Get amendment validation settings for an EOR contract","operationId":"getAmendmentValidationSettingsForAnEorContract","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 **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/effective-date-limitations":{"get":{"tags":["EOR"],"summary":"Retrieve Effective Date Limitations","operationId":"retrieveEffectiveDateLimitations","description":"Returns validation rules for the effective date field within an EOR contract amendment flow.\n **Token scopes**: `contracts:read`","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","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":{"$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","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"},"required":true,"description":"A unique identifier for the employee contract amendment"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/pdf":{"get":{"tags":["EOR"],"summary":"Get EOR Contract Amendment PDF Download Link for Client and Employee","operationId":"getEorContractAmendmentPdfDownloadLinkForClientAndEmployee","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 **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/immigration/workers/{worker_id}/onboarding-case":{"get":{"tags":["Immigration"],"summary":"Retrieve onboarding right-to-work case for a worker","operationId":"retrieveOnboardingRightToWorkCaseForAWorker","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 **Token scopes**: `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/contracts":{"post":{"tags":["Contractors"],"summary":"Create a new contract","operationId":"createANewContract-v2026-01-01","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 **Token scopes**: `contracts:write`","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."}}}}}}},"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":[],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","anyOf":[{"allOf":[{"type":"object","required":["type","title","job_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":["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","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."}}},{"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","job_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","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_TASKS"},{"allOf":[{"type":"object","required":["type","title","job_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":{"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","job_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","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."}}},{"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","job_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":"Upload the file you want to attach to this entry."}},"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","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."}}},{"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","job_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":"Upload the file you want to attach to this entry."}},"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","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_TASKS"},{"allOf":[{"type":"object","required":["type","title","job_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":"Upload the file you want to attach to this entry."}},"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":{"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","job_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":"Upload the file you want to attach to this entry."}},"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","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."}}},{"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}},"get":{"tags":["Contracts"],"summary":"List of contracts","operationId":"listOfContracts","description":"Returns a paginated list of contract summaries for the organization, with optional filtering by status, type, team, country, currency, external ID, or a name search term. Use `GET /contracts/{contract_id}` to retrieve full details for a specific contract.\n **Token scopes**: `contracts:read`","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"}},"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."}},"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."},"notice_period":{"type":"number","default":0,"example":30,"minimum":0,"description":"Number of days required to give notice before terminating the contract."},"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,"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":{"type":"string"},"example":"123e4567-e89b-12d3-a456-426614174000","description":"Filter contracts for the given team ID. NOTE: All query parameters are technically strings or arrays of strings."},{"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":{"oneOf":[{"type":"array","items":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3}},{"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":{"enum":["cost_centers"],"type":"string"},"example":"cost_centers","description":"Include cost centers in the response."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/accept":{"post":{"tags":["EOR"],"summary":"Accept a contract amendment on behalf of the client.","operationId":"acceptAContractAmendmentOnBehalfOfTheClient","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 **Token scopes**: `contracts:write`","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":"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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."}}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/confirm":{"post":{"tags":["EOR"],"summary":"Confirm an existing contract amendment","operationId":"confirmAnExistingContractAmendment-v2026-01-01","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 **Token scopes**: `contracts:write`","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."},"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","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"},"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":"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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."}}},"/eor/contracts/{contract_id}/amendments/{amendment_id}/sign":{"post":{"tags":["EOR"],"summary":"Sign a contract amendment (employee)","operationId":"signAContractAmendmentEmployee","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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."}}},"/eor/job-scopes":{"get":{"tags":["EOR"],"summary":"List of job scope templates for EOR contracts","operationId":"listOfJobScopeTemplatesForEorContracts","description":"Returns predefined and custom job scope templates available for EOR contracts, optionally filtered to templates belonging to a specific team.\n **Token scopes**: `organizations:read`","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"},"description":"Team public id"}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/eor":{"post":{"tags":["EOR"],"summary":"Create an EOR contract","operationId":"createAnEorContract-v2026-01-01","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 **Token scopes**: `contracts:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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","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"],"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."}}},"/payouts/auto-withdrawal-setting":{"get":{"tags":["Payouts"],"summary":"Get the auto-withdrawal setting","operationId":"getTheAutoWithdrawalSetting","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 **Token scopes**: `worker:read`","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":"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":[],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]},"patch":{"tags":["Payouts"],"summary":"Change the auto-withdrawal setting","operationId":"changeTheAutoWithdrawalSetting-v2026-01-01","description":"Partially updates the auto-withdrawal configuration, allowing callers to enable or disable auto-withdrawal and change the target withdrawal method.\n **Token scopes**: `worker:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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"}}},"/immigration/visa-requirement/business":{"get":{"tags":["Immigration"],"summary":"Get business visa eligibility and requirements","operationId":"getBusinessVisaEligibilityAndRequirements","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 **Token scopes**: `immigration:read`","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"],"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)"}],"security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/immigration/workers/cases":{"get":{"tags":["Immigration"],"summary":"List of immigration cases for workers","operationId":"listOfImmigrationCasesForWorkers-v2026-04-02","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 **Token scopes**: `worker:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/payouts/balances":{"get":{"tags":["Payouts"],"summary":"List Contractor Balances","operationId":"listContractorBalances","description":"Returns the total available balances for the authenticated contractor, broken down by currency and aggregated into a single cross-currency total.\n **Token scopes**: `worker:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/contracts/custom_fields":{"get":{"tags":["Custom Fields"],"summary":"List all custom fields","operationId":"listAllCustomFields","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 **Token scopes**: `contracts:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/payouts/contractors/methods":{"get":{"tags":["Payouts"],"summary":"Fetch all payout methods","operationId":"getPayoutMethods","description":"Returns all payout methods associated with the authenticated account, with optional filtering to return only the default method.\n **Token scopes**: `worker:read`, `worker:write`","responses":{"200":{"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"},"selectedOption":{"type":"string","example":"swift_code","description":"Specifies the type of bank transfer method. Maps from requirements type field"}}}}},"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"},"is_default":true,"method_name":"Bank Method"},{"id":"223e4567-e89b-12d3-a456-426614174001","status":"verifying","address":{"city":"San Francisco","state":"CA","country":"US","post_code":"22406","first_line":"Second Line"},"is_default":false,"method_name":"Backup Method"}]}}},"description":"List of payout methods retrieved 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":"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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]},"post":{"tags":["Payouts"],"summary":"Create a bank transfer method","operationId":"createBankTransferMethod","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 **Token scopes**: `worker:read`, `worker:write`","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":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}],"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}}},"/payouts/withdrawals":{"post":{"tags":["Payouts"],"summary":"Request to withdraw funds","operationId":"requestToWithdrawFunds","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 **Token scopes**: `worker:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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"}}}}}}}}}},"/legal-entities/{legal_entity_id}/payroll-events":{"get":{"tags":["List Cycles"],"summary":"List payroll cycles","operationId":"listPayrollCycles-v2026-01-01","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 **Token scopes**: `legal-entity:read`","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."},"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","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."}],"security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/reports/payroll/cycles/{cycle_id}/gross-to-net":{"get":{"tags":["Reports"],"summary":"Gets G2N report data for a given payroll cycle by it's ID.","operationId":"getsG2NReportDataForAGivenPayrollCycleByItsId-v2026-01-01","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 **Token scopes**: `payslips:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["payslips:read"]}]}},"/hris/organization_structures":{"get":{"tags":["Organization structure"],"summary":"Get Organization Structure","operationId":"getAllOrgStructures","description":"Returns the organization's hierarchical structure, including departments and teams, with offset-based pagination.\n **Token scopes**: `organizations:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"post":{"tags":["Organization structure"],"summary":"Create a new HRIS Organization Structure.","operationId":"createOrgStructure","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 **Token scopes**: `organizations:write`","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":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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}}},"/departments":{"get":{"tags":["Organizations"],"summary":"Retrieve Departments","operationId":"GetDepartments","description":"Returns the list of departments within the authenticated user's organization, including each department's identifier, name, and parent department where applicable.\n **Token scopes**: `organizations:read`","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."}},"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]}},"/hris/worker_relations/profile":{"post":{"tags":["Worker Relations"],"summary":"Create a worker relation","operationId":"createAWorkerRelation-v2026-01-01","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 **Token scopes**: `profile:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["profile:write"]}],"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}}},"/adjustments":{"post":{"tags":["Adjustments"],"summary":"Create a new adjustment","operationId":"createANewAdjustment-v2026-01-01","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 **Token scopes**: `adjustments:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["adjustments:write"]}],"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"}}},"/hris/worker_relations/profile/external":{"post":{"tags":["Worker Relations"],"summary":"Create worker relation with external Ids","operationId":"createWorkerRelationExternalId","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 **Token scopes**: `profile:write`","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"}},"security":[{"deelToken":[]},{"oauth2":["profile:write"]}],"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}}},"/immigration/client/cases/{id}":{"get":{"tags":["Immigration"],"summary":"Get immigration case details","operationId":"getImmigrationCaseDetails-v2026-01-01","description":"Retrieves the details of an immigration case by its case ID.\n **Token scopes**: `immigration:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/contracts/{contract_id}/invitations":{"delete":{"tags":["Contracts"],"summary":"Remove invite","operationId":"uninviteToSignContract","description":"Removes the active signing invitation from a contract to allow a new invitation to be issued to the worker.\n **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"post":{"tags":["Contracts"],"summary":"Send contract to worker","operationId":"inviteToSignContract","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/contracts/{contract_id}/invite":{"get":{"tags":["Contracts"],"summary":"Get worker invite link","operationId":"getWorkerInviteLink-v2026-01-01","description":"Retrieves the signing invitation link generated for the worker on a contract, with optional localization via the `locale` parameter.\n **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/benefits/legal-entities/{legal_entity_id}/paystubs":{"get":{"tags":["Paystubs"],"summary":"Get paystubs from legal entity integrated with external benefits vendor","operationId":"getPaystubsFromLegalEntityIntegratedWithExternalBenefitsVendor-v2026-01-01","description":"Returns paginated paystubs for a legal entity that is integrated with an external benefits vendor. Results can be filtered by payroll state and date range; paystubs in the `OPEN` state do not include employee-level detail.\n **Token scopes**: `benefits:read`","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"data":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"employees":{"type":"array","items":{"type":"object","properties":{"gross_pay":{"type":"number","example":1000,"nullable":true,"description":"Gross pay."},"contract_id":{"type":"string","example":"48fjd3","nullable":false,"description":"The contract id."},"employee_id":{"type":"string","example":"40233e16-a043-4c68-85c1-6a369755b5a5","nullable":false,"description":"Unique identifier for the employee."},"hours_worked":{"type":"number","example":160,"nullable":true,"description":"The worked hours."},"contributions":{"type":"array","items":{"type":"object","nullable":false,"properties":{"name":{"type":"string","example":"401k","nullable":false,"description":"The contribution name."},"type":{"enum":["Roth","Trad","Loan"],"type":"string","example":"Roth","nullable":false,"description":"The type of contribution."},"amount":{"type":"number","example":100,"nullable":false,"description":"The contribution amount."}},"description":"Details about the contributions."},"nullable":false,"description":"List of employee's contributions."},"employerContributions":{"type":"array","items":{"type":"object","nullable":false,"properties":{"name":{"type":"string","example":"401k","nullable":false,"description":"The contribution name."},"type":{"enum":["Match Rate","Non Elective","Safe Harbor Type 1","Safe Harbor Type 2"],"type":"string","example":"Match Rate","nullable":false,"description":"The type of contribution."},"amount":{"type":"number","example":100,"nullable":false,"description":"The contribution amount."}},"description":"Details about the contributions."},"nullable":false,"description":"List of employeer's contributions."}}},"nullable":false,"description":"List of employees associated with the payroll."},"payroll_id":{"type":"string","example":"40233e16-a043-4c68-85c1-6a369755b5a5","nullable":false,"description":"Unique identifier for the payroll."},"payment_date":{"type":"string","example":"2022-01-01","nullable":false,"description":"Payment date."},"payroll_type":{"enum":["CORRECTION","RECONCILIATION","PARALLEL","HISTORICAL","OFFCYCLE","REGULAR"],"type":"string","example":"CORRECTION","nullable":false,"description":"Payroll type."},"payroll_state":{"enum":["OPEN","LOCKED","CLOSED"],"type":"string","example":"OPEN","nullable":false,"description":"Payroll state."},"payroll_end_date":{"type":"string","example":"2022-01-15","nullable":false,"description":"Payroll end date."},"payroll_schedule":{"enum":["MONTHLY","BIMONTHLY","BIWEEKLY","WEEKLY"],"type":"string","example":"MONTHLY","nullable":false,"description":"Payroll cycle type."},"payroll_start_date":{"type":"string","example":"2022-01-01","nullable":false,"description":"Payroll start date."}}},"description":"List of paystubs"},"page":{"type":"object","properties":{"cursor":{"type":"string","example":"40233e16-a043-4c68-85c1-6a369755b5a5","nullable":true,"description":"The last fetched id to start querying from"},"total_rows":{"type":"integer","example":100,"nullable":false,"description":"Total number of rows"},"items_per_page":{"type":"integer","example":10,"nullable":false,"description":"Items per page"}}}}}}}}},"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":"states","schema":{"type":"array","items":{"enum":["OPEN","LOCKED","CLOSED"],"type":"string"}},"example":["OPEN"],"required":false,"description":"Payroll states: OPEN | LOCKED | CLOSED (OPEN doesn't have `employees` info)"},{"in":"query","name":"date_start","schema":{"type":"string"},"example":"2022-01-01","required":false,"description":"Start date to fectch the paystubs from"},{"in":"query","name":"date_end","schema":{"type":"string"},"example":"2022-01-15","required":false,"description":"End date to fectch the paystubs"},{"in":"query","name":"items_per_page","schema":{"type":"integer","default":10},"example":10,"required":false,"description":"Items per page"},{"in":"query","name":"cursor","schema":{"type":"string"},"example":"40233e16-a043-4c68-85c1-6a369755b5a5","required":false,"description":"The last fetched id to start querying from"},{"in":"path","name":"legal_entity_id","schema":{"type":"string"},"example":"40233e16-a043-4c68-85c1-6a369755b5a5","required":true,"description":"Id from the legal entity to fetch data"}],"security":[{"deelToken":[]},{"oauth2":["benefits:read"]}]}},"/eor/workers/banks":{"post":{"tags":["EOR"],"summary":"Add bank account","operationId":"addBankAccount","description":"Registers a bank account for an EOR employee. Returns the `id` of the newly created bank account record.\n **Token scopes**: `worker:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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"}}}}}}}},"/time_offs/profile/{hris_profile_id}/entitlements":{"get":{"tags":["Time Off"],"summary":"Get Profile Entitlements","operationId":"getProfileEntitlements","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 **Token scopes**: `time-off:read`","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"],"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"],"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","description":"Tracking period end date"}}}},"hris_profile_id":{"type":"string","example":"d290f1ee-6c54-4b01-90e6-d701748f0851","description":"HRIS profile ID"}}}}},"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":"query","name":"policy_type_name","schema":{"enum":["Moving leave","Adoption leave","Personal leave","Parental leave","Military leave","Childbirth leave","Study leave","Sick leave","Bereavement leave","Family & domestic violence leave","Marriage/wedding leave","Blood donation leave","Volunteer leave","Vacation","Doctor's appointment leave","Maternity leave","Hajj leave","Paternity leave","Civic/public duty leave","Childcare leave","Unpaid leave","Paid leave","Other leave","Disability leave","Pregnancy leave","RTT","Regional holiday","Breastfeeding leave","Advanced vacation"],"type":"string","example":"Moving leave","nullable":true,"maxLength":255,"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"}],"security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/time_offs/profile/{hris_profile_id}/policies":{"get":{"tags":["Time Off"],"summary":"List policies","operationId":"listPolicies","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 **Token scopes**: `time-off:read`","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","example":{"id":"c7f4986f-39a4-4f5d-9325-f37a8e9f5cdf","name":"Vacation"},"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",null],"type":"string","example":"ROLLING","nullable":true,"description":"Cadence for tracking policy periods"},"policy_allowances":{"type":"array","items":{"type":"object","example":{"id":"c7f4986f-39a4-4f5d-9325-f37a8e9f5cdf","type":"BASE_ALLOWANCE","accrual_type":"TIMEFRAME","accrual_unit":"MONTH","rollover_type":"CARRY_OVER","entitlement_unit":"CALENDAR_DAY","accrual_unit_amount":1,"enable_bank_holidays":true,"balance_tracking_type":"FLEXIBLE_NO_LIMIT","entitlement_start_date":null,"entitlement_start_type":"IMMEDIATELY","entitlement_start_unit":null,"entitlement_unit_amount":15,"accrual_application_type":"BEGIN_OF_CYCLE","rollover_expiration_unit":null,"rollover_limit_unit_amount":5,"entitlement_expiration_unit":null,"entitlement_start_unit_amount":null,"rollover_expiration_unit_amount":null,"entitlement_expiration_unit_amount":null,"zero_out_negative_balances_on_rollover":true,"part_time_prorated_entitlement_unit_amount":null,"balance_tracking_flexible_custom_request_amount":null},"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":["LUMPSUM","TIMEFRAME","EVENT","TIME_OFF_IN_LIEU"],"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","example":{"prorates_on_hire":true,"prorates_on_termination":true,"part_time_worker_treatment_type":"CUSTOM_ENTITLEMENT","part_time_worker_treatment_specific_amount":12},"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":"PRORATION","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":["Moving leave","Adoption leave","Personal leave","Parental leave","Military leave","Childbirth leave","Study leave","Sick leave","Bereavement leave","Family & domestic violence leave","Marriage/wedding leave","Blood donation leave","Volunteer leave","Vacation","Doctor's appointment leave","Maternity leave","Hajj leave","Paternity leave","Civic/public duty leave","Childcare leave","Unpaid leave","Paid leave","Other leave","Disability leave","Pregnancy leave","RTT","Regional holiday","Breastfeeding leave","Advanced vacation"],"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."}],"security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/time_offs/{time_off_id}":{"delete":{"tags":["Time Off"],"summary":"Cancel time-off request","operationId":"cancelTimeOffRequest","description":"Cancels the time-off request identified by time_off_id, setting its status to CANCELED regardless of its current state.\n **Token scopes**: `time-off:write`, `worker:write`","responses":{"204":{"content":{"application/json":{"schema":{"type":"object","properties":{}}}},"description":"time off 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":"time_off_id","schema":{"type":"string","format":"uuid"},"example":"123e4567-e89b-12d3-a456-426614174000","required":true,"description":"Time off request id"}],"security":[{"deelToken":[]},{"oauth2":["time-off:write","worker:write"]}]},"patch":{"tags":["Time Off"],"summary":"Update time-off request","operationId":"updateTimeOffRequest","description":"Applies a partial update to an existing time-off request identified by time_off_id. Only fields included in the request body are modified.\n **Token scopes**: `time-off:write`, `worker:write`","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"],"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."},"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."},"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"],"type":"string","example":"WORKING_DAY","description":"Type of the time off daily. Can be WORKING_DAY, NON_WORKING_DAY or HOLIDAY."},"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":"object","properties":{"message":{"type":"string","example":"There is already a time-off for the dates 2026-03-05 and 2026-03-05","description":"Error message describing what went wrong"}},"description":"Error details"},"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":{"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"}],"security":[{"deelToken":[]},{"oauth2":["time-off:write","worker:write"]}],"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":{"oneOf":[{"type":"string","format":"date","example":"2025-05-13","description":"An specific date in the time-off request"},{"type":"string","format":"date-time","example":"2025-05-13T00:00:00Z","description":"An specific date in the time-off request. Please note that only the date (YYYY-MM-DD) part will be used."}],"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":{"oneOf":[{"type":"string","format":"date","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."},{"type":"string","format":"date-time","example":"2021-08-02T00:00:00Z","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. Please note that only the date (YYYY-MM-DD) part will be used."}],"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":{"oneOf":[{"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."},{"type":"string","format":"date-time","example":"2021-08-01T00:00:00Z","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. Please note that only the date (YYYY-MM-DD) part will be used."}],"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":{"oneOf":[{"type":"string","format":"date","example":"2025-05-13","description":"An specific date in the time-off request"},{"type":"string","format":"date-time","example":"2025-05-13T00:00:00Z","description":"An specific date in the time-off request. Please note that only the date (YYYY-MM-DD) part will be used."}],"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":{"oneOf":[{"type":"string","format":"date","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."},{"type":"string","format":"date-time","example":"2021-08-02T00:00:00Z","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. Please note that only the date (YYYY-MM-DD) part will be used."}],"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":{"oneOf":[{"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."},{"type":"string","format":"date-time","example":"2021-08-01T00:00:00Z","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. Please note that only the date (YYYY-MM-DD) part will be used."}],"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"}}},"/time_offs/dailies":{"get":{"tags":["Time Off"],"summary":"Get Work Schedule and Holidays","operationId":"getWorkScheduleAndHolidays","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 **Token scopes**: `time-off:read`","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","description":"State where the holiday is celebrated"},"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":"Formated 'YYYY-MM-DD' date of the holiday"},"name_variations":{"type":"array","items":{"type":"string","example":"January 1","description":"Alternative names for the holiday"},"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"}}},"example":[{"date":"2025-01-01T00:00:00.000Z","name":"New Year's Day","type":"HOLIDAY","source":"EXTERNAL","states":[],"country":"US","description":"New Year's Day global holiday","parsed_date":"2025-01-01T00:00:00.000+00:00","is_mandatory":true,"is_every_year":true,"formatted_date":"2025-01-01","name_variations":["January 1"],"created_by_profile_id":null}],"description":"List of holidays within the date range "},"work_schedule":{"type":"object","example":{"work_week":{"friday":8,"monday":8,"sunday":0,"tuesday":8,"saturday":0,"thursday":8,"wednesday":8},"hours_per_day":8,"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"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","example":{"date":"2025-01-01","time_off_daily_type":"HOLIDAY"},"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":"Date with holiday or work status by day"},"example":[{"date":"2025-01-01","time_off_daily_type":"HOLIDAY"},{"date":"2025-01-02","time_off_daily_type":"WORKING_DAY"},{"date":"2025-01-03","time_off_daily_type":"WORKING_DAY"}],"description":"List of days with holiday or work status"}}},"example":[{"holidays":[{"date":"2025-01-01T00:00:00.000Z","name":"New Year's Day","type":"HOLIDAY","source":"EXTERNAL","states":[],"country":"US","description":"New Year's Day global holiday","parsed_date":"2025-01-01T00:00:00.000+00:00","is_mandatory":true,"is_every_year":true,"formatted_date":"2025-01-01","name_variations":["January 1"],"created_by_profile_id":null}],"work_schedule":{"work_week":{"friday":8,"monday":8,"sunday":0,"tuesday":8,"saturday":0,"thursday":8,"wednesday":8},"hours_per_day":8,"hris_profile_id":"d290f1ee-6c54-4b01-90e6-d701748f0851"},"time_off_dailies":[{"date":"2025-01-01","time_off_daily_type":"HOLIDAY"},{"date":"2025-01-02","time_off_daily_type":"WORKING_DAY"},{"date":"2025-01-03","time_off_daily_type":"WORKING_DAY"}]}],"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"}],"security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/time_offs/policy-validation-templates":{"get":{"tags":["Time Off"],"summary":"Retrieve policy validation templates","operationId":"retrievePolicyValidationTemplates","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 **Token scopes**: `time-off:read`","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"],"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_BASED","EVENT","TIME_OFF_IN_LIEU","HOURLY","LUMPSUM"],"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."},"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":"DAY","nullable":true,"description":"Unit for the required notice period."},"request_start_type":{"enum":["IMMEDIATELY","FIXED_PERIOD"],"type":"string","example":"IMMEDIATELY","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":"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":"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."}],"security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/time_offs/global-payroll/sync":{"post":{"tags":["Time Off"],"summary":"External HR Time Off Synchronization","operationId":"externalHrTimeOffSynchronization","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 **Token scopes**: `time-off:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["time-off:write"]}],"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","default":true,"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","default":"time off start 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","Disability leave","Doctor's appointment leave","Family & domestic violence leave","Floating Holiday Allowance","Hajj leave","Marriage/wedding leave","Maternity 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","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."}}}]}}}}}}}}}}},"/time_offs/review":{"post":{"tags":["Time Off"],"summary":"Approve/Reject time-off requests","operationId":"approveRejectTimeOffRequests-v2026-01-01","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; the response distinguishes successfully processed requests from those that encountered errors.\n **Token scopes**: `time-off:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["time-off:write"]}],"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"}}}}}}}},"/profiles":{"patch":{"summary":"Profiles","operationId":"profiles","description":"Applies a partial update to the authenticated user's profile, modifying only the fields supplied in the request body.\n **Token scopes**: `profile:write`, `profile:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["profile:write","profile:read"]}],"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"}}},"/eor/workers/contracts/{contract_id}/hr-documents":{"get":{"tags":["EOR"],"summary":"List HR verification letters and documents","operationId":"listHrVerificationLettersAndDocuments","description":"Returns all HR verification letters and documents associated with the employee contract.\n **Token scopes**: `worker:read`","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":"The unique identifier of the employee contract."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/people":{"get":{"tags":["People"],"summary":"List of People","operationId":"listOfPeople-v2026-01-01","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 **Token scopes**: `people:read`","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."},"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."}],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]},"post":{"tags":["People"],"summary":"Create a direct employee","operationId":"createADirectEmployee","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 **Token scopes**: `people:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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}}},"/invoices/deel":{"get":{"tags":["Accounting"],"summary":"Retrieve Deel invoices","operationId":"retrieveDeelInvoices","description":"Returns a paginated list of invoices for Deel platform fees.\n **Token scopes**: `accounting:read`","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":{"$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":"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'"}],"security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/invoices/{id}/download":{"get":{"tags":["Accounting"],"summary":"Download invoice PDF","operationId":"getBillingInvoiceDownloadLink","description":"Returns a temporary download URL for an invoice PDF; the URL expires at the time indicated by `expires_at` in the response.\n **Token scopes**: `accounting:read`","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":{"$ref":"#/components/responses/ResponseBodyForApiError"},"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."}],"security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/invoices/{invoice_id}":{"get":{"tags":["Accounting"],"summary":"Get invoice by id","operationId":"getInvoiceById-v2026-01-01","description":"Retrieves the details of a single invoice by `invoice_id`.\n **Token scopes**: `accounting:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["accounting:read"]}]}},"/adjustments/{id}":{"delete":{"tags":["Adjustments"],"summary":"Delete an adjustment","operationId":"deleteAdjustment","description":"Permanently deletes an adjustment by its id.\n **Token scopes**: `adjustments:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["adjustments:write"]}]},"get":{"tags":["Adjustments"],"summary":"Retrieve an adjustment","operationId":"retrieveAnAdjustment","description":"Retrieves a specific adjustment by its id, including its amount, status, payment cycle dates, and associated contract_id.\n **Token scopes**: `adjustments:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["adjustments:read"]}]},"patch":{"tags":["Adjustments"],"summary":"Update an adjustment","operationId":"updateAdjustment","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 **Token scopes**: `adjustments:write`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"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":"id","schema":{"type":"string"},"example":"5f4e1b2b-4b7b-4b7b-4b7b-4b7b4b7b4b7b","required":true,"description":"Deel adjustment id."}],"security":[{"deelToken":[]},{"oauth2":["adjustments:write"]}],"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."},"description":{"type":"string","example":"Your description here","maxLength":255,"minLength":3,"description":"Description of adjustment."}},"description":"Details of adjustment to update"}}}}},"required":true,"description":"Adjustment object that needs to be updated"}}},"/adjustments/categories":{"get":{"tags":["Adjustments"],"summary":"Retrieve categories","operationId":"retrieveCategories","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 **Token scopes**: `adjustments:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["adjustments:read"]}]}},"/contracts/{contract_id}/adjustments":{"get":{"tags":["Adjustments"],"summary":"Retrieve adjustments","operationId":"retrieveAdjustments","description":"Retrieves all adjustments associated with a specific contract, optionally scoped to a date range.\n **Token scopes**: `adjustments:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["adjustments:read"]}]}},"/candidates":{"post":{"tags":["Candidates"],"summary":"Add Candidate","operationId":"addCandidate","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 **Token scopes**: `candidates:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["candidates:write"]}],"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"}}},"/contracts/{contract_id}/preview":{"get":{"tags":["Contractors"],"summary":"Preview a contract agreement","operationId":"previewAContractAgreement","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 **Token scopes**: `contracts:read`, `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","worker:read"]}]}},"/contract-templates":{"get":{"tags":["Contracts"],"summary":"Retrieve contract templates","operationId":"getContractTemplates","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 **Token scopes**: `contracts:read`","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."}},"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/equity/exercise/{public_id}":{"patch":{"tags":["Contracts"],"summary":"Approve an equity exercise","operationId":"approveAnEquityExercise-v2026-01-01","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/contracts/{contract_id}/equity_withholding_estimate":{"get":{"tags":["Contracts"],"summary":"Get an estimate of withholding amount given an equity event.","operationId":"getContractEquityWithholdingAmount","description":"Returns an estimated withholding amount for an equity event against the specified contract, along with the assumptions and tax breakdown behind the calculation. The estimate is derived from the `event_value` and `event_currency` provided as query parameters.\n **Token scopes**: `contracts:read`, `global-payroll:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"oid":{"type":"string","example":"37nex2x","description":"Deel contract id."},"fx_rate":{"type":"string","example":"0.7815","description":"Exchange rate used to convert event currency to country of taxation currency."},"breakdown":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","example":"Solidarity tax","description":"Name of withholding component."},"rate":{"type":"string","example":"0.055","description":"Withholding amount of component expressed as a percentage of event value."},"amount":{"type":"string","example":"550.00","description":"Withholding amount of component."}}}},"event_value":{"type":"string","example":"100000.00","description":"Event value that user provided."},"event_currency":{"type":"string","example":"USD","description":"Event currency that user provided."},"withholding_currency":{"type":"string","example":"GBP","description":"Country of taxation currency."},"aggregate_withholding_rate":{"type":"string","example":"0.15","description":"Total withholding amount expressed as a percentage of event value."},"overall_withholding_amount":{"type":"string","example":"1500.00","description":"Total withholding amount denominated in country of taxation currency (withholding_currency)."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Bad request."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object"}}},"description":"Unable to calculate due to missing information."},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","required":true,"description":"Deel contract id."},{"in":"query","name":"event_value","schema":{"type":"string","maxLength":50,"minLength":1},"example":"10000.00","required":true,"description":"The monetary value of the equity event."},{"in":"query","name":"event_currency","schema":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3},"example":"USD","required":true,"description":"Three-letter currency code for the payment, following ISO 4217."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","global-payroll:read"]}]}},"/contracts/{contract_id}/milestones/{milestone_id}":{"delete":{"tags":["Milestones"],"summary":"Delete a Milestone","operationId":"deleteMilestoneById","description":"Permanently deletes a specific milestone from a contract. This operation is irreversible and removes all associated milestone data.\n **Token scopes**: `milestones:write`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"deleted":true}},"required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","nullable":false,"description":"Confirms that the milestone was successfully deleted."}}}}}}},"description":"Milestone successfully deleted."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Invalid contract or milestone ID.","description":"A message indicating the provided contract or milestone ID is not valid."}}}}},"description":"Invalid request. The provided contract or milestone ID is invalid."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Contract or milestone not found.","description":"A message indicating that the specified contract or milestone does not exist."}}}}},"description":"Contract or milestone not found."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Internal server error.","description":"A general error message for internal server issues."}}}}},"description":"Server error. Something went wrong while processing the request."}},"parameters":[{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"37nex2x","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"},"required":true,"description":"The unique identifier of the milestone that is to be deleted."}],"security":[{"deelToken":[]},{"oauth2":["milestones:write"]}]},"get":{"tags":["Milestones"],"summary":"Retrieve a single milestone","operationId":"getMilestonesByContractAndId","description":"Retrieves a single milestone identified by milestone_id within a specific contract.\n **Token scopes**: `milestones:read`","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"}]},"title":{"type":"string","nullable":false,"description":"Title of milestone."},"amount":{"type":"string","description":"Amount to be paid for the milestone."},"status":{"type":"string","nullable":false,"description":"Current status of milestone."},"created_at":{"type":"string","format":"date-time","nullable":true,"description":"Long date-time format following ISO-8601"},"description":{"type":"string","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"}]},"full_name":{"type":"string","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"}]},"full_name":{"type":"string","nullable":false,"description":"Reviewer's full name.","x-sensitive-pii":true}},"description":"Reviewer's information."},"approval_requested":{"type":"boolean","description":"Indicates if the contractor has requested the approval for the milestone."}}}}}}},"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."},{"in":"path","name":"milestone_id","schema":{"type":"string"},"required":true,"description":"ID of milestone to return"}],"security":[{"deelToken":[]},{"oauth2":["milestones:read"]}]}},"/contracts/{contract_id}/payment_cycles":{"get":{"tags":["Contracts"],"summary":"Retrieve contractor payment dates","operationId":"retrieveContractorPaymentDates","description":"Fetches the scheduled payment dates and current status of each payment cycle for a specific contract.\n **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/workers/contracts/{contract_id}/pdf":{"get":{"tags":["Contracts"],"summary":"Retrieve contract PDF download link","operationId":"retrieveContractPdfDownloadLink","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 **Token scopes**: `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/equity/exercise":{"post":{"tags":["Contracts"],"summary":"Create a request to exercise equity.","operationId":"createARequestToExerciseEquity-v2026-01-01","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 **Token scopes**: `contracts:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/workers/contracts/{contract_id}/reject":{"post":{"tags":["Contracts"],"summary":"Reject contract","operationId":"rejectContract","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 **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}]}},"/contracts/{contract_id}/custom_fields/{id}":{"delete":{"tags":["Custom Fields"],"summary":"Delete Contract custom field by Id","operationId":"DeleteContractCustomField","description":"Clears the value of a custom field on the specified contract, identified by the custom field `id`.\n **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]}},"/people/{worker_id}/custom_fields/{id}":{"delete":{"tags":["Custom Fields"],"summary":"Delete the custom field value from Worker by Id","operationId":"DeleteCustomFieldValueFromWorker","description":"Removes a specific custom field value from a worker record by the custom field's ID.\n **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}]}},"/contracts/custom_fields/{id}":{"get":{"tags":["Custom Fields"],"summary":"Get custom fields from contracts","operationId":"getCustomFieldsFromContracts","description":"Retrieves a single custom field definition from a contract by its `id`, returning the field's name, type, settings, placement, and description.\n **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/contracts/{contract_id}/custom_fields":{"get":{"tags":["Custom Fields"],"summary":"Retrieve custom fields for a contract","operationId":"retrieveCustomFieldsForAContract","description":"Returns all custom fields associated with the specified contract.\n **Token scopes**: `contracts:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]},"put":{"tags":["Custom Fields"],"summary":"Update custom field value","operationId":"UpsertCustomFieldValueFromContracts","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/people/custom_fields/{id}":{"get":{"tags":["Custom Fields"],"summary":"Get custom field from people by id","operationId":"getCustomFieldFromPeopleById","description":"\"Retrieves a single person custom field definition by its `id`.\n **Token scopes**: `people:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/immigration/client/cases":{"post":{"tags":["Immigration"],"summary":"Create an immigration case","operationId":"createAnImmigrationCase","description":"Creates a new immigration case for a worker. The appropriate visa type must be determined before calling this endpoint.\n **Token scopes**: `immigration:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["immigration:write"]}],"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, employee_details and team_id become required"},"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}},"get":{"tags":["Immigration"],"summary":"List of immigration cases","operationId":"listOfImmigrationCases-v2026-01-01","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 **Token scopes**: `immigration:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/contracts/{contract_id}/cost-centers":{"post":{"tags":["Cost Centers"],"summary":"Assign cost centers to an employment contract","operationId":"assignCostCentersToAnEmploymentContract-v2026-01-01","description":"Assign cost centers to employment by contract id\n **Token scopes**: `contracts:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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"}}},"/contracts/{contract_id}/documents":{"post":{"tags":["Contracts"],"summary":"Attach a file to contract","operationId":"addContractDocument","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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."}}},"/daas/payslips":{"get":{"tags":["Deel As a Service"],"summary":"Get list of payslips for an EOR employee","operationId":"getEorEmployeePayslips","description":"Returns all payslips for an EOR employee.\n **Token scopes**: `worker:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/workers/contracts/{contract_id}/offer-letter":{"get":{"tags":["EOR"],"summary":"Preview job offer letter","operationId":"previewJobOfferLetter","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 **Token scopes**: `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/contract/{contract_id}":{"patch":{"tags":["EOR"],"summary":"Update EOR Contract","operationId":"updateEorContract","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 **Token scopes**: `contracts:write`","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":["error"],"properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"ARCHIVED_CONTRACT","description":"Error code identifier"},"status":{"type":"integer","example":400,"description":"HTTP status code"},"message":{"type":"string","example":"Cannot resubmit an archived contract","description":"Error message details"}}}}},"examples":{"invalid_schedule":{"value":{"error":{"code":"PENDING_AMENDMENTS","status":400,"message":"Cannot update work schedule for contracts with in-progress amendments"}}},"archived_contract":{"value":{"error":{"code":"ARCHIVED_CONTRACT","status":400,"message":"Cannot resubmit an archived contract"}}},"invalid_start_date":{"value":{"error":{"status":400,"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":["error"],"properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"FORBIDDEN_ACCESS","description":"Error code identifier"},"status":{"type":"integer","example":403,"description":"HTTP status code"},"message":{"type":"string","example":"Organization cannot use EOR schedules","description":"Error message details"}}}}}}},"description":"Forbidden"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"CONTRACT_NOT_FOUND","description":"Error code identifier"},"status":{"type":"integer","example":404,"description":"HTTP status code"},"message":{"type":"string","example":"Contract not found","description":"Error message details"}}}}}}},"description":"Not Found"},"500":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"object","properties":{"code":{"type":"string","example":"INTERNAL_SERVER_ERROR","description":"Error code identifier"},"status":{"type":"integer","example":500,"description":"HTTP status code"},"message":{"type":"string","example":"Internal server error occurred","description":"Error message details"}}}}},"examples":{"internal_error":{"value":{"error":{"code":"INTERNAL_SERVER_ERROR","status":500,"message":"Internal server error occurred"}}}}}},"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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","salary"],"properties":{"scope":{"oneOf":[{"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."},"scope_validation_id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Scope validation UUID."}}}]},"salary":{"type":"number","format":"float","example":100000,"maximum":9999999999999,"minimum":0,"description":"Annual salary amount"},"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 if is_hourly is true)"},"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"],"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"}}},"/benefits/legal-entities/{legal_entity_id}/401k/plans/{plan_id}":{"put":{"tags":["Plans 401K"],"summary":"Update 401k plan","operationId":"update401KPlan-v2026-01-01","description":"Replaces the full configuration of a 401k plan within the specified legal entity. As a PUT operation, the complete plan object must be supplied; any omitted fields will not be preserved.\n **Token scopes**: `benefits:write`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name","start_date","contribution_type"],"properties":{"id":{"type":"string","example":"5faa596d-b915-46cb-88fc-96e9d4ad8ccb","description":"ID of the 401K plan."},"name":{"type":"string","example":"401K Plan","description":"Name of the 401K plan."},"details":{"type":"object","example":{},"description":"Object containing additional information about the 401K plan."},"end_date":{"type":"string","example":"2022-12-01T00:00:00.000Z","description":"End date of the plan."},"start_date":{"type":"string","example":"2024-12-01T00:00:00.000Z","description":"Start date of the plan."},"contribution_type":{"enum":["NEC_PERCENTAGE","NEC_FIXED_AMOUNT","PERCENTAGE","FIXED_AMOUNT","MATCH"],"type":"string","example":"PERCENTAGE","description":"Type of contribution for the 401K plan."},"contribution_limit":{"type":"number","example":10,"description":"Limit of the contribution."},"contribution_value":{"type":"number","example":10,"description":"Value of the contribution if type is percent or amount."},"contribution_value_for_match_rate":{"type":"array","items":{"type":"object","properties":{"rate":{"type":"number","example":10,"nullable":true,"description":"Rate of matching contribution."},"limit":{"type":"number","example":100,"nullable":true,"description":"Limit up to which the match rate is applicable."}},"description":"Contribution values for match rate type."},"example":[{"rate":10,"limit":100}],"description":"Array of objects containing limits and rates for match rate contribution type."}},"description":"Plan object for non PEO legal entity."}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","example":"Invalid request body. Missing required field: name","description":"Error message describing what went wrong with the request."}}}}},"description":"Bad Request - Invalid input parameters or validation error."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","example":"Plan for legal entity 9585241d-2387-4d80-abea-cea4dde4807d not found","description":"Error message indicating the requested resource was not found."}}}}},"description":"Not Found - The specified plan or legal entity was not found."},"500":{"content":{"application/json":{"schema":{"type":"object","required":["error"],"properties":{"error":{"type":"string","example":"Error dispatching provider plan update request","description":"Error message indicating an internal server error occurred."}}}}},"description":"Internal Server Error - An unexpected error occurred on the server."}},"parameters":[{"in":"path","name":"legal_entity_id","schema":{"type":"string"},"example":"9585241d-2387-4d80-abea-cea4dde4807d","required":true,"description":"Id from the legal entity to update a 401k plan"},{"in":"path","name":"plan_id","schema":{"type":"string"},"example":"9585241d-2387-4d80-abea-cea4dde4807d","required":true,"description":"401K plan id"}],"security":[{"deelToken":[]},{"oauth2":["benefits:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["name","start_date","contribution_type"],"properties":{"name":{"type":"string","example":"401K Plan","description":"Name of the 401K plan."},"details":{"type":"object","example":{},"description":"Object containing additional information about the 401K plan."},"end_date":{"type":"string","format":"date","example":"2022-01-01","description":"End date of the plan."},"start_date":{"type":"string","format":"date","example":"2022-01-01","description":"Start date of the plan."},"contribution_type":{"enum":["NEC_PERCENTAGE","NEC_FIXED_AMOUNT","PERCENTAGE","FIXED_AMOUNT","MATCH"],"type":"string","example":"PERCENTAGE","description":"Type of contribution for the 401K plan."},"contribution_value":{"type":"number","example":10,"description":"Value of the contribution if type is percent or amount."},"contribution_value_for_match_rate":{"type":"array","items":{"type":"object","required":["limit","rate"],"properties":{"rate":{"type":"number","example":10,"description":"Rate of matching contribution."},"limit":{"type":"number","example":100,"description":"Limit up to which the match rate is applicable."}},"description":"Contribution values for match rate type."},"example":[{"rate":10,"limit":100}],"description":"Array of objects containing limits and rates for match rate contribution type."}},"description":"Schema for the 401K Guideline Plan request body."}}}}},"required":true}}},"/eor/contracts/{contract_id}/offboarding/review-employee-sign-offs":{"post":{"tags":["EOR"],"summary":"Submit employee sign-off review for offboarding documents","operationId":"submitEmployeeSignOffReviewForOffboardingDocuments","description":"Records an employee's sign-off decision—approval or change request with feedback—for the offboarding document set of a contract.\n **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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"}}},"/eor/contracts/{contract_id}/documents/{type}/sign":{"post":{"tags":["EOR"],"summary":"Sign EOR contract document","operationId":"signEorContractDocument","description":"Applies a signature and job title to a specified EOR contract document. Currently only the `FRAMEWORK_AGREEMENT` document type is supported.\n **Token scopes**: `contracts:write`","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"},"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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."}}}}}}}}}},"/eor/workers/contracts/{contract_id}/offboarding":{"post":{"tags":["EOR"],"summary":"Submit EOR Worker Resignation","operationId":"submitEorWorkerResignation","description":"Formally initiates the resignation process for the EOR contract by submitting a resignation request on behalf of the worker.\n **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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."}}}}}}}}}},"/organizations/tasks":{"get":{"tags":["Organization Tasks"],"summary":"List organization tasks","operationId":"listOrganizationTasks-v2026-03-03","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 **Token scopes**: `tasks:read`","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)."}],"security":[{"deelToken":[]},{"oauth2":["tasks:read"]}]}},"/groups/{id}/clone":{"post":{"tags":["Groups"],"summary":"Clone a Group","operationId":"cloneAGroup","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 **Token scopes**: `groups:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["groups:write"]}],"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}}},"/immigration/workers/{worker_id}/cases/{case_id}/required-document/{document_request_id}":{"post":{"tags":["Immigration"],"summary":"Upload a required immigration document","operationId":"uploadARequiredImmigrationDocument","description":"Uploads a document against a specific case document requirement and submits it for review.\n **Token scopes**: `worker:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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"}}},"/hris/organization_structures/external/{external_id}":{"delete":{"tags":["Organization structure"],"summary":"Delete an Org Structure from the Organization by external ID","operationId":"deleteOrgStructureByExternalId","description":"Permanently removes an organization structure from the organization.\n **Token scopes**: `organizations:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]},"get":{"tags":["Organization structure"],"summary":"Fetch an Org Structure from the Organization","operationId":"getOrgStructureByExternalId","description":"Fetches a single organization structure, returning associated roles and teams alongside structure metadata.\n **Token scopes**: `organizations:read`","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":{"$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":"rkkej3","required":true,"description":"External ID"}],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"patch":{"tags":["Organization structure"],"summary":"Update an existing HRIS Org Structure by external ID","operationId":"updateOrgStructureByExternalId","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 **Token scopes**: `organizations:write`","responses":{"200":{"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":"external_id","schema":{"type":"string"},"example":"123456","required":true,"description":"External ID"}],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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}}},"/daas/banks/{bank_id}":{"patch":{"tags":["Deel As a Service"],"summary":"Modify bank account for an EOR employee","operationId":"patchEORBankAccount","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 **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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"}}},"/eor/additional-costs/{country}":{"get":{"tags":["EOR"],"summary":"Get EOR Additional Costs","operationId":"getEorAdditionalCosts","description":"Returns the allowances and non-statutory additional costs available for inclusion in an EOR contract quote for the specified country.\n **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/benefits":{"get":{"tags":["EOR"],"summary":"Retrieve Benefits by Country","operationId":"retrieveBenefitsByCountry","description":"Returns benefits available in a specific country, scoped by work visa requirement, weekly work hours, employment type, team, and legal entity.\n **Token scopes**: `benefits:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["benefits:read"]}]}},"/organizations/children":{"post":{"tags":["Organizations"],"summary":"Create child organization","operationId":"createChildOrganization","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 **Token scopes**: `organizations:write`","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"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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.","description":"The organization's name."},"department":{"type":"string","example":"Finance","description":"The department's name where the manager will be added"},"is_api_enabled":{"type":"boolean","example":true,"description":"The flag that enables the public API for the child organization."},"workforce_size":{"type":"integer","example":1000,"maximum":100000,"minimum":1,"description":"The workforce size of the child organization."},"headquarters_country":{"type":"string","example":"BR","maxLength":2,"minLength":2,"description":"The 2-letter country code of the organization's headquarters."}},"description":"The object that contains all the information related to the child organization that will be created."},"parent_organization":{"type":"object","properties":{"admin_email":{"type":"string","example":"admin@example.com","description":"The email of one of the managers of the parent organization that will be used to create an user for the child organization, it should exists on the parent organization."}},"description":"The object that contains the information related to the parent_organization."}},"description":"The request payload."}}}}},"required":true}}},"/eor/contracts/{contract_id}/documents":{"get":{"tags":["EOR"],"summary":"Fetch EOR contract documents","operationId":"fetchEorContractDocuments","description":"Returns all documents associated with a specific EOR contract.\n **Token scopes**: `contracts:read`","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"},"required":true,"description":"EOR contract ID"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/documents/{type}":{"get":{"tags":["EOR"],"summary":"Fetch EOR contract document","operationId":"fetchEorContractDocument","description":"Returns a specific document as a PDF for a given EOR contract. Currently only the `FRAMEWORK_AGREEMENT` document type is supported.\n **Token scopes**: `contracts:read`","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"},"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/workers/amendments/{amendment_id}/sign":{"post":{"tags":["Contracts"],"summary":"Sign amendment","operationId":"signAmendment","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 **Token scopes**: `worker:read`, `worker:write`, `benefits:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write","benefits:read"]}],"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}}},"/workers/contracts/{contract_id}/signatures":{"post":{"tags":["Contracts"],"summary":"Sign worker contract","operationId":"signWorkerContract","description":"Records the worker's signature on the contract identified by contract_id. Only contracts in an unsigned, pending state can be signed.\n **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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"}}},"/hris/worker_relations/profile/{hris_profile_oid}/child":{"put":{"tags":["Worker Relations"],"summary":"Create child worker relation","operationId":"createChildWorkerRelation-v2026-01-01","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 **Token scopes**: `profile:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["profile:write"]}],"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}}},"/eor/contracts/{contract_id}/project-assignment":{"get":{"tags":["EOR"],"summary":"Fetch EOR project assignment PDF","operationId":"fetchEorProjectAssignmentPdf","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 **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/hris/worker_relations/profile/external/{profile_id}/parent":{"put":{"tags":["Worker Relations"],"summary":"Create a parent worker relation with external id","operationId":"createAParentWorkerRelationWithExternalId-v2026-01-01","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 **Token scopes**: `profile:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["profile:write"]}],"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}}},"/eor/contracts/{contract_id}/project-assignment/checkin":{"get":{"tags":["EOR"],"summary":"Fetch Project Assignment Checkin Questionnaire Data","operationId":"fetchProjectAssignmentCheckinQuestionnaireData","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 **Token scopes**: `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]},"post":{"tags":["EOR"],"summary":"Submit Project Assignment Checkin Questionnaire Data","operationId":"submitProjectAssignmentCheckinQuestionnaireData","description":"Submits completed answers for a project assignment checkin questionnaire. All required questionnaire fields must be included; partial submissions are not accepted.\n **Token scopes**: `contracts:read`, `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","contracts:write"]}],"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."}}},"/eor/start-date":{"get":{"tags":["EOR"],"summary":"Fetch Start Date for EOR Contracts","operationId":"fetchStartDateForEorContracts","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 **Token scopes**: `contracts:read`","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)"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/onboarding/tracker/hris_profile/{hris_profile_id}":{"get":{"tags":["Onboarding"],"summary":"Get onboarding details by employee HRIS profile ID","operationId":"getOnboardingDetailsByEmployeeHrisProfileId-v2026-01-01","description":"Returns a worker's onboarding status by `hris_profile_id`.\n **Token scopes**: `contracts:read`, `people:read`","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":{"$ref":"#/components/responses/ResponseBodyForApiError"},"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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/eor/workers/banks-guide/country/{country}/currency/{currency}":{"get":{"tags":["EOR"],"summary":"Retrieve bank account guide","operationId":"retrieveBankAccountGuide-v2026-01-01","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 **Token scopes**: `worker:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/workers/banks/guide":{"get":{"tags":["EOR"],"summary":"Retrieve bank account guide","operationId":"getEORBankAccountGuide","description":"Returns the bank account form guide for an EOR employee, providing the field structure required to add a new bank account.\n **Token scopes**: `worker:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/workers/compliance-documents":{"get":{"tags":["EOR"],"summary":"List of employee compliance documents","operationId":"listOfEmployeeComplianceDocuments-v2026-01-01","description":"Returns the list of compliance documents associated with an EOR employee.\n **Token scopes**: `worker:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/workers/compliance-documents/{document_id}/download":{"get":{"tags":["EOR"],"summary":"Download submitted compliance document","operationId":"downloadSubmittedComplianceDocument","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 **Token scopes**: `worker:read`","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"},"required":true,"description":"Unique identifier for a compliance document in Deel."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/workers/tax-documents":{"get":{"tags":["EOR"],"summary":"List of tax documents for an employee","operationId":"listOfTaxDocumentsForAnEmployee-v2026-01-01","description":"Returns tax documents for the authenticated worker.\n **Token scopes**: `worker:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/eor/workers/{worker_id}/payslips":{"get":{"tags":["EOR"],"summary":"Retrieve employee payslip records","operationId":"retrieveEmployeePayslipRecords-v2026-01-01","description":"Returns a list of payslip records for the specified worker.\n **Token scopes**: `payslips:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["payslips:read"]}]}},"/eor/workers/{worker_id}/payslips/{payslip_id}/download":{"get":{"tags":["EOR"],"summary":"Retrieve payslip PDF download link","operationId":"getEORWorkerPayslipDownloadUrl","description":"Returns a URL for downloading the specified payslip as a PDF.\n **Token scopes**: `payslips:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["payslips:read"]}]}},"/eor/{oid}/terminations/{terminationId}":{"get":{"tags":["EOR"],"summary":"Get termination","operationId":"getEorTermination","description":"Returns termination data for the specified contract and termination record. Requires viewer permissions.\n **Token scopes**: `contracts:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read"]}]}},"/eor/contracts/{contract_id}/amendments/validate":{"post":{"tags":["EOR"],"summary":"Validate amendment data points","operationId":"validateAmendmentDataPoints","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 **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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}}},"/eor/contracts/{contract_id}/project-assignment/accept":{"post":{"tags":["EOR"],"summary":"Accept EOR project assignment as client","operationId":"acceptEorProjectAssignmentAsClient","description":"Records client approval of a project assignment for an EOR contract, confirming that the terms have been reviewed and accepted.\n **Token scopes**: `contracts:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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."}}}}}}}}}},"/eor/employment_cost":{"post":{"tags":["EOR"],"summary":"Calculate Employee Costs Globally","operationId":"calculateEmployeeCostsGlobally-v2026-01-01","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.","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."}}},"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"},"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":[],"security":[{"deelToken":[]},{"oauth2":[]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","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."}}}}},"examples":{"calculateCosts":{"value":{"data":{"state":"Bavaria","salary":60000,"country":"Germany","benefits":[{"plan_id":"basic-health","provider_id":"123"}],"currency":"EUR","country_code":"DE"}},"summary":"Example of a request body for calculating employee costs."}}}},"required":true}}},"/eor/job-scopes/validate":{"post":{"tags":["EOR"],"summary":"Request job scope validation","operationId":"requestJobScopeValidation-v2026-01-01","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 **Token scopes**: `contracts:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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"}}},"/eor/workers/compliance-documents/{document_id}":{"post":{"tags":["EOR"],"summary":"Upload employee compliance document","operationId":"uploadEmployeeComplianceDocument-v2026-01-01","description":"Uploads a compliance document file against the specified `document_id` for an EOR employee.\n **Token scopes**: `worker:write`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["success"],"properties":{"success":{"type":"boolean","example":true,"description":"Indicates whether the file upload was successful."}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable error message."}}}}}}}},"description":"Bad request. The file is missing or the document_id format is invalid."},"401":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable error message."}}}}}}}},"description":"Authentication failed. Bearer token is missing, expired, or invalid."},"403":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable error message."}}}}}}}},"description":"Forbidden. The worker does not have permission to upload to this compliance document, the document cannot be submitted in its current state, or the requirement is obsolete."},"404":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable error message."}}}}}}}},"description":"The compliance document specified by document_id was not found."},"500":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","required":["message"],"properties":{"message":{"type":"string","description":"Human-readable error message."}}}}}}}},"description":"Internal server error. The file upload failed or an unexpected error occurred."}},"parameters":[{"in":"path","name":"document_id","schema":{"type":"string","format":"uuid"},"example":"9b9fc43a-a90c-4615-ac50-baf1e314b53e","required":true,"description":"Unique identifier for a compliance document in Deel."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"The employee compliance document to upload. Accepted formats: PNG, JPG, JPEG, HEIC, PDF."}}}}},"required":true,"description":"The employee compliance document data to upload"}}},"/eor/workers/contracts/{contract_id}/signatures":{"post":{"tags":["EOR"],"summary":"Sign a contract ","operationId":"signAContract","description":"Signs a contract on behalf of the contractor, transitioning contract status to active and completing the contractor onboarding workflow.\n **Token scopes**: `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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}}},"/onboarding/tracker/{tracker_id}":{"get":{"tags":["Onboarding"],"summary":"Get onboarding details by onboarding tracker ID","operationId":"getOnboardingDetailsByOnboardingTrackerId-v2026-01-01","description":"Returns a worker's onboarding status by `tracker_id`.\n **Token scopes**: `contracts:read`, `people:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/eor/{oid}/terminations/resignation":{"post":{"tags":["EOR","Terminations"],"summary":"Request EOR Contract Resignation","operationId":"eorResignationRequest","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 **Token scopes**: `contracts:read`, `contracts:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","contracts:write"]}],"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"}}}}}}}}}}}},"/magic-link":{"post":{"tags":["EOR"],"summary":"Create magic link","operationId":"createMagicLink","description":"Generates a time-limited magic link for password-free worker authentication. The link and its expiry timestamp are returned in the response.\n **Token scopes**: `worker:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}],"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."}}},"/benefits/legal-entities/{id}/employees/{employee_id}":{"get":{"tags":["Employees"],"summary":"Get employee from organization integrated with external benefits vendor","operationId":"getEmployeeFromOrganizationIntegratedWithExternalBenefitsVendor-v2026-01-01","description":"Returns profile and contract data for a single employee within a legal entity integrated with an external benefits vendor. When `active_contracts` is `true`, only active contracts are included in the response.\n **Token scopes**: `people:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","example":"123456","nullable":false,"description":"Unique identifier for the employee."},"phones":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","example":"mobile","nullable":false,"description":"The type of phone number, e.g., mobile, home."},"dial_code":{"type":"string","example":"+1","nullable":false,"description":"The international dial code."},"phone_number":{"type":"string","example":"5555555555","nullable":false,"description":"The phone number."}},"x-sensitive-pii":true},"nullable":false,"description":"List of phone numbers associated with the employee."},"status":{"type":"string","example":"active","nullable":false,"description":"The employee status given his contracts."},"addresses":{"type":"array","items":{"type":"object","properties":{"zip":{"type":"string","example":"12345","nullable":true,"description":"The ZIP or postal code part of the address."},"city":{"type":"string","example":"New York","nullable":true,"description":"The city part of the address."},"type":{"type":"string","example":"home","nullable":false,"description":"The type of address, e.g., home, work."},"state":{"type":"string","example":"NY","nullable":true,"description":"The state part of the address."},"street":{"type":"string","example":"123 Main St","nullable":true,"description":"The street part of the address."},"country":{"type":"string","example":"US","nullable":false,"description":"The country part of the address."}}},"nullable":false,"description":"List of addresses associated with the employee.","x-sensitive-pii":true},"contracts":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"123456","nullable":false,"description":"Unique identifier for the contract."},"flsa":{"type":"boolean","example":true,"nullable":false,"description":"Indicates if the contract is compliant with the Fair Labor Standards Act."},"status":{"type":"string","example":"active","nullable":false,"description":"The contract status."},"end_date":{"type":"string","example":"2022-12-31","nullable":false,"description":"The end date of the contract, if applicable."},"job_title":{"type":"string","example":"Software Engineer","nullable":false,"description":"Job title or name of the contract."},"start_date":{"type":"string","example":"2022-01-01","nullable":false,"description":"The start date of the contract."},"compensations":{"type":"array","items":{"type":"object","nullable":false,"properties":{"rate":{"type":"number","example":1000,"nullable":false,"description":"The rate of compensation."},"type":{"enum":["MAIN","VARIABLE"],"type":"string","nullable":false,"description":"The type of compensation, either MAIN or VARIABLE."},"scale":{"type":"string","example":"hourly","nullable":true,"description":"The scale of the compensation."},"currency":{"type":"string","example":"USD","nullable":false,"description":"The currency of the compensation."},"cycle_scale":{"type":"string","example":"hour","nullable":true,"description":"The cycle scale of the compensation."},"variable_compensation_type":{"enum":["FIXED","PERCENTAGE"],"type":"string","example":"FIXED","nullable":true,"description":"The type of variable compensation, either FIXED or PERCENTAGE."}},"description":"Details about the compensations."},"nullable":false,"description":"List of compensations associated with the contract.","x-sensitive-employment":true},"contract_type":{"enum":["direct_employee","contractor"],"type":"string","nullable":false,"description":"The type of contract."},"employment_type":{"enum":["full_time","part_time"],"type":"string","nullable":false,"description":"The employment type, e.g., full-time or part-time."},"estimated_week_working_hours":{"type":"number","example":40,"nullable":false,"description":"Estimated number of working hours per week."}}},"nullable":false,"description":"List of contracts associated with the employee."},"hire_date":{"type":"string","example":"2022-01-01","nullable":true,"description":"Employee date of first contract."},"work_email":{"type":"string","example":"test@example.com","nullable":true,"description":"Employee work email address."},"date_of_birth":{"type":"string","example":"1990-01-01","nullable":true,"description":"Employee date of birth.","x-sensitive-pii":true},"marital_status":{"enum":["Common Law","Divorced","Married","Registered Partnership","Separated","Single","Widowed"],"type":"string","nullable":false,"description":"The marital status of the employee.","x-sensitive-pii":true},"personal_email":{"type":"string","example":"test2@example.com","nullable":true,"description":"Employee personal email address.","x-sensitive-pii":true},"document_number":{"type":"string","example":"123456789","nullable":false,"description":"Document number of employee identification document.","x-sensitive-pii":true},"legal_last_name":{"type":"string","example":"Doe","nullable":false,"description":"Employee legal last name.","x-sensitive-pii":true},"legal_first_name":{"type":"string","example":"John","nullable":false,"description":"Employee legal first name.","x-sensitive-pii":true},"legal_middle_name":{"type":"string","example":"Doe","nullable":true,"description":"Employee legal middle name.","x-sensitive-pii":true},"takes_owners_draw":{"type":"boolean","example":true,"nullable":false,"description":"Indicates if the employee takes an owner draw."},"ownership_percentage":{"type":"number","example":50,"nullable":false,"description":"The percentage of business ownership by the employee."}}}}},"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":"active_contracts","schema":{"type":"boolean","default":true},"example":true,"required":false,"description":"Fetch only active contracts for employees"},{"in":"path","name":"id","schema":{"type":"string"},"example":"123456","required":true,"description":"Id from the legal entity to fetch data"},{"in":"path","name":"employee_id","schema":{"type":"string"},"example":"123456","required":true,"description":"Employee id from the legal entity to fetch data"}],"security":[{"deelToken":[]},{"oauth2":["people:read"]}]}},"/benefits/legal-entities/{legal_entity_id}/contracts/{contract_id}/plans/{plan_id}":{"get":{"tags":["Enrollments"],"summary":"Get enrollment settings from an employee in a 401k plan","operationId":"getEnrollmentSettingsFromAnEmployeeInA401KPlan-v2026-01-01","description":"Returns the current enrollment settings for an employee, within a specific 401k plan.\n **Token scopes**: `benefits:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","example":"5f4e1d1b-4b7b-4b7b-8b7b-4b7b4b7b4b7b","description":"Enrollment id."},"type":{"enum":["ROTH","TRAD","LOAN","NEC"],"type":"string","example":"ROTH","description":"Type of the contribution for 401k."},"details":{"type":"object","nullable":true,"properties":{"key":{"type":"string","example":"value","description":"A key-value pair providing additional details about the enrollment."}},"description":"Object containing additional information about the enrollment."},"contribution_type":{"enum":["PERCENTAGE","FIXED_AMOUNT"],"type":"string","example":"PERCENTAGE","description":"Type of contribution."},"contribution_limit":{"type":"number","example":100,"description":"Maximum limit of contribution."},"contribution_value":{"type":"string","example":"10.00","description":"Value of the contribution."}}}}}}}},"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":"legal_entity_id","schema":{"type":"string"},"example":"5f4e1d1b-4b7b-4b7b-8b7b-4b7b4b7b4b7b","required":true,"description":"Legal entity id which employee/contract belongs"},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"5f4e1d1b-4b7b-4b7b-8b7b-4b7b4b7b4b7b","required":true,"description":"Contract id from the employee"},{"in":"path","name":"plan_id","schema":{"type":"string"},"example":"5f4e1d1b-4b7b-4b7b-8b7b-4b7b4b7b4b7b","required":true,"description":"Plan id to enroll the employee into"}],"security":[{"deelToken":[]},{"oauth2":["benefits:read"]}]},"post":{"tags":["Enrollments"],"summary":"Enroll an employee in a 401k plan","operationId":"enrollAnEmployeeInA401KPlan-v2026-01-01","description":"Enrolls a contract in a 401(k) plan, setting contribution rates and election details. The referenced plan must be active and created via `POST /benefits/legal-entities/{legal_entity_id}/401k/plans` before enrollment can proceed.\n **Token scopes**: `benefits:write`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"id":{"type":"string","description":"Enrollment id."},"type":{"enum":["ROTH","TRAD","LOAN","NEC"],"type":"string","example":"ROTH","description":"Type of the contribution for 401k."},"details":{"type":"object","properties":{"key":{"type":"string","example":"value","description":"A key-value pair providing additional details about the enrollment."}},"description":"Object containing additional information about the enrollment."},"contribution_type":{"enum":["PERCENTAGE","FIXED_AMOUNT"],"type":"string","example":"PERCENTAGE","description":"Type of contribution."},"contribution_limit":{"type":"number","example":100,"description":"Maximum limit of contribution."},"contribution_value":{"type":"number","example":10,"description":"Value of the contribution."}}}}}}},"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":"legal_entity_id","schema":{"type":"string"},"example":"fjej33","required":true,"description":"Legal entity id which employee/contract belongs"},{"in":"path","name":"contract_id","schema":{"type":"string"},"example":"3xkrzj","required":true,"description":"Contract id from the employee"},{"in":"path","name":"plan_id","schema":{"type":"string"},"example":"o449sm","required":true,"description":"Plan id to enroll the employee into"}],"security":[{"deelToken":[]},{"oauth2":["benefits:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["type","contribution_limit"],"properties":{"type":{"enum":["ROTH","TRAD","LOAN","NEC"],"type":"string","example":"ROTH","description":"Type of the contribution for 401k."},"details":{"type":"object","properties":{"key":{"type":"string","example":"value","description":"A key-value pair providing additional details about the enrollment."}},"description":"Object containing additional information about the enrollment."},"contribution_type":{"enum":["PERCENTAGE","FIXED_AMOUNT"],"type":"string","example":"PERCENTAGE","description":"Type of contribution."},"contribution_limit":{"type":"number","example":100,"description":"Maximum limit of contribution."},"contribution_value":{"type":"number","example":10,"description":"Value of the contribution."}},"description":"Schema for the 401K Guideline Plan request body."}}},"required":true}}},"/equities-tokens/tax-events":{"post":{"tags":["Equity Tokens"],"summary":"Create equity or token tax event","operationId":"createEquityOrTokenTaxEvent","description":"Submits an equity or token tax event for an EOR worker enrolled in Equity & Token Services.\n **Token scopes**: `equities:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["equities:write"]}],"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}}},"/forms/eor/create-contract/{country_code}":{"get":{"tags":["Forms"],"summary":"Fetch EOR Contract form","operationId":"fetchEorContractForm","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 **Token scopes**: `forms:read`","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":"null","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":{"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":{"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."}}},"description":"List of questions within the section."}}},"description":"Sections within the page."}}},"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":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"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"},"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"},"example":40,"required":false,"description":"The selected number of work hours per week."},{"in":"query","name":"contract_duration_in_days","schema":{"type":"integer"},"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"}],"security":[{"deelToken":[]},{"oauth2":["forms:read"]}]}},"/forms/eor/worker-additional-fields/{country_code}":{"get":{"tags":["Forms"],"summary":"Get worker additional fields for (EOR)","operationId":"getWorkerAdditionalFieldsForEor","description":"Retrieves the additional form fields required when onboarding EOR workers in the specified country.\n **Token scopes**: `forms:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["forms:read"]}]}},"/forms/eor/create-contract/definitions":{"post":{"tags":["Forms"],"summary":"Fetch multiple EOR Contract forms","operationId":"fetchMultipleEorContractForms","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 **Token scopes**: `forms:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["forms:read"]}],"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."}}},"/gp/legal-entities/{legal_entity_id}/reports":{"get":{"tags":["Global Payroll"],"summary":"List payroll events by legal entity","operationId":"listPayrollEventsByLegalEntity","description":"Retrieves payroll events associated with the specified legal entity, suitable for preparing payroll reports or auditing pay cycles.\n **Token scopes**: `global-payroll:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["global-payroll:read"]}]}},"/gp/reports/{id}/gross_to_net":{"get":{"tags":["Global Payroll"],"summary":"List gross-to-net report.","operationId":"listGrossToNetReport","description":"Returns paginated gross-to-net calculation records for the specified payroll report, with optional currency conversion applied to the results.\n **Token scopes**: `global-payroll:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["global-payroll:read"]}]}},"/gp/workers/{id}/payslips":{"get":{"tags":["Global Payroll"],"summary":"Retrieve employee payslips","operationId":"retrieveEmployeePayslips-v2026-01-01","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 **Token scopes**: `payslips:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["payslips:read"]}]}},"/gp/workers/{worker_id}/address":{"patch":{"tags":["Global Payroll"],"summary":"Update address","operationId":"updateAddress","description":"Partially updates the address on record for the GP employee.\n **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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"}}},"/gp/workers/{worker_id}/banks/{bank_id}":{"patch":{"tags":["Global Payroll"],"summary":"Modify bank account","operationId":"patchGpBankAccount","description":"Partially updates the bank account for the worker; only fields provided in the request body are modified.\n **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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."}}},"/gp/workers/{worker_id}/compensation":{"patch":{"tags":["Global Payroll"],"summary":"Update compensation","operationId":"updateCompensation","description":"Updates the compensation for the GP employee and returns the complete compensation history including the applied change.\n **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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."}}},"/gp/workers/{worker_id}/employee-information":{"patch":{"tags":["Global Payroll"],"summary":"Update employee information","operationId":"updateEmployeeInformation-v2026-01-01","description":"Partially updates personal details, tax information, and employment-related fields for the GP worker.\n **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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}}},"/gp/workers/{worker_id}/pto-policy":{"patch":{"tags":["Global Payroll"],"summary":"Update PTO policy","operationId":"updateGPEmployeePto","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 **Token scopes**: `people:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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."}}},"/groups/{id}":{"delete":{"tags":["Groups"],"summary":"Delete a group","operationId":"deleteGroup","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 **Token scopes**: `groups:write`","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","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}],"security":[{"deelToken":[]},{"oauth2":["groups:write"]}]},"patch":{"tags":["Groups"],"summary":"Edit a group","operationId":"editGroup","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 **Token scopes**: `groups:read`, `groups:write`","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","description":"The unique identifier of the updated group."},"name":{"type":"string","description":"The updated name of the group."},"created_at":{"type":"string","format":"date-time","description":"The timestamp when the group was created."},"updated_at":{"type":"string","format":"date-time","description":"The timestamp when the group was last updated."},"external_metadata":{"type":"object","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}],"security":[{"deelToken":[]},{"oauth2":["groups:read","groups:write"]}],"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}}},"/groups":{"get":{"tags":["Groups"],"summary":"Return list of groups","operationId":"getGroups","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 **Token scopes**: `groups:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The unique identifier of the group."},"name":{"type":"string","description":"The name of the group."},"status":{"enum":["active","archived"],"type":"string","description":"The current status of the group (active or archived)."},"managers":{"type":"number","description":"The number of managers associated with the group."},"created_at":{"type":"string","format":"date-time","description":"The timestamp when the group was created."},"updated_at":{"type":"string","format":"date-time","description":"The timestamp when the group was last updated."},"archived_at":{"type":"string","format":"date-time","nullable":true,"description":"The timestamp when the group was archived (if applicable)."},"external_metadata":{"type":"object","description":"Extra information about the group."}}}},"page":{"type":"object","properties":{"cursor":{"type":"string","description":"An opaque cursor to fetch the next set of results."},"total_rows":{"type":"integer","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","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},"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"},"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"},"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},"required":false,"description":"Include archived groups (soft deleted records). Defaults to `true`."},{"in":"query","name":"external_metadata","schema":{"type":"string"},"required":false,"description":"Extra information about the group."}],"security":[{"deelToken":[]},{"oauth2":["groups:read"]}]},"post":{"tags":["Groups"],"summary":"Create a group","operationId":"createGroup","description":"Creates a new group within the organization and returns the created group record, including its assigned `id`.\n **Token scopes**: `groups:read`, `groups:write`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"id":"9e12eb6b-90ea-4543-8ff1-7789e7b8db7e","name":"Realod","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","description":"The unique identifier of the created group."},"name":{"type":"string","description":"The name of the created group."},"created_at":{"type":"string","format":"date-time","description":"The timestamp when the group was created."},"updated_at":{"type":"string","format":"date-time","description":"The timestamp when the group was last updated."},"external_metadata":{"type":"object","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"}},"security":[{"deelToken":[]},{"oauth2":["groups:read","groups:write"]}],"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}}},"/payouts/contractors/methods/{id}":{"put":{"tags":["Payouts"],"summary":"Update a bank transfer method","operationId":"updateBankTransferMethod","description":"Fully replaces the bank transfer method; all method fields must be provided as this is a complete replacement, not a partial update.\n **Token scopes**: `worker:read`, `worker:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}],"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}}},"/eor/contracts/{contract_id}/hrx-documents":{"get":{"tags":["HRX Documents"],"summary":"Retrieve HRX documents","operationId":"retrieveHrxDocuments","description":"Returns a paginated list of HRX documents shared with an employee under a specific EOR contract.\n **Token scopes**: `worker:read`, `contracts:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read","contracts:read"]}]}},"/eor/contracts/{contract_id}/hrx-documents/{document_id}":{"get":{"tags":["HRX Documents"],"summary":"Download HRX documents","operationId":"downloadHrxDocuments","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 **Token scopes**: `contracts:read`, `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","worker:read"]}]}},"/it/orders":{"get":{"tags":["IT orders"],"summary":"List IT orders","operationId":"listItOrders","description":"Returns a cursor-paginated list of all IT equipment orders for the organization, spanning both historical and current procurement requests.\n **Token scopes**: `it-orders:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["it-orders:read"]}]}},"/immigration/workers/{worker_id}/cases/{case_id}/required-document":{"get":{"tags":["Immigration"],"summary":"Retrieve a required document for a case","operationId":"retrieveARequiredDocumentForACase","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 **Token scopes**: `worker:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/integrations/consent":{"get":{"tags":["Integrations"],"summary":"Get integration consent","operationId":"getIntegrationConsent","description":"Retrieves the OAuth consent record for the authenticated user or organization, including its current status, granted scope, and expiry.","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":[],"security":[{"deelToken":[]},{"oauth2":[]}]}},"/invoice-adjustments/{id}":{"delete":{"tags":["Invoices"],"summary":"Delete adjustment","operationId":"deleteInvoiceAdjustment","description":"Permanently removes an invoice adjustment by its `id`.\n **Token scopes**: `invoice-adjustments:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}]},"get":{"tags":["Invoices"],"summary":"Invoice line item by Id","operationId":"invoiceLineItemById-v2026-01-01","description":"Retrieves a single invoice line item by its `id`.\n **Token scopes**: `invoice-adjustments:read`, `worker:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:read","worker:read"]}]},"patch":{"tags":["Invoices"],"summary":"Update an invoice adjustment","operationId":"updateAnInvoiceAdjustment","description":"Applies a partial update to an existing invoice adjustment; only fields included in the request body are modified.\n **Token scopes**: `invoice-adjustments:write`, `worker:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write","worker:write"]}],"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}}},"/contracts/{contract_id}/invoice-adjustments":{"get":{"tags":["Invoices"],"summary":"Invoice line items by contract","operationId":"invoiceLineItemsByContract","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 **Token scopes**: `invoice-adjustments:read`","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","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","description":"Type of invoice adjustment."},"scale":{"type":"string","nullable":true},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"status of invoice adjustment"},"contract":{"type":"object","required":["id","title","type"],"properties":{"id":{"type":"string","nullable":false},"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","description":"Type of a contract"},"title":{"type":"string","nullable":false}}},"quantity":{"type":"number","nullable":true},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","minimum":0},"hours":{"type":"number","minimum":0},"weeks":{"type":"number","minimum":0},"minutes":{"type":"number","minimum":0}}},"attachment":{"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."},"created_at":{"type":"string","format":"date-time","nullable":false,"description":"Long date-time format following ISO-8601"},"invoice_id":{"type":"number","nullable":true},"description":{"type":"string","nullable":false},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}]},"full_name":{"type":"string","nullable":false,"x-sensitive-pii":true}}},"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"}]},"remarks":{"type":"string","nullable":false},"full_name":{"type":"string","example":"Jane Smith","x-sensitive-pii":true},"reviewed_at":{"type":"string"}}},"custom_scale":{"type":"string","nullable":true},"total_amount":{"type":"string","nullable":false},"currency_code":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3},"payment_cycle":{"type":"object","nullable":false,"required":["start_date","end_date"],"properties":{"end_date":{"type":"string","format":"date-time","nullable":true,"description":"Long date-time format following ISO-8601"},"start_date":{"type":"string","format":"date-time","nullable":true,"description":"Long date-time format following ISO-8601"}}},"date_submitted":{"type":"string","format":"date-time","nullable":false,"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":"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":"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":{"oneOf":[{"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"},{"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":"types of contracts to filter"},{"in":"query","name":"types","schema":{"oneOf":[{"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."}},{"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":"types of invoice adjustments to filter"},{"in":"query","name":"statuses","schema":{"oneOf":[{"type":"array","items":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"status of invoice adjustment"}},{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string"}]},"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."}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:read"]}]}},"/invoice-adjustments/{id}/reviews":{"post":{"tags":["Invoices"],"summary":"Review a single invoice adjustment","operationId":"updateInvoiceAdjustmentById","description":"Submits an approve or decline review decision for a single invoice adjustment.\n **Token scopes**: `invoice-adjustments:write`","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":"id","schema":{"type":"string"},"example":"5f4e3f3b-4b8b-4b1b-8e0b-1b1b1b1b1b1b","required":true,"description":"ID of an existing invoice adjustment."}],"security":[{"deelToken":[]},{"oauth2":["invoice-adjustments:write"]}],"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","nullable":false,"description":"The status of the adjustment."}}}}}}},"required":true}}},"/engage/learning/actionable-journeys":{"get":{"tags":["Learning"],"summary":"Retrieve worker's actionable journeys","operationId":"retrieveWorkersActionableJourneys-v2026-01-01","description":"Returns cursor-paginated ActionableJourneys assigned to the authenticated worker. 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 **Token scopes**: `worker:read`","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"],"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","cover_picture","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.","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","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","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","description":"Last name of the User","x-sensitive-pii":true},"first_name":{"type":"string","example":"Mary","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","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","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","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","description":"Last name of the User","x-sensitive-pii":true},"first_name":{"type":"string","example":"Mary","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","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","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","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."},"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","description":"Cursor for the next page of results"}},"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":"number","default":20,"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."}],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/legal-entities/{id}":{"delete":{"tags":["Legal Entities"],"summary":"Delete a legal entity","operationId":"deleteLegalEntity","description":"Archives the legal entity identified by id, marking it as inactive without permanently removing it; the response includes the archived_at timestamp.\n **Token scopes**: `legal-entity:read`, `legal-entity:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["legal-entity:read","legal-entity:write"]}]},"patch":{"tags":["Legal Entities"],"summary":"Edit a legal entity","operationId":"editLegalEntity","description":"Applies a partial update to an existing legal entity identified by id; only fields included in the request body are modified.\n **Token scopes**: `legal-entity:read`, `legal-entity:write`","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."},"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","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":"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","description":"The unique identifier of the legal entity."},"required":true,"description":"The ID of the legal entity to update."}],"security":[{"deelToken":[]},{"oauth2":["legal-entity:read","legal-entity:write"]}],"requestBody":{"content":{"application/json":{"schema":{"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","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."}}}}},"required":true}}},"/industries":{"get":{"tags":["Legal Entities"],"summary":"List all industry subcategories","operationId":"listAllIndustrySubcategories-v2026-01-01","description":"Lists industry subcategories with their parent category details and NAICS codes, supporting cursor-based pagination and sorting by category or subcategory name.\n **Token scopes**: `legal-entity:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/lookups":{"get":{"tags":["Lookups"],"summary":"Retrieve lookup information for currencies, countries, entity types, etc","operationId":"getLookups","description":"Returns reference data of the type specified by the `documents` query parameter; supported values are `currencies`, `countries`, `entity_types`, and `sic`.\n **Token scopes**: `legal-entity:read`","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`."}],"security":[{"deelToken":[]},{"oauth2":["legal-entity:read"]}]}},"/lookups/countries":{"get":{"tags":["Lookups"],"summary":"Retrieve Country List","operationId":"retrieveCountryList","description":"Returns all countries supported by the platform, including each country's visa support status, Employer of Record availability, sub-territories, and classification.","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":[],"security":[{"deelToken":[]},{"oauth2":[]}]}},"/lookups/job-titles":{"get":{"tags":["Lookups"],"summary":"Job titles list","operationId":"jobTitlesList","description":"Returns the platform's catalogue of predefined job titles. Results are paginated using cursor-based navigation via `after_cursor`.","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."}],"security":[{"deelToken":[]},{"oauth2":[]}]}},"/lookups/seniorities":{"get":{"tags":["Lookups"],"summary":"Retrieve Seniority Levels","operationId":"retrieveSeniorityLevels","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.","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"}],"security":[{"deelToken":[]},{"oauth2":[]}]}},"/managers/magic-links":{"post":{"tags":["Managers"],"summary":"Generate magic link for manager login","operationId":"generateMagicLinkForManagerLogin","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 **Token scopes**: `auth:write`","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 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":{"errors":{"type":"array","items":{"type":"object","required":["code","message","field"],"properties":{"code":{"type":"string","example":"unauthorized","description":"Machine-readable error code"},"field":{"type":"string","example":"authorization","description":"The field that caused the error"},"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","field"],"properties":{"code":{"type":"string","example":"forbidden","description":"Machine-readable error code"},"field":{"type":"string","example":"authorization","description":"The field that caused the error"},"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","field"],"properties":{"code":{"type":"string","example":"not_found","description":"Machine-readable error code"},"field":{"type":"string","example":"manager_id","description":"The field that caused the error"},"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","field"],"properties":{"code":{"type":"string","example":"internal_server_error","description":"Machine-readable error code"},"field":{"type":"string","example":"server","description":"The field that caused the error"},"message":{"type":"string","example":"Token generation failed","description":"Human-readable error message"}}}}}}}},"description":"Internal Server Error"}},"parameters":[],"security":[{"deelToken":[]},{"oauth2":["auth:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"manager_id":{"type":"string","example":"882cc059-6126-4279-8adc-629d4c876597","maxLength":100,"description":"Manager id."}}}}}}},"required":true,"description":"Details for magic link for managers generation."}}},"/contracts/{contract_id}/off-cycle-payments/{id}":{"get":{"tags":["Off-cycle Payments"],"summary":"Retrieve a single off-cycle payment","operationId":"getOffCyclePaymentByContractAndId","description":"Retrieves a single off-cycle payment identified by id within a specific contract.\n **Token scopes**: `off-cycle-payments:read`","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":"f47ac10b-58cc-4372-a567-0e02b2c3d479","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","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","nullable":false,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"123e4567-e89b-12d3-a456-426614174000","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}}},"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":"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":"mqj9gkr","required":true,"description":"Deel contract id."},{"in":"path","name":"id","schema":{"type":"string","format":"uuid"},"example":"f47ac10b-58cc-4372-a567-0e02b2c3d479","required":true,"description":"Deel off-cycle payment id."}],"security":[{"deelToken":[]},{"oauth2":["off-cycle-payments:read"]}]}},"/offboarding/tracker":{"get":{"tags":["Offboarding"],"summary":"Retrieve offboarding list","operationId":"retrieveOffboardingList-v2026-01-01","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 **Token scopes**: `contracts:read`, `people:read`","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","example":"eyJjb250cmFjdE9pZCI6Im03eWc2enAiLCJoaXJpbmdUeXBlIjoiY29udHJhY3RvciIsImhyaXNQcm9maWxlT2lkIjoiYjU1MGI3ZTUtZDZlMS00NjEzLTkzYmEtYTdlZTVmNzU4ODdjIn0","description":"A unique identifier for the offboarding item."},"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","description":"The object ID for the HRIS profile of the individual."}}},"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":{"type":"string","example":"ENDING_CONTRACT","description":"The type of offboarding (e.g., ENDING_CONTRACT, TERMINATION)."}}},"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":{"$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":"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","employee"],"type":"string","description":"Hiring type (e.g., contractor, employee)"},"default":[]},"example":["contractor"],"explode":true,"required":false,"description":"Hiring type (e.g., contractor, employee)"},{"in":"query","name":"progress_statuses","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":"Progress status of the contract"},{"in":"query","name":"limit","schema":{"type":"integer","default":20,"minimum":1},"example":50,"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":"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,"description":"Cursor-style pagination payload for the next page (pass values returned from the previous response)."},{"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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:read","people:read"]}]}},"/roles":{"get":{"tags":["Organizations"],"summary":"Get the roles of the current organization.","operationId":"getTheRolesOfTheCurrentOrganization-v2026-01-01","description":"Retrieves all roles defined within the current organization.\n **Token scopes**: `organizations:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"post":{"tags":["Organizations"],"summary":"Create organization custom role.","operationId":"CreateOrganizationRole","description":"Creates a new custom role within the current organization.\n **Token scopes**: `organizations:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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}}},"/roles/{roleId}":{"patch":{"tags":["Organizations"],"summary":"Update organization custom role","operationId":"UpdateOrganizationRole","description":"Applies a partial update to the custom role, modifying only the fields supplied in the request body.\n **Token scopes**: `organizations:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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}}},"/payouts/employees/methods/{id}":{"delete":{"tags":["Payouts"],"summary":"Delete Bank Details","operationId":"deleteBankDetails","description":"Permanently removes the bank payout method identified by the given method `id`.\n **Token scopes**: `worker:read`, `worker:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/payouts/contractors/methods/bank_transfers/requirements":{"get":{"tags":["Payouts"],"summary":"Get bank transfer requirements","operationId":"getBankTransferRequirements","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 **Token scopes**: `worker:read`, `worker:write`","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"},"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 creaion 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,"description":"The maximum length of the field"},"values_allowed":{"type":"array","items":{"type":"object","required":["key","name"],"properties":{"key":{"type":"string","description":"The country code (e.g., AL for Albania)."},"name":{"type":"string","description":"The full name of the country (e.g., Albania)."}}},"example":[{"key":"AS","name":"American Samoa"},{"key":"AD","name":"Andorra"}],"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}))$","description":"The regular expression to validate the field"},"refresh_requirements_on_change":{"type":"boolean","description":"Whether to refresh the requirements when the field value changes with field key as query parameter"}}}}}},"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"},"name":{"type":"string","example":"BIC of the intermediary bank","description":"User facing name of the intermediary object"},"type":{"type":"string","example":"text"},"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,"description":"The minimum length of the field"},"values_allowed":{"type":"array","items":{"type":"object","required":["key","name"],"properties":{"key":{"type":"string","description":"The country code (e.g., AL for Albania)."},"name":{"type":"string","description":"The full name of the country (e.g., Albania)."}}},"example":[{"key":"AS","name":"American Samoa"},{"key":"AD","name":"Andorra"}],"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}))$","description":"The regular expression to validate the field"}}}}}},"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":{"$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","pattern":"^[A-Z]{2}$","maxLength":2,"minLength":2},"required":true,"description":"Country code"},{"in":"query","name":"currency","schema":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3},"required":true,"description":"Currency code"},{"in":"query","name":"amount","schema":{"type":"number","format":"double"},"description":"Amount for calculating fees, if not provided, the default amount of 100.00 is used"}],"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/payouts/contractors/methods/bank_transfers/supported_routes":{"get":{"tags":["Payouts"],"summary":"Get bank transfer supported routes for contractor","operationId":"getBankTransferSupportedRoutes","description":"Returns all bank transfer routes available to the authenticated contractor.\n **Token scopes**: `worker:read`, `worker:write`","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"}},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]}},"/payouts/employees/methods":{"get":{"tags":["Payouts"],"summary":"Get Bank Details","operationId":"getBankDetails","description":"Retrieves the configured bank payout methods for an employee.\n **Token scopes**: `worker:read`, `worker:write`","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"}},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}]},"post":{"tags":["Payouts"],"summary":"Add/Edit Bank Details","operationId":"addEditBankDetails","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 **Token scopes**: `worker:read`, `worker:write`","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"}},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}],"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"}}}}}}}}}},"/payouts/contractors/settings/auto_withdraw":{"post":{"tags":["Payouts"],"summary":"Update auto withdraw setting for contractor","operationId":"updateAutoWithdrawSetting","description":"Updates the auto-withdrawal configuration for the authenticated contractor.\n **Token scopes**: `worker:read`, `worker:write`","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"}},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}],"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}}},"/payouts/employees/methods/bank_transfers/requirements":{"post":{"tags":["Payouts"],"summary":"Dynamic Requirements","operationId":"dynamicRequirements","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 **Token scopes**: `worker:read`, `worker:write`","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"}},"security":[{"deelToken":[]},{"oauth2":["worker:read","worker:write"]}],"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"}}}}}}}}}},"/people/{id}/department":{"put":{"tags":["People"],"summary":"Update organization structure","operationId":"updateOrganizationStructure","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 **Token scopes**: `people:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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}}},"/people/{id}/working-location":{"put":{"tags":["People"],"summary":"Update working location","operationId":"updatePeopleWorkingLocation","description":"Sets the working location for a worker identified by their HRIS profile ID.\n **Token scopes**: `people:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["people:write"]}],"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}}},"/benefits/legal-entities/{id}/401k/plans":{"get":{"tags":["Plans 401K"],"summary":"Get 401k plans for legal entity","operationId":"get401KPlansForLegalEntity-v2026-01-01","description":"Returns all 401k plans configured for the specified legal entity.\n **Token scopes**: `benefits:read`","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":"ID of the 401K plan."},"name":{"type":"string","example":"Employee Retirement Savings Plan","description":"Name of the 401K plan."},"details":{"type":"object","description":"Object containing additional information about the 401K plan."},"end_date":{"type":"string","example":"2023-01-01T00:00:00.000Z","description":"End date of the plan."},"start_date":{"type":"string","example":"2023-01-01T00:00:00.000Z","nullable":true,"description":"Start date of the plan."},"contribution_type":{"enum":["PERCENTAGE","FIXED_AMOUNT","MATCH","NEC_FIXED_AMOUNT","NEC_PERCENTAGE"],"type":"string","example":"PERCENTAGE","description":"Type of contribution for the 401K plan."},"contribution_value":{"type":"number","example":5,"description":"Value of the contribution if type is percent or amount."},"contribution_value_for_match_rate":{"type":"array","items":{"type":"object","properties":{"rate":{"type":"number","example":50,"maximum":100,"minimum":1,"nullable":true,"description":"Rate of matching contribution."},"limit":{"type":"number","example":10000,"maximum":100,"minimum":1,"nullable":true,"description":"Limit up to which the match rate is applicable."}}},"nullable":true,"description":"Array of objects containing limits and rates for match rate contribution type."}}},"description":"List of plans"}}}}},"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":"f47ac10b-58cc-4372-a567-0e02b2c3d479"},"required":true,"description":"Id from the legal entity to fetch 401k plans"}],"security":[{"deelToken":[]},{"oauth2":["benefits:read"]}]}},"/benefits/legal-entities/{id}/401k/plans/clean-up":{"post":{"tags":["Plans 401K"],"summary":"Clean up plan for a given legal entity","operationId":"cleanUpPlanForAGivenLegalEntity-v2026-01-01","description":"Triggers a cleanup of 401k plan data for the specified legal entity.\n **Token scopes**: `benefits:write`","responses":{"202":{"content":{"application/json":{"schema":{"type":"object","example":{}}}},"description":"Request accepted, processing asynchronously."},"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":"9585241d-2387-4d80-abea-cea4dde4807d","required":true,"description":"Id from the legal entity to clean up"}],"security":[{"deelToken":[]},{"oauth2":["benefits:write"]}]}},"/benefits/legal-entities/{id}/benefits/401k/activate":{"post":{"tags":["Plans 401K"],"summary":"Activate the 401k integration for the legal entity","operationId":"activateThe401KIntegrationForTheLegalEntity-v2026-01-01","description":"Activates the 401k benefits integration for the specified legal entity. Must be called before 401k plans can be created or employees enrolled.\n **Token scopes**: `benefits:write`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"isActive":{"type":"boolean","example":true,"nullable":false,"description":"Whether the 401k integration has been activated or not."}}}}},"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":"9585241d-2387-4d80-abea-cea4dde4807d","required":true,"description":"Id from the legal entity to activate 401k integration"}],"security":[{"deelToken":[]},{"oauth2":["benefits:write"]}]}},"/hris/positions/apply_changes":{"post":{"tags":["Positions"],"summary":"Apply changes to positions.","operationId":"applyChangesToPositions-v2026-01-01","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 **Token scopes**: `profile:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["profile:write"]}],"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}}},"/timesheets/presets/{id}":{"delete":{"tags":["Projects"],"summary":"Delete Hourly Report Preset","operationId":"deleteHourlyReportPreset","description":"Permanently deletes an hourly report preset identified by id.\n **Token scopes**: `timesheets:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]},"get":{"tags":["Projects"],"summary":"Get Hourly Report Preset by ID","operationId":"getHourlyReportPresetById","description":"Retrieves a single hourly report preset by its id.\n **Token scopes**: `timesheets:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]},"patch":{"tags":["Projects"],"summary":"Update Hourly Report Preset","operationId":"updateHourlyReportPreset","description":"Applies a partial update to an existing hourly report preset identified by id. Only fields included in the request body are modified.\n **Token scopes**: `timesheets:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}],"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}}},"/timesheets/root-presets":{"get":{"tags":["Projects"],"summary":"Get Hourly Report Root Presets","operationId":"getHourlyReportRootPresets","description":"Returns a cursor-paginated list of hourly report root presets, with optional filtering by work_statement_statuses and result ordering.\n **Token scopes**: `timesheets:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]},"post":{"tags":["Projects"],"summary":"Create Hourly Report Root Preset","operationId":"createHourlyReportRootPreset","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 **Token scopes**: `timesheets:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}],"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}}},"/timesheets/root-presets/{id}":{"get":{"tags":["Projects"],"summary":"Get Hourly Report Root Preset by ID","operationId":"getHourlyReportRootPresetById","description":"Retrieves a single hourly report root preset by its id, including its current status.\n **Token scopes**: `timesheets:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]}},"/timesheets/presets":{"post":{"tags":["Projects"],"summary":"Create Hourly Report Preset","operationId":"createHourlyReportPreset","description":"Creates a new hourly report preset, returning the assigned id upon success.\n **Token scopes**: `timesheets:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}],"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}}},"/screenings/aml/{entity_type}/{entity_id}":{"get":{"tags":["Screenings"],"summary":"AML API for Whitelabel - Data retrieval","operationId":"amlApiForWhitelabelDataRetrieval-v2026-01-01","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 **Token scopes**: `screenings:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["screenings:read"]}]}},"/screenings/kyc/details":{"get":{"tags":["Screenings"],"summary":"Get worker's KYC details","operationId":"getWorkersKycDetails","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 **Token scopes**: `screenings:read`","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":{"enum":["DRIVING_LICENSE","PASSPORT","GOVERNMENT_ID","SELFIE_WITH_ID","PROOF_OF_RESIDENCY","OTHER",null],"type":"string","example":"DRIVING_LICENSE","nullable":true,"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":{"type":"array","items":{"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":{"type":"array","items":{"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":{"type":"array","items":{"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"},"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":7},"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 "}],"security":[{"deelToken":[]},{"oauth2":["screenings:read"]}]}},"/screenings/verification-method":{"get":{"tags":["Screenings"],"summary":"Get verification method","operationId":"getVerificationMethod","description":"Returns the KYC verification method supported for a given combination of issuing country and document type.\n **Token scopes**: `screenings:read`, `worker:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["screenings:read","worker:read"]}]}},"/screenings/kyc/external":{"post":{"tags":["Screenings"],"summary":"Submit external KYC","operationId":"submitExternalKyc","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 **Token scopes**: `worker:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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"}}}}}}}}}},"/screenings/manual-verification":{"post":{"tags":["Screenings"],"summary":"Create manual verification screening","operationId":"createManualVerificationScreening","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 **Token scopes**: `worker:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:write"]}],"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}}},"/veriff/session":{"post":{"tags":["Screenings"],"summary":"Create Veriff session","operationId":"createVeriffSession","description":"Initiates an identity verification session via Veriff, returning a URL to which the worker must be redirected to complete the verification flow.\n **Token scopes**: `screenings:write`, `worker:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["screenings:write","worker:write"]}],"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}}},"/time_tracking/shifts/{external_id}":{"patch":{"tags":["Time Tracking Shifts"],"summary":"Update a shift","operationId":"updateAShift","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 **Token scopes**: `time-tracking:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}],"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}},"delete":{"tags":["Time Tracking Shifts"],"summary":"Delete a Shift by External ID","operationId":"deleteShiftExternalId","description":"Permanently deletes a shift identified by its external_id. Once deleted, the shift cannot be retrieved or modified.\n **Token scopes**: `time-tracking:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]},"get":{"tags":["Time Tracking Shifts"],"summary":"Get shift details","operationId":"getShiftDetails","description":"Retrieves the details of a specific shift.\n **Token scopes**: `time-tracking:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]}},"/contracts/{contract_id}/terminations":{"delete":{"tags":["Terminations"],"summary":"Delete Contract Termination Request","operationId":"deleteContractTerminationRequest","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 **Token scopes**: `contracts:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}]},"post":{"tags":["Terminations"],"summary":"Terminate contract","operationId":"terminateContract","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 **Token scopes**: `contracts:write`","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":{"$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":"eq2ykjw","required":true,"description":"The unique identifier of the contractor contract"}],"security":[{"deelToken":[]},{"oauth2":["contracts:write"]}],"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 /termination_reasons/paginated to retrieve available reasons. Can be provided independently or with termination_reason_description."},"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}}},"/time_offs/time-off-events":{"get":{"tags":["Time Off"],"summary":"Get Time Off Events for Profile","operationId":"getTimeOffEventsForProfile","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 **Token scopes**: `time-off:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["time-off:read"]}]}},"/time_offs/validate":{"post":{"tags":["Time Off"],"summary":"Validate time-off request","operationId":"validateTimeOffRequest-v2026-01-01","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 **Token scopes**: `time-off:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"dates":[{"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}],"amount":24,"is_valid":true,"new_end_date":"2025-05-15","new_start_date":"2025-05-13","remaining_balance":-8.333333333333334,"require_attachment":false,"require_description":false,"country_specific_validation_results":[{"data":{"ranges":[{"end_day":3,"start_day":1},{"end_day":19,"start_day":15}],"max_requests":30},"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"}],"country_specific_validation_results_next_tracking_period":[{"data":{"ranges":[{"end_day":3,"start_day":1},{"end_day":19,"start_day":15}],"max_requests":30},"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"}]}},"required":["data"],"properties":{"data":{"type":"object","example":{"dates":[{"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}],"amount":24,"is_valid":true,"new_end_date":"2025-05-15","new_start_date":"2025-05-13","remaining_balance":-8.333333333333334,"require_attachment":false,"require_description":false,"country_specific_validation_results":[{"data":{"ranges":[{"end_day":3,"start_day":1},{"end_day":19,"start_day":15}],"max_requests":30},"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"}],"country_specific_validation_results_next_tracking_period":[{"data":{"ranges":[{"end_day":3,"start_day":1},{"end_day":19,"start_day":15}],"max_requests":30},"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"}]},"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":[],"security":[{"deelToken":[]},{"oauth2":["time-off:read"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","example":{"data":{"dates":[{"date":"2025-05-13","day_type":"FULL_DAY"},{"date":"2025-05-14","day_type":"HALF_DAY"},{"date":"2025-05-15","day_type":"HALF_DAY"}],"is_paid":true,"end_date":"2025-05-15","start_date":"2025-05-13","description":"No description","half_end_date":false,"half_start_date":false,"deduction_amount":null,"time_off_type_id":"a2c4a920-e186-4a17-8397-e5706eaf4ee4","recipient_profile_id":"ec3aeb49-0fed-41d0-87c6-86ec22b750b3"}},"properties":{"data":{"type":"object","example":{"dates":[{"date":"2025-05-13","day_type":"FULL_DAY"},{"date":"2025-05-14","day_type":"HALF_DAY"},{"date":"2025-05-15","day_type":"HALF_DAY"}],"is_paid":true,"end_date":"2025-05-15","start_date":"2025-05-13","description":"No description","half_end_date":false,"half_start_date":false,"deduction_amount":null,"time_off_type_id":"a2c4a920-e186-4a17-8397-e5706eaf4ee4","recipient_profile_id":"ec3aeb49-0fed-41d0-87c6-86ec22b750b3"},"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","example":{"date":"2025-05-13","type":"WORKING_DAY","amount":8,"day_types":["FULL_DAY","HALF_DAY"],"time_off_percentage":1},"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."},"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."},"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","example":{"birth_date":"2025-05-13","adoption_date":"2025-05-13","was_premature_birth":true,"had_multiple_children":true},"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"}}},"required":true,"description":"Time off request data"}}},"/time_tracking/shift_rates/{external_id}":{"delete":{"tags":["Time Tracking Rates"],"summary":"Delete a Shift Rate by external ID","operationId":"deleteAShiftRateByExternalId-v2026-01-01","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 **Token scopes**: `time-tracking:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}]},"get":{"tags":["Time Tracking Rates"],"summary":"Retrieve a Shift Rate by External ID","operationId":"retrieveAShiftRateByExternalId","description":"Retrieves a shift rate.\n **Token scopes**: `time-tracking:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]},"patch":{"tags":["Time Tracking Rates"],"summary":"Update a shift rate","operationId":"updateAShiftRate","description":"Applies a partial update to an existing shift rate, modifying only the fields provided in the request body.\n **Token scopes**: `time-tracking:write`","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."}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}],"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}}},"/time_tracking/shift_rates":{"get":{"tags":["Time Tracking Rates"],"summary":"Retrieve a Paginated List of Shift Rates","operationId":"retrieveAPaginatedListOfShiftRates","description":"Returns a paginated list of shift rates. Use the limit and offset parameters to control page size and starting position within the result set.\n **Token scopes**: `time-tracking:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]},"post":{"tags":["Time Tracking Rates"],"summary":"Create a New Shift Rate","operationId":"createANewShiftRate","description":"Creates a new shift rate with a specified name, type, value, and an externally supplied identifier that can be used to correlate the rate with records in external systems.\n **Token scopes**: `time-tracking:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}],"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."}}},"/time_tracking/shifts":{"get":{"tags":["Time Tracking Shifts"],"summary":"List of shifts","operationId":"listOfShifts","description":"Returns a paginated list of shifts. Results can be scoped to one or more contracts and bounded by a date range using `from_date` and `to_date`.\n **Token scopes**: `time-tracking:read`","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."}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]},"post":{"tags":["Time Tracking Shifts"],"summary":"Create shifts","operationId":"createShifts","description":"Creates one or more time tracking shifts for a contract in a single request. Supports both original shift submissions and correction shifts that adjust hours for previously processed shifts.\n **Token scopes**: `time-tracking:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}],"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."}}},"/time_tracking/shifts/bulk-delete":{"post":{"tags":["Time Tracking Shifts"],"summary":"Delete multiple shifts by External ID","operationId":"deleteMultipleShiftsByExternalId","description":"Permanently deletes one or more shifts identified by their external IDs. Deleted shifts are immediately unrecoverable and can no longer be retrieved or modified.\n **Token scopes**: `time-tracking:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}],"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."}}},"/time_tracking/shifts/raw":{"post":{"tags":["Time Tracking Shifts"],"summary":"Create raw time tracking shifts","operationId":"createRawTimeTrackingShifts-v2026-01-01","description":"Submits one or more raw shift records to the time tracking system. Raw shifts represent unprocessed time entries that may undergo validation or transformation before being reflected in processed time data.\n **Token scopes**: `time-tracking:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}],"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."}}},"/time-tracking/timesheets/{timesheet_id}":{"get":{"tags":["Time Tracking Timesheets"],"summary":"Retrieve a timesheet","operationId":"retrieveATimesheet-v2026-01-01","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 **Token scopes**: `time-tracking:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:read"]}]}},"/time-tracking/timesheets/upload-url":{"post":{"tags":["Time Tracking Timesheets"],"summary":"Generate timesheet upload url","operationId":"generateTimesheetUploadUrl-v2026-01-01","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 **Token scopes**: `time-tracking:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}],"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"}}},"/time-tracking/timesheets/{timesheet_id}/review":{"post":{"tags":["Time Tracking Timesheets"],"summary":"Review a submitted timesheet","operationId":"reviewASubmittedTimesheet","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 **Token scopes**: `time-tracking:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["time-tracking:write"]}],"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."}}},"/timesheets/{id}":{"delete":{"tags":["Timesheets"],"summary":"Delete a timesheet entry","operationId":"deleteTimesheetById","description":"Permanently deletes a timesheet entry. An optional `reason` query parameter may be provided to record the rationale for deletion.\n **Token scopes**: `timesheets:write`","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"},"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"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}]},"get":{"tags":["Timesheets"],"summary":"Retrieve a single timesheet entry","operationId":"getTimesheetById","description":"Returns a single timesheet entry.\n **Token scopes**: `timesheets:read`","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"}]},"type":{"type":"string","description":"Deprecated - it is always \"work\""},"scale":{"type":"string","nullable":true},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"Status of this entry."},"contract":{"type":"object","required":["id","title","type"],"properties":{"id":{"type":"string","nullable":false},"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","description":"Type of a contract"},"title":{"type":"string","nullable":false}}},"quantity":{"type":"number","nullable":true},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","minimum":0},"hours":{"type":"number","minimum":0},"weeks":{"type":"number","minimum":0},"minutes":{"type":"number","minimum":0}}},"attachment":{"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."},"created_at":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"oneOf":[{"type":"string","description":"Unique identifier of this resource."},{"type":"integer","format":"int64"}]},"full_name":{"type":"string","nullable":false,"x-sensitive-pii":true}}},"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"}]},"remarks":{"type":"string","nullable":false},"full_name":{"type":"string","x-sensitive-pii":true},"reviewed_at":{"type":"string"}}},"custom_scale":{"type":"string","nullable":true},"total_amount":{"type":"string","nullable":false,"description":"is equal to quantity times rate of active work statement + bonus in this record"},"currency_code":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3},"payment_cycle":{"type":"object","properties":{"end_date":{"type":"string","format":"date-time","nullable":true,"description":"Long date-time format following ISO-8601"},"start_date":{"type":"string","format":"date-time","nullable":true,"description":"Long date-time format following ISO-8601"}}},"date_submitted":{"type":"string","format":"date-time","nullable":false,"description":"Long date-time format following ISO-8601"},"hourly_report_preset":{"type":"object","nullable":true,"properties":{"id":{"type":"string","nullable":true,"description":"unique identifier of the related timesheet preset"},"rate":{"type":"number","nullable":true,"description":"the hourly rate of the related timesheet preset"},"title":{"type":"string","nullable":true,"description":"the title of the related timesheet preset"},"description":{"type":"string","nullable":true,"description":"the description of the related timesheet preset"}}}}},{"type":"object","required":["approvers"],"properties":{"approvers":{"type":"array","items":{"type":"object","required":["approved"],"properties":{"email":{"type":"string","x-sensitive-pii":true},"approved":{"type":"boolean"},"full_name":{"type":"string","x-sensitive-pii":true}}}}}}]}}}}},"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":"ID of an existing timesheet"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]},"patch":{"tags":["Timesheets"],"summary":"Update a timesheet entry","operationId":"updateATimesheetEntry","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 **Token scopes**: `timesheets:write`","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["updated"],"properties":{"updated":{"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":"id","schema":{"type":"string"},"required":true,"description":"ID of an existing timesheet."}],"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}],"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":{"type":"string","example":"string","nullable":false,"maxLength":255},"hourly_report_preset_id":{"type":"string","example":"990c9b5b-6d41-4917-b032-ac049877df3a","nullable":true,"description":"Id of an existing timesheets preset. Created through /rest/v2/timesheets/presets"}}}},"description":"Details of the timesheet to update. Both a client or a contractor may update a timesheet."}}},"required":true}}},"/contracts/{contract_id}/timesheets":{"get":{"tags":["Timesheets"],"summary":"List of timesheets by contract","operationId":"getTimesheetsByContract","description":"Returns timesheets associated with the specified contract, with optional filtering by contract type, status, reporter, and date range.\n **Token scopes**: `timesheets:read`","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","description":"Deprecated - it is always \"work\""},"scale":{"type":"string","nullable":true},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"Status of this entry."},"contract":{"type":"object","required":["id","title","type"],"properties":{"id":{"type":"string","nullable":false},"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","description":"Type of a contract"},"title":{"type":"string","nullable":false}}},"quantity":{"type":"number","nullable":true},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","minimum":0},"hours":{"type":"number","minimum":0},"weeks":{"type":"number","minimum":0},"minutes":{"type":"number","minimum":0}}},"attachment":{"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."},"created_at":{"type":"string","nullable":false},"description":{"type":"string","nullable":false},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"full_name":{"type":"string","nullable":false,"x-sensitive-pii":true}}},"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 this resource."},"remarks":{"type":"string","nullable":false},"full_name":{"type":"string","x-sensitive-pii":true},"reviewed_at":{"type":"string"}}},"custom_scale":{"type":"string","nullable":true},"total_amount":{"type":"string","nullable":false,"description":"is equal to quantity times rate of active work statement + bonus in this record"},"currency_code":{"type":"string","pattern":"^[A-Z]{3}$","maxLength":3,"minLength":3},"payment_cycle":{"type":"object","properties":{"end_date":{"type":"string","format":"date-time","nullable":true,"description":"Long date-time format following ISO-8601"},"start_date":{"type":"string","format":"date-time","nullable":true,"description":"Long date-time format following ISO-8601"}}},"date_submitted":{"type":"string","format":"date-time","nullable":false,"description":"Long date-time format following ISO-8601"},"hourly_report_preset":{"type":"object","nullable":true,"properties":{"id":{"type":"string","nullable":true,"description":"unique identifier of the related timesheet preset"},"rate":{"type":"number","nullable":true,"description":"the hourly rate of the related timesheet preset"},"title":{"type":"string","nullable":true,"description":"the title of the related timesheet preset"},"description":{"type":"string","nullable":true,"description":"the description of the related timesheet preset"}}}}}},"page":{"type":"object","example":{"total_rows":100},"required":["total_rows"],"properties":{"total_rows":{"type":"number","nullable":false}},"description":"This object is used for pagination."}}}}},"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":"c1e2e3l4","required":true,"description":"Deel contract id."},{"in":"query","name":"contract_types","schema":{"oneOf":[{"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"},{"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":"Types of contracts to filter."},{"in":"query","name":"statuses","schema":{"oneOf":[{"type":"array","items":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"Status of this entry."}},{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string"}]},"example":"approved","description":"Statuses of timesheets to filter."},{"in":"query","name":"reporter_id","schema":{"type":"string","format":"uuid"},"example":"e1x2a3m4p5l6e7","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":"Filtered results will include records created on or after the provided date. 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":"Filtered results will include records created before the provided date. Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},{"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"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]}},"/timesheets":{"get":{"tags":["Timesheets"],"summary":"List of timesheets","operationId":"listOfTimesheets","description":"Returns a paginated list of timesheets in the account, optionally filtered by contract_id, contract_types, statuses, reporter_id, or date range.\n **Token scopes**: `timesheets:read`","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},"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":"string","nullable":false},"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":"string","nullable":false}}},"quantity":{"type":"number","example":1,"nullable":true},"worksheet":{"type":"object","nullable":true,"required":["weeks","days","hours","minutes"],"properties":{"days":{"type":"number","example":0,"minimum":0},"hours":{"type":"number","example":1,"minimum":0},"weeks":{"type":"number","example":0,"minimum":0},"minutes":{"type":"number","example":0,"minimum":0}}},"attachment":{"type":"object","nullable":true,"required":["filename","key"],"properties":{"key":{"type":"string","example":"string","nullable":false,"description":"You can call attachments end-point, get key and URL to upload your file."},"filename":{"type":"string","example":"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."},"created_at":{"type":"string","format":"date-time","example":"2022-05-04T03:45:27.108Z","nullable":false,"description":"Long date-time format following ISO-8601"},"description":{"type":"string","example":"string","nullable":false},"reported_by":{"type":"object","nullable":false,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"00000000-0000-0000-0000-000000000000","description":"Unique identifier of this resource."},"full_name":{"type":"string","example":"John Smith","nullable":false,"x-sensitive-pii":true}}},"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 this resource."},"remarks":{"type":"string","example":"string","nullable":false},"full_name":{"type":"string","example":"Jane Smith","x-sensitive-pii":true},"reviewed_at":{"type":"string","format":"date-time","example":"2022-05-04T03:45:27.899Z"}}},"custom_scale":{"type":"string","example":"string","nullable":true},"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},"payment_cycle":{"type":"object","nullable":false,"properties":{"end_date":{"type":"string","format":"date-time","example":"2022-05-24T03:45:27.899Z","nullable":false,"description":"Long date-time format following ISO-8601"},"start_date":{"type":"string","format":"date-time","example":"2022-05-04T03:45:27.899Z","nullable":false,"description":"Long date-time format following ISO-8601"}}},"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","nullable":true,"description":"unique identifier of the related timesheet preset"},"rate":{"type":"number","nullable":true,"description":"the hourly rate of the related timesheet preset"},"title":{"type":"string","nullable":true,"description":"the title of the related timesheet preset"},"description":{"type":"string","nullable":true,"description":"the description of the related timesheet preset"}}}}}},"page":{"type":"object","required":["total_rows"],"properties":{"total_rows":{"type":"number","example":0,"nullable":false}}}}}}},"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_id","schema":{"type":"string"},"description":"Id of an Deel contract."},{"in":"query","name":"contract_types","schema":{"oneOf":[{"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"},{"enum":["ongoing_time_based","pay_as_you_go_time_based","payg_milestones","payg_tasks"],"type":"string"}]},"description":"types of contracts to filter"},{"in":"query","name":"statuses","schema":{"oneOf":[{"type":"array","items":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"status of invoice adjustment"}},{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string"}]}},{"in":"query","name":"reporter_id","schema":{"type":"string","format":"uuid"}},{"in":"query","name":"date_from","schema":{"type":"string","format":"date"}},{"in":"query","name":"date_to","schema":{"type":"string","format":"date"}},{"in":"query","name":"limit","schema":{"type":"string","pattern":"^[0-9]+$"}},{"in":"query","name":"offset","schema":{"type":"string","pattern":"^[0-9]+$"}}],"security":[{"deelToken":[]},{"oauth2":["timesheets:read"]}]},"post":{"tags":["Timesheets"],"summary":"Create a timesheet entry","operationId":"createATimesheetEntry","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 **Token scopes**: `timesheets:write`","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["created"],"properties":{"id":{"type":"string","description":"Unique identifier of this resource."},"status":{"enum":["approved","declined","not_payable","paid","pending","processing",null],"type":"string","nullable":true,"description":"status of invoice adjustment"},"created":{"type":"boolean","nullable":false},"created_at":{"type":"string","format":"date-time","nullable":true,"description":"Long date-time format following ISO-8601"}},"description":"Details of invoice adjustment created."}}}}},"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":[],"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["contract_id","quantity","date_submitted","description"],"properties":{"quantity":{"type":"number","example":2,"minimum":0.01,"nullable":false,"description":"This is based on the scale of work statement of the associated contract"},"contract_id":{"type":"string","example":"string","nullable":false,"description":"Id of a Deel contract."},"description":{"type":"string","default":"","example":"string","nullable":false},"date_submitted":{"type":"string","format":"date","example":"1999-12-31","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"is_auto_approved":{"type":"boolean","example":true,"description":"If true, the timesheet will be automatically approved as part of the request."},"hourly_report_preset_id":{"type":"string","example":"990c9b5b-6d41-4917-b032-ac049877df3a","nullable":true,"description":"Id of an existing timesheets preset. Created through /rest/v2/timesheets/presets"}},"description":"Details of the timesheet to create. Both a client or a contractor may create a timesheet."}}}},"multipart/form-data":{"schema":{"allOf":[{"allOf":[{"type":"object","required":["contract_id","quantity","date_submitted","description"],"properties":{"quantity":{"type":"number","example":2,"minimum":0.01,"nullable":false,"description":"This is based on the scale of work statement of the associated contract"},"contract_id":{"type":"string","example":"string","nullable":false,"description":"Id of a Deel contract."},"description":{"type":"string","default":"","example":"string","nullable":false},"date_submitted":{"type":"string","format":"date","example":"1999-12-31","description":"Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."},"is_auto_approved":{"type":"boolean","description":"If true, the timesheet will be automatically approved as part of the request."},"hourly_report_preset_id":{"type":"string","example":"990c9b5b-6d41-4917-b032-ac049877df3a","nullable":true,"description":"Id of an existing timesheets preset. Created through /rest/v2/timesheets/presets"}},"description":"Details of the timesheet to create. Both a client or a contractor may create a timesheet."},{"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."}]}]}}},"required":true,"description":"Timesheet object that needs to be created"}}},"/timesheets/{id}/reviews":{"post":{"tags":["Timesheets"],"summary":"Review a single timesheet","operationId":"createTimesheetReview","description":"Submits an approve or reject decision for a timesheet entry. Approved timesheets are queued for inclusion in the next payment cycle.\n **Token scopes**: `timesheets:write`","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":"id","schema":{"type":"string"},"example":"string","required":true,"description":"ID of an existing timesheet"}],"security":[{"deelToken":[]},{"oauth2":["timesheets:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["status"],"properties":{"reason":{"type":"string","nullable":true},"status":{"enum":["approved","declined"],"type":"string","nullable":false}}}}}}},"required":true}}},"/hris/worker_relations/types/external/{externalId}":{"patch":{"tags":["Worker Relations"],"summary":"Update a worker relation type by external id","operationId":"updateWorkerRelationTypeExternalId","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 **Token scopes**: `organizations:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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}},"delete":{"tags":["Worker Relations"],"summary":"Delete a worker relation type by external id","operationId":"deleteWorkerRelationTypeExternalId","description":"Permanently deletes the worker relation type.\n **Token scopes**: `organizations:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}]}},"/accounts-payable/vendor-bills":{"post":{"tags":["Treasury"],"summary":"Create Vendor Bill","operationId":"createVendorBill-v2026-01-01","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 **Token scopes**: `treasury-vendorbill:write`","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":[],"security":[{"deelToken":[]},{"oauth2":["treasury-vendorbill:write"]}],"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,"minimum":0.01,"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,"minimum":0.01,"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,"minimum":0.01,"description":"Total amount for this line item"},"quantity":{"type":"number","example":10,"minimum":0.01,"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,"minimum":0.01,"description":"Price per unit"},"vat_amount":{"type":"number","example":0,"minimum":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"}}},"/accounts-payable/vendor-bills/{vendor_bill_id}/attachments":{"post":{"tags":["Treasury"],"summary":"Upload Vendor Bill Attachment","operationId":"uploadVendorBillAttachment","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 **Token scopes**: `treasury-vendorbill:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["treasury-vendorbill:write"]}],"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)"}}}}}}}}}},"/escalations/workers/me/hrx":{"get":{"tags":["Worker HR"],"summary":"Get HRX manager for worker","operationId":"getHrxManagerForWorker","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 **Token scopes**: `worker:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["worker:read"]}]}},"/hris/worker_relations/profile/external/{profileId}":{"delete":{"tags":["Worker Relations"],"summary":"Delete a worker relation by external id","operationId":"deleteWorkerRelationExternalId","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 **Token scopes**: `profile:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["profile:write"]}]}},"/hris/worker_relations/profile/{hrisProfileOid}":{"delete":{"tags":["Worker Relations"],"summary":"Delete a worker relation","operationId":"deleteWorkerRelation","description":"Removes the worker relation. This operation removes all hierarchical associations (parent and child) linked to that profile.\n **Token scopes**: `profile:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["profile:write"]}]},"get":{"tags":["Worker Relations"],"summary":"List of worker relations","operationId":"getAllProfileWorkerRelations","description":"Returns all worker relations associated with the HrisProfile, including both parent and child relationships.\n **Token scopes**: `profile:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["profile:read"]}]}},"/hris/worker_relations/types":{"get":{"tags":["Worker Relations"],"summary":"Retrieve all worker relation types","operationId":"retrieveAllWorkerRelationTypes-v2026-01-01","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 **Token scopes**: `organizations:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["organizations:read"]}]},"post":{"tags":["Worker Relations"],"summary":"Create worker relation type","operationId":"createWorkerRelationType","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 **Token scopes**: `organizations:write`","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":{"$ref":"#/components/responses/ResponseBodyForApiError"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"security":[{"deelToken":[]},{"oauth2":["organizations:write"]}],"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}}},"/hris/worker_relations/profile/external/{profileId}/child":{"put":{"tags":["Worker Relations"],"summary":"Create child worker relation with external Id","operationId":"upsertChildWorkerRelationsExternalId","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 **Token scopes**: `profile:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["profile:write"]}],"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}}},"/hris/worker_relations/profile/{hrisProfileOid}/parent":{"put":{"tags":["Worker Relations"],"summary":"Create a parent worker relation","operationId":"upsertParentWorkerRelations","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 **Token scopes**: `profile:write`","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"}],"security":[{"deelToken":[]},{"oauth2":["profile:write"]}],"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}}},"/workers/{worker_id}/session":{"delete":{"tags":["Worker Session"],"summary":"Delete worker access token","operationId":"deleteWorkerAccessToken","description":"Immediately revokes the active access token for the worker identified by worker_id, terminating all API access granted by that token.\n **Token scopes**: `admin:worker`","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."}],"security":[{"deelToken":[]},{"oauth2":["admin:worker"]}]}},"/workers/session":{"post":{"tags":["Worker Session"],"summary":"Create worker access token","operationId":"createWorkerAccessToken","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 **Token scopes**: `admin:worker`","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"}},"security":[{"deelToken":[]},{"oauth2":["admin:worker"]}],"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}}},"/worker":{"post":{"tags":["Workers"],"summary":"Create a new worker","operationId":"createWorker","description":"Creates a new worker record and returns the associated user_id, profile_id, and contract_id for the created worker.","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"}},"security":[{"deelToken":[]},{"oauth2":[]}],"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}}},"/ats/application-sources":{"get":{"tags":["ATS"],"summary":"Retrieve a list of ATS application sources","operationId":"retrieveAListOfAtsApplicationSources","description":"Returns the available application sources in the Applicant Tracking System.\n **Token scopes**: `ats:read`","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":"d1a2f6e7-0b3c-4e8a-9f1d-2c6b7a9e3d0f","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"}}}},"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 available"}}},"example":{"data":[{"id":"a1b2c3d4-e5f6-7890-1234-567890abcdef","slug":"sourced_internally","created_at":"2024-05-20T10:00:00.000Z","updated_at":"2024-05-20T10:00:00.000Z"},{"id":"b2c3d4e5-f6a7-8901-2345-67890abcdef1","slug":"external_career_page","created_at":"2024-05-20T10:00:00.000Z","updated_at":"2024-05-20T10:00:00.000Z"},{"id":"c3d4e5f6-a7b8-9012-3456-7890abcdef12","slug":"linkedin_premium","created_at":"2024-05-20T10:00:00.000Z","updated_at":"2024-05-20T10:00:00.000Z"}],"has_more":false,"next_cursor":null,"total_count":3}}},"description":"Successfully retrieved application sources"},"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":"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"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/job-postings":{"get":{"tags":["ATS"],"summary":"Retrieve ATS job postings","operationId":"retrieveAtsJobPostings-v2026-04-10","description":"Use this endpoint to retrieve job postings by specifying the job board ID or job ID. It provides detailed postings with job details, publication status, and relevant metadata.\n **Token scopes**: `ats:read`","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","job_id","title","richtext_description","is_compensation_visible","job","publications"],"properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"Unique identifier of the job posting."},"job":{"type":"object","required":["id","job_locations","job_employment_types","compensation"],"properties":{"id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f12345678901","description":"Job identifier."},"job_teams":{"type":"array","items":{"type":"object","example":{"id":"c9d0e1f2-a3b4-5678-2345-789012345678","team":{"id":"d0e1f2a3-b4c5-6789-3456-890123456789","name":"Engineering"}},"properties":{"id":{"type":"string","format":"uuid","example":"c9d0e1f2-a3b4-5678-2345-789012345678","description":"Job-team association row identifier."},"team":{"type":"object","example":{"id":"d0e1f2a3-b4c5-6789-3456-890123456789","name":"Engineering"},"properties":{"id":{"type":"string","format":"uuid","example":"d0e1f2a3-b4c5-6789-3456-890123456789","description":"Team identifier."},"name":{"type":"string","example":"Engineering","maxLength":100,"description":"Display name of the team."}},"description":"Team referenced by this association."}},"description":"Single job-team link with nested team details."},"nullable":true,"description":"Job-to-team associations; null or omitted when not loaded or not applicable."},"compensation":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"e7f8a9b0-c1d2-3456-0123-567890123456","description":"Compensation record identifier."},"max_amount":{"type":"number","example":140000,"nullable":true,"description":"Maximum compensation amount in the given currency, or null."},"min_amount":{"type":"number","example":100000,"nullable":true,"description":"Minimum compensation amount in the given currency, or null."},"currency_iso_code":{"type":"string","example":"USD","maxLength":3,"minLength":3,"description":"ISO 4217 alphabetic currency code for the compensation amounts."}},"description":"Current compensation when visible on the posting; null when hidden or absent. Shape mirrors internal compensation mapping."},"job_locations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a3b4c5d6-e7f8-9012-6789-123456789012","description":"Job-location association row identifier."},"location":{"type":"object","example":{"id":"b4c5d6e7-f8a9-0123-7890-234567890123","name":"London"},"properties":{"id":{"type":"string","format":"uuid","example":"b4c5d6e7-f8a9-0123-7890-234567890123","description":"Location identifier."},"name":{"type":"string","example":"London","maxLength":100,"description":"Display name of the location."}},"description":"Location entity for this association."}},"description":"Single job-location link with nested location details."},"description":"Work locations associated with the job."},"job_departments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"e1f2a3b4-c5d6-7890-4567-901234567890","description":"Job-department association row identifier."},"department":{"type":"object","example":{"id":"f2a3b4c5-d6e7-8901-5678-012345678901","name":"Product"},"nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"f2a3b4c5-d6e7-8901-5678-012345678901","description":"Department identifier."},"name":{"type":"string","example":"Product","maxLength":100,"description":"Display name of the department."}},"description":"Department for this association; null if unset."}},"description":"Single job-department link with nested department details."},"nullable":true,"description":"Job-to-department associations; null or omitted when not loaded."},"job_employment_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"c5d6e7f8-a9b0-1234-8901-345678901234","description":"Job-employment-type association row identifier."},"employment_type":{"type":"object","example":{"id":"d6e7f8a9-b0c1-2345-9012-456789012345","name":"Full-time"},"properties":{"id":{"type":"string","format":"uuid","example":"d6e7f8a9-b0c1-2345-9012-456789012345","description":"Employment type identifier."},"name":{"type":"string","example":"Full-time","maxLength":100,"description":"Display name of the employment type."}},"description":"Employment type entity for this association."}},"description":"Single job–employment-type link with nested employment type details."},"description":"Employment types associated with the job (e.g. full-time, contract)."}},"description":"Nested job record: locations, employment types, optional teams/departments, and optional compensation when visible."},"title":{"type":"string","example":"Senior Engineer","maxLength":200,"description":"Public title of the job posting."},"job_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f12345678901","description":"Identifier of the underlying job this posting belongs to."},"created_at":{"type":"string","format":"date-time","example":"2025-01-15T10:30:00.000Z","description":"ISO 8601 timestamp when the posting was created, if present."},"updated_at":{"type":"string","format":"date-time","example":"2025-02-01T14:00:00.000Z","description":"ISO 8601 timestamp when the posting was last updated, if present."},"publications":{"type":"array","items":{"type":"object","required":["id","job_board","current_state"],"properties":{"id":{"type":"string","format":"uuid","example":"f8a9b0c1-d2e3-4567-1234-678901234567","description":"Job posting publication identifier."},"job_board":{"type":"object","example":{"id":"a9b0c1d2-e3f4-5678-2345-789012345678"},"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"a9b0c1d2-e3f4-5678-2345-789012345678","description":"Job board identifier."}},"description":"Job board this publication belongs to."},"current_state":{"type":"object","required":["id","state_slug","error_message","created_by","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"b0c1d2e3-f4a5-6789-3456-890123456789","description":"Publication state row identifier."},"created_at":{"type":"string","format":"date-time","example":"2025-03-10T09:00:00.000Z","description":"ISO 8601 timestamp when this state was recorded."},"created_by":{"type":"string","format":"uuid","example":"c1d2e3f4-a5b6-7890-4567-901234567890","nullable":true,"description":"HRIS organization user id who triggered or owns this state, when set."},"state_slug":{"enum":["PUBLISHED_BASIC","PUBLISHED_PREMIUM","UNPUBLISHED","EXPIRED","IN_PROGRESS","FAILED"],"type":"string","example":"PUBLISHED_BASIC","description":"Publication lifecycle state (uppercase slug)."},"error_message":{"type":"string","example":"Error message","nullable":true,"description":"Error details when state is failed or otherwise errored; null if none."}},"description":"Latest known publication state for this board."}},"description":"Single publication of the job posting to a job board."},"description":"Publication rows for this posting, one per job board integration, with current state."},"application_form":{"type":"object","example":{"id":"c3d4e5f6-a7b8-9012-cdef-123456789012","title":"Default application"},"nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"c3d4e5f6-a7b8-9012-cdef-123456789012","description":"Application form identifier."},"title":{"type":"string","example":"Default application","maxLength":100,"description":"Human-readable application form title."}},"description":"Linked application form metadata when the posting uses an application form."},"richtext_description":{"type":"string","example":"<p>Build great products with us.</p>","nullable":true,"description":"Rich-text (HTML) job description for the posting, or null if not set."},"is_compensation_visible":{"type":"boolean","example":"true","description":"Whether compensation details may be shown for this posting."}}},"description":"Job postings returned for this request (single page; pagination not yet implemented)."},"has_more":{"type":"boolean","example":"false","description":"Whether additional pages exist; currently always false for this endpoint."},"next_cursor":{"type":"string","example":"nextcursorid","nullable":true,"maxLength":1000,"description":"Opaque cursor for the next page; currently always null until pagination is implemented."},"total_count":{"type":"integer","example":3,"minimum":0,"description":"Number of job postings included in `data` for this response."}}}}},"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":["status_code","timestamp","path","errors"],"properties":{"path":{"type":"string","description":"Request URL path"},"errors":{"type":"array","items":{"type":"object","required":["code","message","field"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"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"},"timestamp":{"type":"string","format":"date-time","description":"Time when the error occurred"},"status_code":{"type":"integer","example":400,"description":"HTTP status code"}}}}},"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":["status_code","timestamp","path"],"properties":{"path":{"type":"string","description":"Request URL path"},"timestamp":{"type":"string","format":"date-time","description":"Time when the error occurred"},"status_code":{"type":"integer","example":500,"description":"HTTP status code"}}}}},"description":"Operation failed."}},"parameters":[{"in":"query","name":"job_board_id","schema":{"type":"string","format":"uuid"},"example":"3fa85f64-5717-4562-b3fc-2c963f66afa6","required":false,"description":"Job board to list postings from (UUID)."},{"in":"query","name":"job_id","schema":{"type":"string","format":"uuid"},"example":"6ba7b810-9dad-11d1-80b4-00c04fd430c8","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)."}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/applications/{application_id}":{"get":{"tags":["ATS"],"summary":"Retrieve ATS application","operationId":"retrieveAtsApplication-v2026-01-01","description":"Retrieves a single application by its application_id, including associated job details, job posting details, and related metadata.\n **Token scopes**: `ats:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"object","example":{"id":"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d","job":{"id":"b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e","title":"Senior Software Engineer"},"notes":[{"id":"f6a7b8c9-d0e1-4f2a-3b4c-5d6e7f8a9b0c","created_at":"2024-11-01T10:30:00Z","created_by":"a7b8c9d0-e1f2-4a3b-4c5d-6e7f8a9b0c1d","updated_at":"2024-11-15T14:45:00Z","richtext_content":"<p>This candidate has excellent experience in backend development.</p>"}],"candidate":{"id":"a9b0c1d2-e3f4-4a5b-6c7d-8e9f0a1b2c3d","attachments":[{"id":"b0c1d2e3-f4a5-4b6c-7d8e-9f0a1b2c3d4e","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."}],"phone_number":"+1234567890","candidate_tags":[],"import_session_id":null,"profile_picture_url":null},"job_board":{"id":"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f","type":"INTERNAL_CAREER_PAGE"},"created_at":"2024-10-15T09:12:00Z","created_by":"d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a","numeric_id":2561,"updated_at":"2024-11-20T11:45:00Z","job_posting":{"id":"c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f","title":"Job posting"},"referred_by":null,"source_slug":"INTERNAL_CAREER_PAGE","job_employment_type":{"id":"e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b","employment_type":{"id":"f2a3b4c5-d6e7-4f8a-9b0c-1d2e3f4a5b6c","name":"Full-time"}},"job_posting_publication":{"id":"d2e3f4a5-b6c7-4d8e-9f0a-1b2c3d4e5f6a"},"referral_form_submission":{"id":"f0a1b2c3-d4e5-4f6a-7b8c-9d0e1f2a3b4c","form_builder_stringified":null},"moved_to_current_stage_at":"2024-11-18T12:30:00Z","application_form_submission":{"id":"509d5153-5b10-4718-b16f-417e726d39f1","answers":[{"answer":"John Doe","question_text":"Full Name","question_type":"FREETEXT","data_binding_id":"83a642fd-de0a-45f6-8fe0-b9188ed72990"}]},"job_posting_publication_state":{"id":"e3f4a5b6-c7d8-4e9f-0a1b-2c3d4e5f6a7b","state_slug":"PUBLISHED_BASIC"},"application_job_criterias_matchings":[{"id":"e7f8a9b0-c1d2-4e3f-4a5b-6c7d8e9f0a1b","is_matched":"MATCHED","description":"The candidate has 5+ years of experience in React and TypeScript","job_criteria":{"id":"f8a9b0c1-d2e3-4f4a-5b6c-7d8e9f0a1b2c","title":"Frontend Development Experience","description":"5+ years of experience with React, TypeScript, and modern frontend frameworks"}}],"all_application_interview_plan_stages":[{"id":"b8c9d0e1-f2a3-4b4c-5d6e-7f8a9b0c1d2e","offers":[],"updated_at":"2024-11-10T16:20:00Z","interview_plan_stage":{"id":"c9d0e1f2-a3b4-4c5d-6e7f-8a9b0c1d2e3f","name":"Phone Screen","default_type_slug":"phone_screen","category_type_slug":"ACTIVE"}}],"application_automation_rule_executions":[],"current_application_interview_plan_stage":{"id":"d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a","interview_plan_stage":{"id":"c9d0e1f2-a3b4-4c5d-6e7f-8a9b0c1d2e3f","name":"Phone Screen","default_type_slug":"phone_screen","category_type_slug":"ACTIVE"},"interview_plan_stage_id":"e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b"}},"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":"a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d","description":"Unique identifier for the application"},"job":{"type":"object","required":["id","title"],"properties":{"id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-4b8c-9d0e-1f2a3b4c5d6e","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":"f6a7b8c9-d0e1-4f2a-3b4c-5d6e7f8a9b0c","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":"a7b8c9d0-e1f2-4a3b-4c5d-6e7f8a9b0c1d","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":"Array of notes associated with the 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":"a9b0c1d2-e3f4-4a5b-6c7d-8e9f0a1b2c3d","description":"Unique identifier for the candidate"},"email":{"type":"string","example":"john.doe@example.com","description":"Email address of the candidate","x-sensitive-pii":true},"last_name":{"type":"string","example":"Doe","description":"Last name of the candidate","x-sensitive-pii":true},"first_name":{"type":"string","example":"John","description":"First name of the candidate","x-sensitive-pii":true},"attachments":{"type":"array","items":{"type":"object","required":["id","ai_summary"],"properties":{"id":{"type":"string","format":"uuid","example":"b0c1d2e3-f4a5-4b6c-7d8e-9f0a1b2c3d4e","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":"b0c1d2e3-f4a5-4b6c-7d8e-9f0a1b2c3d4e","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":"Phone number of the candidate","x-sensitive-pii":true},"candidate_tags":{"type":"array","items":{"type":"object","required":["id","tag"],"properties":{"id":{"type":"string","format":"uuid","example":"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f","description":"Unique identifier for the candidate tag"},"tag":{"type":"object","required":["id","label"],"properties":{"id":{"type":"string","format":"uuid","example":"d2e3f4a5-b6c7-4d8e-9f0a-1b2c3d4e5f6a","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 the candidate was bulk imported"},"profile_picture_url":{"type":"string","example":"https://example.com/picture.jpg","nullable":true,"description":"Profile picture URL of the candidate","x-sensitive-pii":true}},"description":"Candidate details"},"job_board":{"type":"object","nullable":true,"required":["id","type"],"properties":{"id":{"type":"string","format":"uuid","example":"c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f","description":"Unique identifier for the job board"},"type":{"enum":["INTERNAL_CAREER_PAGE","EXTERNAL_CAREER_PAGE","LINKEDIN"],"type":"string","example":"INTERNAL_CAREER_PAGE","description":"Type of job board"}},"description":"Job board details where the 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":"d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a","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":"c3d4e5f6-a7b8-4c9d-0e1f-2a3b4c5d6e7f","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":"e5f6a7b8-c9d0-4e1f-2a3b-4c5d6e7f8a9b","nullable":true,"description":"Unique identifier for the HRIS organization user who referred the candidate"},"source_slug":{"enum":["SOURCED_INTERNALLY","EXTERNAL_CAREER_PAGE","LINKEDIN_PREMIUM","LINKEDIN_BASIC","INTERNAL_CAREER_PAGE","INTERNAL_REFERRAL","BULK_IMPORTED"],"type":"string","example":"INTERNAL_CAREER_PAGE","nullable":true,"description":"Source of the application"},"job_employment_type":{"type":"object","nullable":true,"required":["id","employment_type"],"properties":{"id":{"type":"string","format":"uuid","example":"e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b","description":"Identifier of the job employment type record"},"employment_type":{"type":"object","required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"f2a3b4c5-d6e7-4f8a-9b0c-1d2e3f4a5b6c","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"},"job_posting_publication":{"type":"object","nullable":true,"required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"d2e3f4a5-b6c7-4d8e-9f0a-1b2c3d4e5f6a","description":"Unique identifier for the job posting publication"}},"description":"Job posting publication details"},"referral_form_submission":{"type":"object","required":["id","form_builder_stringified"],"properties":{"id":{"type":"string","format":"uuid","example":"f0a1b2c3-d4e5-4f6a-7b8c-9d0e1f2a3b4c","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":"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":"e3f4a5b6-c7d8-4e9f-0a1b-2c3d4e5f6a7b","description":"Unique identifier for the job posting publication state"},"state_slug":{"enum":["PUBLISHED_BASIC","PUBLISHED_PREMIUM","UNPUBLISHED","EXPIRED","IN_PROGRESS","FAILED"],"type":"string","example":"PUBLISHED_BASIC","description":"State of the job posting publication"}},"description":"Current state of the 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":"e7f8a9b0-c1d2-4e3f-4a5b-6c7d8e9f0a1b","description":"Unique identifier for the job criteria matching"},"is_matched":{"enum":["MATCHED","NOT_MATCHED","UNDECIDED"],"type":"string","example":"MATCHED","description":"Whether the candidate matches this job criteria"},"description":{"type":"string","example":"The candidate has 5+ years of experience in React and TypeScript","description":"Description of how the candidate matches the criteria"},"job_criteria":{"type":"object","required":["id","title","description"],"properties":{"id":{"type":"string","format":"uuid","example":"f8a9b0c1-d2e3-4f4a-5b6c-7d8e9f0a1b2c","description":"Unique identifier for the job criteria"},"title":{"type":"string","example":"Frontend Development Experience","description":"Title of the job criteria"},"description":{"type":"string","example":"5+ years of experience with React, TypeScript, and modern frontend frameworks","description":"Description of the job criteria"}},"description":"Job criteria details"}}},"example":[{"id":"e7f8a9b0-c1d2-4e3f-4a5b-6c7d8e9f0a1b","is_matched":"MATCHED","description":"The candidate has 5+ years of experience in React and TypeScript","job_criteria":{"id":"f8a9b0c1-d2e3-4f4a-5b6c-7d8e9f0a1b2c","title":"Frontend Development Experience","description":"5+ years of experience with React, TypeScript, and modern frontend frameworks"}}],"description":"Array of job criteria matchings for the application"},"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":"b8c9d0e1-f2a3-4b4c-5d6e-7f8a9b0c1d2e","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":"d0e1f2a3-b4c5-4d6e-7f8a-9b0c1d2e3f4a","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":"d6e7f8a9-b0c1-4d2e-3f4a-5b6c7d8e9f0a","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":"f2a3b4c5-d6e7-4f8a-9b0c-1d2e3f4a5b6c","nullable":true,"description":"Unique identifier for the offer attachment"},"approval_rule_id":{"type":"string","format":"uuid","example":"b4c5d6e7-f8a9-4b0c-1d2e-3f4a5b6c7d8e","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":"c5d6e7f8-a9b0-4c1d-2e3f-4a5b6c7d8e9f","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":"a3b4c5d6-e7f8-4a9b-0c1d-2e3f4a5b6c7d","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":"e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b","description":"Unique identifier for the application interview plan stage"}}},"example":[{"id":"d0e1f2a3-b4c5-4d6e-7f8a-9b0c1d2e3f4a","email":{"id":"d6e7f8a9-b0c1-4d2e-3f4a-5b6c7d8e9f0a","subject":"Job Offer - Senior Software Engineer","body_html":"<html><body><p>Dear Candidate,</p><p>We are pleased to offer you the position...</p></body></html>","from_string":"recruiter@company.com","recipients_cc":["hiring-manager@company.com"],"recipients_to":["candidate@email.com"],"recipients_bcc":[]},"job_title":"Senior Software Engineer","created_at":"2024-11-12T09:00:00Z","start_date":"2025-01-15T00:00:00Z","updated_at":"2024-11-14T11:30:00Z","country_code":"US","attachment_id":"f2a3b4c5-d6e7-4f8a-9b0c-1d2e3f4a5b6c","approval_rule_id":"b4c5d6e7-f8a9-4b0c-1d2e-3f4a5b6c7d8e","worker_type_enum":"DIRECT_EMPLOYEE","offer_status_enum":"SENT","approval_request_id":"c5d6e7f8-a9b0-4c1d-2e3f-4a5b6c7d8e9f","compensation_amount":120000,"rejection_reason_id":null,"compensation_currency":"USD","compensation_period_slug":"ANNUALLY","application_interview_plan_stage_id":"e1f2a3b4-c5d6-4e7f-8a9b-0c1d2e3f4a5b"}],"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":"c9d0e1f2-a3b4-4c5d-6e7f-8a9b0c1d2e3f","description":"Unique identifier for the interview plan stage"},"name":{"type":"string","example":"Phone Screen","description":"Name of the interview plan stage"},"default_type_slug":{"type":"string","example":"phone_screen","nullable":true,"description":"Default type slug of the interview plan stage"},"category_type_slug":{"type":"string","example":"lead","description":"Interview plan stage category type"}},"description":"Interview plan stage details"}}},"example":[{"id":"b8c9d0e1-f2a3-4b4c-5d6e-7f8a9b0c1d2e","offers":[],"updated_at":"2024-11-10T16:20:00Z","interview_plan_stage":{"id":"c9d0e1f2-a3b4-4c5d-6e7f-8a9b0c1d2e3f","name":"Phone Screen","default_type_slug":"phone_screen","category_type_slug":"ACTIVE"}}],"description":"Array of all application 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":"f4a5b6c7-d8e9-4f0a-1b2c-3d4e5f6a7b8c","description":"Unique identifier for the automation rule execution"},"action_type_enum":{"enum":["ADD_CANDIDATE_TAG","TRANSITION_APPLICATION"],"type":"string","example":"MOVE_TO_STAGE","description":"Type of action performed by the automation rule"},"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":"b6c7d8e9-f0a1-4b2c-3d4e-5f6a7b8c9d0e","description":"Unique identifier for the evaluation result"},"group_id":{"type":"integer","example":0,"minimum":0,"description":"Group ID for logical grouping of conditions"},"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":"GREATER_THAN","description":"Comparison operator used in the evaluation"},"comparison_value":{"type":"string","example":"5","description":"Value used for comparison in the evaluation"},"is_condition_met":{"type":"boolean","example":true,"description":"Whether the condition was met"},"form_builder_question_data_binding_id":{"type":"string","example":"years_of_experience","description":"Data binding ID for the form builder question"}}},"example":[{"id":"b6c7d8e9-f0a1-4b2c-3d4e-5f6a7b8c9d0e","group_id":0,"operator_enum":"GREATER_THAN","comparison_value":"5","is_condition_met":true,"form_builder_question_data_binding_id":"years_of_experience"}],"description":"Array of condition evaluations for the automation rule"},"application_automation_rule_id":{"type":"string","format":"uuid","example":"a5b6c7d8-e9f0-4a1b-2c3d-4e5f6a7b8c9d","description":"Unique identifier for the application automation rule"}}},"example":[{"id":"f4a5b6c7-d8e9-4f0a-1b2c-3d4e5f6a7b8c","action_type_enum":"MOVE_TO_STAGE","evaluation_result":[{"id":"b6c7d8e9-f0a1-4b2c-3d4e-5f6a7b8c9d0e","group_id":0,"operator_enum":"GREATER_THAN","comparison_value":"5","is_condition_met":true,"form_builder_question_data_binding_id":"years_of_experience"}],"application_automation_rule_id":"a5b6c7d8-e9f0-4a1b-2c3d-4e5f6a7b8c9d"}],"description":"Array of automation rule executions for the application"},"current_application_interview_plan_stage":{"type":"object","nullable":true,"required":["id","interview_plan_stage"],"properties":{"id":{"type":"string","format":"uuid","example":"d4e5f6a7-b8c9-4d0e-1f2a-3b4c5d6e7f8a","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":"c9d0e1f2-a3b4-4c5d-6e7f-8a9b0c1d2e3f","description":"Identifier of the interview plan stage"},"name":{"type":"string","example":"Phone Screen","description":"Name of the interview plan stage"},"default_type_slug":{"type":"string","example":"phone_screen","nullable":true,"description":"Default type slug of the interview plan stage"},"category_type_slug":{"type":"string","example":"ACTIVE","description":"Category type slug of the interview plan stage"}},"description":"Details of the interview plan stage"}},"description":"Current interview plan stage for the application"}}}}}}},"description":"Successful response with application 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":"path","name":"application_id","schema":{"type":"string","format":"uuid"},"example":"1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c","required":true,"description":"Unique identifier of the application to retrieve"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/attachments/{attachable_type_slug}/{attachable_id}/{attachment_type_slug}":{"get":{"tags":["ATS"],"summary":"Retrieve paginated list of ATS attachment files","operationId":"retrievePaginatedListOfAtsAttachmentFiles-v2026-01-01","description":"Lists attachment files for a specific ATS entity, scoped by `attachable_type_slug`, `attachable_id`, and `attachment_type_slug`.\n **Token scopes**: `ats:read`","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":"c063a5c3-32c1-4d6b-8425-6e3107701366","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":"c063a5c3-32c1-4d6b-8425-6e3107701366","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","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":"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":"path","name":"attachable_id","schema":{"type":"string","format":"uuid"},"example":"c063a5c3-32c1-4d6b-8425-6e3107701366","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"},{"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"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/candidates":{"get":{"tags":["ATS"],"summary":"Retrieve paginated list of ATS Candidates","operationId":"retrievePaginatedListOfAtsCandidates-v2026-01-01","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 **Token scopes**: `ats:read`","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-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},"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"},"applications":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"b1c2d3e4-f5a6-7890-1234-567890abcdef","nullable":true,"description":"Unique identifier for the application"},"job":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"c1d2e3f4-a5b6-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,"properties":{"id":{"type":"string","format":"uuid","example":"d1e2f3a4-b5c6-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":"e1f2a3b4-c5d6-7890-1234-567890abcdef","description":"Unique identifier for the application"},"interview_plan_stage":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"f1a2b3c4-d5e6-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":"12345678-90ab-cdef-0123-456789abcdef","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":"23456789-0abc-def1-2345-67890abcdef0","description":"Unique identifier for the interview plan stage"}},"x-sensitive-employment":true}}}},"phone_number":{"type":"string","example":"+15551234567","nullable":true,"description":"Candidate's phone number","x-sensitive-pii":true},"candidate_tags":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"34567890-abcd-ef12-3456-7890abcdef01","description":"Unique identifier for the candidate tag"},"tag":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"4567890a-bcde-f123-4567-890abcdef012","description":"Unique identifier for the tag"},"label":{"type":"string","example":"High Potential","description":"Label for the tag"}}},"tag_id":{"type":"string","format":"uuid","example":"567890ab-cdef-1234-5678-90abcdef0123","description":"Unique identifier for the tag"},"candidate_id":{"type":"string","format":"uuid","example":"67890abc-def1-2345-6789-0abcdef01234","description":"Unique identifier for the candidate"}}},"example":[],"nullable":true,"description":"Tags associated with the candidate","x-sensitive-pii":true},"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}}}},"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","example":100,"minimum":0,"description":"Total number of candidates"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"message":{"type":"string","example":"status: Expected array, received string","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":{"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":"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":["3fa85f64-5717-4562-b3fc-2c963f66afa6"],"description":"Filter candidates by job IDs"},{"in":"query","name":"department_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["3fa85f64-5717-4562-b3fc-2c963f66afa6"],"description":"Filter candidates by department IDs"},{"in":"query","name":"tag_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["3fa85f64-5717-4562-b3fc-2c963f66afa6"],"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)"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]},"post":{"tags":["ATS"],"summary":"Create ATS Candidate","operationId":"createAtsCandidate-v2026-01-01","description":"Creates a new candidate record in the ATS and returns the candidate with their unique identifier, which can then be used to link the candidate to job applications.\n **Token scopes**: `ats:write`","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-4a7b-8c9d-0e1f2a3b4c5d","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"},"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","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":[],"security":[{"deelToken":[]},{"oauth2":["ats:write"]}],"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"},"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"},"linkedin_profile_url":{"type":"string","format":"uri","example":"https://www.linkedin.com/in/johndoe","nullable":true,"description":"The candidate's LinkedIn profile URL"}}}}}}}}}},"/ats/departments":{"get":{"tags":["ATS"],"summary":"Retrieve a list of ATS departments","operationId":"retrieveAListOfAtsDepartments","description":"Returns a paginated list of all departments configured in the ATS.\n **Token scopes**: `ats:read`","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","name","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","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"}}},"example":[{"id":"550e8400-e29b-41d4-a716-446655440000","name":"Engineering","created_at":"2023-01-01T00:00:00Z","updated_at":"2023-01-01T00:00:00Z"}]},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more departments available"},"next_cursor":{"type":"string","example":"cursor123","nullable":true,"description":"Cursor for pagination to get the next set of results"},"total_count":{"type":"integer","example":100,"description":"Total number of departments available"}}}}},"description":"Successful response with departments data"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"start_date"},"message":{"type":"string","example":"start_date is required"}}}}}}}},"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":"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"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/employment-types":{"get":{"tags":["ATS"],"summary":"Retrieve a list of ATS employment types","operationId":"retrieveAListOfAtsEmploymentTypes","description":"Returns a paginated list of employment types available in the ATS.\n **Token scopes**: `ats:read`","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","name","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","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"}}},"example":[{"id":"550e8400-e29b-41d4-a716-446655440000","name":"Full-time","created_at":"2023-01-01T00:00:00Z","updated_at":"2023-01-01T00:00:00Z"}]},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more employment types available"},"next_cursor":{"type":"string","example":"cursor123","nullable":true,"description":"Cursor for pagination to get the next set of results"},"total_count":{"type":"integer","example":100,"description":"Total number of employment types available"}}}}},"description":"Successful response with employment types data"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"start_date"},"message":{"type":"string","example":"start_date is required"}}}}}}}},"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":"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"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/hiring-members":{"get":{"tags":["ATS"],"summary":"Retrieve ATS hiring members","operationId":"retrieveAtsHiringMembers","description":"Returns a paginated list of hiring members configured in the ATS.\n **Token scopes**: `ats:read`","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-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"}}}},"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","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":"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"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/job-postings/{job_posting_id}":{"get":{"tags":["ATS"],"summary":"Retrieve ATS job posting","operationId":"retrieveAtsJobPosting","description":"Returns a single job posting by `job_posting_id`, including its associated job object, publication status, application form configuration, compensation visibility flag, and rich-text description.\n **Token scopes**: `ats:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["id","title","richtext_description","is_compensation_visible","job","publications","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"443a9b58-735c-4dc3-9744-589abb2dbe5f","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","x-sensitive-employment":true}},"description":"Details for the team assigned to the job"}}},"nullable":true,"description":"Teams associated with the job","x-sensitive-employment":true},"compensation":{"type":"object","example":{"id":"9a8b7c6d-5e4f-4321-abcd-9876543210ff","max_amount":105000,"min_amount":85000,"currency_iso_code":"USD"},"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","x-sensitive-employment":true},"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","x-sensitive-employment":true}},"description":"Details for the location assigned to the job"}}},"description":"Locations associated with the job","x-sensitive-employment":true},"job_departments":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"092007cf-8e8b-4720-99a2-ec29a0824cce","description":"Unique identifier for the job department"},"department":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"8cec1556-8681-436c-a307-2af84ac1b66d","description":"Unique identifier for the department"},"name":{"type":"string","example":"Design","description":"Department name","x-sensitive-employment":true}},"description":"Details for the department associated with the job"}}},"nullable":true,"description":"Departments associated with the job","x-sensitive-employment":true},"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","x-sensitive-employment":true}},"description":"Associated job information"},"title":{"type":"string","example":"Product Designer","description":"Job posting title","x-sensitive-employment":true},"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","x-sensitive-employment":true},"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","x-sensitive-employment":true},"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"},"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","x-sensitive-employment":true},"is_compensation_visible":{"type":"boolean","example":false,"description":"Indicates if compensation details are visible to candidates","x-sensitive-employment":true}}}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"message":{"type":"string","example":"status: Expected array,","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":"job_posting_id","schema":{"type":"string","format":"uuid"},"example":"1b9d6c7e-2c3f-4f5a-8b6c-7d8e9f0a1b2c","required":true,"description":"Unique identifier of the job posting to retrieve"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/jobs":{"get":{"tags":["ATS"],"summary":"Retrieve a list of ATS jobs","operationId":"retrieveAListOfAtsJobs","description":"Returns a paginated list of jobs in the ATS, filterable by text search, interview plan, locations, teams, employment types, departments, status values, and an ISO 8601 `updated_after` timestamp.\n **Token scopes**: `ats:read`","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-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","properties":{"id":{"type":"string","format":"uuid","example":"f1e2d3c4-b5a6-7890-1234-567890abcdef","description":"Unique identifier for the job team"},"team":{"type":"object","example":{"id":"c1d2e3f4-a5b6-7890-1234-567890abcdef","name":"Engineering Team"},"properties":{"id":{"type":"string","format":"uuid","example":"c1d2e3f4-a5b6-7890-1234-567890abcdef","description":"Unique identifier for the team"},"name":{"type":"string","example":"Engineering Team","description":"Team name"}},"description":"Team associated with the job"}}},"example":[{"id":"f1e2d3c4-b5a6-7890-1234-567890abcdef","team":{"id":"c1d2e3f4-a5b6-7890-1234-567890abcdef","name":"Engineering Team"}}],"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","properties":{"id":{"type":"string","format":"uuid","example":"b1c2d3e4-f5a6-7890-1234-567890abcdef","description":"Unique identifier for the job location"},"location":{"type":"object","example":{"id":"d1e2f3a4-b5c6-7890-1234-567890abcdef","name":"New York"},"properties":{"id":{"type":"string","format":"uuid","example":"d1e2f3a4-b5c6-7890-1234-567890abcdef","description":"Unique identifier for the location"},"name":{"type":"string","example":"New York","description":"Location name"}},"description":"Location associated with the job"}}},"example":[{"id":"b1c2d3e4-f5a6-7890-1234-567890abcdef","location":{"id":"d1e2f3a4-b5c6-7890-1234-567890abcdef","name":"New York"}}],"description":"Locations associated with the job","x-sensitive-employment":true},"hiring_members":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"91a8b7c6-d5e4-4321-abcd-ef0123456789","description":"Unique identifier for the hiring member"},"hris_organization_user_id":{"type":"string","format":"uuid","example":"89abcdef-0123-4567-89ab-cdef01234567","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","properties":{"id":{"type":"string","format":"uuid","example":"67890abc-def1-2345-6789-abcdef012345","description":"Unique identifier for the job department"},"department":{"type":"object","example":{"id":"567890ab-cdef-1234-5678-90abcdef012345","name":"Sales"},"nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"567890ab-cdef-1234-5678-90abcdef012345","description":"Unique identifier for the department"},"name":{"type":"string","example":"Sales","description":"Department name"}},"description":"Department associated with the job"}}},"example":[{"id":"67890abc-def1-2345-6789-abcdef012345","department":{"id":"567890ab-cdef-1234-5678-90abcdef012345","name":"Sales"}}],"nullable":true,"description":"Departments associated with the job","x-sensitive-employment":true},"approval_rule_id":{"type":"string","format":"uuid","default":null,"example":"7890abcd-ef01-2345-6789-abcdef012345","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","default":null,"example":"4567890a-bcde-f012-3456-7890abcdef01","nullable":true,"description":"Unique identifier for the approval request"},"current_compensation":{"type":"object","example":{"id":"comp-1234-5678-90ab-cdef","job_id":"a1b2c3d4-e5f6-7890-1234-567890abcdef","max_amount":120000,"min_amount":80000,"period_slug":"ANNUALLY","currency_iso_code":"USD"},"nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"comp-1234-5678-90ab-cdef","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"}},"description":"Current compensation details","x-sensitive-employment":true},"job_employment_types":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"34567890-abcd-ef01-2345-67890abcdef0","description":"Unique identifier for the job employment type"},"employment_type":{"type":"object","example":{"id":"23456789-0abc-def1-2345-67890abcdef01","name":"Full-time"},"properties":{"id":{"type":"string","format":"uuid","example":"23456789-0abc-def1-2345-67890abcdef01","description":"Unique identifier for the employment type"},"name":{"type":"string","example":"Full-time","description":"Employment type name"}},"description":"Employment type associated with the job"}}},"example":[{"id":"34567890-abcd-ef01-2345-67890abcdef0","employment_type":{"id":"23456789-0abc-def1-2345-67890abcdef01","name":"Full-time"}}],"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":"12345678-90ab-cdef-0123-456789abcdef","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":"98765432-10ab-cdef-0123-456789abcdef","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"}}},"example":[{"id":"12345678-90ab-cdef-0123-456789abcdef","name":"Phone Screen","position_number":1,"default_type_slug":"phone_screen","interview_plan_id":"98765432-10ab-cdef-0123-456789abcdef","category_type_slug":"ACTIVE"}],"nullable":true,"description":"Interview plan stages","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":"01234567-89ab-cdef-0123-456789abcdef","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":"Hiring member job permissions by type slug","x-sensitive-employment":true}}}},"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 jobs"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"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":"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":"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":"b3b7c8e2-4e2a-4c3b-9e2d-1a2b3c4d5e6f","description":"Interview plan UUID (optional)"},{"in":"query","name":"location_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["d1e2f3a4-b5c6-7d8e-9f01-23456789abcd"],"description":"Array of location UUIDs (optional)"},{"in":"query","name":"team_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["a1b2c3d4-e5f6-7a8b-9c0d-1234567890ab"],"description":"Array of team UUIDs (optional)"},{"in":"query","name":"employment_type_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["e1f2a3b4-c5d6-7e8f-9a01-23456789bcde"],"description":"Array of employment type UUIDs (optional)"},{"in":"query","name":"department_ids","schema":{"type":"array","items":{"type":"string","format":"uuid"}},"example":["f1e2d3c4-b5a6-7c8d-9e0f-123456789abc"],"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)"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]},"post":{"tags":["ATS"],"summary":"Create ATS Job","operationId":"createAtsJob","description":"Creates a new job in the ATS and returns the resulting job record, including its assigned `id`, initial status, and associated approval rule and request identifiers.\n **Token scopes**: `ats:write`","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","example":{"id":"550e8400-e29b-41d4-a716-446655440004","title":"Senior Software Engineer","status":"DRAFT","job_teams":[{"id":"550e8400-e29b-41d4-a716-446655440010","team":{"id":"550e8400-e29b-41d4-a716-446655440011","name":"Engineering"}}],"created_at":"2024-07-29T10:30:00Z","updated_at":"2024-07-29T10:30:00Z","job_locations":[{"id":"550e8400-e29b-41d4-a716-446655440012","location":{"id":"550e8400-e29b-41d4-a716-446655440013","name":"New York, NY"}}],"is_confidential":false,"job_departments":[{"id":"550e8400-e29b-41d4-a716-446655440014","department":{"id":"550e8400-e29b-41d4-a716-446655440015","name":"Technology"}}],"approval_rule_id":"550e8400-e29b-41d4-a716-446655440005","approval_request_id":"550e8400-e29b-41d4-a716-446655440006","job_employment_types":[{"id":"550e8400-e29b-41d4-a716-446655440016","employment_type":{"id":"550e8400-e29b-41d4-a716-446655440017","name":"Full-time"}}],"richtext_description":"<p>We are looking for a senior software engineer...</p>","created_by_hris_organization_user_id":"550e8400-e29b-41d4-a716-446655440007"},"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":"550e8400-e29b-41d4-a716-446655440004","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":"550e8400-e29b-41d4-a716-446655440010","description":"Job team relationship ID"},"team":{"type":"object","example":{"id":"550e8400-e29b-41d4-a716-446655440011","name":"Engineering"},"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440011","description":"Team ID"},"name":{"type":"string","example":"Engineering","description":"Team name"}}}}},"example":[{"id":"550e8400-e29b-41d4-a716-446655440010","team":{"id":"550e8400-e29b-41d4-a716-446655440011","name":"Engineering"}}],"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":"550e8400-e29b-41d4-a716-446655440012","description":"Job location relationship ID"},"location":{"type":"object","example":{"id":"550e8400-e29b-41d4-a716-446655440013","name":"New York, NY"},"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440013","description":"Location ID"},"name":{"type":"string","example":"New York, NY","description":"Location name"}}}}},"example":[{"id":"550e8400-e29b-41d4-a716-446655440012","location":{"id":"550e8400-e29b-41d4-a716-446655440013","name":"New York, NY"}}],"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":"550e8400-e29b-41d4-a716-446655440014","description":"Job department relationship ID"},"department":{"type":"object","example":{"id":"550e8400-e29b-41d4-a716-446655440015","name":"Technology"},"nullable":true,"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440015","description":"Department ID"},"name":{"type":"string","example":"Technology","description":"Department name"}}}}},"example":[{"id":"550e8400-e29b-41d4-a716-446655440014","department":{"id":"550e8400-e29b-41d4-a716-446655440015","name":"Technology"}}],"nullable":true,"description":"Departments associated with the job"},"approval_rule_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440005","nullable":true,"description":"ID of the approval rule applied to this job"},"approval_request_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440006","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":"550e8400-e29b-41d4-a716-446655440016","description":"Job employment type relationship ID"},"employment_type":{"type":"object","example":{"id":"550e8400-e29b-41d4-a716-446655440017","name":"Full-time"},"required":["id","name"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440017","description":"Employment type ID"},"name":{"type":"string","example":"Full-time","description":"Employment type name"}}}}},"example":[{"id":"550e8400-e29b-41d4-a716-446655440016","employment_type":{"id":"550e8400-e29b-41d4-a716-446655440017","name":"Full-time"}}],"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},"created_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440007","nullable":true,"description":"ID of the user who created the job"}}}}}}},"description":"Job successfully created"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"start_date"},"message":{"type":"string","example":"start_date is required"}}}}}}}},"description":"Operation failed."},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"parameters":[],"security":[{"deelToken":[]},{"oauth2":["ats:write"]}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","required":["title","employment_type_ids","team_ids","location_ids"],"properties":{"title":{"type":"string","example":"Senior Software Engineer","description":"The job title"},"team_ids":{"type":"array","items":{"type":"string","format":"uuid","description":"Team ID must be a valid UUID"},"example":["550e8400-e29b-41d4-a716-446655440002"],"minItems":1,"description":"Array of team IDs (at least one required)"},"location_ids":{"type":"array","items":{"type":"string","format":"uuid","description":"Location ID must be a valid UUID"},"example":["550e8400-e29b-41d4-a716-446655440003"],"description":"Array of location IDs"},"department_ids":{"type":"array","items":{"type":"string","format":"uuid","description":"Department ID must be a valid UUID"},"example":["550e8400-e29b-41d4-a716-446655440001"],"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":"550e8400-e29b-41d4-a716-446655440000","description":"Interview Plan ID must be a valid UUID"},"employment_type_ids":{"type":"array","items":{"type":"string","format":"uuid","description":"Job Type ID must be a valid UUID"},"example":["550e8400-e29b-41d4-a716-446655440000"],"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,"description":"Rich text description of the job"}}}}}}}}}},"/ats/reasons":{"get":{"tags":["ATS"],"summary":"Retrieve paginated list of ATS Rejection/Archivation reasons","operationId":"retrievePaginatedListOfAtsRejectionArchivationReasons-v2026-01-01","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 **Token scopes**: `ats:read`","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","label","reason_group_slug","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"a5a03786-0589-440e-93ea-6ecde116bc22","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","BENEFITS","COUNTER_OFFER","REMOTE_WORK","PERSONAL","TIMING","BUDGET","BUSINESS_NEEDS","EXTERNAL_CANDIDATE","INTERNAL_TRANSFER","HIRING_FREEZE",null],"type":"string","example":"INTEREST","nullable":true,"description":"Reason subgroup slug"},"email_template":{"type":"object","example":{"id":"a1b2c3d4-e5f6-7890-1234-567890abcdef","title":"Not Interested"},"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"],"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","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":"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":"John Doe","description":"Search text for filtering candidates"},{"in":"query","name":"reason_group_slug","schema":{"enum":["CANDIDATE_ARCHIVATION","OFFER_REJECTION","JOB_CLOSURE"],"type":"string"},"example":"OFFER_REJECTION","description":"Reason group enum"},{"in":"query","name":"include_counts","schema":{"type":"string"},"example":"true","description":"If sent true, it will fetch result with counts"},{"in":"query","name":"subgroup_slug","schema":{"enum":["INTEREST","LOCATION","COMPENSATION","RESPONSIVENESS","QUALIFICATION","FIT","EXPERIENCE","STATUS","ROLE_CHANGE","BENEFITS","COUNTER_OFFER","REMOTE_WORK","PERSONAL","TIMING","BUDGET","BUSINESS_NEEDS","EXTERNAL_CANDIDATE","INTERNAL_TRANSFER","HIRING_FREEZE"],"type":"string"},"example":"INTEREST","description":"Reason subgroup enum"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/job-boards/{job_board_id}/job-postings":{"get":{"tags":["ATS"],"summary":"Retrieve a list of ATS job postings","operationId":"retrieveAListOfAtsJobPostings","description":"Returns a paginated list of job postings belonging to the specified job board. Results can be filtered using available query parameters.\n **Token scopes**: `ats:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","required":["id","title","richtext_description","is_compensation_visible","job","publications","created_at","updated_at"],"properties":{"id":{"type":"string","format":"uuid","example":"443a9b58-735c-4dc3-9744-589abb2dbe5f","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","x-sensitive-employment":true},"compensation":{"type":"object","example":{"id":"9a8b7c6d-5e4f-4321-abcd-9876543210ff","max_amount":105000,"min_amount":85000,"currency_iso_code":"USD"},"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","x-sensitive-employment":true},"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","x-sensitive-employment":true},"job_departments":{"type":"array","items":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","example":"092007cf-8e8b-4720-99a2-ec29a0824cce","description":"Unique identifier for the job department"},"department":{"type":"object","nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"8cec1556-8681-436c-a307-2af84ac1b66d","description":"Unique identifier for the department"},"name":{"type":"string","example":"Design","description":"Department name"}},"description":"Details for the department associated with the job"}}},"nullable":true,"description":"Departments associated with the job","x-sensitive-employment":true},"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","x-sensitive-employment":true}},"description":"Associated job information"},"title":{"type":"string","example":"Product Designer","description":"Job posting title","x-sensitive-employment":true},"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","x-sensitive-employment":true},"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","x-sensitive-employment":true},"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"},"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","x-sensitive-employment":true},"is_compensation_visible":{"type":"boolean","example":false,"description":"Indicates if compensation details are visible to candidates","x-sensitive-employment":true}}}},"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":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"message":{"type":"string","example":"status: Expected array,","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":"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)"},{"in":"path","name":"job_board_id","schema":{"type":"string","format":"uuid"},"example":"95858e6b-3971-408c-97d6-73ca4fce10b7","required":true,"description":"Job Board ID must be a valid UUID"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/applications/{application_id}/interview-plan-stages":{"post":{"tags":["ATS"],"summary":"Associate application with an interview plan stage","operationId":"associateApplicationWithAnInterviewPlanStage-v2026-01-01","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 **Token scopes**: `ats:write`","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":"88688e3c-10dd-4917-a37c-659d0de928ed","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":{"description":"Email body contains placeholders that can't be resolved"},"401":{"$ref":"#/components/responses/ResponseBodyForApiError"},"403":{"$ref":"#/components/responses/ResponseBodyForApiError"},"404":{"$ref":"#/components/responses/ResponseBodyForApiError"},"500":{"$ref":"#/components/responses/ResponseBodyForApiError"}},"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"}],"security":[{"deelToken":[]},{"oauth2":["ats:write"]}],"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":"64f20cad-0780-46b5-af85-ced82108dd27","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":"076cf197-dda0-4694-a953-d7a449fa568a","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":"b2c3d4e5-f6a7-8901-bcde-f12345678901","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":"d4e5f6a7-b8c9-0123-def1-234567890123","description":"Optional custom email template ID for candidate self-scheduling (only applicable for interview scheduling activities)"}}},"example":[{"id":"b2c3d4e5-f6a7-8901-bcde-f12345678901","participants":[{"role_slug":"INTERVIEWER","participant_hris_organization_user_id":"c3d4e5f6-a7b8-9012-cdef-123456789012"}]}],"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":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"Optional ID of the archivation reason if the candidate is being archived"},"candidate_archivation_email_template_id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"Optional ID of the rejection email template if the candidate is being archived"}}}}}}},"required":true}}},"/it/orders/{order_id}":{"get":{"tags":["IT orders"],"summary":"Retrieve an IT order","operationId":"retrieveAnItOrder","description":"Returns the status, shipping details, and associated product for a single IT equipment order identified by order_id.\n **Token scopes**: `it-orders:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["it-orders:read"]}]}},"/ats/email-templates":{"get":{"tags":["ATS"],"summary":"Retrieve a list of published ATS email templates","operationId":"retrieveAListOfPublishedAtsEmailTemplates-v2026-02-11","description":"Returns a paginated list of published email templates for the organization, supporting cursor-based pagination and filtering by `updated_after` timestamp.\n **Token scopes**: `ats:read`","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","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"}}}},"has_more":{"type":"boolean","example":true,"description":"Indicates if there are more email templates to fetch"},"next_cursor":{"type":"string","example":"eyJsYXN0Q3JlYXRlZEF0IjoiMjAyNS0wOS0xN1QxMzozMzowNC41MjNaIiwibGFzdElkIjoiYWZmZjRhMzAtMWY0ZS00NTMyLTk0MDItNGJmODk2NDFkMjE4In0=","nullable":true,"description":"Cursor for the next page of results"},"total_count":{"type":"integer","example":4,"description":"Total number of email templates available"}}},"example":{"data":[{"id":"f9cdb75b-1314-42fc-96b4-e6168fd73ed8","title":"Default Archive Email Template","created_at":"2025-09-17T13:33:04.523Z","updated_at":"2025-09-17T13:33:04.523Z"},{"id":"dec2e354-ec06-4311-bb77-1732261b6e2e","title":"Default Offer Email Template","created_at":"2025-09-17T13:33:04.523Z","updated_at":"2025-09-17T13:33:04.523Z"},{"id":"afff4a30-1f4e-4532-9402-4bf89641d218","title":"Default Candidate Interview Scheduling Email Template","created_at":"2025-09-17T13:33:04.523Z","updated_at":"2025-09-17T13:33:04.523Z"}],"has_more":true,"next_cursor":"eyJsYXN0Q3JlYXRlZEF0IjoiMjAyNS0wOS0xN1QxMzozMzowNC41MjNaIiwibGFzdElkIjoiYWZmZjRhMzAtMWY0ZS00NTMyLTk0MDItNGJmODk2NDFkMjE4In0=","total_count":4}}},"description":"Successfully retrieved email templates"},"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":"internal_server_error","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":"Internal Server Error","description":"Human-readable explanation of the error"}}}}}}}},"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)"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/locations":{"get":{"tags":["ATS"],"summary":"Retrieve a list of ATS locations","operationId":"retrieveAListOfAtsLocations-v2026-01-01","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 **Token scopes**: `ats:read`","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","name","updated_at","created_at"],"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","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","example":{"id":"550e8400-e29b-41d4-a716-446655440000","name":"Remote"},"nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"550e8400-e29b-41d4-a716-446655440000","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"}]},"has_more":{"type":"boolean","example":true,"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","example":100,"description":"Total number of locations available"}}}}},"description":"Successful response with locations data"},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"errors":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter"},"field":{"type":"string","example":"start_date"},"message":{"type":"string","example":"start_date is required"}}}}}}}},"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":"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"}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/offers":{"get":{"tags":["ATS"],"summary":"Retrieve a list of ATS offers","operationId":"retrieveAListOfAtsOffers-v2026-01-01","description":"Returns all offers associated with the organization, including worker type and offer status, to support pre-onboarding and contract creation workflows.\n **Token scopes**: `ats:read`","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-1234-567890abcdef","description":"Unique identifier"},"email":{"type":"object","example":{"id":"f1e2d3c4-b5a6-7890-1234-567890abcdef","body":"Hello, this is a test email.","subject":"Test Email","sender_name":"John Doe","recipient_cc":"cc@example.com","recipient_to":"to@example.com","recipient_bcc":"bcc@example.com"},"nullable":true,"properties":{"id":{"type":"string","format":"uuid","example":"f1e2d3c4-b5a6-7890-1234-567890abcdef","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"},"start_date":{"type":"string","format":"date","example":"2024-02-01","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","DIRECT_EMPLOYEE","EOR_EMPLOYEE","GLOBAL_PAYROLL_EMPLOYEE","PEO_EMPLOYEE","UNKNOWN"],"type":"string","example":"CONTRACTOR","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","ACCEPTED","REJECTED"],"type":"string","example":"CREATED","description":"Offer status","x-sensitive-employment":true},"attachment_id":{"type":"string","format":"uuid","example":"b1c2d3e4-f5a6-7890-1234-567890abcdef","nullable":true,"description":"Attachment identifier"},"approval_rule_id":{"type":"string","format":"uuid","example":"c1d2e3f4-a5b6-7890-1234-567890abcdef","nullable":true,"description":"Approval rule identifier"},"approval_request_id":{"type":"string","format":"uuid","example":"d1e2f3a4-b5c6-7890-1234-567890abcdef","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":"e1f2a3b4-c5d6-7890-1234-567890abcdef","nullable":true,"description":"Rejection reason identifier"},"compensation_currency":{"type":"string","example":"USD","description":"Compensation currency","x-sensitive-employment":true},"application_interview_plan_stage_id":{"type":"string","format":"uuid","example":"f1a2b3c4-d5e6-7890-1234-567890abcdef","description":"Application interview plan stage identifier","x-sensitive-employment":true}}}},"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":"number","example":100,"description":"Total number of offers"}}}}},"description":"Successful operation."},"400":{"content":{"application/json":{"schema":{"type":"object","properties":{"code":{"type":"string","example":"invalid_parameter","description":"Machine-readable error code"},"message":{"type":"string","example":"status: Expected array, received string","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":[],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/ats/tags":{"get":{"tags":["ATS"],"summary":"List tags","operationId":"listTags-v2026-02-27","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 **Token scopes**: `ats:read`","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 includeCounts=true."},"created_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f12345678901","nullable":true,"description":"ID of the user who created the tag, if any."},"updated_by_hris_organization_user_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f12345678901","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":["status_code","timestamp","path","errors"],"properties":{"path":{"type":"string","description":"Request URL path"},"errors":{"type":"array","items":{"type":"object","required":["code","message","field"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"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"},"timestamp":{"type":"string","format":"date-time","description":"Time when the error occurred"},"status_code":{"type":"integer","example":400,"description":"HTTP status code"}}}}},"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":["status_code","timestamp","path"],"properties":{"path":{"type":"string","description":"Request URL path"},"timestamp":{"type":"string","format":"date-time","description":"Time when the error occurred"},"status_code":{"type":"integer","example":500,"description":"HTTP status code"}}}}},"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)."}],"security":[{"deelToken":[]},{"oauth2":["ats:read"]}]}},"/it/assets":{"get":{"tags":["IT assets"],"summary":"List IT assets","operationId":"listItAssets","description":"Returns a cursor-paginated list of all IT assets historically or currently managed by the organization.\n **Token scopes**: `it-assets:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["it-assets:read"]}]}},"/ats/applications/{application_id}/notes":{"post":{"tags":["ATS"],"summary":"Add note to an application","operationId":"addNoteToAnApplication-v2026-01-01","description":"Adds a note to a specific application. The `author_id` must correspond to a valid HRIS user.\n **Token scopes**: `ats:write`","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":"Application note 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":"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":"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"}],"security":[{"deelToken":[]},{"oauth2":["ats:write"]}],"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}}},"/ats/candidates/{candidate_id}/tags":{"post":{"tags":["ATS"],"summary":"Create candidate tags","operationId":"createCandidateTags-v2026-02-27","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 **Token scopes**: `ats:write`","responses":{"201":{"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","format":"uuid","example":"a1b2c3d4-e5f6-7890-abcd-ef1234567890","description":"Unique identifier of the candidate-tag association."},"tag_id":{"type":"string","format":"uuid","example":"b2c3d4e5-f6a7-8901-bcde-f12345678901","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":"c3d4e5f6-a7b8-9012-cdef-123456789012","description":"Unique identifier of the candidate."}}},"description":"List of created candidate-tag associations."}}}}},"description":"Successfully created"},"400":{"content":{"application/json":{"schema":{"type":"object","required":["status_code","timestamp","path","errors"],"properties":{"path":{"type":"string","description":"Request URL path"},"errors":{"type":"array","items":{"type":"object","required":["code","message","field"],"properties":{"code":{"type":"string","example":"invalid_parameter","description":"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"},"timestamp":{"type":"string","format":"date-time","description":"Time when the error occurred"},"status_code":{"type":"integer","example":400,"description":"HTTP status code"}}}}},"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":["status_code","timestamp","path"],"properties":{"path":{"type":"string","description":"Request URL path"},"timestamp":{"type":"string","format":"date-time","description":"Time when the error occurred"},"status_code":{"type":"integer","example":500,"description":"HTTP status code"}}}}},"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."}],"security":[{"deelToken":[]},{"oauth2":["ats:write"]}],"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}}},"/it/assets/{asset_id}":{"get":{"tags":["IT assets"],"summary":"Retrieve an IT asset","operationId":"retrieveAnItAsset","description":"Retrieves the details of a specific IT asset by `asset_id`.\n **Token scopes**: `it-assets:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["it-assets:read"]}]}},"/it/policies":{"get":{"tags":["IT policies"],"summary":"List IT hardware policies","operationId":"listItHardwarePolicies","description":"Returns all available IT hardware policies, which define the equipment eligible for ordering.\n **Token scopes**: `it-policies:read`","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":[],"security":[{"deelToken":[]},{"oauth2":["it-policies:read"]}]}},"/immigration/documents/{id}":{"get":{"tags":["Immigration"],"summary":"Immigration document","operationId":"immigrationDocument","description":"Retrieves the details of an immigration case document by its document `id`.\n **Token scopes**: `immigration:read`","responses":{"200":{"content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"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":{"$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":"dc7eb5dd-3161-4309-9b6a-7a87b7817d9e","required":true,"description":"Immigration case document id "}],"security":[{"deelToken":[]},{"oauth2":["immigration:read"]}]}},"/immigration/visa-types/{country_code}":{"get":{"tags":["Immigration"],"summary":"Immigration visa types","operationId":"immigrationVisaTypes","description":"Returns the visa types supported for immigration processing in a country, identified by its Alpha-2 country code.\n **Token scopes**: `immigration:read`","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"}],"security":[{"deelToken":[]},{"oauth2":["immigration: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/"}}},"WebhookListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookItem"}}},"required":["data"]},"WebhookItem":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier of this resource.","example":"00000000-0000-0000-0000-000000000000"},"name":{"type":"string","description":"Webhook subscription name.","nullable":true,"example":"My webhooks"},"description":{"type":"string","description":"Webhook subscription description.","nullable":true,"example":"My first webhook"},"status":{"type":"string","description":"Status of webhook.","enum":["enabled","disabled"],"example":"enabled"},"url":{"type":"string","description":"Endpoint to receive webhook.","example":"https://mywebhook.com/listening"},"signing_key":{"type":"string","description":"The webhook's signing key, used to generate webhook signatures.","nullable":true,"example":null},"api_version":{"type":"string","description":"Deel API version. Currently Deel accepts v1 or v2 version.","nullable":false,"example":"v2","default":"v2"},"events":{"description":"The list of events to enable for this subscription.","example":["contract.created"],"type":"array","items":{"type":"string"}},"created_at":{"type":"string","description":"Time at which the webhook was created."},"updated_at":{"type":"string","description":"Time at which the webhook was updated."},"hidden":{"type":"boolean","description":"Property to hide the webhook from frontend view. Commonly by Dell 3rd party apps","nullable":true,"example":false},"internal":{"type":"boolean"},"deleted_at":{"type":"string","description":"Time at which the webhook was deleted."}},"required":["name","description","status","url","signing_key","api_version","events","id","created_at","updated_at"]},"PatchWebhookRequest":{"type":"object","properties":{"name":{"type":"string","description":"Webhook subscription name.","nullable":true,"example":"Demo webhook"},"description":{"type":"string","description":"Webhook subscription description.","nullable":true,"example":"My first webhook"},"status":{"type":"string","description":"Status of webhook.","enum":["enabled","disabled"],"example":"enabled"},"url":{"type":"string","description":"Endpoint to receive webhook.","example":"https://mywebhook.com/listening"},"signing_key":{"type":"string","description":"The webhook's signing key, used to generate webhook signatures.","nullable":true,"example":null},"api_version":{"type":"string","description":"Deel API version. Currently Deel accepts v1 or v2 version.","nullable":false,"example":"v2","default":"v2"},"events":{"description":"The list of events to enable for this subscription.","example":["contract.created"],"type":"array","items":{"type":"string"}}},"required":["name","description","status","url","signing_key","events"]},"GenericResultDeleted":{"type":"object","required":["data"],"properties":{"data":{"type":"object","required":["deleted"],"properties":{"deleted":{"type":"boolean","description":"Confirms the deletion.","nullable":false}}}}},"WebhookEventTypeListResponse":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/WebhookEventTypeResponse"}}}},"WebhookEventTypeResponse":{"type":"object","properties":{"id":{"type":"number","description":"Event type unique identifier.","nullable":false},"module_name":{"type":"string","description":"Name of the rabbit queue.","nullable":false,"example":"contract"},"module_label":{"type":"string","description":"Display name of the rabbit queue in Deel UI.","nullable":false,"example":"Contracts"},"name":{"type":"string","description":"Name of the webhook event.","nullable":false,"example":"invoice-adjustment.reviewed"},"description":{"type":"string","description":"Describes the webhook event and other pertinent info.","example":"Triggered when a contract status changes."},"payload_example":{"type":"string","description":"JSON payload example of the specific event.","nullable":true,"example":null},"created_at":{"type":"string","description":"Time at which the event type was created."},"updated_at":{"type":"string","description":"Time at which the event type was updated."}},"required":["id","module_name","module_label","name","description"]},"WebhookItemResponse":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/WebhookItem"}},"required":["data"]},"CreateWebhookRequest":{"type":"object","properties":{"name":{"type":"string","description":"Webhook subscription name.","nullable":true,"example":"My first webhook."},"description":{"type":"string","description":"Webhook subscription description.","nullable":true,"example":"I like it very much."},"status":{"type":"string","description":"Status of webhook.","enum":["enabled","disabled"],"example":"enabled"},"url":{"type":"string","description":"Endpoint to receive webhook.","example":"https://mywebhook.com"},"signing_key":{"type":"string","description":"The webhook's signing key, used to generate webhook signatures.","nullable":true,"minimum":32,"example":null},"api_version":{"type":"string","description":"Deel API version. Currently Deel accepts v1 or v2 version.","nullable":false,"default":"v2","example":"v2"},"events":{"description":"The list of events to enable for this subscription.","example":["contract.created"],"type":"array","items":{"type":"string"}}},"required":["name","description","status","url","signing_key","api_version","events"]}},"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)\n"},"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."}}}}}}}