object ContractToCreateContainer_ongoing_time_based
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToCreate_ongoing_time_based"
    }
  },
  "x-internal": true
}
object 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
}
object ContractToCreateContainer_payg_milestones
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToCreate_payg_milestones"
    }
  },
  "x-internal": true
}
object ContractToCreateContainer_payg_tasks
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToCreate_payg_tasks"
    }
  },
  "x-internal": true
}
object 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"
}
object 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
}
object 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
}
object 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
}
object 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
}
object 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
}
object ContractToTerminateContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/ContractToTerminate"
    }
  },
  "x-internal": true
}
string 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"
}
string ContractTypeEnumForEstimate
{
  "enum": [
    "ongoing_time_based",
    "payg_tasks"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Type of a contract"
}
array ContractTypeEnumList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ContractTypeEnum"
  },
  "x-internal": true,
  "description": "List of contract types"
}
string ContractTypeEnumToCreate
{
  "enum": [
    "pay_as_you_go_time_based",
    "payg_tasks",
    "payg_milestones"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Type of a contract"
}
string ContractWhoReportsEnum
{
  "enum": [
    "both",
    "client",
    "contractor"
  ],
  "type": "string",
  "x-internal": true,
  "description": "Flag to indicate who is supposed to provide regular reports"
}
string ContractsSortByEnum
{
  "enum": [
    "contract_title",
    "worker_name"
  ],
  "type": "string",
  "x-internal": true
}
object 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."
}
object 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
}
object 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
}
string CountryCode
{
  "type": "string",
  "example": "US",
  "pattern": "^[A-Z]{2}$",
  "maxLength": 2,
  "minLength": 2,
  "x-internal": true,
  "description": "Country code."
}
array CountryCodeList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CountryCode"
  },
  "x-internal": true
}
string CountryCodeNulleable
{
  "type": "string",
  "example": "US",
  "pattern": "^[A-Z]{2}$",
  "nullable": true,
  "maxLength": 2,
  "minLength": 2,
  "x-internal": true,
  "description": "Country code."
}
array CountryList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Country"
  },
  "x-internal": true
}
object CountryListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CountryList"
    }
  },
  "x-internal": true
}
object CreateAdminUserResponseContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/AdminUser"
    }
  },
  "x-internal": true
}
object 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."
    }
  }
}
object 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."
    }
  }
}
object CreatePublicToken
{
  "type": "object",
  "properties": {
    "scope": {
      "type": "array",
      "items": {
        "type": "string",
        "example": "contracts:read"
      },
      "description": "Access scopes."
    }
  }
}
object CreatePublicTokenContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CreatePublicToken"
    }
  },
  "x-internal": true
}
object 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?"
    }
  }
}
object CreateTimeoffContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CreateTimeoff"
    }
  },
  "x-internal": true
}
object 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."
    }
  }
}
object Currency
{
  "type": "object",
  "required": [
    "code",
    "name"
  ],
  "properties": {
    "code": {
      "$ref": "#/components/schemas/CurrencyCodeRequired"
    },
    "name": {
      "type": "string",
      "example": "Euro",
      "nullable": false,
      "minLength": 1
    }
  },
  "x-internal": true
}
string CurrencyCode
{
  "type": "string",
  "example": "GBP",
  "pattern": "^[A-Z]{3}$",
  "nullable": false,
  "maxLength": 3,
  "minLength": 3,
  "x-internal": true,
  "description": "Currency code."
}
array CurrencyCodeList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/CurrencyCodeRequired"
  },
  "x-internal": true
}
string CurrencyCodeRequired
{
  "type": "string",
  "example": "GBP",
  "pattern": "^[A-Z]{3}$",
  "maxLength": 3,
  "minLength": 3,
  "x-internal": true
}
array CurrencyList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/Currency"
  },
  "x-internal": true
}
object CurrencyListContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/CurrencyList"
    }
  },
  "x-internal": true
}
string 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."
}
string 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"
}
string 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."
}
string 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"
}
string 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"
}
object 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"
    }
  }
}
array DeelInvoiceList
{
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/DeelInvoice"
  }
}
object DeelInvoiceListContainer
{
  "type": "object",
  "required": [
    "data",
    "page"
  ],
  "properties": {
    "data": {
      "$ref": "#/components/schemas/DeelInvoiceList"
    },
    "page": {
      "$ref": "#/components/schemas/PageInfoWithoutCursorNew"
    }
  },
  "x-internal": true
}
object 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
    }
  }
}
object DepartmentsContainer
{
  "type": "object",
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/Departments"
      }
    }
  }
}
array 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."
              }
            }
          }
        }
      }
    }
  }
}
Load more schemas