# Create an EOR contract

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

Creates an Employee of Record (EOR) contract quote. This endpoint allows to submit details for an EOR contract. Deel will process the information and return a quote for the requested contract.
 **Token scopes**: `contracts:write`

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

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: Deel HRIS SCIM API
  version: 1.0.0
paths:
  /eor:
    post:
      operationId: create-eor-contract
      summary: Create an EOR contract
      description: >-
        Creates an Employee of Record (EOR) contract quote. This endpoint allows
        to submit details for an EOR contract. Deel will process the information
        and return a quote for the requested contract.
         **Token scopes**: `contracts:write`
      tags:
        - subpackage_eorContract
      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: Successfully created the EOR contract quote.
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/eor-contract_createEORContract_Response_201
        '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'
      requestBody:
        description: The details of the Employee (EOR) contract to be created.
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  $ref: >-
                    #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaData
              required:
                - data
servers:
  - url: https://api.letsdeel.com/rest/v2
  - url: https://api-staging.letsdeel.com/rest/v2
components:
  schemas:
    EorPostRequestBodyContentApplicationJsonSchemaDataClientTeamId:
      oneOf:
        - type: string
        - type: integer
          format: int64
      description: Team identifying information.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataClientTeamId
    EorPostRequestBodyContentApplicationJsonSchemaDataClientTeam:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataClientTeamId
          description: Team identifying information.
      required:
        - id
      title: EorPostRequestBodyContentApplicationJsonSchemaDataClientTeam
    EorPostRequestBodyContentApplicationJsonSchemaDataClientLegalEntityId:
      oneOf:
        - type: string
        - type: integer
          format: int64
      description: Legal entity reference for the client.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataClientLegalEntityId
    EorPostRequestBodyContentApplicationJsonSchemaDataClientLegalEntity:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataClientLegalEntityId
          description: Legal entity reference for the client.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataClientLegalEntity
    EorPostRequestBodyContentApplicationJsonSchemaDataClient:
      type: object
      properties:
        team:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataClientTeam
        legal_entity:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataClientLegalEntity
      required:
        - team
      description: Client details for the contract.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataClient
    EorPostRequestBodyContentApplicationJsonSchemaDataPension:
      type: object
      properties:
        id:
          type: string
          description: >-
            Pension provider id. You can see available pension providers in the
            country guide endpoint.
        contribution:
          type: string
          description: >-
            Enter the value of pension contribution. You should send this value
            only if the contribution object is available in the country guide
            endpoint and the value should be there between minimum and maximum
            values indicated.
      description: Some countries required a pension benefit.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataPension
    EorPostRequestBodyContentApplicationJsonSchemaDataBenefitsItems:
      type: object
      properties:
        plan_id:
          type: string
          description: The ID of a benefits plan to include in the calculation.
        cover_all:
          type: boolean
          description: Flag indicating if benefit will fully cover the employee.
        provider_id:
          type: string
          description: The ID of a benefits provider to include in the calculation.
        contribution:
          type: number
          format: double
          description: >-
            The amount the client will contribute for the benefit in the
            currency of the contract. Only taken into account if cover_all is
            set to false. For Unisure provider contribution is always in USD.
        cover_dependents:
          type: boolean
          description: >-
            Flag indicating if benefit will cover dependents. Only needed if
            cover_all is set to true.
      description: List of additional benefits to include in the calculation
      title: EorPostRequestBodyContentApplicationJsonSchemaDataBenefitsItems
    EorPostRequestBodyContentApplicationJsonSchemaDataEmployeeAddress:
      type: object
      properties:
        zip:
          type: string
          description: Zip code.
        city:
          type: string
          description: City name.
        state:
          type:
            - string
            - 'null'
          description: State code.
        street:
          type: string
          description: Street and number.
        country:
          type: string
          description: Country code.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataEmployeeAddress
    EorPostRequestBodyContentApplicationJsonSchemaDataEmployeePfDeductions:
      type: string
      enum:
        - 12% of Basic
        - 12% of Rs 15,000 (Rs 1,800)
      description: Employee's PF deductions. Required only for India contracts.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataEmployeePfDeductions
    EorPostRequestBodyContentApplicationJsonSchemaDataEmployee:
      type: object
      properties:
        email:
          type: string
          description: Employee's email address.
        address:
          oneOf:
            - $ref: >-
                #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmployeeAddress
            - type: 'null'
        last_name:
          type: string
          description: Employee's last name.
        first_name:
          type: string
          description: Employee's first name.
        external_id:
          type: string
          description: External identifier of the employee.
        nationality:
          type: string
          description: Employee's nationality.
        pf_deductions:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmployeePfDeductions
          description: Employee's PF deductions. Required only for India contracts.
      required:
        - last_name
        - first_name
        - nationality
      title: EorPostRequestBodyContentApplicationJsonSchemaDataEmployee
    EorPostRequestBodyContentApplicationJsonSchemaDataSeniorityId:
      oneOf:
        - type: string
        - type: integer
          format: int64
      description: Identifier for the seniority level (string or numeric ID).
      title: EorPostRequestBodyContentApplicationJsonSchemaDataSeniorityId
    EorPostRequestBodyContentApplicationJsonSchemaDataSeniority:
      type: object
      properties:
        id:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataSeniorityId
          description: Identifier for the seniority level (string or numeric ID).
      description: Seniority selection for the role.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataSeniority
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentType:
      type: string
      enum:
        - Full-time
        - Part-time
      description: Is it a full-time contract or a part-time contract?
      title: EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentType
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentScopeOfWork1:
      type: object
      properties:
        scope_template_id:
          type: string
          format: uuid
          description: Scope template UUID.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentScopeOfWork1
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentScopeOfWork2:
      type: object
      properties:
        scope_validation_id:
          type: string
          format: uuid
          description: Scope validation UUID.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentScopeOfWork2
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentScopeOfWork:
      oneOf:
        - type: string
        - $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentScopeOfWork1
        - $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentScopeOfWork2
      description: >-
        Scope of work; either a string with full text or an object referencing a
        template/validation UUID.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentScopeOfWork
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentTimeOffType:
      type: string
      enum:
        - STANDARD
        - SPECIFIC
      description: >-
        If you want to use standard number of holidays for this employee, choose
        "STANDARD". If you want to enter a specific number of holidays, choose
        "SPECIFIC" and enter the number of days in the holidays field.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentTimeOffType
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentNoticePeriodType:
      type: string
      enum:
        - STANDARD
        - CUSTOM
      description: Type of notice period.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentNoticePeriodType
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentProbationPeriodTimeUnit:
      type: string
      enum:
        - DAY
        - WEEK
        - MONTH
      description: Time unit of probation period.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentProbationPeriodTimeUnit
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentProbationPeriodTypeForDefinite:
      type: string
      enum:
        - STANDARD
        - CUSTOM
      description: Type of probation period for definite contracts.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentProbationPeriodTypeForDefinite
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentNoticePeriodAfterProbationTimeUnit:
      type: string
      enum:
        - DAY
        - WEEK
        - MONTH
      description: Time unit of notice period after probation.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentNoticePeriodAfterProbationTimeUnit
    EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentNoticePeriodDuringProbationTimeUnit:
      type: string
      enum:
        - DAY
        - WEEK
        - MONTH
      description: Time unit of notice period during probation.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentNoticePeriodDuringProbationTimeUnit
    EorPostRequestBodyContentApplicationJsonSchemaDataEmployment:
      type: object
      properties:
        type:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentType
          description: Is it a full-time contract or a part-time contract?
        state:
          type:
            - string
            - 'null'
          description: >-
            State code of the state/province where the this person will be
            employed.
        country:
          type: string
          description: Country code of employment.
        end_date:
          type:
            - string
            - 'null'
          format: date
          description: End date in ISO-8601 format (YYYY-MM-DD).
        holidays:
          type:
            - number
            - 'null'
          format: double
          description: >-
            Enter the number of holidays. Leave this field blank if you are
            choosing "STANDARD" time_off_type.
        is_hourly:
          type: boolean
          description: Is the employee contract hourly instead of salaried?
        start_date:
          type: string
          format: date
          description: Start date in ISO-8601 format (YYYY-MM-DD).
        scope_of_work:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentScopeOfWork
          description: >-
            Scope of work; either a string with full text or an object
            referencing a template/validation UUID.
        time_off_type:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentTimeOffType
          description: >-
            If you want to use standard number of holidays for this employee,
            choose "STANDARD". If you want to enter a specific number of
            holidays, choose "SPECIFIC" and enter the number of days in the
            holidays field.
        seniority_date:
          type: string
          format: date
          description: Seniority date
        sick_leave_days:
          type: integer
          description: Number of sick leave days
        probation_period:
          type:
            - number
            - 'null'
          format: double
          description: Number of probation days.
        notice_period_type:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentNoticePeriodType
          description: Type of notice period.
        work_visa_required:
          type: boolean
          default: false
          description: Do you require Deel to apply for work visa for this person?
        work_hours_per_week:
          type: number
          format: double
          description: >-
            Employee's work hours per week. Required only if contract is set as
            hourly.
        probation_period_time_unit:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentProbationPeriodTimeUnit
          description: Time unit of probation period.
        notice_period_after_probation:
          type:
            - number
            - 'null'
          format: double
          description: Notice period after probation required when type is CUSTOM.
        notice_period_during_probation:
          type:
            - number
            - 'null'
          format: double
          description: Notice period during probation required when type is CUSTOM.
        employee_completed_past_probation:
          type: boolean
          default: false
          description: Whether the employee has previously passed the probation period.
        probation_period_type_for_definite:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentProbationPeriodTypeForDefinite
          description: Type of probation period for definite contracts.
        notice_period_after_probation_time_unit:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentNoticePeriodAfterProbationTimeUnit
          description: Time unit of notice period after probation.
        notice_period_during_probation_time_unit:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmploymentNoticePeriodDuringProbationTimeUnit
          description: Time unit of notice period during probation.
      required:
        - country
        - start_date
        - scope_of_work
        - work_visa_required
      description: Employment contract specific details.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataEmployment
    EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsFixedAdjustmentsItems:
      type: object
      properties:
        name:
          type: string
          description: Adjustment name.
        value:
          type: number
          format: double
          description: Adjustment value.
        opt_out:
          type: boolean
          description: Whether the adjustment is being opted out of.
        optional:
          type: boolean
          description: Whether the adjustment is optional.
        description:
          type: string
          description: Adjustment description.
        is_recurring:
          type: boolean
          description: >-
            Whether the adjustment is paid recurring monthly or one-time on
            employee's first payroll.
        rule_cost_id:
          type: string
          description: Identifier of the rule cost associated with the adjustment.
        is_country_specific:
          type: boolean
          description: Whether this adjustment is country-specific.
        skipping_confirmation_text:
          type: string
          description: Optional skipping confirmation text shown to the user.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsFixedAdjustmentsItems
    EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsSigningBonusPayoutType:
      type: string
      enum:
        - FIRST_CYCLE
        - AFTER_PROBATION
        - AFTER_FIRST_CONTRACT_ANNIVERSARY
      description: >-
        Should be set only if signing_bonus is set. It defines when the bonus is
        paid.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsSigningBonusPayoutType
    EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsVariableCompensationType:
      type: string
      enum:
        - PERCENTAGE
        - FIXED
      description: >-
        Should be set only if variable_compensation is set. It can be PERCENTAGE
        or FIXED.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsVariableCompensationType
    EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsVariableCompensationTimeline:
      type: string
      enum:
        - ANNUALLY
        - BIANNUALLY
        - QUARTERLY
        - MONTHLY
      description: Variable compensation timeline.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsVariableCompensationTimeline
    EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetails:
      type: object
      properties:
        salary:
          type: number
          format: double
          description: >-
            Employee's gross annual salary. Required only if contract is
            salaried.
        currency:
          type: string
          description: Salary currency.
        hourly_rate:
          type: number
          format: double
          description: Employee's hourly rate. Required only if contract is set as hourly.
        signing_bonus:
          type:
            - number
            - 'null'
          format: double
          description: Signing bonus amount.
        fixed_adjustments:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsFixedAdjustmentsItems
        variable_compensation:
          type:
            - number
            - 'null'
          format: double
          description: >-
            Variable compensation. For example, if the person will earn 5% of
            the gross annual salary as the variable compensation, enter 5.
        signing_bonus_payout_type:
          oneOf:
            - $ref: >-
                #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsSigningBonusPayoutType
            - type: 'null'
          description: >-
            Should be set only if signing_bonus is set. It defines when the
            bonus is paid.
        variable_compensation_type:
          oneOf:
            - $ref: >-
                #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsVariableCompensationType
            - type: 'null'
          description: >-
            Should be set only if variable_compensation is set. It can be
            PERCENTAGE or FIXED.
        variable_compensation_title:
          type: string
          description: Variable compensation title.
        variable_compensation_timeline:
          oneOf:
            - $ref: >-
                #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetailsVariableCompensationTimeline
            - type: 'null'
          description: Variable compensation timeline.
        variable_compensation_effective_date:
          type: string
          format: date
          description: Variable compensation effective date.
      required:
        - currency
      title: EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetails
    EorPostRequestBodyContentApplicationJsonSchemaDataQuoteAdditionalFieldsWorkerType:
      type: string
      enum:
        - Skilled
        - Unskilled
      description: Type of worker.
      title: >-
        EorPostRequestBodyContentApplicationJsonSchemaDataQuoteAdditionalFieldsWorkerType
    EorPostRequestBodyContentApplicationJsonSchemaDataQuoteAdditionalFields:
      type: object
      properties:
        dob:
          type: string
          description: Employee's date of birth.
        gender:
          type: string
          description: Employee's gender.
        worker_type:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataQuoteAdditionalFieldsWorkerType
          description: Type of worker.
      description: >-
        Some countries require additional employee information for employment
        contracts.
      title: EorPostRequestBodyContentApplicationJsonSchemaDataQuoteAdditionalFields
    EorPostRequestBodyContentApplicationJsonSchemaData:
      type: object
      properties:
        client:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataClient
          description: Client details for the contract.
        pension:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataPension
          description: Some countries required a pension benefit.
        benefits:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataBenefitsItems
        employee:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmployee
        job_title:
          type: string
          description: Employee's job title.
        seniority:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataSeniority
          description: Seniority selection for the role.
        employment:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataEmployment
          description: Employment contract specific details.
        health_plan_id:
          type: string
          description: >-
            Healthcare plan id. You can see available healthcare plans in the
            country guide endpoint.
        compensation_details:
          $ref: >-
            #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataCompensationDetails
        quote_additional_fields:
          oneOf:
            - $ref: >-
                #/components/schemas/EorPostRequestBodyContentApplicationJsonSchemaDataQuoteAdditionalFields
            - type: 'null'
          description: >-
            Some countries require additional employee information for
            employment contracts.
      required:
        - client
        - employee
        - job_title
        - seniority
        - employment
        - compensation_details
      title: EorPostRequestBodyContentApplicationJsonSchemaData
    EorPostResponsesContentApplicationJsonSchemaDataType:
      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
        - peo
      description: Type of the contract.
      title: EorPostResponsesContentApplicationJsonSchemaDataType
    EorPostResponsesContentApplicationJsonSchemaDataCostsSummaryTotalsFormattedItems:
      type: object
      properties:
        title:
          type: string
          description: Display title for the total (e.g., 'Monthly Total').
        total:
          type: string
          description: Formatted amount in local currency.
        frequency:
          type: string
          description: Time period for the total (e.g., monthly, annual).
        total_supporting:
          type: string
          description: Formatted amount in supporting currency.
      title: >-
        EorPostResponsesContentApplicationJsonSchemaDataCostsSummaryTotalsFormattedItems
    EorPostResponsesContentApplicationJsonSchemaDataCostsSummary:
      type: object
      properties:
        salary:
          type: string
          description: Annual gross salary in local currency.
        currency:
          type: string
          description: Local currency code (e.g., BRL, PLN).
        exchange_rate:
          type: string
          description: Exchange rate used to convert from local to supporting currency.
        totals_formatted:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSummaryTotalsFormattedItems
          description: Formatted summary totals in both local and supporting currencies.
        supporting_currency:
          type: string
          description: >-
            Reference or secondary currency (e.g., USD) used for reporting
            totals.
      description: Top-level overview of costs, including key totals and currency metadata.
      title: EorPostResponsesContentApplicationJsonSchemaDataCostsSummary
    EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItemsCostsItemsTotalsItems:
      type: object
      properties:
        total:
          type: string
          description: Total cost amount in local currency.
        frequency:
          type: string
          description: How often this cost occurs (e.g., monthly, annual, one-time).
        total_supporting:
          type: string
          description: Total cost amount in the supporting currency.
      title: >-
        EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItemsCostsItemsTotalsItems
    EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItemsCostsItems:
      type: object
      properties:
        label:
          type: string
          description: Name of the specific cost item (e.g., Salary, Meal Voucher).
        totals:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItemsCostsItemsTotalsItems
          description: >-
            Monthly and annual totals for the cost item in local and supporting
            currencies.
      title: >-
        EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItemsCostsItems
    EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItemsTotalsItems:
      type: object
      properties:
        total:
          type: string
          description: Group total in local currency.
        frequency:
          type: string
          description: How often the total is calculated (e.g., monthly, annual).
        total_supporting:
          type: string
          description: Group total in supporting currency.
      title: >-
        EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItemsTotalsItems
    EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItems:
      type: object
      properties:
        name:
          type: string
          description: Internal identifier for the group.
        costs:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItemsCostsItems
          description: Individual cost items within the group.
        label:
          type: string
          description: Display name for the group (e.g., Gross Salary, Employer Cost).
        totals:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItemsTotalsItems
          description: Aggregated totals for all items within the group.
        has_breakdown:
          type: boolean
          description: >-
            Indicates if the group contains multiple detailed cost items to be
            expanded.
      title: >-
        EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItems
    EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsTotalsItems:
      type: object
      properties:
        total:
          type: string
          description: Total cost for the section in local currency.
        frequency:
          type: string
          description: How often the total is calculated (e.g., monthly, annual).
        total_supporting:
          type: string
          description: Total cost for the section in supporting currency.
      title: >-
        EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsTotalsItems
    EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsStandaloneItemsItemsTotalsItems:
      type: object
      properties:
        total:
          type: string
          description: Standalone cost amount in local currency.
        frequency:
          type: string
          description: How often this cost occurs (e.g., monthly, annual, one-time).
        total_supporting:
          type: string
          description: Standalone cost amount in the supporting currency.
      title: >-
        EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsStandaloneItemsItemsTotalsItems
    EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsStandaloneItemsItems:
      type: object
      properties:
        name:
          type: string
          description: Internal identifier for the standalone cost item.
        label:
          type: string
          description: Display name for the standalone cost item.
        totals:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsStandaloneItemsItemsTotalsItems
          description: >-
            Monthly and annual totals for the standalone item in local and
            supporting currencies.
      title: >-
        EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsStandaloneItemsItems
    EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItems:
      type: object
      properties:
        name:
          type: string
          description: >-
            Internal identifier for the cost section (e.g.,
            MONTHLY_EMPLOYMENT_BREAKDOWN).
        label:
          type: string
          description: Display name for the cost section.
        groups:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsGroupsItems
          description: Collections of related costs grouped under a common label.
        totals:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsTotalsItems
          description: >-
            Overall totals for the section, summing all groups and standalone
            items.
        is_summarized:
          type: boolean
          description: Indicates whether the section is presented in summarized form.
        standalone_items:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItemsStandaloneItemsItems
          description: >-
            Cost items that do not belong to regular groups, often irregular or
            one-off costs.
      title: EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItems
    EorPostResponsesContentApplicationJsonSchemaDataCostsAdditionalData:
      type: object
      properties:
        annual_notes:
          type: array
          items:
            type: string
          description: >-
            Notes or assumptions specifically relevant to annual cost
            calculations.
        monthly_notes:
          type: array
          items:
            type: string
          description: >-
            Notes or assumptions specifically relevant to monthly cost
            calculations.
        once_off_notes:
          type: array
          items:
            type: string
          description: Notes regarding one-time costs or irregular payments in the quote.
        additional_notes:
          type: array
          items:
            type: string
          description: >-
            General conditions, assumptions, or fees that may apply to the
            quote.
      description: >-
        Supplementary notes and contextual information relevant to the cost
        quote.
      title: EorPostResponsesContentApplicationJsonSchemaDataCostsAdditionalData
    EorPostResponsesContentApplicationJsonSchemaDataCosts:
      type: object
      properties:
        summary:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSummary
          description: >-
            Top-level overview of costs, including key totals and currency
            metadata.
        sections:
          type: array
          items:
            $ref: >-
              #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsSectionsItems
          description: >-
            Detailed and categorized cost sections including grouped and
            standalone items.
        additional_data:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCostsAdditionalData
          description: >-
            Supplementary notes and contextual information relevant to the cost
            quote.
      description: >-
        Detailed breakdown of employment costs including summary totals,
        sectioned cost groups, and additional context notes.
      title: EorPostResponsesContentApplicationJsonSchemaDataCosts
    EorPostResponsesContentApplicationJsonSchemaDataClientLegalEntity:
      type: object
      properties:
        name:
          type: string
          description: Legal entity name
      title: EorPostResponsesContentApplicationJsonSchemaDataClientLegalEntity
    EorPostResponsesContentApplicationJsonSchemaDataClient:
      type: object
      properties:
        legal_entity:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataClientLegalEntity
      description: Client information for the contract.
      title: EorPostResponsesContentApplicationJsonSchemaDataClient
    EorPostResponsesContentApplicationJsonSchemaDataStatus:
      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
        - onboarding
      description: Current status of the contract.
      title: EorPostResponsesContentApplicationJsonSchemaDataStatus
    EorPostResponsesContentApplicationJsonSchemaDataEmployee:
      type: object
      properties:
        email:
          type: string
          description: Employee's email
        last_name:
          type: string
          description: Employee's last name
        first_name:
          type: string
          description: Employee's first name
        legal_name:
          type: string
          description: Employee's legal name
      title: EorPostResponsesContentApplicationJsonSchemaDataEmployee
    EorPostResponsesContentApplicationJsonSchemaDataSeniority:
      type: object
      properties:
        id:
          type: integer
          description: Seniority level ID
        name:
          type: string
          description: Seniority level name
      required:
        - id
        - name
      description: Seniority level of the employee
      title: EorPostResponsesContentApplicationJsonSchemaDataSeniority
    EorPostResponsesContentApplicationJsonSchemaDataEmployment:
      type: object
      properties:
        state:
          type:
            - string
            - 'null'
          description: State or province of employment
        country:
          type: string
          description: Country of employment
        end_date:
          type:
            - string
            - 'null'
          format: date-time
          description: Employment end date
        start_date:
          type: string
          format: date-time
          description: Employment start date
        scope_of_work:
          type: string
          description: Scope of work description.
        time_off_type:
          type: string
          description: Type of time off for the employee
        probation_period:
          type:
            - integer
            - 'null'
          description: Number of probation days
        work_visa_required:
          type: boolean
          description: If a work visa is required
        calculated_holidays:
          type: string
          description: Number of calculated holidays
      description: Employment contract specific details.
      title: EorPostResponsesContentApplicationJsonSchemaDataEmployment
    EorPostResponsesContentApplicationJsonSchemaDataHealthPlan:
      type: object
      properties:
        id:
          type: string
          description: Health plan ID
        name:
          type: string
          description: Health plan name
      title: EorPostResponsesContentApplicationJsonSchemaDataHealthPlan
    EorPostResponsesContentApplicationJsonSchemaDataCompensationDetails:
      type: object
      properties:
        salary:
          type: string
          description: Gross annual salary
        currency:
          type: string
          description: Currency of the salary
        variable_compensation:
          type: string
          description: Variable compensation account or percentage
        variable_compensation_type:
          type:
            - string
            - 'null'
          description: Type of variable compensation
      title: EorPostResponsesContentApplicationJsonSchemaDataCompensationDetails
    EorPostResponsesContentApplicationJsonSchemaData:
      type: object
      properties:
        id:
          type: string
          description: ID of the created contract quote.
        type:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataType
          description: Type of the contract.
        costs:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCosts
          description: >-
            Detailed breakdown of employment costs including summary totals,
            sectioned cost groups, and additional context notes.
        client:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataClient
          description: Client information for the contract.
        status:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataStatus
          description: Current status of the contract.
        employee:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataEmployee
        job_title:
          type: string
          description: Employee's job title
        seniority:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataSeniority
          description: Seniority level of the employee
        created_at:
          type: string
          format: date-time
          description: Contract creation timestamp
        employment:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataEmployment
          description: Employment contract specific details.
        health_plan:
          oneOf:
            - $ref: >-
                #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataHealthPlan
            - type: 'null'
        compensation_details:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaDataCompensationDetails
      title: EorPostResponsesContentApplicationJsonSchemaData
    eor-contract_createEORContract_Response_201:
      type: object
      properties:
        data:
          $ref: >-
            #/components/schemas/EorPostResponsesContentApplicationJsonSchemaData
      title: eor-contract_createEORContract_Response_201
    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/eor"

