Skip to content

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

FieldTypePresenceDescription and constraints
$objectRoot
clientJSONRequired within parentClient details associated with the contract.
client (anyOf 1)ModelAlternativeExpand Create a new contract — 201 response body — data client Client details associated with the contract
client (anyOf 2)nullAlternative
compensation_detailsModelRequired within parentExpand Create a new contract — 201 response body — data compensation details
Compensation configuration and payment schedule details for the contract.
created_atJSONRequired within parent
created_at (anyOf 1)stringAlternativeLong date-time format following ISO-8601
Format: date-time
created_at (anyOf 2)nullAlternativeLong date-time format following ISO-8601
Format: date-time
custom_fieldsarrayOptionalCustom fields attached to the contract.
custom_fields[]ModelEach itemExpand Create a new contract — 201 response body — data custom fields item
employment_detailsModelRequired within parentExpand Create a new contract — 201 response body — data employment details
Employment-related details for the contract, when applicable.
external_idJSONOptional
external_id (anyOf 1)stringAlternativeA unique identifier for the object provided by an external system.
external_id (anyOf 2)nullAlternativeA unique identifier for the object provided by an external system.
idstringRequired within parentThe public id of the object
invitationsModelRequired within parentExpand Create a new contract — 201 response body — data invitations
List of signature invitations sent for this contract.
is_archivedbooleanRequired within parentFlag to indicate if the contract is archived
job_titlestringRequired within parentJob title associated with the contract.
notice_periodJSONOptional
notice_period (anyOf 1)numberAlternativeDays before to notice the termination of contract for either party.
Default: 10
Format: double
Minimum: 0
notice_period (anyOf 2)stringAlternativePattern: ^-?[0-9]+(?:.[0-9]+)?(?:[eE][+-]?[0-9]+)?$
platform_payment_typestringOptionalWhether the contract is paid through Deel (`STANDARD`) or outside Deel (`OFF_PLATFORM`). Applies to IC contracts only.
Known values: STANDARD, OFF_PLATFORM
quoteModelOptionalExpand Create a new contract — 201 response body — data quote
EOR quote approved by Deel
scope_of_workJSONOptional
scope_of_work (anyOf 1)stringAlternativeScope of work for the contract
scope_of_work (anyOf 2)nullAlternativeScope of work for the contract
seniorityJSONOptionalSeniority describes level of expertise at a job e.g. junior
seniority (anyOf 1)ModelAlternativeExpand Create a new contract — 201 response body — data seniority id, level, name
seniority (anyOf 2)nullAlternative
signaturesModelRequired within parentExpand Create a new contract — 201 response body — data signatures
List of signatures recorded for this contract.
special_clausestringRequired within parentSpecial clause for the contract
start_dateJSONRequired within parent
start_date (anyOf 1)stringAlternativeLong date-time format following ISO-8601
Format: date-time
start_date (anyOf 2)nullAlternativeLong date-time format following ISO-8601
Format: date-time
statusstringRequired within parentStatus 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_dateModelRequired within parentExpand 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.
titlestringRequired within parentTitle of a contract
Minimum length: 1
typestringRequired within parentType 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_reportsstringOptionalFlag to indicate who is supposed to provide regular reports
Known values: both, client, contractor, "" (empty string)
work_statement_idstringRequired within parentThe public unique identifier of the work statement
workerJSONRequired within parentWorker details associated with the contract.
worker (anyOf 1)ModelAlternativeExpand Create a new contract — 201 response body — data worker Worker details associated with the contract
worker (anyOf 2)nullAlternative

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

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.