Deel: Create a new contract — 201 response body — data
Create a new contract: 201 response body, field data. Complete fields and constraints for contract 2026-10-27.
API reference · Contract 2026-10-27
SDK schema: Create a new contract — 201 response body — data
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | |
client | JSON | Required within parent | Client details associated with the contract. |
client (anyOf 1) | Model | Alternative | Expand Create a new contract — 201 response body — data client Client details associated with the contract |
client (anyOf 2) | null | Alternative | |
compensation_details | Model | Required within parent | Expand Create a new contract — 201 response body — data compensation details Compensation configuration and payment schedule details for the contract. |
created_at | JSON | Required within parent | |
created_at (anyOf 1) | string | Alternative | Long date-time format following ISO-8601 Format: date-time |
created_at (anyOf 2) | null | Alternative | Long date-time format following ISO-8601 Format: date-time |
custom_fields | array | Optional | Custom fields attached to the contract. |
custom_fields[] | Model | Each item | Expand Create a new contract — 201 response body — data custom fields item |
employment_details | Model | Required within parent | Expand Create a new contract — 201 response body — data employment details Employment-related details for the contract, when applicable. |
external_id | JSON | Optional | |
external_id (anyOf 1) | string | Alternative | A unique identifier for the object provided by an external system. |
external_id (anyOf 2) | null | Alternative | A unique identifier for the object provided by an external system. |
id | string | Required within parent | The public id of the object |
invitations | Model | Required within parent | Expand Create a new contract — 201 response body — data invitations List of signature invitations sent for this contract. |
is_archived | boolean | Required within parent | Flag to indicate if the contract is archived |
job_title | string | Required within parent | Job title associated with the contract. |
notice_period | JSON | Optional | |
notice_period (anyOf 1) | number | Alternative | Days before to notice the termination of contract for either party. Default: 10 Format: double Minimum: 0 |
notice_period (anyOf 2) | string | Alternative | Pattern: ^-?[0-9]+(?:.[0-9]+)?(?:[eE][+-]?[0-9]+)?$ |
platform_payment_type | string | Optional | Whether the contract is paid through Deel (`STANDARD`) or outside Deel (`OFF_PLATFORM`). Applies to IC contracts only. Known values: STANDARD, OFF_PLATFORM |
quote | Model | Optional | Expand Create a new contract — 201 response body — data quote EOR quote approved by Deel |
scope_of_work | JSON | Optional | |
scope_of_work (anyOf 1) | string | Alternative | Scope of work for the contract |
scope_of_work (anyOf 2) | null | Alternative | Scope of work for the contract |
seniority | JSON | Optional | Seniority describes level of expertise at a job e.g. junior |
seniority (anyOf 1) | Model | Alternative | Expand Create a new contract — 201 response body — data seniority id, level, name |
seniority (anyOf 2) | null | Alternative | |
signatures | Model | Required within parent | Expand Create a new contract — 201 response body — data signatures List of signatures recorded for this contract. |
special_clause | string | Required within parent | Special clause for the contract |
start_date | JSON | Required within parent | |
start_date (anyOf 1) | string | Alternative | Long date-time format following ISO-8601 Format: date-time |
start_date (anyOf 2) | null | Alternative | Long date-time format following ISO-8601 Format: date-time |
status | string | Required within parent | Status of a contract in Deel workflow Known values: 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 |
termination_date | Model | Required within parent | Expand Create a new contract — 201 response body — data termination date Contract termination date. When present, it is a date-time string in ISO-8601 format. |
title | string | Required within parent | Title of a contract Minimum length: 1 |
type | string | Required within parent | Type of a contract Known values: 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 |
who_reports | string | Optional | Flag to indicate who is supposed to provide regular reports Known values: both, client, contractor, "" (empty string) |
work_statement_id | string | Required within parent | The public unique identifier of the work statement |
worker | JSON | Required within parent | Worker details associated with the contract. |
worker (anyOf 1) | Model | Alternative | Expand Create a new contract — 201 response body — data worker Worker details associated with the contract |
worker (anyOf 2) | null | Alternative |
Referenced models: Create a new contract — 201 response body — data custom fields item, Create a new contract — 201 response body — data client Client details associated with the contract, Create a new contract — 201 response body — data compensation details, Create a new contract — 201 response body — data employment details, Create a new contract — 201 response body — data invitations, Create a new contract — 201 response body — data quote, Create a new contract — 201 response body — data seniority id, level, name, Create a new contract — 201 response body — data signatures, Create a new contract — 201 response body — data termination date, Create a new contract — 201 response body — data worker Worker details associated with the contract