Skip to content

Deel: Initiate EOR contract termination request

Deel eorTerminations.createOffboardingTermination: arguments, response, policy and SDK examples.

← eor_terminations operations · Get started · OpenAPI downloads

Contract 2026-10-27 · Operation deel.eorterminations_createoffboardingtermination

Provider route: POST /eor/contracts/{contract_id}/offboarding/termination. Alter supplies the connection’s credentials and routing.

Install @alter-ai/sdk @alter-ai/deel with npm, or alter-sdk-deel with pip. Supply your connected customer’s grant ID and the arguments described below.

import { App } from "@alter-ai/sdk";
import { DeelIntegration } from "@alter-ai/deel";
async function execute(input: Parameters<DeelIntegration["eorTerminations"]["createOffboardingTermination"]>[0]) {
const app = new App({ apiKey: process.env.ALTER_API_KEY! });
try {
const provider = new DeelIntegration(app, { grantId: process.env.PROVIDER_GRANT_ID! });
const call = await provider.eorTerminations.createOffboardingTermination(input);
const result = await call.wait();
return result.bodyJson();
} finally {
await app.close();
}
}
import os
from alter_sdk import App
from alter_sdk_deel import DeelIntegration
async def execute(arguments):
async with App(api_key=os.environ["ALTER_API_KEY"]) as app:
provider = DeelIntegration(app, {"grant_id": os.environ["PROVIDER_GRANT_ID"]})
call = await provider.eor_terminations.create_offboarding_termination(arguments)
result = await call.wait()
return result.body_json()
FieldTypePresenceDescription and constraints
$objectRootAdditional keys: not allowed
pathobjectRequired within parentAdditional keys: not allowed
path.contract_idstringRequired within parent
bodyobjectOptional
body.dataobjectRequired within parent
body.data.additional_reasonJSONOptionalAn additional reason can be provided in case the reason selected is NO_LONGER_WISH_TO_WORK_WITH_DEEL
body.data.additional_reason (oneOf 1)stringAlternativeAn additional reason can be provided in case the reason selected is NO_LONGER_WISH_TO_WORK_WITH_DEEL
One of: DISSATISFIED_WITH_DEEL_SERVICE, DISSATISFIED_WITH_DEEL_PRICING, DISSATISFIED_WITH_DEEL_PRODUCT
body.data.additional_reason (oneOf 2)nullAlternative
body.data.additional_supporting_documentsJSONOptionalThis field allows for uploading multiple files at once. Any proof such as correspondence, documentation of previous warnings or attendance records for the reason select above. Includes common image formats (JPG, JPEG, PNG, HEIC) and PDF documents.
body.data.additional_supporting_documents (anyOf 1)objectAlternativeAdditional keys: not allowed
body.data.additional_supporting_documents (anyOf 1).filenamestringRequired within parentMinimum length: 1
body.data.additional_supporting_documents (anyOf 1).content_typestringRequired within parentMinimum length: 1
body.data.additional_supporting_documents (anyOf 1).content_base64stringRequired within parent
body.data.additional_supporting_documents (anyOf 2)arrayAlternativeMinimum items: 1
body.data.additional_supporting_documents (anyOf 2)[]objectEach itemAdditional keys: not allowed
body.data.additional_supporting_documents (anyOf 2)[].filenamestringRequired within parentMinimum length: 1
body.data.additional_supporting_documents (anyOf 2)[].content_typestringRequired within parentMinimum length: 1
body.data.additional_supporting_documents (anyOf 2)[].content_base64stringRequired within parent
body.data.attachmentsJSONOptionalThis field allows for uploading multiple files at once. Attach any document that is important for the request to terminate the contract. Includes common image formats (JPG, JPEG, PNG, HEIC) and PDF documents.
body.data.attachments (anyOf 1)objectAlternativeAdditional keys: not allowed
body.data.attachments (anyOf 1).filenamestringRequired within parentMinimum length: 1
body.data.attachments (anyOf 1).content_typestringRequired within parentMinimum length: 1
body.data.attachments (anyOf 1).content_base64stringRequired within parent
body.data.attachments (anyOf 2)arrayAlternativeMinimum items: 1
body.data.attachments (anyOf 2)[]objectEach itemAdditional keys: not allowed
body.data.attachments (anyOf 2)[].filenamestringRequired within parentMinimum length: 1
body.data.attachments (anyOf 2)[].content_typestringRequired within parentMinimum length: 1
body.data.attachments (anyOf 2)[].content_base64stringRequired within parent
body.data.desired_end_datestringOptionalThe desired end date of the contract. If the date is not provided, Deel HRX team will select the nearest possible date.
Format: date
body.data.eligible_for_rehireJSONOptionalParameter to inform whether it would be possible for the client to hire the employee again
body.data.eligible_for_rehire (oneOf 1)stringAlternativeParameter to inform whether it would be possible for the client to hire the employee again
One of: YES, NO, DONT_KNOW
body.data.eligible_for_rehire (oneOf 2)nullAlternative
body.data.employee_notification_detailstring or nullOptionalIf it’s an termination contract ending and employee was already informed, should detail the notification to the employee
Maximum length: 5000
Minimum length: 1
body.data.is_employee_notifiedbooleanRequired within parentDefines if employee was informed by client or not before the termination
body.data.is_sensitivebooleanOptionalDefines whether the termination is sensitive. In this case, only the person requesting the termination will be able to view the termination, receive emails or notifications.
body.data.reasonstringRequired within parentReason why the contract is being terminated
One of: DEEL_COLLECTIONS, STATUS_CHANGE, RELOCATION, COMPENSATION, RETIREMENT, JOB_ABANDONMENT, WORK_RELATED, PERSONAL, OTHER_OPPORTUNITY, NON_RENEWAL, PROBATION, ASSIGNMENT_ENDED, POSITION_ELIMINATION, FORCE_REDUCTION, DEATH, FOR_CAUSE, PERFORMANCE, MEDICAL, PERFORMANCE_ISSUES, ATTENDANCE_ISSUES, REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE, ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED, OFFER_WAS_REVOKED, EXITING_THE_MARKET, NO_LONGER_WISH_TO_WORK_WITH_DEEL, COMPANY_ACQUIRED, STEALING, MISCONDUCT, FALSIFYING, HARASSMENT, VIOLENCE, REORGANIZATION_DOWNSIZING_BUDGET_OR_REDUCTION_OF_WORKFORCE_OR_ROLE_BECAME_REDUNDANT_OR_ROLE_CHANGED, UNAUTHORIZED_ABSENCES_OR_LACK_OF_ATTENDANCE, STANDARD_RESELLER_PRACTICE, MOVING_EMPLOYEE_TO_INTERNAL_ENTITY, MOVING_EMPLOYEE_TO_DEEL_PEO, OTHER
body.data.reason_detailstringRequired within parentField to better explain how communication with the employee will be and/or their reaction to the communication, or other necessary information
Maximum length: 5000
Minimum length: 100
body.data.required_informationarrayOptionalFor some countries some data is needed to help to process the termination. The questions comes from another endpoint to get the required information. See GET /eor/:oid/offboarding/required-information to get the questions.
body.data.required_information[]objectEach item
body.data.required_information[].answerboolean or nullRequired within parentThe answer to the question
body.data.required_information[].questionstringRequired within parentThe question to be answered
body.data.severance_amountintegerOptionalThe amount of severance needed
Minimum: 0
body.data.severance_typestringOptionalThe type of severance selected by the client. It’s an optional field
One of: DAYS, WEEKS, MONTHS, CASH
body.data.termination_impact_idstringOptionalTermination impact data if there is some configured on HR module
Format: uuid
body.data.termination_notesarrayOptionalAdditional notes can be provided regarding the termination for Deel, like questions and doubts
Default: []
body.data.termination_notes[]stringEach itemMaximum length: 5000
body.data.used_time_offModelRequired within parentExpand Request contract resignation — request body — body data used time off

