# Create a new contract

POST https://api.letsdeel.com/rest/v2/contracts
Content-Type: application/json

Create a new Deel contract.
 **Token scopes**: `contracts:write`

Reference: https://developer.deel.com/api/endpoints/contracts/create-ic-contract

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: Deel HRIS SCIM API
  version: 1.0.0
paths:
  /contracts:
    post:
      operationId: create-ic-contract
      summary: Create a new contract
      description: |-
        Create a new Deel contract.
         **Token scopes**: `contracts:write`
      tags:
        - subpackage_contracts
      parameters:
        - name: Authorization
          in: header
          description: >
            ## Authentication

            The Deel API uses bearer tokens to authenticate requests. All API
            calls must be made over HTTPS — calls over plain HTTP or without
            authentication will fail.


            ```curl

            curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
              -H 'Authorization: Bearer YOUR-TOKEN-HERE'
            ```


            [Learn more about authentication](/api/authentication)
          required: true
          schema:
            type: string
      responses:
        '201':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/contracts_createICContract_Response_201'
        '400':
          description: Bad Request - Validation error or invalid parameters
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/CreateANewContract-v2026-01-01RequestBadRequestError
        '401':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '403':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '404':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
        '500':
          description: Operation failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiErrorContainer'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: >-
                    #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData
              required:
                - data
servers:
  - url: https://api.letsdeel.com/rest/v2
  - url: https://api-staging.letsdeel.com/rest/v2
