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

# Retrieve termination details by HRIS profile identifier

GET https://api.letsdeel.com/rest/offboarding/tracker/hris_profile/{oid}

Returns termination details for a contract identified by its HRIS profile `oid`.

 **Token scopes**: `contracts:read`, `people:read`

Reference: https://developer.deel.com/api/reference/endpoints/offboarding/retrieve-termination-details-by-hris-profile-identifier-v-2026-01-01

## Authentication

- `Authorization` header (bearer token, required) — ## Authentication The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail. ```curl curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \ -H 'Authorization: Bearer YOUR-TOKEN-HERE' ``` [Learn more about authentication](/api/authentication)
- `Authorization` header (bearer token, required) — Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/

## Servers

- `https://api.letsdeel.com/rest` (Production, default)
- `https://api-staging.letsdeel.com/rest` (Demo)

## Request

### Path parameters

- `oid` (string, required) — Unique hris profile oid

## Response

### 200

Successfully retrieved offboarding details

- `data` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaData, optional)

## Errors

### 400 Bad Request Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 401 Unauthorized Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 403 Forbidden Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 404 Not Found Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

### 500 Internal Server Error

Operation failed.

- `request` (ApiErrorRequest, optional)
- `errors` (list of ApiError, optional)

## Types

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaData

- `summary` (list of OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataSummaryItems, optional)
- `contract` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataContract, optional)
- `progress` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataProgress, optional)
- `hiring_type` (string, optional) — The hiring type for the contract (e.g., contractor).
- `termination` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataTermination, optional)
- `hris_profile` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataHrisProfile, optional)
- `app_experience` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataAppExperience, optional)

### ApiErrorRequest

- `method` (string, optional) — The HTTP method of the failed request
- `url` (string, optional) — The relative URL of the failed request
- `status` (double, optional) — The status code of the response
- `api_req_id` (string, optional) — The request ID of the failed request
- `docs` (string, optional) — A link to the official documentation for the requested endpoint resource
- `source` (string, optional) — The source handler which produced the returned error
- `code` (double, optional) — The code of the source handler which produced the returned error

### ApiError

- `message` (string, optional) — A description of the returned error
- `path` (string, optional) — The JSON path where input validation failed

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataSummaryItems

- `data` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataSummaryItemsData, optional)
- `name` (string, optional) — The name of the summary item (e.g., Contract ending details).
- `type` (string, optional) — The type of summary information (e.g., CONTRACT_ENDING_DETAILS).
- `value` (string, optional) — The value or status associated with the summary item.

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataContract

- `id` (string, optional) — The unique identifier for the contract.
- `eor` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataContractEor, optional, nullable) — Employer of Record (EOR) for the contract, if applicable.
- `oid` (string, optional) — The object ID for the contract, which might be the same as the contract ID.
- `name` (string, optional) — The name or title of the contract.
- `timezone` (string, optional) — The timezone associated with the contract (e.g., Europe/Belgrade).
- `contract_type` (string, optional) — The type of the contract (e.g., payg_tasks).

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataProgress

- `status` (string, optional) — The current status of the offboarding process (e.g., OFFBOARDING_IN_PROGRESS).
- `reference_date` (string, optional) — The reference date for the offboarding status (e.g., the termination date).
- `reference_date_type` (string, optional) — The type of reference date (e.g., END_DATE).
- `reference_date_timezone` (string, optional) — The timezone of the reference date.

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataTermination

- `id` (string, optional, nullable) — The termination ID
- `end_date` (string, optional, nullable) — The end date of the contract termination.
- `ending_type` (string, optional) — The type of termination (e.g., ENDING_CONTRACT).
- `initiated_at` (string, optional, nullable) — The date and time when the termination was initiated.
- `initiated_by` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataTerminationInitiatedBy, optional, nullable) — The individual that initiated the termination.
- `public_message` (string, optional, nullable) — A public message regarding the termination.
- `termination_impact` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataTerminationTerminationImpact, optional, nullable) — The impact of the termination, if applicable.
- `eligible_for_rehire` (string, optional, nullable) — Indicates whether the individual is eligible for rehire.
- `eligible_for_rehire_reason` (string, optional, nullable) — The reason why the individual is or is not eligible for rehire.

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataHrisProfile

