Ellipse Gradient for Header

Deel Integration Guide

Integrate Deel with enterprise HR, identity, finance, and workflow systems through REST APIs, selective webhook events, and Martini workflows.

Deel integration options at a glance

Deel provides a REST-oriented developer API for accessing supported People, Contracts, Invoices, Payments, Time off, Expenses, and Documents resources. Deel also supports webhook-style notifications for selected events, although coverage varies by resource, event, product, and account configuration. Martini can authenticate with Deel using OAuth-based access tokens, consume paginated API responses, expose an endpoint for webhook delivery, and orchestrate downstream processing. Scheduled workflows are appropriate for initial loads, reconciliation, and changes without event coverage. General-purpose bulk, GraphQL, SOAP, database, and file-transfer capabilities were not confirmed, so implementations should use documented Deel resource endpoints and validate document-specific behavior.

Integration pointSupported by Deel?Common use casesHow Martini supports it
REST APIsYesRetrieve, create, update, and synchronize supported People, Contracts, Invoices, Payments, Time off, Expenses, and Documents resources.Martini can consume Deel REST endpoints from workflows, handle pagination and authentication, map JSON, and call downstream APIs.
Webhooks and outbound callbacksLimitedReceive notifications for selected Deel events such as supported worker, contract, approval, or payment-status changes.Martini can expose an API endpoint or receive webhook input through a workflow trigger, validate requests, retrieve current resources, and process events asynchronously.
AuthenticationYesAuthenticate API applications with OAuth-based access tokens and account- or organization-level permissions.Martini can store credentials and webhook secrets securely, attach bearer tokens, and manage token expiration and refresh logic within reusable workflows.
Scheduled synchronizationYesRun initial loads, incremental polling, reconciliation, and synchronization for changes without supported webhook coverage.Martini scheduler-triggered workflows can maintain checkpoints, use overlap windows, paginate safely, and deduplicate by Deel resource identifiers.
Bulk, asynchronous, and batch APIsNot confirmedA general-purpose Deel bulk or asynchronous API was not confirmed; large transfers should use paginated resource endpoints and controlled workflow batches.Martini can implement workflow-controlled batching and retries without assuming a vendor bulk endpoint.
File and attachment APIsLimitedDeel provides document-related resources, but general upload, download, and binary-transfer semantics were not confirmed across the API.Martini can process documented document metadata or content after endpoint-specific validation, with secure handling and retention controls.
GraphQL APIsNot confirmedNo official Deel GraphQL API was confirmed in the reviewed materials.Martini can consume GraphQL generally, but a Deel integration should use the confirmed REST API instead.
SOAP APIsNot confirmedNo official Deel SOAP API was confirmed in the reviewed materials.Martini can consume SOAP services generally, but no SOAP-based Deel design should be assumed.

How Deel exposes data and business events

Deel REST APIs

Deel publishes a REST-oriented developer API for supported business resources. API coverage, fields, write operations, and permissions can vary by Deel product, country, worker classification, and organization configuration.

Martini implementation pattern

Martini authenticates with Deel, invokes resource endpoints from a workflow, follows pagination, transforms JSON into a canonical model, applies business rules, and writes to target applications. The workflow can persist a checkpoint and use bounded retries for transient failures.

Implementation sequence

Authenticate with a permitted Deel application
Invoke the required Deel resource endpoint
Retrieve all paginated results or the current resource
Map Deel JSON into the canonical integration model
Apply validation and business rules
Write the result to the target system and store the checkpoint

Deel Webhook Events

Deel supports webhook-style notifications for selected events, but webhook coverage is not universal across People, Contracts, Invoices, Payments, Time off, Expenses, or Documents. Event names, payload completeness, signing, and delivery behavior must be confirmed.

Martini implementation pattern

Martini exposes an API endpoint or receives webhook input through a workflow trigger, validates the request and signature controls, acknowledges promptly, and performs detailed processing asynchronously. When the payload is incomplete, the workflow retrieves the current Deel resource before updating downstream systems.