payload = { "body": { "data": {
            "client": { "team": { "id": "team-12345" } },
            "employee": {
                "last_name": "Doe",
                "first_name": "John",
                "nationality": "US",
                "email": "john.doe@example.com",
                "address": {
                    "zip": "80202",
                    "city": "Denver",
                    "state": "CO",
                    "street": "1234 Elm Street",
                    "country": "US"
                },
                "external_id": "ext-employee-001"
            },
            "job_title": "Software Engineer",
            "seniority": { "id": "seniority-123" },
            "employment": {
                "country": "US",
                "start_date": "2024-01-15",
                "scope_of_work": "Develop and maintain backend services for the company’s main product, ensuring scalability and reliability.",
                "work_visa_required": False,
                "type": "Full-time",
                "state": "CO",
                "end_date": "2025-01-14",
                "holidays": 15,
                "is_hourly": False,
                "time_off_type": "STANDARD",
                "seniority_date": "2020-01-15",
                "sick_leave_days": 10,
                "probation_period": 90,
                "notice_period_type": "STANDARD",
                "work_hours_per_week": 40,
                "probation_period_time_unit": "DAY",
                "notice_period_after_probation": 30,
                "notice_period_during_probation": 14,
                "employee_completed_past_probation": False,
                "probation_period_type_for_definite": "STANDARD",
                "notice_period_after_probation_time_unit": "DAY",
                "notice_period_during_probation_time_unit": "DAY"
            },
            "compensation_details": {
                "currency": "USD",
                "salary": 120000,
                "variable_compensation": 10,
                "variable_compensation_type": "PERCENTAGE",
                "variable_compensation_title": "Annual Bonus",
                "variable_compensation_timeline": "ANNUALLY",
                "variable_compensation_effective_date": "2024-01-01",
                "signing_bonus": 5000,
                "signing_bonus_payout_type": "AFTER_PROBATION",
                "fixed_adjustments": [
                    {
                        "name": "Internet Allowance",
                        "value": 100,
                        "opt_out": False,
                        "optional": True,
                        "description": "Monthly internet reimbursement",
                        "is_recurring": True,
                        "rule_cost_id": "rule-cost-123",
                        "is_country_specific": True,
                        "skipping_confirmation_text": "Confirm skipping internet allowance"
                    }
                ]
            }
        } } }
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/eor';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"body":{"data":{"client":{"team":{"id":"team-12345"}},"employee":{"last_name":"Doe","first_name":"John","nationality":"US","email":"john.doe@example.com","address":{"zip":"80202","city":"Denver","state":"CO","street":"1234 Elm Street","country":"US"},"external_id":"ext-employee-001"},"job_title":"Software Engineer","seniority":{"id":"seniority-123"},"employment":{"country":"US","start_date":"2024-01-15","scope_of_work":"Develop and maintain backend services for the company’s main product, ensuring scalability and reliability.","work_visa_required":false,"type":"Full-time","state":"CO","end_date":"2025-01-14","holidays":15,"is_hourly":false,"time_off_type":"STANDARD","seniority_date":"2020-01-15","sick_leave_days":10,"probation_period":90,"notice_period_type":"STANDARD","work_hours_per_week":40,"probation_period_time_unit":"DAY","notice_period_after_probation":30,"notice_period_during_probation":14,"employee_completed_past_probation":false,"probation_period_type_for_definite":"STANDARD","notice_period_after_probation_time_unit":"DAY","notice_period_during_probation_time_unit":"DAY"},"compensation_details":{"currency":"USD","salary":120000,"variable_compensation":10,"variable_compensation_type":"PERCENTAGE","variable_compensation_title":"Annual Bonus","variable_compensation_timeline":"ANNUALLY","variable_compensation_effective_date":"2024-01-01","signing_bonus":5000,"signing_bonus_payout_type":"AFTER_PROBATION","fixed_adjustments":[{"name":"Internet Allowance","value":100,"opt_out":false,"optional":true,"description":"Monthly internet reimbursement","is_recurring":true,"rule_cost_id":"rule-cost-123","is_country_specific":true,"skipping_confirmation_text":"Confirm skipping internet allowance"}]}}}}'
};

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/eor"

	payload := strings.NewReader("{\n  \"body\": {\n    \"data\": {\n      \"client\": {\n        \"team\": {\n          \"id\": \"team-12345\"\n        }\n      },\n      \"employee\": {\n        \"last_name\": \"Doe\",\n        \"first_name\": \"John\",\n        \"nationality\": \"US\",\n        \"email\": \"john.doe@example.com\",\n        \"address\": {\n          \"zip\": \"80202\",\n          \"city\": \"Denver\",\n          \"state\": \"CO\",\n          \"street\": \"1234 Elm Street\",\n          \"country\": \"US\"\n        },\n        \"external_id\": \"ext-employee-001\"\n      },\n      \"job_title\": \"Software Engineer\",\n      \"seniority\": {\n        \"id\": \"seniority-123\"\n      },\n      \"employment\": {\n        \"country\": \"US\",\n        \"start_date\": \"2024-01-15\",\n        \"scope_of_work\": \"Develop and maintain backend services for the company’s main product, ensuring scalability and reliability.\",\n        \"work_visa_required\": false,\n        \"type\": \"Full-time\",\n        \"state\": \"CO\",\n        \"end_date\": \"2025-01-14\",\n        \"holidays\": 15,\n        \"is_hourly\": false,\n        \"time_off_type\": \"STANDARD\",\n        \"seniority_date\": \"2020-01-15\",\n        \"sick_leave_days\": 10,\n        \"probation_period\": 90,\n        \"notice_period_type\": \"STANDARD\",\n        \"work_hours_per_week\": 40,\n        \"probation_period_time_unit\": \"DAY\",\n        \"notice_period_after_probation\": 30,\n        \"notice_period_during_probation\": 14,\n        \"employee_completed_past_probation\": false,\n        \"probation_period_type_for_definite\": \"STANDARD\",\n        \"notice_period_after_probation_time_unit\": \"DAY\",\n        \"notice_period_during_probation_time_unit\": \"DAY\"\n      },\n      \"compensation_details\": {\n        \"currency\": \"USD\",\n        \"salary\": 120000,\n        \"variable_compensation\": 10,\n        \"variable_compensation_type\": \"PERCENTAGE\",\n        \"variable_compensation_title\": \"Annual Bonus\",\n        \"variable_compensation_timeline\": \"ANNUALLY\",\n        \"variable_compensation_effective_date\": \"2024-01-01\",\n        \"signing_bonus\": 5000,\n        \"signing_bonus_payout_type\": \"AFTER_PROBATION\",\n        \"fixed_adjustments\": [\n          {\n            \"name\": \"Internet Allowance\",\n            \"value\": 100,\n            \"opt_out\": false,\n            \"optional\": true,\n            \"description\": \"Monthly internet reimbursement\",\n            \"is_recurring\": true,\n            \"rule_cost_id\": \"rule-cost-123\",\n            \"is_country_specific\": true,\n            \"skipping_confirmation_text\": \"Confirm skipping internet allowance\"\n          }\n        ]\n      }\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/eor")

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  \"body\": {\n    \"data\": {\n      \"client\": {\n        \"team\": {\n          \"id\": \"team-12345\"\n        }\n      },\n      \"employee\": {\n        \"last_name\": \"Doe\",\n        \"first_name\": \"John\",\n        \"nationality\": \"US\",\n        \"email\": \"john.doe@example.com\",\n        \"address\": {\n          \"zip\": \"80202\",\n          \"city\": \"Denver\",\n          \"state\": \"CO\",\n          \"street\": \"1234 Elm Street\",\n          \"country\": \"US\"\n        },\n        \"external_id\": \"ext-employee-001\"\n      },\n      \"job_title\": \"Software Engineer\",\n      \"seniority\": {\n        \"id\": \"seniority-123\"\n      },\n      \"employment\": {\n        \"country\": \"US\",\n        \"start_date\": \"2024-01-15\",\n        \"scope_of_work\": \"Develop and maintain backend services for the company’s main product, ensuring scalability and reliability.\",\n        \"work_visa_required\": false,\n        \"type\": \"Full-time\",\n        \"state\": \"CO\",\n        \"end_date\": \"2025-01-14\",\n        \"holidays\": 15,\n        \"is_hourly\": false,\n        \"time_off_type\": \"STANDARD\",\n        \"seniority_date\": \"2020-01-15\",\n        \"sick_leave_days\": 10,\n        \"probation_period\": 90,\n        \"notice_period_type\": \"STANDARD\",\n        \"work_hours_per_week\": 40,\n        \"probation_period_time_unit\": \"DAY\",\n        \"notice_period_after_probation\": 30,\n        \"notice_period_during_probation\": 14,\n        \"employee_completed_past_probation\": false,\n        \"probation_period_type_for_definite\": \"STANDARD\",\n        \"notice_period_after_probation_time_unit\": \"DAY\",\n        \"notice_period_during_probation_time_unit\": \"DAY\"\n      },\n      \"compensation_details\": {\n        \"currency\": \"USD\",\n        \"salary\": 120000,\n        \"variable_compensation\": 10,\n        \"variable_compensation_type\": \"PERCENTAGE\",\n        \"variable_compensation_title\": \"Annual Bonus\",\n        \"variable_compensation_timeline\": \"ANNUALLY\",\n        \"variable_compensation_effective_date\": \"2024-01-01\",\n        \"signing_bonus\": 5000,\n        \"signing_bonus_payout_type\": \"AFTER_PROBATION\",\n        \"fixed_adjustments\": [\n          {\n            \"name\": \"Internet Allowance\",\n            \"value\": 100,\n            \"opt_out\": false,\n            \"optional\": true,\n            \"description\": \"Monthly internet reimbursement\",\n            \"is_recurring\": true,\n            \"rule_cost_id\": \"rule-cost-123\",\n            \"is_country_specific\": true,\n            \"skipping_confirmation_text\": \"Confirm skipping internet allowance\"\n          }\n        ]\n      }\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/eor")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"body\": {\n    \"data\": {\n      \"client\": {\n        \"team\": {\n          \"id\": \"team-12345\"\n        }\n      },\n      \"employee\": {\n        \"last_name\": \"Doe\",\n        \"first_name\": \"John\",\n        \"nationality\": \"US\",\n        \"email\": \"john.doe@example.com\",\n        \"address\": {\n          \"zip\": \"80202\",\n          \"city\": \"Denver\",\n          \"state\": \"CO\",\n          \"street\": \"1234 Elm Street\",\n          \"country\": \"US\"\n        },\n        \"external_id\": \"ext-employee-001\"\n      },\n      \"job_title\": \"Software Engineer\",\n      \"seniority\": {\n        \"id\": \"seniority-123\"\n      },\n      \"employment\": {\n        \"country\": \"US\",\n        \"start_date\": \"2024-01-15\",\n        \"scope_of_work\": \"Develop and maintain backend services for the company’s main product, ensuring scalability and reliability.\",\n        \"work_visa_required\": false,\n        \"type\": \"Full-time\",\n        \"state\": \"CO\",\n        \"end_date\": \"2025-01-14\",\n        \"holidays\": 15,\n        \"is_hourly\": false,\n        \"time_off_type\": \"STANDARD\",\n        \"seniority_date\": \"2020-01-15\",\n        \"sick_leave_days\": 10,\n        \"probation_period\": 90,\n        \"notice_period_type\": \"STANDARD\",\n        \"work_hours_per_week\": 40,\n        \"probation_period_time_unit\": \"DAY\",\n        \"notice_period_after_probation\": 30,\n        \"notice_period_during_probation\": 14,\n        \"employee_completed_past_probation\": false,\n        \"probation_period_type_for_definite\": \"STANDARD\",\n        \"notice_period_after_probation_time_unit\": \"DAY\",\n        \"notice_period_during_probation_time_unit\": \"DAY\"\n      },\n      \"compensation_details\": {\n        \"currency\": \"USD\",\n        \"salary\": 120000,\n        \"variable_compensation\": 10,\n        \"variable_compensation_type\": \"PERCENTAGE\",\n        \"variable_compensation_title\": \"Annual Bonus\",\n        \"variable_compensation_timeline\": \"ANNUALLY\",\n        \"variable_compensation_effective_date\": \"2024-01-01\",\n        \"signing_bonus\": 5000,\n        \"signing_bonus_payout_type\": \"AFTER_PROBATION\",\n        \"fixed_adjustments\": [\n          {\n            \"name\": \"Internet Allowance\",\n            \"value\": 100,\n            \"opt_out\": false,\n            \"optional\": true,\n            \"description\": \"Monthly internet reimbursement\",\n            \"is_recurring\": true,\n            \"rule_cost_id\": \"rule-cost-123\",\n            \"is_country_specific\": true,\n            \"skipping_confirmation_text\": \"Confirm skipping internet allowance\"\n          }\n        ]\n      }\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/eor', [
  'body' => '{
  "body": {
    "data": {
      "client": {
        "team": {
          "id": "team-12345"
        }
      },
      "employee": {
        "last_name": "Doe",
        "first_name": "John",
        "nationality": "US",
        "email": "john.doe@example.com",
        "address": {
          "zip": "80202",
          "city": "Denver",
          "state": "CO",
          "street": "1234 Elm Street",
          "country": "US"
        },
        "external_id": "ext-employee-001"
      },
      "job_title": "Software Engineer",
      "seniority": {
        "id": "seniority-123"
      },
      "employment": {
        "country": "US",
        "start_date": "2024-01-15",
        "scope_of_work": "Develop and maintain backend services for the company’s main product, ensuring scalability and reliability.",
        "work_visa_required": false,
        "type": "Full-time",
        "state": "CO",
        "end_date": "2025-01-14",
        "holidays": 15,
        "is_hourly": false,
        "time_off_type": "STANDARD",
        "seniority_date": "2020-01-15",
        "sick_leave_days": 10,
        "probation_period": 90,
        "notice_period_type": "STANDARD",
        "work_hours_per_week": 40,
        "probation_period_time_unit": "DAY",
        "notice_period_after_probation": 30,
        "notice_period_during_probation": 14,
        "employee_completed_past_probation": false,
        "probation_period_type_for_definite": "STANDARD",
        "notice_period_after_probation_time_unit": "DAY",
        "notice_period_during_probation_time_unit": "DAY"
      },
      "compensation_details": {
        "currency": "USD",
        "salary": 120000,
        "variable_compensation": 10,
        "variable_compensation_type": "PERCENTAGE",
        "variable_compensation_title": "Annual Bonus",
        "variable_compensation_timeline": "ANNUALLY",
        "variable_compensation_effective_date": "2024-01-01",
        "signing_bonus": 5000,
        "signing_bonus_payout_type": "AFTER_PROBATION",
        "fixed_adjustments": [
          {
            "name": "Internet Allowance",
            "value": 100,
            "opt_out": false,
            "optional": true,
            "description": "Monthly internet reimbursement",
            "is_recurring": true,
            "rule_cost_id": "rule-cost-123",
            "is_country_specific": true,
            "skipping_confirmation_text": "Confirm skipping internet allowance"
          }
        ]
      }
    }
  }
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

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

