---
title: HR Payroll — pay your team the Romanian way
description: A friendly starter guide to TSync HR Payroll — set your tax rates, run a monthly payroll, compute and check every payslip, approve, post the result straight into your accounts, and prepare the D112. Built for Romanian 2026 rules; no accountant required to get going.
product: TSync Intelligence 11.3.6
language: en
canonical: https://docs.tsync.pro/modules/tsync-hr-payroll/
source: https://docs.tsync.pro/llms.txt
---

# HR Payroll 💸

**TSync HR Payroll works out everyone's salary for you** — the gross, the taxes, the contributions, the exemptions, the net in hand — following the Romanian 2026 rules, and then drops the result neatly into your accounting. No more spreadsheets full of formulas you're afraid to touch.

You set things up once, then each month it's a clear sequence: **create a run, compute it, check it, approve it,** and (when you're ready) **post it to your accounts.**

> 💡 Payroll reads your employees from **[HR Records](../tsync-hr-profile/)**. Set your people up there first — payroll only pays employees who have an active contract there.

## Where it lives

Look for **HR Payroll** in the left sidebar. Clicking it opens a submenu:

- **Dashboard** — the overview, with the month's numbers and shortcuts.
- **Pay runs** — create and open monthly payroll runs.
- **Payslips** — every payslip, per employee and per month.
- **Payroll components** — the month's variable pay: attendance, commissions, KPI bonuses, insurance and project costs.
- **D112** — prepare the monthly Romanian salary declaration.
- **Tax rates** — the Romanian rates with their effective dates.
- **Settings** — company defaults and the accounts payroll posts to.

## The dashboard

The **Dashboard** is a tidy board of tiles. At a glance you see, for the current month, how many **payslips** were produced, the total **gross**, the total **net**, and the **taxes & contributions** — plus how many runs are still waiting (a "pending" count). A list of your **recent pay runs** shows each one's period, status and total. The big shortcut row jumps you straight to Pay runs, Payslips, D112, Tax rates or Settings.

## What would you like to do?

### ⚙️ Set it up once

Open **HR Payroll → Settings** (admin only). Here you tell TSync which **accounts payroll should post to** — there are seven boxes: the salary *expense* account, the salary *payable* account (what you owe staff), and the *payable* accounts for the employee pension (CAS), employee health (CASS), the income tax (IMP), and the employer work-insurance contribution (CAM expense + CAM payable). Sensible Romanian defaults are filled in (6411 / 421 / 4315 / 4316 / 444 / 6451 / 436), so most companies just confirm them. There's also an **auto-post to GL** switch and a **default country** — leave auto-post off if you'd rather post each run by hand. Settings is also where you turn the **payroll components** (below) on or off and set their defaults — whether attendance prorates the salary and the standard number of working days, the sales-commission percentage, and the switches for KPI bonuses, insurance and project costing.

Then open **Tax rates**: this is where the Romanian rates live — pension (**CAS**, employee), health (**CASS**, employee), income tax (**IMP**), and the employer work-insurance contribution (**CAM**) — each with the **date it takes effect**, plus the **minimum gross salary** and the **personal-deduction cap** used in the calculation. A standard Romanian 2026 set comes ready, so most companies just check it and move on. Use **New tax rate** to add a line. If a rate changes next year, you add a *new* line with the new start date — the old runs keep their old rate, history stays correct. (Editing and deleting rate lines is for admins/managers.)

### ▶️ Create a month's payroll

