> ## Documentation Index
> Fetch the complete documentation index at: https://developer.rollfi.xyz/llms.txt
> Use this file to discover all available pages before exploring further.

# Employee Off-boarding

## 👤 Employee Off-boarding Flow

This section covers how to remove an employee from active payroll both temporarily and permanently.

⚠️ Warning: Terminated employees cannot be reactivated.

### Choose the right endpoint

* Use [deactivateUser](https://developer.rollfi.xyz/api-reference/adminportal/deactivateUser) when the employee is temporarily inactive.
* Use [terminateUser](https://developer.rollfi.xyz/api-reference/adminportal/terminateUser) when the employee is permanently separated.
* Use [activateUser](https://developer.rollfi.xyz/api-reference/adminportal/activateUser) only when the employee is already deactivated.

### Important notes

#### W-2s for deactivated and terminated users

Deactivated and terminated users are still included in tax document generation when applicable.

If an employee was paid through Rollfi during the tax year, Rollfi will still generate the employee's W-2.

This is true even if the employee is no longer active at the time W-2s are produced.

#### Record retention for compliance

Terminated-user records are retained for compliance, audit support, and historical payroll reporting for 3 years based on Rollfi retention policy.

### 🔹 deactivateUser

**Purpose:** Temporarily remove a user from active payroll workflows.

When to use:

* The user is on leave or temporarily inactive.
* You may need to bring the user back later.

Expected outcome:

* User is no longer treated as active.
* User can be returned with `activateUser`.
* A temporary email can be applied while the user is inactive, if required by your workflow.
* Employee status becomes `Deactivate`.

Payroll behavior:

* If `finalPayCheckType` is set to regular payroll cycle, an open unprocessed regular pay period exists, and `exitDate` falls inside that pay period, the employee can remain in that open period.
* In that case, totals for the open pay period are prorated based on `exitDate`.
* Employees will not be included in pay periods after their `exitDate`
  Required fields:
* `userId`
* `exitDate`
* `personalEmail`
* `finalPayCheckType`

FinalPayCheckType guidance:

* Choose the value that reflects how payroll should handle the employee's final check for this offboarding event.
* Because deactivation is reversible, treat this as a temporary offboarding payroll instruction that can be superseded by later lifecycle actions.

### 🔹 terminateUser

**Purpose:** Permanently terminate a user.

When to use:

* The separation is final.
* You do not plan to reactivate the user.

Expected outcome:

* User is moved to a terminated state for reporting/history.
* This should be treated as permanent off-boarding.
* Rollfi will still issue a W-2 if the employee received pay through Rollfi.
* Employee status becomes `Terminate`.

Payroll behavior:

* If `finalPayCheckType` is set to regular payroll cycle, an open unprocessed regular pay period exists, and `exitDate` falls inside that pay period, the employee can remain in that open period.
* In that case, totals for the open pay period are prorated based on `exitDate`.
* If `exitDate` is outside unprocessed regular periods, the employee may be removed from unprocessed periods instead of being prorated.
* Other unprocessed regular pay periods may be cleaned up so the employee is not paid beyond the intended final period.

Required fields:

* `finalPayCheckType`
* `terminationChoice`
* `exitDate`
* `personalEmail`

FinalPayCheckType guidance:

* Treat this as the definitive final-pay handling choice for a permanent separation.
* Use the value that matches your final payroll policy for the terminated employee.

Additional terminate validation:

* User must currently be active. Terminate returns validation errors for inactive or non-active-status users.

### 🔹 activateUser

**Purpose:** Reactivate a previously `deactivated` user.

⚠️ Important:

* This endpoint is only for deactivated users and is not required for regular onboarding of new employees.

Use this when:

* A deactivated employee is returning and should be active again.

What to expect:

* Employee status becomes `Active`.
* The employee can be added back to payroll and other workflows.

***

### 🔹 Statuses and verification

`getUsers`: Returns users for the company across statuses (not only `Active`).

`Deactivate` status: Retrieved with [getDeactivatedUsers](https://developer.rollfi.xyz/api-reference/reports/getDeactivatedUsers).

`Terminate` status: Retrieved with [getTerminatedUsers](https://developer.rollfi.xyz/api-reference/reports/getTerminatedUsers).