Implementation sequence

Receive the Deel webhook notification
Validate request authentication and event metadata
Acknowledge the notification promptly
Check event idempotency and delivery status
Retrieve the current Deel resource when required
Apply business rules and map the result to target schemas

Deel Scheduled Synchronization

Scheduled polling is appropriate for initial loads, reconciliation, and resource changes without supported webhook events. Deel-specific pagination and filtering capabilities should be confirmed for each endpoint.

Martini implementation pattern

A Martini scheduler starts a workflow that reads bounded pages from Deel, maintains a cursor or last-successful timestamp where supported, uses an overlap window for timestamp polling, and deduplicates by stable resource ID and update information.

Implementation sequence

Start the scheduled Martini workflow
Load the stored synchronization checkpoint
Request the next bounded page of Deel resources
Process and deduplicate each resource
Write successful changes and capture rejected records
Persist the checkpoint only after successful processing

Common Deel integration patterns

Pattern 1: Synchronize workers and contracts to HR and identity systems

When to use this pattern

Use this pattern to align Deel worker and engagement data with HR and identity platforms. It supports scheduled reconciliation and selected lifecycle events while tolerating differences in worker type, country, and available fields.

Integration direction
Deel
Martini
Workday or Okta
Example Mapping
Deel FieldCanonical FieldTarget Field
People.idworker.sourceIdWorker external ID
People.emailworker.emailEmail
Contracts.statusengagement.statusEmployment status
Contracts.effective_dateengagement.startDateEffective date
Martini implementation pattern

A scheduler or supported Deel event starts the workflow. Martini retrieves the current People or Contracts resource, normalizes optional fields, applies country and status rules, upserts the target using the Deel identifier, and records rejected records separately. Transient API failures are retried with bounded backoff, while permission and validation errors are routed for correction.

Martini capabilities used
  • workflows
  • API consumption
  • OAuth authentication
  • data mapping
  • business rules
  • error handling
  • retry handling

Pattern 2: Send Deel invoices and payments to finance

When to use this pattern

Use this pattern when finance teams need Deel invoices, payments, and expenses in NetSuite or SAP S/4HANA for payable processing and reconciliation.

Integration direction
Deel
Martini
NetSuite or SAP S/4HANA
Example Mapping
Deel FieldCanonical FieldTarget Field
Invoices.idpayable.sourceIdExternal document ID
Invoices.amountpayable.amountGross amount
Invoices.currencypayable.currencyCurrency
Payments.statuspayment.statusPayment status
Martini implementation pattern

Martini polls paginated financial resources, validates approval and accounting data, maps entity and currency values, correlates Payments with Invoices, and writes idempotently to the finance application. Missing tax, entity, or approval data is routed to an exception path rather than retried indefinitely.

Martini capabilities used
  • scheduled workflows
  • API consumption
  • data mapping
  • validation
  • business rules
  • idempotency
  • error handling

Pattern 3: Process supported worker lifecycle events

When to use this pattern

Use this pattern for near-real-time onboarding, offboarding, or access-management actions when the required Deel event is available for the organization and application.

Integration direction
Deel
Martini
ServiceNow or Microsoft Entra ID
Example Mapping
Deel FieldCanonical FieldTarget Field
event.resource_idlifecycle.sourceIdExternal reference
Contracts.statuslifecycle.statusTask or account state
People.emailidentity.emailUser principal name
Contracts.end_datelifecycle.endDateDeprovision date
Martini implementation pattern

Martini validates the webhook, checks for duplicate delivery, retrieves the authoritative Deel resource, and applies lifecycle rules before calling the target API. Delayed or out-of-order notifications are handled by current-state retrieval and replay-safe updates; transient failures use bounded retries.

Martini capabilities used
  • API exposure
  • workflow triggers
  • API consumption
  • data mapping
  • business rules
  • idempotency
  • asynchronous processing

