ml-connector
SAP S/4HANADeel

SAP S/4HANA and Deel integration

SAP S/4HANA runs finance and procurement. Deel runs global payroll and HRIS. Connecting them keeps your finance ledger aligned with payroll costs and employee headcount. Payroll entries from Deel post automatically into SAP S/4HANA's general ledger allocated to the correct cost centers, employee records sync to keep headcount in agreement, and the finance team no longer re-keys payroll totals by hand. ml-connector handles the different authentication schemes and data shapes on each side and moves the data on a schedule you control.

How SAP S/4HANA works

SAP S/4HANA exposes suppliers, purchase orders, invoices, general ledger accounts, cost centers, business partners, and journal entries through OData V2 and V4 REST APIs over HTTPS. Cloud editions authenticate with OAuth 2.0 Client Credentials against a tenant-specific base URL, and On-Premise sites require a sap-client query parameter. Tokens are short-lived, typically expiring after 12 hours, so credentials must be cached and refreshed before expiry. SAP S/4HANA has no native webhooks for cloud connectors, so records are read by polling with filter expressions on LastChangeDateTime or via delta tokens. General ledger accounts and cost centers are read-only and maintained in SAP only.

How Deel works

Deel exposes contracts, employees, invoices, payslips, and payroll inputs through REST JSON APIs over HTTPS. Authentication uses Bearer tokens (organization-scoped with no expiry or personal tokens with user scope) or OAuth2 Authorization Code Grant with 30-day access tokens and 90-day refresh tokens. Deel publishes real-time webhooks for contract, employee, and payroll events with HMAC-SHA256 signature verification. The API enforces fine-grained scopes at token creation time, returns 429 rate-limit responses with Retry-After headers, and supports idempotency keys for POST and PATCH to prevent duplicate requests. Deel is payroll and HRIS only; it does not expose vendor masters or purchase orders.

What moves between them

The main flow is Deel into SAP S/4HANA. After each payroll run, ml-connector reads Deel employee invoices and payslips and posts labor cost allocations into SAP S/4HANA's general ledger, mapped to matching SAP cost centers and GL accounts. Employee records from Deel flow to SAP S/4HANA Business Partners so headcount reflects hires, terminations, and rehires. Cost centers are aligned in both directions so Deel payroll allocations land on valid SAP dimensions. General ledger entries in SAP S/4HANA are read-only, so ml-connector never writes financial reversals or adjustments back into the source system.

How ml-connector handles it

ml-connector stores Deel and SAP S/4HANA credentials encrypted and handles OAuth token refresh on 401 responses from either system. SAP S/4HANA polls on a schedule tied to your payroll calendar using OData filter expressions on LastChangeDateTime to fetch new or changed records, since SAP cloud offers no push mechanism. Deel webhooks notify ml-connector of real-time employee and payroll events, and the connector verifies each webhook signature using HMAC-SHA256 before processing. Cost centers and GL accounts are mapped first so every payroll journal entry references accounts that already exist in SAP S/4HANA. Deel rate limits return HTTP 429 with a Retry-After header; ml-connector backs off and retries. Every record carries a full audit trail, and failed transactions can be replayed once the downstream issue is resolved.

A real-world example

A mid-sized professional services firm runs SAP S/4HANA for finance and procurement and uses Deel as its global payroll and HRIS platform to manage contractors and employees across eight countries. Before the integration, the finance team exported payroll registers from Deel each month and manually matched employee costs to SAP cost centers, then re-entered labor allocations into the ledger by hand. Month-end close took three days of reconciliation to align payroll-recorded labor costs with SAP recorded entries. With SAP S/4HANA and Deel connected, each payroll period's cost allocations flow automatically into the ledger mapped to the correct cost center, and employee records sync so HR headcount matches GL employee counts. The finance team now starts month-end close with labor accounts already reconciled, eliminating the manual re-keying step.

What you can do

  • Post Deel payroll GL entries into SAP S/4HANA's general ledger after each payroll run, allocated to the correct cost centers.
  • Keep SAP S/4HANA Business Partner records aligned with Deel employee hires, terminations, and status changes.
  • Map Deel cost centers, departments, and employee groups to SAP S/4HANA Cost Centers and GL Accounts so payroll allocations land on valid dimensions.
  • Authenticate SAP S/4HANA with OAuth 2.0 Client Credentials and Deel with Bearer tokens or OAuth2, refreshing tokens before expiry and verifying Deel webhook signatures.
  • Poll SAP S/4HANA on a schedule tied to your payroll calendar, handle rate limits and retries, and maintain a full audit trail on every payroll record.

Questions

Which direction does data move between SAP S/4HANA and Deel?
The main flow is Deel into SAP S/4HANA. Payroll GL entries and employee records move from Deel into SAP S/4HANA, while cost centers are aligned in both directions. SAP S/4HANA general ledger entries are read-only, so ml-connector does not write financial reversals or adjustments back to the source system.
How does the integration handle SAP S/4HANA's lack of webhooks and short-lived tokens?
ml-connector polls SAP S/4HANA on a schedule using OData filter expressions on LastChangeDateTime since SAP cloud has no push mechanism. OAuth tokens are cached and refreshed before the typical 12-hour expiry to prevent authentication failures. Deel events arrive via webhooks in real-time and are verified using HMAC-SHA256 signature checks.
What happens when Deel rate limits are hit or a SAP S/4HANA GL posting fails?
When Deel returns HTTP 429, ml-connector reads the Retry-After header and backs off exponentially before retrying the request. If an SAP S/4HANA posting fails, the record is logged with full context and can be replayed once the downstream issue is resolved, ensuring no payroll data is lost.

Related integrations

Connect SAP S/4HANA and Deel

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started