Client-initiated termination

The client-initiated termination flow lets an organization end an EOR employment relationship. The client checks restricted dates, answers country-specific questions, submits the termination, and later signs off on offboarding documents.

For an overview of all offboarding flows, see EOR offboarding.

Prerequisites

  • Client API token: This flow requires a standard client API token. See Authentication for how to generate one.
  • Contract ID: All endpoints in this flow require a contract_id for an active EOR contract.

You cannot cancel a termination via the API. To cancel a termination request, contact Deel support. Only Deel’s operations team can move a termination to CANCELLED status.

The client document sign-off step (Step 6) is currently available only for the Philippines, New Zealand, Sweden, Ireland, and the Netherlands.

1

Step 1: Check restricted offboarding dates

Some countries prohibit terminations on specific dates, such as public holidays or payroll processing windows. Always check restricted dates before submitting a termination request. Use the Retrieve restricted offboarding dates endpoint.

$curl --location --request GET \
> '{{host}}/rest/eor/contracts/{{contract_id}}/offboarding/restricted-dates' \
> --header 'Authorization: Bearer {{client_token}}'

The response includes a list of date ranges the client must avoid when setting the last working day. If the proposed termination date falls within a restricted range, Deel rejects the termination request.

2

Step 2: Retrieve additional required information

Country-specific regulations may require answers to additional questions before a termination can be submitted. Use the Get additional information required to request employee termination endpoint to retrieve those fields.

$curl --location --request GET \
> '{{host}}/rest/eor/contracts/{{contract_id}}/offboarding/required-information' \
> --header 'Authorization: Bearer {{client_token}}'

The response describes what fields to include in the termination request body. Always call this endpoint before submitting a termination: required fields vary by country and contract type.

3

Step 3: Initiate the termination request

Submit the termination request using the Initiate EOR contract termination request endpoint. Include the termination reason, last working day, and any fields returned in the previous step.

$curl --location --request POST \
> '{{host}}/rest/eor/contracts/{{contract_id}}/offboarding/termination' \
> --header 'Authorization: Bearer {{client_token}}' \
> --header 'Content-Type: application/json' \
> --data-raw '{
> "data": {
> "last_working_day": "2025-09-30",
> "termination_reason": "PERFORMANCE",
> "additional_information": {}
> }
> }'

Once submitted, a termination request triggers compliance workflows that may be time-sensitive. Confirm the termination date and reason carefully before submitting, as changes may require Deel support.

4

Step 4: Monitor offboarding status

After submitting the termination, poll the offboarding status using the Retrieve Offboarding Request endpoint to track progress through the document preparation and sign-off stages.

$curl --location --request GET \
> '{{host}}/rest/eor/contracts/{{contract_id}}/offboarding' \
> --header 'Authorization: Bearer {{client_token}}'

For the full status reference, see Status values below.

5

Step 5: Retrieve employee time-off data

Before finalizing the offboarding, retrieve the employee’s outstanding time-off balance to ensure accurate final pay calculations. Use the Retrieve Employee Time Off Data for Offboarding endpoint.

$curl --location --request GET \
> '{{host}}/rest/eor/contracts/{{contract_id}}/offboarding/time-offs' \
> --header 'Authorization: Bearer {{client_token}}'
6

Step 6: Review and approve offboarding documents (client sign-off)

Once Deel prepares the offboarding documents, the client must review and approve or request changes. Use the Review, approve, or request changes to EOR offboarding documents endpoint.

$curl --location --request POST \
> '{{host}}/rest/eor/contracts/{{contract_id}}/offboarding/review-client-sign-offs' \
> --header 'Authorization: Bearer {{client_token}}' \
> --header 'Content-Type: application/json' \
> --data-raw '{
> "data": {
> "approved": true
> }
> }'
7

Step 7: Submit employee sign-off review

After the employee has reviewed their offboarding documents, submit the employee sign-off review on behalf of the organization using the Submit employee sign-off review for offboarding documents endpoint.

$curl --location --request POST \
> '{{host}}/rest/eor/contracts/{{contract_id}}/offboarding/review-employee-sign-offs' \
> --header 'Authorization: Bearer {{client_token}}' \
> --header 'Content-Type: application/json' \
> --data-raw '{
> "data": {
> "approved": true
> }
> }'

Termination lifecycle

When a client submits a termination request, it moves through the following stages:

After the client submits the termination (Step 3), Deel’s operations team takes over: they triage the case, prepare the offboarding documents, and share them for client approval. No further API call is required from the client until the documents are ready for review (Step 6).

Status values

The offboarding response includes a status field reflecting the current stage:

StatusMeaning
AWAITING_TRIAGEPending internal review
AWAITING_PROCESSINGTriage complete, queued for processing
PROCESSINGActively being processed
AWAITING_REFUNDAwaiting deposit refund
AWAITING_PTOPTO balance resolution pending
COMPLETEDTermination complete
CANCELLEDTermination cancelled

Who does what

PartyWhenResponsibility
ClientSteps 1–3Check restricted dates, retrieve required information, submit termination
Deel operationsAfter Step 3Triage case, prepare and share offboarding documents
ClientStep 6Review and approve or request changes to offboarding documents
EmployeeAfter Step 6Review and sign offboarding documents
ClientStep 7Submit employee sign-off review
DeelAfter Step 7Execute termination and process final pay

Flow

Next steps