# Deel MCP connector

The Deel connector brings people, contracts, time off, groups and legal entities into Claude, ChatGPT, Cursor or any MCP client, so each person can look up and update Deel records within their own access, with every call logged.

Source: https://elaichi.ai/connectors/deel/

## Facts

| | |
| --- | --- |
| Application | Deel |
| Category | HRIS |
| AI tools | 170 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 170 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Deel is connected

- List contractors whose Deel contracts start next month.
- Show approved Deel time offs for the design team.
- Which Deel people have no active contract?

## Connect Deel in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Deel.
2. Optionally set Share with, then press Connect.
3. Paste a Deel API key. One person generates a token in Deel and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Deel tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Deel to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Deel to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Deel to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Deel to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Deel tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Deel through Elaichi

### See who works where, right now

People. Ask for everyone on the team in a given country or group and get the list from Deel without building a report. Pull up one person's record when a question comes in about their start date or entity.

### Set up a new contract after the offer

People. Once a candidate accepts, have the agent create the Deel person and draft their contract with the terms from the offer, then review it before anything is signed.

### Approve and adjust time off in plain language

Managers. Record a team member's vacation in Deel, move the dates when plans change, or remove a request that was entered by mistake, all from the chat you already have open.

### Review contracts before the payroll run

Finance. List every active Deel contract by entity or currency and spot the ones that started, changed or ended this month so the numbers match before payroll closes.

### Keep legal entities current as you expand

Legal. Add a new Deel legal entity when you open in a new country, and update registered details when an address or name changes, so contracts point at the right entity.

### Organize people into the right groups

Operations. Create Deel groups for departments, regions or cost centers, move people between them as teams change, and retire groups that are no longer used.

## Frequently asked questions

### How do I connect Deel to Claude?

In Elaichi, choose Deel and paste in the API key from your Deel account; that is the whole sign-in step, and there is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Claude signs you into Elaichi over OAuth and your Deel records are available in the conversation.

### Does Deel work with ChatGPT and Cursor as well as Claude?

Yes. Deel is connected once in Elaichi, and the same endpoint, https://api.elaichi.ai/mcp, is added to Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. Each client signs in over OAuth, so there is nothing separate to set up per client.

### What can an AI agent actually do with my Deel data?

With Deel connected, an agent can list the people in your organization and open any one of them, create people and contracts, update a contract, and record, change or remove time off. It can also manage groups and legal entities and set up webhooks that notify other systems when something changes in Deel. Short, concrete asks work best, such as "list contracts in the Germany entity" rather than a long paragraph.

### Does connecting Deel give the AI access to everyone's contracts and pay details?

No. Every request to Deel runs under the access of the person who signed in, so an agent sees only the people, contracts and entities that person could already see in Deel. Elaichi can narrow that further, for example to read-only or to a subset of actions, and it never widens what Deel itself allows.

### Can my team share one Deel connection?

Yes. One person adds the Deel API key in Elaichi and shares the connection with a team, and nobody else ever sees or handles the key. Each teammate still signs into Elaichi as themselves, so the audit log records who made each Deel request by name.

### Can I stop an agent from deleting or changing things in Deel?

Yes. Restrictions in Elaichi apply per action, so you can allow reading Deel people and contracts while blocking the actions that create contracts, delete time off or remove legal entities. A blocked action is never advertised to Claude, ChatGPT or any other client, so no prompt, however worded, can reach it.

### What happens to a Deel connection when someone leaves?

When a person is offboarded in Elaichi, their access to Deel through every client ends at once. A Deel connection shared with a team keeps working for everyone else, because the key was never in that person's hands. If you want Deel gone entirely, disconnect it once in Elaichi and it disappears from Claude, ChatGPT, Cursor and every other client together.

## All 170 Deel tools

