Setup Komponen Gaji
Melihat Komponen Gaji
Buka menu Penggajian > Komponen Gaji.

Jenis Komponen
| Tipe | Contoh | Pengaruh ke Gaji |
|---|---|---|
| Pendapatan | Gaji Pokok, Tunjangan | Menambah |
| Potongan | BPJS Karyawan, PPh 21 | Mengurangi |
Menambah Komponen
- Klik Komponen Baru

- Isi:
- Nama komponen
- Tipe (Pendapatan/Potongan)
- Basis perhitungan (Fixed/Percentage)
- Kena pajak (Ya/Tidak)
- Klik Simpan
Komponen Standar (dari Seed)
Pendapatan:
- Gaji Pokok
- Tunjangan Jabatan
- Tunjangan Kehadiran
- Tunjangan Makan
- Tunjangan Transport
Potongan:
- BPJS Kesehatan (Karyawan)
- BPJS Ketenagakerjaan JHT (Karyawan)
- BPJS Ketenagakerjaan JP (Karyawan)
- PPh 21
Kelola Karyawan
Melihat Daftar Karyawan
Buka menu Penggajian > Karyawan.

Menambah Karyawan
- Klik Karyawan Baru

- Isi data:
Data Pribadi:
- NIK (Nomor Induk Karyawan)
- Nama lengkap
- Email, telepon, alamat
Data Pajak:
- NPWP
- Status PTKP
Data Kepegawaian:
- Jabatan, departemen
- Tanggal bergabung
- Tipe (Tetap/Kontrak)
Data Bank:
- Nama bank
- Nomor rekening
Data BPJS:
- No. BPJS Kesehatan
- No. BPJS Ketenagakerjaan
- Klik Simpan
Assign Komponen Gaji ke Karyawan
- Buka detail karyawan
- Tab Komponen Gaji
- Klik Tambah Komponen
- Pilih komponen, isi nilai, tanggal efektif, dan tanggal berakhir (opsional)
- Klik Simpan
Satu komponen bisa di-assign lebih dari satu kali ke karyawan yang sama, selama periode tidak tumpang tindih. Ini berguna untuk mencatat perubahan gaji:
- Gaji Pokok Rp 5.000.000 (1 Jan 2025 – 30 Apr 2025)
- Gaji Pokok Rp 6.000.000 (1 Mei 2025 – seterusnya)
Jika tanggal berakhir tidak diisi, assignment berlaku tanpa batas waktu. Sistem akan menolak assignment baru yang periodenya tumpang tindih dengan assignment yang sudah ada.
BPJS
Tarif BPJS 2024
BPJS Kesehatan:
| Pihak | Tarif | Batas UMR |
|---|---|---|
| Perusahaan | 4% | Maks 12 juta |
| Karyawan | 1% | Maks 12 juta |
BPJS Ketenagakerjaan:
| Program | Perusahaan | Karyawan |
|---|---|---|
| JHT | 3.7% | 2% |
| JKK | 0.24-1.74% | - |
| JKM | 0.3% | - |
| JP | 2% | 1% |
Kalkulator BPJS
Buka menu Penggajian > Kalkulator BPJS.

- Masukkan gaji pokok
- Sistem menghitung:
- BPJS Kes (perusahaan + karyawan)
- BPJS TK (JHT, JKK, JKM, JP)
- Total beban perusahaan
- Total potongan karyawan
PPh 21 Karyawan
Melihat Daftar Karyawan
Buka menu Penggajian > Karyawan.

Menambah Karyawan
- Klik Karyawan Baru

