Deel EOR Hiring API

Hiring guides, contract creation, three-party quote signing

Documentation

📖
Documentation
https://developer.deel.com/api/introduction
📖
GettingStarted
https://developer.deel.com/api/quickstart
📖
Authentication
https://developer.deel.com/api/authentication
📖
Documentation
https://developer.deel.com/api/employer-of-record/introduction
📖
Documentation
https://developer.deel.com/api/employer-of-record/employment-cost-calculator
📖
Documentation
https://developer.deel.com/api/employer-of-record/hiring
📖
Documentation
https://developer.deel.com/api/employer-of-record/accept-quote
📖
Documentation
https://developer.deel.com/api/contractors/introduction
📖
Documentation
https://developer.deel.com/api/contractors/invoice-adjustments
📖
Documentation
https://developer.deel.com/api/contractors/timesheets
📖
Documentation
https://developer.deel.com/api/global-payroll/introduction
📖
Documentation
https://developer.deel.com/api/global-payroll/time-tracking
📖
Documentation
https://developer.deel.com/api/global-payroll/adjustments
📖
Documentation
https://developer.deel.com/api/hris/introduction
📖
Documentation
https://developer.deel.com/api/scim-api/overview
📖
Documentation
https://developer.deel.com/api/hris-common-use-cases/sync-deel-users-to-identity-providers
📖
Documentation
https://developer.deel.com/api/ats-guides/introduction
📖
Documentation
https://developer.deel.com/api/ats-guides/getting-started
📖
Documentation
https://developer.deel.com/api/ats-guides/manage-jobs
📖
Documentation
https://developer.deel.com/api/ats-guides/manage-candidates-and-applications
📖
Documentation
https://developer.deel.com/api/ats-guides/webhooks
📖
Documentation
https://developer.deel.com/api/webhooks/introduction
📖
Documentation
https://developer.deel.com/api/webhooks/quickstart
📖
Documentation
https://developer.deel.com/api/webhooks/events
📖
Documentation
https://developer.deel.com/api/webhooks/simulations
📖
Documentation
https://developer.deel.com/api/platform/screenings
📖
Documentation
https://developer.deel.com/api/platform/immigration
📖
Documentation
https://developer.deel.com/api/deel-it/getting-started/introduction

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

deel-com-eor-hiring-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Deel ATS Adjustments EOR Hiring API
  description: 'Applicant Tracking System API for managing the full recruiting pipeline — jobs and

    job postings, candidates, applications, attachments, offers, departments, locations,

    email templates, hiring members, employment types, application sources, tags, and

    reasons — with an end-to-end candidate-to-contract flow via Deel Hire.

    '
  version: '2026-05-25'
  contact:
    name: Deel Developer Support
    url: https://developer.deel.com/api/ats-guides/introduction
servers:
- url: https://api.letsdeel.com/rest/v2
  description: Production
- url: https://api-sandbox.demo.deel.com/rest/v2
  description: Sandbox
security:
- BearerAuth: []
tags:
- name: EOR Hiring
  description: Hiring guides, contract creation, three-party quote signing
