> This page is for API, version 2026-01-01 (Stable) (default).
> For other versions, use one of these documentation indexes:
> - 2026-01-01 (Stable) (default): https://developer.deel.com/api/stable/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.deel.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.deel.com/_mcp/server.

# Client-initiated termination

> End an EOR employment relationship as the client organization, including triage, document sign-off, and final pay.

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](/api/employer-of-record/eor-offboarding).

## Prerequisites

* **Client API token**: This flow requires a standard client API token. See [Authentication](/api/authentication) for how to generate one.
* **Contract ID**: All endpoints in this flow require a `contract_id` for an active EOR contract.

> **Note**
>
> 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.

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

### 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](/api/reference/endpoints/eor-offboarding/get-contract-offboarding-restricted-dates) endpoint.

```shell
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.

### 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](/api/reference/endpoints/eor-offboarding/get-eor-contract-offboarding-required-information) endpoint to retrieve those fields.

```shell
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.

### Step 3: Initiate the termination request

Submit the termination request using the [Initiate EOR contract termination request](/api/reference/endpoints/eor-terminations/create-offboarding-termination) endpoint. Include the termination reason, last working day, and any fields returned in the previous step.

```shell
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": {}
    }
  }'
```

> **Warning**
>
> 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.

### Step 4: Monitor offboarding status

After submitting the termination, poll the offboarding status using the [Retrieve Offboarding Request](/api/reference/endpoints/eor-offboarding/get-contract-offboarding) endpoint to track progress through the document preparation and sign-off stages.

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

For the full status reference, see [Status values](#status-values) below.

### 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](/api/reference/endpoints/eor-offboarding/get-contract-offboarding-time-offs) endpoint.

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

### 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](/api/reference/endpoints/eor-offboarding/create-eor-offboarding-client-sign-off) endpoint.

```shell
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
    }
  }'
```

### 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](/api/reference/endpoints/eor-offboarding/review-eor-offboarding-employee-sign-offs) endpoint.

```shell
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:

```mermaid
flowchart LR
    A([Step 3:<br />Client submits]) --> B[AWAITING_TRIAGE]
    B --> C[AWAITING_PROCESSING]
    C --> D[PROCESSING]
    D -- PTO pending --> E[AWAITING_PTO]
    D -- Refund pending --> F[AWAITING_REFUND]
    E --> D
    F --> D
    D -- Steps 6 & 7:<br />client + employee sign-off --> G([COMPLETED])
    B --> H([CANCELLED])
    D --> H
```

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:

| Status                | Meaning                                |
| --------------------- | -------------------------------------- |
| `AWAITING_TRIAGE`     | Pending internal review                |
| `AWAITING_PROCESSING` | Triage complete, queued for processing |
| `PROCESSING`          | Actively being processed               |
| `AWAITING_REFUND`     | Awaiting deposit refund                |
| `AWAITING_PTO`        | PTO balance resolution pending         |
| `COMPLETED`           | Termination complete                   |
| `CANCELLED`           | Termination cancelled                  |

### Who does what

| Party               | When         | Responsibility                                                            |
| ------------------- | ------------ | ------------------------------------------------------------------------- |
| **Client**          | Steps 1–3    | Check restricted dates, retrieve required information, submit termination |
| **Deel operations** | After Step 3 | Triage case, prepare and share offboarding documents                      |
| **Client**          | Step 6       | Review and approve or request changes to offboarding documents            |
| **Employee**        | After Step 6 | Review and sign offboarding documents                                     |
| **Client**          | Step 7       | Submit employee sign-off review                                           |
| **Deel**            | After Step 7 | Execute termination and process final pay                                 |

## Flow

```mermaid
sequenceDiagram
    participant Client
    participant DeelAPI as Deel API
    participant Employee

    Client->>DeelAPI: GET restricted-dates
    DeelAPI-->>Client: List of blocked dates

    Client->>DeelAPI: GET required-information
    DeelAPI-->>Client: Country-specific questions

    Client->>DeelAPI: POST /offboarding/termination
    DeelAPI-->>Client: Termination request created

    loop Poll until documents ready
        Client->>DeelAPI: GET /offboarding
        DeelAPI-->>Client: Offboarding status
    end

    Client->>DeelAPI: GET offboarding/time-offs
    DeelAPI-->>Client: Employee PTO data

    DeelAPI-->>Employee: Offboarding documents to sign

    Employee-->>DeelAPI: (signs documents externally)

    Client->>DeelAPI: POST review-client-sign-offs
    DeelAPI-->>Client: Client sign-off recorded

    Client->>DeelAPI: POST review-employee-sign-offs
    DeelAPI-->>Client: Employee sign-off reviewed
```

## Next steps

#### [Offboarding overview](/api/employer-of-record/eor-offboarding)

Return to the offboarding overview, shared concepts, and other flows.

#### [Offboarding tracker](/api/employer-of-record/eor-offboarding/tracker)

Query termination status across all contracts and HRIS profiles.

#### [Terminations API](/api/eor-endpoints/eor-terminations)

Reference for the EOR termination endpoints used in this flow.

#### [Webhooks](/api/webhooks/quickstart)

Subscribe to offboarding events to track status without polling.