Klaim Pengeluaran
Klaim pengeluaran adalah cara Anda mengganti uang karyawan yang sudah ia keluarkan atas nama perusahaan — taksi ke pertemuan dengan klien, hotel saat kunjungan lokasi, perlengkapan kantor yang dibeli dengan kartu pribadinya. Karyawan mencatat apa yang ia belanjakan dan melampirkan buktinya. Seorang approver memutuskan berapa yang benar-benar akan dibayar perusahaan. Setelah itu, klaim tersebut tercatat sebagai utang perusahaan kepada karyawan itu sampai Anda membayarnya.
Area yang sama juga menangani uang yang diserahkan sebelum pengeluarannya terjadi — kasbon, uang muka perjalanan dinas — yang Anda perhitungkan dengan sebuah klaim ketika orangnya kembali. Semuanya berada di workspace Expenses pada /app/expenses. Membayar klaim adalah pembayaran biasa, sama seperti membayar tagihan mana pun.
Yang mungkin Anda cari di halaman ini
- Mengajukan klaim atas uang yang sudah dikeluarkan karyawan
- Menyetujui klaim, atau memangkas nilai yang dibayarkan
- Benar-benar mencairkan klaim yang sudah disetujui
- Memberi uang muka di depan untuk perjalanan dinas, lalu memperhitungkannya
- Memperbaiki cost center atau project pada klaim yang terlanjur disubmit
- Menyiapkan klaim pengeluaran untuk pertama kali
- Mengetahui siapa yang boleh menyetujui, dan mengapa seseorang tidak bisa
- Melihat angkanya pada contoh nyata
- Memeriksa apa yang tidak dikerjakan GARP untuk aturan Indonesia
- Mencari tahu fungsi sebuah field pada formulirnya
- Mencari arti pesan error yang membuat Anda tertahan
Perlu Anda ketahui sebelum menyetujui apa pun: sebuah klaim pengeluaran adalah dokumen akuntansi, bukan sekadar formulir HR. GARP memperlakukannya seperti memperlakukan sebuah faktur. Men-submit klaim akan menulis jurnal ke buku besar — setiap baris pengeluaran dibebankan ke satu akun beban, dan totalnya dicatat sebagai utang kepada karyawan tersebut. Klaim ini membawa accounting dimension, ikut dalam rekonsiliasi bank, dan buku besarnya dapat ditulis ulang di kemudian hari. Approver sesungguhnya sedang menandatangani sebuah jurnal.
Mengajukan klaim beserta buktinya
- Buka
/app/expense-claimlalu klik Add Expense Claim, atau gunakan aplikasi mobile di/hrmsdan masuk ke Expense Claims. - Pilih From Employee. Company dan Currency terisi dari record karyawan, dan Payable Account dari Default Expense Claim Payable Account milik perusahaan. Tetapkan Posting Date.
- Di Expenses, tambahkan satu baris untuk setiap bukti: taksi Sari Dewi ke pertemuan dengan klien pada 12-03-2026, tipe Travel, Amount IDR 85.000. Default Account terisi dari claim type, dan Sanctioned Amount menyalin angka yang diklaim. Cost Center wajib diisi pada setiap baris; bila tidak, submit akan ditolak.
- Lampirkan foto buktinya — lewat area Attachments di sidebar bila Anda bekerja di browser, atau lewat bagian lampiran pada formulir mobile.
- Pilih Expense Approver lalu simpan. Approver akan diberi tahu dan dokumennya dibagikan kepadanya.
Biarkan Approval Status tetap Draft. Klaim tidak dapat disubmit selama masih Draft, jadi klaim yang berada pada status itu memang sedang menunggu.