paths:
  /eor/hiring-guide/{country_code}:
    get:
      operationId: getEorHiringGuideByCountry
      summary: Retrieve Detailed Hiring Guide For A Country
      tags:
      - EOR Hiring
      parameters:
      - name: country_code
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Hiring guide
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HiringGuide'
  /eor/start-date:
    get:
      operationId: getStartDate
      summary: Fetch Start Date For EOR Contracts
      description: Returns the earliest legally compliant start date for a country and worker profile.
      tags:
      - EOR Hiring
      parameters:
      - name: country
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Start date
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      earliest_start_date:
                        type: string
                        format: date
                      reasoning:
                        type: string
  /eor/additional-costs:
    get:
      operationId: getAdditionalCosts
      summary: Get EOR Additional Costs
      tags:
      - EOR Hiring
      parameters:
      - name: country
        in: query
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Additional cost items
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/AdditionalCost'
  /eor/contracts:
    post:
      operationId: createEorContract
      summary: Create EOR Contract
      description: 'Creates an EOR contract draft. The contract must then be quoted and signed by all

        three parties (Deel, client, employee).

        '
      tags:
      - EOR Hiring
      parameters:
      - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EorContractCreate'
      responses:
        '201':
          description: EOR contract draft created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EorContract'
  /eor/contracts/{contract_id}/accept-quote:
    post:
      operationId: acceptEorQuote
      summary: Accept Quote
      description: Complete the client side of the three-party signature process.
      tags:
      - EOR Hiring
      parameters:
      - name: contract_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - accepted_by
              properties:
                accepted_by:
                  type: string
                accepted_at:
                  type: string
                  format: date-time
      responses:
        '200':
          description: Quote accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EorContract'
  /eor/contracts/{contract_id}/cancel:
    post:
      operationId: cancelEorContract
      summary: Cancel EOR Contract
      tags:
      - EOR Hiring
      parameters:
      - name: contract_id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                reason:
                  type: string
                effective_date:
                  type: string
                  format: date
      responses:
        '200':
          description: Contract cancelled
components:
  schemas:
    AdditionalCost:
      type: object
      properties:
        name:
          type: string
        amount:
          type: number
        currency:
          type: string
        frequency:
          type: string
          enum:
          - one_time
          - monthly
          - annual
        description:
          type: string
    HiringGuide:
      type: object
      properties:
        data:
          type: object
          properties:
            country:
              type: string
            minimum_wage:
              type: number
            notice_period_days:
              type: integer
            probation_period_days:
              type: integer
            working_hours_per_week:
              type: integer
            mandatory_benefits:
              type: array
              items:
                type: string
            optional_benefits:
              type: array
              items:
                type: string
            public_holidays_per_year:
              type: integer
            paid_time_off_days:
              type: integer
            sick_leave_days:
              type: integer
            maternity_leave_weeks:
              type: integer
            paternity_leave_weeks:
              type: integer
            termination_grounds:
              type: array
              items:
                type: string
    EorWorker:
      type: object
      properties:
        id:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
          format: email
        country:
          type: string
        nationality:
          type: string
        date_of_birth:
          type: string
          format: date
        job_title:
          type: string
        start_date:
          type: string
          format: date
        external_id:
          type: string
    EorContract:
      type: object
      properties:
        id:
          type: string
        status:
          type: string
          enum:
          - draft
          - quoted
          - in_progress
          - active
          - cancelled
          - terminated
          - completed
        country:
          type: string
        salary:
          type: number
        currency:
          type: string
        start_date:
          type: string
          format: date
        employee:
          $ref: '#/components/schemas/EorWorker'
        signatures:
          type: object
          properties:
            client:
              type: object
              properties:
                signed:
                  type: boolean
                signed_at:
                  type: string
                  format: date-time
            employee:
              type: object
              properties:
                signed:
                  type: boolean
                signed_at:
                  type: string
                  format: date-time
            deel:
              type: object
              properties:
                signed:
                  type: boolean
                signed_at:
                  type: string
                  format: date-time
    EorContractCreate:
      type: object
      required:
      - employee
      - country
      - salary
      - currency
      - start_date
      properties:
        employee:
          type: object
          required:
          - first_name
          - last_name
          - email
          properties:
            first_name:
              type: string
            last_name:
              type: string
            email:
              type: string
              format: email
            nationality:
              type: string
            date_of_birth:
              type: string
              format: date
        country:
          type: string
        state:
          type: string
        job_title:
          type: string
        seniority_level_id:
          type: string
        salary:
          type: number
        currency:
          type: string
        salary_frequency:
          type: string
          enum:
          - yearly
          - monthly
        start_date:
          type: string
          format: date
        end_date:
          type: string
          format: date
        scope_of_work:
          type: string
        external_id:
          type: string
  parameters:
    IdempotencyKey:
      name: Idempotency-Key
      in: header
      required: false
      schema:
        type: string
        format: uuid
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: opaque