ContractToCreateContainer_ongoing_time_based
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/ContractToCreate_ongoing_time_based"
}
},
"x-internal": true
}
ContractToCreateContainer_pay_as_you_go_time_based
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/ContractToCreate_pay_as_you_go_time_based"
}
},
"x-internal": true
}
ContractToCreateContainer_payg_milestones
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/ContractToCreate_payg_milestones"
}
},
"x-internal": true
}
ContractToCreateContainer_payg_tasks
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/ContractToCreate_payg_tasks"
}
},
"x-internal": true
}
ContractToCreate_Shared
{
"type": "object",
"required": [
"type",
"title",
"job_title",
"meta",
"client"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/MetaDataOfContractToCreate"
},
"title": {
"type": "string",
"description": "The title of the contract."
},
"client": {
"type": "object",
"required": [
"legal_entity",
"team"
],
"properties": {
"team": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier"
}
},
"description": "Choose the Deel team for this contract. Use teams endpoint to retrieve a list of teams in your organization."
},
"legal_entity": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier"
}
},
"description": "Choose the Deel legal entity for this contract. Use legal entity endpoint to retrieve a list of legal entities in your organization."
}
}
},
"worker": {
"type": "object",
"nullable": true,
"required": [
"first_name",
"expected_email"
],
"properties": {
"last_name": {
"type": "string",
"example": "Doe",
"nullable": true,
"maxLength": 255,
"description": "Worker's last name"
},
"first_name": {
"type": "string",
"example": "John",
"nullable": true,
"maxLength": 255,
"description": "Worker's first name"
},
"expected_email": {
"$ref": "#/components/schemas/WorkerEmailType"
}
},
"description": "Worker properties"
},
"job_title": {
"type": "object",
"properties": {
"id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier",
"description": "Id of an predefined job title."
},
"name": {
"type": "string",
"nullable": true,
"maxLength": 255,
"description": "Job title. Please leave it blank when entering an Id."
}
},
"description": "Worker's job title. You can enter a custom job title or use a pre-defiled job title using the Id retrieved in job-titles endpoint."
},
"seniority": {
"type": "object",
"nullable": true,
"properties": {
"id": {
"$ref": "#/components/schemas/UniqueObjectIdentifier"
}
},
"description": "Job seniority level. Please use the seniority levels endpoint to retrieve the list of seniority levels."
},
"state_code": {
"type": "string",
"nullable": true,
"description": "The state or province code. Use country lookup endpoint to retrieve state codes."
},
"external_id": {
"type": "string",
"nullable": true,
"description": "External Id."
},
"who_reports": {
"$ref": "#/components/schemas/ContractWhoReportsEnum"
},
"country_code": {
"$ref": "#/components/schemas/CountryCode"
},
"notice_period": {
"$ref": "#/components/schemas/NoticePeriod"
},
"scope_of_work": {
"type": "string",
"nullable": true,
"description": "Describe the work to be performed."
},
"special_clause": {
"type": "string",
"nullable": true,
"description": "Enter any special clause you may have."
},
"termination_date": {
"$ref": "#/components/schemas/DateString"
}
},
"x-internal": true,
"description": "Details of contract to create"
}
ContractToCreate_ongoing_time_based
{
"allOf": [
{
"$ref": "#/components/schemas/ContractToCreate_Shared"
},
{
"type": "object",
"required": [
"type",
"start_date"
],
"properties": {
"type": {
"enum": [
"ongoing_time_based"
],
"type": "string"
},
"start_date": {
"$ref": "#/components/schemas/DateStringRequired"
}
}
},
{
"type": "object",
"required": [
"compensation_details"
],
"properties": {
"compensation_details": {
"allOf": [
{
"$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_Shared"
},
{
"$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_ongoing_time_based"
}
]
}
}
}
],
"x-internal": true
}
ContractToCreate_pay_as_you_go_time_based
{
"allOf": [
{
"$ref": "#/components/schemas/ContractToCreate_Shared"
},
{
"type": "object",
"required": [
"type",
"start_date"
],
"properties": {
"type": {
"enum": [
"pay_as_you_go_time_based"
],
"type": "string"
},
"start_date": {
"$ref": "#/components/schemas/DateStringRequired"
}
}
},
{
"type": "object",
"required": [
"compensation_details"
],
"properties": {
"compensation_details": {
"allOf": [
{
"$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_Shared"
},
{
"$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_pay_as_you_go_time_based"
}
]
}
}
}
],
"x-internal": true
}
ContractToCreate_payg_milestones
{
"allOf": [
{
"$ref": "#/components/schemas/ContractToCreate_Shared"
},
{
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"enum": [
"payg_milestones"
],
"type": "string"
},
"start_date": {
"$ref": "#/components/schemas/DateString"
}
}
},
{
"type": "object",
"required": [
"compensation_details"
],
"properties": {
"compensation_details": {
"$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_Shared"
}
}
}
],
"x-internal": true
}
ContractToCreate_payg_tasks
{
"allOf": [
{
"$ref": "#/components/schemas/ContractToCreate_Shared"
},
{
"type": "object",
"required": [
"type",
"start_date"
],
"properties": {
"type": {
"enum": [
"payg_tasks"
],
"type": "string"
},
"start_date": {
"$ref": "#/components/schemas/DateStringRequired"
}
}
},
{
"type": "object",
"required": [
"compensation_details"
],
"properties": {
"compensation_details": {
"$ref": "#/components/schemas/CompensationDetailsOfContractToCreate_Shared"
}
}
}
],
"x-internal": true
}
ContractToTerminate
{
"type": "object",
"properties": {
"message": {
"type": "string",
"nullable": false,
"description": "A message for the termination"
},
"terminate_now": {
"type": "boolean"
},
"completion_date": {
"$ref": "#/components/schemas/DateString"
}
},
"x-internal": true
}
ContractToTerminateContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/ContractToTerminate"
}
},
"x-internal": true
}
ContractTypeEnum
{
"enum": [
"ongoing_time_based",
"milestones",
"time_based",
"pay_as_you_go_time_based",
"commission",
"payg_milestones",
"payg_tasks",
"eor",
"unknown",
"employee",
"global_payroll",
"shield_msa",
"hris_direct_employee"
],
"type": "string",
"x-internal": true,
"description": "Type of a contract"
}
ContractTypeEnumForEstimate
{
"enum": [
"ongoing_time_based",
"payg_tasks"
],
"type": "string",
"x-internal": true,
"description": "Type of a contract"
}
ContractTypeEnumList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/ContractTypeEnum"
},
"x-internal": true,
"description": "List of contract types"
}
ContractTypeEnumToCreate
{
"enum": [
"pay_as_you_go_time_based",
"payg_tasks",
"payg_milestones"
],
"type": "string",
"x-internal": true,
"description": "Type of a contract"
}
ContractWhoReportsEnum
{
"enum": [
"both",
"client",
"contractor"
],
"type": "string",
"x-internal": true,
"description": "Flag to indicate who is supposed to provide regular reports"
}
ContractsSortByEnum
{
"enum": [
"contract_title",
"worker_name"
],
"type": "string",
"x-internal": true
}
Contribution
{
"type": "object",
"properties": {
"type": {
"$ref": "#/components/schemas/BenefitContributionTypeEnum",
"description": "Contribution type."
},
"maximum": {
"type": "string",
"example": "10.00",
"description": "Maximum pension contribution."
},
"minimum": {
"type": "string",
"example": "5.00",
"description": "Minimum pension contribution."
}
},
"x-internal": true,
"description": "Pension contribution."
}
CostQuote
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Cost's name"
},
"total": {
"type": "number",
"description": "Total cost in local currency"
},
"currency": {
"$ref": "#/components/schemas/CurrencyCode"
},
"total_usd": {
"type": "number",
"description": "Total cost in USD"
}
},
"x-internal": true
}
Country
{
"type": "object",
"required": [
"code",
"name",
"visa_support",
"eor_support",
"state_type",
"states"
],
"properties": {
"code": {
"$ref": "#/components/schemas/CountryCode"
},
"name": {
"type": "string",
"example": "United States",
"nullable": false,
"minLength": 1,
"description": "Country name."
},
"states": {
"type": "array",
"items": {
"$ref": "#/components/schemas/StateOfCountry"
}
},
"state_type": {
"type": "string",
"example": "state",
"nullable": true,
"description": "Identifies the type of sub-territory within a country where local laws may apply. Some countries may have states, provinces, prefectures or regions."
},
"eor_support": {
"type": "boolean",
"nullable": false,
"description": "Identifies if Deel support EoR in this country."
},
"visa_support": {
"type": "boolean",
"nullable": false,
"description": "Identifies if Deel provides visa support for employees being hired in this country."
}
},
"x-internal": true
}
CountryCode
{
"type": "string",
"example": "US",
"pattern": "^[A-Z]{2}$",
"maxLength": 2,
"minLength": 2,
"x-internal": true,
"description": "Country code."
}
CountryCodeList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/CountryCode"
},
"x-internal": true
}
CountryCodeNulleable
{
"type": "string",
"example": "US",
"pattern": "^[A-Z]{2}$",
"nullable": true,
"maxLength": 2,
"minLength": 2,
"x-internal": true,
"description": "Country code."
}
CountryList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/Country"
},
"x-internal": true
}
CountryListContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/CountryList"
}
},
"x-internal": true
}
CreateAdminUserResponseContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/AdminUser"
}
},
"x-internal": true
}
CreateClientUser
{
"type": "object",
"required": [
"schemas",
"userName",
"name",
"userType"
],
"properties": {
"name": {
"type": "object",
"properties": {
"givenName": {
"type": "string",
"example": "Barbara",
"description": "Given name of the user."
},
"familyName": {
"type": "string",
"example": "Jensen",
"description": "Family name of the user."
}
}
},
"schemas": {
"type": "array",
"items": {
"enum": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"type": "string"
},
"example": [
"urn:ietf:params:scim:schemas:core:2.0:User"
],
"description": "Schema URNs."
},
"userName": {
"type": "string",
"example": "work@email.com",
"description": "User's email."
},
"userType": {
"enum": [
"client"
],
"type": "string",
"example": "client",
"description": "Type of user."
}
}
}
CreatePeopleTimeoff
{
"type": "object",
"required": [
"type",
"start_date",
"end_date",
"reason"
],
"properties": {
"type": {
"enum": [
"VACATION",
"SICK_LEAVE",
"OTHER"
],
"type": "string",
"example": "VACATION",
"description": "Time off type."
},
"reason": {
"type": "string",
"example": "Holiday",
"description": "Description for employee's time off."
},
"end_date": {
"type": "string",
"example": "2022-09-05T00:00:00.000Z",
"description": "End date of employee's time off."
},
"start_date": {
"type": "string",
"example": "2022-09-03T00:00:00.000Z",
"description": "Start date of employee's time off."
},
"attachments": {
"type": "string",
"format": "binary",
"description": "Attachments for employee's time off."
}
}
}
CreatePublicToken
{
"type": "object",
"properties": {
"scope": {
"type": "array",
"items": {
"type": "string",
"example": "contracts:read"
},
"description": "Access scopes."
}
}
}
CreatePublicTokenContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/CreatePublicToken"
}
},
"x-internal": true
}
CreateTimeoff
{
"type": "object",
"required": [
"type",
"with_multiple_dates"
],
"properties": {
"type": {
"enum": [
"VACATION",
"SICK_LEAVE",
"OTHER"
],
"type": "string",
"example": "VACATION",
"description": "Time off type."
},
"reason": {
"type": "string",
"example": "Holiday",
"description": "Description for employee's time off."
},
"end_date": {
"type": "string",
"example": "2022-09-05T00:00:00.000Z",
"description": "End date of employee's time off."
},
"start_date": {
"type": "string",
"example": "2022-09-03T00:00:00.000Z",
"description": "Start date of employee's time off."
},
"other_timeoff_name": {
"type": "string",
"example": "Birthday",
"description": "Custom name for this time off."
},
"with_multiple_dates": {
"type": "boolean",
"description": "If true, then multiple time off days were requested. You must supply a start and end date. If false, end date is ignored"
},
"is_end_date_half_day": {
"type": "boolean",
"example": false,
"description": "Is the start day a half day?"
},
"is_start_date_half_day": {
"type": "boolean",
"example": false,
"description": "Is the start day a half day?"
}
}
}
CreateTimeoffContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/CreateTimeoff"
}
},
"x-internal": true
}
CreateWebhookRequest
{
"type": "object",
"required": [
"name",
"description",
"status",
"url",
"signing_key",
"api_version",
"events"
],
"properties": {
"url": {
"type": "string",
"example": "https://mywebhook.com",
"description": "Endpoint to receive webhook."
},
"name": {
"type": "string",
"example": "My first webhook.",
"nullable": true,
"description": "Webhook subscription name."
},
"events": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"contract.created"
],
"description": "The list of events to enable for this subscription."
},
"status": {
"enum": [
"enabled",
"disabled"
],
"type": "string",
"example": "enabled",
"description": "Status of webhook."
},
"api_version": {
"type": "string",
"default": "v2",
"example": "v2",
"nullable": false,
"description": "Deel API version. Currently Deel accepts v1 or v2 version."
},
"description": {
"type": "string",
"example": "I like it very much.",
"nullable": true,
"description": "Webhook subscription description."
},
"signing_key": {
"type": "string",
"example": null,
"nullable": true,
"description": "The webhook's signing key, used to generate webhook signatures."
}
}
}
Currency
{
"type": "object",
"required": [
"code",
"name"
],
"properties": {
"code": {
"$ref": "#/components/schemas/CurrencyCodeRequired"
},
"name": {
"type": "string",
"example": "Euro",
"nullable": false,
"minLength": 1
}
},
"x-internal": true
}
CurrencyCode
{
"type": "string",
"example": "GBP",
"pattern": "^[A-Z]{3}$",
"nullable": false,
"maxLength": 3,
"minLength": 3,
"x-internal": true,
"description": "Currency code."
}
CurrencyCodeList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/CurrencyCodeRequired"
},
"x-internal": true
}
CurrencyCodeRequired
{
"type": "string",
"example": "GBP",
"pattern": "^[A-Z]{3}$",
"maxLength": 3,
"minLength": 3,
"x-internal": true
}
CurrencyList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/Currency"
},
"x-internal": true
}
CurrencyListContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"$ref": "#/components/schemas/CurrencyList"
}
},
"x-internal": true
}
DateString
{
"type": "string",
"format": "date",
"example": "1999-12-31T00:00:00.000Z",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"nullable": true,
"x-internal": true,
"description": "Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."
}
DateStringDefaultNow
{
"type": "string",
"format": "date",
"example": "1999-12-31T00:00:00.000Z",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"x-internal": true,
"description": "Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31. Defaults to current date"
}
DateStringRequired
{
"type": "string",
"format": "date",
"example": "1999-12-31T00:00:00.000Z",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"x-internal": true,
"description": "Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31."
}
DateTimeString
{
"type": "string",
"format": "date-time",
"example": "2022-05-24T09:38:46.235Z",
"nullable": true,
"x-internal": true,
"description": "Long date-time format following ISO-8601"
}
DateTimeStringRequired
{
"type": "string",
"format": "date-time",
"example": "2022-05-24T09:38:46.235Z",
"nullable": false,
"x-internal": true,
"description": "Long date-time format following ISO-8601"
}
DeelInvoice
{
"type": "object",
"required": [
"id",
"label",
"status",
"currency",
"total",
"created_at"
],
"properties": {
"id": {
"type": "string",
"example": "rhCTiRd9Mad41RwjsFWw-",
"description": "Unique identifier of the invoice."
},
"label": {
"type": "string",
"example": "INV-2023-4",
"description": "Label of the invoice."
},
"total": {
"type": "string",
"example": 1000,
"description": "Total invoice amount including Fee and VAT."
},
"status": {
"$ref": "#/components/schemas/InvoiceStatusEnum"
},
"currency": {
"$ref": "#/components/schemas/CurrencyCode"
},
"created_at": {
"$ref": "#/components/schemas/DateTimeString"
}
}
}
DeelInvoiceList
{
"type": "array",
"items": {
"$ref": "#/components/schemas/DeelInvoice"
}
}
DeelInvoiceListContainer
{
"type": "object",
"required": [
"data",
"page"
],
"properties": {
"data": {
"$ref": "#/components/schemas/DeelInvoiceList"
},
"page": {
"$ref": "#/components/schemas/PageInfoWithoutCursorNew"
}
},
"x-internal": true
}
Departments
{
"type": "object",
"nullable": false,
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "number",
"example": 25599
},
"name": {
"type": "string",
"example": "Marketing"
},
"parent": {
"type": "string",
"example": "Growth",
"nullable": true
}
}
}
DepartmentsContainer
{
"type": "object",
"required": [
"data"
],
"properties": {
"data": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Departments"
}
}
}
}
EORContractBenefits
{
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"example": "e2e09831-853d-4f56-b43f-2ec19cda7b0c",
"description": "Unique identifier of the benefit."
},
"name": {
"type": "string",
"example": "Health Insurance",
"description": "Name of the benefit."
},
"plan": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Gold",
"description": "Name of the plan."
}
}
},
"provider": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Provider name",
"description": "Name of the provider."
}
}
},
"offer_status": {
"enum": [
"Offered",
"Not offered"
],
"type": "string",
"example": "Offered",
"description": "Status of the offer."
},
"enrollment_details": {
"type": "object",
"properties": {
"plan": {
"type": "object",
"properties": {
"name": {
"type": "string",
"example": "Gold",
"description": "Name of the plan."
}
}
},
"status": {
"type": "string",
"example": "Enrolled",
"description": "Status of the enrollment."
},
"current": {
"type": "object",
"properties": {
"monthly_cost": {
"type": "string",
"example": "100",
"description": "Current monthly cost."
},
"monthly_contribution": {
"type": "string",
"example": "50",
"description": "Current monthly contribution."
}
}
},
"standard": {
"type": "object",
"properties": {
"monthly_cost": {
"type": "string",
"example": "100",
"nullable": true,
"description": "Standard monthly cost."
},
"monthly_contribution": {
"type": "string",
"example": "50",
"nullable": true,
"description": "Standard monthly contribution."
}
}
}
}
}
}
}
}