# Mengintegrasikan Penggajian dengan ERP Kustom: Dari Timesheet hingga Payslip dan Pelaporan Pajak

> Panduan praktis membangun integrasi penggajian di ERP kustom — menghubungkan data HR, kehadiran, dan timesheet ke pembuatan payslip otomatis dan pelaporan pajak Indonesia.

URL: https://www.matthewswong.com/id/blog/erp-payroll-integration-hr/

- Author: Matthews Wong (https://www.matthewswong.com/id/about/)
- Published: 2025-06-10
- Updated: 2025-06-10
- Category: ERP

Integrasi HRIS menghilangkan entri data manual, kesalahan, dan risiko kepatuhan dengan menghubungkan platform HR dengan penggajian, tunjangan, dan sistem bisnis lainnya. Untuk UKM Indonesia, penggajian adalah salah satu modul yang paling kritis secara operasional — kesalahan berarti karyawan tidak puas dan potensi pelanggaran hukum ketenagakerjaan. Saya telah melihat perusahaan Indonesia menghabiskan 3-5 hari per bulan untuk pemrosesan penggajian menggunakan kombinasi file Excel dan transfer bank manual.

## Model Data Penggajian

Penggajian Indonesia memiliki komponen spesifik yang harus dimodelkan dengan benar: Gaji Pokok, Tunjangan Jabatan, Tunjangan Makan, Tunjangan Transport, Uang Lembur, THR (Tunjangan Hari Raya), dan berbagai potongan (BPJS Kesehatan, BPJS Ketenagakerjaan, PPh 21, potongan keterlambatan/absensi). Setiap komponen memiliki perlakuan pajak berbeda.

### Integrasi Kehadiran dan Lembur

Modul penggajian yang saya bangun membaca data kehadiran dari tiga sumber yang mungkin: mesin kehadiran biometrik (via API atau impor CSV), persetujuan timesheet di modul proyek, atau entri manual oleh HR. Rekaman kehadiran diagregasi per karyawan per bulan untuk menghitung: total hari kerja, keterlambatan, absensi tanpa izin, dan jam lembur (jam di luar 8 per hari atau 40 per minggu, dibayar 1,5x atau 2x per UU Ketenagakerjaan).

> Dari pengalaman saya membangun sistem ERP sebagai konsultan ERP lepas (freelance): selalu implementasikan simulasi payroll run sebelum payroll aktual. Biarkan manajer HR menjalankan komputasi penuh dan meninjau payslip sebelum pembayaran apa pun dipicu. Saya menyebut ini 'dry run' — menghasilkan semua payslip dengan status DRAFT dan laporan pengecualian. Dry run adalah fitur bernilai tertinggi tunggal dalam modul penggajian.

## Perhitungan Pajak PPh 21

Perhitungan PPh 21 di Indonesia kompleks: menggunakan struktur tarif progresif (5%, 15%, 25%, 30%, 35%), memperhitungkan PTKP (ambang batas penghasilan tidak kena pajak berdasarkan status perkawinan dan tanggungan), dan berbeda untuk karyawan tetap. Sistem yang saya bangun mengimplementasikan metode Anualisasi yang dipersyaratkan oleh regulasi pajak Indonesia: gaji bulanan dianualisasi, pajak dihitung atas jumlah tahunan, kemudian dibagi 12 untuk pemotongan bulanan.

### Iuran BPJS

Iuran BPJS Kesehatan dan BPJS Ketenagakerjaan wajib bagi semua karyawan. BPJS Kesehatan: 4% pemberi kerja + 1% karyawan dari gaji (dibatasi pada batas premi BPJS). BPJS Ketenagakerjaan: JHT 3,7% pemberi kerja + 2% karyawan, JKK 0,24-1,74% pemberi kerja tergantung kelas risiko usaha, JKM 0,3% pemberi kerja, JP 2% pemberi kerja + 1% karyawan. Persentase ini bersifat regulasi dan harus diperbarui setiap kali BPJS menerbitkan tarif baru.

> **Peringatan: Koreksi Penggajian Retroaktif**

> Ketika kesalahan penggajian ditemukan setelah pembayaran — rekaman kehadiran yang terlewat, tier gaji yang salah, batas BPJS yang tidak diperbarui — koreksi harus ditangani dengan hati-hati. Jangan pernah hapus payroll run yang sudah dibayar. Sebagai gantinya, buat payroll run penyesuaian yang hanya menyertakan karyawan yang terpengaruh dan posting jumlah koreksi. Saya juga memiliki klien yang mencoba mengurangi kelebihan pembayaran melalui potongan besar tunggal dari payslip berikutnya — ini melanggar UU Ketenagakerjaan yang membatasi potongan hingga 50% gaji bersih.

## Bagaimana Saya Mendekati Ini

Modul penggajian adalah NestJS service yang mengorkestrasikan: PayrollComputationService, TaxCalculationService (PPh 21 dan BPJS), PayslipGenerationService (membuat PDF payslip via Puppeteer), dan DisbursementService (menghasilkan file transfer bank dalam format transfer massal BCA atau Mandiri).

## Pembuatan dan Distribusi Payslip

Setiap karyawan mendapatkan PDF payslip yang dihasilkan oleh Puppeteer dari template HTML. Template menampilkan: detail karyawan, komponen gaji, potongan, gaji bersih, dan kode QR yang mengarah ke payslip online untuk verifikasi keaslian. Payslip disimpan di Google Cloud Storage dengan signed URL khusus karyawan.

## Pelaporan Pajak Tahunan (SPT Tahunan)

Karyawan Indonesia membutuhkan Bukti Potong PPh 21 setiap tahun untuk mengajukan SPT Tahunan. Sistem yang saya bangun menghasilkan dokumen Bukti Potong untuk semua karyawan di akhir tahun: total penghasilan bruto, total PPh 21 yang dipotong, NPWP pemberi kerja dan karyawan. Ini diekspor dalam format XML yang diperlukan oleh e-SPT, aplikasi pengarsipan DJP. Fitur ini saja menghemat 2-3 hari kerja tim HR setiap tahun.

## Sumber & Bacaan Lebih Lanjut

- Select Software Reviews — Payroll Integration Benefits & Best Practices — https://www.selectsoftwarereviews.com/blog/payroll-integration
- APIdecks — A Guide to HRIS Integrations: Best Practices and Trends for 2026 — https://www.apideck.com/blog/a-guide-to-hris-integrations-best-practices-use-cases-and-trends-for-2025
- ERP Software Blog — ERP for HR: Improve Your Payroll and Employee Management — https://erpsoftwareblog.com/2025/04/erp-for-hr-improve-your-payroll-and-employee-management/

> **Key takeaway:** Payroll adalah integrasi ERP dengan toleransi kesalahan paling kecil, karena angka yang salah terlihat oleh semua karyawan di hari yang sama. Menghubungkan timesheet, slip gaji dan pelaporan pajak dalam satu alur menghapus input ulang manual yang biasanya menjadi sumber kesalahan payroll di UKM Indonesia.

## Source links

- https://www.selectsoftwarereviews.com/blog/payroll-integration
- https://www.apideck.com/blog/a-guide-to-hris-integrations-best-practices-use-cases-and-trends-for-2025
- https://erpsoftwareblog.com/2025/04/erp-for-hr-improve-your-payroll-and-employee-management/

## FAQ

### Mengapa 'dry run' sebelum pencairan gaji sangat penting?

Dry run menghasilkan semua payslip dalam status DRAFT beserta laporan pengecualian — menandai karyawan dengan potongan tidak wajar, lembur di atas ambang batas, atau kenaikan gaji yang belum disetujui. Ini memungkinkan manajer HR meninjau dan memperbaiki kesalahan sebelum dana apa pun ditransfer. Fitur ini disebut sebagai fitur bernilai tertinggi dalam modul penggajian karena menangkap kesalahan sebelum pencairan menghindari koreksi retroaktif yang mahal.

### Bagaimana sistem menghitung PPh 21?

Sistem menggunakan metode Anualisasi yang dipersyaratkan regulasi pajak Indonesia: gaji bruto bulanan dianualisasi, PPh 21 dihitung atas jumlah tahunan menggunakan struktur tarif progresif (5%, 15%, 25%, 30%, 35%), kemudian dibagi 12 untuk mendapatkan pemotongan bulanan. PTKP berdasarkan status perkawinan dan tanggungan juga diperhitungkan. Hasilnya diuji terhadap kalkulator DJP sendiri di setiap payroll run untuk memastikan kepatuhan.

### Mengapa persentase iuran BPJS harus disimpan di tabel konfigurasi, bukan di-hardcode?

Tarif BPJS Kesehatan dan BPJS Ketenagakerjaan ditetapkan oleh regulasi dan dapat diperbarui kapan saja BPJS menerbitkan tarif baru. Meng-hardcode persentase berarti perubahan tarif membutuhkan deployment kode; menyimpannya di tabel konfigurasi memungkinkan administrator HR memperbarui nilai tanpa perlu rilis baru. Ini sangat penting untuk beberapa komponen BPJS Ketenagakerjaan yang tarifnya berbeda-beda berdasarkan kelas risiko usaha.

### Bagaimana cara menangani koreksi penggajian yang ditemukan setelah pencairan?

Post ini menyarankan untuk tidak pernah menghapus payroll run yang sudah dibayar. Sebagai gantinya, buat payroll run penyesuaian yang hanya menyertakan karyawan yang terpengaruh, posting jumlah koreksi, dan tautkan ke run asli untuk jejak audit. Selain itu, memotong kelebihan pembayaran melalui potongan besar tunggal dari payslip berikutnya dilarang oleh UU Ketenagakerjaan, yang membatasi total potongan hingga 50% gaji bersih.

### Apa yang dihasilkan sistem untuk pelaporan pajak tahunan, dan berapa waktu yang dihemat?

Di akhir tahun, sistem menghasilkan dokumen Bukti Potong PPh 21 untuk setiap karyawan, mencakup total penghasilan bruto, total PPh 21 yang dipotong, serta NPWP pemberi kerja dan karyawan. Dokumen ini diekspor dalam format XML yang diperlukan oleh e-SPT, aplikasi pengarsipan pajak DJP. Fitur ini saja menghemat perkiraan 2–3 hari kerja tim HR setiap tahun dan memastikan angka Bukti Potong sesuai dengan catatan setoran PPh 21 perusahaan.

---

- HTML version: https://www.matthewswong.com/id/blog/erp-payroll-integration-hr/
- English: https://www.matthewswong.com/en/blog/erp-payroll-integration-hr/
- Site index for agents: https://www.matthewswong.com/llms.txt
- Sitemap: https://www.matthewswong.com/sitemap.xml
- API description (OpenAPI): https://www.matthewswong.com/openapi.json
