This guide shows you how to create Employer of Record (EOR) contracts through Deel’s API. With EOR, you can hire full-time employees in countries where you don’t have a legal entity - Deel acts as the legal employer while you maintain day-to-day management of the worker.
Creating an EOR contract involves four main steps:
Before creating contracts, you can estimate employment costs.
Retrieve country-specific requirements for creating an EOR contract. This endpoint returns all required fields, validation rules, and data sources needed for contract creation.
API Endpoint: GET /forms/eor/create-contract/{country_code}
Query Parameters:
country_code (required) - ISO country code (e.g., US, GB, DE)state (required for US/CA/AU) - State or province codestart_date (required) - Proposed start date (YYYY-MM-DD)work_hours_per_week (required) - Weekly hours (e.g., 40)contract_duration_in_days (optional) - Duration for fixed-term contractsResponse includes:
Common lookup endpoints from the response:
GET /legal-entities - Your organization’s legal entitiesGET /lookups/job-titles - Standard job titlesGET /lookups/seniorities - Seniority levelsGET /lookups/currencies - Supported currenciesGET /eor/start-date - Valid start dates for the countryIf you’re using a custom job description, validate it before creating the contract to avoid delays. You can skip this step if using a pre-approved job scope template.
Three approaches for job scope:
GET /eor/job-scopes and pass scope_template_id in the contractquote_validation_log_public_id in the contractscope_of_work directly in contract (may require 24-hour review)API Endpoint: POST /eor/job-scopes/validate
When approved, use the quote_validation_log_public_id when creating the contract. If rejected, you’ll receive feedback within 24 hours.
Retrieve available benefits for the target country to include in the contract.
API Endpoint: GET /eor/benefits
Response includes:
Submit the contract creation request with all the information gathered from the previous steps.
API Endpoint: POST /eor
Required Fields:
Key Response Fields:
contract_id - Use for signing, amendments, and other operationsstatus - Initially under_review, then waiting_for_client_signquote - Monthly cost breakdown (salary + benefits + Deel fee)Once you create the contract, it enters under_review status. Deel will review the contract details and:
Next Steps:
waiting_for_client_sign status (usually within 24 hours)See the Accept quote guide for next steps.
contract_id for signing, amendments, terminations, and other lifecycle operationscontract.created events