- Isi data:
Data Pribadi:
- NIK (Nomor Induk Karyawan)
- Nama lengkap
- Email, telepon, alamat
Data Pajak:
- NPWP
- Status PTKP
Data Kepegawaian:
- Jabatan, departemen
- Tanggal bergabung
- Tipe (Tetap/Kontrak)
Data Bank:
- Nama bank
- Nomor rekening
Data BPJS:
- No. BPJS Kesehatan
- No. BPJS Ketenagakerjaan
- Klik Simpan
Assign Komponen Gaji ke Karyawan
- Buka detail karyawan
- Tab Komponen Gaji
- Klik Tambah Komponen
- Pilih komponen, isi nilai, tanggal efektif, dan tanggal berakhir (opsional)
- Klik Simpan
Satu komponen bisa di-assign lebih dari satu kali ke karyawan yang sama, selama periode tidak tumpang tindih. Ini berguna untuk mencatat perubahan gaji:
- Gaji Pokok Rp 5.000.000 (1 Jan 2025 – 30 Apr 2025)
- Gaji Pokok Rp 6.000.000 (1 Mei 2025 – seterusnya)
Jika tanggal berakhir tidak diisi, assignment berlaku tanpa batas waktu. Sistem akan menolak assignment baru yang periodenya tumpang tindih dengan assignment yang sudah ada.
Kapan Menggunakan Fitur Payroll?
Gunakan Fitur Payroll Untuk:
✅ Gaji karyawan tetap/kontrak dengan kewajiban BPJS ✅ Perusahaan wajib potong PPh 21 ✅ Butuh bukti potong 1721-A1 untuk karyawan ✅ Karyawan perlu akses slip gaji online ✅ Tracking komponen gaji detail (tunjangan, potongan)
Gunakan Transaksi "Bayar Beban Gaji" Untuk:
✅ Bayar kontraktor lepas (tanpa BPJS/PPh 21) ✅ Bonus di luar payroll reguler ✅ Penarikan dana pemilik (bukan gaji karyawan) ✅ Pembayaran ad-hoc yang tidak perlu slip gaji
Perbedaan Akuntansi
| Aspek | Fitur Payroll | Transaksi Simple |
|---|---|---|
| Jurnal | 5 baris (pisah hutang) | 2 baris (langsung bayar) |
| Beban | Gaji bruto + BPJS perusahaan | Nominal transfer saja |
| Kewajiban | Hutang Gaji, BPJS, PPh 21 | Tidak ada hutang |
| Kalkulasi | Otomatis BPJS + PPh 21 | Manual |
| Tax compliance | Otomatis hitung & lapor | Tanggung jawab manual |
| Slip gaji | Generate otomatis | Tidak ada |
| Bukti potong | Generate 1721-A1 | Tidak ada |
Contoh Jurnal: Payroll vs Simple
Fitur Payroll (otomatis):
Dr. Beban Gaji 30.000.000
Dr. Beban BPJS Perusahaan 3.432.000
Cr. Hutang Gaji 26.250.000
Cr. Hutang BPJS 6.432.000
Cr. Hutang PPh 21 750.000
Transaksi Simple:
Dr. Beban Gaji 10.000.000
Cr. Bank 10.000.000
Kesimpulan: Gunakan fitur payroll untuk karyawan tetap. Gunakan transaksi simple hanya untuk pembayaran ad-hoc yang tidak perlu tracking BPJS/PPh 21.
Proses Penggajian
Melihat Daftar Payroll
Buka menu Penggajian > Payroll.

Membuat Payroll Baru
- Klik Payroll Baru

- Isi:
- Periode (bulan/tahun)
- Tanggal pembayaran
- Klik Buat
- Sistem generate slip gaji untuk semua karyawan aktif
Workflow Payroll
DRAFT → CALCULATED → APPROVED → POSTED
| Status | Aksi |
|---|---|
| DRAFT | Edit komponen individual |
| CALCULATED | Review perhitungan |
| APPROVED | Siap bayar |
| POSTED | Jurnal gaji dibuat |
Melihat Detail Payroll
Klik payroll untuk melihat detail:

