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

# Run Monthly Payroll with BPJS and Tax Calculations

> Automate your monthly payroll in Snishop ERP, including BPJS Kesehatan, BPJS Ketenagakerjaan, and PPh21 withholding tax calculations.

Managing payroll manually is time-consuming and error-prone — especially when you have to account for BPJS contributions, PPh21 withholding, varied allowances, and mid-month bonuses. Snishop ERP's Payroll Automation engine handles all of these calculations for you, generates individual payslips, and keeps a permanent record of every completed run. This guide walks you through processing a complete monthly payroll cycle.

## Prerequisites

Before running payroll, make sure the following are set up in the **HR & Payroll** module:

* **Employee profiles** are created with complete personal data (NIK, NPWP, BPJS number, marital status, number of dependents for PTKP calculation).
* **Salary components** are configured for each employee: base salary (*Gaji Pokok*), fixed allowances (*Tunjangan Tetap*), variable allowances (*Tunjangan Tidak Tetap*), and any company-specific benefit items.
* **BPJS enrollment status** is confirmed — the system needs to know whether each employee is enrolled in BPJS Kesehatan and/or BPJS Ketenagakerjaan.
* **PPh21 calculation method** is selected per employee: *Metode Neto* (net method) or *Gross-Up*.

If any of these are missing, go to **HR & Payroll > Karyawan**, open the employee profile, and complete the missing information before proceeding.

***

## Running Monthly Payroll

**1. Go to HR & Payroll > Payroll Automation**

Click **HR & Payroll** in the left sidebar, then select **Payroll Automation** from the submenu. The payroll dashboard shows the current period's summary, employee count, and status of any previous runs.

**2. Select the Payroll Period**

In the top-right area of the page, use the **month picker** to select the month and year you want to process. The dashboard updates to show any existing payroll records for that period.

**3. Generate the Official Payroll**

Click the **Generate Official** button. Snishop ERP loads all active employees for the selected period and calculates each person's gross salary, BPJS deductions, PPh21 withholding, and net take-home pay automatically.

> [!NOTE]
>
> The Generate Official button is only available when no payroll has been generated for the selected period yet. If payroll records already exist for the period, review them using the steps below rather than regenerating.

**4. Review the Payroll Records**

Switch to the **Official Payroll** tab to see the generated records. Each employee row displays:

| Column | Description |
| - | - |
| **Attendance** | Days present vs. total working days |
| **Overtime** | Overtime hours recorded for the period |
| **KPI Score** | Performance rating that affects bonus eligibility |
| **Tax** | Calculated PPh21 income tax withholding |
| **BPJS Kesehatan** | Employee-side BPJS Kesehatan deduction |
| **BPJS Ketenagakerjaan** | Employee-side JHT + JP deductions |
| **Gross Salary** | Total pay before deductions |
| **Net Salary** | Final take-home pay after all deductions |

Review each row for accuracy. If you spot a discrepancy (e.g., incorrect attendance days), correct the underlying HR record and regenerate payroll for the affected employee.

**5. Approve the Payroll**

Once you are satisfied that all records are correct, click **Approve All** to lock and approve all payroll records for the period. Individual records can also be reviewed before this step. After approval, the status of each record updates from *pending* to *approved*.

**6. Download Individual Payslips**

For each approved payroll row, click the **PDF** icon to download that employee's payslip as a formatted PDF. If your workspace has WhatsApp integration enabled, payslips can also be sent directly to each employee's registered WhatsApp number from this view.

***

## Realtime Payroll Calculator

Before running the official payroll, you can use the **Realtime Calculator** tab to preview salary figures for individual employees as you adjust inputs — useful for planning salary changes, simulating bonuses, or checking BPJS and tax impacts before committing.

***

## How BPJS Is Calculated

Snishop ERP automatically computes BPJS contributions based on each employee's configured salary components:

### BPJS Kesehatan

| Party | Rate | Basis |
| - | - | - |
| Employer | 4% | Salary (capped at Rp 12,000,000) |
| Employee | 1% | Salary (capped at Rp 12,000,000) |

### BPJS Ketenagakerjaan

| Component | Employer | Employee | Basis |
| - | - | - | - |
| **JHT** (Jaminan Hari Tua) | 3.7% | 2% | Salary |
| **JP** (Jaminan Pensiun) | 2% | 1% | Salary (capped at upah maximum JP) |
| **JKK** (Jaminan Kecelakaan Kerja) | 0.24%–1.74%\* | — | Salary |
| **JKM** (Jaminan Kematian) | 0.3% | — | Salary |

\* JKK rate varies by business risk category as classified by BPJSTK.

> [!WARNING]
>
> BPJS contribution rates and salary caps are regulated by the government and **subject to change**. Always verify the current rates with the official **BPJS Ketenagakerjaan (BPJSTK)** and **BPJS Kesehatan (BPJSK)** portals or your HR/legal consultant before processing payroll each period. Snishop ERP uses rates configured in your payroll settings — go to **HR & Payroll > Payroll Automation > Konfigurasi** to update them if regulations change.

***

## PPh21 Calculation Methods

Snishop ERP supports two PPh21 calculation approaches, configurable per employee:

* **Metode Neto (Net / Gross Method)** — PPh21 is borne by the employee and deducted from their take-home pay. The tax is calculated on the annual gross salary projection, then divided into monthly withholding amounts. PTKP (non-taxable income threshold) is applied based on marital status and number of dependents.

* **Metode Gross-Up** — The employer absorbs the PPh21 cost by "grossing up" the salary so the employee receives their target net pay. The additional tax reimbursement is recorded as a taxable benefit and contributes to the PPh21 base, requiring an iterative calculation that Snishop ERP resolves automatically.

Switch between methods in the employee's salary profile under **HR & Payroll > Karyawan > \[Nama Karyawan] > Pengaturan PPh21**.

***

## Payroll History and Audit Trail

> [!NOTE]
>
> Every completed payroll run is saved permanently under **HR & Payroll > Payroll Automation > Official Payroll**. You can view or re-download payslips for any past period at any time. Each run records the processing date, the user who generated it, and a full breakdown of all components — creating a complete audit trail for compliance, labor inspections, or internal review. Approved payroll records cannot be deleted; corrections must be processed as adjustments in the following period.


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