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

# Payrolls

> Payroll generation, attendance review, payment, and accounting posting

The payroll module calculates staff pay by period (biweekly, monthly, or weekly), applying payroll policies, income tax withholding, unpaid leave, and the attendance confirmed by the manager.

## Payroll statuses

| Status | Description |
| - | - |
| **Draft** | Just generated. You can review, duplicate, or cancel it. |
| **Processed** | Final amounts. The accrual can now be posted to accounting. |
| **Paid** | All payments were disbursed. The payment can now be posted to accounting. |
| **Canceled** | Voided. |

## Generate a payroll

**1. Go to Human Resources → Payrolls → New Payroll**

**2. Enter the name, project (optional), and the From / To period**

For example, from the 1st to the 15th for the first half of the month and from the 16th to the last day of the month for the second.

**3. Select employees and deductions**

Active employees are loaded. Uncheck those who don't apply and, for each employee, turn payroll policies (ISSS, AFP, etc.) on or off.

**4. Review attendance (optional)**

See [Attendance review](#attendance-review).

**5. Save**

The payroll is generated in **Draft** status with each employee's calculation.

## How it is calculated

| Item | Calculation |
| - | - |
| **Period salary** | Monthly salary ÷ 30 × days in the period, using a **30-day commercial month**: each half-month is worth 15 days (regardless of whether the month has 28, 30, or 31) and a full month is worth 30. |
| **Unpaid leave** | Daily salary × days of approved *unpaid* leave within the period. |
| **Absences** | Daily salary × days confirmed in the attendance review. |
| **Overtime** | Hourly salary × surcharge × confirmed hours. The surcharge comes from the [labor rules](https://docs.filexpress.app/en/docs/rrhh/reglas-laborales.md) (in El Salvador, 100% for daytime overtime). |
| **Policies** | Calculated on the salary earned in the period (after deducting unpaid leave and absences and adding overtime). They respect each policy's minimum and maximum limits. |
| **Income tax (Renta)** | Calculated with the [withholding table](https://docs.filexpress.app/en/docs/rrhh/tablas-impuestos.md) whose frequency matches the payroll: 15 days → biweekly, 30 days → monthly, 7 days → weekly. **It is mandatory**: it cannot be turned off per employee. |
| **Loans** | Installment of each active [loan](https://docs.filexpress.app/en/docs/rrhh/prestamos.md), after income tax and without leaving the net pay negative. It can be skipped per employee with the **LOAN** switch. |
| **Employer contributions** | Calculated and recorded for accounting, but **they do not affect the employee's net pay**. |

> [!WARNING]
>
> If the business has income tax tables but not the one for the payroll's frequency, the payroll is not generated and the missing table is indicated.

## Attendance review

The **Review attendance** button analyzes the period's [attendance](https://docs.filexpress.app/en/docs/rrhh/asistencia.md) for the selected employees and shows, for each one:

* **Attended**: days with a record over days with a workday.
* **Absences**: days with a workday but no record, no approved leave, and that are not holidays, with the dates.
* **Overtime**: hours above the daily workday.
* **Breakdown by category**: hours of each type (ordinary or overtime, daytime or nighttime, on a normal day, rest day, or holiday) with their amount.
* **Suggested amount**: sum of the breakdown according to the employee's [pay type](https://docs.filexpress.app/en/docs/rrhh/empleados.md#pay-type).

The manager decides what to apply with the switches on each row and can correct the quantities. Below, the total to deduct and to pay is shown.

The breakdown and the suggested amount come from [Schedule compliance](https://docs.filexpress.app/en/docs/rrhh/cumplimiento.md), which classifies each day using the current [schedule](https://docs.filexpress.app/en/docs/rrhh/horarios.md), [holidays](https://docs.filexpress.app/en/docs/rrhh/feriados.md), and [labor rules](https://docs.filexpress.app/en/docs/rrhh/reglas-laborales.md). They are a **reference**: use them to validate the overtime and surcharge amounts you are going to apply.

### Breakdown example

An **hourly** employee with a rate of US\$3.00 in El Salvador, with 8 ordinary daytime hours, 2 daytime overtime hours, and 7 ordinary nighttime hours in the period:

| Category | Hours | Multiplier | Amount |
| - | - | - | - |
| Ordinary daytime | 8 | ×1 | 24.00 |
| Daytime overtime | 2 | ×2 | 12.00 |
| Ordinary nighttime | 7 | ×1.25 | 26.25 |
| **Suggested amount** | | | **62.25** |

If she had a **monthly salary**, ordinary daytime hours would not add anything (they are already in the salary) and, for ordinary nighttime hours, only the additional 25% would be suggested.

> [!NOTE]
>
> Only what the manager confirms is applied. If you don't review attendance, the payroll is generated without absence deductions or overtime. If you change the period, the review is erased and you have to repeat it.

## Process and pay

**1. Review the draft payroll and process it**

**2. Pay**

* **Mark as paid** for each employee, or **Pay all** for the whole payroll.
* When you pay, the payment receipt is sent to the employee's email.
* When all payments are marked, the payroll changes to **Paid**.

## Downloads

| Download | Content |
| - | - |
| **Individual receipt (PDF)** | Employee's pay stub with income and deductions. |
| **Batch receipts (PDF)** | All the payroll's pay stubs. |
| **Excel** | Detail per employee with each adjustment in a column. |
| **Disbursement file** | File for bulk payment through the bank (uses the employee's bank details). |

## Duplicate a payroll

From the list, **Duplicate** creates a draft copy with the same employees and adjustments for a new period. Review the amounts before processing it: the copy does not recalculate attendance, leave, or income tax.

## Payrolls by branch

If the business has several branches, turn on the **Payrolls by branch** switch at the top of the Payrolls screen. With the setting on:

* Each new payroll asks for its **branch** (by default the branch in use) and the list shows the **Branch** column.
* Per-branch indicators, such as **Net earnings** on the home page, only subtract that branch's payrolls.
* Payrolls prior to the setting have no branch and are not counted in any; assign them one when you integrate them through the [API v2](https://docs.filexpress.app/en/docs/api/v2/planillas.md#assign-branch).

With the setting off, payrolls belong to the whole business and count in all branches.

## Cost centers

A payroll can split its expense among [cost centers](https://docs.filexpress.app/en/docs/contabilidad/centros-de-costo.md):

* **When generating it**: **Cost center** field (applied to salary expenses and employer contributions) and, per employee, their own center (empty = the payroll's).
* **Afterward**: in the list, expand the payroll, adjust **Payroll cost center** and each employee's **Cost center** column, and click **Save cost centers**.

When posted to accounting, salary and employer contribution expenses are grouped by account and center; withholdings and liabilities have no center. If the payroll has already been posted, the change does not modify the journal entry: use [center reassignment](https://docs.filexpress.app/en/docs/contabilidad/centros-de-costo.md#reassign-cost-centers-in-a-journal-entry).

## Post to accounting

The payroll's journal entry (accrual), its payment, and the monthly provisions are generated from [Process Documents](https://docs.filexpress.app/en/docs/contabilidad/procesar-documentos.md#payroll).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.