Informasi per karyawan:
- Gaji pokok
- Tunjangan (jabatan, kehadiran, makan, transport)
- Total pendapatan (bruto)
- BPJS Karyawan
- PPh 21
- Total potongan
- Gaji bersih (take home pay)
Posting Payroll
- Pastikan status APPROVED
- Klik Posting
- Sistem membuat jurnal:
Dr. Beban Gaji xxx Dr. Beban BPJS Perusahaan xxx Cr. Hutang Gaji xxx Cr. Hutang BPJS xxx Cr. Hutang PPh 21 xxx ← hanya jika PPh 21 > 0
Catatan: Baris jurnal dengan nilai nol otomatis dilewatkan. Untuk karyawan UMKM dengan gaji rendah (PPh 21 = 0), jurnal hanya berisi 4 baris tanpa Hutang PPh 21.
Membayar Gaji
Setelah transfer ke rekening karyawan:
- Buka menu Transaksi > Transaksi Baru
- Pilih template Bayar Gaji
- Isi jumlah total gaji bersih
- Posting
Jurnal:
Dr. Hutang Gaji xxx
Cr. Bank xxx
Pembayaran Kewajiban Payroll
Setelah posting payroll, ada 3 kewajiban yang harus dibayar:
1. Bayar Gaji ke Karyawan
Kapan: 1-5 hari kerja setelah akhir bulan Template: Bayar Hutang Gaji
- Buka menu Transaksi > Transaksi Baru
- Pilih template Bayar Hutang Gaji
- Isi:
- Tanggal pembayaran
- Jumlah: Total gaji bersih (dari payroll detail)
- Deskripsi: "Transfer gaji [bulan] [tahun]"
- Referensi: Nomor transaksi bank
- Pilih akun bank
- Klik Simpan & Posting
Jurnal:
Dr. Hutang Gaji xxx
Cr. Bank xxx
2. Bayar BPJS ke Institusi
Kapan: Maksimal tanggal 10 bulan berikutnya Template: Bayar Hutang BPJS
- Buka menu Transaksi > Transaksi Baru
- Pilih template Bayar Hutang BPJS
- Isi:
- Tanggal pembayaran (maks tgl 10)
- Jumlah: Total BPJS (perusahaan + karyawan)
- Deskripsi: "Pembayaran BPJS [bulan] [tahun]"
- Referensi: Nomor billing BPJS
- Pilih akun bank
- Klik Simpan & Posting
Jurnal:
Dr. Hutang BPJS xxx
Cr. Bank xxx
Catatan: Bayar ke BPJS Kesehatan dan BPJS Ketenagakerjaan melalui e-DABU atau virtual account.
3. Setor PPh 21 ke Kas Negara
Catatan: Jika PPh 21 = 0 (semua karyawan di bawah threshold TER), tidak ada hutang PPh 21 yang perlu disetor. SPT Masa PPh 21 nihil tetap wajib dilaporkan.
Kapan: Maksimal tanggal 10 bulan berikutnya Template: Setor PPh 21
- Buka menu Transaksi > Transaksi Baru
- Pilih template Setor PPh 21
- Isi:
- Tanggal penyetoran (maks tgl 10)
- Jumlah: Total PPh 21 yang dipotong
- Deskripsi: "Penyetoran PPh 21 [bulan] [tahun]"
- Referensi: Nomor bukti setor (BPN)
- Pilih akun bank
- Klik Simpan & Posting
Jurnal:
Dr. Hutang PPh 21 xxx
Cr. Bank xxx
Catatan: Bayar melalui e-Billing DJP, lalu lapor SPT Masa PPh 21 maks tanggal 20.
Timeline Kewajiban Payroll
| Tanggal | Aktivitas | Template | Deadline |
|---|---|---|---|
| 25-31 | Posting payroll (jurnal dibuat) | Post Gaji Bulanan | Akhir bulan |
| 1-5 | Transfer gaji ke rekening karyawan | Bayar Hutang Gaji | - |
| Maks 10 | Bayar BPJS ke institusi | Bayar Hutang BPJS | Wajib |
| Maks 10 | Setor PPh 21 ke kas negara | Setor PPh 21 | Wajib |
| Maks 20 | Lapor SPT Masa PPh 21 | (Eksternal DJP) | Wajib |
Layanan Mandiri Karyawan
Metode Perhitungan: TER (PMK 168/2023)
Aplikasi menggunakan metode TER (Tarif Efektif Rata-rata) sesuai PMK 168/2023, berlaku mulai Januari 2024.
Januari–November: PPh 21 bulanan = Gaji Bruto × Tarif TER
Desember: Rekonsiliasi tahunan — PPh 21 Desember = PPh 21 terutang setahun (tarif progresif PP 58/2023) dikurangi total PPh 21 Jan–Nov (TER).
Kategori TER
Status PTKP menentukan kategori TER:
| Kategori | Status PTKP |
|---|---|
| A | TK/0, TK/1, K/0 |
| B | TK/2, TK/3, K/1, K/2 |
| C | K/3, K/I/0, K/I/1, K/I/2, K/I/3 |
Tarif TER ditentukan berdasarkan bracket penghasilan bruto bulanan dalam kategori tersebut (lihat PMK 168/2023 Lampiran A/B/C).
PPh 21 = 0 untuk Gaji Rendah
Untuk karyawan dengan gaji bruto di bawah batas bracket TER terendah, tarif TER = 0% sehingga PPh 21 = Rp 0. Ini umum terjadi di UMKM dengan gaji karyawan di bawah Rp 5.400.000/bulan (Kategori A) atau Rp 6.200.000/bulan (Kategori B).
Saat posting payroll dengan PPh 21 = 0, sistem otomatis melewatkan baris jurnal Hutang PPh 21 karena jurnal dengan nilai nol tidak bermakna. Jurnal yang dihasilkan hanya berisi baris dengan nilai > 0.
Kewajiban setor PPh 21 dan lapor SPT Masa PPh 21 tetap berlaku meskipun nilainya nihil.
Contoh Perhitungan
Karyawan dengan status K/2, gaji bruto Rp 11.253.000:
- Kategori TER: B
- Tarif TER: 2,50%
- PPh 21 bulanan: Rp 11.253.000 × 2,50% = Rp 281.325
Kalkulator PPh 21
Buka menu Penggajian > Kalkulator PPh 21.