Sebuah Expense Claim dengan satu baris pengeluaran.
Menyetujui klaim
- Buka klaimnya dari
/app/expense-claim, atau dari Team Claims di aplikasi mobile, yang menampilkan klaim draf milik karyawan lain yang mencantumkan Anda sebagai approver. - Sesuaikan Sanctioned Amount pada setiap baris yang nilainya Anda pangkas. Periksa setiap baris, bukan hanya totalnya.
- Setel Approval Status ke Approved atau Rejected, lalu submit.
Ada dua hal yang ditolak pada tahap ini. Men-submit selagi klaimnya masih Draft tidak akan berhasil. Dan Payable Account wajib diisi, kecuali Is Paid dicentang.
Membayar penggantian biaya
- Buka klaim yang sudah disubmit dan disetujui, lalu klik Create > Payment. Langkah ini membentuk sebuah Payment Entry bertipe Pay, party type Employee, dibayarkan ke Payable Account milik klaim, dengan klaim itu sebagai referensinya dan sisa tagihannya sudah dialokasikan lebih dulu.
- Pilih akun bank atau kasnya, periksa nominalnya, lalu submit. Total Amount Reimbursed ikut diperbarui, dan Status berubah menjadi Paid begitu grand total-nya tertutup.
- Gunakan View > Accounting Ledger untuk melihat jurnalnya, dan jalankan laporan Unpaid Expense Claim dari workspace Expenses untuk melihat apa saja yang masih terutang.
Beberapa hal yang perlu Anda ketahui soal pembayarannya:
- Pembayaran sebagian bersifat akumulatif. Nilai penggantian dihitung ulang dari setiap baris Payment Entry dan Journal Entry yang sudah disubmit dan menunjuk ke klaim tersebut. Membatalkan salah satunya akan menurunkan kembali angkanya dan mengembalikan statusnya ke Unpaid.
- Bila Make Payment via Journal Entry aktif di Accounts Settings, tombol yang sama justru membentuk sebuah Journal Entry bertipe Bank Entry. Pengaturan itu tersembunyi dan nonaktif secara bawaan, sehingga sebagian besar workspace mendapatkan Payment Entry.
- Untuk kas kecil, centang Is Paid dan pilih Mode of Payment sebelum submit, maka klaim akan membukukan sendiri pembayarannya. Klaim yang dibayar dengan cara ini adalah satu-satunya yang dapat dicocokkan oleh Bank Reconciliation Tool, dan hanya selama Clearance Date masih kosong serta mode of payment-nya memetakan ke rekening bank yang sedang direkonsiliasi.
Menerbitkan uang muka dan memperhitungkannya dengan klaim
- Di
/app/employee-advance, pilih karyawannya, tulis Purpose ("Site visit to Surabaya"), lalu isi Advance Amount dan Mode of Payment. Advance Account terisi dari Employee Advance Account pada record Employee; bila dibiarkan kosong, Default Employee Advance Account milik perusahaan yang dipakai saat submit. - Submit. Hanya role Employee dan Expense Approver yang punya izin sama sekali atas formulir Employee Advance, dan hanya Expense Approver yang dapat submit — berikan role tersebut kepada siapa pun yang mencairkan uang muka. Submit sama sekali tidak memposting jurnal akuntansi; uang muka hanyalah sebuah permintaan sampai ia benar-benar dibayar.
- Klik Create > Payment lalu submit Payment Entry-nya. Itulah yang mendebit advance account. Paid Amount dihitung ulang dari catatan pembayaran uang muka tersebut, dan Status berpindah dari Unpaid ke Paid.
- Setelah perjalanannya selesai, klik Create > Expense Claim pada uang muka tersebut. Klaim terbuka dengan uang muka sudah tercantum di Advances; memilih karyawan pada klaim yang masih baru memberi hasil yang sama.
- Tambahkan baris-baris pengeluarannya lalu submit. Nilai yang dialokasikan akan mengkredit Advance Account sehingga piutangnya terhapus, sekaligus mengurangi grand total yang tersisa untuk diganti.
- Untuk sisa uang yang tidak terpakai, gunakan Create > Return untuk membentuk Journal Entry yang mengkredit advance account terhadap kas atau bank Anda. Atau centang Repay Unclaimed Amount from Salary sebelum men-submit uang mukanya, lalu gunakan Create > Deduction from Salary untuk menerbitkan sebuah Additional Salary yang menarik kembali sisa itu pada slip gaji berikutnya — lihat Penggajian.
Create > Expense Claim pada sebuah uang muka akan mencentang Is Paid. GARP mencentang Is Paid setiap kali uang muka tersebut memiliki nilai terbayar, yang kemudian membuat Mode of Payment wajib diisi — bahkan ketika uang muka itu sudah menutup seluruh klaim dan tidak ada lagi yang perlu dibayar. Hilangkan centang Is Paid sebelum submit, kecuali Anda memang benar-benar menyerahkan uang tambahan.
Tombol Expense Claim baru muncul setelah uang mukanya terbayar penuh. Selama Paid Amount masih di bawah Advance Amount, yang Anda lihat adalah Payment — keduanya berbagi slot tombol yang sama. Bayar uang mukanya sampai lunas, atau klaimnya harus dimulai dari /app/expense-claim.
Memperbaiki klaim setelah Anda men-submit-nya
Begitu sebuah klaim disubmit, hampir tidak ada lagi isinya yang dapat diubah. Yang masih bisa:
- Project dan Cost Center — di header, di setiap baris pengeluaran, dan di setiap baris pajak
- Account Head — pada baris pajak
Begitu salah satunya Anda ubah, klaim tersebut membuat dan men-submit sebuah dokumen Repost Accounting Ledger yang menulis ulang jurnalnya. Ini hanya berjalan bila Expense Claim terdaftar pada tabel Allowed DocTypes di bagian Repost pada Accounts Settings (/app/accounts-settings). Bila tidak, Anda akan melihat pesan Expense Claim is not allowed to be reposted. You can enable it by adding it 'Allowed Doctype' table in Accounts Settings.
Tidak ada hal lain yang dapat diubah setelah submit. Batalkan lalu amend klaimnya sebagai gantinya.
Menyiapkan klaim pengeluaran untuk pertama kali
- Pada record Company, di tab HR & Payroll, setel dua akun:
- Default Expense Claim Payable Account — non-group, Payable, akun neraca, dalam mata uang klaim. Yang satu ini tidak pernah terisi otomatis untuk Anda, jadi setel sendiri.
- Default Employee Advance Account — non-group, bertipe Receivable. Yang ini terisi otomatis bila sudah ada akun bernama "Employee Advances".
- Buat record Expense Claim Type Anda. Lima jenis tersedia bawaan pada workspace baru — Calls, Food, Medical, Others, Travel — tetapi belum satu pun memiliki akun, jadi untuk masing-masing:
- Tambahkan satu baris Accounts per perusahaan berisi Default Account yang akan didebit. Daftarnya menawarkan akun Expense non-group milik perusahaan tersebut.
- Mencentang Deferred Expense Account mengubah daftar itu menjadi akun Asset, dan tidak melakukan apa pun selain itu.
- Dua baris untuk satu perusahaan ditolak dengan
Same Company is entered more than once, dan akun milik perusahaan lain denganAccount {0} does not match with Company {1}. - Isi juga Description. Deskripsi setiap baris pengeluaran diambil dari sana bila dibiarkan kosong, baik di browser maupun di mobile.
- Setel Expense Approver pada setiap record Employee, atau isi tabel Expense Approver pada setiap Department, lalu berikan role Expense Approver kepada pengguna tersebut — mengisi field itu pada Employee sudah melakukannya untuk Anda.
- Setel Employee Advance Account pada karyawan yang memerlukan buku besar selain bawaan perusahaan, di tab Salary pada record Employee.
- Tinjau tab Expenses pada HR Settings, termasuk Unlink Payment on Cancellation of Employee Advance, yang hampir pasti ingin Anda aktifkan.
- Pastikan cost center sudah tersedia, dan setiap Mode of Payment yang akan Anda pakai memiliki baris Mode of Payment Account dengan akun bawaan untuk perusahaan tersebut.
- Untuk mengoreksi cost center atau project setelah submit, tambahkan
Expense Claimke Allowed DocTypes di bagian Repost pada Accounts Settings.
Modul mana saja yang tersedia bergantung pada paket langganan — lihat Paket dan batasan.
Siapa yang boleh mengajukan dan siapa yang menyetujui
Siapa pun dengan role Employee dapat membuat dan mengubah klaim. Tetapi role tersebut tidak dapat men-submit klaim, dan tidak dapat mengubah Approval Status — field itu hanya dapat ditulis oleh HR Manager, HR User dan Expense Approver. Pemisahan itulah, bukan sebuah workflow, yang memisahkan pengajuan dari persetujuan.
| Role | Create | Write | Submit, Cancel, Amend, Delete | Mengisi Approval Status |
|---|---|---|---|---|
| Employee | ya | ya | tidak | tidak, hanya baca |
| Expense Approver | ya | ya | ya | ya |
| HR User | ya | ya | ya | ya |
| HR Manager | ya | ya | ya | ya |
Hanya HR Manager yang dapat mengekspor datanya. Siapa pun yang dapat membuka sebuah klaim dapat membaca Approval Status-nya; mereka hanya tidak dapat mengubahnya.
Sanctioned Amount tidak dilindungi izin. Approval Status adalah satu-satunya field yang dikunci untuk approver. Pengaju dengan role Employee dapat mengubah Sanctioned Amount pada baris mana pun yang boleh ia tulis. Yang benar-benar mencegah penyalahgunaan adalah bahwa ia tidak dapat mengisi Approval Status dan tidak dapat submit — jadi selalu periksa kolom sanctioned, bukan hanya kolom yang diklaim, sebelum Anda menyetujui.
Field Expense Approver mengambil kandidatnya dari dua sumber:
- Expense Approver yang disetel pada record Employee, di bagian Approvers
- setiap pengguna dalam tabel Expense Approver pada Department karyawan tersebut, menelusuri pohon departemen dari departemen karyawan itu sendiri sampai ke akar, dan melewati departemen yang dinonaktifkan
Bila kedua sumber itu tidak menghasilkan siapa pun, field ini memunculkan error alih-alih menampilkan daftar kosong. Anda akan melihat judul Expense Approver Missing dan pesan Please set Expense Approver for the Employee: {0}, yang diperpanjang dengan or for the Employee's Department: {0} bila karyawan tersebut memiliki departemen.
Menyimpan klaim akan membagikan dokumen itu kepada approver tersebut lengkap dengan hak Submit, dan memberi tahu Anda: Shared document with the user {0} with 'Submit' permission. Begitulah seorang atasan langsung yang tidak memegang role HR mana pun tetap dapat menyetujui. Bila Anda mengganti approver pada klaim yang sudah tersimpan, share sebelumnya dicabut. Mengisi Expense Approver pada record Employee juga otomatis menambahkan role Expense Approver kepada pengguna tersebut.
Ada dua pengaturan pada tab Expenses di HR Settings (/app/hr-settings) yang berpengaruh di sini:
- Expense Approver Mandatory In Expense Claim aktif secara bawaan, dan membuat field tersebut wajib diisi pada draf.
- Prevent self approval for expense claims even if user has permissions nonaktif secara bawaan. Bila Anda aktifkan, aksi Submit disembunyikan pada klaim draf milik Anda sendiri, dan bila Anda tetap berhasil melewati tombolnya, GARP menolak submit itu dengan
Self-approval for Expense Claims is not allowed. Pemeriksaan ini dilewati sepenuhnya bila Anda sudah mendefinisikan sebuah Workflow pada Expense Claim.
Ada dua notifikasi aplikasi mobile yang dikirim, dan diteruskan ke perangkat bila push notification diaktifkan:
- approver diberi tahu saat klaim pertama kali dibuat
- pengaju diberi tahu setiap kali Approval Status berubah menjadi Approved atau Rejected, kecuali bila approver-nya adalah pengaju itu sendiri
Draf juga menggerakkan angka pada sidebar di browser, yang menghitung setiap Expense Claim berstatus draf yang boleh Anda lihat.
Peringatan untuk approver hanya dikirim pada penyimpanan pertama. Bila Anda menyimpan klaim lalu mengganti approver-nya, approver baru tidak pernah diberi tahu — ia menerima share dokumennya, tetapi tanpa notifikasi. Tetapkan approver sebelum penyimpanan pertama.
Contoh kasus
Penggantian biaya yang sederhana
Sari Dewi di PT Maju Jaya mengajukan dua bukti tertanggal 12 Maret 2026: taksi senilai IDR 85.000 di bawah Travel, dan makan siang bersama klien senilai IDR 340.000 di bawah Food. Approver-nya membatasi makan bersama klien di angka IDR 250.000 dan memangkas baris kedua.
- Total Claimed Amount: 85.000 + 340.000 = IDR 425.000
- Total Sanctioned Amount: 85.000 + 250.000 = IDR 335.000
- Tanpa pajak dan tanpa uang muka, sehingga Grand Total = 335.000 + 0 − 0 = IDR 335.000
Saat disubmit dengan Approval Status Approved:
Dr Travel Expenses 85,000 (cost center: Head Office)
Dr Staff Welfare 250,000 (cost center: Head Office)
Cr Employee Reimbursements Payable 335,000 party: Sari Dewi
Statusnya menjadi Unpaid. Create > Payment membentuk sebuah Payment Entry sebesar sisa 335.000; men-submit-nya akan mendebit akun payable dan mengkredit bank, menetapkan Total Amount Reimbursed menjadi 335.000, dan mengubah statusnya menjadi Paid.
Uang muka untuk kunjungan lokasi
Budi Santoso menerima uang muka untuk kunjungan lokasi ke Surabaya.
- Employee Advance, Advance Amount IDR 5.000.000, purpose "Site visit to Surabaya". Submit: tidak ada jurnal buku besar sama sekali, status Unpaid.
- Create > Payment, IDR 5.000.000 dari Kas Kecil.
Dr Uang Muka Karyawan 5,000,000 (party Budi Santoso) / Cr Kas Kecil 5,000,000. Paid Amount menjadi 5.000.000 dan statusnya Paid. - Ia kembali lalu mengajukan klaim: tiket pesawat 2.150.000 dan hotel 1.800.000 di bawah Travel, konsumsi 620.000 di bawah Food. Total yang diklaim dan yang disetujui: IDR 4.570.000.
- Uang mukanya ditarik masuk dengan Advance Paid 5.000.000 dan Unclaimed Amount 5.000.000. GARP membutuhkan 4.570.000 dan baris tersebut sanggup menyediakan lebih, jadi Allocated Amount disetel ke 4.570.000 dan Total Advance Amount menjadi 4.570.000.
- Grand Total = 4.570.000 + 0 − 4.570.000 = IDR 0. Hilangkan centang Is Paid yang dipasang GARP untuk Anda, lalu submit.
Dr Travel Expenses 3,950,000
Dr Staff Welfare 620,000
Cr Uang Muka Karyawan 4,570,000 party: Budi Santoso
Tidak ada baris payable yang ditulis karena Grand Total-nya nol, dan karena alasan yang sama klaim itu langsung berstatus Paid. Claimed Amount pada uang mukanya menjadi 4.570.000, tetapi statusnya dihitung ulang menjadi Paid — bukan "partly claimed" — karena Advance Amount masih sama dengan Paid Amount. IDR 430.000 masih menjadi kewajiban Budi.
Create > Return membentuk sebuah Journal Entry bertipe voucher Cash Entry (Bank Entry bila Mode of Payment-nya bertipe Bank): Cr Uang Muka Karyawan 430,000 (party Budi Santoso) / Dr Kas Kecil 430,000. Men-submit-nya menetapkan Returned Amount menjadi 430.000, dan karena 4.570.000 + 430.000 sama dengan 5.000.000 yang dibayarkan, uang muka itu berpindah ke Partly Claimed and Returned. Repay Unclaimed Amount from Salary mencapai status yang sama, hanya saja dengan membawa 430.000 yang sama itu ke slip gaji Budi berikutnya.
Satu baris pajak, dan apa yang sebenarnya dilakukannya
Rina Halim membeli perlengkapan kantor senilai IDR 1.000.000 bruto, sudah termasuk PPN, lalu menambahkan satu baris Taxes dengan Account Head PPN Masukan dan Rate 11.
Praktisi Indonesia akan mengharapkan nilai bruto itu dipecah: DPP sebesar IDR 900.901 dan PPN sebesar IDR 99.099. Bukan itu yang dihitung produk ini. GARP membaca rate sebagai persentase dari total sanctioned amount, lalu menambahkannya di atas nilai tersebut:
- Total Sanctioned Amount: IDR 1.000.000
- Amount pada baris pajak: 1.000.000 × 11 ÷ 100 = IDR 110.000
- Total pada baris pajak: 110.000 + 1.000.000 = IDR 1.110.000
- Grand Total: 1.000.000 + 110.000 − 0 = IDR 1.110.000
Rina akan menerima penggantian IDR 1.110.000 untuk bukti senilai IDR 1.000.000, dan PPN Masukan akan memuat angka yang tidak cocok dengan faktur pajak mana pun. Dengan produk yang tersedia sekarang, isikan nilai bruto IDR 1.000.000 pada Amount dan biarkan Taxes kosong; bila PPN masukannya dapat dikreditkan, catat faktur pajak vendor pada sebuah Purchase Invoice, bukan menggantinya lewat klaim.
Praktik di Indonesia
Tidak ada modul regional Indonesia di aplikasi HR — hanya India dan Uni Emirat Arab yang punya modul semacam itu. Tidak ada satu pun bagian di area pengeluaran ini yang mengenal BPJS Kesehatan, BPJS Ketenagakerjaan, PPh 21, THR atau aturan Kepmenaker, dan tidak ada salary component maupun tax slab Indonesia yang tersedia secara bawaan. Semua yang tercantum di bawah ini adalah konfigurasi yang Anda kerjakan sendiri, bukan kepatuhan yang Anda dapatkan begitu saja.
- Penggantian biaya versus tunjangan. Expense Claim mendebit akun beban berdasarkan bukti dan tidak pernah menyentuh Salary Slip; tunjangan tetap adalah urusan Salary Component atau Additional Salary. Bila kebijakan Anda memperlakukan suatu pos sebagai imbalan kerja, salurkan lewat penggajian — lihat Penggajian. Tidak ada apa pun di produk ini yang memaksakan pilihan tersebut.
- Kasbon dan uang muka perjalanan dinas. Employee Advance adalah dokumen yang tepat, dan akun Receivable-nya adalah buku besar Uang Muka Karyawan. Men-submit-nya tidak memposting apa pun; hanya Payment Entry yang menggerakkan uang.
- SPPD. Travel Request menampung itinerary dan estimasinya, tetapi bersifat pasif. Gunakan sebagai catatan otorisasi, lalu terbitkan Employee Advance secara terpisah dengan mencantumkan nomor request-nya pada Purpose.
- PPN. Tabel Taxes bersifat menambah dan tidak dapat memecah bukti bruto menjadi DPP dan PPN. Gunakan Purchase Invoice bila Anda memerlukan PPN masukan yang dapat dikreditkan terhadap sebuah faktur pajak.
- Pemotongan PPh. Tidak ada apa pun yang memotong pajak dari sebuah penggantian biaya. Tambahkan potongannya pada Payment Entry bila memang harus.
- Mata uang. Setel Salary Currency ke IDR pada setiap record Employee — dari sanalah Currency sebuah klaim diambil, dan ketidakcocokan dengan mata uang Advance Account akan memblokir uang mukanya.
Referensi field
Mulai dari sini sampai akhir halaman isinya adalah referensi: apa fungsi setiap field, apa arti setiap total, apa yang ditolak GARP saat menyimpan, dan kasus-kasus khususnya. Anda boleh berhenti membaca sebelum bagian ini kecuali Anda memang memerlukan rinciannya.
Untuk apa masing-masing record
- Expense Claim (
/app/expense-claim) — dokumen pengajuannya sendiri, dengan penomoranHR-EXP-.YYYY.-. Anda menyimpannya sebagai draf lalu men-submit-nya, dan submit itulah yang memposting jurnal akuntansi. - Expense Claim Detail — satu baris pada tabel Expenses di dalam klaim: Expense Date, Expense Claim Type, Default Account, Description, Amount, Sanctioned Amount, Cost Center, Project.
- Expense Claim Type (
/app/expense-claim-type) — kategorinya (Travel, Food, Medical), dinamai mengikuti isi field Expense Claim Type miliknya sendiri dan dapat diganti namanya. Tabel Accounts di dalamnya (Expense Claim Account) memuat satu Default Account per perusahaan, dan akun itulah yang didebit oleh baris pengeluaran. - Expense Taxes and Charges — satu baris pada tabel Taxes di dalam klaim: Account Head, Description, Rate, Amount, Total, Cost Center, Project.
- Employee Advance (
/app/employee-advance) — kas yang dibayarkan di muka, dengan penomoranHR-EAD-.YYYY.-, dibukukan ke Advance Account yang bertipe piutang. - Expense Claim Advance — satu baris pada tabel Advances di dalam klaim, yang menautkan sebuah uang muka yang sudah dibayar ke klaim tersebut, dengan Allocated Amount sebagai pengurangnya.
- Travel Request (
/app/travel-request) dan Purpose of Travel (/app/purpose-of-travel) — pengajuan perjalanan dinas beserta itinerary dan tabel biayanya. - Vehicle Log (
/app/vehicle-log) — bahan bakar dan servis kendaraan perusahaan, yang dapat menerbitkan klaim untuk pengemudinya.
Header
| Field | Tipe | Perilaku |
|---|---|---|
| From Employee | Pilih dari daftar, wajib | Ditolak bila status karyawannya Inactive |
| Department | Pilih dari daftar, terisi dari record karyawan | Dibatasi pada company klaim, dan diperiksa ulang terhadapnya saat disimpan |
| Expense Approver | Pilih seorang pengguna | Wajib bila HR Setting terkait aktif. Lihat di atas |
| Approval Status | Dropdown, khusus approver | Draft (bawaan), Approved, Rejected, Cancelled |
| Posting Date | Tanggal, wajib | Bawaannya hari ini. Menentukan tanggal posting jurnal |
| Company | Pilih dari daftar, wajib | Terisi dari record karyawan |
| Currency | Pilih dari daftar, wajib | Terisi dari Salary Currency karyawan |
| Exchange Rate | Angka, wajib | Diambil langsung saat Currency berbeda dari mata uang perusahaan; dipaksa menjadi 1 dan disembunyikan bila keduanya sama |
| Payable Account | Pilih dari daftar | Terisi dari Default Expense Claim Payable Account milik perusahaan. Dibatasi pada akun neraca non-group bertipe Payable dalam mata uang klaim |
| Cost Center | Pilih dari daftar | Terisi dari cost center bawaan perusahaan. Disalin turun ke baris pengeluaran yang belum memilikinya |
| Project, Task | Pilih dari daftar | Memilih Task akan mengisi Project darinya. Task dibatasi pada Project yang dipilih |
| Is Paid | Kotak centang | Membuat klaim membukukan pembayarannya sendiri. Mewajibkan Mode of Payment |
| Mode of Payment | Pilih dari daftar | Hanya tampil bila Is Paid dicentang. Akun di baliknya itulah yang dikredit |
| Bank / Cash Account | Pilih dari daftar | Tampil bila Mode of Payment terisi |
| Clearance Date | Tanggal | Hanya dibaca oleh Bank Reconciliation Tool |
| Status | Dropdown, hanya baca | Draft, Submitted, Unpaid, Paid, Rejected, Cancelled |
Bank / Cash Account tidak melakukan apa pun. Tidak ada bagian mana pun dari GARP yang membacanya. Saat Is Paid dicentang, kreditnya masuk ke akun bawaan pada baris Mode of Payment Account untuk perusahaan tersebut — dan bila baris itu tidak ada, Anda mendapat Please set default Cash or Bank account in Mode of Payment {0} dengan judul Missing Account. Setel akunnya pada Mode of Payment, bukan pada klaimnya.
Expenses
| Field | Catatan |
|---|---|
| Expense Date | Bawaannya hari ini. Opsional |
| Expense Claim Type | Wajib. Memilihnya akan mengisi Default Account dan menyetel Cost Center ke bawaan perusahaan |
| Default Account | Tersembunyi dan hanya baca. Diambil dari claim type; inilah akun yang didebit oleh baris tersebut |
| Description | Kotak teks berformat. Terisi dari Description milik claim type bila dibiarkan kosong, baik di browser maupun di mobile |
| Amount | Wajib. Mengetiknya akan menyalin angka yang sama ke Sanctioned Amount |
| Sanctioned Amount | Nilai yang bersedia dibayar approver. Tidak boleh melebihi Amount pada baris yang sama |
| Cost Center | Wajib saat submit. Mengubahnya pada satu baris akan menyalin nilainya ke seluruh baris lain |
| Project | Opsional, menimpa Project di header untuk jurnal baris tersebut |
Pajak dan pungutan
Tabel Taxes menambah nilai sebuah klaim, bukan memotongnya. Pakai tabel ini hanya bila karyawan membayar pungutan yang Anda ganti di atas nilai yang disetujui.
- Account Head dibatasi pada akun di company klaim dengan tipe Tax, Chargeable, Income Account atau Expenses Included In Valuation.
- Description wajib diisi. Di browser, field ini terisi lebih dulu dari nama account head dikurangi singkatan perusahaan.
- Amount dihitung per baris. Bila Rate tidak nol, Amount = Total Sanctioned Amount × Rate ÷ 100, dibulatkan ke jumlah desimal mata uangnya. Bila tidak, Amount yang Anda ketik sendirilah yang berlaku.
- Total pada baris itu adalah Amount baris tersebut ditambah total sanctioned amount — sebuah angka per baris, bukan total berjalan lintas baris.
Rate yang tidak nol akan menimpa Amount apa pun yang Anda ketik, pada setiap penyimpanan. Bila Anda menginginkan angka pajak yang tetap, kosongkan Rate.
Tidak ada apa pun di sini yang menghitung pemotongan pajak Indonesia. Bila pajak memang harus dipotong dari sebuah penggantian biaya, lakukan pada Payment Entry lewat bagian Deductions or Loss, sebagaimana Anda memperlakukan utang lainnya. Lihat Akuntansi.
Advances
Setiap field pada tabel ini kecuali Employee Advance bersifat hanya baca di browser, dan Advance Account disembunyikan sepenuhnya. Allocated Amount dihitung, bukan diketik: di browser, GARP menelusuri tabelnya dari atas ke bawah dan mengambil sebanyak yang dapat disediakan tiap uang muka sampai nilai sanctioned ditambah pajak tertutupi. Aplikasi mobile berbeda — di sana Anda mencentang uang muka satu per satu dan dapat mengubah Allocated Amount secara manual, dengan batas maksimal sebesar nilai yang belum diklaim.
Memilih karyawan pada klaim yang masih baru akan mengosongkan tabel ini dan mengisinya ulang dengan setiap uang muka karyawan tersebut yang sudah disubmit, yang nilai terbayarnya di atas nol dan statusnya bukan Claimed, Returned atau Partly Claimed and Returned. Allocated Amount dimulai dari nilai dibayar dikurangi yang sudah diklaim dikurangi yang sudah dikembalikan.
Mengganti From Employee pada klaim yang sudah Anda susun akan menghapus dan membangun ulang tabel Advances, sehingga alokasi manual apa pun ikut hilang.
Bagaimana uangnya mengalir
Employee Advance --(Payment Entry / Journal Entry)--> money paid to employee
|
+--> Advances table on the claim (Expense Claim Advance)
|
Expense Claim ------+
Expenses lines -----> debit each Expense Claim Type's Default Account
Taxes lines -----> debit each Account Head
Advances lines -----> credit each Advance Account
Grand Total -----> credit Payable Account, party = Employee
|
+--> Payment Entry (or Journal Entry) --> status Paid
- Total Claimed Amount menjumlahkan Amount.
- Total Sanctioned Amount menjumlahkan Sanctioned Amount, yang tidak boleh melebihi nilai yang diklaim pada barisnya.
- Grand Total adalah nilai sanctioned ditambah pajak dikurangi Total Advance Amount — itulah yang dikredit ke akun payable, dan itulah sisa yang masih harus diganti.
- Outstanding untuk keperluan pembayaran adalah sanctioned ditambah pajak dikurangi yang sudah diganti dikurangi uang muka.
Apa yang terjadi saat Anda submit
Saat Anda men-submit sebuah klaim, GARP melakukan hal berikut, secara berurutan:
- Bila Approval Status masih Draft, prosesnya berhenti dengan
Approval Status must be 'Approved' or 'Rejected'. - Menghitung ulang Total Expense Claim pada Task yang tertaut sebagai jumlah Total Sanctioned Amount dari seluruh klaim yang sudah disubmit pada proyek dan task tersebut; bila tidak ada task, yang dihitung ulang adalah total pada Project yang tertaut.
- Menulis jurnal buku besar, tetapi hanya bila Total Sanctioned Amount di atas nol.
- Menghitung ulang Total Amount Reimbursed dan menetapkan Status.
- Menghitung ulang Claimed Amount dan status pada setiap Employee Advance yang tertaut, dengan hanya memperhitungkan alokasi pada klaim yang sudah disubmit dan berstatus Approved.
- Bila ada uang muka yang dialokasikan pada kurs yang berbeda, selisihnya dibukukan lewat sebuah Journal Entry bertipe voucher Exchange Gain Or Loss, dan diberitahukan:
All Exchange Gain/Loss amount of {0} has been booked through {1}. - Kecuali Make Payment via Journal Entry aktif, klaim ditulis balik ke daftar referensi pada Payment Entry asalnya sehingga uang mukanya terekonsiliasi dengan benar.
Jurnal buku besar untuk klaim yang Approved adalah:
- Satu kredit ke Payable Account sebesar Grand Total, dengan party type Employee, party-nya karyawan tersebut, dan tertaut balik ke klaim itu sendiri. Dilewati sepenuhnya bila Grand Total-nya nol.
- Satu debit per baris Expenses ke Default Account baris tersebut sebesar Sanctioned Amount-nya, memakai Cost Center dan Project baris itu, dan bila kosong memakai milik header.
- Satu kredit per baris Advances yang dialokasikan ke Advance Account baris tersebut, ditandai sebagai uang muka terhadap Employee Advance-nya.
- Satu debit per baris Taxes ke Account Head-nya.
- Bila Is Paid dicentang dan Grand Total tidak nol, ada sepasang jurnal tambahan: kredit ke akun milik Mode of Payment, debit ke Payable Account — sehingga utangnya menjadi nihil dan klaim itu lahir langsung dalam keadaan Paid.
Pada Rejected, Sanctioned Amount setiap baris dipaksa menjadi nol saat klaimnya disimpan. Totalnya karena itu menjadi nol, tidak ada jurnal yang ditulis, dan Status menjadi Rejected. Tidak ada yang diposting, tetapi klaim itu tetap memakai satu nomor dan tetap muncul pada kartu Rejected Claims.
Saat dibatalkan, jurnal yang sama dibalik, total task dan project dihitung ulang, angka pada setiap uang muka ditetapkan ulang, dan klaim dilepaskan dari Payment Entry mana pun yang merujuknya.
Klaim Approved yang seluruh barisnya di-sanction nol tidak memposting apa pun dan berhenti pada Status Submitted, bukan Unpaid dan bukan Paid. Bila Anda melihat klaim yang sudah disubmit tertahan di Submitted, itulah sebabnya.
Pesan error dan penyebabnya
| Pesan | Penyebab |
|---|---|
Sanctioned Amount cannot be greater than Claim Amount in Row {0}. | Nilai sanctioned pada sebuah baris melebihi nilai yang diklaim |
Row {0}: Cost Center is required in the expenses table to book an expense claim. | Ada baris pengeluaran tanpa cost center, diperiksa saat submit |
Set the default account for the Expense Claim Type {0} | Claim type tidak punya baris Accounts untuk perusahaan ini |
Payable Account is mandatory to submit an Expense Claim | Submit tanpa payable account dan tanpa Is Paid |
Mode of payment is required to make a payment | Is Paid dicentang tanpa Mode of Payment |
Approval Status must be 'Approved' or 'Rejected' | Men-submit klaim yang masih bertanda Draft |
Self-approval for Expense Claims is not allowed | HR Setting terkait aktif dan Andalah pengajunya |
Department {0} does not belong to company: {1} | Department dan Company tidak cocok |
Selected employee advance is not of employee {0} | Baris uang muka milik orang lain |
Row {0}# Allocated amount {1} cannot be greater than unclaimed amount {2} | Alokasi berlebih pada satu uang muka |
Total advance amount cannot be greater than total sanctioned amount | Uang muka melebihi nilai sanctioned ditambah pajak |
Transactions cannot be created for an Inactive Employee {0}. | Status karyawannya Inactive |
Row No {0}: Amount cannot be greater than the Outstanding Amount against Expense Claim {1}. Outstanding Amount is {2} | Sebuah Journal Entry mencoba membayar klaim melebihi sisanya |
Employee Advance secara rinci
| Field | Catatan |
|---|---|
| Employee | Wajib, dibatasi pada karyawan Active |
| Posting Date | Bawaannya hari ini |
| Purpose | Teks bebas, wajib. Ditampilkan sebagai judul kartu di aplikasi mobile |
| Advance Amount | Wajib. Nominal yang diminta |
| Paid Amount | Hanya baca, dijumlahkan dari catatan pembayaran yang tercatat terhadap uang muka tersebut |
| Claimed Amount | Hanya baca, dijumlahkan dari Allocated Amount pada klaim yang sudah disubmit dan Approved |
| Returned Amount | Hanya baca, dari Journal Entry pengembalian dan potongan Additional Salary yang sudah disubmit |
| Pending Amount | Hanya baca. Advance Amount dikurangi Paid Amount pada uang muka lain karyawan ini yang sudah disubmit dan masih Unpaid, bertanggal sama atau lebih awal dari yang ini. Sekadar sinyal peringatan, bukan penghalang |
| Advance Account | Harus bertipe Receivable dan dalam mata uang uang muka tersebut |
| Mode of Payment | Menentukan akun kas atau bank bawaan yang ditawarkan saat pembayaran dan pengembalian |
| Repay Unclaimed Amount from Salary | Menukar tombol Return dengan Deduction from Salary |
Field Status dihitungkan untuk Anda, tidak pernah diketik:
Draft the advance is still a draft
Claimed claimed == paid
Returned returned == paid
Partly Claimed and Returned claimed + returned == paid, both above zero
Paid paid == advance amount, or paid and repay-from-salary is on
Unpaid anything else once submitted
Cancelled the advance has been cancelled
Tidak ada status "Partly Claimed". Uang muka IDR 5.000.000 yang sudah diperhitungkan dengan klaim IDR 4.570.000 tetap terbaca Paid, persis seperti uang muka yang belum tersentuh sama sekali. Jalankan Employee Advance Summary lalu bandingkan Paid Amount dengan Claimed Amount untuk menemukan uang muka yang uangnya masih menggantung.
Error khusus uang muka:
Employee advance account {0} should be of type Receivable.Advance Account {0} currency should be same as Salary Currency of Employee {1}. Please select same currency Advance Account- Saat submit tanpa akun dan tanpa bawaan perusahaan,
Advance Account is mandatory. Please set the Default Employee Advance Account in the Company {0} and submit this document.dengan judulMissing Advance Account. - Pembayaran berlebih memunculkan
Row {0}# Paid Amount cannot be greater than requested advance amount(placeholder-nya tidak pernah diisi dengan nomor baris). - Pengembalian berlebih memunculkan
Return amount cannot be greater than unclaimed amount.
Membatalkan uang muka yang sudah memiliki Payment Entry hanya berjalan mulus bila Unlink Payment on Cancellation of Employee Advance dicentang pada tab Expenses di HR Settings. Opsi itu nonaktif secara bawaan, sehingga pembatalan pertama di workspace yang masih baru biasanya gagal pada tautan pembayarannya.
Jalur Deduction from Salary membuat sebuah Additional Salary persis sebesar Paid Amount dikurangi Claimed Amount, dengan Overwrite Salary Structure Amount nonaktif dan uang muka tersebut sebagai referensinya. Dokumen itu datang tanpa Salary Component dan tanpa Payroll Date, jadi pilih sendiri komponen potongannya, dan ia memerlukan Salary Structure Assignment yang sudah disubmit atau Anda mendapat There is no Salary Structure assigned to {0}. First assign a Salary Structure. Men-submit-nya akan menaikkan Returned Amount uang muka sebesar angka yang sama dan menghitung ulang statusnya.
Travel Request
Travel Request mencatat sebuah perjalanan sebelum berlangsung. Anda menyimpannya sebagai draf lalu men-submit-nya, dan penomorannya HR-TRQ-.YYYY.-.#####. Isinya:
- Travel Type — Domestic atau International
- Travel Funding — Require Full Funding, Fully Sponsored, atau Partially Sponsored, Require Partial Funding
- Purpose of Travel
- Copy of Invitation/Announcement sebagai lampiran
- data kontak, dokumen identitas dan paspor
- tabel Travel Itinerary — rute perjalanan, moda transportasi dari pilihan Flight, Train, Taxi atau Rented Car, preferensi konsumsi, penginapan, serta apakah uang muka perjalanan diperlukan
- bagian Event Details untuk penyelenggaranya
- tabel Costing berisi baris Travel Request Costing, masing-masing dengan Expense Type, Sponsored Amount, Funded Amount dan Total Amount
Travel Request berdiri sendiri. Satu-satunya pemeriksaan yang dijalankannya adalah pemeriksaan karyawan Inactive. Tidak ada apa pun yang menghubungkannya dengan Employee Advance maupun Expense Claim, sehingga angka pada tabel costing-nya tidak mengalir ke mana pun, dan Total Amount pada sebuah baris costing bahkan tidak dijumlahkan dari dua kolom lainnya — uang muka dan klaimnya tetap harus Anda buat sendiri. Dokumen ini tersedia dengan izin untuk System Manager saja, ditambah hak baca, tulis, buat dan hapus bagi user type Employee Self Service. Bila Anda menginginkan persetujuan di atasnya, bangunlah sebuah Workflow.
Vehicle Log
Vehicle Log (/app/vehicle-log) mencatat odometer, pengisian bahan bakar dan servis terhadap sebuah Vehicle, dan merupakan satu-satunya dokumen lain yang dapat menerbitkan klaim. Submit sebuah log, lalu Create > Expense Claim: klaim terbuka untuk karyawan pada log tersebut dengan satu baris pengeluaran sebesar Fuel Price × Fuel Qty ditambah jumlah Expense dari seluruh baris Vehicle Service.
Ia menolak dengan No additional expenses has been added bila total tersebut nol, dan dengan Expense Claim {0} already exists for the Vehicle Log bila Anda mencobanya dua kali. Baris yang dihasilkan tidak memiliki Expense Claim Type, jadi pilih satu atau tidak ada akun yang bisa didebit.
Vehicle Log dan laporan Vehicle Expenses memerlukan role Fleet Manager, yang terpisah dari apa pun di HR. Vehicle dan Driver juga terbuka bagi Delivery User dan Delivery Manager (dan Driver bagi System Manager).
Delivery Trip juga menawarkan Create > Expense Claim pada perjalanan yang sudah disubmit dan memiliki karyawan, tetapi pemetaannya hanya membawa nama perjalanan itu ke field Delivery Trip pada klaim — tanpa karyawan, tanpa baris, tanpa nominal.
Laporan dan dasbor
| Laporan | Membaca | Role | Catatan |
|---|---|---|---|
| Unpaid Expense Claim | Expense Claim | HR Manager, HR User, Expense Approver | Klaim yang sudah disubmit dengan Is Paid nonaktif dan masih memiliki saldo Payment Ledger tidak nol. Filter: Employee |
| Employee Advance Summary | Employee Advance | Employee, Expense Approver | Filter: Employee, From Date (bawaannya awal tahun fiskal), To Date, Company (wajib), Status |
| Vehicle Expenses | Vehicle | Fleet Manager | Belanja bahan bakar dan servis per log |
Employee Advance Summary tidak diberikan kepada HR Manager maupun HR User. Hanya Employee dan Expense Approver yang terpasang padanya. Filter Status-nya juga hanya menawarkan Draft, Paid, Unpaid, Claimed dan Cancelled — Anda tidak dapat memfilter Returned atau Partly Claimed and Returned dari dropdown, meskipun baris-baris itu tetap muncul bila filternya dibiarkan kosong.
Dasbor Expense Claims, yang dapat dicapai dari sidebar Expenses, memuat tiga number card — Expense Claims (This Month), Approved Claims (This Month) dan Rejected Claims (This Month), masing-masing menghitung klaim yang sudah disubmit dan diposting bulan ini — serta empat grafik: garis bulanan nilai sanctioned selama setahun terakhir, Claims by Type, Employee Advance Status, dan Department wise Expense Claims.
Claims by Type menghitung setiap baris pengeluaran yang pernah dibuat, termasuk baris pada draf dan pada klaim yang dibatalkan — grafik inilah satu-satunya di sini yang mengabaikan apakah sebuah klaim masih draf, sudah disubmit, atau sudah dibatalkan. Jangan membacanya sebagai angka realisasi belanja.
Pekerjaan terjadwal
Tidak ada. Tidak ada apa pun di aplikasi HR yang berjalan otomatis menurut jadwal terhadap Expense Claim, Employee Advance, Travel Request atau Vehicle Log. Setiap perubahan status di sini digerakkan oleh dokumen yang disubmit atau dibatalkan — klaim itu sendiri, atau Payment Entry, Journal Entry, Unreconcile Payment maupun Additional Salary yang merujuknya. Status yang tampak basi berarti ada sesuatu di hulu yang tidak pernah disubmit, bukan pekerjaan terjadwal yang gagal berjalan.
Rincian, batasan, dan kasus khusus
- Batalkan sesuai urutan. Batalkan klaimnya sebelum Anda menyentuh uang muka yang diselesaikannya, jangan pernah sebaliknya, atau claimed amount pada uang muka itu akan tertinggal basi.
- Tombol View > Bank Entries memfilter daftar Payment Entry atau Journal Entry berdasarkan karyawan dan perusahaan, bukan berdasarkan klaim ini. Gunakan View > Accounting Ledger untuk jurnal yang benar-benar milik klaim tersebut.
- Accounting dimension yang ditandai wajib untuk akun neraca dicap ke header klaim saat klaimnya disimpan, dan yang wajib untuk akun laba rugi dicap ke setiap baris pengeluaran — tetapi hanya dari dimension yang didefinisikan untuk company klaim itu sendiri.
- Meng-amend klaim yang dibatalkan menyalin semuanya kecuali Approval Status, Status, Remark, total claimed dan sanctioned, serta Total Amount Reimbursed, yang semuanya dibiarkan kosong pada dokumen amendment-nya. Setel ulang Approval Status pada amendment tersebut.
- Hanya satu klaim per Vehicle Log. GARP memeriksanya berdasarkan nama, sehingga pengisian bahan bakar kedua pada log yang sama harus memakai log baru.
Terkait
- Ringkasan HR
- Penggajian
- Pajak dan tunjangan — Employee Benefit Claim adalah dokumen penggajian tersendiri, bukan klaim pengeluaran
- Self-service karyawan
- Pengaturan dan laporan
- Akuntansi
- Proyek