components:
  schemas:
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Meta:
      type: object
      properties:
        is_main_income:
          type: boolean
          description: >-
            Flag to indicate if the contract is the main income for the
            contractor.
        documents_required:
          type: boolean
          description: >-
            Require the contractor to upload necessary compliance documents as
            per their country’s labor laws.
      required:
        - documents_required
      description: Additional custom info about a contract
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Meta
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeamId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeamId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeam:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeamId
          description: Unique identifier of this resource.
      required:
        - id
      description: >-
        Choose the Deel team for this contract. Use teams endpoint to retrieve a
        list of teams in your organization.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeam
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntityId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntityId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntity:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntityId
          description: Unique identifier of this resource.
      required:
        - id
      description: >-
        Choose the Deel legal entity for this contract. Use legal entity
        endpoint to retrieve a list of legal entities in your organization.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntity
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Client:
      type: object
      properties:
        team:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientTeam
          description: >-
            Choose the Deel team for this contract. Use teams endpoint to
            retrieve a list of teams in your organization.
        legal_entity:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0ClientLegalEntity
          description: >-
            Choose the Deel legal entity for this contract. Use legal entity
            endpoint to retrieve a list of legal entities in your organization.
      required:
        - team
        - legal_entity
      description: Client details for the contract, including the legal entity and team.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Client
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Worker:
      type: object
      properties:
        last_name:
          type:
            - string
            - 'null'
          description: Worker's last name
        first_name:
          type:
            - string
            - 'null'
          description: Worker's first name
        expected_email:
          type:
            - string
            - 'null'
          format: email
          description: Worker's email address.
      required:
        - first_name
        - expected_email
      description: Worker properties
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Worker
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitleId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitleId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitle:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitleId
          description: Unique identifier of this resource.
        name:
          type:
            - string
            - 'null'
          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-defined job title using the Id retrieved in job-titles endpoint.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitle
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0SeniorityId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0SeniorityId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Seniority:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0SeniorityId
          description: Unique identifier of this resource.
      description: >-
        Job seniority level. Please use the seniority levels endpoint to
        retrieve the list of seniority levels.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Seniority
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0WhoReports:
      type: string
      enum:
        - both
        - client
        - contractor
      description: Flag to indicate who is supposed to provide regular reports
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0WhoReports
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Type:
      type: string
      enum:
        - pay_as_you_go_time_based
      description: Type of contract
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Type
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsFrequency:
      type: string
      enum:
        - weekly
        - monthly
        - biweekly
        - semimonthly
        - calendar-month
      description: Scale of the invoice cycle.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsFrequency
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsCycleEndType:
      type: string
      enum:
        - DAY_OF_WEEK
        - DAY_OF_LAST_WEEK
        - DAY_OF_MONTH
      description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsCycleEndType
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsPaymentDueType:
      type: string
      enum:
        - REGULAR
        - WITHIN_MONTH
        - AFTER_MONTH
        - BEFORE_CYCLE_END
      default: REGULAR
      description: >-
        Type of payment due. If the payment is due on the last day of month,
        enter 'WITHIN_MONTH'. If the payment is due some days after the end of
        the month, enter 'AFTER_MONTH'. If the payment is due before the end of
        the invoice cycle, enter 'BEFORE_CYCLE_END'.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsPaymentDueType
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsScale:
      type: string
      enum:
        - hourly
        - daily
        - weekly
        - monthly
        - biweekly
        - semimonthly
        - custom
      description: >-
        Defines the scale at which the amount is paid. For example, enter
        'hourly' to define the amount per hour. This field can be excluded when
        creating a Pay-as-you-go task-based or Milestone contracts.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsScale
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetails:
      type: object
      properties:
        amount:
          type: number
          format: double
          description: >-
            Amount to be paid. This field can be excluded when creating a
            Pay-as-you-go task-based or Milestone contracts.
        cycle_end:
          type: number
          format: double
          description: Date invoice cycle ends.
        frequency:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsFrequency
          description: Scale of the invoice cycle.
        currency_code:
          type: string
          description: Currency code.
        first_payment:
          type: number
          format: double
          default: 0
          description: First payment amount.
        notice_period:
          type: number
          format: double
          default: 10
          description: Days before to notice the termination of contract for either party.
        cycle_end_type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsCycleEndType
          description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31.
        payment_due_days:
          type: number
          format: double
          description: Number of days to pay the invoice.
        payment_due_type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsPaymentDueType
          description: >-
            Type of payment due. If the payment is due on the last day of month,
            enter 'WITHIN_MONTH'. If the payment is due some days after the end
            of the month, enter 'AFTER_MONTH'. If the payment is due before the
            end of the invoice cycle, enter 'BEFORE_CYCLE_END'.
        first_payment_date:
          type:
            - string
            - 'null'
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        pay_before_weekends:
          type: boolean
          description: If the payment due is on a weekend, pay on Friday.
        scale:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetailsScale
          description: >-
            Defines the scale at which the amount is paid. For example, enter
            'hourly' to define the amount per hour. This field can be excluded
            when creating a Pay-as-you-go task-based or Milestone contracts.
      required:
        - amount
        - cycle_end
        - frequency
        - currency_code
        - cycle_end_type
        - payment_due_days
        - payment_due_type
        - scale
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetails
    ContractsPostRequestBodyContentApplicationJsonSchemaData0:
      type: object
      properties:
        meta:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Meta
          description: Additional custom info about a contract
        title:
          type: string
          description: The title of the contract.
        client:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Client
          description: >-
            Client details for the contract, including the legal entity and
            team.
        worker:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Worker
            - type: 'null'
          description: Worker properties
        job_title:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0JobTitle
          description: >-
            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.
        seniority:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Seniority
            - type: 'null'
          description: >-
            Job seniority level. Please use the seniority levels endpoint to
            retrieve the list of seniority levels.
        state_code:
          type:
            - string
            - 'null'
          description: >-
            The state or province code. Use country lookup endpoint to retrieve
            state codes.
        external_id:
          type:
            - string
            - 'null'
          description: External Id.
        who_reports:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0WhoReports
          description: Flag to indicate who is supposed to provide regular reports
        country_code:
          type: string
          description: Country code.
        notice_period:
          type: number
          format: double
          default: 10
          description: Days before to notice the termination of contract for either party.
        scope_of_work:
          type:
            - string
            - 'null'
          description: Describe the work to be performed.
        special_clause:
          type:
            - string
            - 'null'
          description: Enter any special clause you may have.
        scope_of_work_id:
          type:
            - string
            - 'null'
          format: uuid
          description: Existing scope of work public id
        termination_date:
          type:
            - string
            - 'null'
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        contract_template_id:
          type:
            - string
            - 'null'
          description: Contract Template Id.
        type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0Type
          description: Type of contract
        start_date:
          type: string
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        compensation_details:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf0CompensationDetails
          description: Compensation and invoicing configuration for the contract.
      required:
        - meta
        - title
        - client
        - job_title
        - type
        - start_date
        - compensation_details
      description: Details of contract to create
      title: ContractsPostRequestBodyContentApplicationJsonSchemaData0
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Meta:
      type: object
      properties:
        is_main_income:
          type: boolean
          description: >-
            Flag to indicate if the contract is the main income for the
            contractor.
        documents_required:
          type: boolean
          description: >-
            Require the contractor to upload necessary compliance documents as
            per their country’s labor laws.
      required:
        - documents_required
      description: Additional custom info about a contract
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Meta
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeamId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeamId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeam:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeamId
          description: Unique identifier of this resource.
      required:
        - id
      description: >-
        Choose the Deel team for this contract. Use teams endpoint to retrieve a
        list of teams in your organization.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeam
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntityId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntityId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntity:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntityId
          description: Unique identifier of this resource.
      required:
        - id
      description: >-
        Choose the Deel legal entity for this contract. Use legal entity
        endpoint to retrieve a list of legal entities in your organization.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntity
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Client:
      type: object
      properties:
        team:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientTeam
          description: >-
            Choose the Deel team for this contract. Use teams endpoint to
            retrieve a list of teams in your organization.
        legal_entity:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1ClientLegalEntity
          description: >-
            Choose the Deel legal entity for this contract. Use legal entity
            endpoint to retrieve a list of legal entities in your organization.
      required:
        - team
        - legal_entity
      description: Client details for the contract, including the legal entity and team.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Client
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Worker:
      type: object
      properties:
        last_name:
          type:
            - string
            - 'null'
          description: Worker's last name
        first_name:
          type:
            - string
            - 'null'
          description: Worker's first name
        expected_email:
          type:
            - string
            - 'null'
          format: email
          description: Worker's email address.
      required:
        - first_name
        - expected_email
      description: Worker properties
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Worker
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitleId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitleId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitle:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitleId
          description: Unique identifier of this resource.
        name:
          type:
            - string
            - 'null'
          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-defined job title using the Id retrieved in job-titles endpoint.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitle
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1SeniorityId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1SeniorityId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Seniority:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1SeniorityId
          description: Unique identifier of this resource.
      description: >-
        Job seniority level. Please use the seniority levels endpoint to
        retrieve the list of seniority levels.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Seniority
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1WhoReports:
      type: string
      enum:
        - both
        - client
        - contractor
      description: Flag to indicate who is supposed to provide regular reports
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1WhoReports
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Type:
      type: string
      enum:
        - payg_tasks
      description: Type of contract
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Type
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsFrequency:
      type: string
      enum:
        - weekly
        - monthly
        - biweekly
        - semimonthly
        - calendar-month
      description: Scale of the invoice cycle.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsFrequency
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsCycleEndType:
      type: string
      enum:
        - DAY_OF_WEEK
        - DAY_OF_LAST_WEEK
        - DAY_OF_MONTH
      description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsCycleEndType
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsPaymentDueType:
      type: string
      enum:
        - REGULAR
        - WITHIN_MONTH
        - AFTER_MONTH
        - BEFORE_CYCLE_END
      default: REGULAR
      description: >-
        Type of payment due. If the payment is due on the last day of month,
        enter 'WITHIN_MONTH'. If the payment is due some days after the end of
        the month, enter 'AFTER_MONTH'. If the payment is due before the end of
        the invoice cycle, enter 'BEFORE_CYCLE_END'.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsPaymentDueType
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetails:
      type: object
      properties:
        amount:
          type: number
          format: double
          description: >-
            Amount to be paid. This field can be excluded when creating a
            Pay-as-you-go task-based or Milestone contracts.
        cycle_end:
          type: number
          format: double
          description: Date invoice cycle ends.
        frequency:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsFrequency
          description: Scale of the invoice cycle.
        currency_code:
          type: string
          description: Currency code.
        first_payment:
          type: number
          format: double
          default: 0
          description: First payment amount.
        notice_period:
          type: number
          format: double
          default: 10
          description: Days before to notice the termination of contract for either party.
        cycle_end_type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsCycleEndType
          description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31.
        payment_due_days:
          type: number
          format: double
          description: Number of days to pay the invoice.
        payment_due_type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetailsPaymentDueType
          description: >-
            Type of payment due. If the payment is due on the last day of month,
            enter 'WITHIN_MONTH'. If the payment is due some days after the end
            of the month, enter 'AFTER_MONTH'. If the payment is due before the
            end of the invoice cycle, enter 'BEFORE_CYCLE_END'.
        first_payment_date:
          type:
            - string
            - 'null'
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        pay_before_weekends:
          type: boolean
          description: If the payment due is on a weekend, pay on Friday.
      required:
        - cycle_end
        - frequency
        - currency_code
        - cycle_end_type
        - payment_due_days
        - payment_due_type
      description: Compensation and invoicing configuration for the contract.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetails
    ContractsPostRequestBodyContentApplicationJsonSchemaData1:
      type: object
      properties:
        meta:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Meta
          description: Additional custom info about a contract
        title:
          type: string
          description: The title of the contract.
        client:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Client
          description: >-
            Client details for the contract, including the legal entity and
            team.
        worker:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Worker
            - type: 'null'
          description: Worker properties
        job_title:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1JobTitle
          description: >-
            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.
        seniority:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Seniority
            - type: 'null'
          description: >-
            Job seniority level. Please use the seniority levels endpoint to
            retrieve the list of seniority levels.
        state_code:
          type:
            - string
            - 'null'
          description: >-
            The state or province code. Use country lookup endpoint to retrieve
            state codes.
        external_id:
          type:
            - string
            - 'null'
          description: External Id.
        who_reports:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1WhoReports
          description: Flag to indicate who is supposed to provide regular reports
        country_code:
          type: string
          description: Country code.
        notice_period:
          type: number
          format: double
          default: 10
          description: Days before to notice the termination of contract for either party.
        scope_of_work:
          type:
            - string
            - 'null'
          description: Describe the work to be performed.
        special_clause:
          type:
            - string
            - 'null'
          description: Enter any special clause you may have.
        scope_of_work_id:
          type:
            - string
            - 'null'
          format: uuid
          description: Existing scope of work public id
        termination_date:
          type:
            - string
            - 'null'
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        contract_template_id:
          type:
            - string
            - 'null'
          description: Contract Template Id.
        type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1Type
          description: Type of contract
        start_date:
          type: string
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        compensation_details:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf1CompensationDetails
          description: Compensation and invoicing configuration for the contract.
      required:
        - meta
        - title
        - client
        - job_title
        - type
        - start_date
        - compensation_details
      description: Details of contract to create
      title: ContractsPostRequestBodyContentApplicationJsonSchemaData1
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Meta:
      type: object
      properties:
        is_main_income:
          type: boolean
          description: >-
            Flag to indicate if the contract is the main income for the
            contractor.
        documents_required:
          type: boolean
          description: >-
            Require the contractor to upload necessary compliance documents as
            per their country’s labor laws.
      required:
        - documents_required
      description: Additional custom info about a contract
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Meta
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeamId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeamId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeam:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeamId
          description: Unique identifier of this resource.
      required:
        - id
      description: >-
        Choose the Deel team for this contract. Use teams endpoint to retrieve a
        list of teams in your organization.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeam
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntityId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntityId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntity:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntityId
          description: Unique identifier of this resource.
      required:
        - id
      description: >-
        Choose the Deel legal entity for this contract. Use legal entity
        endpoint to retrieve a list of legal entities in your organization.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntity
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Client:
      type: object
      properties:
        team:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientTeam
          description: >-
            Choose the Deel team for this contract. Use teams endpoint to
            retrieve a list of teams in your organization.
        legal_entity:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2ClientLegalEntity
          description: >-
            Choose the Deel legal entity for this contract. Use legal entity
            endpoint to retrieve a list of legal entities in your organization.
      required:
        - team
        - legal_entity
      description: Client details for the contract, including the legal entity and team.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Client
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Worker:
      type: object
      properties:
        last_name:
          type:
            - string
            - 'null'
          description: Worker's last name
        first_name:
          type:
            - string
            - 'null'
          description: Worker's first name
        expected_email:
          type:
            - string
            - 'null'
          format: email
          description: Worker's email address.
      required:
        - first_name
        - expected_email
      description: Worker properties
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Worker
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitleId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitleId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitle:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitleId
          description: Unique identifier of this resource.
        name:
          type:
            - string
            - 'null'
          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-defined job title using the Id retrieved in job-titles endpoint.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitle
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2SeniorityId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2SeniorityId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Seniority:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2SeniorityId
          description: Unique identifier of this resource.
      description: >-
        Job seniority level. Please use the seniority levels endpoint to
        retrieve the list of seniority levels.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Seniority
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2WhoReports:
      type: string
      enum:
        - both
        - client
        - contractor
      description: Flag to indicate who is supposed to provide regular reports
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2WhoReports
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Type:
      type: string
      enum:
        - payg_milestones
      description: Type of contract
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Type
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsFrequency:
      type: string
      enum:
        - weekly
        - monthly
        - biweekly
        - semimonthly
        - calendar-month
      description: Scale of the invoice cycle.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsFrequency
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsCycleEndType:
      type: string
      enum:
        - DAY_OF_WEEK
        - DAY_OF_LAST_WEEK
        - DAY_OF_MONTH
      description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsCycleEndType
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsPaymentDueType:
      type: string
      enum:
        - REGULAR
        - WITHIN_MONTH
        - AFTER_MONTH
        - BEFORE_CYCLE_END
      default: REGULAR
      description: >-
        Type of payment due. If the payment is due on the last day of month,
        enter 'WITHIN_MONTH'. If the payment is due some days after the end of
        the month, enter 'AFTER_MONTH'. If the payment is due before the end of
        the invoice cycle, enter 'BEFORE_CYCLE_END'.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsPaymentDueType
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetails:
      type: object
      properties:
        amount:
          type: number
          format: double
          description: >-
            Amount to be paid. This field can be excluded when creating a
            Pay-as-you-go task-based or Milestone contracts.
        cycle_end:
          type: number
          format: double
          description: Date invoice cycle ends.
        frequency:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsFrequency
          description: Scale of the invoice cycle.
        currency_code:
          type: string
          description: Currency code.
        first_payment:
          type: number
          format: double
          default: 0
          description: First payment amount.
        notice_period:
          type: number
          format: double
          default: 10
          description: Days before to notice the termination of contract for either party.
        cycle_end_type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsCycleEndType
          description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31.
        payment_due_days:
          type: number
          format: double
          description: Number of days to pay the invoice.
        payment_due_type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetailsPaymentDueType
          description: >-
            Type of payment due. If the payment is due on the last day of month,
            enter 'WITHIN_MONTH'. If the payment is due some days after the end
            of the month, enter 'AFTER_MONTH'. If the payment is due before the
            end of the invoice cycle, enter 'BEFORE_CYCLE_END'.
        first_payment_date:
          type:
            - string
            - 'null'
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        pay_before_weekends:
          type: boolean
          description: If the payment due is on a weekend, pay on Friday.
      required:
        - cycle_end
        - frequency
        - currency_code
        - cycle_end_type
        - payment_due_days
        - payment_due_type
      description: Compensation and invoicing configuration for the contract.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetails
    ContractsPostRequestBodyContentApplicationJsonSchemaData2:
      type: object
      properties:
        meta:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Meta
          description: Additional custom info about a contract
        title:
          type: string
          description: The title of the contract.
        client:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Client
          description: >-
            Client details for the contract, including the legal entity and
            team.
        worker:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Worker
            - type: 'null'
          description: Worker properties
        job_title:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2JobTitle
          description: >-
            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.
        seniority:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Seniority
            - type: 'null'
          description: >-
            Job seniority level. Please use the seniority levels endpoint to
            retrieve the list of seniority levels.
        state_code:
          type:
            - string
            - 'null'
          description: >-
            The state or province code. Use country lookup endpoint to retrieve
            state codes.
        external_id:
          type:
            - string
            - 'null'
          description: External Id.
        who_reports:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2WhoReports
          description: Flag to indicate who is supposed to provide regular reports
        country_code:
          type: string
          description: Country code.
        notice_period:
          type: number
          format: double
          default: 10
          description: Days before to notice the termination of contract for either party.
        scope_of_work:
          type:
            - string
            - 'null'
          description: Describe the work to be performed.
        special_clause:
          type:
            - string
            - 'null'
          description: Enter any special clause you may have.
        scope_of_work_id:
          type:
            - string
            - 'null'
          format: uuid
          description: Existing scope of work public id
        termination_date:
          type:
            - string
            - 'null'
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        contract_template_id:
          type:
            - string
            - 'null'
          description: Contract Template Id.
        type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2Type
          description: Type of contract
        start_date:
          type:
            - string
            - 'null'
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        compensation_details:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf2CompensationDetails
          description: Compensation and invoicing configuration for the contract.
      required:
        - meta
        - title
        - client
        - job_title
        - type
        - compensation_details
      description: Details of contract to create
      title: ContractsPostRequestBodyContentApplicationJsonSchemaData2
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Meta:
      type: object
      properties:
        is_main_income:
          type: boolean
          description: >-
            Flag to indicate if the contract is the main income for the
            contractor.
        documents_required:
          type: boolean
          description: >-
            Require the contractor to upload necessary compliance documents as
            per their country’s labor laws.
      required:
        - documents_required
      description: Additional custom info about a contract
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Meta
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeamId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeamId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeam:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeamId
          description: Unique identifier of this resource.
      required:
        - id
      description: >-
        Choose the Deel team for this contract. Use teams endpoint to retrieve a
        list of teams in your organization.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeam
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntityId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntityId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntity:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntityId
          description: Unique identifier of this resource.
      required:
        - id
      description: >-
        Choose the Deel legal entity for this contract. Use legal entity
        endpoint to retrieve a list of legal entities in your organization.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntity
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Client:
      type: object
      properties:
        team:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientTeam
          description: >-
            Choose the Deel team for this contract. Use teams endpoint to
            retrieve a list of teams in your organization.
        legal_entity:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3ClientLegalEntity
          description: >-
            Choose the Deel legal entity for this contract. Use legal entity
            endpoint to retrieve a list of legal entities in your organization.
      required:
        - team
        - legal_entity
      description: Client details for the contract, including the legal entity and team.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Client
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Worker:
      type: object
      properties:
        last_name:
          type:
            - string
            - 'null'
          description: Worker's last name
        first_name:
          type:
            - string
            - 'null'
          description: Worker's first name
        expected_email:
          type:
            - string
            - 'null'
          format: email
          description: Worker's email address.
      required:
        - first_name
        - expected_email
      description: Worker properties
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Worker
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitleId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitleId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitle:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitleId
          description: Unique identifier of this resource.
        name:
          type:
            - string
            - 'null'
          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-defined job title using the Id retrieved in job-titles endpoint.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitle
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3SeniorityId:
      oneOf:
        - type: string
        - type: number
          format: double
      description: Unique identifier of this resource.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3SeniorityId
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Seniority:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3SeniorityId
          description: Unique identifier of this resource.
      description: >-
        Job seniority level. Please use the seniority levels endpoint to
        retrieve the list of seniority levels.
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Seniority
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3WhoReports:
      type: string
      enum:
        - both
        - client
        - contractor
      description: Flag to indicate who is supposed to provide regular reports
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3WhoReports
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Type:
      type: string
      enum:
        - ongoing_time_based
      description: Type of contract
      title: ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Type
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsFrequency:
      type: string
      enum:
        - weekly
        - monthly
        - biweekly
        - semimonthly
        - calendar-month
      description: Scale of the invoice cycle.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsFrequency
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsCycleEndType:
      type: string
      enum:
        - DAY_OF_WEEK
        - DAY_OF_LAST_WEEK
        - DAY_OF_MONTH
      description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsCycleEndType
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsPaymentDueType:
      type: string
      enum:
        - REGULAR
        - WITHIN_MONTH
        - AFTER_MONTH
        - BEFORE_CYCLE_END
      default: REGULAR
      description: >-
        Type of payment due. If the payment is due on the last day of month,
        enter 'WITHIN_MONTH'. If the payment is due some days after the end of
        the month, enter 'AFTER_MONTH'. If the payment is due before the end of
        the invoice cycle, enter 'BEFORE_CYCLE_END'.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsPaymentDueType
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsScale:
      type: string
      enum:
        - hourly
        - daily
        - weekly
        - monthly
        - biweekly
        - semimonthly
        - custom
      description: >-
        Defines the scale at which the amount is paid. For example, enter
        'hourly' to define the amount per hour. This field can be excluded when
        creating a Pay-as-you-go task-based or Milestone contracts.
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsScale
    ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetails:
      type: object
      properties:
        amount:
          type: number
          format: double
          description: >-
            Amount to be paid. This field can be excluded when creating a
            Pay-as-you-go task-based or Milestone contracts.
        cycle_end:
          type: number
          format: double
          description: Date invoice cycle ends.
        frequency:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsFrequency
          description: Scale of the invoice cycle.
        currency_code:
          type: string
          description: Currency code.
        first_payment:
          type: number
          format: double
          default: 0
          description: First payment amount.
        notice_period:
          type: number
          format: double
          default: 10
          description: Days before to notice the termination of contract for either party.
        cycle_end_type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsCycleEndType
          description: Cycle end can be weekly 1-7 (Monday = 1) or monthly 1-31.
        payment_due_days:
          type: number
          format: double
          description: Number of days to pay the invoice.
        payment_due_type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsPaymentDueType
          description: >-
            Type of payment due. If the payment is due on the last day of month,
            enter 'WITHIN_MONTH'. If the payment is due some days after the end
            of the month, enter 'AFTER_MONTH'. If the payment is due before the
            end of the invoice cycle, enter 'BEFORE_CYCLE_END'.
        first_payment_date:
          type:
            - string
            - 'null'
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        pay_before_weekends:
          type: boolean
          description: If the payment due is on a weekend, pay on Friday.
        scale:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetailsScale
          description: >-
            Defines the scale at which the amount is paid. For example, enter
            'hourly' to define the amount per hour. This field can be excluded
            when creating a Pay-as-you-go task-based or Milestone contracts.
      required:
        - amount
        - cycle_end
        - frequency
        - currency_code
        - cycle_end_type
        - payment_due_days
        - payment_due_type
        - scale
      title: >-
        ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetails
    ContractsPostRequestBodyContentApplicationJsonSchemaData3:
      type: object
      properties:
        meta:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Meta
          description: Additional custom info about a contract
        title:
          type: string
          description: The title of the contract.
        client:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Client
          description: >-
            Client details for the contract, including the legal entity and
            team.
        worker:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Worker
            - type: 'null'
          description: Worker properties
        job_title:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3JobTitle
          description: >-
            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.
        seniority:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Seniority
            - type: 'null'
          description: >-
            Job seniority level. Please use the seniority levels endpoint to
            retrieve the list of seniority levels.
        state_code:
          type:
            - string
            - 'null'
          description: >-
            The state or province code. Use country lookup endpoint to retrieve
            state codes.
        external_id:
          type:
            - string
            - 'null'
          description: External Id.
        who_reports:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3WhoReports
          description: Flag to indicate who is supposed to provide regular reports
        country_code:
          type: string
          description: Country code.
        notice_period:
          type: number
          format: double
          default: 10
          description: Days before to notice the termination of contract for either party.
        scope_of_work:
          type:
            - string
            - 'null'
          description: Describe the work to be performed.
        special_clause:
          type:
            - string
            - 'null'
          description: Enter any special clause you may have.
        scope_of_work_id:
          type:
            - string
            - 'null'
          format: uuid
          description: Existing scope of work public id
        termination_date:
          type:
            - string
            - 'null'
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        contract_template_id:
          type:
            - string
            - 'null'
          description: Contract Template Id.
        type:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3Type
          description: Type of contract
        start_date:
          type: string
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        compensation_details:
          $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaDataOneOf3CompensationDetails
          description: Compensation and invoicing configuration for the contract.
      required:
        - meta
        - title
        - client
        - job_title
        - type
        - start_date
        - compensation_details
      description: Details of contract to create
      title: ContractsPostRequestBodyContentApplicationJsonSchemaData3
    ContractsPostRequestBodyContentApplicationJsonSchemaData:
      oneOf:
        - $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData0
        - $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData1
        - $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData2
        - $ref: >-
            #/components/schemas/ContractsPostRequestBodyContentApplicationJsonSchemaData3
      title: ContractsPostRequestBodyContentApplicationJsonSchemaData
    ContractsPostResponsesContentApplicationJsonSchemaDataType:
      type: string
      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
      description: Type of a contract
      title: ContractsPostResponsesContentApplicationJsonSchemaDataType
    ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBenefitsItems:
      type: object
      properties:
        fee:
          type: number
          format: double
          description: Fee in local currency
        name:
          type: string
          description: Benefit's name
        plan:
          type: string
          description: Benefit's plan
        price:
          type: number
          format: double
          description: Price in local currency
        fee_usd:
          type: number
          format: double
          description: Fee in USD
        currency:
          type: string
          description: Currency code.
        price_usd:
          type: number
          format: double
          description: Price in USD
      title: ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBenefitsItems
    ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthlyCostsItems:
      type: object
      properties:
        name:
          type: string
          description: Cost's name
        total:
          type: number
          format: double
          description: Total cost in local currency
        currency:
          type: string
          description: Currency code.
        total_usd:
          type: number
          format: double
          description: Total cost in USD
      title: >-
        ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthlyCostsItems
    ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthly:
      type: object
      properties:
        costs:
          type: array
          items:
            $ref: >-
              #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthlyCostsItems
          description: List of individual monthly cost line items included in the quote.
        total:
          type: number
          format: double
          description: Total costs in local currency
        total_usd:
          type: number
          format: double
          description: Total costs in USD
      description: Monthly cost breakdown for the quote.
      title: >-
        ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthly
    ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCosts:
      type: object
      properties:
        monthly:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCostsMonthly
          description: Monthly cost breakdown for the quote.
      description: >-
        Cost breakdown for the quote, grouped by billing cadence (e.g.,
        monthly).
      title: >-
        ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCosts
    ContractsPostResponsesContentApplicationJsonSchemaDataQuote:
      type: object
      properties:
        benefits:
          type: array
          items:
            $ref: >-
              #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBenefitsItems
          description: Array of benefits
        currency:
          type: string
          description: Currency code.
        cba_total:
          type: number
          format: double
          description: Total CBA in local currency
        created_at:
          type:
            - string
            - 'null'
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        updated_at:
          type:
            - string
            - 'null'
          format: date
          description: 'Short date in format ISO-8601 (YYYY-MM-DD). For example: 2022-12-31.'
        salary_total:
          type: number
          format: double
          description: Total salary in local currency
        annual_salary:
          type: number
          format: double
          description: Annual Salary in local currency
        cba_total_usd:
          type: number
          format: double
          description: Total CBA in USD
        breakdown_costs:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuoteBreakdownCosts
          description: >-
            Cost breakdown for the quote, grouped by billing cadence (e.g.,
            monthly).
        salary_total_usd:
          type: number
          format: double
          description: Total salary in USD
        gross_salary_total:
          type: number
          format: double
          description: Total gross salary in local currency
        mobility_fee_total:
          type: number
          format: double
          description: Total mobility fee in local currency
        monthly_cost_total:
          type: number
          format: double
          description: Total monthly cost in local currency
        platform_fee_total:
          type: number
          format: double
          description: Total platform fee in local currency
        employer_cost_total:
          type: number
          format: double
          description: Total employer cost in local currency
        gross_salary_total_usd:
          type: number
          format: double
          description: Total gross salary in USD
        mobility_fee_total_usd:
          type: number
          format: double
          description: Total mobility fee in USD
        monthly_cost_total_usd:
          type: number
          format: double
          description: Total monthly cost in USD
        platform_fee_total_usd:
          type: number
          format: double
          description: Total platform fee in USD
        employer_cost_total_usd:
          type: number
          format: double
          description: Total employer cost in USD
        severance_accrual_total:
          type: number
          format: double
          description: Total severance accrual in local currency
        recurring_allowance_total:
          type: number
          format: double
          description: Total recurring allowance in local currency
        severance_accrual_total_usd:
          type: number
          format: double
          description: Total severance accrual in USD
        recurring_allowance_total_usd:
          type: number
          format: double
          description: Total recurring allowance in USD
      description: EOR quote approved by Deel
      title: ContractsPostResponsesContentApplicationJsonSchemaDataQuote
    ContractsPostResponsesContentApplicationJsonSchemaDataClientTeam:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of this resource.
        name:
          type: string
          description: Name of a team
      required:
        - id
        - name
      description: Team information for the client organization.
      title: ContractsPostResponsesContentApplicationJsonSchemaDataClientTeam
    ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntityType:
      type: string
      enum:
        - individual
        - company
      description: Type of a legal entity
      title: >-
        ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntityType
    ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntity:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of this resource.
        name:
          type: string
          description: Name of a legal entity
        type:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntityType
          description: Type of a legal entity
        email:
          type:
            - string
            - 'null'
          description: User's email address.
        subtype:
          type: string
          description: Subtype of a legal entity
        vat_number:
          type: string
          description: VAT number of a legal entity
        registration_number:
          type: string
          description: Registration number of a legal entity
      required:
        - id
        - name
        - type
        - email
        - subtype
        - vat_number
        - registration_number
      description: Legal entity information for the client organization.
      title: ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntity
    ContractsPostResponsesContentApplicationJsonSchemaDataClient:
      type: object
      properties:
        id:
          type: string
          description: Unique identifier of this resource.
        team:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataClientTeam
          description: Team information for the client organization.
        email:
          type:
            - string
            - 'null'
          format: email
          description: User's email address.
        full_name:
          type: string
          description: User's full name.
        legal_entity:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataClientLegalEntity
            - type: 'null'
          description: Legal entity information for the client organization.
      required:
        - team
        - legal_entity
      description: Client details associated with the contract.
      title: ContractsPostResponsesContentApplicationJsonSchemaDataClient
    ContractsPostResponsesContentApplicationJsonSchemaDataStatus:
      type: string
      enum:
        - 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
      description: Status of a contract in Deel workflow
      title: ContractsPostResponsesContentApplicationJsonSchemaDataStatus
    ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntityType:
      type: string
      enum:
        - individual
        - company
      description: Type of a legal entity
      title: >-
        ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntityType
    ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntity:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntityType
          description: Type of a legal entity
        personal_name:
          type: string
          description: Name of a legal entity
        registration_number:
          type: string
          description: Registration number of a legal entity
      required:
        - type
        - personal_name
        - registration_number
      description: Worker legal entity information, if applicable.
      title: ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntity
    ContractsPostResponsesContentApplicationJsonSchemaDataWorkerAlternateEmailItems:
      type: object
      properties:
        email:
          type:
            - string
            - 'null'
          format: email
          description: User's email address.
        isVerified:
          type: boolean
          description: True if email has been verified
      required:
        - email
        - isVerified
      title: >-
        ContractsPostResponsesContentApplicationJsonSchemaDataWorkerAlternateEmailItems
    ContractsPostResponsesContentApplicationJsonSchemaDataWorker:
      type: object
      properties:
        id:
          type:
            - string
            - 'null'
          description: A unique identifier for this resource.
        email:
          type:
            - string
            - 'null'
          format: email
          description: User's email address.
        image:
          type: string
          format: url
          description: URL to worker's image
        country:
          type:
            - string
            - 'null'
          description: Worker's country (location not nationality)
        full_name:
          type: string
          description: Worker's full name.
        last_name:
          type:
            - string
            - 'null'
          description: Worker's last name
        first_name:
          type:
            - string
            - 'null'
          description: Worker's first name
        nationality:
          type:
            - string
            - 'null'
          description: Worker's nationality.
        legal_entity:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWorkerLegalEntity
          description: Worker legal entity information, if applicable.
        date_of_birth:
          type:
            - string
            - 'null'
          format: date-time
          description: Long date-time format following ISO-8601
        expected_email:
          type:
            - string
            - 'null'
          format: email
          description: Worker's email address.
        alternate_email:
          type: array
          items:
            $ref: >-
              #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWorkerAlternateEmailItems
          description: List of alternate email addresses.
      description: Worker details associated with the contract.
      title: ContractsPostResponsesContentApplicationJsonSchemaDataWorker
    ContractsPostResponsesContentApplicationJsonSchemaDataSeniority:
      type: object
      properties:
        id:
          type: number
          format: double
          description: Unique identifier of this resource.
        name:
          type: string
          description: Name of seniority level e.g. Mid (Individual Contributor Level 2)
        level:
          type:
            - number
            - 'null'
          format: double
          description: Level of seniority level e.g. 2
      required:
        - id
        - name
      description: Seniority describes level of expertise at a job e.g. junior
      title: ContractsPostResponsesContentApplicationJsonSchemaDataSeniority
    ContractsPostResponsesContentApplicationJsonSchemaDataSignatures:
      type: object
      properties:
        signed_at:
          type:
            - string
            - 'null'
          description: Long date-time format following ISO-8601
        client_signature:
          type: string
          description: normally name of client is used as signature
        client_signed_at:
          type:
            - string
            - 'null'
          description: Long date-time format following ISO-8601
        worker_signature:
          type: string
          description: Signatures of client representative.
        worker_signed_at:
          type:
            - string
            - 'null'
          description: Long date-time format following ISO-8601
      required:
        - signed_at
        - client_signature
        - client_signed_at
        - worker_signature
        - worker_signed_at
      description: List of signatures recorded for this contract.
      title: ContractsPostResponsesContentApplicationJsonSchemaDataSignatures
    ContractsPostResponsesContentApplicationJsonSchemaDataInvitations:
      type: object
      properties:
        client_email:
          type:
            - string
            - 'null'
          description: User's email address.
        worker_email:
          type:
            - string
            - 'null'
          description: User's email address.
      description: List of signature invitations sent for this contract.
      title: ContractsPostResponsesContentApplicationJsonSchemaDataInvitations
    ContractsPostResponsesContentApplicationJsonSchemaDataWhoReports:
      type: string
      enum:
        - both
        - client
        - contractor
        - ''
      description: Flag to indicate who is supposed to provide regular reports
      title: ContractsPostResponsesContentApplicationJsonSchemaDataWhoReports
    ContractsPostResponsesContentApplicationJsonSchemaDataCustomFieldsItems:
      type: object
      properties:
        name:
          type: string
          description: Custom field property name.
        value:
          type: string
          description: Custom field property value.
      description: Customized attributes on contracts (Employee ID, Project code, etc).
      title: ContractsPostResponsesContentApplicationJsonSchemaDataCustomFieldsItems
    ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate1:
      type: string
      enum:
        - ''
      title: ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate1
    ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate:
      oneOf:
        - type: string
          format: date-time
        - $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate1
      description: >-
        Contract termination date. When present, it is a date-time string in
        ISO-8601 format.
      title: ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate
    ContractsPostResponsesContentApplicationJsonSchemaDataEmploymentDetails:
      type: object
      properties:
        type:
          type: string
          description: Employment type classification for the contract.
        state:
          type:
            - string
            - 'null'
          description: State code.
        country:
          type: string
          description: Country code.
        days_per_week:
          type: number
          format: double
          description: Number of days per week
        hours_per_day:
          type: number
          format: double
          description: Number of hours per day
        probation_period:
          type:
            - number
            - 'null'
          format: double
          description: Number of days for probation period
        paid_vacation_days:
          type: number
          format: double
          description: Number of paid vacation days
      required:
        - type
        - days_per_week
        - hours_per_day
        - probation_period
        - paid_vacation_days
      description: Employment-related details for the contract, when applicable.
      title: ContractsPostResponsesContentApplicationJsonSchemaDataEmploymentDetails
    ContractsPostResponsesContentApplicationJsonSchemaDataCompensationDetails:
      type: object
      properties:
        scale:
          type: string
          description: Scale of compensation
        amount:
          type:
            - string
            - 'null'
          description: Amount of compensation
        frequency:
          type: string
          description: Frequency of compensation
        currency_code:
          type: string
          description: Currency code.
        first_payment:
          type:
            - string
            - 'null'
          description: First payment
        first_payment_date:
          type:
            - string
            - 'null'
          description: Long date-time format following ISO-8601
        gross_annual_salary:
          type:
            - string
            - 'null'
          description: Gross annual salary
        gross_signing_bonus:
          type:
            - string
            - 'null'
          description: Gross signing bonus
        gross_variable_bonus:
          type:
            - string
            - 'null'
          description: Gross variable bonus
      required:
        - scale
        - amount
        - frequency
        - currency_code
        - first_payment
        - first_payment_date
        - gross_annual_salary
        - gross_signing_bonus
        - gross_variable_bonus
      description: >-
        Compensation configuration and payment schedule details for the
        contract.
      title: >-
        ContractsPostResponsesContentApplicationJsonSchemaDataCompensationDetails
    ContractsPostResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: string
          description: The public id of the object
        type:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataType
          description: Type of a contract
        quote:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataQuote
          description: EOR quote approved by Deel
        title:
          type: string
          description: Title of a contract
        client:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataClient
            - type: 'null'
          description: Client details associated with the contract.
        status:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataStatus
          description: Status of a contract in Deel workflow
        worker:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWorker
            - type: 'null'
          description: Worker details associated with the contract.
        job_title:
          type: string
          description: Job title associated with the contract.
        seniority:
          oneOf:
            - $ref: >-
                #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataSeniority
            - type: 'null'
          description: Seniority describes level of expertise at a job e.g. junior
        created_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Long date-time format following ISO-8601
        signatures:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataSignatures
          description: List of signatures recorded for this contract.
        start_date:
          type:
            - string
            - 'null'
          format: date-time
          description: Long date-time format following ISO-8601
        external_id:
          type:
            - string
            - 'null'
          description: A unique identifier for the object provided by an external system.
        invitations:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataInvitations
          description: List of signature invitations sent for this contract.
        is_archived:
          type: boolean
          description: Flag to indicate if the contract is archived
        who_reports:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataWhoReports
          description: Flag to indicate who is supposed to provide regular reports
        custom_fields:
          type: array
          items:
            $ref: >-
              #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataCustomFieldsItems
          description: Custom fields attached to the contract.
        notice_period:
          type: number
          format: double
          default: 10
          description: Days before to notice the termination of contract for either party.
        scope_of_work:
          type:
            - string
            - 'null'
          description: Scope of work for the contract
        special_clause:
          type: string
          description: Special clause for the contract
        termination_date:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataTerminationDate
          description: >-
            Contract termination date. When present, it is a date-time string in
            ISO-8601 format.
        work_statement_id:
          type: string
          description: The public unique identifier of the work statement
        employment_details:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataEmploymentDetails
          description: Employment-related details for the contract, when applicable.
        compensation_details:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaDataCompensationDetails
          description: >-
            Compensation configuration and payment schedule details for the
            contract.
      required:
        - id
        - type
        - title
        - client
        - status
        - worker
        - job_title
        - created_at
        - signatures
        - start_date
        - invitations
        - is_archived
        - special_clause
        - termination_date
        - work_statement_id
        - employment_details
        - compensation_details
      title: ContractsPostResponsesContentApplicationJsonSchemaData
    contracts_createICContract_Response_201:
      type: object
      properties:
        data:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaData
      required:
        - data
      title: contracts_createICContract_Response_201
    ContractsPostResponsesContentApplicationJsonSchemaErrorsItems:
      type: object
      properties:
        message:
          type: string
          description: Error response
      required:
        - message
      title: ContractsPostResponsesContentApplicationJsonSchemaErrorsItems
    ContractsPostResponsesContentApplicationJsonSchemaRequest:
      type: object
      properties:
        method:
          type: string
          description: Method of the API
        status:
          type: number
          format: double
          description: Status of API response
      description: Error request details
      title: ContractsPostResponsesContentApplicationJsonSchemaRequest
    CreateANewContract-v2026-01-01RequestBadRequestError:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: >-
              #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaErrorsItems
          description: Error messages
        request:
          $ref: >-
            #/components/schemas/ContractsPostResponsesContentApplicationJsonSchemaRequest
          description: Error request details
      required:
        - errors
      title: CreateANewContract-v2026-01-01RequestBadRequestError
    ApiErrorRequest:
      type: object
      properties:
        method:
          type: string
          description: The HTTP method of the failed request
        url:
          type: string
          description: The relative URL of the failed request
        status:
          type: number
          format: double
          description: The status code of the response
        api_req_id:
          type: string
          description: The request ID of the failed request
        docs:
          type: string
          description: >-
            A link to the official documentation for the requested endpoint
            resource
        source:
          type: string
          description: The source handler which produced the returned error
        code:
          type: number
          format: double
          description: The code of the source handler which produced the returned error
      title: ApiErrorRequest
    ApiError:
      type: object
      properties:
        message:
          type: string
          description: A description of the returned error
        path:
          type: string
          description: The JSON path where input validation failed
      title: ApiError
    ApiErrorContainer:
      type: object
      properties:
        request:
          $ref: '#/components/schemas/ApiErrorRequest'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ApiError'
      title: ApiErrorContainer
  securitySchemes:
    deelToken:
      type: http
      scheme: bearer
      description: >
        ## Authentication

        The Deel API uses bearer tokens to authenticate requests. All API calls
        must be made over HTTPS — calls over plain HTTP or without
        authentication will fail.


        ```curl

        curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
          -H 'Authorization: Bearer YOUR-TOKEN-HERE'
        ```


        [Learn more about authentication](/api/authentication)
    oauth2:
      type: http
      scheme: bearer
      description: >-
        Standard OAuth2 security scheme based on
        https://swagger.io/docs/specification/authentication/

