---
title: File PPh 21 through Coretax
description: Every month, the Tax page prepares PPh 21 withholding slips to import into Coretax (BPMP, BP21 and A1) plus an Excel recap for the monthly return.
url: https://hris.logixbase.com/docs/en/tax-filing
lang: en
updated: 2026-10-14
alternate: https://hris.logixbase.com/docs/tax-filing.md
---

# File PPh 21 through Coretax

> Every month, the Tax page prepares PPh 21 withholding slips to import into Coretax (BPMP, BP21 and A1) plus an Excel recap for the monthly return.

Once a month's payroll is calculated and paid, the PPh 21 you withheld still has to be reported per worker in Coretax. The **Payroll › Tax** page (*Pajak*) prepares it from the payslips you already have: XML files you import straight into Coretax, and an Excel recap for you or your accountant to check. Nothing is retyped.

## Before you start

- The **company NPWP** is filled in under **Pengaturan › Perusahaan & Lokasi** (Settings › Company & locations) — the old 15-digit format (01.234.567.8-901.000) or 16 digits. Without it the Coretax files cannot be made. The head-office NITKU is built for you: the 16-digit NPWP + 000000.
- Every worker's **16-digit NIK** is correct in their employee record. Coretax refuses a slip without a valid NIK; workers without one are listed under **Needs completing** (*Perlu dilengkapi*).
- The month's payroll is **calculated** (ideally also **paid**). Unpaid slips are still included, marked *not yet paid*.
- You are an Admin, HR Manager or Finance — with permission to view payroll **and** to view the **employee NIK** (*NIK karyawan (KTP)*). Every slip carries an NIK, so without that permission the Tax page and its downloads are refused; ask an admin to add it to your position under **Pengaturan › Posisi & Hak Akses** (Settings › Positions & access). Every time the page is opened and every file downloaded is recorded in the audit log.

## Slip types

| File | For whom | Basis |
|---|---|---|
| **BPMP** | Permanent employees on a monthly salary, January–November | TER rate × the month's gross (code 21-100-01) |
| **BP21** | Non-permanent workers on a daily or hourly wage, paid monthly | TER rate × gross (code 21-100-35) |
| **BP21** | Non-employees (**Kategori Pajak: Bukan pegawai**) | Article 17 rates × 50% of gross (code of your choice) |
| **A1** | Permanent employees in their last tax period: December, or the month they leave | The year's gross summary; Coretax sets the year's tax |

Several periods in one month (for example a salary period and a bonus period) become one slip per worker, as Coretax requires.

## Steps: file one tax month

1. Open **Payroll › Tax** and pick the **tax month** (month and year). The page shows every slip for that month.
2. Read the **warnings** above the tables — workers without an NIK, slips not yet paid, or slips from two periods whose dates overlap, including when the other period sits in another tax month (for example a period deleted after it was paid and made again under a different month). The warning names both periods and their tax months — check it is not a double payment.
3. Download the **Excel recap** to check. The **Difference** column (*Selisih*) shows where the PPh withheld on the slip differs from what Coretax will compute.
4. Download the **BPMP**, **BP21** and/or **A1 for Coretax** files (each button is active only when there are slips of that type).
5. In Coretax: **eBupot → BPMP / BP 21 / BPA1 → Import Data**, choose the XML file, check the result in **XML Monitoring**, then **Issue** (*Terbitkan*).
6. Then create the billing code, pay, and file the monthly PPh 21 return (SPT Masa) in Coretax as usual.

> **Deadlines:** pay by the **15th** and report by the **20th** of the following month. If that day is a holiday it moves to the next working day. The Tax page shows the dates for the month you pick.

## The Difference column

The XML files carry no tax amount — Coretax computes it from the gross and the rate. So the recap shows both figures side by side: **PPh withheld (slip)** and **PPh per Coretax**. A Rp1 difference is rounding and is ignored. A larger one usually means:

- the month was priced the old (annualised) way, before the company used TER rates — the Tax page shows a warning of its own for such a month; check it with a tax consultant;
- the worker had no NIK or NPWP when payroll ran, so 20% more was withheld.

Check differences before issuing the slips in Coretax.

## Non-employees (bukan pegawai)

Workers marked **Kategori Pajak: Bukan pegawai** (tax category: non-employee) are withheld as non-employees: Article 17 rates on 50% of gross, with no PTKP and no year-end settlement. A month's payments are added together. Mark only partners or professionals with no employment relationship — casual daily workers (*Freelance*) stay on the TER rate. When there are non-employees, the Tax page shows a **Kode objek pajak bukan pegawai** (non-employee tax object code) choice — for example 21-100-20 (other service providers), 21-100-07 (professionals) or 21-100-18 (teachers and trainers).

## A1 at year end or when someone leaves

For December, and for the last month of an employee who resigns or is dismissed, permanent employees get an **A1** instead of a BPMP. The A1 file holds the year's salary, allowances, bonus/THR, insurance premiums the company paid, and JHT/JP contributions. Coretax fills in the PPh already withheld from the January–November BPMPs, so make sure those have been issued.

If the company started using this system mid-year, the earlier months are not on record; the A1 is flagged and those months' income needs completing in Coretax before you issue it.

An A1 is also flagged when its last tax period did not work out the year's PPh 21 — for example a December period processed before the earlier months were all in. Its **PPh for the year** column then reads *not calculated* (*belum dihitung*): recalculate that period if it is not paid yet, or check the under- or over-payment Coretax computes before you issue it. An A1 whose annual PPh 21 is genuinely zero (a year's pay under the PTKP threshold) is not flagged.

## Not covered yet

- Foreign workers (BP26) and daily workers paid per day (not monthly).
- Creating the billing code, paying, and submitting the SPT Masa — still done in Coretax.
