openapi: 3.1.0 info: title: Endpoints subpackage_contracts API version: 1.0.0 servers: - url: https://api.letsdeel.com/rest/v2 - url: https://api-staging.letsdeel.com/rest/v2 tags: - name: subpackage_contracts paths: /contracts/{contract_id}: patch: operationId: update-ic-contract summary: Add external Id description: "Add an external Id to a Deel contract. You can use this to add a Deel contract's refernece Id in your platform. External Id can be passed as a query parameter in List contract endpoint to find this contract later.\n **Token scopes**: `contracts:write`" tags: - subpackage_contracts parameters: - name: contract_id in: path description: Deel contract id. required: true schema: type: string - name: Authorization in: header 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" required: true schema: type: string responses: '200': description: Successful operation. content: application/json: schema: $ref: '#/components/schemas/contracts_updateICContract_Response_200' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/AddExternalIdRequestNotFoundError' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' requestBody: description: Contract object that needs to be created content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ContractsContractIdPatchRequestBodyContentApplicationJsonSchemaData' required: - data get: operationId: get-contract summary: Retrieve a single contract description: "Retrieve a single contract.\n **Token scopes**: `contracts:read`" tags: - subpackage_contracts parameters: - name: contract_id in: path description: Unique identifier of the contract. required: true schema: type: string - name: expand in: query description: Include cost centers in the response. required: false schema: $ref: '#/components/schemas/ContractsContractIdGetParametersExpand' - name: Authorization in: header 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" required: true schema: type: string responses: '200': description: Successful operation. content: application/json: schema: $ref: '#/components/schemas/contracts_getContract_Response_200' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Not found content: application/json: schema: $ref: '#/components/schemas/RetrieveASingleContract-v2026-01-01RequestNotFoundError' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' /contracts: post: operationId: create-ic-contract summary: Create a new contract description: "Create a new Deel contract.\n **Token scopes**: `contracts:write`" tags: - subpackage_contracts parameters: - name: Authorization in: header 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" required: true schema: type: string responses: '201': description: Successful operation. content: application/json: schema: $ref: '#/components/schemas/contracts_createICContract_Response_201' '400': description: Bad Request - Validation error or invalid parameters content: application/json: schema: $ref: '#/components/schemas/CreateANewContract-v2026-01-01RequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' requestBody: content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData' required: - data get: operationId: get-contracts summary: List of contracts description: "Retrieve a list of contracts.\n **Token scopes**: `contracts:read`" tags: - subpackage_contracts parameters: - name: after_cursor in: query description: Return next page of results after the given cursor. required: false schema: type: string - name: limit in: query description: Return a page of results with the given number of records. required: false schema: type: string - name: order_direction in: query description: Order direction of results; ascending or descending. required: false schema: $ref: '#/components/schemas/ContractsGetParametersOrderDirection' - name: types in: query description: Filter contracts by type. A contract is included in the results if its type is in this list. required: false schema: type: array items: $ref: '#/components/schemas/ContractsGetParametersTypesSchemaItems' - name: statuses in: query description: Filter contracts by current status. A contract is included in the results if its status is in this list. required: false schema: type: array items: $ref: '#/components/schemas/ContractsGetParametersStatusesSchemaItems' - name: team_id in: query description: 'Filter contracts for the given team ID. NOTE: All query parameters are technically strings or arrays of strings.' required: false schema: type: string - name: external_id in: query description: Filter contracts for the given external ID. required: false schema: type: string - name: external_id_absent in: query 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. required: false schema: type: string - name: countries in: query description: Filter contracts by country codes. required: false schema: type: array items: type: string - name: currencies in: query description: Filter contracts by currency codes. required: false schema: $ref: '#/components/schemas/ContractsGetParametersCurrencies' - name: search in: query description: Include a contract if its name or the contractor's name contains the given search term. required: false schema: type: string - name: sort_by in: query description: Sort contracts by the given field name. required: false schema: $ref: '#/components/schemas/ContractsGetParametersSortBy' - name: expand in: query description: Include cost centers in the response. required: false schema: $ref: '#/components/schemas/ContractsGetParametersExpand' - name: Authorization in: header 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" required: true schema: type: string responses: '200': description: Successful operation. content: application/json: schema: $ref: '#/components/schemas/contracts_getContracts_Response_200' '400': description: Bad Request - Validation error or invalid parameters content: application/json: schema: $ref: '#/components/schemas/ListOfContractsRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' /equity/exercise/{public_id}: patch: operationId: approve-an-equity-exercise-v-2026-01-01 summary: Approve an equity exercise description: "Approve an equity exercise.\n **Token scopes**: `contracts:write`" tags: - subpackage_contracts parameters: - name: public_id in: path description: Equity exercise public ID. required: true schema: type: string format: uuid - name: Authorization in: header 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" required: true schema: type: string responses: '200': description: Successful operation content: application/json: schema: $ref: '#/components/schemas/Contracts_approveAnEquityExercise-v2026-01-01_Response_200' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '401': description: Authentication failed. The access token is missing, expired, or invalid. content: application/json: schema: $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestUnauthorizedError' '403': description: Access denied. The authenticated user does not have the required contracts:write scope. content: application/json: schema: $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestForbiddenError' '404': 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. content: application/json: schema: $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestNotFoundError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestTooManyRequestsError' '500': 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. content: application/json: schema: $ref: '#/components/schemas/ApproveAnEquityExercise-v2026-01-01RequestInternalServerError' requestBody: content: application/json: schema: type: object properties: employer_approval: type: string description: 'Approval decision by the employer for the equity exercise. Valid values: ''approved'', ''rejected''.' required: - employer_approval /equity/exercise: post: operationId: create-a-request-to-exercise-equity-v-2026-01-01 summary: Create a request to exercise equity. description: "Create a request to exercise equity.\n **Token scopes**: `contracts:write`" tags: - subpackage_contracts parameters: - name: Authorization in: header 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" required: true schema: type: string responses: '201': description: Equity exercise request created successfully. content: application/json: schema: $ref: '#/components/schemas/Contracts_createARequestToExerciseEquity-v2026-01-01_Response_201' '400': description: Request validation failed. A required field is missing, has an invalid format, or the worker is not eligible for equity exercise. content: application/json: schema: $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestBadRequestError' '401': description: Authentication failed. The access token is missing, expired, or invalid. content: application/json: schema: $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestUnauthorizedError' '403': description: Access denied. The authenticated user does not have the required contracts:write scope. content: application/json: schema: $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestForbiddenError' '404': description: The worker profile associated with the given worker_id was not found. content: application/json: schema: $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestNotFoundError' '422': description: A request with the same exercise_id already exists. Each exercise_id can only be used once. content: application/json: schema: $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestUnprocessableEntityError' '429': description: Rate limit exceeded. content: application/json: schema: $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestTooManyRequestsError' '500': description: Internal server error. Possible causes include missing EOR contract for the worker, FX rate service failure, or database errors. content: application/json: schema: $ref: '#/components/schemas/CreateARequestToExerciseEquity-v2026-01-01RequestInternalServerError' requestBody: content: application/json: schema: type: object properties: fmv: type: string description: The fair market value of the equity. quantity: type: number format: double description: The quantity of equity to exercise. Must be a positive number. issuer_id: type: string description: The unique identifier of the issuer. worker_id: type: string description: The public UUID of the worker. Must correspond to an existing worker in the system. address_zip: type: string description: The zip code of the address. exercise_id: type: string format: uuid description: The unique identifier of the exercise. address_city: type: string description: The city of the address. address_state: type: string description: The state of the address. address_street: type: string description: The street of the address. stakeholder_id: type: string description: The unique identifier of the stakeholder. address_country: type: string description: The country of the address. option_grant_id: type: string description: The numeric identifier of the option grant. Must contain only digits. fmv_currency_code: type: string description: The currency code of the fair market value (ISO 4217). stakeholder_email: type: string format: email description: The email address of the stakeholder. option_grant_issue: type: string description: The issue of the option grant. option_grant_label: type: string description: The label of the option grant. option_grant_currency: type: string description: The currency of the option grant (ISO 4217). option_grant_issue_date: type: string format: date description: The issue date of the option grant (ISO 8601 date). option_grant_expiry_date: type: string format: date description: The expiry date of the option grant (ISO 8601 date). stakeholder_relationship: type: string description: The relationship of the stakeholder. option_grant_strike_price: type: string description: The strike price of the option grant. required: - fmv - quantity - issuer_id - worker_id - address_zip - exercise_id - address_city - address_state - address_street - stakeholder_id - address_country - option_grant_id - fmv_currency_code - stakeholder_email - option_grant_issue - option_grant_label - option_grant_currency - option_grant_issue_date - option_grant_expiry_date - stakeholder_relationship - option_grant_strike_price /contracts/{contract_id}/equity_withholding_estimate: get: operationId: get-contract-equity-withholding-amount summary: Get an estimate of withholding amount given an equity event. description: "Get an estimate of the withholding amount required as well as the assumptions behind the estimate, given a contract id, event amount and currency code.\n **Token scopes**: `contracts:read`, `global-payroll:read`" tags: - subpackage_contracts parameters: - name: contract_id in: path description: Deel contract id. required: true schema: type: string - name: event_value in: query description: The monetary value of the equity event. required: true schema: type: string - name: event_currency in: query description: Three-letter currency code for the payment, following ISO 4217. required: true schema: type: string - name: Authorization in: header 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" required: true schema: type: string responses: '200': description: Successful operation. content: application/json: schema: $ref: '#/components/schemas/Contracts_getContractEquityWithholdingAmount_Response_200' '400': description: Bad request. content: application/json: schema: $ref: '#/components/schemas/GetContractEquityWithholdingAmountRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Unable to calculate due to missing information. content: application/json: schema: $ref: '#/components/schemas/GetContractEquityWithholdingAmountRequestNotFoundError' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' /workers/contracts/{contract_id}/reject: post: operationId: reject-contract summary: Reject contract description: "Rejects a contract that is in the pending (unsigned) state by specifying its public ID in the contract_id parameter. Use this endpoint when you do not wish to proceed with the agreement. Only contracts that have not yet been signed or previously rejected are eligible for this action\n **Token scopes**: `worker:write`" tags: - subpackage_contracts parameters: - name: contract_id in: path 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. required: true schema: type: string - name: Authorization in: header 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" required: true schema: type: string responses: '204': description: No Content content: application/json: schema: $ref: '#/components/schemas/Contracts_rejectContract_Response_204' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/RejectContractRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/RejectContractRequestInternalServerError' /workers/contracts/{contract_id}/pdf: get: operationId: retrieve-contract-pdf-download-link summary: Retrieve contract PDF download link description: "Use this endpoint to retrieve a secure URL for downloading the PDF version of a specific contract. Provide the contract_id in the path to get the download link. This link can be used by the authenticated worker to access the contract document.\n **Token scopes**: `worker:read`" tags: - subpackage_contracts parameters: - name: contract_id in: path description: The unique public identifier of the contract. required: true schema: type: string - name: Authorization in: header 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" required: true schema: type: string responses: '200': description: Successful operation. content: application/json: schema: $ref: '#/components/schemas/Contracts_retrieveContractPdfDownloadLink_Response_200' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/RetrieveContractPdfDownloadLinkRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/RetrieveContractPdfDownloadLinkRequestInternalServerError' /contract-templates: get: operationId: get-contract-templates summary: Retrieve contract templates description: "Fetches a collection of contract templates available within your organization. Use this endpoint to retrieve metadata about the templates.\n **Token scopes**: `contracts:read`" tags: - subpackage_contracts parameters: - name: Authorization in: header 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" required: true schema: type: string responses: '200': description: A successful response containing contract templates. content: application/json: schema: $ref: '#/components/schemas/Contracts_getContractTemplates_Response_200' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' /workers/amendments/{amendment_id}/sign: post: operationId: sign-amendment summary: Sign amendment description: "Sign amendment as worker\n **Token scopes**: `worker:read`, `worker:write`, `benefits:read`" tags: - subpackage_contracts parameters: - name: amendment_id in: path description: The unique identifier of the amendment to sign required: true schema: type: string - name: Authorization in: header 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" required: true schema: type: string responses: '201': description: Amendment successfully signed. content: application/json: schema: $ref: '#/components/schemas/Contracts_signAmendment_Response_201' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/SignAmendmentRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' requestBody: content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WorkersAmendmentsAmendmentIdSignPostRequestBodyContentApplicationJsonSchemaData' /workers/contracts/{contract_id}/signatures: post: operationId: sign-worker-contract summary: Sign worker contract description: "Sign contract as worker\n **Token scopes**: `worker:write`" tags: - subpackage_contracts parameters: - name: contract_id in: path description: The unique identifier of the contract. required: true schema: type: string - name: Authorization in: header 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" required: true schema: type: string responses: '201': description: Contract successfully signed. content: application/json: schema: $ref: '#/components/schemas/Contracts_signWorkerContract_Response_201' '400': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/SignWorkerContractRequestBadRequestError' '401': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '403': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '404': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/ApiErrorContainer' '500': description: Operation failed. content: application/json: schema: $ref: '#/components/schemas/SignWorkerContractRequestInternalServerError' requestBody: description: worker signature object that needs to be submitted content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/WorkersContractsContractIdSignaturesPostRequestBodyContentApplicationJsonSchemaData' required: - data components: schemas: CreateARequestToExerciseEquity-v2026-01-01RequestForbiddenError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePostResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: CreateARequestToExerciseEquity-v2026-01-01RequestForbiddenError Contracts_approveAnEquityExercise-v2026-01-01_Response_200: type: object properties: id: type: string format: uuid description: Unique identifier of the equity exercise. status: type: string description: The current status of the equity exercise, e.g., 'approved' or 'pending'. created_at: type: string format: date description: The date when the equity exercise was created. updated_at: type: string format: date description: The date when the equity exercise was last updated. employer_approval: type: string description: 'Indicates whether the employer has approved the equity exercise. Valid values: ''approved'', ''rejected''.' required: - id - status - created_at - updated_at - employer_approval title: Contracts_approveAnEquityExercise-v2026-01-01_Response_200 ContractsPostResponsesContentApplicationJsonSchemaDataType: type: string 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 description: Type of a contract title: ContractsPostResponsesContentApplicationJsonSchemaDataType ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeamId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeamId ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsFrequency: type: string enum: - weekly - monthly - biweekly - semimonthly - calendar-month description: Scale of the invoice cycle. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsFrequency CreateARequestToExerciseEquity-v2026-01-01RequestNotFoundError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePostResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: CreateARequestToExerciseEquity-v2026-01-01RequestNotFoundError ContractsContractIdGetResponsesContentApplicationJsonSchemaDataSeniority: type: object properties: id: type: - number - 'null' format: double description: Unique identifier of this resource. name: type: - string - 'null' description: Name of seniority level e.g. Mid (Individual Contributor Level 2). level: type: - number - 'null' format: double description: Level of seniority level e.g. 2. description: Seniority describes level of expertise at a job e.g. junior. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataSeniority ContractsContractIdPatchResponsesContentApplicationJsonSchemaQuoteBenefitsItems: type: object properties: fee: type: number format: double description: Fee in local currency. name: type: string description: Benefit's name. plan: type: string description: Benefit's plan. price: type: number format: double description: Price in local currency. fee_usd: type: number format: double description: Fee in USD. currency: type: string description: Currency code. price_usd: type: number format: double description: Price in USD. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaQuoteBenefitsItems ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Type: type: string enum: - payg_tasks description: Type of contract title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Type ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClient: type: object properties: id: type: string description: Unique identifier of this resource. team: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClientTeam' description: Team information for the client organization. email: type: - string - 'null' format: email description: User's email address. full_name: type: string description: Full name of the client. legal_entity: oneOf: - $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClientLegalEntity' - type: 'null' description: Legal entity details of the client. required: - team description: Client details associated with the contract. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClient ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1SeniorityId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1SeniorityId ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntity: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntityId' description: Unique identifier of this resource. required: - id description: Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntity RejectContractRequestInternalServerError: type: object properties: errors: type: array items: $ref: '#/components/schemas/WorkersContractsContractIdRejectPostResponsesContentApplicationJsonSchemaErrorsItems' title: RejectContractRequestInternalServerError ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntityType: type: string enum: - individual - company description: Type of a legal entity title: ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntityType ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClientTeamId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClientTeamId ListOfContractsRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaErrorsItems' description: Error messages request: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaRequest' description: Error request details required: - errors title: ListOfContractsRequestBadRequestError ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntityId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntityId GetContractEquityWithholdingAmountRequestNotFoundError: type: object properties: {} title: GetContractEquityWithholdingAmountRequestNotFoundError SignWorkerContractRequestInternalServerError: type: object properties: errors: type: array items: $ref: '#/components/schemas/WorkersContractsContractIdSignaturesPostResponsesContentApplicationJsonSchemaErrorsItems' title: SignWorkerContractRequestInternalServerError ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Meta: type: object properties: is_main_income: type: boolean description: Flag to indicate if the contract is the main income for the contractor. documents_required: type: boolean description: Require the contractor to upload necessary compliance documents as per their country’s labor laws. required: - documents_required description: Additional custom info about a contract title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Meta CreateARequestToExerciseEquity-v2026-01-01RequestInternalServerError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePostResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: CreateARequestToExerciseEquity-v2026-01-01RequestInternalServerError ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleEmploymentType: type: string enum: - FULL_TIME - PART_TIME - CONTRACT - TEMPORARY description: Type of employment arrangement title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleEmploymentType ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsCycleEndType: type: string enum: - DAY_OF_WEEK - DAY_OF_LAST_WEEK - DAY_OF_MONTH description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsCycleEndType ContractsContractIdPatchResponsesContentApplicationJsonSchemaEmploymentType: type: string enum: - FULL_TIME - PART_TIME description: Type of employment. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaEmploymentType ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleWorkerTypesItems: type: string enum: - SALARIED_DIRECT_EMPLOYEE_PAYROLL - SALARIED_HRIS_DIRECT_EMPLOYEE - SALARIED_EOR_EMPLOYEE - HOURLY_EOR_EMPLOYEE - HOURLY_DIRECT_EMPLOYEE_PAYROLL title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleWorkerTypesItems ContractsContractIdPatchResponsesContentApplicationJsonSchemaClientTeamId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaClientTeamId ContractsGetResponsesContentApplicationJsonSchemaDataItems: type: object properties: id: type: string description: UUID of the contract. type: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsType' description: Type of a contract. scale: type: - string - 'null' description: The payment scale (e.g., hourly, weekly, monthly, etc.). title: type: string description: Title of the contract. client: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsClient' description: Client information associated with the contract. status: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsStatus' description: Status of a contract in Deel workflow. worker: oneOf: - $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsWorker' - type: 'null' description: Worker information associated with the contract. created_at: type: - string - 'null' format: date-time description: Timestamp when the contract was created, in ISO-8601 format. signatures: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsSignatures' description: Signature information for the contract. external_id: type: - string - 'null' description: A unique identifier for the object provided by an external system. invitations: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsInvitations' description: Details of invitations sent for signing the contract. is_archived: type: boolean description: Indicates whether the contract is archived. is_shielded: type: boolean description: Indicates whether the contract is shielded. who_reports: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsWhoReports' description: Indicates who is responsible for providing regular reports. cost_centers: type: array items: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsCostCentersItems' description: List of cost centers associated with the contract. notice_period: type: number format: double default: 0 description: Number of days required to give notice before terminating the contract. termination_date: type: - string - 'null' format: date-time description: Date when the contract is terminated, in ISO-8601 format. required: - id - type - title - client - status - created_at - signatures - invitations - is_archived - is_shielded - termination_date title: ContractsGetResponsesContentApplicationJsonSchemaDataItems GetContractEquityWithholdingAmountRequestBadRequestError: type: object properties: {} title: GetContractEquityWithholdingAmountRequestBadRequestError ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntityId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntityId ApproveAnEquityExercise-v2026-01-01RequestForbiddenError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePublicIdPatchResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: ApproveAnEquityExercise-v2026-01-01RequestForbiddenError ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Type: type: string enum: - pay_as_you_go_time_based description: Type of contract title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Type ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkSchedule: type: object properties: days: type: array items: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleDaysItems' description: Working days and hours configuration name: type: string description: Unique identifier or name for the work schedule country: type: string description: Country code where this work schedule applies (ISO 3166-1 alpha-2) worker_types: type: array items: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleWorkerTypesItems' description: List of worker types that can use this schedule employment_type: oneOf: - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleEmploymentType' - type: 'null' description: Type of employment arrangement work_schedule_type: type: string description: Work schedule type work_hours_per_week: type: integer description: Total number of working hours per week required: - days - name - country - worker_types - work_schedule_type - work_hours_per_week description: Defines a work schedule including working days, hours, and employment details title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkSchedule RejectContractRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/WorkersContractsContractIdRejectPostResponsesContentApplicationJsonSchemaErrorsItems' title: RejectContractRequestBadRequestError ContractsGetParametersCurrencies: oneOf: - type: array items: type: string - type: string title: ContractsGetParametersCurrencies ContractsPostRequestBodyContentApplicationJsonSchemaData2: type: object properties: meta: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Meta' description: Additional custom info about a contract title: type: string description: The title of the contract. client: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Client' description: Client details for the contract, including the legal entity and team. worker: oneOf: - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Worker' - type: 'null' description: Worker properties job_title: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitle' 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: oneOf: - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Seniority' - type: 'null' description: Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels. state_code: type: - string - 'null' description: The state or province code. Use country lookup endpoint to retrieve state codes. citizenship: type: - string - 'null' description: ISO 3166-1 alpha-2 country code of the worker's citizenship. external_id: type: - string - 'null' description: External Id. who_reports: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2WhoReports' description: Flag to indicate who is supposed to provide regular reports country_code: type: string description: Country code. notice_period: type: number format: double default: 10 description: Days before to notice the termination of contract for either party. scope_of_work: type: - string - 'null' description: Describe the work to be performed. special_clause: type: - string - 'null' description: Enter any special clause you may have. scope_of_work_id: type: - string - 'null' format: uuid description: Existing scope of work public id termination_date: type: - string - 'null' format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' contract_template_id: type: - string - 'null' description: Contract Template Id. type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Type' description: Type of contract start_date: type: - string - 'null' format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' compensation_details: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetails' description: Compensation and invoicing configuration for the contract. required: - meta - title - client - job_title - type - compensation_details description: Details of contract to create title: ContractsPostRequestBodyContentApplicationJsonSchemaData2 ContractsContractIdPatchResponsesContentApplicationJsonSchemaCompensationDetails: type: object properties: scale: type: - string - 'null' description: Scale of the payment. amount: type: - string - 'null' 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 - 'null' format: double description: Day of the cycle end frequency: type: string description: Scale of the invoice cycle. currency_code: type: - string - 'null' description: Currency code. first_payment: type: - string - 'null' description: First payment amount. cycle_end_type: oneOf: - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaCompensationDetailsCycleEndType' - type: 'null' description: ' Cycle end type' first_payment_date: type: - string - 'null' description: First payment date. gross_annual_salary: type: - string - 'null' description: Gross annual salary. gross_signing_bonus: type: - string - 'null' description: Gross signing bonus. gross_variable_bonus: type: - string - 'null' description: Gross variable bonus. description: Compensation and payment configuration for the contract. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaCompensationDetails ContractsContractIdPatchResponsesContentApplicationJsonSchemaContractTemplate: type: object properties: id: type: string description: Unique identifier of a contract template. title: type: string description: Title of a contract template description: Contract template details. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaContractTemplate ApproveAnEquityExercise-v2026-01-01RequestNotFoundError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePublicIdPatchResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: ApproveAnEquityExercise-v2026-01-01RequestNotFoundError ContractsGetResponsesContentApplicationJsonSchemaDataItemsType: type: string 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 description: Type of a contract. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsType ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsPaymentDueType: type: string enum: - REGULAR - WITHIN_MONTH - AFTER_MONTH - BEFORE_CYCLE_END default: 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'. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsPaymentDueType ContractsContractIdGetResponsesContentApplicationJsonSchemaDataEmploymentType: type: string enum: - FULL_TIME - PART_TIME description: Type of employment. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataEmploymentType EquityExercisePostResponsesContentApplicationJsonSchemaData: type: object properties: id: type: string format: uuid description: Unique identifier of the equity exercise request. status: type: string description: The initial status of the newly created equity exercise request. created_at: type: string format: date-time description: ISO 8601 timestamp when the equity exercise request was created. updated_at: type: string format: date-time description: ISO 8601 timestamp when the equity exercise request was last updated. required: - id - status - created_at - updated_at title: EquityExercisePostResponsesContentApplicationJsonSchemaData ContractsPostResponsesContentApplicationJsonSchemaDataWhoReports: type: string enum: - both - client - contractor - '' description: Flag to indicate who is supposed to provide regular reports title: ContractsPostResponsesContentApplicationJsonSchemaDataWhoReports ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Type: type: string enum: - payg_milestones description: Type of contract title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Type ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleDaysItemsDay: type: string enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY description: Day of the week title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleDaysItemsDay ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCostCentersItems: type: object properties: name: type: string description: Cost center name. number: type: string description: Cost center number. allocation_percentage: type: number format: double description: Percentage of the cost center allocation. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCostCentersItems WorkersContractsContractIdSignaturesPostResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable explanation of the error title: WorkersContractsContractIdSignaturesPostResponsesContentApplicationJsonSchemaErrorsItems ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Meta: type: object properties: is_main_income: type: boolean description: Flag to indicate if the contract is the main income for the contractor. documents_required: type: boolean description: Require the contractor to upload necessary compliance documents as per their country’s labor laws. required: - documents_required description: Additional custom info about a contract title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Meta ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntityId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntityId ContractTemplatesGetResponsesContentApplicationJsonSchemaDataItemsId: oneOf: - type: string - type: integer format: int64 title: ContractTemplatesGetResponsesContentApplicationJsonSchemaDataItemsId ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsFrequency: type: string enum: - weekly - monthly - biweekly - semimonthly - calendar-month description: Scale of the invoice cycle. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsFrequency ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Meta: type: object properties: is_main_income: type: boolean description: Flag to indicate if the contract is the main income for the contractor. documents_required: type: boolean description: Require the contractor to upload necessary compliance documents as per their country’s labor laws. required: - documents_required description: Additional custom info about a contract title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Meta ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeam: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeamId' description: Unique identifier of this resource. required: - id description: Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeam ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetails: type: object properties: amount: type: number format: double 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 format: double description: Date invoice cycle ends. frequency: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsFrequency' description: Scale of the invoice cycle. currency_code: type: string description: Currency code. first_payment: type: number format: double default: 0 description: First payment amount. notice_period: type: number format: double default: 10 description: Days before to notice the termination of contract for either party. cycle_end_type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsCycleEndType' description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31. payment_due_days: type: number format: double description: Number of days to pay the invoice. payment_due_type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsPaymentDueType' 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 - 'null' description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' pay_before_weekends: type: boolean description: If the payment due is on a weekend, pay on Friday. scale: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsScale' 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. required: - amount - cycle_end - frequency - currency_code - cycle_end_type - payment_due_days - payment_due_type - scale title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetails WorkersAmendmentsAmendmentIdSignPostResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: path: type: string description: The JSON path where input validation failed message: type: string description: A description of the returned error title: WorkersAmendmentsAmendmentIdSignPostResponsesContentApplicationJsonSchemaErrorsItems contracts_getContract_Response_200: type: object properties: data: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaData' required: - data title: contracts_getContract_Response_200 ContractsGetParametersStatusesSchemaItems: type: string 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 description: Status of a contract in Deel workflow. title: ContractsGetParametersStatusesSchemaItems ContractsContractIdPatchResponsesContentApplicationJsonSchemaClientLegalEntity: type: object properties: id: type: string description: Unique identifier of this resource. name: type: string description: Name of a team. type: type: - string - 'null' description: Type of the legal entity. email: type: - string - 'null' description: Email address of the legal entity. subtype: type: - string - 'null' description: Sub-type of the legal entity. vat_number: type: - string - 'null' description: VAT number of the legal entity. registration_number: type: - string - 'null' description: Registration number of the legal entity. description: Legal entity details of the client. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaClientLegalEntity ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsPaymentDueType: type: string enum: - REGULAR - WITHIN_MONTH - AFTER_MONTH - BEFORE_CYCLE_END default: 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'. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsPaymentDueType ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Client: type: object properties: team: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeam' description: Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization. legal_entity: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntity' description: Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization. required: - team - legal_entity description: Client details for the contract, including the legal entity and team. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Client ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCosts: type: object properties: monthly: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthly' description: Monthly cost breakdown for the quote. description: Cost breakdown for the quote, grouped by billing cadence (e.g., monthly). title: ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCosts ContractsContractIdGetResponsesContentApplicationJsonSchemaDataSignatures: type: object properties: signed_at: type: - string - 'null' format: date-time description: Date and time when the contract was signed. client_signature: type: string description: Client representative signature (typically a name). client_signed_at: type: - string - 'null' format: date-time description: Date and time when the client signed the contract. worker_signature: type: string description: Worker signature (typically a name). worker_signed_at: type: - string - 'null' format: date-time description: Date and time when the worker signed the contract. description: Signature information for the contract parties. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataSignatures ContractsPostResponsesContentApplicationJsonSchemaDataInvitations: type: object properties: client_email: type: - string - 'null' description: User's email address. worker_email: type: - string - 'null' description: User's email address. description: List of signature invitations sent for this contract. title: ContractsPostResponsesContentApplicationJsonSchemaDataInvitations ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsCycleEndType: type: string enum: - DAY_OF_WEEK - DAY_OF_LAST_WEEK - DAY_OF_MONTH description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsCycleEndType ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsFrequency: type: string enum: - weekly - monthly - biweekly - semimonthly - calendar-month description: Scale of the invoice cycle. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsFrequency ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsScale: type: string enum: - hourly - daily - weekly - monthly - biweekly - semimonthly - custom 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. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsScale ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorker: type: object properties: id: type: string description: Unique identifier of this resource. email: type: - string - 'null' format: email description: User's email address. country: type: - string - 'null' description: Country of the worker. full_name: type: string description: Full name of the client. last_name: type: string description: Last name of the worker. first_name: type: string description: First name of the worker. nationality: type: - string - 'null' description: Nationality of the worker. date_of_birth: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkerDateOfBirth' description: Date of birth of the worker. Supports full date-time, date-only, or an empty string. expected_email: type: string description: Expected email address of the worker (e.g., invitation target email). alternate_email: type: - array - 'null' items: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkerAlternateEmailItems' description: List of alternate email addresses. description: Worker details associated with the contract. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorker ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Client: type: object properties: team: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeam' description: Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization. legal_entity: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntity' description: Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization. required: - team - legal_entity description: Client details for the contract, including the legal entity and team. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Client ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Seniority: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1SeniorityId' description: Unique identifier of this resource. description: Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Seniority ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Worker: type: object properties: last_name: type: - string - 'null' description: Worker's last name first_name: type: - string - 'null' description: Worker's first name work_email: type: - string - 'null' format: email description: Worker's work email address. expected_email: type: - string - 'null' format: email description: Worker's email address. required: - first_name - expected_email description: Worker properties title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Worker Contracts_getContractEquityWithholdingAmount_Response_200: type: object properties: data: $ref: '#/components/schemas/ContractsContractIdEquityWithholdingEstimateGetResponsesContentApplicationJsonSchemaData' title: Contracts_getContractEquityWithholdingAmount_Response_200 contracts_updateICContract_Response_200: type: object properties: id: type: string description: Unique identifier for the contract. type: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaType' description: Type of a contract. quote: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaQuote' description: EOR quote approved by Deel. title: type: string description: Title of the contract. client: oneOf: - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaClient' - type: 'null' description: Client details associated with the contract. status: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaStatus' description: Status of a contract in Deel workflow. worker: oneOf: - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorker' - type: 'null' description: Worker details associated with the contract. job_title: type: string description: Job title associated with the contract. seniority: oneOf: - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaSeniority' - type: 'null' description: Seniority describes level of expertise at a job e.g. junior. created_at: type: string format: date-time description: Date and time when the contract was created. signatures: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaSignatures' description: Signature information for the contract parties. start_date: type: string format: date-time description: Date and time when the contract starts. updated_at: type: string format: date-time description: Date and time when the contract was updated. external_id: type: - string - 'null' description: External identifier of the contract. invitations: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaInvitations' description: Invitation email addresses for signing the contract. is_archived: type: - boolean - 'null' description: Flag to indicate if the contract is archived. who_reports: type: string description: Who reports the hours. cost_centers: type: array items: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaCostCentersItems' description: List of cost centers associated with the contract. custom_fields: type: - array - 'null' items: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaCustomFieldsItems' description: List of custom fields attached to the contract. notice_period: type: - number - 'null' format: double description: Notice period in days. scope_of_work: type: - string - 'null' description: Scope of work of the contract. work_schedule: oneOf: - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkSchedule' - type: 'null' description: Defines a work schedule including working days, hours, and employment details special_clause: type: - string - 'null' description: Special clause of the contract. employment_type: oneOf: - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaEmploymentType' - type: 'null' description: Type of employment. termination_date: type: - string - 'null' description: Date and time when the contract ends. contract_template: oneOf: - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaContractTemplate' - type: 'null' description: Contract template details. work_statement_id: type: - string - 'null' description: The unique identifier of the associated work statement. employment_details: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaEmploymentDetails' description: Employment-related details for the contract. compensation_details: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaCompensationDetails' description: Compensation and payment configuration for the contract. required: - id - type - title - client - status - worker - created_at - signatures - start_date - updated_at - invitations - is_archived - special_clause - termination_date title: contracts_updateICContract_Response_200 ContractsContractIdEquityWithholdingEstimateGetResponsesContentApplicationJsonSchemaData: type: object properties: oid: type: string description: Deel contract id. fx_rate: type: string description: Exchange rate used to convert event currency to country of taxation currency. breakdown: type: array items: $ref: '#/components/schemas/ContractsContractIdEquityWithholdingEstimateGetResponsesContentApplicationJsonSchemaDataBreakdownItems' event_value: type: string description: Event value that user provided. event_currency: type: string description: Event currency that user provided. withholding_currency: type: string description: Country of taxation currency. aggregate_withholding_rate: type: string description: Total withholding amount expressed as a percentage of event value. overall_withholding_amount: type: string description: Total withholding amount denominated in country of taxation currency (withholding_currency). title: ContractsContractIdEquityWithholdingEstimateGetResponsesContentApplicationJsonSchemaData ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkSchedule: type: object properties: days: type: array items: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleDaysItems' description: Working days and hours configuration name: type: string description: Unique identifier or name for the work schedule country: type: string description: Country code where this work schedule applies (ISO 3166-1 alpha-2) worker_types: type: array items: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleWorkerTypesItems' description: List of worker types that can use this schedule employment_type: oneOf: - $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleEmploymentType' - type: 'null' description: Type of employment arrangement work_schedule_type: type: string description: Work schedule type work_hours_per_week: type: integer description: Total number of working hours per week required: - days - name - country - worker_types - work_schedule_type - work_hours_per_week description: Defines a work schedule including working days, hours, and employment details title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkSchedule ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeamId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeamId ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate: oneOf: - type: string format: date-time - $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate1' description: Contract termination date. When present, it is a date-time string in ISO-8601 format. title: ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsScale: type: string enum: - hourly - daily - weekly - monthly - biweekly - semimonthly - custom 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. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsScale ContractsContractIdPatchResponsesContentApplicationJsonSchemaClientTeam: type: object properties: id: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaClientTeamId' description: Unique identifier of this resource. name: type: string description: Name of a team. required: - id - name description: Team information for the client organization. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaClientTeam WorkersContractsContractIdPdfGetResponsesContentApplicationJsonSchemaData: type: object properties: url: type: string format: uri description: A pre-signed URL to download the PDF version of the specified contract required: - url title: WorkersContractsContractIdPdfGetResponsesContentApplicationJsonSchemaData ContractsContractIdPatchResponsesContentApplicationJsonSchemaEmploymentDetails: type: object properties: type: type: string description: Type of employment. days_per_week: type: number format: double description: Number of days per week. hours_per_day: type: number format: double description: Number of hours per day. probation_period: type: - number - 'null' format: double description: Probation period in days. paid_vacation_days: type: number format: double description: Number of paid vacation days. description: Employment-related details for the contract. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaEmploymentDetails ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitleId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitleId ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsPaymentDueType: type: string enum: - REGULAR - WITHIN_MONTH - AFTER_MONTH - BEFORE_CYCLE_END default: 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'. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsPaymentDueType ContractsPostRequestBodyContentApplicationJsonSchemaData: oneOf: - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData0' - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData1' - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData2' - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData3' title: ContractsPostRequestBodyContentApplicationJsonSchemaData ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetails: type: object properties: amount: type: number format: double 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 format: double description: Date invoice cycle ends. frequency: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsFrequency' description: Scale of the invoice cycle. currency_code: type: string description: Currency code. first_payment: type: number format: double default: 0 description: First payment amount. notice_period: type: number format: double default: 10 description: Days before to notice the termination of contract for either party. cycle_end_type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsCycleEndType' description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31. payment_due_days: type: number format: double description: Number of days to pay the invoice. payment_due_type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsPaymentDueType' 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 - 'null' description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' pay_before_weekends: type: boolean description: If the payment due is on a weekend, pay on Friday. required: - cycle_end - frequency - currency_code - cycle_end_type - payment_due_days - payment_due_type description: Compensation and invoicing configuration for the contract. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetails ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleEmploymentType: type: string enum: - FULL_TIME - PART_TIME - CONTRACT - TEMPORARY description: Type of employment arrangement title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleEmploymentType WorkersContractsContractIdSignaturesPostResponsesContentApplicationJsonSchemaData: type: object properties: id: type: string description: The unique identifier of the signed contract. is_signed: type: boolean description: Indicates whether the contract was successfully signed. created_at: type: string format: date-time description: The timestamp when the contract was created. updated_at: type: string format: date-time description: The timestamp when the contract was last updated. required: - id - is_signed - created_at - updated_at title: WorkersContractsContractIdSignaturesPostResponsesContentApplicationJsonSchemaData ContractsPostResponsesContentApplicationJsonSchemaDataQuote: type: object properties: benefits: type: array items: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBenefitsItems' description: Array of benefits currency: type: string description: Currency code. cba_total: type: number format: double description: Total CBA in local currency created_at: type: - string - 'null' format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' updated_at: type: - string - 'null' format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' salary_total: type: number format: double description: Total salary in local currency annual_salary: type: number format: double description: Annual Salary in local currency cba_total_usd: type: number format: double description: Total CBA in USD breakdown_costs: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCosts' description: Cost breakdown for the quote, grouped by billing cadence (e.g., monthly). salary_total_usd: type: number format: double description: Total salary in USD gross_salary_total: type: number format: double description: Total gross salary in local currency mobility_fee_total: type: number format: double description: Total mobility fee in local currency monthly_cost_total: type: number format: double description: Total monthly cost in local currency platform_fee_total: type: number format: double description: Total platform fee in local currency employer_cost_total: type: number format: double description: Total employer cost in local currency gross_salary_total_usd: type: number format: double description: Total gross salary in USD mobility_fee_total_usd: type: number format: double description: Total mobility fee in USD monthly_cost_total_usd: type: number format: double description: Total monthly cost in USD platform_fee_total_usd: type: number format: double description: Total platform fee in USD employer_cost_total_usd: type: number format: double description: Total employer cost in USD severance_accrual_total: type: number format: double description: Total severance accrual in local currency recurring_allowance_total: type: number format: double description: Total recurring allowance in local currency severance_accrual_total_usd: type: number format: double description: Total severance accrual in USD recurring_allowance_total_usd: type: number format: double description: Total recurring allowance in USD description: EOR quote approved by Deel title: ContractsPostResponsesContentApplicationJsonSchemaDataQuote ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBenefitsItems: type: object properties: fee: type: number format: double description: Fee in local currency name: type: string description: Benefit's name plan: type: string description: Benefit's plan price: type: number format: double description: Price in local currency fee_usd: type: number format: double description: Fee in USD currency: type: string description: Currency code. price_usd: type: number format: double description: Price in USD title: ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBenefitsItems ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Meta: type: object properties: is_main_income: type: boolean description: Flag to indicate if the contract is the main income for the contractor. documents_required: type: boolean description: Require the contractor to upload necessary compliance documents as per their country’s labor laws. required: - documents_required description: Additional custom info about a contract title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Meta ContractsContractIdPatchRequestBodyContentApplicationJsonSchemaData: type: object properties: external_id: type: - string - 'null' 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: - external_id title: ContractsContractIdPatchRequestBodyContentApplicationJsonSchemaData CreateARequestToExerciseEquity-v2026-01-01RequestUnauthorizedError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePostResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: CreateARequestToExerciseEquity-v2026-01-01RequestUnauthorizedError ContractsContractIdPatchResponsesContentApplicationJsonSchemaQuote: type: object properties: benefits: type: array items: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaQuoteBenefitsItems' description: Array of benefits. currency: type: string description: Currency used for the quote. description: EOR quote approved by Deel. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaQuote Contracts_createARequestToExerciseEquity-v2026-01-01_Response_201: type: object properties: data: $ref: '#/components/schemas/EquityExercisePostResponsesContentApplicationJsonSchemaData' required: - data title: Contracts_createARequestToExerciseEquity-v2026-01-01_Response_201 ContractsContractIdGetResponsesContentApplicationJsonSchemaDataType: type: string 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 description: Type of a contract. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataType ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitle: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitleId' description: Unique identifier of this resource. name: type: - string - 'null' 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. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitle ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntityId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntityId ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeam: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeamId' description: Unique identifier of this resource. required: - id description: Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeam ContractsGetResponsesContentApplicationJsonSchemaDataItemsWorker: type: object properties: id: type: string description: Unique identifier of this resource. email: type: - string - 'null' description: User's email address. image: type: - string - 'null' format: uri description: URL of the worker's profile image. full_name: type: string description: Full name of the worker. alternate_email: type: array items: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsWorkerAlternateEmailItems' description: List of alternate email addresses. required: - id description: Worker information associated with the contract. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsWorker ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetails: type: object properties: amount: type: number format: double 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 format: double description: Date invoice cycle ends. frequency: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsFrequency' description: Scale of the invoice cycle. currency_code: type: string description: Currency code. first_payment: type: number format: double default: 0 description: First payment amount. notice_period: type: number format: double default: 10 description: Days before to notice the termination of contract for either party. cycle_end_type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsCycleEndType' description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31. payment_due_days: type: number format: double description: Number of days to pay the invoice. payment_due_type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsPaymentDueType' 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 - 'null' description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' pay_before_weekends: type: boolean description: If the payment due is on a weekend, pay on Friday. required: - cycle_end - frequency - currency_code - cycle_end_type - payment_due_days - payment_due_type description: Compensation and invoicing configuration for the contract. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetails ApiErrorContainer: type: object properties: request: $ref: '#/components/schemas/ApiErrorRequest' errors: type: array items: $ref: '#/components/schemas/ApiError' title: ApiErrorContainer ContractsContractIdGetResponsesContentApplicationJsonSchemaDataContractTemplate: type: object properties: id: type: string description: Unique identifier of a contract template. title: type: string description: Title of a contract template description: Contract template details. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataContractTemplate ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitleId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitleId ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Worker: type: object properties: last_name: type: - string - 'null' description: Worker's last name first_name: type: - string - 'null' description: Worker's first name work_email: type: - string - 'null' format: email description: Worker's work email address. expected_email: type: - string - 'null' format: email description: Worker's email address. required: - first_name - expected_email description: Worker properties title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Worker contracts_getContracts_Response_200: type: object properties: data: type: array items: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItems' description: Array of contract objects. page: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaPage' description: Pagination information for the response. required: - data - page title: contracts_getContracts_Response_200 ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3WhoReports: type: string enum: - both - client - contractor description: Flag to indicate who is supposed to provide regular reports title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3WhoReports ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntity: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntityId' description: Unique identifier of this resource. required: - id description: Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntity WorkersAmendmentsAmendmentIdSignPostRequestBodyContentApplicationJsonSchemaData: type: object properties: contractor_signature: type: string description: The signature of the worker signing the amendment. required: - contractor_signature title: WorkersAmendmentsAmendmentIdSignPostRequestBodyContentApplicationJsonSchemaData ContractsGetResponsesContentApplicationJsonSchemaPage: type: object properties: cursor: type: string description: Cursor for paginated results. total_rows: type: number format: double description: Total number of rows in the result set. required: - cursor - total_rows description: Pagination information for the response. title: ContractsGetResponsesContentApplicationJsonSchemaPage ContractsContractIdPatchResponsesContentApplicationJsonSchemaSignatures: type: object properties: signed_at: type: - string - 'null' format: date-time description: Date and time when the contract was signed. client_signature: type: string description: Client representative signature (typically a name). client_signed_at: type: - string - 'null' format: date-time description: Date and time when the client signed the contract. worker_signature: type: string description: Worker signature (typically a name). worker_signed_at: type: - string - 'null' format: date-time description: Date and time when the worker signed the contract. description: Signature information for the contract parties. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaSignatures ContractsGetResponsesContentApplicationJsonSchemaDataItemsClientTeam: type: object properties: id: type: string description: Unique identifier of this resource. name: type: - string - 'null' description: Name of a team. required: - id - name description: Team information for the client. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsClientTeam Contracts_signWorkerContract_Response_201: type: object properties: data: $ref: '#/components/schemas/WorkersContractsContractIdSignaturesPostResponsesContentApplicationJsonSchemaData' required: - data title: Contracts_signWorkerContract_Response_201 ContractsPostResponsesContentApplicationJsonSchemaDataWorker: type: object properties: id: type: - string - 'null' description: A unique identifier for this resource. email: type: - string - 'null' format: email description: User's email address. image: type: string format: url description: URL to worker's image country: type: - string - 'null' description: Worker's country (location not nationality) full_name: type: string description: Worker's full name. last_name: type: - string - 'null' description: Worker's last name first_name: type: - string - 'null' description: Worker's first name nationality: type: - string - 'null' description: Worker's nationality. legal_entity: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntity' description: Worker legal entity information, if applicable. date_of_birth: type: - string - 'null' format: date-time description: Long date-time format following ISO-8601 expected_email: type: - string - 'null' format: email description: Worker's email address. alternate_email: type: array items: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWorkerAlternateEmailItems' description: List of alternate email addresses. description: Worker details associated with the contract. title: ContractsPostResponsesContentApplicationJsonSchemaDataWorker ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2WhoReports: type: string enum: - both - client - contractor description: Flag to indicate who is supposed to provide regular reports title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2WhoReports ContractsPostResponsesContentApplicationJsonSchemaDataCompensationDetails: type: object properties: scale: type: string description: Scale of compensation amount: type: - string - 'null' description: Amount of compensation frequency: type: string description: Frequency of compensation currency_code: type: string description: Currency code. first_payment: type: - string - 'null' description: First payment first_payment_date: type: - string - 'null' description: Long date-time format following ISO-8601 gross_annual_salary: type: - string - 'null' description: Gross annual salary gross_signing_bonus: type: - string - 'null' description: Gross signing bonus gross_variable_bonus: type: - string - 'null' description: Gross variable bonus required: - scale - amount - frequency - currency_code - first_payment - first_payment_date - gross_annual_salary - gross_signing_bonus - gross_variable_bonus description: Compensation configuration and payment schedule details for the contract. title: ContractsPostResponsesContentApplicationJsonSchemaDataCompensationDetails ApiErrorRequest: type: object properties: method: type: string description: The HTTP method of the failed request url: type: string description: The relative URL of the failed request status: type: number format: double description: The status code of the response api_req_id: type: string description: The request ID of the failed request docs: type: string description: A link to the official documentation for the requested endpoint resource source: type: string description: The source handler which produced the returned error code: type: number format: double description: The code of the source handler which produced the returned error title: ApiErrorRequest ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Seniority: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2SeniorityId' description: Unique identifier of this resource. description: Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Seniority ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeamId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeamId ContractsContractIdGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: message: type: string description: Error response required: - message title: ContractsContractIdGetResponsesContentApplicationJsonSchemaErrorsItems ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCompensationDetails: type: object properties: scale: type: - string - 'null' description: Scale of the payment. amount: type: - string - 'null' 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 - 'null' format: double description: Day of the cycle end frequency: type: string description: Scale of the invoice cycle. currency_code: type: - string - 'null' description: Currency code. first_payment: type: - string - 'null' description: First payment amount. cycle_end_type: oneOf: - $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCompensationDetailsCycleEndType' - type: 'null' description: ' Cycle end type' first_payment_date: type: - string - 'null' description: First payment date. gross_annual_salary: type: - string - 'null' description: Gross annual salary. gross_signing_bonus: type: - string - 'null' description: Gross signing bonus. gross_variable_bonus: type: - string - 'null' description: Gross variable bonus. description: Compensation and payment configuration for the contract. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCompensationDetails ContractsContractIdGetResponsesContentApplicationJsonSchemaData: type: object properties: id: type: string description: Unique identifier for the contract. type: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataType' description: Type of a contract. quote: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataQuote' description: EOR quote approved by Deel. title: type: string description: Title of the contract. client: oneOf: - $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClient' - type: 'null' description: Client details associated with the contract. status: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataStatus' description: Status of a contract in Deel workflow. worker: oneOf: - $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorker' - type: 'null' description: Worker details associated with the contract. location: type: - string - 'null' description: Location name associated with the contract. job_title: type: string description: Job title associated with the contract. seniority: oneOf: - $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataSeniority' - type: 'null' description: Seniority describes level of expertise at a job e.g. junior. created_at: type: string format: date-time description: Date and time when the contract was created. signatures: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataSignatures' description: Signature information for the contract parties. start_date: type: string format: date-time description: Date and time when the contract starts. updated_at: type: string format: date-time description: Date and time when the contract was updated. external_id: type: - string - 'null' description: External identifier of the contract. invitations: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataInvitations' description: Invitation email addresses for signing the contract. is_archived: type: - boolean - 'null' description: Flag to indicate if the contract is archived. who_reports: type: string description: Who reports the hours. cost_centers: type: array items: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCostCentersItems' description: List of cost centers associated with the contract. product_area: type: - number - 'null' format: double description: Product area code associated with the contract. custom_fields: type: - array - 'null' items: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCustomFieldsItems' description: List of custom fields attached to the contract. notice_period: type: - number - 'null' format: double description: Notice period in days. scope_of_work: type: - string - 'null' description: Scope of work of the contract. work_schedule: oneOf: - $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkSchedule' - type: 'null' description: Defines a work schedule including working days, hours, and employment details special_clause: type: - string - 'null' description: Special clause of the contract. employment_type: oneOf: - $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataEmploymentType' - type: 'null' description: Type of employment. termination_date: type: - string - 'null' description: Date and time when the contract ends. contract_template: oneOf: - $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataContractTemplate' - type: 'null' description: Contract template details. work_statement_id: type: - string - 'null' description: The unique identifier of the associated work statement. employment_details: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataEmploymentDetails' description: Employment-related details for the contract. compensation_details: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCompensationDetails' description: Compensation and payment configuration for the contract. required: - id - type - title - client - status - worker - created_at - signatures - start_date - updated_at - invitations - is_archived - special_clause - termination_date title: ContractsContractIdGetResponsesContentApplicationJsonSchemaData ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntity: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntityId' description: Unique identifier of this resource. required: - id description: Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntity ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitle: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitleId' description: Unique identifier of this resource. name: type: - string - 'null' 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. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitle ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitle: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitleId' description: Unique identifier of this resource. name: type: - string - 'null' 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. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitle ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleWorkerTypesItems: type: string enum: - SALARIED_DIRECT_EMPLOYEE_PAYROLL - SALARIED_HRIS_DIRECT_EMPLOYEE - SALARIED_EOR_EMPLOYEE - HOURLY_EOR_EMPLOYEE - HOURLY_DIRECT_EMPLOYEE_PAYROLL title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleWorkerTypesItems Contracts_retrieveContractPdfDownloadLink_Response_200: type: object properties: data: $ref: '#/components/schemas/WorkersContractsContractIdPdfGetResponsesContentApplicationJsonSchemaData' required: - data title: Contracts_retrieveContractPdfDownloadLink_Response_200 ContractsPostResponsesContentApplicationJsonSchemaDataCustomFieldsItems: type: object properties: name: type: string description: Custom field property name. value: type: string description: Custom field property value. description: Customized attributes on contracts (Employee ID, Project code, etc). title: ContractsPostResponsesContentApplicationJsonSchemaDataCustomFieldsItems WorkersContractsContractIdRejectPostResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable explanation of the error title: WorkersContractsContractIdRejectPostResponsesContentApplicationJsonSchemaErrorsItems ContractsPostResponsesContentApplicationJsonSchemaDataSeniority: type: object properties: id: type: number format: double description: Unique identifier of this resource. name: type: string description: Name of seniority level e.g. Mid (Individual Contributor Level 2) level: type: - number - 'null' format: double description: Level of seniority level e.g. 2 required: - id - name description: Seniority describes level of expertise at a job e.g. junior title: ContractsPostResponsesContentApplicationJsonSchemaDataSeniority ContractsGetResponsesContentApplicationJsonSchemaDataItemsStatus: type: string 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 description: Status of a contract in Deel workflow. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsStatus ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Seniority: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0SeniorityId' description: Unique identifier of this resource. description: Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Seniority ContractsGetParametersTypesSchemaItems: type: string 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 description: Type of a contract. title: ContractsGetParametersTypesSchemaItems ContractsContractIdPatchResponsesContentApplicationJsonSchemaStatus: type: string 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 description: Status of a contract in Deel workflow. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaStatus WorkersContractsContractIdPdfGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: code: type: string description: Machine-readable error code message: type: string description: Human-readable explanation of the error title: WorkersContractsContractIdPdfGetResponsesContentApplicationJsonSchemaErrorsItems ContractsContractIdGetResponsesContentApplicationJsonSchemaDataEmploymentDetails: type: object properties: type: type: string description: Type of employment. days_per_week: type: number format: double description: Number of days per week. hours_per_day: type: number format: double description: Number of hours per day. probation_period: type: - number - 'null' format: double description: Probation period in days. paid_vacation_days: type: number format: double description: Number of paid vacation days. description: Employment-related details for the contract. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataEmploymentDetails Contracts_signAmendment_Response_201: type: object properties: data: $ref: '#/components/schemas/WorkersAmendmentsAmendmentIdSignPostResponsesContentApplicationJsonSchemaData' required: - data title: Contracts_signAmendment_Response_201 ContractTemplatesGetResponsesContentApplicationJsonSchemaDataItems: type: object properties: id: $ref: '#/components/schemas/ContractTemplatesGetResponsesContentApplicationJsonSchemaDataItemsId' title: type: string description: The title of a contract template. required: - id - title title: ContractTemplatesGetResponsesContentApplicationJsonSchemaDataItems ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCompensationDetailsCycleEndType: type: string enum: - DAY_OF_WEEK - DAY_OF_LAST_WEEK - DAY_OF_MONTH description: ' Cycle end type' title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCompensationDetailsCycleEndType ContractsContractIdGetResponsesContentApplicationJsonSchemaDataQuote: type: object properties: benefits: type: array items: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataQuoteBenefitsItems' description: Array of benefits. currency: type: string description: Currency used for the quote. description: EOR quote approved by Deel. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataQuote WorkersContractsContractIdSignaturesPostRequestBodyContentApplicationJsonSchemaData: type: object properties: worker_signature: type: string description: Signature of the worker for the contract required: - worker_signature title: WorkersContractsContractIdSignaturesPostRequestBodyContentApplicationJsonSchemaData ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeam: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeamId' description: Unique identifier of this resource. required: - id description: Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeam ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsPaymentDueType: type: string enum: - REGULAR - WITHIN_MONTH - AFTER_MONTH - BEFORE_CYCLE_END default: 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'. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsPaymentDueType ContractsPostRequestBodyContentApplicationJsonSchemaData1: type: object properties: meta: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Meta' description: Additional custom info about a contract title: type: string description: The title of the contract. client: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Client' description: Client details for the contract, including the legal entity and team. worker: oneOf: - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Worker' - type: 'null' description: Worker properties job_title: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitle' 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: oneOf: - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Seniority' - type: 'null' description: Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels. state_code: type: - string - 'null' description: The state or province code. Use country lookup endpoint to retrieve state codes. citizenship: type: - string - 'null' description: ISO 3166-1 alpha-2 country code of the worker's citizenship. external_id: type: - string - 'null' description: External Id. who_reports: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1WhoReports' description: Flag to indicate who is supposed to provide regular reports country_code: type: string description: Country code. notice_period: type: number format: double default: 10 description: Days before to notice the termination of contract for either party. scope_of_work: type: - string - 'null' description: Describe the work to be performed. special_clause: type: - string - 'null' description: Enter any special clause you may have. scope_of_work_id: type: - string - 'null' format: uuid description: Existing scope of work public id termination_date: type: - string - 'null' format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' contract_template_id: type: - string - 'null' description: Contract Template Id. type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Type' description: Type of contract start_date: type: string format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' compensation_details: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetails' description: Compensation and invoicing configuration for the contract. required: - meta - title - client - job_title - type - start_date - compensation_details description: Details of contract to create title: ContractsPostRequestBodyContentApplicationJsonSchemaData1 ApproveAnEquityExercise-v2026-01-01RequestTooManyRequestsError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePublicIdPatchResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: ApproveAnEquityExercise-v2026-01-01RequestTooManyRequestsError ContractsContractIdEquityWithholdingEstimateGetResponsesContentApplicationJsonSchemaDataBreakdownItems: type: object properties: name: type: string description: Name of withholding component. rate: type: string description: Withholding amount of component expressed as a percentage of event value. amount: type: string description: Withholding amount of component. title: ContractsContractIdEquityWithholdingEstimateGetResponsesContentApplicationJsonSchemaDataBreakdownItems ContractsContractIdPatchResponsesContentApplicationJsonSchemaCompensationDetailsCycleEndType: type: string enum: - DAY_OF_WEEK - DAY_OF_LAST_WEEK - DAY_OF_MONTH description: ' Cycle end type' title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaCompensationDetailsCycleEndType ContractsPostResponsesContentApplicationJsonSchemaDataStatus: type: string 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 description: Status of a contract in Deel workflow title: ContractsPostResponsesContentApplicationJsonSchemaDataStatus ApiError: type: object properties: message: type: string description: A description of the returned error path: type: string description: The JSON path where input validation failed title: ApiError ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetails: type: object properties: amount: type: number format: double 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 format: double description: Date invoice cycle ends. frequency: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsFrequency' description: Scale of the invoice cycle. currency_code: type: string description: Currency code. first_payment: type: number format: double default: 0 description: First payment amount. notice_period: type: number format: double default: 10 description: Days before to notice the termination of contract for either party. cycle_end_type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsCycleEndType' description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31. payment_due_days: type: number format: double description: Number of days to pay the invoice. payment_due_type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsPaymentDueType' 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 - 'null' description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' pay_before_weekends: type: boolean description: If the payment due is on a weekend, pay on Friday. scale: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsScale' 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. required: - amount - cycle_end - frequency - currency_code - cycle_end_type - payment_due_days - payment_due_type - scale title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetails ContractsPostRequestBodyContentApplicationJsonSchemaData0: type: object properties: meta: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Meta' description: Additional custom info about a contract title: type: string description: The title of the contract. client: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Client' description: Client details for the contract, including the legal entity and team. worker: oneOf: - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Worker' - type: 'null' description: Worker properties job_title: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitle' 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: oneOf: - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Seniority' - type: 'null' description: Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels. state_code: type: - string - 'null' description: The state or province code. Use country lookup endpoint to retrieve state codes. citizenship: type: - string - 'null' description: ISO 3166-1 alpha-2 country code of the worker's citizenship. external_id: type: - string - 'null' description: External Id. who_reports: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0WhoReports' description: Flag to indicate who is supposed to provide regular reports country_code: type: string description: Country code. notice_period: type: number format: double default: 10 description: Days before to notice the termination of contract for either party. scope_of_work: type: - string - 'null' description: Describe the work to be performed. special_clause: type: - string - 'null' description: Enter any special clause you may have. scope_of_work_id: type: - string - 'null' format: uuid description: Existing scope of work public id termination_date: type: - string - 'null' format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' contract_template_id: type: - string - 'null' description: Contract Template Id. type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Type' description: Type of contract start_date: type: string format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' compensation_details: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetails' description: Compensation and invoicing configuration for the contract. required: - meta - title - client - job_title - type - start_date - compensation_details description: Details of contract to create title: ContractsPostRequestBodyContentApplicationJsonSchemaData0 ContractsPostResponsesContentApplicationJsonSchemaDataSignatures: type: object properties: signed_at: type: - string - 'null' description: Long date-time format following ISO-8601 client_signature: type: string description: normally name of client is used as signature client_signed_at: type: - string - 'null' description: Long date-time format following ISO-8601 worker_signature: type: string description: Signatures of client representative. worker_signed_at: type: - string - 'null' description: Long date-time format following ISO-8601 required: - signed_at - client_signature - client_signed_at - worker_signature - worker_signed_at description: List of signatures recorded for this contract. title: ContractsPostResponsesContentApplicationJsonSchemaDataSignatures ContractsContractIdPatchResponsesContentApplicationJsonSchemaClient: type: object properties: id: type: string description: Unique identifier of this resource. team: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaClientTeam' description: Team information for the client organization. email: type: - string - 'null' 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 description: Full name of the client. legal_entity: oneOf: - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaClientLegalEntity' - type: 'null' description: Legal entity details of the client. required: - team description: Client details associated with the contract. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaClient ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsCycleEndType: type: string enum: - DAY_OF_WEEK - DAY_OF_LAST_WEEK - DAY_OF_MONTH description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsCycleEndType WorkersAmendmentsAmendmentIdSignPostResponsesContentApplicationJsonSchemaRequest: type: object properties: url: type: string description: The relative URL of the failed request code: type: number format: double description: The code of the source handler which produced the returned error docs: type: string description: A link to the official documentation for the requested endpoint resource method: type: string description: The HTTP method of the failed request source: type: string description: The source handler which produced the returned error status: type: number format: double description: The status code of the response api_req_id: type: string description: The request ID of the failed request title: WorkersAmendmentsAmendmentIdSignPostResponsesContentApplicationJsonSchemaRequest ContractsGetResponsesContentApplicationJsonSchemaDataItemsCostCentersItems: type: object properties: name: type: string description: Cost center name. number: type: string description: Cost center number. allocation_percentage: type: number format: double description: Percentage of the cost center allocation. description: Cost center object. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsCostCentersItems contracts_createICContract_Response_201: type: object properties: data: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaData' required: - data title: contracts_createICContract_Response_201 CreateARequestToExerciseEquity-v2026-01-01RequestUnprocessableEntityError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePostResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: CreateARequestToExerciseEquity-v2026-01-01RequestUnprocessableEntityError ContractsGetParametersExpand: type: string enum: - cost_centers title: ContractsGetParametersExpand ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Client: type: object properties: team: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeam' description: Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization. legal_entity: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntity' description: Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization. required: - team - legal_entity description: Client details for the contract, including the legal entity and team. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Client ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0SeniorityId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0SeniorityId ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntity: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntityId' description: Unique identifier of this resource. required: - id description: Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntity ContractsGetResponsesContentApplicationJsonSchemaRequest: type: object properties: method: type: string description: Method of the API status: type: number format: double description: Status of API response description: Error request details title: ContractsGetResponsesContentApplicationJsonSchemaRequest ContractsContractIdGetResponsesContentApplicationJsonSchemaDataStatus: type: string 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 description: Status of a contract in Deel workflow. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataStatus ContractsGetParametersOrderDirection: type: string enum: - asc - desc title: ContractsGetParametersOrderDirection ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClientTeam: type: object properties: id: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClientTeamId' description: Unique identifier of this resource. name: type: string description: Name of a team. required: - id - name description: Team information for the client organization. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClientTeam ContractsContractIdPatchResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: message: type: string description: Error response required: - message title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaErrorsItems ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkerAlternateEmailItems: type: object properties: email: type: string description: Email address of the worker. isVerified: type: boolean description: Indicates whether this alternate email address has been verified. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkerAlternateEmailItems ContractsContractIdPatchResponsesContentApplicationJsonSchemaSeniority: type: object properties: id: type: - number - 'null' format: double description: Unique identifier of this resource. name: type: - string - 'null' description: Name of seniority level e.g. Mid (Individual Contributor Level 2). level: type: - number - 'null' format: double description: Level of seniority level e.g. 2. description: Seniority describes level of expertise at a job e.g. junior. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaSeniority ContractsGetParametersSortBy: type: string enum: - contract_title - worker_name title: ContractsGetParametersSortBy SignAmendmentRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/WorkersAmendmentsAmendmentIdSignPostResponsesContentApplicationJsonSchemaErrorsItems' request: $ref: '#/components/schemas/WorkersAmendmentsAmendmentIdSignPostResponsesContentApplicationJsonSchemaRequest' title: SignAmendmentRequestBadRequestError CreateARequestToExerciseEquity-v2026-01-01RequestTooManyRequestsError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePostResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: CreateARequestToExerciseEquity-v2026-01-01RequestTooManyRequestsError ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeam: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeamId' description: Unique identifier of this resource. required: - id description: Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeam ApproveAnEquityExercise-v2026-01-01RequestInternalServerError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePublicIdPatchResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: ApproveAnEquityExercise-v2026-01-01RequestInternalServerError RetrieveASingleContract-v2026-01-01RequestNotFoundError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaErrorsItems' description: Error messages request: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaRequest' description: Error request details required: - errors title: RetrieveASingleContract-v2026-01-01RequestNotFoundError ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkerAlternateEmailItems: type: object properties: email: type: string description: Email address of the worker. isVerified: type: boolean description: Indicates whether this alternate email address has been verified. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkerAlternateEmailItems ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate1: type: string enum: - '' title: ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate1 EquityExercisePublicIdPatchResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: message: type: string description: General error description for logging and debugging. required: - message title: EquityExercisePublicIdPatchResponsesContentApplicationJsonSchemaErrorsItems ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Worker: type: object properties: last_name: type: - string - 'null' description: Worker's last name first_name: type: - string - 'null' description: Worker's first name work_email: type: - string - 'null' format: email description: Worker's work email address. expected_email: type: - string - 'null' format: email description: Worker's email address. required: - first_name - expected_email description: Worker properties title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Worker ContractsGetResponsesContentApplicationJsonSchemaDataItemsWorkerAlternateEmailItems: type: object properties: email: type: - string - 'null' format: email description: User's email address. isVerified: type: boolean description: Indicates whether the alternate email address is verified. description: Alternate email address object. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsWorkerAlternateEmailItems ContractsPostResponsesContentApplicationJsonSchemaDataWorkerAlternateEmailItems: type: object properties: email: type: - string - 'null' format: email description: User's email address. isVerified: type: boolean description: True if email has been verified required: - email - isVerified title: ContractsPostResponsesContentApplicationJsonSchemaDataWorkerAlternateEmailItems ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntityType: type: string enum: - individual - company description: Type of a legal entity title: ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntityType ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleDaysItems: type: object properties: day: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleDaysItemsDay' description: Day of the week end: type: - string - 'null' format: time description: End time for the work day (HH:MM:SS format) start: type: string format: time description: Start time for the work day (HH:MM:SS format) work_hours: type: number format: double description: Number of working hours for this day required: - day - end - start - work_hours description: Defines working hours for a specific day of the week title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkScheduleDaysItems CreateANewContract-v2026-01-01RequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaErrorsItems' description: Error messages request: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaRequest' description: Error request details required: - errors title: CreateANewContract-v2026-01-01RequestBadRequestError ContractsContractIdPatchResponsesContentApplicationJsonSchemaCostCentersItems: type: object properties: name: type: string description: Cost center name. number: type: string description: Cost center number. allocation_percentage: type: number format: double description: Percentage of the cost center allocation. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaCostCentersItems ContractsGetResponsesContentApplicationJsonSchemaDataItemsWhoReports: type: string enum: - both - client - contractor description: Indicates who is responsible for providing regular reports. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsWhoReports ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Seniority: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3SeniorityId' description: Unique identifier of this resource. description: Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Seniority ContractsGetResponsesContentApplicationJsonSchemaDataItemsInvitations: type: object properties: client_email: type: - string - 'null' description: Email address of the client to invite. worker_email: type: - string - 'null' description: Email address of the worker to invite. description: Details of invitations sent for signing the contract. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsInvitations SignWorkerContractRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/WorkersContractsContractIdSignaturesPostResponsesContentApplicationJsonSchemaErrorsItems' title: SignWorkerContractRequestBadRequestError ContractsContractIdPatchResponsesContentApplicationJsonSchemaInvitations: type: object properties: client_email: type: - string - 'null' description: User's email address. worker_email: type: - string - 'null' description: User's email address. description: Invitation email addresses for signing the contract. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaInvitations ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntity: type: object properties: id: type: string description: Unique identifier of this resource. name: type: string description: Name of a legal entity type: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntityType' description: Type of a legal entity email: type: - string - 'null' description: User's email address. subtype: type: string description: Subtype of a legal entity vat_number: type: string description: VAT number of a legal entity registration_number: type: string description: Registration number of a legal entity required: - id - name - type - email - subtype - vat_number - registration_number description: Legal entity information for the client organization. title: ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntity ContractsPostResponsesContentApplicationJsonSchemaDataClientTeam: type: object properties: id: type: string description: Unique identifier of this resource. name: type: string description: Name of a team required: - id - name description: Team information for the client organization. title: ContractsPostResponsesContentApplicationJsonSchemaDataClientTeam ContractsContractIdPatchResponsesContentApplicationJsonSchemaRequest: type: object properties: method: type: string description: Method of the API status: type: number format: double description: Status of API response description: Error request details title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaRequest ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2SeniorityId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2SeniorityId ContractsContractIdGetParametersExpand: type: string enum: - cost_centers title: ContractsContractIdGetParametersExpand ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1WhoReports: type: string enum: - both - client - contractor description: Flag to indicate who is supposed to provide regular reports title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1WhoReports ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCustomFieldsItems: type: object properties: id: type: - string - 'null' description: Unique identifier of the custom field. name: type: string description: Custom field property name. value: type: string description: Custom field property value. description: Customized attributes on contracts (Employee ID, Project code, etc). title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataCustomFieldsItems ContractsPostResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: message: type: string description: Error response required: - message title: ContractsPostResponsesContentApplicationJsonSchemaErrorsItems ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitleId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitleId Contracts_getContractTemplates_Response_200: type: object properties: data: type: array items: $ref: '#/components/schemas/ContractTemplatesGetResponsesContentApplicationJsonSchemaDataItems' title: Contracts_getContractTemplates_Response_200 RetrieveContractPdfDownloadLinkRequestInternalServerError: type: object properties: errors: type: array items: $ref: '#/components/schemas/WorkersContractsContractIdPdfGetResponsesContentApplicationJsonSchemaErrorsItems' title: RetrieveContractPdfDownloadLinkRequestInternalServerError ContractsContractIdGetResponsesContentApplicationJsonSchemaRequest: type: object properties: method: type: string description: Method of the API status: type: number format: double description: Status of API response description: Error request details title: ContractsContractIdGetResponsesContentApplicationJsonSchemaRequest ContractsContractIdGetResponsesContentApplicationJsonSchemaDataInvitations: type: object properties: client_email: type: - string - 'null' description: User's email address. worker_email: type: - string - 'null' description: User's email address. description: Invitation email addresses for signing the contract. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataInvitations ContractsGetResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: message: type: string description: Error response required: - message title: ContractsGetResponsesContentApplicationJsonSchemaErrorsItems WorkersAmendmentsAmendmentIdSignPostResponsesContentApplicationJsonSchemaData: type: object properties: id: type: string description: The unique identifier of the signed amendment. is_signed: type: boolean description: Indicates whether the amendment was successfully signed. required: - id - is_signed title: WorkersAmendmentsAmendmentIdSignPostResponsesContentApplicationJsonSchemaData ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitle: type: object properties: id: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitleId' description: Unique identifier of this resource. name: type: - string - 'null' 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. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitle ContractsContractIdGetResponsesContentApplicationJsonSchemaDataQuoteBenefitsItems: type: object properties: fee: type: number format: double description: Fee in local currency. name: type: string description: Benefit's name. plan: type: string description: Benefit's plan. price: type: number format: double description: Price in local currency. fee_usd: type: number format: double description: Fee in USD. currency: type: string description: Currency code. price_usd: type: number format: double description: Price in USD. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataQuoteBenefitsItems ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleDaysItemsDay: type: string enum: - MONDAY - TUESDAY - WEDNESDAY - THURSDAY - FRIDAY - SATURDAY - SUNDAY description: Day of the week title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleDaysItemsDay ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthlyCostsItems: type: object properties: name: type: string description: Cost's name total: type: number format: double description: Total cost in local currency currency: type: string description: Currency code. total_usd: type: number format: double description: Total cost in USD title: ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthlyCostsItems ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorker: type: object properties: id: type: string description: Unique identifier of this resource. email: type: - string - 'null' format: email description: User's email address. country: type: - string - 'null' description: Country of the worker. full_name: type: string description: Full name of the client. last_name: type: string description: Last name of the worker. first_name: type: string description: First name of the worker. nationality: type: - string - 'null' description: Nationality of the worker. date_of_birth: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkerDateOfBirth' expected_email: type: string description: Expected email address of the worker (e.g., invitation target email). alternate_email: type: - array - 'null' items: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkerAlternateEmailItems' description: List of alternate email addresses. description: Worker details associated with the contract. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorker ContractsPostResponsesContentApplicationJsonSchemaDataEmploymentDetails: type: object properties: type: type: string description: Employment type classification for the contract. state: type: - string - 'null' description: State code. country: type: string description: Country code. days_per_week: type: number format: double description: Number of days per week hours_per_day: type: number format: double description: Number of hours per day probation_period: type: - number - 'null' format: double description: Number of days for probation period paid_vacation_days: type: number format: double description: Number of paid vacation days required: - type - days_per_week - hours_per_day - probation_period - paid_vacation_days description: Employment-related details for the contract, when applicable. title: ContractsPostResponsesContentApplicationJsonSchemaDataEmploymentDetails ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntity: type: object properties: type: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntityType' description: Type of a legal entity personal_name: type: string description: Name of a legal entity registration_number: type: string description: Registration number of a legal entity required: - type - personal_name - registration_number description: Worker legal entity information, if applicable. title: ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntity ContractsGetResponsesContentApplicationJsonSchemaDataItemsSignatures: type: object properties: client_signed_at: type: - string - 'null' format: date-time description: Timestamp when the client signed the contract, in ISO-8601 format. worker_signature: type: - string - 'null' description: Worker's signature. worker_signed_at: type: - string - 'null' format: date-time description: Timestamp when the worker signed the contract, in ISO-8601 format. required: - client_signed_at - worker_signature - worker_signed_at description: Signature information for the contract. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsSignatures EquityExercisePostResponsesContentApplicationJsonSchemaErrorsItems: type: object properties: message: type: string description: General error description for logging and debugging. required: - message title: EquityExercisePostResponsesContentApplicationJsonSchemaErrorsItems Contracts_rejectContract_Response_204: type: object properties: {} description: Empty response body title: Contracts_rejectContract_Response_204 ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsFrequency: type: string enum: - weekly - monthly - biweekly - semimonthly - calendar-month description: Scale of the invoice cycle. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsFrequency ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitleId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitleId ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3SeniorityId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3SeniorityId ContractsPostResponsesContentApplicationJsonSchemaRequest: type: object properties: method: type: string description: Method of the API status: type: number format: double description: Status of API response description: Error request details title: ContractsPostResponsesContentApplicationJsonSchemaRequest ContractsPostResponsesContentApplicationJsonSchemaData: type: object properties: id: type: string description: The public id of the object type: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataType' description: Type of a contract quote: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuote' description: EOR quote approved by Deel title: type: string description: Title of a contract client: oneOf: - $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataClient' - type: 'null' description: Client details associated with the contract. status: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataStatus' description: Status of a contract in Deel workflow worker: oneOf: - $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWorker' - type: 'null' description: Worker details associated with the contract. job_title: type: string description: Job title associated with the contract. seniority: oneOf: - $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataSeniority' - type: 'null' description: Seniority describes level of expertise at a job e.g. junior created_at: type: - string - 'null' format: date-time description: Long date-time format following ISO-8601 signatures: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataSignatures' description: List of signatures recorded for this contract. start_date: type: - string - 'null' format: date-time description: Long date-time format following ISO-8601 external_id: type: - string - 'null' description: A unique identifier for the object provided by an external system. invitations: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataInvitations' description: List of signature invitations sent for this contract. is_archived: type: boolean description: Flag to indicate if the contract is archived who_reports: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWhoReports' description: Flag to indicate who is supposed to provide regular reports custom_fields: type: array items: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataCustomFieldsItems' description: Custom fields attached to the contract. notice_period: type: number format: double default: 10 description: Days before to notice the termination of contract for either party. scope_of_work: type: - string - 'null' description: Scope of work for the contract special_clause: type: string description: Special clause for the contract termination_date: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate' description: Contract termination date. When present, it is a date-time string in ISO-8601 format. work_statement_id: type: string description: The public unique identifier of the work statement employment_details: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataEmploymentDetails' description: Employment-related details for the contract, when applicable. compensation_details: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataCompensationDetails' description: Compensation configuration and payment schedule details for the contract. required: - id - type - title - client - status - worker - job_title - created_at - signatures - start_date - invitations - is_archived - special_clause - termination_date - work_statement_id - employment_details - compensation_details title: ContractsPostResponsesContentApplicationJsonSchemaData ApproveAnEquityExercise-v2026-01-01RequestUnauthorizedError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePublicIdPatchResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: ApproveAnEquityExercise-v2026-01-01RequestUnauthorizedError ContractsContractIdPatchResponsesContentApplicationJsonSchemaCustomFieldsItems: type: object properties: name: type: string description: Custom field property name. value: type: string description: Custom field property value. description: Customized attributes on contracts (Employee ID, Project code, etc). title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaCustomFieldsItems ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeamId: oneOf: - type: string - type: number format: double description: Unique identifier of this resource. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeamId ContractsGetResponsesContentApplicationJsonSchemaDataItemsClient: type: object properties: team: $ref: '#/components/schemas/ContractsGetResponsesContentApplicationJsonSchemaDataItemsClientTeam' description: Team information for the client. description: Client information associated with the contract. title: ContractsGetResponsesContentApplicationJsonSchemaDataItemsClient ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0WhoReports: type: string enum: - both - client - contractor description: Flag to indicate who is supposed to provide regular reports title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0WhoReports ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkerDateOfBirth2: type: string enum: - '' description: Empty string for unknown/unset values. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkerDateOfBirth2 ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClientLegalEntity: type: object properties: id: type: string description: Unique identifier of this resource. name: type: string description: Name of a team. type: type: - string - 'null' description: Type of the legal entity. email: type: - string - 'null' description: Email address of the legal entity. subtype: type: - string - 'null' description: Sub-type of the legal entity. vat_number: type: - string - 'null' description: VAT number of the legal entity. registration_number: type: - string - 'null' description: Registration number of the legal entity. description: Legal entity details of the client. title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataClientLegalEntity ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkerDateOfBirth: oneOf: - type: string format: date - type: string title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkerDateOfBirth AddExternalIdRequestNotFoundError: type: object properties: errors: type: array items: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaErrorsItems' description: Error messages request: $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaRequest' description: Error request details required: - errors title: AddExternalIdRequestNotFoundError ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Type: type: string enum: - ongoing_time_based description: Type of contract title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Type ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsCycleEndType: type: string enum: - DAY_OF_WEEK - DAY_OF_LAST_WEEK - DAY_OF_MONTH description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsCycleEndType ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Client: type: object properties: team: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeam' description: Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization. legal_entity: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntity' description: Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization. required: - team - legal_entity description: Client details for the contract, including the legal entity and team. title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Client ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthly: type: object properties: costs: type: array items: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthlyCostsItems' description: List of individual monthly cost line items included in the quote. total: type: number format: double description: Total costs in local currency total_usd: type: number format: double description: Total costs in USD description: Monthly cost breakdown for the quote. title: ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthly ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkerDateOfBirth: oneOf: - type: string format: date-time - type: string format: date - $ref: '#/components/schemas/ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkerDateOfBirth2' description: Date of birth of the worker. Supports full date-time, date-only, or an empty string. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaWorkerDateOfBirth RetrieveContractPdfDownloadLinkRequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/WorkersContractsContractIdPdfGetResponsesContentApplicationJsonSchemaErrorsItems' title: RetrieveContractPdfDownloadLinkRequestBadRequestError ContractsPostRequestBodyContentApplicationJsonSchemaData3: type: object properties: meta: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Meta' description: Additional custom info about a contract title: type: string description: The title of the contract. client: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Client' description: Client details for the contract, including the legal entity and team. worker: oneOf: - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Worker' - type: 'null' description: Worker properties job_title: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitle' 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: oneOf: - $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Seniority' - type: 'null' description: Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels. state_code: type: - string - 'null' description: The state or province code. Use country lookup endpoint to retrieve state codes. citizenship: type: - string - 'null' description: ISO 3166-1 alpha-2 country code of the worker's citizenship. external_id: type: - string - 'null' description: External Id. who_reports: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3WhoReports' description: Flag to indicate who is supposed to provide regular reports country_code: type: string description: Country code. notice_period: type: number format: double default: 10 description: Days before to notice the termination of contract for either party. scope_of_work: type: - string - 'null' description: Describe the work to be performed. special_clause: type: - string - 'null' description: Enter any special clause you may have. scope_of_work_id: type: - string - 'null' format: uuid description: Existing scope of work public id termination_date: type: - string - 'null' format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' contract_template_id: type: - string - 'null' description: Contract Template Id. type: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Type' description: Type of contract start_date: type: string format: date description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.' compensation_details: $ref: '#/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetails' description: Compensation and invoicing configuration for the contract. required: - meta - title - client - job_title - type - start_date - compensation_details description: Details of contract to create title: ContractsPostRequestBodyContentApplicationJsonSchemaData3 ContractsContractIdPatchResponsesContentApplicationJsonSchemaType: type: string 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 description: Type of a contract. title: ContractsContractIdPatchResponsesContentApplicationJsonSchemaType ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleDaysItems: type: object properties: day: $ref: '#/components/schemas/ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleDaysItemsDay' description: Day of the week end: type: - string - 'null' format: time description: End time for the work day (HH:MM:SS format) start: type: string format: time description: Start time for the work day (HH:MM:SS format) work_hours: type: number format: double description: Number of working hours for this day required: - day - end - start - work_hours description: Defines working hours for a specific day of the week title: ContractsContractIdGetResponsesContentApplicationJsonSchemaDataWorkScheduleDaysItems ContractsPostResponsesContentApplicationJsonSchemaDataClient: type: object properties: id: type: string description: Unique identifier of this resource. team: $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataClientTeam' description: Team information for the client organization. email: type: - string - 'null' format: email description: User's email address. full_name: type: string description: User's full name. legal_entity: oneOf: - $ref: '#/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntity' - type: 'null' description: Legal entity information for the client organization. required: - team - legal_entity description: Client details associated with the contract. title: ContractsPostResponsesContentApplicationJsonSchemaDataClient ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Worker: type: object properties: last_name: type: - string - 'null' description: Worker's last name first_name: type: - string - 'null' description: Worker's first name work_email: type: - string - 'null' format: email description: Worker's work email address. expected_email: type: - string - 'null' format: email description: Worker's email address. required: - first_name - expected_email description: Worker properties title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Worker CreateARequestToExerciseEquity-v2026-01-01RequestBadRequestError: type: object properties: errors: type: array items: $ref: '#/components/schemas/EquityExercisePostResponsesContentApplicationJsonSchemaErrorsItems' required: - errors title: CreateARequestToExerciseEquity-v2026-01-01RequestBadRequestError securitySchemes: deelToken: type: http scheme: bearer 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: http scheme: bearer description: Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/