```

## SDK Code Examples

```python
import requests

url = "https://api.letsdeel.com/rest/v2/contracts"

payload = { "data": {
        "meta": { "documents_required": True },
        "title": "Software Developer",
        "client": {
            "team": { "id": "string" },
            "legal_entity": { "id": "string" }
        },
        "job_title": {},
        "type": "pay_as_you_go_time_based",
        "start_date": "1999-12-31",
        "compensation_details": {
            "amount": 100,
            "cycle_end": 15,
            "frequency": "monthly",
            "currency_code": "GBP",
            "first_payment": 500,
            "cycle_end_type": "DAY_OF_MONTH",
            "payment_due_days": 7,
            "payment_due_type": "REGULAR",
            "first_payment_date": "1999-12-31",
            "pay_before_weekends": True,
            "scale": "daily"
        }
    } }
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.letsdeel.com/rest/v2/contracts';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"data":{"meta":{"documents_required":true},"title":"Software Developer","client":{"team":{"id":"string"},"legal_entity":{"id":"string"}},"job_title":{},"type":"pay_as_you_go_time_based","start_date":"1999-12-31","compensation_details":{"amount":100,"cycle_end":15,"frequency":"monthly","currency_code":"GBP","first_payment":500,"cycle_end_type":"DAY_OF_MONTH","payment_due_days":7,"payment_due_type":"REGULAR","first_payment_date":"1999-12-31","pay_before_weekends":true,"scale":"daily"}}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/v2/contracts"

	payload := strings.NewReader("{\n  \"data\": {\n    \"meta\": {\n      \"documents_required\": true\n    },\n    \"title\": \"Software Developer\",\n    \"client\": {\n      \"team\": {\n        \"id\": \"string\"\n      },\n      \"legal_entity\": {\n        \"id\": \"string\"\n      }\n    },\n    \"job_title\": {},\n    \"type\": \"pay_as_you_go_time_based\",\n    \"start_date\": \"1999-12-31\",\n    \"compensation_details\": {\n      \"amount\": 100,\n      \"cycle_end\": 15,\n      \"frequency\": \"monthly\",\n      \"currency_code\": \"GBP\",\n      \"first_payment\": 500,\n      \"cycle_end_type\": \"DAY_OF_MONTH\",\n      \"payment_due_days\": 7,\n      \"payment_due_type\": \"REGULAR\",\n      \"first_payment_date\": \"1999-12-31\",\n      \"pay_before_weekends\": true,\n      \"scale\": \"daily\"\n    }\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/v2/contracts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"data\": {\n    \"meta\": {\n      \"documents_required\": true\n    },\n    \"title\": \"Software Developer\",\n    \"client\": {\n      \"team\": {\n        \"id\": \"string\"\n      },\n      \"legal_entity\": {\n        \"id\": \"string\"\n      }\n    },\n    \"job_title\": {},\n    \"type\": \"pay_as_you_go_time_based\",\n    \"start_date\": \"1999-12-31\",\n    \"compensation_details\": {\n      \"amount\": 100,\n      \"cycle_end\": 15,\n      \"frequency\": \"monthly\",\n      \"currency_code\": \"GBP\",\n      \"first_payment\": 500,\n      \"cycle_end_type\": \"DAY_OF_MONTH\",\n      \"payment_due_days\": 7,\n      \"payment_due_type\": \"REGULAR\",\n      \"first_payment_date\": \"1999-12-31\",\n      \"pay_before_weekends\": true,\n      \"scale\": \"daily\"\n    }\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.letsdeel.com/rest/v2/contracts")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"data\": {\n    \"meta\": {\n      \"documents_required\": true\n    },\n    \"title\": \"Software Developer\",\n    \"client\": {\n      \"team\": {\n        \"id\": \"string\"\n      },\n      \"legal_entity\": {\n        \"id\": \"string\"\n      }\n    },\n    \"job_title\": {},\n    \"type\": \"pay_as_you_go_time_based\",\n    \"start_date\": \"1999-12-31\",\n    \"compensation_details\": {\n      \"amount\": 100,\n      \"cycle_end\": 15,\n      \"frequency\": \"monthly\",\n      \"currency_code\": \"GBP\",\n      \"first_payment\": 500,\n      \"cycle_end_type\": \"DAY_OF_MONTH\",\n      \"payment_due_days\": 7,\n      \"payment_due_type\": \"REGULAR\",\n      \"first_payment_date\": \"1999-12-31\",\n      \"pay_before_weekends\": true,\n      \"scale\": \"daily\"\n    }\n  }\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.letsdeel.com/rest/v2/contracts', [
  'body' => '{
  "data": {
    "meta": {
      "documents_required": true
    },
    "title": "Software Developer",
    "client": {
      "team": {
        "id": "string"
      },
      "legal_entity": {
        "id": "string"
      }
    },
    "job_title": {},
    "type": "pay_as_you_go_time_based",
    "start_date": "1999-12-31",
    "compensation_details": {
      "amount": 100,
      "cycle_end": 15,
      "frequency": "monthly",
      "currency_code": "GBP",
      "first_payment": 500,
      "cycle_end_type": "DAY_OF_MONTH",
      "payment_due_days": 7,
      "payment_due_type": "REGULAR",
      "first_payment_date": "1999-12-31",
      "pay_before_weekends": true,
      "scale": "daily"
    }
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/v2/contracts");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"data\": {\n    \"meta\": {\n      \"documents_required\": true\n    },\n    \"title\": \"Software Developer\",\n    \"client\": {\n      \"team\": {\n        \"id\": \"string\"\n      },\n      \"legal_entity\": {\n        \"id\": \"string\"\n      }\n    },\n    \"job_title\": {},\n    \"type\": \"pay_as_you_go_time_based\",\n    \"start_date\": \"1999-12-31\",\n    \"compensation_details\": {\n      \"amount\": 100,\n      \"cycle_end\": 15,\n      \"frequency\": \"monthly\",\n      \"currency_code\": \"GBP\",\n      \"first_payment\": 500,\n      \"cycle_end_type\": \"DAY_OF_MONTH\",\n      \"payment_due_days\": 7,\n      \"payment_due_type\": \"REGULAR\",\n      \"first_payment_date\": \"1999-12-31\",\n      \"pay_before_weekends\": true,\n      \"scale\": \"daily\"\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["data": [
    "meta": ["documents_required": true],
    "title": "Software Developer",
    "client": [
      "team": ["id": "string"],
      "legal_entity": ["id": "string"]
    ],
    "job_title": [],
    "type": "pay_as_you_go_time_based",
    "start_date": "1999-12-31",
    "compensation_details": [
      "amount": 100,
      "cycle_end": 15,
      "frequency": "monthly",
      "currency_code": "GBP",
      "first_payment": 500,
      "cycle_end_type": "DAY_OF_MONTH",
      "payment_due_days": 7,
      "payment_due_type": "REGULAR",
      "first_payment_date": "1999-12-31",
      "pay_before_weekends": true,
      "scale": "daily"
    ]
  ]] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/v2/contracts")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```