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

# Offboarding

> Manage EOR worker resignations and client-initiated terminations via the Deel Public API.

EOR offboarding is the structured process that ends an EOR employment relationship. Deel enforces a multi-step workflow to ensure compliance with local labor laws, protect both parties, and handle statutory obligations such as notice periods, final pay, and document sign-offs.

There are three distinct offboarding flows, plus a tracker for querying offboarding status across all contracts. Choose the flow that matches who is initiating the offboarding and the type of token you hold.

## Choose your flow

#### [Client-initiated termination](/api/employer-of-record/eor-offboarding/client-termination)

The client organization terminates the employment relationship. Uses a client API token.

#### [Client-initiated resignation](/api/employer-of-record/eor-offboarding/client-resignation)

The client requests a resignation on behalf of the worker. Uses both client and worker API tokens.

#### [Worker resignation](/api/employer-of-record/eor-offboarding/worker-resignation)

The worker submits a resignation directly. Uses a worker API token, with a final PTO review from the client.

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

Query offboarding status across all contracts. Useful for dashboards and HRIS sync.

## Prerequisites

* **API access**: All requests require a Bearer token in the `Authorization` header. See [Authentication](/api/authentication) for how to generate one.
* **Token type**: Termination uses a client API token. Resignation flows use a combination of client and [worker API tokens](/api/authentication#worker-api-tokens).
* **Contract ID**: Most endpoints require a `contract_id`. Use the [List contracts](/api/reference/endpoints/contracts/get-contracts) endpoint to retrieve yours.

## Webhooks

Subscribe to these events to track offboarding progress without polling:

| Event                 | When it fires                      |
| --------------------- | ---------------------------------- |
| `contract.terminated` | Contract reaches final termination |
| `worker.v2.updated`   | Each offboarding status transition |

See the [Webhooks guide](/api/webhooks/quickstart) for setup.

## Shared operations

These endpoints apply to both resignation and termination flows.

### Retrieve an offboarding attachment

> **Note**
>
> This endpoint requires a **client API token**.

Offboarding documents such as termination letters and separation agreements are available as attachments. Use the [Retrieve offboarding attachment](/api/reference/endpoints/eor-offboarding/get-contract-offboarding-attachment-by-id) endpoint to download a specific attachment by ID.

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

The response includes a pre-signed download URL. Download URLs expire after a short period. Always request a fresh URL rather than caching it.

## Next steps

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

Reference for the EOR termination endpoints used in the termination flow.

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

Subscribe to offboarding events to track status without polling.

#### [Amendments](/api/employer-of-record/amendments)

Manage contract amendments before offboarding begins.

#### [Authentication](/api/authentication)

Learn how to generate client and worker API tokens.