Every tool below is callable through https://api.elaichi.ai/mcp once Deel is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Deel people** (List). List people records in Deel. Returns: id, state, emails, country, is_pwac, timezone, addresses, full_name, job_title, last_name, seniority, worker_id, birth_date, created_at, department, first_name, start_date, updated_at, employments, external_id, hiring_type, hiring_status, nationalities, person_status, work_location, direct_manager, direct_reports, completion_date, new_hiring_status,…
- **Get single Deel person by ID** (Get). Get a single Deel person record by id. Returns: id, state, emails, country, timezone, addresses, full_name, job_title, last_name, seniority, worker_id, birth_date, created_at, department, first_name, start_date, updated_at, employments, external_id, hiring_type, hiring_status, nationalities, work_location, direct_manager, direct_reports, completion_date, new_hiring_status, additional_details,…
- **Create a Deel person** (Create). Create a new person record in Deel. Returns: id, employee, employment, compensation_details, created_at, updated_at.
- **List all Deel contracts** (List). List deel contracts with optional filtering by status, type, team, country, currency, or search term. Returns: id, scale, title, client, status, worker, created_at, signatures, external_id, invitations, is_archived, is_shielded, who_reports, cost_centers, notice_period, fte_percentage, termination_date, amount, reported_by, reviewed_by, approval_requested.
- **Get single Deel contract by ID** (Get). Retrieve a single deel contract by id. Returns the full contract record including id, title, type, status, created_at, updated_at, start_date, termination_date, client, worker, signatures, invitations, is_archived, special_clause, compensation_details, employment_details, and optional cost_centers. Required: id.
- **Create a Deel contract** (Create). Create a new contract in deel. Returns: id, quote, title, client, status, worker, job_title, seniority, created_at, signatures, start_date, external_id, invitations, is_archived, who_reports, custom_fields, notice_period, scope_of_work, special_clause, termination_date, work_statement_id, employment_details, compensation_details, updated_at, is_shielded, scale, fte_percentage, cost_centers,…
- **Update a Deel contract by ID** (Update). Update an existing deel contract by id using a partial PATCH request. Returns: id, quote, title, client, status, worker, job_title, seniority, created_at, signatures, start_date, updated_at, external_id, invitations, is_archived, who_reports, cost_centers, custom_fields, notice_period, scope_of_work, work_schedule, special_clause, employment_type, termination_date, contract_template,…
- **List all Deel time offs** (List). List time-off requests for the authenticated Deel organization with optional filtering by status, date ranges, policy types, and specific IDs. Returns: id, amount, reason, status, is_paid, end_date, created_at, start_date, updated_at, approved_at, description, contract_oid, requested_at, half_end_date, time_off_type, half_start_date, deduction_amount, entitlement_unit, time_off_dailies,…
- **Create a Deel time off** (Create). Create a new time-off request for a worker in Deel. Returns the created record including id, status, start_date, end_date, amount, is_paid, attachments, time_off_dailies, recipient_profile, created_at, and updated_at. Required: data.recipient_profile_id, data.start_date, data.end_date.
- **Update a Deel time off by ID** (Update). Update an existing time-off request in Deel by id. Returns the updated record including id, status, start_date, end_date, amount, is_paid, entitlement_unit, time_off_type, recipient_profile, created_at, and updated_at. Required: id.
- **Delete a Deel time off by ID** (Delete). Delete a time-off request in Deel by id. Returns an empty 204 response on success. Required: id.
- **List all Deel webhooks** (List). List Deel webhook subscriptions. Returns each subscription including id, url, description, events, signing_key, created_at, and updated_at.
- **Get single Deel webhook by ID** (Get). Get a single Deel webhook subscription by id. Returns id, url, description, events, signing_key, created_at, and updated_at. Required: id.
- **Create a Deel webhook** (Create). Create a new Deel webhook subscription. Returns the created subscription including id, url, description, events, signing_key, created_at, and updated_at. Required: url, events.
- **Update a Deel webhook by ID** (Update). Edit an existing Deel webhook subscription by id. Returns the updated subscription including id, url, description, events, signing_key, created_at, and updated_at. Required: id.
- **Delete a Deel webhook by ID** (Delete). Delete a Deel webhook subscription by id. Returns a 200 success response on deletion. Required: id.
- **List all Deel groups** (List). List groups in the Deel organization. Returns: id, name, status, managers, created_at, updated_at, archived_at, external_metadata. Archived groups are included by default and can be excluded via include_archived_groups.
- **Create a Deel group** (Create). Create a new group in the Deel organization. Returns: id, name, created_at, updated_at, external_metadata. Required: data.name (max 48 characters).
- **Update a Deel group by ID** (Update). Apply a partial update to an existing Deel group. Only fields included in the request body are modified; omitted fields retain their current values. Returns: id, name, created_at, updated_at, external_metadata. Required: id, data.name.
- **Delete a Deel group by ID** (Delete). Soft-delete (archive) a Deel group by id. The group is not permanently removed. Returns: archived_at. Required: id.
- **List all Deel legal entities** (List). List deel legal entities with optional filtering by country, entity type, global payroll flag, and archived status. Returns: id, name, phone, vat_id, address, country, created_at, sic_number, updated_at, archived_at, entity_type, industry_name, entity_subtype, registrationNumber, company_identifiers.
- **Create a Deel legal entity** (Create). Create a new legal entity in deel. Returns: id, name, phone, address, created_at, sic_number, updated_at, entity_type, company_identifiers. Pass all fields inside a `data` wrapper object; Required: data (name, entity_type, address — street, city, country, zip — phone, company_identifiers — registration_number, tax_number — and sic_number).
- **Update a Deel legal entity by ID** (Update). Apply a partial update to an existing deel legal entity by id; only fields included in the request body are modified. Returns: id, name, phone, address, sic_number, entity_type, industry_name, company_identifiers. Required: id.
- **Delete a Deel legal entity by ID** (Delete). Archive a deel legal entity by id, marking it as inactive without permanently removing it. Returns: archived_at. Required: id.
- **List all Deel departments** (List). List all departments within the authenticated user's Deel organization. Returns: id, name, parent.
- **List all Deel invoices** (List). List Deel invoices. By default only paid invoices are returned; pass status=all to include all statuses. Returns: id, label, total, amount, status, vat_id, paid_at, currency, deel_fee, due_date, issued_at, vat_total, created_at, is_overdue, contract_id, vat_percentage, recipient_legal_entity_id.
- **Get single Deel invoice by ID** (Get). Get a single Deel invoice by id. Returns the full invoice record including id, label, total, status, currency, created_at, paid_at, issued_at, due_date, worker_id, line_items, and recipient_legal_entity_id. Required: id.
- **List all Deel payments** (List). List payment receipts in Deel. Returns a paginated list of payments including id, label, status, paid_at, created_at, total, total_due, payment_currency, deel_reference, workers, invoices, payment_method, and credit usage breakdowns. Optionally filter by date_from, date_to, currencies, entities, or statuses.
- **List all Deel managers** (List). List all managers in a deel organization. Returns: id, email, last_name, first_name.
- **Create a Deel manager** (Create). Create a new manager in a deel organization. Returns: id, email, last_name, first_name. Required: data (containing first_name, last_name, and email).
- **List all Deel organizations** (List). Get the current organization in Deel associated with the authentication token. The organization is resolved automatically from the token — no additional identifier is required. Returns: id, name.
- **List all Deel onboarding trackers** (List). List workers currently going through onboarding in Deel. Returns: name, unique_id, hiring_type, contract, progress, hris_profile, app_experience.
- **Get single Deel onboarding tracker by ID** (Get). Get a Deel onboarding tracker by id. Returns the full onboarding detail including profile (name, email, country, previously_onboarded), contract (id, status, created_at, employee_agreement, first_early_invoice), progress (status, reference_date, subject_to_overdue, is_action_required_from_client), checklist (steps), stepper, summary, hiring_type, and hris_profile. Required: id.
- **List all Deel offboarding trackers** (List). List deel offboarding trackers for contracts currently in the offboarding process. Returns: name, unique_id, hiring_type, offboarding_type, termination_id, contract, progress, hris_profile, app_experience. By default results are scoped to a 45-day date range; set ignore_date_range to true to retrieve all terminations regardless of date.
- **Get single Deel offboarding tracker by ID** (Get). Get termination details for a specific deel offboarding tracker by its unique id. Returns: summary, contract, progress, hiring_type, termination, hris_profile, app_experience. Required: id.
- **List all Deel hris organization structures** (List). List Deel HRIS organization structures, returning the organization's hierarchical structure including departments and teams. Returns: id, name, roles, teams, created_at, external_id, teams_count, enable_roles, is_multiselect, value, currency, raw_value, updated_at, is_editable, is_required, is_inherited, inherited_from.
- **Get single Deel hris organization structure by ID** (Get). Get a single Deel HRIS organization structure by id. Returns: id, name, roles, teams, external_id, teams_count, enable_roles, is_multiselect, value, currency, raw_value, created_at, updated_at, is_editable, is_required, is_inherited, inherited_from. Required: id.
- **Create a Deel hris organization structure** (Create). Create a new Deel HRIS organization structure. Returns the created record including id, name, type, created_at, updated_at, external_id, enable_roles, is_multi_select, and organization_id.
- **Update a Deel hris organization structure by ID** (Update). Update an existing Deel HRIS organization structure including its name, settings, and teams hierarchy. Returns: id, name, teams, external_id, enable_roles, is_multiselect, value, currency, raw_value, created_at, updated_at, is_editable, is_required, is_inherited, inherited_from. Required: id.
- **Delete a Deel hris organization structure by ID** (Delete). Delete a Deel HRIS organization structure by id. Returns an empty 204 response on success. Required: id.
- **List all Deel currencies** (List). List the bank account form guide fields for a specific country and currency combination in Deel. Returns an array of field descriptors including key, type, is_required, ui_guide (with label, order, and helper_text), validations, and values_allowed. Required: country, currency.
- **List all Deel invoice adjustments** (List). List invoice adjustments in Deel, filtered by contract, type, status, invoice, reporter, or date range. Returns: id, scale, status, contract, quantity, worksheet, attachment, created_at, invoice_id, description, reported_by, reviewed_by, custom_scale, total_amount, currency_code, payment_cycle, date_submitted, hourlyReportPreset, approvers, invoice_public_id.
- **Get single Deel invoice adjustment by ID** (Get). Get a single Deel invoice adjustment by id. Returns: id, scale, status, contract, quantity, approvers, worksheet, attachment, created_at, invoice_id, description, reported_by, reviewed_by, custom_scale, total_amount, currency_code, payment_cycle, date_submitted, invoice_public_id, hourlyReportPreset. Required: id.
- **Create a Deel invoice adjustment** (Create). Create a Deel invoice adjustment — such as a bonus, commission, VAT percentage, or deduction — against a contract. Returns: id, status, created, created_at. Required: contract_id, date_submitted, type, description, amount. Pass recurring=true in the query to apply the adjustment automatically to future invoices.
- **Update a Deel invoice adjustment by ID** (Update). Update an existing Deel invoice adjustment by id. Returns: updated, id, scale, status, contract, quantity, worksheet, attachment, created_at, invoice_id, description, reported_by, reviewed_by, custom_scale, total_amount, currency_code, payment_cycle, date_submitted, approvers, invoice_public_id, hourlyReportPreset. Required: id.
- **Delete a Deel invoice adjustment by ID** (Delete). Delete a Deel invoice adjustment by id. Returns an empty 204 response on success. Required: id.
- **Get single Deel adjustment by ID** (Get). Retrieve a specific Deel adjustment by its id. Returns: id, file, title, amount, status, created_at, updated_at, contract_id, description, cycle_reference, move_next_cycle, date_of_adjustment, actual_end_cycle_date, adjustment_category_id, actual_start_cycle_date. Required: id.
- **Create a Deel adjustment** (Create). Create a new payroll adjustment for a Deel contract, modifying the payment amount on the next payment cycle. Returns: id, file, title, amount, status, created_at, updated_at, contract_id, description, cycle_reference, move_next_cycle, date_of_adjustment, actual_end_cycle_date, adjustment_category_id, actual_start_cycle_date. Required: contract_id, amount, title, description,…
- **Update a Deel adjustment by ID** (Update). Apply a partial update to an existing Deel adjustment; only fields included in the request body are modified and omitted fields retain their current values. Returns: updated. Required: id.
- **Delete a Deel adjustment by ID** (Delete). Permanently delete a Deel adjustment by its id. Returns: data. Required: id.
- **List all Deel benefits** (List). List benefits associated with a Deel EOR contract. Returns: id, name, plan, provider, offer_status, enrollment_details. Required: contract_id.
- **List all Deel entitlements** (List). List time-off entitlements for a Deel HRIS profile, including balances and allocations per time-off type. Returns: id, used, accrued, expired, approved, allowance, available, requested, accrual_amount, accrual_unit, balance_adjusted, upcoming_accruals, total_entitlements, is_allowance_unlimited, tracking_period, tracking_period_end_date, time_off_event_id, past_tracking_periods, events,…
- **List all Deel people custom fields** (List). List all people custom field definitions configured for the organization in deel. Returns each field's id, name, type, settings (including access, required, is_enabled, countries, worker_types), placement, created_at, and description. No required parameters.
- **Get single Deel people custom field by ID** (Get). Get a single people custom field definition by its id in deel. Returns the field's id, name, type, settings (including access, required, is_enabled, countries, worker_types), placement, created_at, and description. Required: id.
- **List all Deel events types** (List). List all webhook event types available in Deel. Returns: id, module_name, module_label, name, description, payload_example, created_at, updated_at, alias, label, options, input_type, local_name, is_optional, required_by, display_order, can_be_skipped, validation_rule, validation_error_message.
- **List all Deel contract off cycle payments** (List). List all off-cycle payments for a Deel contract. Returns: id, amount, status, created_at, description, reported_by, currency_code, date_submitted. Required: contract_id.
- **Get single Deel contract off cycle payment by ID** (Get). Retrieve a single off-cycle payment by id for a Deel contract. Returns: id, amount, status, created_at, description, reported_by, currency_code, date_submitted, title, reviewed_by, approval_requested. Required: contract_id, id.
- **Create a Deel contract off cycle payment** (Create). Create a new off-cycle payment for a Deel contract outside the regular payment schedule. Returns: id, created. Required: contract_id, data.amount, data.description, data.date_submitted.
- **List all Deel it orders** (List). List all IT equipment orders in Deel for the organization, spanning both historical and current procurement requests. Returns: id, status, created_at, updated_at, user, order_items.
- **Get single Deel it order by ID** (Get). Get a single Deel IT equipment order by id. Returns: id, status, created_at, updated_at, user, order_items. Required: id.
- **List all Deel it assets** (List). List all IT assets historically or currently managed by the organization in Deel. Returns: id, grade, status, product, location, ownership, created_at, updated_at, assigned_user, purchase_date, serial_number, purchase_value, assigned_warehouse. Optionally filter by hris_profile_id, location, category, or status. Max 100 assets per page.
- **Get single Deel it asset by ID** (Get). Get a single Deel IT asset by id. Returns the full asset record including id, grade, status, product details, location, ownership, assigned_user, purchase_date, serial_number, purchase_value, and assigned_warehouse. Required: id.
- **Get single Deel contract preview by ID** (Get). Get a preview of a Deel IC or EOR contract agreement as rendered HTML. Returns the HTML string content of the contract document for the given id; the response is text/html and cannot be enumerated as structured JSON fields. Required: id. Global Payroll contract types are not supported.
- **Get single Deel contract invite by ID** (Get). Get the worker signing invite link for a specific Deel contract. Returns the signing invitation link as a string URL. Required: id.
- **Create a Deel group clone** (Create). Clone an existing Deel group by id, creating a duplicate of the specified group. Returns: id, name, created_at, updated_at, external_metadata. Required: id.
- **List all Deel contracts custom fields** (List). List all contract custom field definitions configured in deel. Returns field metadata (not per-contract values) including id, name, type, settings, placement, created_at, and description for each defined field.
- **Get single Deel contracts custom field by ID** (Get). Get a single contract custom field definition by id in deel. Returns the field's id, name, type, settings, placement, created_at, and description. Required: id.
- **List all Deel contract custom fields** (List). List all custom fields associated with a Deel contract. Returns: id, data, name, title, amount, status, created_at, reported_by, reviewed_by, approval_requested. Required: contract_id.
- **Update a Deel contract custom field by ID** (Update). Create or update a custom field value on a Deel contract. This is a full replacement operation — any custom field values not included in the request body will be removed. Returns an empty 200 response on success. Required: contract_id, data.
- **Delete a Deel contract custom field by ID** (Delete). Delete (clear) the value of a custom field on a Deel contract by custom field id. Returns an empty 204 response on success. Required: contract_id, id.
- **List all Deel eor contract amendments** (List). List all amendments for a Deel EOR contract. Returns each amendment record including id, type, items, scope, salary, currency, effective_date, created_at, employment_type, fixed_adjustments, variable_compensation, and amendment_statuses. Required: contract_id.
- **Get single Deel eor contract amendment by ID** (Get). Get a single amendment for a Deel EOR contract by id. Returns the amendment record including id, type, items, scope, salary, currency, effective_date, created_at, employment_type, fixed_adjustments, variable_compensation, and amendment_statuses. Required: contract_id, id.
- **Create a Deel eor contract amendment** (Create). Create a new amendment for a Deel EOR contract. Returns the created amendment record including id, type, items, scope, salary, currency, effective_date, created_at, employment_type, fixed_adjustments, variable_compensation, and amendment_statuses. Required: contract_id.
- **Update a Deel eor contract amendment by ID** (Update). Update an existing amendment on a Deel EOR contract. Returns: data, id, created_at, updated_at, success, contractOid, is_employee_onboarding_delayed. Required: contract_id, id.
- **Delete a Deel eor contract amendment by ID** (Delete). Delete an amendment from a Deel EOR contract by id. Returns an empty 204 response on success. Required: contract_id, id.
- **List all Deel contract amendments** (List). List all amendments for a deel IC contract with optional filtering by status and sign status. Returns: id, rate, scale, status, created_at, updated_at, sign_status, contract_name, contract_type, currency_code, effective_date, title, amount, reported_by, reviewed_by, approval_requested. Required: contract_id.
- **Create a Deel contract amendment** (Create). Create an amendment for a deel IC contract, supporting changes to rate, scale, currency, effective date, scope of work, and job title. Returns: id, rate, scale, status, created, job_title, worker_id, created_at, updated_at, currency_code, scope_of_work, special_clause, termination_notice_days, amount, attachment, date_submitted. Required: contract_id.
- **List all Deel contract milestones** (List). List all milestones associated with a specific Deel contract, including each milestone's title, amount, status, dates, and creator/reviewer information. Returns: id, title, amount, status, created_at, description, reported_by, reviewed_by, approval_requested. Required: contract_id.
- **Get single Deel contract milestone by ID** (Get). Get a single milestone from a Deel contract by id. Returns: id, title, amount, status, created_at, description, reported_by, reviewed_by, approval_requested. Required: contract_id, id.
- **Create a Deel contract milestone** (Create). Create a new payment milestone on a Deel milestone-based contract. After creation the milestone enters a review workflow before payment is processed. Returns: created, id, amount, status, attachment, date_submitted, description. Required: contract_id, data.
- **Delete a Deel contract milestone by ID** (Delete). Permanently delete a specific milestone from a Deel contract. This operation is irreversible. Returns: data. Required: contract_id, id.
- **Create a Deel contract invitation** (Create). Send a signing invitation email to a worker for a Deel contract, setting their email as the expected signer. If the contract was previously rejected, resets it to a signing-eligible state. Returns: created, id, amount, status, attachment, date_submitted. Required: contract_id.
- **Delete a Deel contract invitation by ID** (Delete). Remove the active signing invitation from a Deel contract, allowing a new invitation to be issued to the worker. Returns: deleted, id, amount, status, attachment, date_submitted. Required: contract_id.
- **Create a Deel contract signature** (Create). Sign a Deel employee contract on behalf of a contractor, transitioning the contract status to active and completing the contractor onboarding workflow. Returns: created, id, amount, status, attachment, date_submitted. Required: contract_id, signature.
- **Create a Deel eor worker contract signature** (Create). Create a signature on a deel EOR worker contract. Returns: created, id, amount, status, attachment, date_submitted. Required: contract_id.
- **Create a Deel worker contract signature** (Create). Sign a worker contract in Deel, recording the worker's signature on the contract identified by contract_id. Returns: id, is_signed, created_at, updated_at, amount, status, attachment, date_submitted. Required: contract_id and worker_signature.
- **Get single Deel personal by ID** (Get). Get personal information for a Deel worker by id. Returns: id, kyc, ooo, addresses, worker_id, work_email, external_id, demographics, date_of_birth, nationalities, phone_numbers, personal_email, preferred_name, legal_last_name, legal_first_name, emergency_contacts. Required: id.
- **Update a Deel personal by ID** (Update). Partially update personal information for a Deel worker by id; only fields included in the request body are modified. Returns an empty 204 response on success. Required: id, data.
- **Get single Deel external personal by ID** (Get). Get a worker's personal information record by external ID in Deel. Returns an empty 204 response on success. Required: id.
- **Update a Deel external personal by ID** (Update). Update the personal information record for an external worker in Deel by id. Returns: id. Required: id.
- **List all Deel contract ic invoicing taxes** (List). Get the VAT and withholding tax settings configured for a Deel independent contractor contract. Returns: id, vat, withholding_tax, title, amount, status, created_at, reported_by, reviewed_by, approval_requested. Required: contract_id.
- **Create a Deel contract ic invoicing tax** (Create). Create an IC invoicing tax entry for a Deel independent contractor contract. Returns an empty 201 response on success. Required: contract_id, data.tax_type, data.percentage.
- **Update a Deel contract ic invoicing tax by ID** (Update). Partially update an IC invoicing tax for a Deel independent contractor contract by specifying the tax type and revised percentage. Returns an empty 204 response on success. Required: contract_id, data.tax_type, data.percentage.
- **Delete a Deel contract ic invoicing tax by ID** (Delete). Permanently delete a specific IC invoicing tax from a Deel independent contractor contract. This action is irreversible and takes effect on future invoices. Returns an empty 204 response on success. Required: contract_id, id, tax_type.
- **List all Deel ats candidates** (List). List Deel ATS candidates with optional filters by search text, job IDs, department IDs, tag IDs, stage category or default type slugs, or update timestamp. Returns each candidate's id, email, first_name, last_name, numeric_id, created_at, updated_at, phone_number, applications, candidate_tags, and total_applications_count. Max 100 per page.
- **Create a Deel ats candidate** (Create). Create a new Deel ATS candidate record. Returns the created candidate object including id, first_name, last_name, email, numeric_id, source, phone_number, pic_url, linkedin_profile_url, created_at, and updated_at. Required: data.first_name, data.last_name, data.email.
- **Create a Deel ats candidate tag** (Create). Create a tag for a candidate in Deel ATS by posting to the candidate's tags sub-resource. Returns: id, tag_id, created_at, candidate_id, tag, job, candidate, numeric_id, job_posting, source_slug, job_employment_type, submitter_ip_address, submitter_user_agent, moved_to_current_stage_at, application_form_submission, application_job_criterias_matchings, created_by_hris_organization_user_id,…
- **List all Deel ats applications** (List). List ATS applications in Deel across all open positions, with optional filtering by job, interview plan stage, candidate tags, source slugs, stage type, and last-updated timestamp. Returns each application's id, numeric_id, candidate, job, source_slug, created_at, moved_to_current_stage_at, and current_application_interview_plan_stage. Max 100 per page.
- **Get single Deel ats application by ID** (Get). Retrieve a single ATS application by id in Deel. Returns the full application record including id, job, candidate (with tags and attachments), notes, source_slug, job_board, created_at, updated_at, numeric_id, application_form_submission answers, application_job_criterias_matchings, current_application_interview_plan_stage, all_application_interview_plan_stages (with offers), and…
- **Create a Deel ats application** (Create). Create a new ATS application in Deel. Returns the created application record including id, numeric_id, candidate, job, source_slug, created_at, moved_to_current_stage_at, and current_application_interview_plan_stage.
- **List all Deel ats jobs** (List). List ATS jobs in Deel with optional filtering by search text, interview plan, locations, teams, employment types, departments, status, and updated_after timestamp. Returns: id, title, status, job_teams, created_at, updated_at, job_locations, hiring_members, is_confidential, job_departments, approval_rule_id, applications_count, approval_request_id, current_compensation, job_employment_types,…
- **Create a Deel ats job** (Create). Create a new ATS job in Deel. Returns: id, title, status, job_teams, created_at, updated_at, job_locations, is_confidential, job_departments, approval_rule_id, approval_request_id, job_employment_types, richtext_description, created_by_hris_organization_user_id, job, candidate, numeric_id, job_posting, source_slug, job_employment_type, submitter_ip_address, submitter_user_agent,…
- **List all Deel contractors methods** (List). List all payout methods in deel associated with the authenticated contractor account. Returns: address, payload, is_default, method_name, payment_method, selectedOption, id, status. Optionally filter to only the default method using is_default.
- **Create a Deel contractors method** (Create). Create a new bank transfer payout method in deel. The request payload structure is dynamic and determined by the selected_option; retrieve field requirements before submitting. Returns: id, status. Required: data.
- **Update a Deel contractors method by ID** (Update). Fully replace a bank transfer payout method in deel by id. All fields must be supplied as this is a complete replacement, not a partial update. Returns: id, status. Required: id, data.
- **List all Deel eor workers compliance documents** (List). List compliance documents required for EOR workers in Deel. Returns a documents array where each item includes id, name, status, country, is_optional, uploaded_at, has_template, fillable, filenames, rejection_message, required_in_30_days, and is_acknowledgement_only_document.
- **Create a Deel eor workers compliance document** (Create). Upload a compliance document for a specific EOR worker in Deel. Accepts PNG, JPG, JPEG, HEIC, or PDF files as a multipart upload. Returns: success, id, name, plan, provider, offer_status, enrollment_details. Required: id.
- **List all Deel worker compliance documents** (List). List compliance documents for workers in deel. Returns a `documents` array where each item includes id, name, status, country, is_optional, uploaded_at, has_template, rejection_message, and is_acknowledgement_only_document. Applicable for both independent contractors and EOR employees.
- **List all Deel four oh one k plans** (List). List 401k plans for a specific legal entity in deel. Returns: id, name, details, end_date, start_date, contribution_type, contribution_value, contribution_value_for_match_rate. Required: id (the legal entity identifier).
- **Create a Deel four oh one k plan** (Create). Create a new 401k plan for a legal entity in deel. Returns: id, name, details, currency, start_date, contribution_type, contribution_limit, contribution_value, contribution_value_for_match_rate. Required: legal_entity_id.
- **Update a Deel four oh one k plan by ID** (Update). Update an existing 401k plan for a legal entity in deel. Returns: id, name, details, end_date, start_date, contribution_type, contribution_limit, contribution_value, contribution_value_for_match_rate. Required: legal_entity_id, id.
- **Get single Deel contract plan enrollment by ID** (Get). Get 401(k) enrollment settings for a Deel contract under a legal entity. Returns the enrollment object including id, type, contribution_type, contribution_limit, and contribution_value. Required: legal_entity_id, contract_id, id.
- **Create a Deel contract plan enrollment** (Create). Enroll an employee in a Deel 401(k) plan for a specific contract under a legal entity. Returns the enrollment object including id, type, contribution_type, contribution_limit, and contribution_value. Required: legal_entity_id, contract_id, id, type, contribution_limit.
- **Get single Deel onboarding tracker hris profile by ID** (Get). Get a single Deel onboarding tracker HRIS profile field by id. Returns: profile, stepper, summary, contract, progress, checklist, hiring_type, hris_profile, id, name, value, currency, raw_value, created_at, updated_at, is_editable, is_required, is_inherited, inherited_from. Required: id.
- **Get single Deel offboarding tracker hris profile by ID** (Get). Get a single HRIS profile record from the Deel offboarding tracker by id. Returns: summary, contract, progress, hiring_type, termination, hris_profile, app_experience, id, name, value, currency, raw_value, created_at, updated_at, is_editable, is_required, is_inherited, inherited_from. Required: id.
- **List all Deel contract invoice adjustments** (List). List invoice line items (adjustments) for a deel contract. Returns: id, scale, status, contract, quantity, worksheet, attachment, created_at, invoice_id, description, reported_by, reviewed_by, custom_scale, total_amount, currency_code, payment_cycle, date_submitted, title, amount, approval_requested. Required: contract_id. Supports optional filtering by contract_types, types, statuses,…
- **List all Deel contract adjustments** (List). List all adjustments associated with a specific Deel contract, optionally scoped to a date range. Returns: id, file, title, amount, status, created_at, updated_at, contract_id, description, cycle_reference, move_next_cycle, date_of_adjustment, actual_end_cycle_date, adjustment_category_id, actual_start_cycle_date, reported_by, reviewed_by, approval_requested. Required: contract_id.
- **List all Deel contract payment cycles** (List). List scheduled payment cycles for a specific Deel contract. Returns: id, status, due_date, title, amount, created_at, reported_by, reviewed_by, approval_requested. Required: contract_id.
- **List all Deel contract details** (List). Retrieve EOR contract details for a specific Deel contract. Returns: id, status, created_at, updated_at, description, title, amount, reported_by, reviewed_by, approval_requested. Required: contract_id.
- **List all Deel lookups seniorities** (List). List predefined seniority levels supported by the Deel platform. Returns: id, name, level. When is_eor_contract is true, C-level seniorities are excluded from the response.
- **List all Deel adjustments categories** (List). List available adjustment categories in Deel, optionally filtered by contract type. Returns: id, name, label, unit_type. Category IDs returned here are required when creating adjustments.
- **List all Deel offboarding time offs** (List). List time off entitlements, balances, and upcoming time offs for an employee contract in Deel, scoped to offboarding. Returns: contract_id, tracking_type, has_external_integration, remaining_balance, policy_settings, entitlements, upcoming_time_offs. Required: contract_id.
- **List all Deel eor job scopes** (List). List EOR job scope templates in deel, returning predefined and custom templates available for EOR contracts. Returns: id, created_at, updated_at, name, plan, provider, offer_status, enrollment_details. Optionally filter results to a specific team using the team parameter.
- **List all Deel eor additional costs** (List). List EOR additional costs available for a specified country in deel, returning the allowances and non-statutory costs eligible for inclusion in an EOR contract quote. Returns: allowances, nonStatutory, id, name, plan, provider, offer_status, enrollment_details. Required: country.
- **List all Deel eor create contracts** (List). Fetch the versioned EOR contract form definition for a specified country in Deel, including fields, validation rules, and conditional logic. Returns: pages, id, title, amount, status, created_at, reported_by, reviewed_by, approval_requested. Required: country_code.
- **List all Deel validation settings** (List). List amendment validation settings for an EOR contract in Deel, returning the editable data points and their constraints. Returns: data_point, rules, salary, holiday, currency, probation, health_insurance. Required: contract_id.
- **List all Deel amendment effective date limitations** (List). Retrieve effective date validation rules for a specific EOR contract amendment in deel. Returns: message, is_hidden, is_disabled, max_effective_date, min_effective_date, default_effective_date. Required: contract_id, amendment_id.
- **List all Deel visa requirement businesses** (List). List visa requirement businesses in Deel. Returns: id, title, fields, total_fee.
- **List all Deel knowledge hub country guides** (List). List Deel Knowledge Hub country guides for a given country, returning audience records segmented by contract type and category. Returns: name, value, categories, contract_types, allowances, nonStatutory. Required: country_code.
- **List all Deel kyc details** (List). Get a worker's KYC verification details in Deel by supplying either worker_profile_id or profile_id (mutually exclusive). Returns: kyc_status, identity_document_type, identity_document_name, identity_document_number, submission_date, approval_date, rejection_date, expiration_date, document_extracted_first_name, document_extracted_last_name, document_extracted_middle_name, created_at, updated_at.
- **List all Deel ats application sources** (List). List available ATS application sources in Deel. Returns: id, slug, created_at, updated_at.
- **List all Deel ats reasons** (List). List ATS rejection and archivation reasons in Deel. Returns: id, label, created_at, jobs_count, updated_at, subgroup_slug, email_template, candidates_count, reason_group_slug, job, candidate, numeric_id, job_posting, source_slug, job_employment_type, submitter_ip_address, submitter_user_agent, moved_to_current_stage_at, application_form_submission, application_job_criterias_matchings,…
- **List all Deel ats attachments** (List). List ATS attachment files in Deel for a specific entity, scoped by entity type and attachment type. Returns: id, url, file_name, ai_summary, created_at, updated_at, attachable_id, file_content_type, attachable_type_slug, attachment_type_slug, created_by_hris_organization_user_id, job, candidate, numeric_id, job_posting, source_slug, job_employment_type, submitter_ip_address, submitter_user_agent,…
- **List all Deel ats employment types** (List). List employment types available in the Deel ATS. Returns a paginated collection of employment type records including id, name, created_at, and updated_at.
- **List all Deel ats offers** (List). List ATS offers in Deel associated with the organization. Returns: id, email, job_title, created_at, start_date, updated_at, worker_type, country_code, offer_status, attachment_id, approval_rule_id, approval_request_id, compensation_amount, rejection_reason_id, compensation_currency, application_interview_plan_stage_id, job, candidate, numeric_id, job_posting, source_slug, job_employment_type,…
- **List all Deel ats interviews** (List). List Deel ATS interviews for the organization. Returns: id, ends_at, timezone, starts_at, created_at, updated_at, application, meeting_url, status_enum, application_activity, application_activity_id, job, candidate, numeric_id, job_posting, source_slug, job_employment_type, submitter_ip_address, submitter_user_agent, moved_to_current_stage_at, application_form_submission,…
- **List all Deel ats locations** (List). List all ATS work locations in Deel associated with the organization, suitable for use when constructing job postings or filtering by location. Returns: id, city, name, is_remote, created_at, updated_at, country_code, location_group, province_or_region_text, job, candidate, numeric_id, job_posting, source_slug, job_employment_type, submitter_ip_address, submitter_user_agent,…
- **List all Deel ats openings** (List). List job openings (requisitions/headcount requests) in Deel for the authenticated organization. Returns: id, team, title, status, job_ids, team_id, location, created_at, updated_at, location_id, opening_prefix, employment_type, filled_by_offer, is_confidential, target_hire_date, opening_type_slug, target_start_date, employment_type_id, opening_numeric_id, compensation_period,…
- **List all Deel legal entitie payroll events** (List). List payroll events (cycles) for a specified legal entity in Deel, optionally filtered by date range. Returns: id, date_end, date_start, has_g2n_report, legal_entity_id, payroll_group_id. Required: legal_entity_id. date_start must not be earlier than 5 years ago and date_end must not exceed 5 years in the future.
- **List all Deel legal entitie year to date pays** (List). List aggregated year-to-date payroll figures for employees in a deel legal entity over a caller-specified date range. Returns: start_date, end_date, employees. Required: legal_entity_id, date_start, date_end.
- **List all Deel payouts auto withdrawal settings** (List). Get the current auto-withdrawal configuration for the authenticated worker in deel. Returns: method_id, is_auto_withdraw_enabled, id, status, address, is_default, method_name.
- **Update a Deel payouts auto withdrawal setting by ID** (Update). Update the auto-withdrawal configuration in deel, enabling or disabling auto-withdrawal and changing the target withdrawal method. Returns the updated settings object in data, containing method_id and is_auto_withdraw_enabled.
- **List all Deel bank transfers supported routes** (List). List all bank transfer supported routes available to the authenticated contractor in Deel. Returns a dynamic mapping of ISO country codes to arrays of supported currency codes — for example, AE maps to [AED, GBP, USD] and AR maps to [ARS, EUR, USD]. No required parameters.
- **List all Deel templates downloads** (List). Download a compliance document template in Deel by retrieving a time-limited URL for the template associated with a specific compliance document. Returns: url, expires_at, updated_at. Required: document_id.
- **List all Deel contract cost centers** (List). List cost center allocations assigned to a Deel employment contract. Returns: id, title, amount, status, created_at, reported_by, reviewed_by, approval_requested. Required: contract_id.
- **Create a Deel contract cost center** (Create). Assign cost centers to a Deel employment contract, specifying per-center allocation percentages and an effective date. Returns: id, amount, status, attachment, date_submitted. Required: contract_id, data.value (array of cost_center_id and allocation_percentage), data.effective_date.
- **Create a Deel worker** (Create). Create a new worker record in Deel. Returns: user_id, profile_id, contract_id, id, to, from, status. Required: data (a wrapper object containing the worker's personal and contract details).
- **Create a Deel workers individual** (Create). Create an individual contractor profile in deel by completing address, tax details, and legal status in a single call during the IC-embedded onboarding flow. Returns: profile_id, company_type, legal_status, tax_residence, onboarding_step, street, city, zip, country, citizen, province, phone, timezone, id_type, personal_id, abn, ssn, entity_tax_residence, id, to, from, status. Required: data.
- **Create a Deel eor** (Create). Create an EOR (Employee of Record) contract in Deel and receive a cost quote. Accepts employment, employee, job_title, seniority, client, and compensation_details within the data body. Returns: id, costs, name, plan, provider, offer_status, enrollment_details. Required: data.
- **Create a Deel candidate** (Create). Create a candidate record in Deel for contractor onboarding outside of an ATS flow. Returns: created, id, status. Required: data.id, data.first_name, data.last_name, data.status, data.start_date, data.link.
- **Create a Deel consent token** (Create). Create a time-bounded consent token in Deel that authorizes third-party service connections on behalf of an organization. Returns: unique_consent_token, created_at, updated_at, expires_at. Requires a data object containing user_id, profile_id, and contract_id.
- **Create a Deel magic link** (Create). Create a time-limited magic link in Deel for password-free worker authentication. Returns: magic_link, expires_at. Optionally accepts a redirect_path to send the user to a specific page after login.
- **Create a Deel task review** (Create). Create a task review in Deel by submitting an approval or rejection for a task associated with a contract. Returns: id, amount, status, description, date_submitted, attachment. Required: contract_id, task_id, and data.status.
- **Create a Deel terminations resignation** (Create). Submit a resignation request for a Deel EOR contract on behalf of a team member. Returns: id. Required: oid, reason, used_time_off, is_employee_staying_with_deel.
- **Create a Deel project assignment accept** (Create). Accept a Deel EOR project assignment as client, recording approval of the project assignment terms for a specific contract. Optionally supply a version string to validate that the PDF version matches the one received from the webhook (a mismatch returns a 409 error). Returns an empty 204 response on success. Required: contract_id.
- **Create a Deel project assignment acknowledge** (Create). Acknowledge an assignment agreement in Deel for an EOR contract worker, confirming all terms have been reviewed before project initiation. Returns an empty 204 response on success. Required: contract_id.
- **Create a Deel workers session** (Create). Create a scoped worker access token (session) in Deel, issuing a JWT that grants a specific worker access to worker-side API endpoints. Returns: token, expires_at, id, to, from, status. Requires a data object containing the worker's profile_id.
- **Create a Deel upsertions bulk tag** (Create). Upsert tags in bulk for candidates, jobs, or openings in Deel. Returns resolved tags grouped by group: candidate_tags, job_tags, and opening_tags, each containing tag_id and tag_name. Required: data (must include at least one of candidate_tags, job_tags, or opening_tags). Max 500 tags per group; omit tag_id to create or case-insensitively match an existing tag.
- **List all Deel bank transfers requirements** (List). List bank transfer field requirements for a given contractor country and currency combination in Deel, including fee information per available transfer type. Returns: title, fields, total_fee, intermediary. Required: country, currency.
- **Create a Deel bank transfers requirement** (Create). Retrieve progressive dynamic bank transfer requirements for employee payout method configuration in Deel based on the current state provided. Returns: steps, is_final, requirements_id.
- **Update a Deel profile by ID** (Update). Update the authenticated Deel user's profile by supplying only the fields to change. Returns the updated profile in a data object including first_name, last_name, preferred_name, phone, currency, and timezone. Required: data.
- **Update a Deel delay onboarding by ID** (Update). Delay or un-delay an EOR employee's onboarding in Deel by updating the delay status on the specified contract. Returns: success, contractOid, is_employee_onboarding_delayed. Required: oid, data.is_employee_onboarding_delayed.
- **Update a Deel task by ID** (Update). Partially update a Deel task by id, modifying fields such as amount, description, or hourly_report_preset_id. Returns the data object containing the task's created_at and updated_at timestamps confirming the update was applied. Required: id.
- **Delete a Deel worker session by ID** (Delete). Delete (revoke) the active access token for a Deel worker, immediately terminating all API access granted by that token. Returns an empty 204 response on success. Required: worker_id.
- **Update a Deel types external by ID** (Update). Update a Deel worker relation type by external id. Applies a partial update — only fields included in the request body are modified; omitted fields retain their current values. Returns the updated type in a data envelope containing id, child_name, parent_name, is_default, and external_id. Required: id.
- **Delete a Deel types external by ID** (Delete). Delete a Deel worker relation type by external id. Permanently removes the record. Returns an empty 204 response on success. Required: id.
- **List all Deel worker relations profiles** (List). List all worker relations associated with a deel HrisProfile, returning both parent and child hierarchical relationships. Returns: id, to, from, status. Required: hris_profile_oid.
- **Create a Deel worker relations profile** (Create). Create a hierarchical worker relation in deel linking a parent HrisProfile to one or more subordinate profiles. Returns an empty 201 response on success. Required: data.parent_hris_profile_id, data.child_hris_profile_ids, data.hris_relationship_type_id.
- **Delete a Deel worker relations profile by ID** (Delete). Delete all worker relations associated with a deel HrisProfile by id, removing all parent and child hierarchical associations linked to that profile. Returns an empty 204 response on success. Required: id.
- **Create a Deel accounts payable vendor bill** (Create). Create a new vendor bill in Deel accounts payable, associating it with a vendor and subsidiary. Returns the created bill including id, vendor_id, subsidiary_id, amount, currency, reference, is_active, exchange_rate, created_at, updated_at, and line_items. Required: vendor_id, subsidiary_id, amount, subtotal, currency, date, description, due_date, reference, external_id, line_items.