Pattern 4: Synchronize approved time off and expenses

When to use this pattern

Use this pattern when approved Time off or Expenses must be reflected in HR, payroll, travel, or finance processes and event coverage is incomplete.

Integration direction
Deel
Martini
BambooHR or NetSuite
Example Mapping
Deel FieldCanonical FieldTarget Field
Time off.idabsence.sourceIdExternal leave ID
Time off.statusabsence.statusApproval status
Expenses.amountexpense.amountExpense amount
Expenses.statusexpense.statusProcessing status
Martini implementation pattern

A webhook for a supported event or a scheduled workflow retrieves changed resources, filters for approved items, maps status and entity values, and upserts the target. Martini stores source identifiers, rejects incomplete records for review, and uses reconciliation runs to detect missed or delayed notifications.

Martini capabilities used
  • scheduled workflows
  • webhook processing
  • mapping and transformation
  • validation
  • business rules
  • reconciliation
  • error handling

Applications commonly integrated with Deel

Deel can be integrated with named HR, identity, finance, service-management, and collaboration applications. These are common enterprise architecture patterns rather than confirmation of a dedicated native Deel integration; supported objects, write operations, and field mappings should be validated for each application.

Application Scenario Direction Martini Pattern
Workday Synchronize worker, contract, employment, and organizational information between Deel and the enterprise HR system. Deel → Martini → Workday A scheduled Martini workflow retrieves paginated People and Contracts resources, maps worker and employment fields, applies organization and status rules, and upserts Workday records using stable source identifiers.
BambooHR Keep worker profiles and employment status aligned with the HR system of record. Deel → Martini → BambooHR Martini polls or receives supported Deel events, normalizes People and Contracts data, validates required fields, and calls BambooHR APIs with replay-safe upsert logic.
Okta Provision, update, or deactivate workforce identities based on worker and contract lifecycle changes. Deel → Martini → Okta A webhook or scheduled workflow retrieves the current Deel resource, evaluates worker and contract status, and invokes Okta lifecycle APIs while recording the Deel identifier and processing outcome.
Microsoft Entra ID Coordinate identity and access changes when Deel worker or contract status changes. Deel → Martini → Microsoft Entra ID Martini validates an event or polling result, applies country, entity, and status rules, then calls Microsoft Graph-based directory operations with bounded retries and audit logging.
NetSuite Send Deel invoices, payments, entities, and expenses into accounts-payable and financial reconciliation processes. Deel → Martini → NetSuite A scheduled workflow retrieves Invoices, Payments, and Expenses, maps currencies and accounting dimensions, validates approval status, and writes idempotently to NetSuite.
SAP S/4HANA Reconcile workforce-related vendor, payment, and expense data with enterprise finance processes. Deel → Martini → SAP S/4HANA Martini orchestrates Deel reads and SAP API calls, transforms country and employing-entity values, routes validation exceptions, and retries transient downstream failures.
ServiceNow Create or update onboarding, offboarding, and access-management tasks from Deel lifecycle changes. Deel → Martini → ServiceNow Martini receives supported Deel events or polls lifecycle resources, applies task-routing rules, and creates or updates ServiceNow records with duplicate protection.
Slack Notify HR, finance, or operations teams about selected contract, payment, approval, or onboarding events. Deel → Martini → Slack A Martini event workflow retrieves current Deel data when needed, filters sensitive fields, formats a notification, and sends it to Slack through its supported API or incoming webhook endpoint.

How to build a Deel integration in Martini

Objective

Establish secure access to the Deel application and the target systems using the permissions required for the selected resources.

Instructions in Martini

  • Configure Deel OAuth client credentials or access-token settings in protected Martini configuration
  • Store client secrets, access tokens, refresh material, and webhook secrets securely
  • Confirm organization-level permissions for People, Contracts, financial, time-off, expense, or document resources
  • Configure target-system authentication separately and avoid placing secrets in workflow payloads

Objective

