HRIS · Beta
Deel
API integration
Ship HRIS features without building the integration. Full Deel API access via Proxy, normalized data through Unified APIs, and 660+ MCP-ready tools for AI agents — all extensible to your exact use case.
Built for specific customer use cases. Issues are resolved quickly.
Talk to usUse Cases
Why integrate with Deel
Common scenarios for SaaS companies building Deel integrations for their customers.
Sync global headcount and org structure into your SaaS
Mirror Deel's people, departments, groups, and manager relationships into your product so customers see an always-fresh roster without manual CSV uploads. Ideal for performance, learning, or identity products where org context drives core workflows.
Push variable pay and reimbursements into Deel payroll
Let your customers automatically send commissions, bonuses, or approved expenses to Deel as invoice adjustments or off-cycle payments. This eliminates end-of-month CSV reconciliation between your tool and their global payroll.
Automate onboarding and offboarding workflows
Trigger account provisioning, device shipping, or license revocation based on Deel onboarding and offboarding tracker progress. Your customers get hands-off lifecycle automation across their globally distributed workforce.
Hand off hired candidates from ATS to Deel contracts
When a candidate is marked hired in your ATS, auto-draft the right Deel contract (EOR or IC), map the correct legal entity, and send the signature invite. HR teams stop re-keying offers across systems.
Reflect time off and entitlements in planning tools
Pull approved leave and entitlement balances from Deel into capacity, scheduling, or project tools — and push new requests back to keep payroll in sync. Useful for PSA, workforce planning, and resource management products.
What You Can Build
Ship these features with Truto + Deel
Concrete product features your team can ship faster by leveraging Truto’s Deel integration instead of building from scratch.
Two-way worker directory sync
Continuously sync Deel people, groups, departments, and manager relationships into your app so customer records stay aligned with their system of record.
Invoice adjustments engine for commissions and bonuses
Programmatically attach line items to active Deel contracts at month-end using contract adjustments and off-cycle payments — no spreadsheets, no manual uploads.
Webhook-driven lifecycle automations
Subscribe to Deel events to fire onboarding and offboarding workflows the moment a worker's tracker status changes.
ATS-to-Deel contract generation
Create Deel EOR or contractor agreements directly from a hired candidate, map them to the right legal entity, and dispatch contract invitations and signature requests in one flow.
Time off read and write integration
List Deel time off and entitlements to surface PTO in your UI, and create, update, or delete time off requests on behalf of users.
IT asset and order visibility
Read Deel IT orders and assets to display hardware assignments next to worker profiles, useful for ITSM, security, and device management products.
SuperAI
Deel AI agent tools
Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.
list_all_deel_people
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 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 a new person record in Deel. Returns: id, employee, employment, compensation_details, created_at, updated_at.
list_all_deel_contracts
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
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 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 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,…
deel_contracts_get_invite
Get the worker signing invitation link for a Deel contract. Returns the invitation link in an opaque JSON object; the upstream docs do not enumerate its fields. Required: contract_id. Optional: locale (2-5 lowercase letters) localizes the link.
deel_contracts_get_preview
Preview a Deel IC or EOR contract agreement as rendered HTML. Returns the rendered HTML content in an opaque JSON object (upstream documents no field structure). Required: contract_id. Optional: templateId selects a template; the default or currently assigned template is used when omitted. Global Payroll contract types are not supported.
deel_contracts_partial_update
Set the external ID on a Deel contract to link an internal reference, such as an employee number or ERP key, to the worker. Returns an opaque success JSON object. Required: id and data. The external ID must be unique and, once set, can be used as a filter when listing contracts.
list_all_deel_time_offs
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 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 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 a time-off request in Deel by id. Returns an empty 204 response on success. Required: id.
deel_time_offs_partial_update
Update a deel time-off request, correcting details such as its dates, amount, reason, or time-off type without requiring the worker to cancel and resubmit it. Partial update: only fields included in the body's data object are modified. Returns the updated record's id, status, and deleted_at (set only for soft-deleted records). Required: id (time-off request id, UUID).
list_all_deel_webhooks
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 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 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
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 a Deel webhook subscription by id. Returns a 200 success response on deletion. Required: id.
deel_webhooks_partial_update
Partially update an existing Deel webhook subscription, such as its status or whether it also receives events from child organizations. Returns: id, url, name, events, hidden, status, internal, created_at, deleted_at, updated_at, api_version, description, signing_key, include_child_orgs. Required: id.
list_all_deel_groups
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 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
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
Soft-delete (archive) a Deel group by id. The group is not permanently removed. Returns: archived_at. Required: id.
deel_groups_clone
Clone a deel group: creates a new group copying the structure and settings of the source group, independent of the original after creation. Returns the new group record including id, name, created_at, and updated_at. Required: group_id, id, and data.
deel_groups_partial_update
Partially update a deel group by id: only fields included in the request body are modified; omitted fields retain their current values. Returns the updated group record including id, name, and archived_at. Required: id and data.
list_all_deel_legal_entities
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 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
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
Archive a deel legal entity by id, marking it as inactive without permanently removing it. Returns: archived_at. Required: id.
get_single_deel_legal_entity_by_id
Retrieve a legal entity. Returns: id, name, phone, status, vat_id, address, country, cdd_status. Required: id.
deel_legal_entities_partial_update
Apply a partial update to an existing legal entity in deel by id; only the fields included in the request body are modified. Returns the updated record including its id, cdd_status, and status. Required: id.
list_all_deel_departments
List all departments within the authenticated user's Deel organization. Returns: id, name, parent.
deel_departments_bulk_update
Assign a worker to a department in deel by their HRIS profile ID. By default the new assignment appends to existing positions; set replace_other_positions to replace all current positions instead. Returns the assigned department record: id, name, parent. Required: people_id, data.
list_all_deel_invoices
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 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 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 all managers in a deel organization. Returns: id, email, last_name, first_name.
create_a_deel_manager
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
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 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 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 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 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 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 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 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 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 a Deel HRIS organization structure by id. Returns an empty 204 response on success. Required: id.
deel_hris_organization_structures_partial_update
Apply a partial update to a deel HRIS organization structure by id, modifying only the fields provided in the request body while omitted fields retain their current values. Returns the updated structure including its id, organization_id, name, settings, and teams. Required: id.
list_all_deel_currencies
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 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 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 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 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 a Deel invoice adjustment by id. Returns an empty 204 response on success. Required: id.
deel_invoice_adjustments_partial_update
Update an invoice adjustment in Deel by id, applying a partial update — only fields included in the request body are modified. Returns the updated adjustment object including its id and adjustment-specific attribute fields. Required: id and data (details of the adjustment to update).
get_single_deel_adjustment_by_id
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 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
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
Permanently delete a Deel adjustment by its id. Returns: data. Required: id.
deel_adjustments_partial_update
Update an existing adjustment in deel with a partial update; only fields included in the request body are modified and omitted fields retain their current values. Returns: updated. Required: id, data.
list_all_deel_benefits
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 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 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 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 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 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
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 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 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 a single Deel IT equipment order by id. Returns: id, status, created_at, updated_at, user, order_items. Required: id.
deel_it_orders_cancel
Cancel a pre-shipment IT order in Deel by id; on success the order and its related sales order are cancelled, and the request is rejected if the order is paid, in payment, or already shipped. Returns: id, user, status, public_id, created_at, updated_at, order_items, delivery_address. Requires: order_id and a data object with the cancellation reason.
create_a_deel_it_order
Create an IT equipment order in Deel; the order is created already approved and assigned via assign_to (only USER is wired today, delivering to the worker identified by destination.hris_profile_id). Returns: id, user, status, public_id, created_at, updated_at, order_items, delivery_address. Requires: data with assign_to and destination.hris_profile_id. Only Pro-plan organizations with paid IT…
list_all_deel_it_assets
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 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.
create_a_deel_it_asset
Create a new IT asset in Deel, assigned either to a worker (WITH_USER) or stored at an organization warehouse (AT_WAREHOUSE); device categories (laptops, desktops, mobile devices, tablets) require a serial number and, where the category supports one, an operating system. Returns the created asset record with its id and attributes. Required: data.
deel_it_assets_archive
Archive a Deel IT asset, retiring it from active tracking with a terminal status and an optional note; archived assets no longer appear in the active inventory and can be restored via unarchive. Returns the archived asset record with its id and attributes. Required: asset_id, data.
update_a_deel_it_asset_by_id
Update detail fields of a Deel IT asset by id; omitted fields keep their current values, locked assets (archived, Deel-owned, or under an active service package) are rejected, and changing serial_number unenrolls the asset from MDM. Returns the updated asset record with its id and attributes. Required: id, data. Beta: requires the X-Beta: true header until stable on 2026-12-29.
get_single_deel_contract_preview_by_id
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 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
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 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 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 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
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 (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.
deel_contract_custom_fields_bulk_update
Set custom field values on a Deel contract by id. Creates or updates custom field values on the contract; this is a full replacement operation, so any custom field values not included in the request body are removed. Returns a 200 response confirming the custom field values now set on the contract. Required: contract_id, data.
list_all_deel_eor_contract_amendments
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 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 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 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 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 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 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.
deel_contract_amendments_bulk_delete
Cancel a pending EOR contract amendment in deel, voiding the request so it can no longer be reviewed or applied. Returns the cancelled amendment's id, status, and effective_date. Required: contract_id, amendment_id.
deel_contract_amendments_bulk_update
Update an EOR contract amendment in deel with a partial PATCH. Returns: id, type, items, scope, salary, source, currency, end_date, holidays, job_code, job_title, created_at, net_salary, start_date, updated_at, description, hourly_rate, custom_items, job_category, requested_by, seniority_id, document_type, legal_context, time_off_type, void_deadline, effective_date, seniority_date,…
get_single_deel_contract_amendment_by_id
Get an EOR contract amendment in deel by its id, with full details of the request. Returns: id, type, items, scope, salary, source, currency, end_date, holidays, job_code, job_title, created_at, net_salary, start_date, updated_at, description, hourly_rate, custom_items, job_category, requested_by, seniority_id, document_type, legal_context, time_off_type, void_deadline, effective_date,…
list_all_deel_contract_milestones
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 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 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
Permanently delete a specific milestone from a Deel contract. This operation is irreversible. Returns: data. Required: contract_id, id.
deel_contract_milestones_bulk_delete
Permanently delete a milestone from a Deel contract; the operation is irreversible and removes all associated milestone data. Returns a 200 confirmation on success. Required: contract_id, milestone_id.
create_a_deel_contract_invitation
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
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.
deel_contract_invitations_bulk_delete
Remove the active signing invitation from a deel contract so a new invitation can be issued to the worker. Returns a JSON body reflecting the contract's invitation state after removal; the field set is not enumerated in the upstream documentation. Required: contract_id.
create_a_deel_contract_signature
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 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
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 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
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.
deel_personals_bulk_update
Update a Deel worker's personal information by worker ID; only fields included in the request body are modified. Requires worker_id and a data object containing the fields to update. Returns an empty 204 response on success.
list_all_deel_personals
Get a Deel worker's personal information using a system-wide external worker identifier. Requires external_id. Returns an empty 204 response on success.
deel_personals_partial_update
Partially update a Deel worker's personal information by external ID; only fields included in the request body are modified. Requires worker_id and a data object containing the fields to update. Returns an empty 204 response on success.
get_single_deel_external_personal_by_id
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 the personal information record for an external worker in Deel by id. Returns: id. Required: id.
list_all_deel_contract_ic_invoicing_taxes
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 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
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
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.
deel_contract_ic_invoicing_taxes_bulk_delete
Permanently delete an IC invoicing tax type from a deel contract's invoicing tax configuration; the deletion is irreversible and takes effect on future invoices. Returns an empty 204 response on success. Required: contract_id, tax_type.
deel_contract_ic_invoicing_taxes_bulk_update
Update the invoicing tax on a deel independent contractor contract via a partial update, supplying tax_type (WITHHOLDING_TAX or VAT) and percentage to change how taxes are calculated on future invoices. Returns an empty 204 response on success. Required: contract_id.
list_all_deel_ats_candidates
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 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.
deel_ats_candidates_attach_attachment
Upload a CV file for an existing ATS candidate in deel; the file is stored as the candidate's primary CV attachment for later retrieval and processing. Returns the created attachment record: id, created_at, updated_at. Required: candidate_id, data.
deel_ats_candidates_attach_tag
Replace all tags on an ATS candidate in deel with the provided tag_ids — this is a full replacement, so any tags not included are removed. Returns the created record: id, created_at, updated_at. Required: candidate_id, tag_ids. Deprecated: scheduled for removal on 2027-08-10.
get_single_deel_ats_candidate_by_id
Get a single ATS candidate in deel by id, retrieving the complete candidate detail in one call. Returns: id, email, pic_url, last_name, created_at, first_name, numeric_id, updated_at, attachments, imported_id, applications, phone_number, anonymized_at, candidate_tags, import_session_id, origin_source_slug, final_archivation_at, linkedin_profile_url, referred_by_hris_organization_user_id.…
update_a_deel_ats_candidate_by_id
Update an existing ATS candidate in deel by id — only the fields provided in data are changed. Returns the updated candidate record: id, created_at, updated_at. Required: id, data. At least one field must be provided; use origin_source_slug to set or correct the candidate source (e.g. sourced_internally).
create_a_deel_ats_candidate_tag
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 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
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 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.
update_a_deel_ats_application_by_id
Update an ATS application in deel by id — currently the only supported change is the application source (data.source_slug), e.g. to mark it as internally sourced or as an internal referral. Returns the updated application including id, created_at, and updated_at. Required: id and data.source_slug.
list_all_deel_ats_jobs
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 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 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 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
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 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
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 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 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 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 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 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
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 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 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 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 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 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
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 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 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 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 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 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
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.
get_single_deel_eor_create_contract_by_id
Get the deel EOR contract creation form definition for a country, including fields, validation rules, and conditional logic. Returns: pages. Required: id (two-letter ISO 3166-1 alpha-2 country code, e.g. US). The state query parameter is only required for countries that mandate it.
list_all_deel_validation_settings
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
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 visa requirement businesses in Deel. Returns: id, title, fields, total_fee.
list_all_deel_knowledge_hub_country_guides
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.
get_single_deel_knowledge_hub_country_guide_by_id
Get the deel Knowledge Hub country guides for a country, segmented by audience and contract type. Returns: name, value, categories, contract_types. Required: id (country_code).
list_all_deel_kyc_details
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 available ATS application sources in Deel. Returns: id, slug, created_at, updated_at.
list_all_deel_ats_reasons
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 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,…
create_a_deel_ats_attachment
Upload a file to Deel and attach it to an ATS candidate, offer, or job activity — preferred over the candidate CV endpoint for any non-CV file type. Returns the created attachment with its id, attachable_type_slug, and attachment_type_slug. Required: attachable_type_slug, attachable_id, attachment_type_slug, and data. Beta: requires the X-Beta: true header.
list_all_deel_ats_employment_types
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 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 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 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 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 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 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
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 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.
deel_payouts_auto_withdrawal_settings_bulk_update
Update the deel auto-withdrawal setting, partially changing whether auto-withdrawal is enabled and the target withdrawal method. Returns the updated setting record: id plus attributes holding the setting fields defined by the deel Payouts API.
list_all_deel_bank_transfers_supported_routes
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
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.
get_single_deel_templates_download_by_id
Download the template for a Deel EOR worker compliance document by id. Returns a time-limited download URL for the template together with its expires_at expiry time. Only available when a template exists for that document. Required: id (the Deel compliance document identifier).
list_all_deel_contract_cost_centers
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
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 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 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 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 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 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 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 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
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
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
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 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
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 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
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 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.
deel_profiles_bulk_update
Partially update the authenticated user's profile in Deel; only the fields supplied in the request body are modified. Returns the updated profile record including id, created_at, and updated_at. Required: data.
update_a_deel_delay_onboarding_by_id
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.
deel_delay_onboardings_bulk_update
Delay the onboarding of a Deel EOR employee by deferring the scheduled onboarding start date for the specified contract. Returns the updated onboarding delay status with Deel-defined response fields. Required: oid, data.
update_a_deel_task_by_id
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.
deel_tasks_partial_update
Update a task by id in Deel. Applies a partial update to the specified task and returns whether the update was successful. Required: id, data.
delete_a_deel_worker_session_by_id
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.
deel_worker_sessions_bulk_delete
Revoke the active worker access token for a worker in deel, 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 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 a Deel worker relation type by external id. Permanently removes the record. Returns an empty 204 response on success. Required: id.
deel_types_externals_partial_update
Partially update a worker relation type by external id in deel. Only fields included in the request body are modified; omitted fields retain their current values. Returns an empty 204 response on success. Required: id (the worker relation type's external ID).
list_all_deel_worker_relations_profiles
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 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 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.
deel_worker_relations_profiles_bulk_delete
Delete a worker relation profile in deel by hris_profile_oid. Removes the worker relation along with all hierarchical parent and child associations linked to it. Returns an empty 204 response on success. Required: hris_profile_oid.
create_a_deel_accounts_payable_vendor_bill
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.
deel_accounts_payable_vendor_bills_attach_attachment
Upload a PDF invoice file as an attachment to an existing Deel vendor bill. The bill must already exist before the file is attached. Required: vendor_bill_id, data. Returns the upload confirmation payload; its field-level shape is not documented upstream.
list_all_deel_working_locations
Retrieve working locations. Returns: id, name.
deel_working_locations_bulk_update
Update the working location for a Deel worker identified by their HRIS profile ID. Sets the working location and returns the successful-operation response body; its fields are not enumerated in the source. Required: people_id, data.
list_all_deel_time_off_policies
List the organization's time off policies with their time off types and allowances.
list_all_deel_profile_time_offs
List the time off requests of one worker profile. Requires query.hris_profile_id.
list_all_deel_timesheets
List of timesheets. Returns: id, type, scale, status, contract, quantity, worksheet, attachment.
get_single_deel_timesheet_by_id
Retrieve a single timesheet entry. Returns: id, type, scale, status, contract, quantity, worksheet, attachment. Required: id.
create_a_deel_timesheet
Create a timesheet entry. Returns: id, status, created, created_at. Required: data.
update_a_deel_timesheet_by_id
Update a timesheet entry. Returns: updated. Required: id, data.
delete_a_deel_timesheet_by_id
Delete a timesheet entry. Returns: deleted. Required: id.
deel_timesheets_partial_update
Partially update a timesheet entry in deel by id; only fields supplied in the request body are modified. Returns: updated. Required: id, data.
list_all_deel_payroll_groups
List the Global Payroll payroll groups of a legal entity. Requires query.legalEntityId.
list_all_deel_adjustments_categories_adjustments
List Deel adjustment categories, optionally filtered by contract type. Returns: id, name, label, unit_type. When contract_types is omitted, only EOR categories are returned by default.
create_a_deel_adjustments_rest
Create a new payroll adjustment for a Deel contract, modifying the payment amount on the next payment cycle. Returns the created adjustment with id, amount, status, and contract_id. Requires file, title, amount, vendor, country, contract_id, description, and adjustment_category_id (a valid category id from the adjustment categories list).
delete_a_deel_adjustments_rest_by_id
Permanently delete a Deel adjustment by id. Returns an adjustment object including id, amount, status, and contract_id on success. Required: id.
get_single_deel_adjustments_rest_by_id
Get a specific Deel adjustment by id. Returns the adjustment with its id, title, amount, status, contract_id, description, cycle_reference, and payment cycle fields (date_of_adjustment, actual_start_cycle_date, actual_end_cycle_date). Required: id.
create_a_deel_case_required_document
Upload a required document for a deel worker's immigration case and submit it for review against a specific document requirement. Returns: id, status, created_at, updated_at. Required: worker_id, case_id, document_request_id, and data.
get_single_deel_case_required_document_by_id
Get the required-document details for a deel worker's immigration case, including the requirement's current status and information about any previously rejected document. Returns: id, name, document, created_at, updated_at, description, previous_rejected_document, immigration_document_requirement_id. Required: worker_id and id (the case's unique identifier).
list_all_deel_client_cases
List deel immigration cases, optionally filtered by applicant name or code, case type, status, and country. Returns each case with its id and case attributes. Max 100 per page.
create_a_deel_client_case
Create an immigration case for a worker in deel. Returns the created case including its id and case attributes. The case payload is passed in the data field. The appropriate visa type must be determined before calling.
get_single_deel_client_case_by_id
Get the details of a deel immigration case by id. Returns the case including its id and case attributes. Required: id.
list_all_deel_contract_adjustments_contracts
List payroll adjustments for a specific Deel contract, optionally narrowed to a date range. Returns each adjustment with its id, title, amount, status, and associated contract_id. Required: contract_id. Supports optional from/to date filters.
list_all_deel_events_types_events
List all webhook event types in deel that can be subscribed to. Each entry returns its event_name, description, category, and a payload example.
list_all_deel_groups_rest
List groups in the deel organization. Archived groups are included by default and can be excluded from results. Returns group records including id, external_metadata, and archived_at. Max 100 per page.
create_a_deel_groups_rest
Create a group in deel. Returns the created group record including its assigned id, external_metadata, and archived_at. Requires data.
delete_a_deel_groups_rest_by_id
Archive (soft-delete) a group by id in deel; the group is not permanently removed. Returns the archived group record including id, archived_at, and external_metadata. Required: id.
get_single_deel_immigration_document_by_id
Get a single immigration case document in deel by its document id. Returns the record's id plus its remaining document detail fields under attributes (the upstream docs do not enumerate them individually). Required: id.
get_single_deel_immigration_visa_type_by_id
Get the visa types deel supports for immigration processing in a country, identified by its Alpha-2 country code. Returns the supported visa types for that country. Required: id (the Alpha-2 country_code).
list_all_deel_industries
List Deel industry subcategories with their parent category details and NAICS codes. Returns each subcategory's name, category name, and NAICS code, with cursor-based pagination. Supports optional order and sort_by query parameters; no required parameters. Maximum 100 items per page.
list_all_deel_kyc_details_kyc
Get a worker's KYC verification details in deel. Returns the KYC details record including kyc_status, submission_date, expiration_date, and identity document fields. worker_profile_id and profile_id are mutually exclusive — supply exactly one of them to identify the worker; contract_id is required when the worker has multiple associated profiles, otherwise a 409 conflict error is returned.
list_all_deel_legal_entitie_cost_centers
List all cost centers configured for a legal entity in deel. Returns the collection of cost center records, each identified by its id. Required: legal_entity_id.
list_all_deel_legal_entities_legal_entities
List the legal entities in the Deel account, with optional filtering by country, entity type, global payroll flag and archived state. Returns each entity's id, status, cdd_status, address, industry, incorporation_date and archived_at. Max 100 per page; archived entities are included by default.
create_a_deel_legal_entities_legal_entity
Create a new legal entity under the Deel organization. Returns the created entity record including its id, status, cdd_status, address and incorporation_date. Required: data — the wrapper object carrying the entity's registration/tax identifier fields (per country), address, industry and incorporation details.
delete_a_deel_legal_entities_legal_entity_by_id
Archive a Deel legal entity by id, marking it inactive without permanently removing it. Returns the archived record including its id, status and archived_at timestamp. Required: id.
get_single_deel_legal_entities_legal_entity_by_id
Get the full record for a single Deel legal entity by id, including registration and tax identifiers, address, industry, incorporation date and lifecycle status. Returns: id, name, phone, status, vat_id, address, country, cdd_status, created_at, legal_name, legal_type, updated_at, archived_at, entity_type, industry_name, incorporation_date, registration_number, industry. Required: id.
list_all_deel_lookups_countries
List all countries supported by Deel, including each country's visa support status, Employer of Record availability, sub-territories, and classification. Returns country records identified by id.
list_all_deel_lookups_currencies
List all currencies supported by Deel, including their ISO codes and names. Returns: code, name, id.
list_all_deel_lookups_job_titles
List predefined job titles from the Deel lookups catalogue. Returns job title entries including id and attributes.
list_all_deel_lookups_seniorities_lookups
List the predefined seniority levels available in Deel. Returns: id, name, level. By default C-level seniorities are excluded; set is_eor_contract to false to return all seniorities.
list_all_deel_lookups_time_off_types
List the predefined time-off types available for time-off registration in Deel. Returns each type's lookup record with its id and the remaining upstream-defined fields (attributes).
create_a_deel_magic_links_magic_link
Create a magic link for a user in deel. Generates a time-limited link for password-free worker authentication. Returns the generated link and its expiry timestamp. Required: data.
list_all_deel_managers_rest
List all managers in the Deel organization. Returns a paginated collection of manager records, each including the assigned id.
create_a_deel_managers_rest
Create a manager in a Deel organization. Returns the created manager's identity fields, including the assigned id. Required: data (the new manager's details). Fails with a conflict if a manager with the same email already exists.
create_a_deel_organizations_children
Create a child organization under the authenticated parent organization in deel, provisioning its API token, a default group, and an initial user assignment in one operation. Returns the created child organization including its id, token (returned only this once — store it), and created_at. Required: data.
list_all_deel_organizations_rest
Get the current organization in deel. Returns the details of the organization associated with the authentication token — the organization is resolved automatically from the token, so no additional identifier is required. Returns: id, name, created_at, updated_at.
list_all_deel_screenings_amls
Get the most recent AML screening details for an entity in deel. Returns the screening result recorded for the specified entity type and ID. Required: entity_type (one of profile, hris_profile, legal_entity) and entity_id (UUID v4 of the entity).
create_a_deel_screenings_manual_verification
Create a manual identity verification screening in deel as a fallback when automated verification has failed multiple times or the document's issuing country is not supported by the automated solution. Returns the created screening record including id, created_at, and updated_at. Requires front, document_type, operation_type, selfie_with_id, and translation_required; document files are uploaded…
list_all_deel_screenings_verification_methods
Get the KYC verification method Deel supports for a given document's issuing country and document type. Returns the verification method as a response object whose fields are not enumerated in the Deel API reference. Required: country (ISO 3166-1 alpha-2), document_type.
create_a_deel_veriff_session
Create a Veriff identity verification session in Deel. Returns the session's verification URL to redirect the worker to in order to complete the verification flow. Required: data.
list_all_deel_visa_requirement_busineses
Get deel business visa eligibility and requirements for a trip based on the traveller's nationality, residence country, destination, and trip dates. Returns each available visa option with its name, description, fee, fee_currency, visa_type_id, qualification, and estimated_timeline. Required: destination_country, nationality, residence_country, trip_start_date, trip_end_date, trip_reason.
list_all_deel_webhooks_rest
List all webhook subscriptions configured for the deel organization. Returns each subscription's id, url, events, status, api_version, signing_key, and include_child_orgs.
create_a_deel_webhooks_rest
Create a webhook subscription in deel for the specified URL and events. Returns the created webhook including its id, url, events, status, and signing_key. Requires url, name, events, status, api_version, and description.
get_single_deel_webhooks_rest_by_id
Get a single webhook subscription in deel by id. Returns the webhook's id, url, events, status, api_version, and signing_key. Required: id.
delete_a_deel_webhooks_rest_by_id
Delete a webhook subscription in deel by id. This action cannot be undone. Returns the deleted webhook record (id, url, events, status). Required: id.
get_single_deel_worker_onboarding_case_by_id
Get a worker's right-to-work onboarding case in deel, including any associated documents. Returns: id, status, process, contract, applicant, case_type, documents, visa_type, created_at, updated_at, country_code, estimated_completion_date. Required: id (the worker's hris profile oid). Supply contract_id when the worker has multiple contracts; returns an empty response if no open case exists.
get_single_deel_workers_case_by_id
Get detailed information for a specific deel immigration case by id, enriched with applicant profile, visa type, case status, estimated completion date, process details, and compliance document details. Returns: id, status, process, contract, applicant, case_type, documents, visa_type, created_at, updated_at, country_code, estimated_completion_date. Required: id (case UUID).
list_all_deel_workers_cases
List worker immigration cases in deel with filters for applicant name or code, case type, status, and country. Returns: id, status, closure, process, applicant, case_type, created_at, updated_at.
create_a_deel_amendment_accept
Accept a pending amendment on a Deel EOR worker contract on the client's behalf. Returns the amendment info object including its id, type, effective_date, and status. Required: contract_id, amendment_id. The amendment must already exist and be in a pending state before calling.
create_a_deel_amendment_confirm
Confirm a draft amendment on a Deel EOR contract and start its review process, routing it to Deel and the employee for acknowledgment and approval. Returns the confirmed amendment record: id plus amendment-specific attributes. Required: contract_id, amendment_id. The amendment must already be in a confirmable state.
amendment_effective_date_limitations_effective_date_limitations_
Retrieve the effective date limitations for a deel EOR contract amendment. Returns the effective date limits object, including its vendor-defined attributes, that constrains which effective dates the amendment may use. Required: contract_id, amendment_id (UUID).
get_single_deel_amendment_pdf_by_id
Get the PDF download URL for a specific Deel EOR contract amendment. Generates a secure, time-limited link to the exported amendment PDF. Returns: url. Required: contract_id and id (the amendment identifier).
create_a_deel_amendment_sign
Sign a pending deel worker amendment by recording the worker's signature. Returns the signed amendment record with id, status, created_at, and updated_at. Required: amendment_id. Once signed, the status change is reflected in the associated contract.
create_a_deel_amendment_signs_sign
Sign a pending Global Payroll contract amendment in deel on the client's behalf, applying the change. Returns the signed amendment record including its id, status, and created_at and updated_at timestamps. Required: contract_id, amendment_id (the id returned when the amendment was created). Global Payroll amendments only — IC contracts use the worker amendment sign endpoint instead.
create_a_deel_amendments_validate
Validate proposed amendment data points for a Deel EOR contract against external validation rules before creating an amendment. Returns a validation result whose shape depends on the data points validated and Deel's external validation rules; fields are not enumerated in the upstream spec. Required: contract_id.
list_all_deel_benefits_eor
List benefits for a Deel EOR contract by contract_id. Returns: id, name, plan, provider, offer_status, enrollment_details.
create_a_deel_contract_amendments_contract
Create an amendment for an existing Deel contract, specifying any combination of contract data points that need changing. Returns the created amendment's id, which is later used to sign the amendment. If the contract is already signed or active, the amendment must be approved and re-signed before the changes take effect. Required: contract_id, data.
list_all_deel_contract_amendments_contracts
List the amendments associated with a Deel contract, optionally filtered by amendment status and sign status. Returns amendment records including id. Max 100 per page. Required: contract_id.
list_all_deel_contract_details_contracts
Get the details of a specific Deel EOR contract, including its basic contract information and associated employment costs. Returns: id, attributes. Required: contract_id.
create_a_deel_contract_document
Attach a file to a deel contract as a contract document by creating an amendment with the attachment. Returns the created document record with its id and attributes. Only supported for ongoing_time_based, milestones, payg_tasks, time_based, pay_as_you_go_time_based, and eor contract types. Required: contract_id, file.
list_all_deel_contract_documents
List all documents associated with a specific deel EOR contract. Returns each document record with its id and attributes. Required: contract_id.
list_all_deel_contract_documents_contracts
Fetch a specific Deel EOR contract document as a PDF. Returns the raw document as a binary PDF stream rather than a JSON object. Only the FRAMEWORK_AGREEMENT document type is currently supported. Required: contract_id, type.
deel_contract_employee_informations_bulk_update
Apply a partial update to employee information on a deel EOR contract. Returns the updated employee-information record: id plus country/state-specific attributes. Requires contract_id and data; undocumented fields are rejected. Only permitted while contract status is new, under_review, awaiting_deposit_payment, rejected, or any waiting_for_* status.
create_a_deel_contract_offboarding
Submit a resignation on behalf of an EOR worker in deel, formally initiating the offboarding process for the contract. Returns the submitted offboarding request record with its id and attributes. Required: contract_id and data (the resignation submission payload).
get_single_deel_contract_offboarding_by_id
Retrieve the offboarding request associated with a deel EOR contract by id. Returns the offboarding request record with its id and attributes, covering termination details, document review status, offboarding request data, and pending employee notification state. Required: id (the EOR contract identifier).
get_single_deel_contract_project_assignment_by_id
Get the project assignment PDF for a deel EOR contract pending client approval. Returns the raw PDF file as binary content (application/octet-stream), not a JSON record. Required: id (the EOR contract id).
create_a_deel_document_sign
Sign a Deel EOR contract document by applying the signer's signature and job title supplied in the data request body. Returns the signed-document confirmation; the exact response fields are not documented upstream. Required: contract_id, type. Currently only the FRAMEWORK_AGREEMENT document type is supported.
list_all_deel_eor_additional_costs_additional_costs
List the allowances and non-statutory additional costs Deel offers for inclusion in an EOR contract quote in the specified country. Returns a country-specific collection of cost options; option fields vary by country. Required: country (two-letter uppercase ISO code, e.g. US).
list_all_deel_eor_benefits
List benefits available in a specific country in deel, scoped by work-visa requirement, weekly hours, employment type, team, and legal entity. Returns a benefits array whose item shape is not enumerated in the docs. Required: country_code, work_visa, work_hours_per_week, employment_type, team_id, legal_entity_id.
deel_eor_contracts_cancel
Cancel an EOR contract in deel by its oid. The contract must be in an active or pending state to be eligible for cancellation. Returns an empty 204 response on success. Required: oid.
update_a_deel_eor_contract_by_id
Update mutable fields of an EOR contract in deel, such as salary, job title, or benefits; only fields included in the request body are modified. Returns the updated contract's id and status. Required: id.
deel_eor_contracts_update_reject
Reject the quote of an EOR contract in deel. Returns the contract's id and status. Rejection is terminal and cannot be undone; only accepted while the contract is in new, under_review, waiting_for_client_sign, waiting_for_eor_sign, waiting_for_employee_contract, waiting_for_employee_sign, or awaiting_deposit_payment. Required: contract_id.
create_a_deel_eor_employment_cost
Calculate the total employment cost for an EOR arrangement in a specified country in deel. Returns a cost breakdown that includes employer costs, benefits, platform fees, and severance accrual. Required: data.
list_all_deel_eor_job_scopes_job_scopes
List predefined and custom job scope templates available for EOR contracts in Deel. Returns each template's id and its attributes. No required parameters.
list_all_deel_eor_start_dates
Get the earliest allowed start date for a new EOR contract in Deel based on employment country, nationality, and visa requirements. Returns the payroll timing parameters: start_date_buffer, first_payroll_lock, and is_same_month_payment_country. Required: employment_country, team_id.
get_single_deel_eor_validation_by_id
Get the detailed Deel hiring guide for a country to validate EOR contract quotes. Returns the guide record including its id (the ISO country code) and attributes covering salary requirements, holidays, probation terms, health insurance, and currency. Required: id (two-letter ISO country_code, e.g. US).
create_a_deel_eors_eor
Create an EOR contract in deel: submits the employee and employment details and returns a quote with pricing, compensation, and health plan details for review before the contract is activated. Returns the created quote object including its id and country-specific attributes. Required: data. Fields within data vary by employment country — consult the country's EOR contract form definition.
create_a_deel_job_scopes_validate
Validate an EOR job scope description in Deel. Returns: quote_validation_log_public_id and data_for_corrected_job_scope_endpoint (included when validation errors are found) to support subsequent correction. Required: data (details of job scope).
list_all_deel_offboarding_attachments
Download the content of a specific offboarding attachment associated with a termination for a deel EOR contract. Returns the raw binary file content of the attachment. Required: contract_id, attachment_id.
get_single_deel_offboarding_required_information_by_id
Get the additional information deel requires to request termination of an EOR contract: the country-specific mandatory and optional questions and supporting documents needed to initiate offboarding. Returns a country-specific requirements payload whose exact fields vary by the contract's country (shape defined in deel's EOR offboarding schema). Required: id (the employee contract id).
list_all_deel_offboarding_restricted_dates
Retrieve the country-specific dates unavailable for EOR offboarding end-date selection in deel — including weekends and public holidays — along with the earliest available end date, optionally filtered by offboarding type. Returns the restricted-dates payload; Deel's documentation does not enumerate the individual response fields. Required: contract_id.
create_a_deel_offboarding_review_client_sign_off
Submit a client sign-off decision (approval or change request) for the offboarding documents of a Deel EOR contract during the client sign-off step. Returns a confirmation record with id, created_at, and updated_at. Required: contract_id, data.
create_a_deel_offboarding_review_employee_sign_off
Submit an employee sign-off review for a Deel EOR contract's offboarding document set, recording the employee's approval or change request with feedback. Returns a 200 confirmation payload whose fields are not enumerated in the available documentation. Required: contract_id.
create_a_deel_offboarding_termination
Initiate a termination request for a deel EOR contract, beginning the offboarding process for the employee associated with the contract. Returns the created termination request record including its id, created_at, and updated_at. Required: contract_id, data.
list_all_deel_offboarding_time_offs_time_offs
Retrieve an EOR employee's time off data for offboarding in Deel — entitlements, balances, and upcoming time offs, plus the policy settings and tracking configuration needed to complete an offboarding request. Returns: contract_id, entitlements, tracking_type, policy_settings, remaining_balance, upcoming_time_offs, has_external_integration. Required: contract_id.
create_a_deel_project_assignment_accepts_accept
Record the client's acceptance of a project assignment for a Deel EOR contract, confirming the assignment terms have been reviewed and accepted. Returns an empty 204 response on success. Required: contract_id. A 409 error is returned if the accepted document no longer matches the current version.
create_a_deel_project_assignment_checkin
Submit completed answers for a Deel EOR project assignment checkin questionnaire for a contract. Returns an empty 204 response on success. All required questionnaire fields must be included; partial submissions are not accepted. Required: contract_id.
get_single_deel_project_assignment_checkin_by_id
Get the project assignment checkin questionnaire for a Deel EOR contract by id, including all sections and questions required for completion. Returns: id, sections, created_at, updated_at. Required: id. Passing version validates against the version received from the webhook and fails with 409 on mismatch.
create_a_deel_resignations_review_pto
Submit the PTO review for a deel EOR contract resignation, triggering related notifications and finalizing the PTO review step. Only callable while the resignation status is AWAITING_PTO. Returns the PTO review confirmation payload defined by Deel's upstream response schema; its fields are not enumerated in the available documentation. Required: contract_id.
get_single_deel_termination_by_id
Get a termination record for a Deel EOR contract by its public contract oid and termination id. Returns the termination record including its id, created_at, and updated_at. Required: oid, id.
list_all_deel_validation_settings_validation
Get the amendment validation settings for a Deel EOR contract to see which amendment data points are editable and what constraints apply before constructing an amendment request. Returns: rules, data_point. Required: contract_id.
list_all_deel_worker_payslips
List the payslip history for a Global Payroll (GP) worker in deel. Returns payslip records, each including an id (used by the payslip download endpoint) plus content-type-specific fields such as the pay-period date range and status. Restricted to GP contract types. Required: worker_id.
list_all_deel_worker_payslips_workers
List the payslip records for a Deel EOR worker. Returns the payslip records, each identified by its id, which can be used to request the payslip PDF download link. Required: worker_id.
get_single_deel_banks_guide_by_id
Get the country-specific bank account form guide for a deel global payroll worker by id. Returns the guide (attributes) that determines which fields are required when adding a bank account. Required: id (worker UUID).
list_all_deel_banks_guides
Get the bank account form guide for a deel EOR employee. Returns the guide (attributes) that specifies the field structure required to add a new bank account.
get_single_deel_banks_guides_guide_by_id
Retrieve the bank account form guide for a deel Global Payroll contract to learn which fields are required when adding a bank account in the contract's country. Returns: key, type, label, is_required, validations, values_allowed. Required: id.
create_a_deel_compliance_document_acknowledgement
Acknowledge a deel EOR compliance document by submitting the worker's consent acknowledgement; required for documents marked as needing acknowledgement before they are considered complete. Returns an empty 204 response on success. Required: document_id.
get_single_deel_compliance_document_download_by_id
Download a submitted compliance document for a Deel EOR worker. Returns a time-limited download URL (url) together with its expiry timestamp (expires_at); request a new URL once it lapses. Required: id (the compliance document id).
list_all_deel_compliance_document_downloads
Get a short-lived download URL for a file submitted against a compliance document on a Deel worker Global Payroll contract. Returns the URL and its expiry (expires_at); the URL is valid for about 15 minutes. Documents in the PASSPORT_OR_NATIONAL_ID category are never downloadable. Required: contract_id, compliance_document_id.
deel_contract_additional_informations_bulk_update
Update country-specific additional information on a Deel Global Payroll worker contract; only fields sent in data are modified, and effective-dated fields need a matching effective_dates entry (past dates apply immediately, future dates are scheduled). By default returns an empty 204 response; passing include_completion_status=true returns is_additional_data_done and missing_keys instead.…
deel_contract_additional_informations_bulk_update_eor
Update additional information on a Deel EOR employee contract; submit any subset of fields, with keys matching the public keys of the EOR worker additional-fields form for the employment country. Only permitted while the contract status is new, under_review, or waiting_for_employee_contract. Returns the updated fields under data. Required: contract_id, data.
create_a_deel_contract_additional_information
Create additional information fields on a Deel worker contract record; values are country/state-specific and validated against the worker additional fields form for the employment country. Returns the created record including its created_at submission timestamp. Required: contract_id, data.
create_contract_additional_informations_additional_information
Add country/state-specific supplemental information fields to a deel EOR employee's contract record. Values are validated against the worker additional fields form for the employment country. Returns the saved record with its id and country-specific attributes. Required: contract_id, data.
list_all_deel_contract_hr_documents
List the HR verification letters and documents associated with a Deel employee contract. Each item includes its id and document-specific attributes (field-level shape is defined upstream by document type). Required: contract_id.
create_a_deel_contract_invitations_contract
Send a signing invitation to the worker on a deel contract, emailing their address as the expected signer; a previously rejected contract is reset to a signing-eligible state. Returns: created. Required: contract_id. Can only be called if the worker has not already signed the contract.
list_all_deel_contract_invoice_adjustments_invoice_adjustments
List invoice adjustment line items (such as bonuses or deductions) associated with a Deel contract. Returns: id, type, 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. Required: contract_id.
list_all_deel_contract_milestones_contracts
List all milestones for a deel contract. Returns each milestone's id, title, amount, and status. Required: contract_id.
create_a_deel_contract_milestones_contract
Create a payment milestone on a milestone-based deel contract. Returns the created milestone with id, title, amount, and status; the milestone enters a review workflow before payment is processed. Required: contract_id, data.
get_single_deel_contract_milestones_contract_by_id
Get a single milestone on a deel contract by id. Returns the milestone's id, title, amount, and status. Required: id and contract_id.
get_single_deel_contract_offer_letter_by_id
Get the job offer letter for a Deel EOR contract by id. Returns the offer letter rendered in HTML format — a content-specific document payload rather than a fixed field set. IC and Global Payroll contract types are unsupported and return no result. Required: id (the Deel contract id).
list_all_deel_contract_payment_cycles_contracts
List the payment cycles for a Deel contract, including each cycle's scheduled payment dates and current status. Returns: id, status, due_date. Required: contract_id.
create_a_deel_contract_signatures_contract
Sign a Deel contract on behalf of the client (employer), advancing it through the hiring workflow or signing a pending amendment on an active contract. Returns the signature record including its id and upstream-defined attributes. Required: contract_id. In sandbox, e-signatures are simulated and not legally binding; production signs via real DocuSign/SignNow integration.
create_a_deel_contracts_rest
Create a new contractor contract in Deel. Returns the created contract including its id, status, name, and external_id. Required: data (the contract definition). After creation, send the contractor a signing invitation via the contract invitations endpoint.
get_single_deel_contracts_rest_by_id
Get the full record for a single Deel contract by id, including status, compensation, worker details, and metadata. Returns: id, type, quote, title, client, status, worker, location, job_title, seniority, created_at, signatures, start_date, updated_at, external_id, invitations, is_archived, who_reports, cost_centers, product_area, custom_fields, notice_period, scope_of_work, work_schedule,…
list_all_deel_contracts_rest
List Deel contracts for the organization, with optional filtering by status, type, team, legal entity, country, currency, external ID, or a name search term. Returns contract records including id, status, name, and external_id.
list_all_deel_currencies_currency
Retrieve the bank account form guide for a specific country and currency combination in Deel. Returns a country- and currency-specific structure of the bank account fields required when adding a new bank account for an EOR employee — use it to render the bank account form before submitting. Required: country, currency.
get_single_deel_employee_agreement_download_by_id
Get a time-limited download URL for a Deel EOR worker's employee agreement PDF. Returns: data. Required: id, contract_id (the employee contract id). If version is supplied and mismatches the agreement version, the API returns an error.
create_a_deel_eor_worker
Create an EOR worker in deel. Returns the identifiers linking the newly created worker record: user_id, profile_id, and hris_profile_id. Required: data (the object holding the EOR worker's details).
create_a_deel_invoice_adjustments_invoice_adjustment
Create a Deel invoice adjustment — such as a bonus, commission, VAT percentage, or deduction — against a contract. Returns: id, status, created, created_at, contract_id, invoice_id, reporter_id, updated_at. Required: data.
delete_a_deel_invoice_adjustments_invoice_adjustment_by_id
Permanently delete a Deel invoice adjustment by id. Returns: data. Required: id.
get_single_deel_invoice_adjustments_invoice_adjustment_by_id
Get a single Deel invoice adjustment (invoice line item) by id. Returns: id, type, 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, contract_id, reporter_id, updated_at. Required: id.
list_all_deel_invoice_adjustments_invoice_adjustments
List Deel invoice adjustments, optionally filtered by contract, adjustment type, status, invoice, reporter, or submission date range. Returns: id, type, 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, contract_id, reporter_id,…
create_a_deel_mailboxes_change_password
Change the mailbox password for a deel EOR worker. Returns an empty 204 response on success. Required: data (the new password to be set).
get_single_deel_offboarding_resignation_letter_by_id
Get a preview of the resignation letter for a Deel EOR contract before the worker submits their signature. Returns the resignation letter as a binary file download. Required: id (the unique identifier of the employee contract).
create_a_deel_offboarding_resignation
Create a resignation request for a Deel EOR contract, initiating the contract's offboarding resignation flow. Returns the resignation request confirmation payload from Deel; the available source does not document its field-level structure. Required: contract_id, data.
get_single_deel_payslip_download_by_id
Get a download link for a Deel EOR worker payslip. Returns a download-link payload containing a URL for the payslip PDF rather than an enumerable record object, so the response has no fixed field set. Required: id (the payslip id) and worker_id.
list_all_deel_payslip_downloads
Get a pre-signed download link for a Deel Global Payroll worker payslip PDF. Returns a temporary pre-signed URL payload rather than an enumerable record object, so the response has no fixed field set — use the URL promptly instead of storing it. Required: worker_id and payslip_id (from the payslips list). Supports GP contract types only.
create_a_deel_resignation_letter_sign
Sign the resignation letter for a Deel EOR contract, recording the worker's signature required to finalize the resignation process; on success the signed letter is queued for PDF generation and further processing. Returns a 201 confirmation response via the data envelope. Required: contract_id, data.
create_a_deel_terminations_regular
Create a regular termination request for a Deel EOR contract. Returns the created termination record with id, created_at, and updated_at. Required: oid, data.
create_a_deel_terminations_resignations_resignation
Create a resignation request for a Deel EOR contract on behalf of a team member. Returns the resignation confirmation object with field definitions defined by Deel upstream. Required: oid, data.
list_all_deel_worker_benefits
List the benefits assigned to the authenticated employee in Deel. Returns benefit records with their id and benefit-specific attributes. Must be called with an employee-scoped worker token; the employee identity is inferred from the token.
create_a_deel_workers_bank
Create a bank account for a deel EOR employee. Returns the id of the newly created bank account record. Required: data (an array of key-value properties describing the bank account).
update_a_deel_workers_bank_by_id
Update a deel EOR employee's bank account by id, modifying only the properties whose values you want to adjust. Returns the id, created_at, and updated_at of the updated bank account record. Required: id (the bank account's UUID) and data (key-value pairs of the fields to set).
create_a_deel_workers_compliance_document
Upload a compliance document file for a Deel EOR employee against the specified compliance document. Returns the upload confirmation payload, whose field-level shape is defined by Deel's upstream response schema. Required: compliance_document_id, document_id.
list_all_deel_workers_compliance_documents
List the compliance documents for a Deel worker, including all required and optional documents with their current submission status, grouped by country. Returns: documents. Works for independent contractors and EOR employees.
list_all_deel_workers_compliance_documents_compliance_documents
List the compliance documents associated with an EOR employee in Deel. Returns the collection of compliance document records; each record includes its id, which serves as the document_id for the matching upload, acknowledgement, and download endpoints. The endpoint takes no query parameters.
list_all_deel_workers_resignations
List resignations submitted by EOR workers in Deel, optionally filtered by resignation letter status. Returns: id, status, end_date, created_at, updated_at, contract_id, desired_end_date, resignation_letter.
list_all_deel_workers_tax_documents
List tax documents for the authenticated EOR employee in deel. Returns the retrieved collection of tax documents resolved from the caller's worker access token. No query parameters are accepted.
create_a_deel_contract_off_cycle_payments_off_cycle_payment
Create an off-cycle payment for a Deel contract, adding an invoice line item for a payment issued outside the regular payment schedule. Returns the created off-cycle payment record including its id. Required: contract_id.
get_contract_off_cycle_payments_off_cycle_payment_by_id
Get a single off-cycle payment by id for a Deel contract. Returns the off-cycle payment record including its id. Required: contract_id and id.
list_all_deel_contract_off_cycle_payments_off_cycle_payments
List all off-cycle payments for a Deel contract — payments made outside the regular payment schedule, such as exceptional or one-time expenses. Returns off-cycle payment records including their id. Required: contract_id.
deel_contract_terminations_bulk_delete
Cancel a pending termination request for a deel contract, reverting the contract to its pre-termination state. Only termination requests that have not yet reached their effective date can be cancelled. Returns an empty 204 response on success. Required: contract_id.
create_a_deel_contract_termination
Terminate an active contractor contract in deel, recording the termination reason, effective date, and any final payment details. Returns the created termination with id and created_at. Required: contract_id, data (provide either terminate_now: true for immediate termination or completion_date for scheduled termination). Only active contracts can be terminated.
deel_contract_tasks_bulk_delete
Delete a specific task from a Deel contract. Returns an empty 204 response on success. Required: contract_id, task_id.
create_a_deel_contract_task
Create a new task for the contractor associated with a Deel contract. Returns the created task's id. Required: contract_id.
list_all_deel_contract_tasks
List all tasks for a specific contract in Deel. Returns: id, amount, status, attachment, description, date_submitted, submission_date. Required: contract_id.
list_all_deel_contract_timesheets
List the timesheets for a deel contract. Returns each timesheet's id, status, and attributes (contract, date, hours worked, and description). Optional filters include contract types, statuses, reporter_id, and a date_from/date_to range. Required: contract_id.
create_a_deel_timesheet_review
Create a review for a timesheet entry in deel. Returns the created review's id. Required: timesheet_id.
create_a_deel_timesheet_reviews_review
Approve or reject a submitted Deel timesheet as a single operation; only timesheets in PENDING_REVIEW status are eligible. Returns updated timesheet details: id, review_status, reviewed_at. Required: timesheet_id and data.review_status; data.review_reason is required when the decision is REJECTED.
create_a_deel_timesheets_preset
Create a new hourly report preset in deel. Returns the id assigned to the newly created preset. Required: data (preset configuration, wrapped under a data key).
delete_a_deel_timesheets_preset_by_id
Delete an hourly report preset in deel by id. Permanently removes the preset and returns a success body containing the deleted preset's id. Required: id (UUID).
get_single_deel_timesheets_preset_by_id
Get a single hourly report preset in deel by id. Returns the preset object including its id, title, and created_at. Required: id (UUID).
list_all_deel_timesheets_presets
List hourly report presets saved for a Deel contract, optionally scoped to a work statement and orderable by title or created_at. Returns: id, file, rate, title, description, hourly_report_root_preset, created_at. Required: contract_id.
update_a_deel_timesheets_preset_by_id
Update an hourly report preset in Deel by id, applying a partial update where only fields included in the request body are modified. Returns: id, title, created_at. Required: id and data.
create_a_deel_timesheets_rest
Create a timesheet entry in Deel for an hourly contractor, recording the contract, date, hours worked, and an optional description; the entry is placed into review immediately upon creation. Returns: id, status, created, created_at, contract_id, date, hours, description, reporter_id, updated_at. Required: data.
delete_a_deel_timesheets_rest_by_id
Permanently delete a Deel timesheet entry by id. Returns: data. Required: id.
get_single_deel_timesheets_rest_by_id
Get a single Deel timesheet entry by id. Returns: id, type, scale, status, contract, quantity, worksheet, attachment, created_at, description, reported_by, reviewed_by, custom_scale, total_amount, currency_code, payment_cycle, date_submitted, hourly_report_preset, approvers, contract_id, date, hours, reporter_id, updated_at. Required: id.
list_all_deel_timesheets_rest
List Deel timesheets in the account, optionally filtered by contract_id, contract_types, statuses, reporter_id, or a date range. Returns each entry's id, contract_id, date, hours, and status.
create_a_deel_timesheets_root_preset
Create an hourly report root preset in deel and start asynchronous processing of its presets. Returns: id, async_task. Required: title.
get_single_deel_timesheets_root_preset_by_id
Get a single hourly report root preset in deel by id, including its current status. Returns: id, file, type, title, status, description, created_at, updated_at. Required: id.
list_all_deel_timesheets_root_presets
List hourly report root presets in deel, filterable by work statement status and ordered by field and direction. Returns: id, file, type, title, description, contracts_count, hourly_report_presets_count, status, created_at, updated_at. Max 100 per page.
delete_a_deel_contract_custom_fields_contract_by_id
Clear a custom field's value on a contract in deel. Deletes the value identified by the custom field id. Returns an empty 204 response on success. Required: contract_id, id (the custom field id).
list_all_deel_contract_custom_fields_contracts
List the custom fields set on a contract in deel. Returns each field's id, data (the stored value), name, and type (text, list, multiselect, number, percentage, currency, or date). Required: contract_id.
get_single_deel_contracts_custom_fields_contract_by_id
Get a single contract custom field definition in Deel by its id. Returns the definition's id, name, type, settings, placement, and description. Required: id (custom field UUID).
list_all_deel_contracts_custom_fields_contracts
List all custom field definitions configured for contracts in Deel. Returns definition metadata — not specific contract field values — including id, name, type, settings, placement, and description; supported types include text, list, multiselect, number, percentage, currency, and date.
deel_custom_fields_bulk_update
Create or update a custom field value for a Deel worker; if a value already exists for the specified field it is overwritten. Returns the saved custom field value with its id. Required: worker_id and data.
delete_a_deel_custom_field_by_id
Delete a custom field value from a Deel worker record by the custom field's id. Returns an empty 204 response on success. Required: worker_id and id.
list_all_deel_custom_fields
Retrieve all custom field values currently set for a Deel worker. Returns: id, data, name, type. Required: worker_id.
get_single_deel_people_custom_fields_person_by_id
Get a single person custom field definition in Deel by its id. Returns the definition record including id, created_at, and updated_at. Required: id (UUID).
list_all_deel_people_custom_fields_people
List the custom field definitions configured for people records in Deel — field metadata only, not the values set on individual workers. Definitions cover supported types such as text, list, multiselect, number, percentage, currency, and date. Returns: id, name, type, settings, placement, created_at, description, updated_at.
deel_team_custom_fields_bulk_update
Update the custom field values of a team in a Deel organization structure. Updates can be scheduled to take effect on a future effective date, and setting a field's value to null deletes that field value. Returns the updated team record including its id and the applied custom field attributes. Required: team_id, data.
list_all_deel_departments_rest
List the departments in your Deel organization. Returns each department's id, name, and parent_department (included only when the department has a parent). No required parameters.
create_a_deel_hris_organization_structures_hri
Create a new HRIS organization structure in deel. Returns the created structure record including id, organization_id, name, teams, and roles. The is_multi_select and enable_roles body flags control multiple team assignments and role management.
delete_a_deel_hris_organization_structures_hri_by_id
Delete an HRIS organization structure from deel by id. Structures with profiles still assigned require the force flag to be removed. Returns: id, name, organization_id, teams, roles. Required: id.
get_single_deel_hris_organization_structures_hri_by_id
Get a single deel HRIS organization structure by id, including its associated teams and roles. Returns: id, name, type, roles, teams, external_id, teams_count, enable_roles, is_multiselect, organization_id. Required: id.
list_all_deel_hris_organization_structures_hris
List the deel HRIS organization structures configured for the organization, each including its teams and roles. Returns: id, name, type, roles, teams, created_at, external_id, teams_count, enable_roles, is_multiselect, organization_id. Max 200 per page.
delete_a_deel_organization_structures_external_by_id
Permanently delete an organization structure from the deel organization by its external id. Returns the deleted structure including its id, name, roles, and teams. Required: id (the structure's external ID).
get_single_deel_organization_structures_external_by_id
Get a single organization structure in deel by its external id, including associated roles and teams. Returns: id, name, type, roles, teams, external_id, teams_count, enable_roles, is_multiselect, organization_id, settings. Required: id (the structure's external ID).
update_a_deel_organization_structures_external_by_id
Partially update an organization structure in deel by its external id; only fields provided in the request body are modified, omitted fields keep their current values. Returns the updated structure including its id, name, roles, and teams. Required: id (the structure's external ID) and teams (inside data).
create_a_deel_pwac
Create a person without a contract in Deel, adding a people-only HRIS record for tracking individuals in your organization's directory before or without formalizing an employment or agreement — e.g. pre-boarding or contingent workers. Returns: id, person. Required: data.
create_a_deel_task_reviews_task
Create a review for a task associated with a Deel contract, approving or declining the submitted task. Returns whether the review was created (created). Required: contract_id, task_id, and status (approved or declined).
create_a_deel_application_note
Add a note to a Deel ATS application. Returns the created note record with id, created_at, and updated_at. Required: application_id and data, including author_id, which must correspond to a valid HRIS user.
list_all_deel_ats_application_sources_application_sources
List the application sources configured in the Deel ATS to discover the valid source slugs for the source_slugs filter when listing applications. Returns: id, slug, created_at, updated_at. Max 100 per page.
create_a_deel_ats_applications_at
Create an ATS application in deel linking an existing candidate to an existing job; both records must already exist. Returns the created application including its id, source_slug, job and candidate metadata, and created_at. Requires a data payload referencing the candidate and job.
get_single_deel_ats_applications_at_by_id
Get a single deel ATS application by id, including job, candidate, and submission metadata. Returns: id, job, notes, hired_at, candidate, job_board, created_at, created_by, numeric_id, updated_at, job_posting, referred_by, source_slug, archivation_reason, job_employment_type, submitter_ip_address, submitter_user_agent, archivation_reason_id, job_posting_publication, referral_form_submission,…
list_all_deel_ats_applications_ats
List deel ATS applications to trace where candidates stand in the hiring pipeline and how they got there. Returns: id, job, hired_at, candidate, created_at, numeric_id, updated_at, job_posting, source_slug, stage_history, job_employment_type, submitter_ip_address, submitter_user_agent, archivation_reason_id, moved_to_current_stage_at, application_form_submission,…
deel_children_bulk_update
Create or replace child worker relations for a deel HRIS profile by hris_profile_oid. All existing child relationships of a given type not included in the request are removed. Returns an empty 204 response on success. Required: hris_profile_oid, data.
deel_children_bulk_update_external
Create or replace the child worker relation for a deel HRIS profile identified by its external ID. If a child relation already exists for the profile, it is overwritten with the supplied data. Returns an empty 204 response on success. Required: profile_id, data.
list_all_deel_entitlements_profile
List a worker's time-off entitlements in deel for an HRIS profile, showing the leave balance — entitlement granted, days used, and days remaining — across all active policies for a given tracking period. Returns: id, attributes. Required: hris_profile_id.
create_a_deel_global_payroll_sync
Sync time-off records from an external HRIS into Deel for Global Payroll contracts. Each record is upserted or deleted based on its external ID — records with deleted: true are removed — and Deel calculates the payroll cycle impact of each operation. Returns the processed sync results in data. Required: data.
deel_parents_bulk_update
Create or replace the parent worker relation on a Deel HRIS profile identified by its internal id; an existing parent relation for the profile is overwritten with the supplied data. Returns an empty 204 response on success. Required: hris_profile_oid. Parent relation fields go in the request data object.
deel_parents_bulk_update_external
Set or replace the parent worker relation on a Deel HRIS profile identified by its external id. Returns an empty 204 response on success. Required: profile_id. Hard limitation: pass null as parent_profile_external_id in data to remove the existing parent relationship.
create_a_deel_people
Create a direct employee in Deel's HRIS under the organization's own legal entity, provisioning both a person and an associated employment contract. Returns the created person record with id, employments, custom_fields, and worker_relations. Required: data.
get_single_deel_people_by_id
Get a single person in Deel by their public ID. Returns the person record with id, employments, custom_fields, and worker_relations. Required: id (the person's hris_profile_id).
list_all_deel_peoples
List people records in the Deel organization, with filters for search term, teams, hiring status, band placement, hiring type, and person status. Returns each person record with id, employments, custom_fields, and worker_relations. Max 200 per page.
get_single_deel_peoples_me_by_id
Get the personal profile of the currently authenticated Deel user, covering identity, organization membership, and identifiers for connected services such as Slack. Returns: id. Takes no parameters.
get_single_deel_personals_personal_by_id
Get a worker's personal information in deel by id. Returns the personal-information record including its id and an attributes object holding the personal-information fields defined upstream. Required: id.
list_all_deel_policies
List the Deel time-off policies assigned to a worker's HRIS profile, including policy details such as allowed types, accrual rules, and balances. Results can be filtered by policy type name or policy type id. Returns each policy's id and its attributes object. Required: hris_profile_id.
create_a_deel_positions_apply_change
Apply a batch of add, edit, and delete changes to Deel positions in a single request; multiple operation types may be submitted together. Returns an empty 204 response on success. Each operation in the batch must target a valid, existing position where applicable.
get_single_deel_positions_profile_by_id
Get all positions assigned to an HRIS profile in deel, including the associated role, team, and organization structure for each position. Returns the position records with their id, role, and team. Required: id.
create_a_deel_profile_external
Create a hierarchical worker relation in Deel between a worker and their subordinates using external IDs for all parties. Returns: id. Required: data — the payload supplying the parent and child workers' external IDs and the relation type.
delete_a_deel_profile_external_by_id
Delete a Deel worker relation by its external ID, removing all linked parent and child associations. Returns an empty 204 response on success. Required: id (the Worker Relation external ID).
get_single_deel_profile_external_by_id
Fetch all worker relationships for a Deel HRIS profile by its external ID, including parent and child relations. Returns: id, name, is_parent, is_default, child_relationships, parent_relationship. Required: id (the HrisProfile external ID).
list_all_deel_time_offs_dailies
List Deel work schedules, holidays, and time-off dailies for a given date range, optionally scoped to one or more HRIS profiles or countries. Returns: holidays, work_schedule, time_off_dailies, work_schedule_entries, dailies. All query filters are optional.
list_all_deel_time_offs_policy_validation_templates
Retrieve Deel time-off policy validation templates and the policy types available for one or more countries. Returns: policy_types, policy_validation_templates. Required: countries (array of ISO 3166-1 alpha-2 codes).
get_single_deel_time_offs_profile_by_id
List a Deel worker's time-off requests scoped to a single HRIS profile. Returns the paginated time-off records for the profile, each including id, status, start_date, and end_date. Required: id (the worker's hris_profile_id). Page size is limited to 5–200.
create_a_deel_time_offs_rest
Create a new time-off request for a worker in Deel by sending the request details in the `data` object. Returns the created request record: id, status, deleted_at.
delete_a_deel_time_offs_rest_by_id
Cancel a time-off request in Deel by id. Returns an empty 204 response on success. The request is set to CANCELED immediately regardless of its current status and cannot be reversed. Required: id.
list_all_deel_time_offs_rest
List time-off requests for the authenticated Deel organization, filterable by status, time_off_ids, date ranges, approval ranges, and policy types. Returns: id, amount, reason, status, is_paid, end_date, created_at, deleted_at, start_date, updated_at, approved_at, canceled_at, description, contract_oid, requested_at, half_end_date, time_off_type, half_start_date, time_off_origin,…
create_a_deel_time_offs_review
Approve or reject a batch of Deel time-off requests in a single call. Returns: data.g. time-offs not in REQUESTED status). Required: data. Each entry's desired status must be APPROVED or REJECTED, and rejection is irreversible.
list_all_deel_time_offs_time_off_events
List Deel time-off events for a worker profile. Returns the collection of time-off event records, each with an id and upstream-defined attributes. Required: hris_profile_id.
create_a_deel_time_offs_validate
Validate a time-off request in deel against policy compliance, available balance, and blackout dates before it is created. Returns the validation result including the is_valid flag. Send the time-off request payload in the data body property.
delete_a_deel_types_externals_external_by_id
Permanently delete a worker relation type in deel by its external id. Returns an empty 204 response on success. Required: id.
get_single_deel_user_by_id
Get a single user in Deel's HRIS by id. Returns the user record including id and email. Required: id (the HRIS profile OID).
list_all_deel_users
List users in Deel's HRIS. Returns user records including id, userName, name, emails, and meta. Max 100 per page.
create_a_deel_worker_relations_profiles_profile
Create a worker relation in deel that links a parent worker with one or more subordinate profiles. Returns the created relation record with its id and relationship attributes. Required: data — the relationship details identifying the parent worker and subordinates. Invalid bodies or circular relationships are rejected.
list_all_deel_worker_relations_profiles_profile
List all worker relations for an HRIS profile in deel, including both parent and child relationships. Returns worker relation records with their id and relationship attributes. Required: hris_profile_oid (the HRIS profile UUID).
create_a_deel_worker_relations_type
Create a worker relation type in Deel, defining a named parent–child relationship structure that can be applied to worker associations. Returns: id, child_name, is_default, external_id, parent_name. Required: data.
delete_a_deel_worker_relations_type_by_id
Delete a worker relation type from Deel by id. Returns an empty 204 response on success. Required: id.
list_all_deel_worker_relations_types
List all worker relation types configured in the Deel organization — the valid relationship categories assignable when creating or upserting worker relations. Returns: id, child_name, is_default, external_id, parent_name, created_at, updated_at.
update_a_deel_worker_relations_type_by_id
Update a worker relation type in Deel by id. Only fields provided in the data payload are modified; omitted fields retain their current values. Returns an empty 204 response on success. Required: id, data.
list_all_deel_working_locations_working_locations
List the working locations available in deel for the organization. Returns location option records with upstream-defined fields (id, attributes); use them to populate location choices when creating or editing people or contract records.
create_a_deel_application_interview_plan_stage
Assign a deel application to a specific interview plan stage, optionally advancing it as the application's current stage. Returns the created application interview plan stage record including id, created_at, and updated_at. Required: application_id and a data object.
list_all_deel_ats_attachments_ats
List ATS attachment files (such as resumes, cover letters, or offer letters) attached to a specific entity in deel, scoped by entity type and attachment type. Returns per file: id, created_at, updated_at. Required: attachable_type_slug, attachable_id, attachment_type_slug.
create_a_deel_ats_candidates_at
Create an ATS candidate in deel with the required name and email plus optional phone, LinkedIn profile, and CV details. Returns the candidate's unique id, used later for creating job applications and managing candidate records. Required: data.
list_all_deel_ats_candidates_ats
List deel ATS candidates, optionally filtered by search text, job_ids, department_ids, tag_ids, current_stage_category_type_slugs, current_stage_default_type_slugs, or updated_after. Returns each candidate's id. Max 100 per page (default 20).
list_all_deel_ats_departments
List the ATS departments configured in a Deel organization; use the returned ids in the department_ids filter when listing or creating ATS jobs. Returns a paginated list of department records with: id, name, created_at, updated_at. Max 100 per page.
list_all_deel_ats_email_templates
List published Deel ATS email templates for the organization. Returns: id, title, created_at, updated_at. Max 100 per page.
list_all_deel_ats_employment_types_employment_types
List the employment types available in the organization's ATS in deel, to resolve employment type ids for job creation and for the employment_type_ids filter when listing jobs. Returns: id, name, created_at, updated_at. Results are paginated.
list_all_deel_ats_hiring_members
List hiring members (recruiters, hiring managers, and interviewers) configured in a Deel organization to support screening tasks, interview scheduling, and hiring workflows. Returns hiring-member records identified by id, with member details under attributes. Max 100 per page.
get_single_deel_ats_job_posting_by_id
Get a single Deel ATS job posting by id. Returns the complete posting record including its publication status across job boards, associated job information, and application form configuration. Required: id (job posting UUID).
list_all_deel_ats_job_postings
List ATS job postings across the Deel organization, optionally narrowed by job board or job. Returns: id, job, title, job_id, created_at, updated_at, publications, application_form, richtext_description, is_compensation_visible. Max 100 per page.
create_a_deel_ats_jobs_at
Create a new job in the Deel ATS once its interview plan, team, location, and employment type have been determined. Returns the created job with id, status, created_at, and updated_at. Requires a data payload with the job details.
list_all_deel_ats_jobs_ats
List ATS jobs in Deel, filterable by search text, interview plan, locations, teams, employment types, departments, status, work arrangements, or last-updated time. Returns each job with id, status, created_at, and updated_at. Max 100 per page (default 20).
list_all_deel_ats_locations_ats
List the work locations configured in deel, typically used to populate job postings or filter jobs and openings by location. Returns: id, city, name, is_remote, created_at, updated_at, country_code, location_group, province_or_region_text. Max 100 per page. This endpoint version is deprecated and scheduled for removal on 2027-09-01.
list_all_deel_ats_offers_ats
List ATS offers in deel, including each offer's worker type and status, to support pre-onboarding and contract creation workflows. Returns: id, email, job_title, created_at, expires_at, replied_at, start_date, updated_at, worker_type, country_code, offer_status, attachment_id, custom_fields, approval_rule_id, additional_details, approval_request_id, compensation_amount, rejection_reason_id,…
list_all_deel_ats_reasons_ats
List Deel ATS rejection and archivation reasons for the organization, filterable by reason group and subgroup. Returns: id, label, created_at, jobs_count, updated_at, subgroup_slug, email_template, candidates_count, reason_group_slug. Required: reason_group_slug. Max 100 per page.
list_all_deel_ats_tags
List ATS tags for the deel organization. Returns each tag's id, label, and candidates_count (when include_counts is true). Filter by search_text or tag_group_slug (use CANDIDATE for candidate tags); max 100 per page.
list_all_deel_job_board_job_postings
List Deel ATS job postings for a specific job board to monitor publication state and nested job details. Returns: id, job, title, job_id, created_at, updated_at, publications, application_form, richtext_description, is_compensation_visible. Required: job_board_id (UUID).
create_a_deel_contracts_gp
Create a Global Payroll (GP) contract in deel. Returns the created contract including its unique id. Required: data (the GP contract object). Country-specific fields inside data must be retrieved in advance from the worker additional fields form for the target country.
get_single_deel_gross_to_net_csv_by_id
Download the deel gross-to-net calculation report for a specified payroll report as a CSV file, with optional currency conversion applied. Returns the report as a downloadable CSV file with content-type-specific fields. Required: id.
list_all_deel_it_assets_it
List the Deel IT assets your organization owns or rents, current and historical, filterable by holder, location, category, and status. Returns: id, grade, status, product, location, ownership, public_id, created_at, updated_at, assigned_user, purchase_date, serial_number, purchase_value, assigned_warehouse, category. Max 100 per page.
get_single_deel_it_assets_it_by_id
Retrieve a single Deel IT asset by id, including its structured product specifications. Returns: id, grade, status, actions, product, location, ownership, public_id, created_at, updated_at, assigned_user, purchase_date, serial_number, purchase_value, assigned_warehouse, category. Required: id.
list_all_deel_legal_entitie_reports
List Deel Global Payroll payroll events for a legal entity to prepare payroll reports or audit pay cycles. Returns a paginated list of payroll event records, each including an id. Required: legal_entity_id. Max 200 per page.
list_all_deel_report_gross_to_nets
List the gross-to-net calculation rows for a global payroll report in Deel, with amounts convertible to a requested currency. Returns paginated report rows, each with an id and report-specific attributes. Required: report_id. Max 200 rows per page.
create_a_deel_shifts_raw
Create raw time tracking shifts in Deel for a contract by submitting uncategorized clock-in and clock-out times; Deel classifies the hours (e.g., regular or overtime). Returns the creation result payload from Deel's time-tracking API, whose field set is not enumerated in the available documentation. Required: data (containing the contract ID and shifts to create).
create_a_deel_time_tracking_shift_rate
Create a new time tracking shift rate in deel with attributes such as name, type, value, and a unique external identifier. Returns: name, type, value, external_id. Required: data.
delete_a_deel_time_tracking_shift_rate_by_id
Delete a deel time tracking shift rate by id (the external_id assigned at creation time). Returns an empty 204 response on success. Deletion is blocked if the shift rate is currently associated with any active shift. Required: id.
get_single_deel_time_tracking_shift_rate_by_id
Get a single deel time tracking shift rate by id (the external_id assigned at creation time). Returns: name, type, value, external_id, id, created_at, updated_at. Required: id.
list_all_deel_time_tracking_shift_rates
List deel time tracking shift rates with details such as rate name, type, value, and timestamps. Returns: name, type, value, created_at, updated_at, external_id, id. Max 200 per page.
update_a_deel_time_tracking_shift_rate_by_id
Partially update a time tracking shift rate in deel by id (the external_id assigned at creation time), modifying only the fields provided in the request body. Returns: name, type, value, created_at, updated_at, external_id. Required: id.
create_a_deel_time_tracking_shift
Create one or more time tracking shifts for a contract in Deel, supporting regular shift submissions and correction shifts that adjust hours for previously processed shifts. Returns the created shift records including external_id, start_time, end_time, breaks, metadata, and summary metrics. Required: data.
delete_a_deel_time_tracking_shift_by_id
Delete a time tracking shift in Deel by id (the shift's external_id). The shift is permanently deleted and cannot be retrieved or modified afterwards. Returns an empty 204 response on success. Required: id.
get_single_deel_time_tracking_shift_by_id
Get a single Deel time tracking shift by id (the shift's external_id). Returns the shift details including external_id, contract_id, start_time, end_time, breaks, and metadata. Required: id.
list_all_deel_time_tracking_shifts
List Deel time tracking shifts with details such as start and end times, breaks, metadata, and summary metrics. Returns each shift with external_id, contract_id, start_time, end_time, breaks, and metadata.
update_a_deel_time_tracking_shift_by_id
Update a Deel time tracking shift by id (the shift's external_id), modifying only the fields supplied in the request body; fields omitted from the request are left unchanged. Returns the updated shift including external_id, start_time, end_time, breaks, metadata, and summary metrics. Required: id and data.
get_single_deel_time_tracking_timesheet_by_id
Get a time-tracking timesheet in deel by id, including its submission, review, and processing status. Returns: id, end_date, file_data, created_at, start_date, updated_at, contract_id, review_status, submission_status, validation_errors. Required: id.
create_a_deel_timesheets_upload_url
Generate a pre-signed upload URL for a Deel timesheet file, creating a new timesheet record from the supplied file metadata. Returns: id, created_at, updated_at, upload_url, upload_fields. Required: data (timesheet file metadata). Currently limited to EOR contracts.
deel_worker_addreses_bulk_update
Update the address on record for a Global Payroll worker in deel. Partially applies only the address fields provided in the payload. Returns the updated address record, including id, created_at, and updated_at. Required: worker_id and data (the desired address).
deel_worker_banks_bulk_update
Modify a GP worker's bank account in deel; only fields provided in the request body are modified. Returns the updated bank account record with its id, bank_name, account_number, swift_bic, and more. Required: worker_id and bank_id.
create_a_deel_worker_bank
Add a bank account for a GP worker in deel. Country-specific field requirements must be retrieved from the worker's bank guide before submitting. Returns the created bank account record with its id, created_at, and updated_at. Required: worker_id and data.
list_all_deel_worker_banks
List all bank accounts associated with a GP worker in deel. Returns each bank account record with its id, bank_name, account_number, currency_code, bank_country_code, and more. Required: worker_id.
list_all_deel_worker_banks_workers
List the active bank accounts of a Deel HRIS worker for payroll payment disbursement. Returns the bank account records with schema-specific fields defined by the upstream bank-accounts schema. Required: worker_id.
deel_worker_compensations_bulk_update
Update the compensation for a Global Payroll worker in deel. Returns the complete compensation history including the applied change, with each entry's salary, scale, effective_date, and status. Required: worker_id, data.
deel_worker_employee_informations_bulk_update
Update employee information for a deel Global Payroll worker, partially modifying personal details, tax information, and employment-related fields. Requires worker_id and a data object with the fields to change. Returns a 202 Accepted response with an unspecified body.
deel_worker_pto_policies_bulk_update
Update the PTO policy assigned to a Global Payroll worker in deel via a partial update — only fields included in the request body are modified; omitted fields retain their current values. Returns: updated. Required: worker_id and data.
create_a_deel_worker_termination
Create a termination request for a Global Payroll worker in deel. Returns a 201 confirmation that the request was accepted and the termination process has begun — not that the termination is complete — including the confirmation's id; the documentation does not enumerate further confirmation fields. Required: worker_id, data.
create_a_deel_agreement_reassign
Reassign a Deel rental agreement to a new worker via store-and-reuse, passing the rented device to a new joiner instead of returning it. Transitions store_and_reuse.status from READY to IN_PROGRESS and returns the updated agreement including id, store_and_reuse, and actions. Required: agreement_id and a data payload with variant_id (chosen from reusable_variants on the retrieve-agreement…
list_all_deel_application_feedbacks
List the feedback a hiring panel has recorded against a deel application's interviews and evaluations. Returns: id, status, reviewer, created_at, revoked_at, stage_name, dismissed_at, submitted_at, activity_type, feedback_form, form_responses, dismissal_reason, overall_recommendation, revocation_reason_enum, scheduled_interview_id, application_activity_id, attributes. Required: application_id.…
create_a_deel_asset_clear
Create a clearance request for a deel IT asset to retire the device for recovery, resale value, or certified data erasure. Returns the created clearance request record: id plus content-specific attributes not enumerated in the docs. Required: asset_id, data. Clearance must be enabled for the organization; the referenced manager is recorded as the requester and receives lifecycle notifications.
create_a_deel_asset_collect
Create a collection for a Deel IT asset to recover the device from a worker (e.g. at offboarding) and route it to a warehouse or a Deel-managed reuse location, choosing exactly one destination inside data. Returns: id, grade, status, actions, product, location, ownership, public_id, created_at, updated_at, assigned_user, purchase_date, serial_number, purchase_value, assigned_warehouse. Required:…
create_a_deel_asset_deliver
Create a delivery request for a Deel IT asset so Deel operations ship it from a warehouse to a worker (HRIS profile). Returns: id, grade, status, actions, product, location, ownership, public_id, created_at, updated_at, assigned_user, purchase_date, serial_number, purchase_value, assigned_warehouse. Required: asset_id, data. Use the asset location-change endpoint instead if you only need to…
create_a_deel_asset_location
Record that a Deel IT asset moved to a new location without triggering Deel logistics or invoicing — a self-serve transfer between workers, a delivery from your storage location to a worker (AT_WAREHOUSE to WITH_USER), or a collection back to storage (WITH_USER to AT_WAREHOUSE). Returns the updated asset location including id, location, and hris_profile_id. Required: asset_id and data.location.
create_a_deel_asset_transfer
Transfer a Deel IT asset directly from one worker to another, with Deel operations handling the pick, ship, and receive logistics. Returns the reassigned asset record including its id, holder, and location. Required: asset_id and a data object with the transfer details.
create_a_deel_asset_unarchive
Restore an archived IT asset in Deel back to ACTIVE, undoing an archive recorded in error. Returns: id, grade, status, actions, product, location, ownership, public_id, created_at, updated_at, assigned_user, purchase_date, serial_number, purchase_value, assigned_warehouse. Required: asset_id.
get_single_deel_ats_application_form_by_id
Get a single Deel ATS application form by id. Returns the form's definition and metadata, including its id, title, status, and the pages of its form builder configuration. Required: id.
list_all_deel_ats_feedbacks
List interview and evaluation feedback across the organization in Deel. Returns: id, status, reviewer, created_at, updated_at, application, submitted_at, activity_type, feedback_form, form_responses, scheduled_interview, interview_plan_stage, overall_recommendation, application_activity_id, application_interview_plan_stage_id, job_id, application_id, candidate_id, interview_plan_stage_id,…
list_all_deel_ats_interviews_ats
List interviews for the organization in Deel ATS, filterable by job, candidate, interviewer, application, interview plan stage, status, and start-time date range, with updated_after for incremental sync. Returns interview records including id, created_at, and updated_at. Max 100 per page.
list_all_deel_ats_job_boards
List ATS job boards configured for the organization in deel — internal, external, or LinkedIn boards — typically before selecting one for job postings or career-page configuration. Returns job board records including id, type_enum (board kind: internal, external, or LinkedIn), status_enum, and created_at. No required parameters; results are paginated with a 100-per-page maximum.
list_all_deel_ats_openings_ats
List job openings (requisitions/headcount requests) in Deel ATS, filterable by status, team, location, linked job, and tags. 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,…
list_all_deel_ats_teams
List all ATS teams in Deel's Applicant Tracking System. Returns each team's id and name. Max 100 per page.
create_a_deel_candidate_note
Add a note to a candidate in Deel's ATS — the note stays visible across all of that candidate's applications. Returns the created note record with id, created_at, and updated_at. Required: candidate_id, data. Beta endpoint: requires the X-Beta: true header until it stabilizes on 2026-12-29.
create_a_deel_candidates_rest
Create a candidate record in Deel for contractor onboarding outside of an ATS flow. Returns the created candidate's id, created_at, and updated_at; the returned id can be used in subsequent contract creation calls. Required: data.
create_a_deel_clearance_request_decide
Approve or reject quotes on a deel clearance request. Every request item currently in the request must be included in the data payload; when every item is rejected the request is cancelled, while accepted items move on to collection and hand-off to the clearance partner. Returns the updated clearance request object with its id, status, public_id, request_items, and cancelled_reason. Required:…
create_a_deel_consent_tokens_consent_token
Create a time-bounded consent token in Deel that authorizes third-party service connections on behalf of the organization. Returns the created token's expires_at. Required: data.
create_a_deel_equity_exercise
Create a Deel equity exercise request in a pending state for later employer approval. Returns: id, status, created_at, updated_at. Requires: fmv, quantity, issuer_id, worker_id, exercise_id, stakeholder_id, stakeholder_email, stakeholder_relationship, option_grant_id, option_grant_issue, option_grant_label, option_grant_currency, option_grant_strike_price, option_grant_issue_date,…
list_all_deel_equity_exercises
List the Shareworks equity exercises recorded for a Deel organization in ascending exercise_date order. Returns: id, currency, plan_name, grant_date, grant_name, grant_type, updated_at, exercise_fmv, fmv_per_unit, exercise_date, exercise_gain, exercise_price, cost_of_options, employee_number, hris_profile_id, employee_grant_number, shares_exercised_total, shares_exercised_vested,…
update_a_deel_equity_exercise_by_id
Approve or reject a pending Deel equity exercise by updating its employer approval status. Returns: id. Required: id (the equity exercise public ID) and employer_approval ('approved' or 'rejected').
get_single_deel_invoice_download_by_id
Get a temporary download URL for a deel invoice PDF by id. Returns: data. The URL expires and must be re-requested after expiry. Required: id.
list_all_deel_invoices_deels
List invoices for Deel platform fees. Returns the paginated invoice records, each including at least its id; the remaining record fields follow Deel's invoice schema and are not enumerated in the upstream documentation.
get_single_deel_invoices_rest_by_id
Get a single Deel invoice by id. Returns the invoice record including its id, created_at, and updated_at. Required: id.
list_all_deel_invoices_rest
List Deel invoices with offset- or cursor-based pagination; only paid invoices are returned unless status=all is passed. 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, updated_at. Max 50 per page.
get_single_deel_it_agreement_by_id
Get a single Deel IT rental agreement by id. Returns the agreement's id, status, store_and_reuse state, and the actions.reuse.details.reusable_variants listing the device variants the next holder can receive — call this before reassigning to pick a variant_id. Required: id.
list_all_deel_it_agreements
List the Deel rental agreements your organization holds, each with its current store-and-reuse state. Returns: id, type, status, actions, product, end_date, public_id, created_at, start_date, updated_at, variant_id, store_and_reuse, billing_entity_id, assigned_hris_profile, hris_profile_id. Filterable by status, type, store_and_reuse_status, and hris_profile_id.
deel_it_clearance_requests_cancel
Cancel a deel clearance request. Only requests in PENDING_QUOTE or PENDING_DECISION status can be cancelled, and cancelling reverts every associated asset back to active tracking. Returns: id, status, public_id, created_at, expires_at, request_items, cancelled_reason. Required: clearance_request_id.
get_single_deel_it_clearance_request_by_id
Get a single deel clearance request by id, including the status of each item being cleared. Returns: id, status, public_id, created_at, expires_at, request_items, cancelled_reason. Required: id.
list_all_deel_it_clearance_requests
List the deel clearance requests raised to retire devices for resale value or certified data erasure. Returns: id, status, public_id, created_at, expires_at, cancelled_reason.
get_single_deel_it_orders_it_by_id
Get a single IT equipment order in Deel by id. Returns the order's id, created_at, updated_at, and attributes covering its current fulfilment status, shipping details, and the product ordered. Required: id.
list_all_deel_it_orders_it
List the IT equipment orders of your Deel organization. Returns each order's id, created_at, updated_at, and attributes covering its current fulfilment status, shipping details, and the product ordered.
deel_it_policies_assign
Assign workers to a Deel IT hardware policy, identifying each worker by their Deel HRIS profile id; useful from onboarding or HRIS automations. Returns an empty 204 response on success. Required: it_policy_id, data. Accepts 1-100 ids per call and is all-or-nothing, so no worker is moved if any id is unknown.
list_all_deel_it_policies
List your organization's Deel IT hardware policies, which cap what equipment each worker is eligible to order, to resolve a worker's policy and the products it allows before raising an equipment request. Returns: id, name, is_default. Up to 100 per page.
get_single_deel_it_product_by_id
Get a single Deel IT product's catalog details by id, including its variants, images, and addons. Returns: id, name, brand, images, category, variants, public_id, description, available_addons, product_hardware_spec, addons. Required: id. No pricing, taxes, fees, or stock counts are returned.
list_all_deel_it_products
List products in the Deel IT catalog available for purchase or rent, filtered by country, search text, categories, brands, and other criteria. Returns: id, name, brand, images, category, variants, addons. Product metadata only — no pricing, taxes, fees, or stock counts.
get_single_deel_it_warehouse_by_id
Get a single Deel IT warehouse by id. Returns the warehouse record including its id, name, type, country, and delivery address. Required: id.
list_all_deel_it_warehouses
List Deel IT warehouses — your own offices and Deel-managed storage locations. Returns warehouse records including id, name, type, country, and address. Cursor-paginated; max 100 per page.
list_all_deel_job_interview_plan_stages
List a Deel ATS job's interview plan stages in pipeline order. Returns stage records with: id, attributes (the number of applications currently in the stage, the number that ever reached it, and optionally the most recently moved applications embedded per stage). Required: job_id.
get_single_deel_payment_breakdown_by_id
Get the breakdown of a payment made to Deel by id. Returns the breakdown as discrete line items for individual invoices and the Deel fee, with fields including invoice_id, contract_id, total, payment_date, processing_fee, and contractor_employee_name. Required: id.
list_all_deel_payments_rest
List Deel payment receipts — a cursor-paginated list of payments to Deel including worker details, payment status, and payment methods. Returns: rows, total, has_more, next_cursor, total_count. Max 100 per page. Deprecated: a newer version of this endpoint exists; removal is scheduled for 2027-07-06.
list_all_deel_policie_users
List the workers assigned to a deel IT hardware policy to audit policy membership or confirm worker coverage before raising equipment requests. Returns: emails, address, last_name, first_name, hris_profile_id. Required: policy_id. Up to 100 per page.
list_all_deel_refund_statements
List Deel refund statements for reviewing past transactions and reconciling accounts, with optional date-range, currency, and legal-entity-type filters. Returns: rows, has_more, next_cursor, total_count. Max 100 per page.
create_a_deel_upsertions_bulk_tags_bulk_tag
Upsert tags in bulk in Deel — create candidate, job, or opening tags, or rename ones already in use, in a single call instead of one request per tag. New labels are matched case-insensitively; include tag_id to update an existing tag label. Returns the tag_ids the Deel tagging endpoints expect, for reconciling imported labels before tagging records. Required: data (at least one tag group).
list_all_deel_work_statement_payment_policies
List the work statement payment policies configured for your deel organization and pick a policy id to reference when creating contracts. Each policy is a reusable payment cycle configuration — when a cycle ends, when payment falls due, and whether payment moves earlier when the due date lands on a weekend. Returns: id, name, scale, end_day, due_days, due_type, end_type, description,…
create_a_deel_work_statement_payment_policy
Create a work statement payment policy in deel to define a payment cycle once and reuse it across contracts — the returned policy id can be referenced when creating contracts. The policy name and the combination of cycle settings must be unique within the organization. Returns: id, created_at, updated_at. Required: data.
deel_contract_banks_bulk_update
Update a bank account on a deel Global Payroll contract, leaving any fields omitted from the request unchanged. Returns: id, status, created_at, updated_at, funds_distribution. Required: contract_id, bank_id, data.
create_a_deel_contract_bank
Add a bank account to a deel Global Payroll contract. Returns the created account with id, created_at, and updated_at. Required: contract_id, data. Country-specific field requirements must be retrieved from the contract's bank guide before submitting.
list_all_deel_contract_banks
List the bank accounts configured for a deel Global Payroll contract, including how each account's share of the salary is split via funds_distribution. Returns: city, iban, email, phone, postal, tax_id, bank_code, bank_name, full_name, sort_code, swift_bic, rib_number, branch_code, account_type, country_code, address_line1, address_line2, currency_code, original_name, account_number,…
create_a_deel_contract_cost_centers_cost_center
Assign cost centers to an employment contract in Deel by contract id. Returns the cost center allocation confirmation including its id and the allocation attributes assigned to the contract. Required: contract_id, data.
get_single_deel_contract_employee_agreement_draft_preview_by_id
Get or initiate a Deel employee agreement template PDF draft preview for an EOR contract. The first call kicks off async generation and returns task_id with is_processing: true; poll passing task_id back until is_processing is false, when url holds a signed download link valid for 15 minutes. Returns: data. Required: id (the EOR contract id).
get_single_deel_contract_pdf_by_id
Get a secure, time-limited download URL for the PDF of a Deel worker contract (the link, not the PDF contents). Returns: data. Required: id (the contract's unique public identifier, exposed upstream as contract_id).
deel_contract_platform_payments_bulk_update
Update the payment type for an IC contract in deel. Returns the updated contract object reflecting the new platform payment settings. Required: contract_id and a data payload specifying the new payment type.
list_all_deel_contract_templates
List the contract templates available to your Deel organization, including fixed-rate, pay-as-you-go, and milestone-based types. Returns each template's id and type; the id can be supplied when creating new contracts.
list_all_deel_contract_type_countries
Get the deel additional-information template that specifies the fields required to complete employee information for a given contract type and employment country. Returns the template record including id and its attributes (the country- and contract-type-specific template fields). Required: type ('eor' for Employer of Record or 'gp' for Global Payroll), country (ISO 3166-1 alpha-2 code).
list_all_deel_contracts_termination_reasons
List Deel's standardized contract termination reasons to present when initiating a contract termination. Returns reason records identified by id, name, frequency, created_at, and updated_at; max 100 per page. No required parameters.
create_a_deel_cost_centers_synchronize
Synchronize the cost centers of a legal entity in deel, overwriting the existing configuration with the data provided in the request. Returns a 201 confirmation payload with id, created_at, and updated_at; the remaining field structure is defined upstream. Required: legal_entity_id, data.
create_a_deel_create_contract_definition
Fetch multiple EOR contract form definitions in deel for one or more countries. Returns the 200 response containing multiple form configuration data. Required: data. Always use the latest effective version from the response; not intended for reading or updating existing contracts.
update_a_deel_daas_bank_by_id
Update a deel EOR employee's bank account by patching selected fields. Returns the updated bank account record including its id, created_at, and updated_at. Required: id. Body takes data — an array of field-level key/value updates; only the supplied fields change.
list_all_deel_daas_payslips
List payslips for an EOR employee in Deel. Returns the collection of payslip records, each with its id and the upstream-defined payslip attributes; no employee id parameter is needed.
list_all_deel_data_points_configurations
List Deel's amendment data points configuration per country to see which data points are available for EOR contract amendments. Returns one configuration record per country with upstream-defined fields under attributes; countries without an explicit configuration report all data points as enabled.
create_a_deel_equities_tokens_tax_event
Create an equity or token tax event in deel. Submits the tax event for an EOR worker enrolled in Equity & Token Services by sending the event payload in the data request body. Returns the created tax event object from the deel 201 response under its data envelope; the field-level shape is defined by the upstream response schema.
list_all_deel_equity_amortizations
List deel equity grant expense amortization records ingested from Shareworks to build an expense recognition schedule or forecast remaining expense. Returns each record's id, employee_number, employee_grant_number, and grant_date. Each record reflects the most recently ingested reporting period, not a period history. Max 100 per page.
list_all_deel_equity_awards
List the equity awards granted in deel, as ingested from Shareworks, in ascending employee_number order, for reconciling grant quantity, price and fair market value at the grant date. Returns: id, row_hash, last_name, plan_name, total_fmv, award_name, created_at, first_name, grant_date, grant_name, updated_at, grant_price, employee_type, grant_quantity, source_file_id, employee_number,…
list_all_deel_equity_expenses
List deel equity grant total expense records to tie the equity expense in the ledger back to the individual Shareworks grants that produced it. Returns: id, row_hash, plan_name, award_type, created_at, grant_date, grant_name, updated_at, base_shares, grant_price, base_expense, factor_shares, source_file_id, employee_number, hris_profile_id, occurrence_index, valuation_status, actual_forfeitures,…
list_all_deel_equity_grants
List the deel equity grants for an organization, each including its vesting events and associated tax events. Returns: id, value, source, quantity, tranches, grant_date, grant_name, tax_events, cliff_period, grant_status, hris_profile, reference_id, vested_events, exercise_price, grant_currency, vesting_length, vested_quantity, fmv_when_granted, equity_grant_type, option_expiration,…
list_all_deel_equity_option_ledgers
List deel equity option ledger entries, as ingested from Shareworks, in ascending employee_grant_number order. Returns: id, notes, row_hash, last_name, plan_name, total_fmv, created_at, first_name, grant_date, grant_name, grant_type, updated_at, expire_date, middle_name, grant_reason, shares_expired, source_file_id, tax_identifier, employee_number, hris_profile_id, state_exemption,…
list_all_deel_equity_participants
List the equity participants in a deel organization as ingested from Shareworks, in ascending employee_number order — identity and residence data for HRIS reconciliation and equity tax calculations. Returns: id, ssn, email, row_hash, full_name, hire_date, created_at, updated_at, cost_center, company_email, pre_clearance, source_file_id, employee_number, hris_profile_id, home_address_city,…
list_all_deel_equity_valuations
List the equity grant valuations deel ingests from Shareworks, in ascending employee_grant_number order. Each record carries the grant's expense valuation inputs: valuation model, amortization method, fair value per share, forfeiture rate, and the volatility, expected life, risk-free rate and dividend yield assumptions. Returns: id, row_hash, plan_name, award_type, created_at, grant_date,…
get_single_deel_eor_worker_additional_field_by_id
Get the additional form fields Deel requires when onboarding EOR workers in a specific country. Returns the country-specific field-configuration payload, with the form field definitions in its `attributes` object. Required: id (the country code).
get_single_deel_file_download_by_id
Get a time-limited download URL for one file attached to a legal entity registration document submission in Deel. Returns a short-lived download URL that expires shortly after issuance — fetch the file promptly rather than storing it, and request a new one when it lapses. Required: legal_entity_id, document_id, and id (the file's id).
list_all_deel_file_status
Poll the upload status of a registered file in deel to check whether it has cleared virus scanning: pending means the scan is still running, ready means the file can be claimed, and failed means the upload was rejected. Returns: status, file_id. Required: fileid and x-one-time-secret (both from the register response).
deel_files_complete
Finalize a multipart file upload in Deel after all parts have been uploaded to the presigned target. Requires fileid (the file UUID from the register response) and the one_time_secret returned by that same register call. Returns an empty 204 response on success.
create_a_deel_file
Register a file upload with the Deel file service and receive presigned S3 upload target(s) to send the file bytes to. Returns the file handle (file_id, one_time_secret) that the status and complete endpoints require and that domain endpoints use to claim ownership once the upload completes. Required: data (upload registration parameters).
create_a_deel_folder_file
Upload one or more files into a specific deel Organization Secure Vault folder. File contents must be uploaded to the deel File Service first; reference each file here by its file_id and one_time_secret. Returns the created secure vault file records including id, file_id, content_type, original_filename, and created_at. Required: folder_id and data.
list_all_deel_folder_items
List the files and sub-folders contained in a specific deel Organization Secure Vault folder. Returns each item's id and attributes (fields vary by item type — file or sub-folder). Required: folder_id. To browse the vault root instead, use the root-listing method.
create_a_deel_legal_entitie_payroll_migration_import
Attach year-to-date payroll files to a Deel legal entity's payroll migration import; the import is created on the first call. Upload each file to the Deel file service first and pass the id and secret it returns. Returns: file_ids. Required: legal_entity_id, data. Atomic — one rejected file stores nothing, and attaching files to a submitted import reopens it.
list_all_deel_legal_entitie_payroll_migration_imports
List a Deel legal entity's payroll migration imports to check their review status before starting a new one, or to see files a partner already added before uploading more. Returns each import's id, status, and files. Required: legal_entity_id. Max 50 per page; defaults to 20.
get_single_deel_legal_entitie_payroll_migration_import_by_id
Get a single Deel payroll migration import by id — read back its state, when it was submitted, and the files attached to it. There is no webhook, so use this to follow a submission after submitting it. Returns: type, files, status, import_id, created_at, updated_at, submitted_at, submitted_by, legal_entity_id, id. Required: id, legal_entity_id.
deel_legal_entitie_registration_documents_bulk_delete
Delete a legal entity registration document in deel, withdrawing the submission and permanently removing its files; the underlying requirement Returns an empty 204 response on success. Returns an empty 204 response on success. Required: legal_entity_id, document_id.
deel_legal_entitie_registration_documents_bulk_update
Replace the files on a legal entity registration document in deel with newly uploaded ones, typically after a rejection; the previous submission is archived rather than deleted and a new submission id is returned. Returns the resubmitted document including id, status, and requirement. Required: legal_entity_id, document_id, data.
create_a_deel_legal_entitie_registration_document
Submit one or more registration documents for a deel legal entity, each answering a document requirement and referencing files uploaded to the File Service by file_id and one_time_secret. Returns the submitted documents including id, status, and requirement. Requirements needing approval enter review as AWAITING_REVIEW; poll the get-document endpoint for the outcome. Required: legal_entity_id,…
get_single_deel_legal_entitie_registration_document_by_id
Get a single registration document submission for a deel legal entity by id, including its review status, attached files and any superseded revisions. Returns: id, files, parent, status, children, archived_at, requirement, reviewed_at, legal_entity, submitted_at, rejection_reason, submission_due_date, archived_submissions_count. Use this to poll one submission after uploading. Required:…
list_all_deel_legal_entitie_registration_documents
List the registration documents required from a deel legal entity, together with what has been submitted and how far through review it is. Returns: id, files, parent, status, children, archived_at, requirement, reviewed_at, legal_entity, submitted_at, rejection_reason, submission_due_date, archived_submissions_count. Unanswered requirements are included with a null id. Required: legal_entity_id.
deel_legal_entitie_registration_documents_partial_update
Add files to an existing deel legal entity registration document submission without removing the files already attached — for a submission that was incomplete (a missing page or extra supporting file) and is still awaiting review. To replace a rejected submission outright, use the replace-files endpoint instead. Returns the updated submission with its id, status, files, and requirement details.…
list_all_deel_legal_entities_registration_documents
List the registration documents required across every legal entity in a deel organization in one call, to see what is still outstanding organization-wide without querying each entity in turn. Returns: id, files, parent, status, children, archived_at, requirement, reviewed_at, legal_entity, submitted_at, rejection_reason, submission_due_date, archived_submissions_count.
get_single_deel_registration_document_requirement_template_by_id
Get a time-limited download URL for the blank template supplied for a deel legal entity registration document requirement, so the form can be completed and submitted back. Returns: url, expires_at. Required: id (the public UUID of the document requirement). Check the requirement's has_template flag before calling, since not every requirement has a template.
create_a_deel_secure_vault_file
Upload one or more files to the deel Organization Secure Vault root, where they are stored in the organization's 'Other Files' folder. File contents must be uploaded to the deel File Service first, then attached here by file_id and one_time_secret. Returns the upload confirmation payload; its fields are not enumerated in the deel documentation. Required: data, with file_id and one_time_secret per…
delete_a_deel_secure_vault_file_by_id
Permanently delete a single file from the deel Organization Secure Vault, such as an obsolete draft or duplicate that is no longer needed; the deletion is permanent and the file cannot be recovered. Returns an empty 204 response on success. Required: id.
create_a_deel_secure_vault_folder
Create a folder in the Deel Organization Secure Vault. Omit parent_folder_id for a root folder, or provide it to create a sub-folder. Returns the created folder: id, name, description, parent_folder_id. Required: data (containing name).
delete_a_deel_secure_vault_folder_by_id
Delete a Deel Organization Secure Vault folder by id along with all of its sub-folders; deletable files are permanently removed and undeletable files (e.g. signed documents) move to the 'Other Files' folder, which cannot be deleted. Returns an empty 204 response on success. Required: id.
get_single_deel_secure_vault_folder_by_id
Get a single Deel Organization Secure Vault folder by id, including its ancestor chain from the root folder down to its parent. Returns: id, name, ancestors, item_type, description, is_sub_folder, parent_folder_id, has_upload_permission. Required: id.
update_a_deel_secure_vault_folder_by_id
Rename a Deel Organization Secure Vault folder and update its description by id; the system-managed 'Other Files' folder cannot be modified. Returns an empty 204 response on success. Required: id, data.
deel_workers_contracts_reject
Reject a deel worker contract by its public id. Returns an empty 204 response on success. Only contracts in a pending, unsigned state can be rejected — already signed or previously rejected contracts are not eligible. Required: contract_id.
deel_banks_settings_bulk_update
Set the salary split across a Global Payroll contract's bank accounts in deel: each entry gives the percentage (0–100) of salary paid to one account, and the percentages across the contract's accounts must add up to 100. Returns: id, funds_distribution. Required: contract_id, data.
get_single_deel_contract_additional_info_by_id
Get the country-specific additional information a worker submitted on a deel EOR or Global Payroll contract — details local law requires before payroll can run, such as local identifiers, demographic data, and emergency contacts. Returns: data. Required: id.
deel_contract_employment_types_bulk_update
Update the employment type (full-time, part-time, or on leave) and FTE for a Deel Global Payroll contract, effective from a supplied date. Returns the resulting employment-type record: id plus schema-specific attributes. Required: contract_id, data.
get_single_deel_contract_hrx_document_by_id
Download a specific HRX document from a Deel EOR contract by id. Returns a pre-signed URL for fetching the document as a PDF; the URL expires 15 minutes after generation. Required: id (document UUID) and contract_id.
list_all_deel_contract_hrx_documents
List the HRX documents shared with the employee on a Deel EOR contract. Returns each document record's id, name, category, and created_at. Paginated, max 100 per page. Required: contract_id.
create_a_deel_contract_ic_invoicing_taxes_ic_invoicing_tax
Create an IC invoicing tax entry (tax types: WITHHOLDING_TAX or VAT) for an independent contractor contract in deel. Returns the created tax entry including tax_type and percentage. Required: contract_id.
list_all_deel_contract_ic_invoicing_taxes_ic_invoicing_taxes
List the VAT and withholding tax settings configured for an independent contractor contract in deel. Returns tax entries including tax_type and percentage. Required: contract_id.
list_all_deel_employees_methods
Get the bank payout methods configured for a deel employee. Returns the configured method records, each with its id and payout-route-specific attributes whose fields vary by transfer type and country.
create_a_deel_employees_method
Create or update a deel employee's bank payout method; any existing method is superseded. Returns the method record with its id, the bank details payload (data), and created_at/updated_at timestamps. The data fields are dynamic per transfer route and country — resolve them via the bank transfer requirements endpoints until is_final is true before submitting.
delete_a_deel_employees_method_by_id
Permanently delete a deel employee's bank payout method by id. Returns the resulting record with its id and payout-route-specific attributes. Required: id.
list_all_deel_entries
List On-Demand Payroll entries eligible for a Deel contract, with the contract eligibility details and limits. Returns each entry record's id and its upstream-defined attributes; eligible entries are grouped by contract. Required: contract_id (public ID, oid, of the contract).
deel_entries_attaches_bulk_update
Attach existing eligible entries to a Deel On-Demand Payroll that is awaiting client review before submission. Returns the updated On-Demand Payroll wrapped in a data object. Required: odp_id, data.
deel_entries_detaches_bulk_update
Detach entries from an On-Demand Payroll in Deel, keeping or removing the specified entries before the ODP is submitted. Returns an empty 204 response on success. Requires odp_id and a data payload of the entries to keep and/or delete.
get_single_deel_gp_worker_additional_field_by_id
Get the country-specific additional-information fields Deel requires for Global Payroll (GP) workers to run payroll in compliance with local regulations. Returns: key, type, ui_guide, validation, is_required, required_by, dependencies, values_allowed. Required: country_code, id.
list_all_deel_immigration_notes
List the externally-visible notes for an immigration case in Deel, returned most recent first. Returns: id, message, note_type, created_at, attributes. Required: case_id (UUID from the List cases endpoint). Max 100 notes per page.
list_all_deel_integrations_consents
Get the integration consent record in Deel for the authenticated user or organization. Returns: id, scope, state, status, user_id, client_id, user_name, created_at, expires_at, profile_id, updated_at, user_email, redirect_uri, organization_id, expiry.
list_all_deel_it_seats
List the IT seats of your organization's IT-seat subscription in Deel to audit which worker holds which seat and reconcile seat usage. Returns each seat's id, status, and assigned_hris_profile (null when the seat has no worker). Filterable by status and hris_profile_id.
list_all_deel_learning_actionable_journeys
List the Courses (ActionableJourneys) assigned to the authenticated worker in deel, for building learning dashboards or reminder flows. Returns journey records with an id and journey-specific attributes. Results are cursor-paginated, max 100 per page.
list_all_deel_legal_entitie_payroll_events_payroll_events
List Deel payroll events (payroll cycles) for a legal entity, optionally filtered by a date range. Returns: id, type, date_end, date_start, has_g2n_report, legal_entity_id, payroll_group_id. Required: legal_entity_id. date_start may not be earlier than 5 years ago; date_end no more than 5 years ahead.
create_a_deel_legal_entitie_setting
Update the Global Payroll employee app access setting for a legal entity in Deel: set value to true to let employees log in to the Deel app for payslips and personal info, or false to block access during compliance reviews or offboarding. Returns the updated setting under data (value). Required: legal_entity_id, data.
get_single_deel_legal_entities_country_field_by_id
Get the registration and tax identifier fields a country requires before submitting a legal entity to Deel, so the right values can be collected ahead of the entity-creation call. Returns each identifier field's name, kind (registration_id/tax_id), validation_regex, and requirement level (mandatory/optional/bypass). Required: id, country_code (ISO 3166-1 alpha-2, case-insensitive, e.g. US).
create_a_deel_legal_entities_light
Create a new light legal entity in deel from a name, address, and point of contact email — a minimal, standalone record reserved for whitelabel partner API integrations that triggers none of the invoicing, team, compliance, or IRS side effects fired for fully-onboarded entities. Returns: id, name, address, created_at, updated_at, entity_type. Required: data.
list_all_deel_lookups
List Deel lookup reference data of the type chosen via documents. Returns lookup entries as id plus lookup-type-specific attributes. Required: documents (currencies, countries, entity_types, or sic_numbers).
create_a_deel_managers_magic_link
Generate a single-use magic link in deel that authenticates a manager into the platform without credentials; the link expires 5 minutes after creation and the target manager must belong to the requesting organization (and cannot be an organization admin). Returns a 201 response containing the generated magic link details in `data`; the exact fields inside `data` are defined upstream and not…
get_single_deel_offboarding_trackers_tracker_by_id
Get termination details for a contract in deel by its offboarding tracker id. Returns the record's id and an attributes object holding the termination-detail fields. Required: id.
list_all_deel_offboarding_trackers_tracker
List contracts currently in the offboarding process in deel. Returns each record's unique_id, name, contract, progress, hiring_type, termination_id, and offboarding_type. Defaults to a 45-day date range; set ignore_date_range to true to retrieve all terminations regardless of date.
create_a_deel_on_demand_payroll_contract
Create an On-Demand Payroll for a Deel contract from existing eligible entries and/or a salary advance amount. Returns: data. Required: contract_id, data.
get_single_deel_on_demand_payroll_contract_by_id
Get the current On-Demand Payroll for a Deel contract. Returns: id, sla, status, entries, invoice_id, submitted_at, submitted_by, deel_reviewed_at, estimated_payday, next_available_payment_date. Required: id (the contract's public oid, supplied as contract_id).
create_a_deel_on_demand_payroll_submit
Submit a Deel On-Demand Payroll for processing after its entries have been reviewed and approved. Returns an empty 204 response on success. Required: odp_id.
deel_on_demand_payrolls_cancel
Cancel a deel On-Demand Payroll by id, optionally keeping the specified entries available for a future regular payroll cycle. Returns an empty 204 response on success. Required: odp_id.
get_single_deel_onboarding_trackers_tracker_by_id
Get a worker's onboarding details in Deel by onboarding tracker id. Returns the onboarding overview record including its id and schema-defined attributes covering onboarding status, contract details, HRIS profile information, and due dates. Required: id.
list_all_deel_onboarding_trackers_tracker
List workers currently going through onboarding in Deel. Returns each record with its name, unique_id, contract (id, effective_date), hiring_type, HRIS profile (oid, work_email), app experience, and onboarding progress status with due dates. Supports filtering and sorting; cursor-based pagination, max 200 per page.
list_all_deel_organizations_tasks
List all tasks for the current organization in deel, including tasks not assigned to the caller. Returns tasks with their id, status, category, display_name, description, assignees, and external_id. Without a statuses filter only PENDING tasks are returned, and cursor pagination cannot be combined with offset pagination.
create_a_deel_payments_statement
Create and pay a deel payment statement for a set of invoices, attaching a bank transfer for the requested country and currency and optionally applying available balance. Returns the composed statement: id, status, amounts, beneficiary_details, and the settled invoices. Required: data. Max 100 invoices per statement; replaying the same idempotency key returns the original response.
get_single_deel_payments_statement_by_id
Get a deel payment statement by id. Returns the statement including its id, status, amounts, beneficiary_details, and the settled invoices it covers. Required: id.
list_all_deel_payroll_groups_payroll_groups
List the payroll groups for a legal entity in deel Global Payroll, each returned with its associated REGULAR payroll calendars. Returns: id, name, calendars, is_active, regular_cycle_cadence. Required: legal_entity_id. Defaults to the current year; up to 15 groups per page.
create_a_deel_payroll_migration_import_submit
Submit a Deel payroll migration import for review, handing its files to the Deel Payroll Implementation Manager. Returns an opaque JSON acknowledgement (upstream documents no field-level response shape). Required: legal_entity_id, import_id. Re-submitting an already-submitted import is refused — treat that as success; attaching more files reopens the import so it can be submitted again.
list_all_deel_policie_seats
List the workers assigned to one of your organization's IT hardware policies in deel, to resolve policy membership or audit which workers a policy applies to before raising equipment requests. Returns each policy-seat assignment with id and the upstream worker/policy attributes. Required: policy_id. Max 100 per page; results are cursor-paginated.
create_a_deel_role
Create a new custom role in the current Deel organization by sending the role payload under data. Returns the created role object with its id, created_at, and updated_at.
list_all_deel_roles
List all roles defined in the current Deel organization. Returns each role's id, created_at, and updated_at.
update_a_deel_role_by_id
Apply a partial update to a custom role in the current Deel organization, modifying only the fields supplied in the request body. Returns the updated role with its id, created_at, and updated_at. Required: id.
create_a_deel_seats_assign
Assign IT seats to workers on your organization's deel IT-seat subscription from onboarding or HRIS automations. Returns an empty 204 response on success. Required: data (1-100 worker Deel HRIS profile ids per call). The call is all-or-nothing and fails with a conflict if free seats run short unless the subscription is accepting new seats, which are added and billed at the monthly seat price.
list_all_deel_seats_status
Get the deel IT-seat subscription status. Returns the subscription in force today — or the most recent one with its status when your organization is between subscriptions — including paid_seats, assigned_seats, available_seats, and monthly_seat_price. Takes no parameters; only organizations on a per-seat plan can use this endpoint.
create_a_deel_seats_unassign
Unassign workers from IT seats in deel, releasing each listed worker's seat (identified by their Deel HRIS profile id) back into the subscription pool without changing the number of paid seats; the operation is all-or-nothing and fails entirely if any id is unknown or a seat's paid feature is in use. Returns an empty 204 response on success. Required: data.
create_a_deel_session
Create a session token for a child organization in deel. Issues a short-lived session token valid for 6 hours, or returns the existing active token when it has more than one hour of validity remaining; the child organization's permanent token is unaffected. Returns the issued session token in a 201 JSON response whose field-level shape is not enumerated in the deel docs. Required:…
list_all_deel_teams
List the teams in the authenticated deel organization; each entry includes the team's id and name. Returns: id, name. Returns 404 when the organization has no teams.
get_single_deel_tracker_hris_profile_by_id
Get a worker's onboarding details in deel by employee HRIS profile id. Returns the onboarding overview record with its id. Required: id (the employee HRIS profile id).
list_all_deel_tracker_hris_profiles
Retrieve termination details in deel for the contract tied to a given HRIS profile oid. Returns the offboarding details record with its id. Required: oid.
create_a_deel_accounts_payable_vendor_bills_vendor_bill
Create a vendor bill in Deel accounts payable from external invoice provider data. Returns the created bill's id, which is used in a subsequent call to attach invoice files to the bill. Required: data. Duplicate references are rejected with a conflict error.
list_all_deel_assignments
List the worker profiles assigned to a specific Deel time-off policy to verify coverage or audit assignments. Returns: name, email, state, country, work_email, worker_type, hris_profile_id. Required: policy_id. Max 100 per page.
get_single_deel_attachment_download_by_id
Get a short-lived presigned download URL for a deel time-off attachment. Returns: url, expires_at. Required: id — the attachment id from the attachments array in time-off responses. The URL is short-lived: fetch the file promptly and request a new one when it expires. Only the recipient, their direct manager, or an approver for the time off may download it.
list_all_deel_bank_transfers_requirements_bank_transfers
Get the static bank transfer requirements for employee payouts in deel, resolving the preferred transfer type (BTS, local bank account, IBAN, or SWIFT) with its input fields and validation rules. Returns the requirements payload (attributes) whose field set is transfer-type-specific. Required: country, currency. Excludes fees; use the dynamic requirements endpoint for value-dependent results.
create_a_deel_bank_transfers_requirements_bank_transfer
Fetch the progressive bank transfer field requirements for an employee payout method in deel based on the data submitted. Returns the requirements with the is_final flag indicating whether all requirements are satisfied; keep submitting updated data until is_final is true before creating the payout method.
list_all_deel_bank_transfers_requirements_bank_transfers
Get the bank transfer field requirements for a contractor payout method in deel for the specified country and currency, including fee information calculated against the provided amount or a default of 100.00. Returns a requirements payload with country/currency-specific fields. Required: country, currency.
list_all_deel_bank_transfers_supported_routes_bank_transfers
List the bank transfer routes Deel makes available to the authenticated contractor. Returns the supported-route records; the upstream docs do not enumerate their fields. Requires no parameters.
deel_contract_compliance_documents_bulk_delete
Delete the submission of a compliance document of a deel Global Payroll contract. Every submitted file of the requirement is removed permanently and cannot be recovered; the requirement itself stays listed and can be resubmitted. Required: contract_id, document_id. Returns an empty 204 response on success. Only Global Payroll contracts are supported.
create_a_deel_contract_compliance_document
Submit one or more files for a compliance document of a deel Global Payroll contract. Reference each file by its file_id and one_time_secret from the Files endpoints; the new files replace any previous submission. Required: contract_id, document_id, data. Returns an empty 204 response on success. Only Global Payroll contracts are supported.
get_single_deel_contract_compliance_document_by_id
Get one compliance document of a deel Global Payroll contract by id — useful for polling a single requirement after a submission instead of fetching the whole list. Returns: id, name, country, filenames, created_at, updated_at, description, is_required, uploaded_at, has_template, submission_status, is_consent_required, is_acknowledgement_only_document. Required: id, contract_id. Only Global…
list_all_deel_contract_compliance_documents
List the compliance document requirements of a deel Global Payroll contract, including what has already been submitted against each one. Returns: id, name, country, filenames, created_at, updated_at, description, is_required, uploaded_at, has_template, submission_status, is_consent_required, is_acknowledgement_only_document. Requirements with nothing submitted appear with an empty filenames array…
create_a_deel_contractors_methods_contractor
Create a bank transfer payout method in Deel. Returns the created method object including its id and status; remaining fields are option-specific since the payload structure is dynamic. Required: data (retrieve the field requirements for the selected option before submitting).
list_all_deel_contractors_methods_contractors
List all payout methods for the authenticated Deel account, optionally filtered to return only the default method. Returns items with id, status, payment_method, is_default, version, and created_at; remaining fields are option-specific.
update_a_deel_contractors_methods_contractor_by_id
Fully replace a bank transfer payout method by id in Deel; all method fields must be provided since this is a complete replacement, not a partial update. Returns the updated method object including its id and status; remaining fields are option-specific. Required: id, data.
get_single_deel_cycle_gross_to_net_by_id
Get deel's categorized gross-to-net (G2N) report for a payroll cycle by id. Returns report rows for each contract in the cycle with category_group, category, sub_category, and label. Required: id.
get_single_deel_invoice_pdf_by_id
Get the signed, time-limited PDF download link for a deel IC worker invoice. Returns a payload with the signed download URL rather than the PDF file itself (response fields not enumerated upstream). Required: id (the invoice UUID). Requires icEmbeddedWorkerSetup to be enabled for the organization.
create_a_deel_kyc_external
Submit an external KYC record in deel, combining automated Live ID verification (IDV) with a manual review workflow to satisfy identity verification and compliance requirements. Returns an acknowledgment containing the record's id and an attributes object whose fields depend on the submitted KYC record. Required: data.
create_a_deel_many_review
Review a batch of Deel timesheets in a single request, approving or rejecting submitted work. Required: data (array of timesheet review objects). Returns the batch review outcome on success; fails with a conflict error if a previous batch approval for the same approver is still processing.
create_a_deel_many_reviews_many
Approve or decline multiple submitted tasks for a Deel contract in a single request; each review must set a status of approved or declined, with a reason when declining. Returns the task-review confirmation payload from the 201 response — the source does not enumerate its fields. Requires contract_id and a data body listing the task reviews.
list_payouts_auto_withdrawal_settings_auto_withdrawal_setting
Get the current auto-withdrawal setting for the authenticated worker in deel. Returns: method_id, is_auto_withdraw_enabled.
list_all_deel_payouts_balances
List the authenticated contractor's available balances in deel. Returns the balance summary under attributes — available amounts broken down per currency plus a single aggregated cross-currency total.
create_a_deel_payouts_withdrawal
Initiate a withdrawal of available funds to the employee's configured payout method in deel. The operation is asynchronous; the final outcome is delivered via webhook rather than the synchronous response. Returns the 201 acknowledgement payload with id, created_at, and updated_at. Required: data (withdrawal details object).
get_single_deel_refund_statement_breakdown_by_id
Get the credit-note breakdown for a Deel refund statement, detailing the child credit notes associated with it for financial tracking and reconciliation. Returns zero or more breakdown rows, each with an id and schema-specific breakdown attributes. Required: id (the refund statement's public invoice_id).
create_a_deel_settings_auto_withdraw
Update the auto-withdrawal setting for the authenticated contractor in deel. Returns the updated setting record: id and attributes (upstream-defined setting fields). Required: data (the auto-withdrawal configuration payload).
create_a_deel_shifts_bulk_delete
Bulk-delete Deel time-tracking shifts by their external IDs; deleted shifts can no longer be retrieved or edited. Required: data (the external IDs of the shifts to delete). Returns a 200 success confirmation payload.
list_all_deel_time_offs_policies
List the deel organization's time-off policies to resolve a policy_id for assignment lookups or to audit policy configuration. Returns: id, name, created_at, leave_type, updated_at, description, policy_type, payment_type, tracking_unit, is_event_based, time_off_types, tracking_cadence, policy_allowances, notice_period_unit, request_start_type, request_start_unit, tracking_start_date,…
list_all_deel_vms_requisitions
List Deel Talent job requests (VMS requisitions) for the organization, with free-text title search and filters for hiring criteria and approval status. Returns: id, title, status, vendors, yoe_min, currency, end_date, quantity, rate_max, rate_min, locations, work_mode, close_note, created_at, job_family, rate_scale, start_date, updated_at, description, close_reason, organization, contract_type,…
get_single_deel_workers_hrx_by_id
Get the deel Human Resource Experience (HRX) manager assigned to the authenticated worker, selected based on the worker's country. Returns the HRX representative record (id and attributes, including contact details and a scheduling link). Returns 404 if no HRX manager is assigned to the worker.
create_a_deel_workers_individuals_individual
Complete a deel individual contractor's profile setup during the IC-embedded onboarding flow, submitting address, tax details, and legal status in a single call. Returns the completed setup record including its id and an attributes object whose fields are defined upstream. Requires a worker session token. Required: data.
get_single_deel_workers_invoice_by_id
Get the details of a single deel IC worker invoice by id. Returns the invoice detail object with its id and an attributes object of invoice-specific fields. Required: id. Only available to organizations with deel's Embedded partnership model enabled.
create_a_deel_workers_sessions_session
Create a worker access token (session) in deel. Issues a Bearer token scoped to a single worker and returns the token value with its expiry timestamp. Required: data. Only available to organizations with the deel Embedded partnership model enabled.
create_a_deel_workers_tax_form
Create a US tax form (W-9, W-8BEN, or W-8BEN-E by tax residency) for the authenticated deel worker against a client legal entity. Returns the created tax form with id, form_type, client_legal_entity_id, pdf_url, and the full form data. Required: data (with form_type and client_legal_entity_id). One form per worker/legal-entity pair; the worker must have an active contract with the entity.
list_all_deel_workers_tax_forms
List tax forms for the authenticated deel worker, ordered by creation date, newest first. Each item contains id, created_at, updated_at, client_legal_entity_id, pdf_url, form_type, and the full form data (fields present depend on form_type: W-9, W-8BEN, or W-8BEN-E). Max 100 per page.
update_a_deel_workers_tax_form_by_id
Replace a deel worker's tax form with a corrected complete version, e.g. fixing a mistyped tax identification number or address. Returns the replaced form with id, form_type, client_legal_entity_id, pdf_url, and the full form data. Required: id and data (complete form; client_legal_entity_id is not accepted). Omitted optional fields are cleared, except contractor_signature which keeps the value…
create_a_deel_workers_worker
Create a new worker in deel for white-label DaaS setups. Returns the created worker's identifiers: user_id, profile_id, and contract_id. Required: data (the worker's personal details, contract association, profile type, and company information).
Why Truto
Why use Truto’s MCP server for Deel
Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 800+ integrations.
Auto-generated, always up to date
Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.
Fine-grained access control
Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.
Multi-tenant by design
Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.
Works with every MCP client
Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.
Built-in auth, rate limits, and error handling
Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.
Expiring and auditable servers
Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.
Unified APIs
Unified APIs for Deel
Skip writing code for every integration. Use Truto’s category-specific Unified APIs out of the box or customize the mappings with AI.
Unified HRIS API
Companies
Companies represent the companies in HRIS
Employee Compensations
Represent the compensation configuration for an Employee
Employees
Represents an employee in HRIS
Employments
Employments represent a job position at a company.
Fields
Represent the fields for various entities in the company
Group Types
Group types represent the types of group.
Groups
Groups represent the groups for an Employee
Job Roles
Represent the job roles in a company
Locations
Locations represent the locations in HRIS
Pay Groups
Paygroups represent a subset of employees that are put together for payroll processing purposes.
Payroll Runs
Payrollruns represent a group of pay statements for a specific pay schedule.
Timeoff Balances
Represent the time off balances for an Employee
Timeoff Policies
Represent the time off policies in a company
Timeoff Requests
Represent the time off requests for an Employee
Timeoff Types
Represent the time off types in a company
Timesheet Entries
Represents a block of time an employee worked or reported, such as a shift, a punch or a timesheet line, attributed to a single work date
How It Works
From zero to integrated
Go live with Deel in under an hour. No boilerplate, no maintenance burden.
Link your customer’s Deel account
Use Truto’s frontend SDK to connect your customer’s Deel account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.
We handle authentication
Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.
Call our API, we call Deel
Truto’s Proxy API is a 1-to-1 mapping of the Deel API. You call us, we call Deel, and pass the response back in the same cycle.
Unified response format
Every response follows a single format across all integrations. We translate Deel’s pagination into unified cursor-based pagination. Data is always in the result attribute.
FAQs
Common questions about Deel on Truto
Authentication, rate limits, data freshness, and everything else you need to know before you integrate.
How do end users authenticate their Deel account?
Deel uses OAuth and API token-based authentication. Truto handles the full connect flow, token storage, and refresh so your end users authorize Deel once and your product gets a stable connected account to call against.
Which Deel objects can I read and write today?
Truto exposes tools for people, contracts, time off, groups, legal entities, departments, managers, invoices, payments, invoice and contract adjustments, off-cycle payments, milestones, onboarding and offboarding trackers, IT orders and assets, ATS candidates/jobs/applications, benefits, entitlements, custom fields, and webhooks. Both read and write operations are available where Deel supports them.
Can I subscribe to Deel events for real-time updates?
Yes. You can create, update, and delete Deel webhooks through Truto and list available event types, so your product can react to hire, termination, contract, and tracker changes without polling.
Does Truto support Deel custom fields?
Yes. Truto exposes tools to list people custom fields and contract custom fields (including get, update, and delete), so customer-specific metadata flows through to your integration.
How fresh is the data Truto returns from Deel?
Reads hit Deel's API directly, so responses reflect the current state at request time. For change-driven freshness, combine list endpoints with Deel webhooks managed through Truto to receive updates as they happen.
How are pagination and rate limits handled?
Truto normalizes Deel's pagination across list endpoints and manages retries and backoff against Deel's rate limits, so you don't have to implement per-endpoint paging or throttling logic in your integration.
From the Blog
Deel integration guides
Deep dives, architecture guides, and practical tutorials for building Deel integrations.
Deel
Get Deel integrated into your app
Our team understands what it takes to make a Deel integration successful. A short, crisp 30 minute call with folks who understand the problem.