Deel: Create a new contract — request body — body data type: payg milestones, who reports: both, client, contractor
Create a new contract: request body, field body / data / type: payg_milestones, who_reports: both, client, contractor. Complete fields and constraints for contract 2026-10-27.
API reference · Contract 2026-10-27
SDK schema: Create a new contract — request body — body / data / type: payg milestones, who reports: both, client, contractor
| Field | Type | Presence | Description and constraints |
|---|---|---|---|
$ | object | Root | Details of contract to create |
citizenship | string or null | Optional | ISO 3166-1 alpha-2 country code of the worker’s citizenship. Maximum length: 2 Minimum length: 2 Pattern: ^[A-Z]{2}$ |
client | Model | Required within parent | Expand Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor client Client details for the contract, including the legal entity and team. |
compensation_details | Model | Required within parent | Expand Create a new contract — request body — body / data / type: payg milestones, who reports: both, client, contractor compensation details Compensation and invoicing configuration for the contract. |
contract_template_id | string or null | Optional | Contract Template Id. |
country_code | string | Optional | Country code. Maximum length: 2 Minimum length: 2 Pattern: ^[A-Z]{2}$ |
external_id | string or null | Optional | External Id. |
job_title | Model | Optional | Expand Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor job title 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. |
meta | Model | Required within parent | Expand Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor meta Additional custom info about a contract |
notice_period | number | Optional | Days before to notice the termination of contract for either party. Default: 10 Format: double Minimum: 0 |
scope_of_work | string or null | Optional | Describe the work to be performed. |
scope_of_work_id | string or null | Optional | Existing scope of work public id Format: uuid |
seniority | JSON | Optional | Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels. |
seniority (oneOf 1) | Model | Alternative | Expand Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor seniority id |
seniority (oneOf 2) | null | Alternative | |
special_clause | string or null | Optional | Enter any special clause you may have. |
start_date | string or null | Optional | Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31. Format: date Pattern: ^\d{4}-\d{2}-\d{2}$ |
state_code | string or null | Optional | The state or province code. Use country lookup endpoint to retrieve state codes. |
termination_date | string or null | Optional | Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31. Format: date Pattern: ^\d{4}-\d{2}-\d{2}$ |
title | string | Required within parent | The title of the contract. |
type | string | Required within parent | Type of contract One of: payg_milestones |
who_reports | string | Optional | Flag to indicate who is supposed to provide regular reports One of: both, client, contractor |
worker | JSON | Optional | Worker properties |
worker (oneOf 1) | Model | Alternative | Expand Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor worker Worker properties |
worker (oneOf 2) | null | Alternative |
Referenced models: Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor client, Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor job title, Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor meta, Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor seniority id, Create a new contract — request body — body / data / type: payg tasks, who reports: both, client, contractor worker Worker properties, Create a new contract — request body — body / data / type: payg milestones, who reports: both, client, contractor compensation details