```csharp
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/v2/eor");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"body\": {\n    \"data\": {\n      \"client\": {\n        \"team\": {\n          \"id\": \"team-12345\"\n        }\n      },\n      \"employee\": {\n        \"last_name\": \"Doe\",\n        \"first_name\": \"John\",\n        \"nationality\": \"US\",\n        \"email\": \"john.doe@example.com\",\n        \"address\": {\n          \"zip\": \"80202\",\n          \"city\": \"Denver\",\n          \"state\": \"CO\",\n          \"street\": \"1234 Elm Street\",\n          \"country\": \"US\"\n        },\n        \"external_id\": \"ext-employee-001\"\n      },\n      \"job_title\": \"Software Engineer\",\n      \"seniority\": {\n        \"id\": \"seniority-123\"\n      },\n      \"employment\": {\n        \"country\": \"US\",\n        \"start_date\": \"2024-01-15\",\n        \"scope_of_work\": \"Develop and maintain backend services for the company’s main product, ensuring scalability and reliability.\",\n        \"work_visa_required\": false,\n        \"type\": \"Full-time\",\n        \"state\": \"CO\",\n        \"end_date\": \"2025-01-14\",\n        \"holidays\": 15,\n        \"is_hourly\": false,\n        \"time_off_type\": \"STANDARD\",\n        \"seniority_date\": \"2020-01-15\",\n        \"sick_leave_days\": 10,\n        \"probation_period\": 90,\n        \"notice_period_type\": \"STANDARD\",\n        \"work_hours_per_week\": 40,\n        \"probation_period_time_unit\": \"DAY\",\n        \"notice_period_after_probation\": 30,\n        \"notice_period_during_probation\": 14,\n        \"employee_completed_past_probation\": false,\n        \"probation_period_type_for_definite\": \"STANDARD\",\n        \"notice_period_after_probation_time_unit\": \"DAY\",\n        \"notice_period_during_probation_time_unit\": \"DAY\"\n      },\n      \"compensation_details\": {\n        \"currency\": \"USD\",\n        \"salary\": 120000,\n        \"variable_compensation\": 10,\n        \"variable_compensation_type\": \"PERCENTAGE\",\n        \"variable_compensation_title\": \"Annual Bonus\",\n        \"variable_compensation_timeline\": \"ANNUALLY\",\n        \"variable_compensation_effective_date\": \"2024-01-01\",\n        \"signing_bonus\": 5000,\n        \"signing_bonus_payout_type\": \"AFTER_PROBATION\",\n        \"fixed_adjustments\": [\n          {\n            \"name\": \"Internet Allowance\",\n            \"value\": 100,\n            \"opt_out\": false,\n            \"optional\": true,\n            \"description\": \"Monthly internet reimbursement\",\n            \"is_recurring\": true,\n            \"rule_cost_id\": \"rule-cost-123\",\n            \"is_country_specific\": true,\n            \"skipping_confirmation_text\": \"Confirm skipping internet allowance\"\n          }\n        ]\n      }\n    }\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = ["body": ["data": [
      "client": ["team": ["id": "team-12345"]],
      "employee": [
        "last_name": "Doe",
        "first_name": "John",
        "nationality": "US",
        "email": "john.doe@example.com",
        "address": [
          "zip": "80202",
          "city": "Denver",
          "state": "CO",
          "street": "1234 Elm Street",
          "country": "US"
        ],
        "external_id": "ext-employee-001"
      ],
      "job_title": "Software Engineer",
      "seniority": ["id": "seniority-123"],
      "employment": [
        "country": "US",
        "start_date": "2024-01-15",
        "scope_of_work": "Develop and maintain backend services for the company’s main product, ensuring scalability and reliability.",
        "work_visa_required": false,
        "type": "Full-time",
        "state": "CO",
        "end_date": "2025-01-14",
        "holidays": 15,
        "is_hourly": false,
        "time_off_type": "STANDARD",
        "seniority_date": "2020-01-15",
        "sick_leave_days": 10,
        "probation_period": 90,
        "notice_period_type": "STANDARD",
        "work_hours_per_week": 40,
        "probation_period_time_unit": "DAY",
        "notice_period_after_probation": 30,
        "notice_period_during_probation": 14,
        "employee_completed_past_probation": false,
        "probation_period_type_for_definite": "STANDARD",
        "notice_period_after_probation_time_unit": "DAY",
        "notice_period_during_probation_time_unit": "DAY"
      ],
      "compensation_details": [
        "currency": "USD",
        "salary": 120000,
        "variable_compensation": 10,
        "variable_compensation_type": "PERCENTAGE",
        "variable_compensation_title": "Annual Bonus",
        "variable_compensation_timeline": "ANNUALLY",
        "variable_compensation_effective_date": "2024-01-01",
        "signing_bonus": 5000,
        "signing_bonus_payout_type": "AFTER_PROBATION",
        "fixed_adjustments": [
          [
            "name": "Internet Allowance",
            "value": 100,
            "opt_out": false,
            "optional": true,
            "description": "Monthly internet reimbursement",
            "is_recurring": true,
            "rule_cost_id": "rule-cost-123",
            "is_country_specific": true,
            "skipping_confirmation_text": "Confirm skipping internet allowance"
          ]
        ]
      ]
    ]]] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/v2/eor")! 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()
```