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

# Employment records & contracts

> If the Employee record is the person, the employment record is the job.

If the [Employee record](/hr/user/employees/employees) is the *person*, the **employment record** is the *job*. Each employment record (the system calls it an **employment contract**) is one engagement between an employee and one of your businesses — it carries the employment type, the start and end dates, the position, department and manager, the work location, the statutory and bank details, the salary structure, and who approves the person's leave. An employee can hold several of these over time (a fixed-term contract that ends and is renewed, a role that changes through a transfer or promotion) and can even hold more than one at once — for example the same person employed by two of your subsidiaries.

This is the deep "contract" page. It explains where employment records live, what each one holds, how to add and edit one, how ending a contract works, and how all of that ties into transfers, promotions and separation.

**You'll find this at:** the **Employment** section of an [employee's profile](/hr/user/employees/employee-profile) — `/hr/employees/:id` → *Employment*

> 📷 *Screenshot: Employment History timeline with the current contract highlighted, and the Add Employment button — to be added.*

***

## Why contracts are per-business

A single Employee identity is shared across your whole organisation, but the **contract is tied to one business** (one legal entity). That's deliberate: the things that vary by legal entity — the country the work is performed in, the country whose PAYE/social-security rules apply, the pay currency, the payroll calendar, the tax and social-security identifiers — all live on the *contract*, never on the person. So when the same individual works for two of your businesses, each engagement is its own contract with its own statutory and pay rules.

When you create a contract through the web app, the business is taken from your active business switcher (or an explicit business on the request). Make sure the right business is selected first.

***

## The Employment History timeline

The Employment section lists every employment record for the person, newest first, as a timeline. Each entry shows:

* The **position** and **department** (with the [title / position-type fallback](/hr/user/employees/employees#the-no-position--title-fallback-behaviour)).
* The **employment type** badge — Full Time, Part Time, Contract or Intern.
* A **Current** badge on the active contract, or **Ended** on a closed one.
* The **dates** (start – end, or "Present"), the **tenure**, the **work location** and the **manager**.

A counter shows how many records exist. Click any entry to open its **detail sheet**.

***

## What a contract holds

Opening a contract reveals the full detail, grouped into sections:

### Contract

| Field               | Notes                                                           |
| ------------------- | --------------------------------------------------------------- |
| **Employment type** | Full Time, Part Time, Contract or Intern.                       |
| **Start date**      | When the engagement began.                                      |
| **End date**        | Blank ("Present") while active; set when the contract is ended. |
| **Tenure**          | Derived from start → end (or today).                            |

### Role & placement (editable)

| Field             | Notes                                                                                                                                                                                                                                                                                                                                              |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Department**    | The org unit.                                                                                                                                                                                                                                                                                                                                      |
| **Position**      | The job position.                                                                                                                                                                                                                                                                                                                                  |
| **Manager**       | The person this employee reports to. Drives the [org chart](/hr/user/employees/org-chart) and "My team". You can't pick the employee as their own manager. Assigning the employee to a seat in [Org Structure](/hr/user/getting-started/org-structure) can set this automatically from the parent seat's occupant; you can still override it here. |
| **Work location** | Free text.                                                                                                                                                                                                                                                                                                                                         |

On an **active** contract this block has an **Edit** button — change the department, position, manager or work location in place and **Save**. (These are the only role fields editable directly here; a structured move with an effective date and reason is a [Transfer](/hr/user/employees/transfers).)

### Statutory & compliance

These per-contract fields support multi-country payroll. They're displayed read-only on the sheet (set when the contract is created via the API):

| Field                   | Notes                                                                                                               |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------- |
| **Country**             | ISO country where the contract is performed.                                                                        |
| **Statutory residence** | ISO country whose PAYE / social-security rules apply (usually the same; differs for cross-border/expatriate cases). |
| **Pay currency**        | ISO currency of the salary base.                                                                                    |
| **Tax ID**              | Country-specific tax identifier (e.g. URA TIN, KRA PIN).                                                            |
| **Social security no.** | Country-specific social-security identifier (e.g. NSSF).                                                            |

### Bank details

Per-contract remittance details for paying salary — **bank name, branch, branch code, account name, account number, SWIFT code**. If none are recorded, the sheet says so.

### Compensation

The active **salary structure assignment** for this contract — the basis for what the employee is paid. See [Salary structures](/hr/user/payroll/salary-structures).

### Leave approver

An optional **designated leave approver** for this contract. When set, only that person may approve this employee's leave requests; clear it to fall back to "any authorised approver". Editable on an active contract.

***

## Adding an employment record

From the Employment section choose **Add Employment**. The modal asks for:

| Field               | Required | Notes                                                                                        |
| ------------------- | -------- | -------------------------------------------------------------------------------------------- |
| **Employment type** | Yes      | Full Time, Part Time, Contract or Intern.                                                    |
| **Start date**      | Yes      | Defaults to today.                                                                           |
| **Department**      | No       | Pick an org unit (or set one up in [Org Structure](/hr/user/getting-started/org-structure)). |
| **Position**        | No       | Pick an active position.                                                                     |
| **Manager**         | No       | Search and select; can't be the employee themselves.                                         |
| **Work location**   | No       | Free text.                                                                                   |

The new record is created against your **active business** and starts in the **Active** state. (The web add modal covers the everyday fields; the statutory, currency and bank fields are set via the API when needed.)

> Note the [add-employee form](/hr/user/employees/create-employee) already creates a first employment record, so you'll usually only add another one for a renewal, a second concurrent engagement, or to re-place someone.

***

## Editing a contract

* **Role & placement** — edit department, position, manager and work location inline on an active contract's detail sheet (described above).
* **Leave approver** — set or clear the designated approver inline.

These inline edits are the supported in-app changes today. Larger structured changes are modelled as [transfers](/hr/user/employees/transfers) and [promotions](/hr/user/employees/promotions), which capture an effective date, a reason and a before/after history.

***

## Ending employment

On an **active** contract, the detail sheet has an **End Employment** action (under *Actions*). It asks for:

| Field        | Required | Notes               |
| ------------ | -------- | ------------------- |
| **End date** | Yes      | Defaults to today.  |
| **Reason**   | No       | Optional free text. |

Ending a contract marks it **Ended** and stamps the end date — the employee stays in the system, but that contract is no longer active and stops driving the org chart, leave approvals and so on. Ending a single contract is *not* the same as terminating the employee: it closes one engagement only.

### How this ties into separation and termination

* **Terminating the employee** (the **Delete**-adjacent *Terminate* action on the profile) sets the employee's status to **Terminated**, records the termination date, **and ends their active employment contract** in one step.
* The full **offboarding** workflow — clearance, exit interview, final settlement — runs through the dedicated [Separation (offboarding)](/hr/user/lifecycle/separation) module, which is the right path for a managed leaver rather than just ending the contract record.

***

## The e-signature envelope

Every employment contract has a **Contract Envelope** — the employment agreement itself, sent for e-signature. It shows as a chip on the contract's detail sheet (and in the Employment History row) alongside **Generate & Send**, **Resend**, or **Void & Reissue** actions depending on its current status:

| Chip                                         | Meaning                                                                                                                              | Actions available                                                       |
| -------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------- |
| **Not sent**                                 | No envelope exists yet for this contract.                                                                                            | **Generate & Send**                                                     |
| **Out for Signature** / **Partially Signed** | Sent; one or both signers haven't finished yet. Signing is **ordered** — the employee signs first, then the employer representative. | **Resend** (reminds whoever's turn it currently is), **Void & Reissue** |
| **Completed**                                | Both parties have signed. A signed PDF is attached.                                                                                  | — (view only)                                                           |
| **Declined** / **Expired** / **Voided**      | Signing stopped before completion.                                                                                                   | **Void & Reissue**                                                      |

Clicking the chip (whenever it has an envelope) opens the same document viewer the CRM Agreements module uses — the rendered contract, each recipient's signing progress, and a full audit timeline (sent, delivered, reminded, signed, declined, voided). **Resend** and **Void & Reissue** are also available from that viewer.

### Contracts are sent automatically

You almost never need to click Generate & Send yourself. **Creating a new employment record — through [Add Employment](#adding-an-employment-record) on this page, or through [accepting a job offer](/hr/user/recruitment/job-offers#accepting-an-offer-this-creates-the-employee) in recruitment — automatically fires off the envelope**, using the business's configured template and employer-representative signatory. This never blocks or fails the hire: if nothing's configured yet, the contract is simply created with the envelope showing **"Not sent"**, and someone can send it later — manually, or in bulk via the **backfill** action described below.

> ⚠️ A contract cannot be sent to sign itself — if the configured employer-representative signatory is the same person as the employee on the contract, sending is skipped ("Not sent") rather than silently misfiring.

### Setting it up

Before any of this can actually send, a business needs a template and a signatory configured once at [HR settings → Employment Contracts](/hr/user/settings/hr-settings#employment-contracts). See [Employment contract templates](/hr/user/employees/employment-contract-templates) for building the document itself.

> ⚠️ If a contract arrives with no signature areas for either party, the template's signature blocks are tagged with the wrong signer roles. They must be **Employee** and **Employer\_rep** — see [Signer roles are fixed](/hr/user/employees/employment-contract-templates#signer-roles-are-fixed).

### Catching up on contracts that predate this

If you have employees hired before this feature (or before signing was configured for the business), use **"Send contracts for signature"** on the same HR settings card — it runs Generate & Send for every **Active** contract in the business that doesn't already have a current envelope, and reports back how many were sent, already had one, or are still unconfigured.

### Permissions

| Action                                         | Permission             |
| ---------------------------------------------- | ---------------------- |
| View envelope status                           | `hr-employment:read`   |
| Generate & Send, Resend                        | `hr-employment:send`   |
| Void & Reissue                                 | `hr-employment:void`   |
| Configure template/signatory, run the backfill | `hr-employment:config` |

***

## How contracts feed everything else

* **Org chart & My Team** — only **active** contracts (`workflowState = Active`, employee not terminated) for the selected business build the [reporting tree](/hr/user/employees/org-chart), via the manager on each contract.
* **Work history** — a contract's start produces a "Hired" event and its end a "Contract ended" event on the employee's [Work History](/hr/user/employees/employee-profile) timeline (draft/cancelled contracts don't).
* **Payroll** — the contract's salary structure assignment, pay currency and statutory fields drive the employee's pay and statutory deductions.

***

## Permissions

| Action                                                                            | Permission |
| --------------------------------------------------------------------------------- | ---------- |
| View employment history and a contract's detail                                   | `hr:read`  |
| Add a contract, edit role/placement, set leave approver, end employment, transfer | `hr:write` |
| Delete an employment record                                                       | `hr:admin` |

All employment reads and writes are scoped by the contract's own business against your active business context, so you can't reach a contract that belongs to a business you're not in.

***

## Related

* [Employees (the people directory)](/hr/user/employees/employees) — the person these contracts belong to
* [The employee profile & its tabs](/hr/user/employees/employee-profile) — where the Employment section lives
* [Transfers](/hr/user/employees/transfers) · [Promotions](/hr/user/employees/promotions) — structured role changes with history
* [Separation (offboarding)](/hr/user/lifecycle/separation) — the managed leaver workflow
* [Salary structures](/hr/user/payroll/salary-structures) — the compensation assigned to a contract
* [Org chart](/hr/user/employees/org-chart) — built from active contracts' manager lines
* [Org Structure — departments, seats & reporting lines](/hr/user/getting-started/org-structure) — where seats and reporting lines come from
* [Employment contract templates](/hr/user/employees/employment-contract-templates) — build the document the e-signature envelope sends
* [HR settings — Employment Contracts](/hr/user/settings/hr-settings#employment-contracts) — configure the template, signatory and backfill
* [Job offers](/hr/user/recruitment/job-offers) — accepting an offer creates a contract the same way Add Employment does