- Masukkan:
- Gaji bruto bulanan
- Status PTKP
- Sistem menghitung:
- Kategori TER (A / B / C)
- Tarif TER berdasarkan bracket penghasilan
- PPh 21 bulanan (Bruto × Tarif TER)
Referensi
- PMK 168/2023 — Tarif Efektif Rata-rata PPh 21
- PP 58/2023 — Rekonsiliasi tahunan (tarif progresif)
- PTKP per status (lihat Perpajakan)
Bukti Potong PPh 21
Generate Bukti Potong Tahunan (1721-A1)
- Buka menu Penggajian > Bukti Potong
- Pilih tahun pajak
- Pilih karyawan (atau semua)
- Klik Generate
- Download PDF
Isi Bukti Potong
- Identitas pemotong (perusahaan)
- Identitas penerima (karyawan)
- Rincian penghasilan bruto
- BPJS dan biaya jabatan
- Penghasilan neto
- PTKP
- PKP
- PPh 21 terutang
- PPh 21 dipotong
Contoh Lengkap: Proses Payroll Januari 2025
Skenario
Perusahaan IT memiliki 3 karyawan:
- Budi Santoso - Developer, gaji Rp 10.000.000
- Dewi Lestari - Designer, gaji Rp 10.000.000
- Agus Wijaya - Project Manager, gaji Rp 10.000.000
Data Payroll
| Item | Rumus | Jumlah |
|---|---|---|
| Gaji Bruto | 3 × Rp 10.000.000 | Rp 30.000.000 |
| BPJS Perusahaan | Kes 4% + TK (JHT 3.7%, JKK 0.24%, JKM 0.3%, JP 2%) | Rp 3.432.000 |
| BPJS Karyawan | Kes 1% + JHT 2% + JP 1% | Rp 3.000.000 |
| PPh 21 | Progresif setelah PTKP | Rp 750.000 |
| Gaji Bersih | Bruto - BPJS Karyawan - PPh 21 | Rp 26.250.000 |
Langkah 1: Posting Payroll (31 Januari 2025)
- Buka Penggajian > Payroll
- Klik payroll bulan Januari
- Pastikan status APPROVED
- Klik Posting
Jurnal Otomatis:
Dr. Beban Gaji 30.000.000
Dr. Beban BPJS Perusahaan 3.432.000
Cr. Hutang Gaji 26.250.000
Cr. Hutang BPJS 6.432.000 (perusahaan + karyawan)
Cr. Hutang PPh 21 750.000
Penjelasan:
- Beban total perusahaan: Rp 33.432.000 (masuk P&L bulan Januari)
- Kewajiban total: Rp 33.432.000 (hutang di neraca)
- Uang belum keluar dari bank (masih status hutang)
Langkah 2: Bayar Gaji (1 Februari 2025)
- Buka Transaksi > Transaksi Baru
- Pilih template Bayar Hutang Gaji
- Isi:
- Jumlah: Rp 26.250.000
- Deskripsi: "Transfer gaji Januari 2025"
- Pilih Bank BCA
- Klik Simpan & Posting
Jurnal:
Dr. Hutang Gaji 26.250.000
Cr. Bank BCA 26.250.000
Efek:
- ✅ Hutang Gaji lunas
- ✅ Karyawan terima transfer
- ⏳ Hutang BPJS masih Rp 6.432.000
- ⏳ Hutang PPh 21 masih Rp 750.000
Langkah 3: Bayar BPJS (10 Februari 2025)
- Buka Transaksi > Transaksi Baru
- Pilih template Bayar Hutang BPJS
- Isi:
- Jumlah: Rp 6.432.000
- Deskripsi: "Pembayaran BPJS Januari 2025"
- Referensi: Nomor billing BPJS
- Pilih Bank BCA
- Klik Simpan & Posting
Jurnal:
Dr. Hutang BPJS 6.432.000
Cr. Bank BCA 6.432.000
Efek:
- ✅ Hutang BPJS lunas
- ✅ Kewajiban BPJS selesai
- ⏳ Hutang PPh 21 masih Rp 750.000
Langkah 4: Setor PPh 21 (10 Februari 2025)
- Buka Transaksi > Transaksi Baru
- Pilih template Setor PPh 21
- Isi:
- Jumlah: Rp 750.000
- Deskripsi: "Penyetoran PPh 21 Januari 2025"
- Referensi: Nomor BPN dari e-Billing
- Pilih Bank BCA
- Klik Simpan & Posting
Jurnal:
Dr. Hutang PPh 21 750.000
Cr. Bank BCA 750.000
Efek:
- ✅ Hutang PPh 21 lunas
- ✅ Semua kewajiban payroll selesai
Ringkasan Kas Keluar
| Tanggal | Item | Bank BCA | Status |
|---|---|---|---|
| 1 Feb | Transfer gaji | (Rp 26.250.000) | ✅ |
| 10 Feb | Bayar BPJS | (Rp 6.432.000) | ✅ |
| 10 Feb | Setor PPh 21 | (Rp 750.000) | ✅ |
| Total | Kas Keluar | (Rp 33.432.000) | - |
Validasi: Total kas keluar = Total beban payroll ✅ (akuntansi akrual benar!)
Langkah 5: Lapor SPT Masa PPh 21 (20 Februari 2025)
- Login ke DJP Online (pajak.go.id)
- Pilih e-Filing > SPT Masa PPh 21
- Input data dari aplikasi:
- Jumlah pegawai: 3 orang
- PPh 21 dipotong: Rp 750.000
- PPh 21 disetor: Rp 750.000 (lihat dari jurnal Setor PPh 21)
- Nomor BPN: Dari referensi transaksi
- Submit SPT
Catatan: Aplikasi belum generate SPT otomatis, input manual ke DJP Online.
Tips Penggajian
REST API tersedia untuk integrasi penggajian dengan sistem eksternal.
Komponen Gaji
GET /api/salary-components — daftar komponen aktif
POST /api/salary-components — buat komponen baru
PUT /api/salary-components/{id} — update komponen
DELETE /api/salary-components/{id} — nonaktifkan komponen
Karyawan
GET /api/employees — daftar karyawan (filter: active, status)
POST /api/employees — buat karyawan
GET /api/employees/{id} — detail dengan komponen gaji
PUT /api/employees/{id} — update data karyawan
POST /api/employees/{id}/salary-components — assign komponen gaji (endDate opsional)
PUT /api/employees/{id}/salary-components/{componentId} — update assignment
Payroll Run
GET /api/payroll — daftar payroll (filter: year, status)
POST /api/payroll — buat payroll baru (DRAFT)
GET /api/payroll/{id} — detail dengan semua detail karyawan
POST /api/payroll/{id}/calculate — hitung PPh 21 (TER Jan-Nov / rekonsiliasi Des), set CALCULATED
POST /api/payroll/{id}/approve — set APPROVED
POST /api/payroll/{id}/post — posting ke jurnal
DELETE /api/payroll/{id} — hapus (hanya DRAFT)
1721-A1 dan Ringkasan PPh 21
GET /api/payroll/employees/{id}/1721-a1?year=2025 — data 1721-A1 per karyawan
GET /api/payroll/pph21/summary?year=2025 — ringkasan PPh 21 seluruh karyawan
Response 1721-A1 berisi:
- Data karyawan (NPWP, NIK, PTKP, masa kerja)
- Perhitungan (penghasilan bruto, biaya jabatan, neto, PTKP, PKP, PPh 21 terutang)
- Breakdown bulanan (gross salary dan PPh 21 per bulan)
Jadwal Payroll Otomatis
GET /api/payroll/schedule — lihat konfigurasi jadwal
POST /api/payroll/schedule — buat/update jadwal
DELETE /api/payroll/schedule — hapus jadwal
Request body:
{
"dayOfMonth": 28,
"baseSalary": 5000000,
"jkkRiskClass": 1,
"autoCalculate": true,
"autoApprove": false,
"active": true
}
dayOfMonth: Tanggal setiap bulan untuk auto-create payroll (1–28)baseSalary: Gaji pokok yang digunakan untuk kalkulasijkkRiskClass: Kelas risiko JKK (1–5)autoCalculate: Otomatis hitung BPJS + PPh 21 setelah createautoApprove: Otomatis approve setelah kalkulasi- Posting selalu manual — posting berarti pembayaran sudah dilakukan
Scheduler berjalan harian pukul 06:30. Saat startup, sistem juga memeriksa bulan sebelumnya dan bulan berjalan untuk mengejar ketinggalan jika server sempat mati.
Skenario: Retrofit Data Payroll 2025
- Buat komponen gaji:
POST /api/salary-components(GAJI_POKOK, EARNING, isTaxable=true) - Buat karyawan:
POST /api/employees(nama, NPWP, NIK, PTKP, hireDate) - Assign komponen dengan dua periode:
POST /api/employees/{id}/salary-components(amount=11253000, effectiveDate=2025-01-01, endDate=2025-04-30)POST /api/employees/{id}/salary-components(amount=5000000, effectiveDate=2025-05-01)
- Buat 12 payroll run:
POST /api/payroll(periode 2025-01 s/d 2025-12) - Hitung masing-masing:
POST /api/payroll/{id}/calculate - Generate 1721-A1:
GET /api/payroll/employees/{id}/1721-a1?year=2025
Autentikasi: Bearer token dengan scope tax-export:read.