Select webhook-driven, scheduled, or API-led execution based on Deel event coverage and synchronization requirements.

Instructions in Martini

  • Use a Deel webhook for a confirmed supported event
  • Use a scheduler for initial loads, reconciliation, and unsupported event types
  • Expose a Martini API when another application must request an on-demand synchronization
  • Define a checkpoint or event-idempotency strategy before processing data

Objective

Obtain the authoritative Deel resource and handle pagination, filtering, and event payload limitations.

Instructions in Martini

  • Receive and validate the webhook notification when applicable
  • Retrieve the current Deel resource after incomplete event payloads
  • Process list endpoints as paginated unless the specific endpoint documents otherwise
  • Use overlap windows and stable resource identifiers for timestamp-based polling

Objective

Coordinate the Deel call, transformations, target writes, and exception paths in a maintainable Martini workflow.

Instructions in Martini

  • Separate intake, resource retrieval, mapping, target writing, and error handling into clear workflow stages
  • Control concurrency to respect Deel rate limits
  • Branch on worker type, country, entity, approval status, or lifecycle state
  • Move expensive webhook processing to an asynchronous workflow path when appropriate

Objective

Transform Deel JSON into canonical and target-specific models while handling product and country variation.

Instructions in Martini

  • Map People, Contracts, Invoices, Payments, Time off, or Expenses fields to the target schema
  • Handle missing, null, optional, and product-specific fields explicitly
  • Normalize status, date, currency, country, and employing-entity values
  • Validate required fields before issuing target writes

Objective

Enforce business decisions such as approval filtering, identity lifecycle behavior, and duplicate prevention.

Instructions in Martini

  • Synchronize only approved Time off or Expenses where required
  • Use stable Deel identifiers as idempotency keys
  • Route incomplete accounting, tax, entity, or identity data to an exception path
  • Do not retry permission or validation failures without correcting configuration or input

Common Deel data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
PeopleSynchronize worker identity, contact, classification, and employment-related information.Workday, BambooHR, Okta, Microsoft Entra ID, ServiceNowMartini retrieves paginated People resources, normalizes optional fields, applies privacy and status rules, and upserts using stable Deel person identifiers.
ContractsRepresent contractor, employee, or other engagement agreements and lifecycle status.Workday, BambooHR, Okta, Microsoft Entra ID, ServiceNowMartini maps contract type, status, dates, employing entity, and worker references, then routes lifecycle changes to target workflows.
InvoicesTransmit payment requests or invoices associated with contracts and workers.NetSuite, SAP S/4HANA, accounting platformsMartini validates approval and accounting fields, maps currency and entity values, and prevents duplicate payable transactions.
PaymentsSynchronize payment records, references, amounts, and payment statuses.NetSuite, SAP S/4HANA, finance and reconciliation systemsMartini maps payment status and references, correlates payments to invoices, and retries transient target failures.
Time offSynchronize leave requests, approval states, dates, and worker references.Workday, BambooHR, payroll and workforce systemsMartini filters by approval or change status, converts Deel states to target values, and deduplicates by source identifier.
ExpensesProcess worker expense submissions and their approval or processing status.NetSuite, SAP S/4HANA, finance and expense systemsMartini validates required financial fields, routes records by country or entity, and sends exceptions for review.

Authentication and security considerations

OAuth and access tokens

Deel documents OAuth-based API authentication. Access-token expiration, refresh behavior, application permissions, and available scopes depend on the Deel account and API product.

Credential protection

Store client credentials, bearer tokens, refresh material, and webhook signing secrets in protected Martini configuration or secrets management. Do not expose sensitive values in workflow payloads or logs.

Least privilege and data minimization

Request only the Deel permissions required for the selected resources. Treat worker identity, compensation, contracts, payments, tax information, and documents as sensitive data and limit downstream exposure.

  • Validate webhook authentication or signature controls before trusting event data.
  • Mask sensitive values in error messages and operational logs.
  • Apply retention, encryption, and access-control requirements to downloaded documents.