Open **Pay runs** and use the small form at the top: pick the **year**, the **month**, and the **country** (RO, or MD). Click **Create run**. TSync makes an empty **draft** run for that period — one run per period and country. (You can't pay anyone yet; this is just the container.)

### 📥 Add the month's variable pay (payroll components)

Salaries are rarely just the base. Open **HR Payroll → Payroll components**, pick the **year and month** at the top, and record everything that changes from month to month. Whatever you enter here is picked up automatically the next time you **Compute** that period — so add it *before* you compute. Five kinds of component live here, each with its own on/off switch in **Settings**:

- **Attendance (timekeeping / _pontaj_).** For each employee, record the month's **standard** working days, the days they **actually** worked, and any **paid** and **unpaid** leave. If someone worked fewer days than the standard month, their **gross is prorated** (days worked ÷ standard days) and the whole tax calculation follows the smaller gross — so you never overpay (overtime is handled separately). Prefer to always pay the full contract salary? Turn proration off in Settings, where you also set the default number of standard workdays.
- **Commissions.** Add a commission line by hand (employee + amount + a note), or click **Sync from sales** to bring them in automatically: TSync looks at the month's **paid invoices**, reads the sales agent on each, matches that agent to their HR employee, and books a commission worth the **percentage you set** (Settings → sales-commission %; 0 means off) of what they sold. Commissions are **taxable earnings** — added to the gross, taxed like salary, and shown as an addition on the payslip. Re-running the sync is safe: it refreshes only the automatic rows and never touches the ones you typed by hand.
- **KPI / performance bonus.** A performance bonus per employee (an amount, with an optional KPI reference). Like commissions, it's a taxable earning that goes into the gross and appears on the payslip.
- **Insurance.** First define your **insurance types** — each with a code and either a percentage of gross or a fixed amount — then **assign** a type to an employee with a start (and optional end) date. Every pay run then applies it as a **deduction taken from the net pay**, so it does **not** reduce the tax base (the safe default). This is a **per-employee** insurance — a private health or life policy and the like — and it is **different from CAM**: CAM (the employer work-insurance contribution) is a company-side cost that payroll already computes automatically on every run, whereas this insurance component is an individual deduction (or benefit) you set up and assign to specific people.
- **Project costing.** Record how many **hours** an employee spent on a **project** and their **hourly rate** (plus an optional bonus). TSync works out the **labour cost per project** — what the work really cost in wages, and how profitable a project is. This is a costing and reporting figure only; it does **not** change what the person is paid.

Add and remove component lines freely; removing a line asks you to confirm. Managing components needs the payroll **Manage** right.

### 🧮 Compute the payslips

Open the run and click **Compute**. TSync builds a payslip for **every active employee** who has an active contract overlapping that month. **The calculation follows the run's country.** For a **Romanian (RO)** run it works out the **gross**, the **CAS** (pension) and **CASS** (health) withheld, the **personal deduction**, the **income tax (IMP)**, the **net**, and the **employer's total cost** (gross + CAM); exemptions (IT, construction, agriculture, disability) apply automatically. For a **Moldovan (MD)** run it computes the Moldovan contributions instead — **CNAM 9 %** (employee health) and **income tax 12 %** withheld from the salary, the **personal and per-dependent exemption** applied to the taxable base, and **CNAS 24 %** as the employer's contribution on top — and the payslip column headers change to match (CNAM / income tax / CNAS). Any **standing deductions** set up for an employee are pulled in too. The run's status becomes **computed**.

> **Moldova rates:** the MD contribution rates and exemptions are editable under **HR Payroll → Tax rates** (choose country MD). They ship with the 2024 Moldovan values as a starting point — **have a qualified accountant confirm the current-year rates before your first real MD run.**

> Compute is safe to re-run while a run is still a draft or computed — it simply rebuilds the payslips with the latest figures. Nothing is locked until you approve.

### ✅ Check it, then approve

On the run page you'll see the **totals** for the month (gross, CAS, CASS, IMP, CAM, net) and a **table of every payslip** — per employee, with the breakdown and any exemption shown. Numbers look right? Click **Approve**. Approving **locks** the run so the figures can't drift, and makes the payslips final. (Nothing is ever recomputed behind your back — once a run is approved, those are the numbers.)

### 🧾 Hand out payslips

Open **Payslips** to see every payslip across all runs — by period and per employee, with the gross, the net, and the exemption at a glance. Each line is the clean record of what that person was paid that month.

### 📒 Post it to your accounts

When a run is computed or approved you can **Post to GL** in one step. The salary expense and the amounts you owe — to staff (account 421), and to the state for CAS, CASS, income tax and CAM — land in your accounting automatically, through **[Accounting](../tsync-accounting/)**, as one balanced journal entry. The run's status becomes **posted**. No double entry, no copying numbers between systems. (Posting is idempotent — posting the same run twice won't double it.)

### 🗑️ Remove a draft run

Made a run by mistake? On **Pay runs**, a draft/computed/approved run has a **Delete** button (it asks first, and it clears the run's payslips with it). A run that's already been **posted or closed** can't be deleted — reverse the posting first — so your accounts and a run never disagree. Creating a run also asks for confirmation, so a stray click can't make a stray run.

### 📑 The monthly declaration (D112 / IPC18)

Open **D112**, pick a run (any run that's been computed, approved, posted or closed), and TSync writes the monthly salary declaration **for the run's country** as an XML skeleton carrying your company details, the run's totals **and a separate line for every employee**. A **Romanian** run produces the **D112**; a **Moldovan** run produces the **IPC18 (Darea de seamă)** with the MD figures (CNAM, income tax, CNAS). You take that file into the official tool — so the monthly reporting starts from your real payroll, right down to each person, not a blank form.

### 📊 Pull the payroll reports

The operational figures you enter under **Payroll components** are also available as proper reports in **[TSync Reports](../reports.md)** (under the **HR** category): a **Payroll register** (every employee and period, gross → contributions → net → employer cost), a **Contributions summary** (the per-period filing totals), an **Attendance register**, **Commissions**, an **Insurance summary** and **Project salary costs**. Open Reports, choose one, and you can filter it, view it as a chart (commissions and project costs), and export to Excel, CSV or PDF — the same export and scheduling tools as every other report, so payroll figures drop straight into your own spreadsheets or BI.

## Good to know

- **Nothing is invented and nothing is silently recomputed.** A draft run is empty until you compute it; computing shows you the figures; approving freezes them. If a tax rate or an employee changes later, you make a *new* run — the past stays exactly as it was paid.
- Payroll only touches **active employees** with an active contract in HR Records, so keeping that tidy keeps payroll tidy.
- The accounts payroll posts to are configured once (in **Settings**), so every month posts consistently.
- A pay run moves through clear states: **draft → computed → approved → posted** (and finally closed). The buttons available on the run page change with the state.
- The Romanian rates and thresholds are a working starting point — **have a qualified accountant confirm the current-year rates** before your first real run.

## Who can do what

Payroll is sensitive, so it has its own permissions: who can **view**, who can **manage** (edit tax rates, approve a run), who can **run payroll** (create and compute runs), who can **post to GL**, who can **export D112**, and who can **see payslips**. Give each person only what they need. Settings and deleting tax-rate lines are admin-only.

## Where to go next

- 👥 Set up your people first → [HR Records guide](../tsync-hr-profile/)
- 📒 See where the salary cost lands → [Accounting guide](../tsync-accounting/)
- 🏠 Lost? Head back to [Getting started with TSync](../index.md)