Referenced models: Request contract resignation — request body — body data used time off

Response media type: application/json. The table describes the pinned successful response. Referenced models link to their complete fields.

FieldTypePresenceDescription and constraints
$ModelRootExpand Request contract resignation — 201 response body

Referenced models: Request contract resignation — 201 response body

SDK function policy ID: deel.eorterminations_createoffboardingtermination. Catalog operation: eorterminations_createoffboardingtermination. Rules can name either ID; function rules distinguish managed calls and conservatively cover raw calls sharing the route. Existing grant permissions and policy rules apply. wait() returns an immediate result or waits for a required approval; it never approves the request itself. Persist the approval ID to resume after a restart.

Provider errors retain their response; JSON decoding raises ProviderAPIError for provider failures. ManagedOperationError identifies contract/input/retention errors. See error handling and provider-specific behavior. Sensitive input may be refused before approval storage. A decoding error never resubmits a write.

Required provider scopes: ["contracts:write"]

Pinned headers: {"X-Version": "2026-01-01"}

Official provider source

Report an issue with this page

Necessary

Required for sign-in, security, authorization, and remembering your choices.

Always active

Analytics

Helps us understand which product and documentation features are useful.

Performance diagnostics

Uses performance tracing and privacy-masked session replay to diagnose problems.

You can change these choices at any time from Cookie settings.