Operational considerations for Deel integrations

Pagination and checkpoints

Treat Deel list endpoints as paginated unless an endpoint states otherwise. Persist a cursor, timestamp, page checkpoint, or resource identifier only after successful processing, and use an overlap window for timestamp-based polling.

Rate limits and retries

Confirm the applicable Deel limits, control concurrency, and handle HTTP 429 responses with bounded backoff. Retry transient failures, but route permission and validation errors for correction.

Webhook reliability

Expect duplicate, delayed, and out-of-order notifications. Acknowledge promptly, record event-processing state, and retrieve the current Deel resource when the notification does not contain complete state.

Schema variation and testing

Fields vary by Deel product, country, worker classification, employing entity, and permissions. Test representative worker, contract, financial, time-off, expense, and document cases, including null and status-transition values.

  • Use stable Deel identifiers for idempotency.
  • Capture request or correlation identifiers when provided.
  • Validate document download and authorization behavior separately.

Why use Martini instead of scripts or point-to-point integrations?

Orchestration beyond point-to-point calls

Martini coordinates Deel API calls, webhook intake, scheduled polling, transformations, business rules, target writes, and exception handling in reusable workflows rather than scattering logic across scripts.

Maintainable mappings

Canonical models and explicit mappings make it easier to handle differences among HR, identity, finance, and service-management applications while accommodating Deel's product and country variation.

Reliable operations

Martini supports controlled retries, idempotent processing, asynchronous workflow paths, checkpointing, validation, and operational logging so integrations can recover from rate limits, delayed events, and transient downstream failures.

API-led reuse

Teams can expose controlled Martini APIs for on-demand synchronization or downstream consumers, while keeping Deel credentials and vendor-specific implementation details behind reusable integration assets.

Frequently asked questions

How can Deel be integrated with enterprise systems?

Deel can be integrated through its REST-oriented developer API, OAuth-based authentication, and webhook-style notifications for selected events. Scheduled polling is appropriate for initial loads, reconciliation, and changes without event coverage. Martini can consume the API, receive supported webhook events, map Deel resources, apply business rules, and update HR, identity, finance, and workflow applications.

Can Martini integrate with Deel?

Yes. Martini can integrate with Deel by consuming the Deel REST API and, where applicable, receiving Deel webhook events through a Martini API or workflow trigger. The exact resources and operations depend on the Deel application permissions and account configuration.

Do I need a connector to integrate Deel with Martini?

No. A dedicated Deel connector is not required. Martini can use Deel's confirmed native integration mechanisms, including REST APIs, OAuth-based authentication, selected webhook events, and scheduled workflows.

Is there any extra Lonti cost to integrate Deel with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Deel. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Deel, cloud infrastructure, or other third-party systems depending on subscription, usage, and deployment model.

Which Deel APIs and integration methods should be used?

Use the Deel REST API as the primary integration method. Use webhook-style notifications for confirmed supported events and scheduled REST polling for initial loads, reconciliation, and unsupported event types. No official Deel GraphQL or SOAP API was confirmed.

Can Deel send events or webhooks for worker and contract changes?

Deel supports webhook-style notifications for selected events, but coverage is partial rather than universal. Confirm event names, resource coverage, payload completeness, signature controls, and delivery behavior before relying on a fully event-driven design.

How does synchronization between Deel and another system work?

Martini can retrieve paginated Deel resources on a schedule or after a supported webhook, map them to a canonical model, apply approval and lifecycle rules, and upsert the target using stable Deel identifiers. Checkpoints, overlap windows, reconciliation runs, and deduplication help reduce missed or duplicate updates.

How are errors, retries, and duplicate events handled?

Martini can distinguish authentication, permission, validation, rate-limit, transient server, and missing-resource failures. Transient errors can use bounded backoff; validation and permission errors should be routed for correction. Webhook and polling workflows should use idempotency records and stable resource identifiers so replays do not create duplicates.