- `oid` (string, optional) — The unique object ID for the HRIS profile.
- `name` (string, optional) — The name of the individual in the HRIS profile.
- `work_email` (string, optional, nullable) — The work email address of the individual in the HRIS profile.

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataAppExperience

- `is_minimal_requirements` (boolean, optional) — Indicates whether the individual meets the minimal experience requirements for the role.

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataSummaryItemsData

- `id` (string, optional) — The unique identifier for the contract associated with the summary item.

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataContractEor

Employer of Record (EOR) for the contract, if applicable.

- `probation_period` (OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataContractEorProbationPeriod, optional)

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataTerminationInitiatedBy

The individual that initiated the termination.

- `name` (string, optional) — Name of individual
- `profile_type` (string, optional) — individual's type

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataTerminationTerminationImpact

The impact of the termination, if applicable.

- `title` (string, optional) — Title of termination impact
- `description` (string, optional) — Description of termination impact

### OffboardingTrackerHrisProfileOidGetResponsesContentApplicationJsonSchemaDataContractEorProbationPeriod

- `status` (string, optional) — probation status
- `period_end_at` (string, optional) — Period end date
- `period_in_days` (integer, optional) — total of days of period

## Examples

**Response**

```json
{
  "data": {
    "summary": [
      {
        "data": {
          "id": "m7yg6zp"
        },
        "name": "Contract name",
        "type": "CONTRACT_NAME",
        "value": "TSB64 F348A1"
      }
    ],
    "contract": {
      "id": "m7yg6zp",
      "eor": {
        "probation_period": {
          "status": "in_progress",
          "period_end_at": "2021-07-14T22:00:00+00:00",
          "period_in_days": 612411
        }
      },
      "oid": "m7yg6zp",
      "name": "John Doo",
      "timezone": "Europe/Belgrade",
      "contract_type": "payg_tasks"
    },
    "progress": {
      "status": "OFFBOARDING_IN_PROGRESS",
      "reference_date": "2021-07-14T22:00:00+00:00",
      "reference_date_type": "END_DATE",
      "reference_date_timezone": "Europe/Belgrade"
    },
    "hiring_type": "contractor",
    "termination": {
      "id": "b550b7e5-d6e1-4613-93ba-a7ee5f75887c",
      "end_date": "2024-12-01T22:59:59.999Z",
      "ending_type": "ENDING_CONTRACT",
      "initiated_at": "2024-12-01T22:59:59.999Z",
      "initiated_by": {
        "name": "John Doo",
        "profile_type": "client"
      },
      "public_message": "Lorem Ipsum is simply dummy text of the printing and typesetting industry.",
      "termination_impact": {
        "title": "Loren Impact",
        "description": "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
      },
      "eligible_for_rehire": "YES",
      "eligible_for_rehire_reason": "Lorem Ipsum is simply dummy text of the printing and typesetting industry."
    },
    "hris_profile": {
      "oid": "b550b7e5-d6e1-4613-93ba-a7ee5f75887c",
      "name": "qhzTMW fPpuSu",
      "work_email": "a87cac24ea4fa4f0e4239ffd0facd778@test.com"
    },
    "app_experience": {
      "is_minimal_requirements": true
    }
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.letsdeel.com/rest/offboarding/tracker/hris_profile/150f635e-fae1-4b9d-9f86-768bbbac3698"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.json())
```

```javascript
const url = 'https://api.letsdeel.com/rest/offboarding/tracker/hris_profile/150f635e-fae1-4b9d-9f86-768bbbac3698';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.letsdeel.com/rest/offboarding/tracker/hris_profile/150f635e-fae1-4b9d-9f86-768bbbac3698"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.letsdeel.com/rest/offboarding/tracker/hris_profile/150f635e-fae1-4b9d-9f86-768bbbac3698")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.letsdeel.com/rest/offboarding/tracker/hris_profile/150f635e-fae1-4b9d-9f86-768bbbac3698")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.letsdeel.com/rest/offboarding/tracker/hris_profile/150f635e-fae1-4b9d-9f86-768bbbac3698', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://api.letsdeel.com/rest/offboarding/tracker/hris_profile/150f635e-fae1-4b9d-9f86-768bbbac3698");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.letsdeel.com/rest/offboarding/tracker/hris_profile/150f635e-fae1-4b9d-9f86-768bbbac3698")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```