Setup Awal
Bagian ini ditujukan untuk administrator sistem yang bertanggung jawab menyiapkan aplikasi untuk pertama kali.
Tampilan Bare-Bones
Setelah instalasi, aplikasi menampilkan tampilan bare-bones dengan data minimal:
- User admin default (admin/admin)
- Tahun fiskal aktif
- Tidak ada COA, template, atau data master lainnya

Feature Overview
Setelah import seed data, fitur yang tersedia tergantung jenis industri:
Fitur Umum (Semua Industri)
| Fitur | Menu | Deskripsi |
|---|---|---|
| Transaksi | Transaksi | Catat pendapatan dan pengeluaran |
| Laporan | Laporan | Neraca, Laba Rugi, Arus Kas |
| Pajak | Pajak | PPN, PPh, Kalender Pajak |
| Penggajian | Penggajian | Payroll, BPJS, PPh 21 |
| Aset Tetap | Aset | Depresiasi, Kategori Aset |
Fitur Industri Jasa
| Fitur | Menu | Deskripsi |
|---|---|---|
| Client | Klien | Data klien dan kontak |
| Project | Proyek | Proyek dengan milestone |
| Invoice | Invoice | Penagihan ke klien |
| Profitabilitas | Laporan | Profit per klien/proyek |
Fitur Industri Dagang
| Fitur | Menu | Deskripsi |
|---|---|---|
| Produk | Inventori > Produk | Master produk dengan harga |
| Stok | Inventori > Stok | Saldo stok per lokasi |
| Transaksi Inventori | Inventori > Transaksi | Pembelian, Penjualan, Adjustment |
| Laporan Stok | Inventori > Laporan | Kartu stok, Valuasi |
Master Data
Bagan Akun (Chart of Accounts)
Buka menu Akun untuk melihat daftar akun.

Struktur Kode Akun
| Prefix | Kategori | Contoh |
|---|---|---|
| 1.x.xx | Aset | Kas, Bank, Piutang, Peralatan |
| 2.x.xx | Kewajiban | Hutang Usaha, Hutang Pajak |
| 3.x.xx | Ekuitas | Modal, Laba Ditahan |
| 4.x.xx | Pendapatan | Pendapatan Jasa, Penjualan |
| 5.x.xx | Beban | Gaji, Sewa, Listrik |
Tambah Akun Baru
- Klik tombol Akun Baru
- Isi form:

| Field | Keterangan |
|---|---|
| Kode | Kode unik mengikuti struktur |
| Nama | Nama akun |
| Tipe | Aset/Kewajiban/Ekuitas/Pendapatan/Beban |
| Sub Tipe | Kategori detail |
| Saldo Normal | Debit/Kredit |
- Klik Simpan
Template Transaksi
Template menentukan akun-akun yang terlibat dalam suatu jenis transaksi.

Lihat Referensi Template untuk daftar lengkap template standar.
Periode Fiskal
Konsep
Periode fiskal adalah periode akuntansi perusahaan. Aplikasi menggunakan sistem 12 bulan per tahun fiskal.
Melihat Periode Fiskal
Buka menu Periode Fiskal di sidebar.

Status Periode
| Status | Arti |
|---|---|
| OPEN | Periode aktif, transaksi dapat dicatat |
| CLOSED | Periode ditutup, transaksi tidak dapat dicatat |
Backup Data
Manual Backup
- Buka menu Pengaturan > Backup
- Klik Buat Backup
- File backup akan terunduh
Kapan Perlu Backup
- Sebelum import data baru
- Sebelum tutup buku tahunan
- Secara berkala (minimal bulanan)
Tips Setup
- Mulai dari seed data - Jangan setup dari kosong, gunakan seed data industri yang sesuai
- Review COA - Pastikan bagan akun sesuai kebutuhan bisnis
- Test transaksi - Coba input beberapa transaksi untuk memastikan setup benar
- Dokumentasi - Catat perubahan konfigurasi yang dilakukan
Lihat Juga
- Tutorial Dasar Akuntansi - Pahami konsep dan workflow
- Keamanan & Kepatuhan - Konfigurasi keamanan
- Referensi Akun - Daftar akun standar
Import Seed Data
Konsep Seed Data
Seed data adalah paket data awal yang berisi:
- Bagan Akun (Chart of Accounts) sesuai industri
- Template transaksi standar
- Komponen gaji (jika applicable)
- Deadline pajak
- Kategori aset tetap
Pilihan Industry Seed
| Industry | Deskripsi | Fitur Utama |
|---|---|---|
| IT Services (PKP) | Perusahaan jasa IT dengan kewajiban PPN | Client, Project, Milestone, Invoice |
| Online Seller | Penjual online marketplace | Produk, Inventory FIFO, Multi-marketplace |
| Coffee Shop | Usaha kopi & pastry | BOM, Production Order, HPP |
| Campus | Institusi pendidikan | Mahasiswa, SPP, Beasiswa |
Langkah Import
- Buka menu Pengaturan di sidebar
- Pilih tab Import Data
- Klik Pilih File dan pilih file ZIP seed data
- Review preview data yang akan diimpor
- Klik Import
Catatan: Proses import akan menggantikan data existing. Pastikan tidak ada data penting sebelum import.
User Management
Melihat Daftar Pengguna
Buka menu Pengguna di sidebar.

Tambah Pengguna Baru
- Klik tombol Pengguna Baru

- Isi form:
| Field | Keterangan |
|---|---|
| Username | Login ID (unik) |
| Nama Lengkap | Nama tampilan |
| Alamat email | |
| Password | Password minimal 12 karakter |
| Role | ADMIN/OWNER/ACCOUNTANT/STAFF/AUDITOR/EMPLOYEE |
- Klik Simpan
Sesi Perangkat (Device Sessions)
Di halaman detail pengguna, terdapat bagian Sesi Perangkat Aktif yang menampilkan daftar perangkat yang terhubung melalui OAuth Device Flow (misalnya Claude Code, Docker Desktop).

Informasi yang ditampilkan:
- Perangkat — nama perangkat yang didaftarkan
- Client ID — identifier aplikasi
- Status — Aktif atau Kedaluwarsa
- Dibuat — tanggal token dibuat
- Terakhir Digunakan — waktu terakhir token digunakan
- IP Terakhir — alamat IP terakhir
Untuk mencabut akses:
- Klik Cabut pada sesi individual
- Klik Cabut Semua untuk mencabut semua sesi sekaligus
Role dan Permission
| Role | Deskripsi | Permission |
|---|---|---|
| ADMIN | Administrator sistem | Full access |
| OWNER | Pemilik bisnis | Full access kecuali user management |
| ACCOUNTANT | Akuntan | Transaksi, Laporan, Pajak |
| STAFF | Staff operasional | Transaksi, View laporan |
| AUDITOR | Auditor | View only |
| EMPLOYEE | Karyawan | Self-service saja |
Telegram Integration
Untuk Administrator
1. Buat Bot di BotFather
- Buka Telegram, cari @BotFather
- Kirim
/newbot - Ikuti instruksi untuk membuat bot
- Catat Bot Token yang diberikan
2. Konfigurasi Environment
Tambahkan ke environment variables server:
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_WEBHOOK_URL=https://your-domain.com/api/telegram/webhook
3. Daftarkan Webhook
curl -X POST "https://api.telegram.org/bot{your_token}/setWebhook" \
-d "url=https://your-domain.com/api/telegram/webhook"
Untuk End User
- Buka menu Pengaturan > Telegram
- Klik Hubungkan Telegram
- Salin kode verifikasi
- Buka Telegram, cari bot yang dikonfigurasi
- Kirim kode verifikasi ke bot
Setelah terhubung, Anda dapat mengirim foto struk via Telegram.
Lihat Tutorial Akuntansi bagian Telegram Receipt untuk panduan penggunaan.
Konsep Dasar Akuntansi
Bagian ini adalah panduan utama untuk pemilik bisnis yang belum memiliki latar belakang akuntansi. Tujuannya: memahami akuntansi dengan bahasa sederhana agar dapat menggunakan aplikasi dengan benar.
Catatan: Konsep di sini bersifat universal - bisa diterapkan dengan aplikasi ini, Excel, atau bahkan pencatatan manual.
Apa Itu Akuntansi?
Akuntansi adalah proses mencatat, mengklasifikasi, dan melaporkan transaksi keuangan bisnis.
Tujuan akuntansi:
- Mengetahui kondisi keuangan bisnis
- Membuat keputusan bisnis yang tepat
- Memenuhi kewajiban pelaporan pajak

Persamaan Dasar Akuntansi
Aset = Kewajiban + Ekuitas
| Komponen | Pengertian | Contoh |
|---|---|---|
| Aset | Apa yang dimiliki bisnis | Kas, piutang, peralatan |
| Kewajiban | Apa yang dihutang bisnis | Hutang vendor, hutang pajak |
| Ekuitas | Modal pemilik | Modal awal, laba ditahan |
Setiap transaksi harus menjaga keseimbangan persamaan ini.
Debit dan Kredit
Setiap transaksi dicatat dalam dua sisi: debit dan kredit. Total debit harus sama dengan total kredit.
| Jenis Akun | Bertambah | Berkurang |
|---|---|---|
| Aset | Debit | Kredit |
| Kewajiban | Kredit | Debit |
| Ekuitas | Kredit | Debit |
| Pendapatan | Kredit | Debit |
| Beban | Debit | Kredit |
Contoh: Terima Pembayaran dari Klien
Anda menerima Rp 10.000.000 dari klien untuk jasa konsultasi.
| Akun | Debit | Kredit |
|---|---|---|
| Kas/Bank | 10.000.000 | |
| Pendapatan Jasa | 10.000.000 |
- Kas (aset) bertambah → debit
- Pendapatan bertambah → kredit
Contoh: Bayar Listrik
Anda membayar tagihan listrik Rp 500.000.
| Akun | Debit | Kredit |
|---|---|---|
| Beban Listrik | 500.000 | |
| Kas/Bank | 500.000 |
- Beban bertambah → debit
- Kas (aset) berkurang → kredit
Bagan Akun (Chart of Accounts)
Bagan akun adalah daftar semua akun yang digunakan untuk mencatat transaksi.

Struktur Kode Akun
| Kode | Jenis | Contoh |
|---|---|---|
| 1.x.xx | Aset | Kas, Bank, Piutang, Peralatan |
| 2.x.xx | Kewajiban | Hutang Usaha, Hutang Pajak |
| 3.x.xx | Ekuitas | Modal, Laba Ditahan |
| 4.x.xx | Pendapatan | Pendapatan Jasa, Pendapatan Lain |
| 5.x.xx | Beban | Gaji, Sewa, Listrik, Internet |
Telegram Receipt
Fitur untuk mengirim foto struk via Telegram dan mencatat transaksi langsung.
Cara Penggunaan
- Buka Telegram, cari bot yang dikonfigurasi
- Kirim foto struk
- Bot akan meminta konfirmasi:
- Template transaksi
- Jumlah
- Keterangan
- Konfirmasi, transaksi akan tercatat
Catatan: Fitur ini perlu dikonfigurasi dulu oleh administrator. Lihat Setup Awal.
Tips untuk Pemula
- Catat segera - Catat transaksi sesegera mungkin setelah terjadi
- Simpan bukti - Simpan struk, invoice, dan dokumen pendukung
- Gunakan template - Aplikasi menyediakan template untuk transaksi umum
- Review rutin - Periksa laporan minimal sekali seminggu
- Posting langsung - Jangan tunda posting transaksi draft
- Rekonsiliasi - Cocokkan saldo aplikasi dengan saldo bank secara berkala
Istilah Penting
| Istilah | Artinya |
|---|---|
| Transaksi | Setiap kali uang masuk atau keluar |
| Posting | Menyimpan transaksi secara permanen |
| Draft | Transaksi yang masih bisa diedit |
| Akun | Kategori untuk mengelompokkan uang |
| Template | Format siap pakai untuk transaksi |
| Jurnal | Catatan debit/kredit dari transaksi |
| Debit | Kolom kiri (biasanya = bertambah untuk aset) |
| Kredit | Kolom kanan (biasanya = berkurang untuk aset) |
| Neraca | Laporan posisi keuangan |
| Laba Rugi | Laporan keuntungan/kerugian |
Lihat Glosarium untuk daftar istilah lengkap.
Lihat Juga
- Setup Awal - Konfigurasi awal aplikasi
- Aset Tetap - Pencatatan dan depresiasi aset
- Perpajakan - Transaksi pajak
- Referensi Template - Daftar template transaksi
Siklus Akuntansi
Siklus akuntansi adalah urutan langkah yang dilakukan berulang setiap periode:
1. Identifikasi Transaksi
↓
2. Catat di Jurnal
↓
3. Posting ke Buku Besar
↓
4. Susun Neraca Saldo
↓
5. Jurnal Penyesuaian
↓
6. Laporan Keuangan
↓
7. Jurnal Penutup
↓
8. Neraca Saldo Setelah Penutupan
Dalam aplikasi ini, langkah 2-3 dilakukan otomatis saat Anda mencatat transaksi.
Transaksi Harian
Mencatat Pendapatan
Setiap kali Anda menerima uang:
- Buka menu Transaksi

- Klik Transaksi Baru
- Pilih template yang sesuai (contoh: "Pendapatan Jasa")
- Isi field:
- Tanggal: Tanggal uang diterima
- Jumlah: Nominal yang diterima
- Keterangan: Catatan untuk referensi
- Review preview jurnal
- Klik Simpan & Posting

Contoh Lengkap: Setoran Modal
Mari kita catat setoran modal awal perusahaan sebesar Rp 500.000.000.
Langkah 1: Buka Form Transaksi
- Klik menu Transaksi > Transaksi Baru
- Pilih template Setoran Modal

Langkah 2: Isi Data Transaksi
- Tanggal: 1 Januari 2024
- Jumlah: Rp 500.000.000
- Keterangan: Setoran Modal Awal 2024
- Referensi: CAP-2024-001
Preview Jurnal:
Dr. 1.1.01 Kas/Bank Rp 500.000.000
Cr. 3.1.01 Modal Saham Rp 500.000.000
Langkah 3: Simpan & Posting
Klik tombol Simpan & Posting. Sistem akan menampilkan detail transaksi.

Hasil:
- Status: Posted
- Jurnal otomatis dibuat
- Saldo Kas bertambah Rp 500.000.000
- Ekuitas bertambah Rp 500.000.000
Contoh Lengkap: Pendapatan dengan PPN
Mencatat pendapatan jasa konsultasi sebesar Rp 196.200.000 (termasuk PPN 11%).
Langkah 1: Pilih Template
Template: Pendapatan Jasa Konsultasi (dengan PPN)

Langkah 2: Isi Data
- Tanggal: 15 Januari 2024
- Jumlah Total: Rp 196.200.000
- Keterangan: Konsultasi Core Banking - Milestone 1
- Referensi: INV-2024-001
Perhitungan Otomatis:
DPP (Dasar Pengenaan Pajak) = 196.200.000 / 1.11 = Rp 176.756.757
PPN 11% = 176.756.757 × 11% = Rp 19.443.243
Total = Rp 196.200.000
Preview Jurnal:
Dr. 1.1.01 Kas/Bank Rp 196.200.000
Cr. 4.1.02 Pendapatan Jasa Rp 176.756.757
Cr. 2.2.01 Hutang PPN Rp 19.443.243
Langkah 3: Simpan & Posting

Verifikasi:
- Kas bertambah Rp 196.200.000
- Pendapatan diakui Rp 176.756.757
- Hutang PPN Rp 19.443.243 (akan disetor ke Dirjen Pajak)
Contoh Lengkap: Bayar Beban Operasional
Mencatat pembayaran lisensi software JetBrains IntelliJ.
Langkah 1: Pilih Template
Template: Bayar Beban Software & Lisensi

Langkah 2: Isi Data
- Tanggal: 15 Januari 2024
- Jumlah: Rp 3.330.000
- Keterangan: JetBrains IntelliJ License 2024
- Referensi: JB-2024-001
Preview Jurnal:
Dr. 5.1.21 Beban Software & Lisensi Rp 3.330.000
Cr. 1.1.01 Kas/Bank Rp 3.330.000
Langkah 3: Simpan & Posting

Hasil:
- Beban bertambah Rp 3.330.000
- Kas berkurang Rp 3.330.000
- Mempengaruhi laba rugi (mengurangi laba)
Mencatat Pengeluaran
Setiap kali Anda mengeluarkan uang:
- Buka menu Transaksi
- Klik Transaksi Baru
- Pilih template yang sesuai (contoh: "Beban Operasional")
- Isi field:
- Tanggal: Tanggal pembayaran
- Jumlah: Nominal yang dibayar
- Keterangan: Catatan (contoh: "Bayar listrik November")
- Review preview jurnal
- Klik Simpan & Posting
Transfer Antar Akun
Saat memindahkan uang antar rekening:
- Buka menu Transaksi
- Klik Transaksi Baru
- Pilih template "Transfer Antar Akun"
- Isi:
- Dari Akun: Rekening sumber
- Ke Akun: Rekening tujuan
- Jumlah: Nominal transfer
- Klik Simpan & Posting
Jurnal & Buku Besar
Apa Itu Jurnal?
Jurnal adalah catatan debit/kredit yang dihasilkan dari transaksi.

Aplikasi ini menggunakan pendekatan transaction-centric - Anda mencatat transaksi, sistem otomatis membuat jurnal yang benar.
Status Transaksi
| Status | Arti |
|---|---|
| Draft | Tersimpan tapi belum mempengaruhi saldo |
| Posted | Sudah diposting, mempengaruhi saldo |
| Void | Dibatalkan, jurnal reversal dibuat |
Penyesuaian
Apa Itu Penyesuaian?
Penyesuaian adalah koreksi yang dilakukan di akhir periode untuk memastikan laporan keuangan akurat.
Jenis Penyesuaian
| Jenis | Contoh | Akun yang Terlibat |
|---|---|---|
| Beban Dibayar Dimuka | Sewa dibayar setahun | Beban Sewa, Sewa Dibayar Dimuka |
| Beban Akrual | Gaji belum dibayar | Beban Gaji, Hutang Gaji |
| Penyusutan | Depresiasi peralatan | Beban Penyusutan, Akum. Penyusutan |
Jadwal Amortisasi
Untuk beban yang dibayar dimuka (sewa tahunan, asuransi, dll):

- Buka menu Amortisasi
- Klik Amortisasi Baru

- Isi:
- Nama jadwal
- Total nilai
- Tanggal mulai dan selesai
- Akun beban
- Sistem akan membuat jurnal amortisasi otomatis setiap bulan
Laporan Keuangan
Neraca Saldo (Trial Balance)
Daftar saldo semua akun. Total debit harus sama dengan total kredit.

Kapan digunakan: Untuk validasi bahwa pembukuan balance.
Laporan Laba Rugi (Income Statement)
Menampilkan pendapatan, beban, dan laba/rugi periode tertentu.

Struktur:
Pendapatan Rp 50.000.000
Total Beban Rp 30.000.000
─────────────────────────────────
LABA BERSIH Rp 20.000.000
Neraca (Balance Sheet)
Menampilkan posisi keuangan pada tanggal tertentu.

Struktur:
ASET
Aset Lancar Rp 100.000.000
Aset Tetap Rp 50.000.000
Total Aset Rp 150.000.000
KEWAJIBAN
Hutang Usaha Rp 20.000.000
Total Kewajiban Rp 20.000.000
EKUITAS
Modal Rp 100.000.000
Laba Ditahan Rp 30.000.000
Total Ekuitas Rp 130.000.000
TOTAL KEWAJIBAN + EKUITAS Rp 150.000.000
Persamaan yang harus balance: Aset = Kewajiban + Ekuitas
Tutup Buku
Apa Itu Tutup Buku?
Proses akhir tahun untuk:
- Menutup akun pendapatan dan beban (saldo menjadi nol)
- Memindahkan laba/rugi ke akun Laba Ditahan
Langkah Tutup Buku
- Buka menu Laporan > Penutupan Tahun Buku

- Pilih tahun yang akan ditutup
- Review preview jurnal penutup:
- Tutup Pendapatan
- Tutup Beban
- Transfer ke Laba Ditahan
- Klik Eksekusi Penutupan
Jurnal Penutup yang Dibuat
1. Tutup Pendapatan
Dr. Pendapatan Jasa xxx
Cr. Laba Berjalan xxx
2. Tutup Beban
Dr. Laba Berjalan xxx
Cr. Beban Gaji xxx
Cr. Beban Sewa xxx
3. Transfer ke Laba Ditahan
Dr. Laba Berjalan xxx
Cr. Laba Ditahan xxx
Kapan Melakukan Tutup Buku?
Lakukan setelah:
- Semua transaksi tahun tersebut sudah dicatat
- Penyesuaian akhir tahun sudah dilakukan
- Penyusutan aset sudah dihitung
- Laporan keuangan sudah final
Konsep Depresiasi
Apa Itu Depresiasi?
Depresiasi (penyusutan) adalah alokasi biaya perolehan aset tetap selama masa manfaatnya. Aset tetap seperti komputer, kendaraan, dan peralatan kehilangan nilai seiring waktu karena pemakaian.
Mengapa Depresiasi Penting?
- Matching principle - Biaya aset dicocokkan dengan pendapatan yang dihasilkan
- Pajak - Beban penyusutan mengurangi penghasilan kena pajak
- Nilai aset akurat - Neraca menunjukkan nilai buku yang realistis
Metode Depresiasi
| Metode | Rumus | Karakteristik |
|---|---|---|
| Garis Lurus | (Harga Perolehan - Nilai Residu) / Masa Manfaat | Beban sama setiap tahun |
| Saldo Menurun | Nilai Buku × Tarif | Beban besar di awal, mengecil |
Regulasi Indonesia (PMK 96/PMK.03/2009):
- Kelompok 1 (4 tahun): 25% garis lurus, 50% saldo menurun
- Kelompok 2 (8 tahun): 12.5% garis lurus, 25% saldo menurun
- Kelompok 3 (16 tahun): 6.25% garis lurus, 12.5% saldo menurun
- Kelompok 4 (20 tahun): 5% garis lurus, 10% saldo menurun
Kategori Aset
Melihat Kategori Aset
Buka menu Aset Tetap > Kategori.

Kategori Standar (dari Seed Data)
| Kategori | Kelompok | Masa Manfaat | Metode |
|---|---|---|---|
| Komputer & Laptop | 1 | 4 tahun | Garis Lurus |
| Peralatan Kantor | 1 | 4 tahun | Garis Lurus |
| Kendaraan Roda 2 | 1 | 4 tahun | Garis Lurus |
| Kendaraan Roda 4 | 2 | 8 tahun | Garis Lurus |
| Perabotan | 2 | 8 tahun | Garis Lurus |
| Bangunan Permanen | 4 | 20 tahun | Garis Lurus |
Menambah Kategori Baru
- Klik Kategori Baru
- Isi:
- Nama kategori
- Kelompok pajak (1-4)
- Masa manfaat (tahun)
- Metode depresiasi
- Klik Simpan
Pencatatan Aset
Melihat Daftar Aset
Buka menu Aset Tetap > Daftar Aset.

Kolom yang ditampilkan:
- Kode aset
- Nama aset
- Kategori
- Tanggal perolehan
- Harga perolehan
- Nilai buku saat ini
- Status
Menambah Aset Baru
- Klik Aset Baru

- Isi data aset:
| Field | Keterangan |
|---|---|
| Kode Aset | Kode unik (contoh: AST-2025-001) |
| Nama Aset | Deskripsi aset |
| Kategori | Pilih dari dropdown |
| Tanggal Perolehan | Tanggal pembelian |
| Harga Perolehan | Nilai beli (termasuk biaya instalasi jika ada) |
| Nilai Residu | Estimasi nilai jual akhir (biasanya 0 untuk pajak) |
| Lokasi | Penempatan aset |
| Keterangan | Catatan tambahan (nomor seri, vendor, dll) |
- Klik Simpan
Jurnal yang Terbentuk (saat pembelian)
Dr. Aset Tetap - [Kategori] xxx
Cr. Kas/Bank xxx
Jadwal Depresiasi
Melihat Jadwal Depresiasi
Pada halaman detail aset, klik tab Depresiasi.

Tabel menampilkan:
- Bulan/tahun
- Beban penyusutan periode
- Akumulasi penyusutan
- Nilai buku akhir
Proses Depresiasi Bulanan
Sistem menghitung depresiasi secara otomatis setiap bulan. Jurnal yang dibuat:
Dr. Beban Penyusutan xxx
Cr. Akumulasi Penyusutan xxx
Contoh Perhitungan (Garis Lurus)
| Data | Nilai |
|---|---|
| Harga Perolehan | Rp 12.000.000 |
| Nilai Residu | Rp 0 |
| Masa Manfaat | 4 tahun |
Depresiasi per tahun: Rp 12.000.000 / 4 = Rp 3.000.000 Depresiasi per bulan: Rp 3.000.000 / 12 = Rp 250.000
Jenis Pajak di Indonesia
Pajak yang Dikelola Aplikasi
| Pajak | Tarif | Kewajiban |
|---|---|---|
| PPN | Nominal 12%, efektif 11% (DPP Nilai Lain) | PKP yang menyerahkan BKP/JKP |
| PPh 21 | Progresif | Pemberi kerja (pemotongan gaji) |
| PPh 23 | 2% (jasa), 15% (dividen) | Pemberi penghasilan |
| PPh 25 | Angsuran | Wajib pajak badan |
| PPh 4(2) | Final (varies) | Transaksi tertentu |
Transaksi PPN
Konsep PPN (DPP Nilai Lain — PMK 131/2024)
PPN Keluaran - PPN yang Anda pungut dari pembeli PPN Masukan - PPN yang Anda bayar ke penjual
Net PPN = PPN Keluaran - PPN Masukan
Sejak 1 Januari 2025, tarif PPN secara nominal naik menjadi 12%, namun menggunakan DPP Nilai Lain (PMK 131/2024) sehingga beban efektif tetap 11%:
- DPP = Harga Jual × 11/12 (DPP Nilai Lain)
- PPN = DPP × 12% = Harga Jual × 11/12 × 12% = Harga Jual × 11%
- Field
amountdi template = Harga Jual (sebelum PPN) - Formula template:
amount * 0.11= PPN efektif 11% dari Harga Jual
Mengapa formula 0.11 (bukan 0.12)? Tarif resmi PPN adalah 12%, tetapi DPP dihitung dari 11/12 × Harga Jual (PMK 131/2024 Pasal 3). Hasil akhirnya: PPN = 11% × Harga Jual. Di Faktur Pajak Coretax, DPP dan PPN 12% ditampilkan terpisah, tetapi secara akuntansi cukup catat PPN =
amount * 0.11.
Mencatat Pendapatan dengan PPN
- Buka menu Transaksi > Transaksi Baru

- Pilih template Pendapatan Jasa + PPN
- Isi Harga Jual (sebelum PPN), contoh: Rp 10.000.000
- Preview jurnal:
Dr. Bank 11.100.000 (amount * 1.11) Cr. Hutang PPN 1.100.000 (amount * 0.11) Cr. Pendapatan 10.000.000 (amount) - Klik Simpan & Posting
Mencatat Pembelian dengan PPN Masukan
- Pilih template Pembelian dengan PPN
- Isi Harga Jual (sebelum PPN), contoh: Rp 10.000.000
- Preview jurnal:
Dr. Beban/Aset 10.000.000 (amount) Dr. PPN Masukan 1.100.000 (amount * 0.11) Cr. Bank 11.100.000 (amount * 1.11)
Pendapatan Jasa BUMN (FP 03)
Untuk klien BUMN/Pemerintah yang menggunakan Faktur Pajak kode 03 (PPN dipungut pembeli):
- Pilih template Pendapatan Jasa BUMN (FP 03)
- Isi Harga Jual, contoh: Rp 10.000.000
- Preview jurnal:
Dr. Bank 9.800.000 (amount * 0.98) Dr. Kredit PPh 23 200.000 (amount * 0.02) Cr. Pendapatan 10.000.000 (amount) - PPN tidak masuk jurnal karena dipungut dan disetor oleh pembeli (BUMN)
Laporan Ringkasan PPN
Buka menu Laporan > Ringkasan PPN.

Transaksi PPh
Konsep PPN (DPP Nilai Lain — PMK 131/2024)
PPN Keluaran - PPN yang Anda pungut dari pembeli PPN Masukan - PPN yang Anda bayar ke penjual
Net PPN = PPN Keluaran - PPN Masukan
Sejak 1 Januari 2025, tarif PPN secara nominal naik menjadi 12%, namun menggunakan DPP Nilai Lain (PMK 131/2024) sehingga beban efektif tetap 11%:
- DPP = Harga Jual × 11/12 (DPP Nilai Lain)
- PPN = DPP × 12% = Harga Jual × 11/12 × 12% = Harga Jual × 11%
- Field
amountdi template = Harga Jual (sebelum PPN) - Formula template:
amount * 0.11= PPN efektif 11% dari Harga Jual
Mengapa formula 0.11 (bukan 0.12)? Tarif resmi PPN adalah 12%, tetapi DPP dihitung dari 11/12 × Harga Jual (PMK 131/2024 Pasal 3). Hasil akhirnya: PPN = 11% × Harga Jual. Di Faktur Pajak Coretax, DPP dan PPN 12% ditampilkan terpisah, tetapi secara akuntansi cukup catat PPN =
amount * 0.11.
Mencatat Pendapatan dengan PPN
- Buka menu Transaksi > Transaksi Baru

- Pilih template Pendapatan Jasa + PPN
- Isi Harga Jual (sebelum PPN), contoh: Rp 10.000.000
- Preview jurnal:
Dr. Bank 11.100.000 (amount * 1.11) Cr. Hutang PPN 1.100.000 (amount * 0.11) Cr. Pendapatan 10.000.000 (amount) - Klik Simpan & Posting
Mencatat Pembelian dengan PPN Masukan
- Pilih template Pembelian dengan PPN
- Isi Harga Jual (sebelum PPN), contoh: Rp 10.000.000
- Preview jurnal:
Dr. Beban/Aset 10.000.000 (amount) Dr. PPN Masukan 1.100.000 (amount * 0.11) Cr. Bank 11.100.000 (amount * 1.11)
Pendapatan Jasa BUMN (FP 03)
Untuk klien BUMN/Pemerintah yang menggunakan Faktur Pajak kode 03 (PPN dipungut pembeli):
- Pilih template Pendapatan Jasa BUMN (FP 03)
- Isi Harga Jual, contoh: Rp 10.000.000
- Preview jurnal:
Dr. Bank 9.800.000 (amount * 0.98) Dr. Kredit PPh 23 200.000 (amount * 0.02) Cr. Pendapatan 10.000.000 (amount) - PPN tidak masuk jurnal karena dipungut dan disetor oleh pembeli (BUMN)
Laporan Ringkasan PPN
Buka menu Laporan > Ringkasan PPN.

Periode Fiskal
Periode fiskal mengontrol kapan transaksi dapat diposting. Setiap bulan memiliki status yang menentukan apakah jurnal dapat dibuat di bulan tersebut.
Melihat Periode Fiskal
Buka menu Pengaturan > Periode Fiskal di sidebar.

Fitur daftar periode:
- Filter tahun — pilih tahun untuk melihat 12 periode
- Filter status — tampilkan semua atau filter berdasarkan status tertentu
Generate Periode Satu Tahun
Untuk membuat 12 periode sekaligus:
- Isi tahun pada kolom Tahun di bagian atas halaman
- Klik Generate
- Sistem membuat periode Januari–Desember untuk tahun tersebut (periode yang sudah ada dilewati)
Atau buat periode satuan via Periode Baru (pilih tahun dan bulan manual).
Status Periode
| Status | Label | Arti |
|---|---|---|
| OPEN | Terbuka | Transaksi dapat diposting ke periode ini |
| MONTH_CLOSED | Tutup Bulan | Transaksi tidak dapat diposting; periode masih bisa dibuka kembali |
| TAX_FILED | SPT Dilaporkan | SPT sudah dilaporkan ke DJP; periode tidak bisa dibuka kembali |
Alur status:
OPEN → MONTH_CLOSED → TAX_FILED
Detail Periode
Klik periode di daftar untuk melihat detail:
- Tanggal mulai dan berakhir
- Siapa dan kapan menutup bulan
- Siapa dan kapan melaporkan SPT
- Visualisasi alur status (3 tahap)
Menutup Periode
- Buka detail periode yang berstatus Terbuka
- Klik Tutup Bulan
- Konfirmasi pada dialog
Setelah ditutup, sistem memblokir posting transaksi ke periode tersebut. Jika ada transaksi draf yang belum diposting di periode tersebut, penutupan akan ditolak.
Melaporkan SPT
Setelah SPT Masa sudah dilaporkan ke DJP:
- Buka detail periode yang berstatus Tutup Bulan
- Klik Lapor SPT
- Konfirmasi pada dialog
Periode dengan status SPT Dilaporkan tidak bisa dibuka kembali.
Membuka Kembali Periode
Periode dengan status Tutup Bulan dapat dibuka kembali:
- Buka detail periode
- Klik Buka Kembali
- Konfirmasi pada dialog
Periode dengan status SPT Dilaporkan tidak bisa dibuka kembali.
Posting Guard
Saat pengguna mencoba memposting transaksi ke bulan yang sudah ditutup, sistem menampilkan pesan error dan transaksi tidak akan diposting. Pastikan periode dalam status Terbuka sebelum memposting transaksi.
Kalender Pajak
Melihat Kalender Pajak
Buka menu Pajak > Kalender Pajak.

Deadline Pajak Standar
| Pajak | Setor | Lapor |
|---|---|---|
| PPN | Akhir bulan berikutnya | Akhir bulan berikutnya |
| PPh 21 | Tgl 15 bulan berikutnya | Tgl 20 bulan berikutnya |
| PPh 23 | Tgl 15 bulan berikutnya | Tgl 20 bulan berikutnya |
| PPh 4(2) | Tgl 15 bulan berikutnya | Tgl 20 bulan berikutnya |
| PPh 25 | Tgl 15 bulan berikutnya | Tgl 20 bulan berikutnya |
Catatan: Deadline penyetoran PPh 21, PPh 23, dan PPh 4(2) berubah dari tanggal 10 menjadi tanggal 15 sesuai PMK 81/2024.
Kalender Tahunan

Menandai Selesai
- Klik deadline yang sudah diselesaikan
- Isi nomor bukti setor/lapor
- Klik Selesai
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 dan isi nilai
- Klik Simpan
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 dan isi nilai
- Klik Simpan
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
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
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
Aplikasi menggunakan metode TER (Tarif Efektif Rata-rata) sesuai PP 58/2023.
Kalkulator PPh 21
Buka menu Penggajian > Kalkulator PPh 21.

- Masukkan:
- Gaji bruto bulanan
- Status PTKP
- Tunjangan-tunjangan
- Sistem menghitung:
- Penghasilan bruto
- Biaya jabatan (5%, maks 500rb)
- BPJS yang dibayar karyawan
- Penghasilan neto
- PKP (Penghasilan Kena Pajak)
- PPh 21 terutang
Referensi (lihat Perpajakan)
- Tarif PPh 21 progresif
- PTKP per status
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
- Setup komponen dulu - Sebelum input karyawan
- Verifikasi BPJS - Pastikan nomor BPJS valid
- Review sebelum posting - Cek perhitungan PPh 21
- Backup sebelum posting - Jurnal tidak bisa di-reverse
- Arsip bukti potong - Simpan PDF untuk audit
Jenis Industri
Klasifikasi Industri
| Kategori | Karakteristik | Contoh |
|---|---|---|
| Jasa | Menjual keahlian/waktu | Konsultan, Software House |
| Dagang | Beli-jual barang | Toko online, Retailer |
| Manufaktur | Produksi barang | Pabrik, F&B Production |
| Pendidikan | Layanan edukasi | Universitas, Kursus |
Perbedaan Utama
| Aspek | Jasa | Dagang | Manufaktur |
|---|---|---|---|
| Produk | Tidak berwujud | Barang jadi | Barang diproduksi |
| Inventory | Tidak ada | Ada (barang dagang) | Ada (bahan baku + WIP + barang jadi) |
| HPP | Tidak ada | Harga beli barang | Biaya produksi |
| Revenue recognition | Saat jasa selesai | Saat barang diserahkan | Saat barang diserahkan |
Industri yang Didukung
1. Industri Jasa (IT Services PKP)
Karakteristik:
- Pendapatan berbasis proyek atau retainer
- Tidak ada persediaan barang
- Biaya utama: gaji karyawan
- Wajib PPN (PKP)
Fitur utama:
- Client Management
- Project Management dengan Milestone
- Invoice dan Penagihan
- Profitabilitas per Klien/Proyek
Seed pack: it-service
Lihat: Industri Jasa
2. Industri Dagang (Online Seller)
Karakteristik:
- Pendapatan dari penjualan barang
- Persediaan dengan metode FIFO atau Weighted Average
- HPP dihitung dari harga beli
- Multi-channel (Tokopedia, Shopee, dll)
Fitur utama:
- Product Management
- Inventory Transactions (Purchase, Sale, Adjustment)
- Stock Reports
- Profitabilitas Produk
Seed pack: online-seller
Lihat: Industri Dagang
3. Industri Manufaktur (Coffee Shop) [TBD]
Karakteristik:
- Produksi barang dari bahan baku
- Bill of Materials (BOM)
- Kalkulasi HPP produksi
- Persediaan multi-level (bahan baku, WIP, barang jadi)
Fitur utama:
- BOM (Bill of Materials)
- Production Orders
- Cost Calculation
- Inventory multi-level
Seed pack: coffee-shop
Lihat: Industri Manufaktur
4. Industri Pendidikan (Campus) [TBD]
Karakteristik:
- Pendapatan berbasis semester/tahun ajaran
- Tagihan ke mahasiswa (SPP, Uang Pangkal)
- Beasiswa dan potongan
- Piutang mahasiswa dengan cicilan
Fitur utama:
- Student Management
- Billing (SPP, Praktikum, Wisuda)
- Payment dan Installments
- Scholarship Management
- Receivables Aging per Student
Seed pack: campus
Lihat: Industri Pendidikan
Perbedaan Praktik Akuntansi
Chart of Accounts
Setiap industri memiliki COA yang disesuaikan:
| Industri | Akun Khusus |
|---|---|
| Jasa | WIP Proyek, Pendapatan Diterima Dimuka |
| Dagang | Persediaan Barang Dagang, HPP |
| Manufaktur | Bahan Baku, WIP, Barang Jadi, Overhead |
| Pendidikan | Piutang Mahasiswa, Pendapatan SPP |
Template Transaksi
Template disesuaikan dengan alur bisnis industri:
Jasa:
- Pendapatan Jasa + PPN
- Terima DP Proyek
- Pengakuan Pendapatan Milestone
Dagang:
- Pembelian Barang Dagang
- Penjualan dengan HPP
- Retur Pembelian/Penjualan
Manufaktur:
- Pembelian Bahan Baku
- Production Order
- Barang Jadi Masuk Gudang
Pendidikan:
- Tagihan SPP
- Terima Pembayaran SPP
- Beasiswa
Laporan Khusus
| Industri | Laporan Khusus |
|---|---|
| Jasa | Profitabilitas Proyek, Profitabilitas Klien |
| Dagang | Kartu Stok, Valuasi Persediaan, Profitabilitas Produk |
| Manufaktur | Production Cost Report, BOM Costing |
| Pendidikan | Receivables Aging per Student, Revenue per Program |
Karakteristik Industri Jasa
Ciri Khas
- Produk tidak berwujud - Menjual keahlian dan waktu
- Project-based - Pendapatan dari proyek dengan milestone
- Time & Material - Biaya berdasarkan jam kerja
- Retainer - Pendapatan berulang bulanan
- Tidak ada inventory - Tidak ada persediaan barang
Alur Bisnis Tipikal
Klien → Proposal → Kontrak → Proyek → Milestone → Invoice → Pembayaran
Client Management
Melihat Daftar Klien
Buka menu Proyek > Klien di sidebar.

Fitur daftar klien:
- Pencarian — cari berdasarkan nama atau kode klien
- Filter status — tampilkan semua, hanya Aktif, atau hanya Nonaktif
- Paginasi — navigasi halaman via HTMX (tanpa reload)
Menambah Klien Baru
- Klik Klien Baru di halaman daftar klien
- Isi data klien:
| Field | Keterangan | Wajib |
|---|---|---|
| Kode | Kode unik klien, misal CLT-001 | Ya |
| Nama | Nama perusahaan/perorangan | Ya |
| Kontak | Nama contact person | Tidak |
| Alamat email | Tidak | |
| Telepon | Nomor telepon | Tidak |
| Alamat | Alamat lengkap | Tidak |
| Catatan | Catatan tambahan | Tidak |
- Isi data pajak (bagian Informasi Pajak):
| Field | Keterangan |
|---|---|
| Tipe Identitas | NPWP untuk PKP, NIK untuk non-PKP |
| NPWP | Format: XX.XXX.XXX.X-XXX.XXX (15-16 digit) |
| NITKU | Nomor Identitas Tempat Kegiatan Usaha (22 karakter: NPWP + 6 digit kode cabang) |
| NIK | Nomor Induk Kependudukan (16 digit), untuk pembeli non-PKP |
- Klik Simpan
Data pajak klien (NPWP, NITKU) diperlukan untuk ekspor e-Faktur dan e-Bupot ke Coretax. Saat transaksi dicatat menggunakan template PPN, data counterparty pada detail pajak otomatis terisi dari data klien yang terhubung via proyek.
Detail Klien
Klik nama klien di daftar untuk membuka halaman detail. Informasi yang ditampilkan:
- Informasi Klien — kontak, email, telepon, alamat, catatan, tanggal dibuat
- Informasi Pajak — tipe identitas (NPWP/NIK), NPWP, NITKU, NIK
- Proyek — daftar proyek yang terhubung dengan klien (link ke detail proyek)
- Invoice — daftar invoice klien (nomor, tanggal, jatuh tempo, jumlah, status)
- Ringkasan Pajak — jumlah e-Faktur, e-Bupot, total DPP, total PPN, total PPh
Dari halaman detail, Anda dapat:
- Lihat Laporan — buka laporan statement klien
- Edit — ubah data klien
- Nonaktifkan/Aktifkan — ubah status aktif klien
Mengaktifkan/Menonaktifkan Klien
Klien yang tidak aktif tetap tersimpan di database tetapi tidak muncul di dropdown pemilihan klien. Untuk mengubah status:
- Buka halaman detail klien
- Klik Nonaktifkan (untuk menonaktifkan) atau Aktifkan (untuk mengaktifkan kembali)
Hak Akses
| Permission | Fungsi |
|---|---|
| CLIENT_VIEW | Melihat daftar dan detail klien |
| CLIENT_CREATE | Menambah klien baru |
| CLIENT_EDIT | Mengubah data klien |
| CLIENT_DELETE | Menghapus klien |
Project Management
Melihat Daftar Proyek
Buka menu Proyek > Daftar Proyek.

Detail Proyek
Klik pada proyek untuk melihat detail. Informasi yang ditampilkan:
- Status proyek
- Progress milestone
- Total nilai kontrak
- Pendapatan yang sudah diakui
- Invoice yang sudah diterbitkan
Menambah Proyek Baru
-
Klik Proyek Baru
-
Isi:
- Kode proyek
- Nama proyek
- Klien (pilih dari dropdown)
- Nilai kontrak
- Tanggal mulai & target selesai
- Deskripsi
-
Tab Milestone - Tambah milestone:
- Nama milestone
- Bobot (%)
- Target tanggal
-
Klik Simpan
Workflow Proyek
DRAFT → ACTIVE → COMPLETED
| Status | Arti |
|---|---|
| DRAFT | Proyek belum dimulai |
| ACTIVE | Proyek sedang berjalan |
| COMPLETED | Proyek selesai |
Update Progress Milestone
- Buka detail proyek
- Klik milestone
- Update status:
- Tanggal aktual selesai
- Catatan
- Klik Simpan
Saat milestone selesai, pendapatan dapat diakui proporsional sesuai bobot.
Template Transaksi Jasa
Template Standar
| Template | Fungsi |
|---|---|
| Pendapatan Jasa + PPN | Pendapatan dengan PPN 11% |
| Pendapatan Jasa tanpa PPN | Pendapatan tanpa PPN |
| Terima DP Proyek | DP masuk Pendapatan Diterima Dimuka |
| Pengakuan Pendapatan | Recognize revenue dari DDM |
| Beban Operasional | Pengeluaran operasional |
Melihat Template
Buka menu Pengaturan > Template.

Detail Template

Invoice & Penagihan
Melihat Daftar Invoice
Buka menu Invoice > Daftar Invoice untuk melihat semua invoice yang telah dibuat.
Membuat Invoice
- Klik Invoice Baru
- Pilih klien
- Pilih proyek (opsional)
- Isi item invoice:
- Deskripsi
- Quantity
- Harga satuan
- Sistem menghitung:
- Subtotal
- PPN (jika PKP)
- Total
- Klik Simpan
Workflow Invoice
DRAFT → SENT → PAID
Mencatat Pembayaran Invoice
Saat klien membayar:
- Buka invoice
- Klik Terima Pembayaran
- Isi:
- Tanggal terima
- Jumlah (bisa partial)
- Rekening penerima
- Klik Simpan
Jurnal yang dibuat:
Dr. Bank xxx
Cr. Piutang Usaha xxx
Profitabilitas Proyek
Laporan Profitabilitas Proyek
Buka menu Laporan > Profitabilitas Proyek untuk melihat analisis margin per proyek.
Metrik yang ditampilkan:
- Total revenue proyek
- Total cost (gaji, vendor, dll)
- Gross profit
- Profit margin (%)
Laporan Profitabilitas Klien
Buka menu Laporan > Profitabilitas Klien untuk melihat analisis revenue dan margin per klien.
Agregasi per klien:
- Total revenue dari klien
- Total cost
- Profit
- Jumlah proyek
Karakteristik Industri Dagang
Ciri Khas
- Jual barang jadi - Tidak ada proses produksi
- Inventory management - Persediaan barang dagang
- HPP (Harga Pokok Penjualan) - Biaya barang yang dijual
- Multi-channel - Marketplace, toko fisik, website
Alur Bisnis Tipikal
Supplier → Purchase → Inventory → Sale → Customer
Manajemen Produk
Melihat Daftar Produk
Buka menu Inventori > Produk.

Menambah Produk Baru
- Klik Produk Baru

- Isi:
- SKU (Stock Keeping Unit)
- Nama produk
- Kategori
- Harga jual
- Metode costing (FIFO / Weighted Average)
- Akun persediaan
- Akun HPP
- Klik Simpan
Kategori Produk
Buka menu Inventori > Kategori.

Metode Penilaian Persediaan
FIFO (First In First Out)
Barang yang masuk lebih dulu, keluar lebih dulu.
Contoh:
| Tanggal | Transaksi | Qty | Harga/Unit | Total |
|---|---|---|---|---|
| 1 Jan | Beli | 10 | Rp 100.000 | Rp 1.000.000 |
| 5 Jan | Beli | 10 | Rp 110.000 | Rp 1.100.000 |
| 10 Jan | Jual | 15 | - | - |
Perhitungan HPP (10 Jan):
- 10 unit dari pembelian 1 Jan @ Rp 100.000 = Rp 1.000.000
- 5 unit dari pembelian 5 Jan @ Rp 110.000 = Rp 550.000
- Total HPP = Rp 1.550.000
Sisa Stok:
- 5 unit @ Rp 110.000 = Rp 550.000
Weighted Average
Harga rata-rata tertimbang.
Contoh:
| Tanggal | Transaksi | Qty | Harga/Unit | Total | Avg Cost |
|---|---|---|---|---|---|
| 1 Jan | Beli | 10 | Rp 100.000 | Rp 1.000.000 | Rp 100.000 |
| 5 Jan | Beli | 10 | Rp 110.000 | Rp 1.100.000 | Rp 105.000 |
| 10 Jan | Jual | 15 | - | - | - |
Perhitungan Average Cost (5 Jan):
- Total nilai: Rp 1.000.000 + Rp 1.100.000 = Rp 2.100.000
- Total qty: 10 + 10 = 20 unit
- Average = Rp 2.100.000 / 20 = Rp 105.000/unit
Perhitungan HPP (10 Jan):
- 15 unit @ Rp 105.000 = Rp 1.575.000
Sisa Stok:
- 5 unit @ Rp 105.000 = Rp 525.000
Transaksi Pembelian
Contoh 1: Pembelian iPhone 15 Pro
Konteks: Toko Gadget Murah membeli 10 unit iPhone 15 Pro dari distributor resmi Erajaya.
Langkah 1: Buka Form Pembelian
Menu Inventori > Transaksi > Pembelian Baru

Langkah 2: Isi Data
- Tanggal: 5 Januari 2024
- Supplier: Erajaya
- Produk: iPhone 15 Pro (IP15PRO)
- Quantity: 10 unit
- Harga Beli: Rp 15.000.000/unit
- Total: Rp 150.000.000
- Referensi: PO-001
- Rekening: Bank BCA
Langkah 3: Simpan & Posting

Jurnal Otomatis:
Dr. 1.1.20 Persediaan Barang Dagang Rp 150.000.000
Cr. 1.1.01 Bank BCA Rp 150.000.000
Impact:
- Stok iPhone 15 Pro: 0 → 10 unit
- Nilai persediaan: +Rp 150.000.000
- Kas: -Rp 150.000.000
Contoh 2: Pembelian Samsung S24
Konteks: Membeli 20 unit Samsung Galaxy S24 dari Samsung Indonesia.

Data:
- Produk: Samsung Galaxy S24 (SGS24)
- Quantity: 20 unit
- Harga: Rp 12.000.000/unit
- Total: Rp 240.000.000
- Referensi: PO-002

Impact:
- Stok Samsung S24: 0 → 20 unit
- Nilai persediaan: +Rp 240.000.000
- Total persediaan: Rp 390.000.000
Contoh 3: Pembelian Accessories (USB-C Cable & Phone Case)
Konteks: Melengkapi stok accessories untuk bundling dengan smartphone.
Pembelian 1: USB-C Cable

- Produk: USB-C Cable (USBC)
- Quantity: 100 unit
- Harga: Rp 25.000/unit
- Total: Rp 2.500.000
- Referensi: PO-003

Pembelian 2: Phone Case

- Produk: Phone Case (CASE)
- Quantity: 200 unit
- Harga: Rp 15.000/unit
- Total: Rp 3.000.000
- Referensi: PO-004

Total Investasi Persediaan: Rp 395.500.000
Transaksi Penjualan
Contoh 1: Penjualan iPhone via Tokopedia
Konteks: Terjual 5 unit iPhone 15 Pro via Tokopedia, harga jual Rp 19 juta/unit.
Langkah 1: Buka Form Penjualan
Menu Inventori > Transaksi > Penjualan Baru

Langkah 2: Isi Data
- Tanggal: 15 Januari 2024
- Channel: Tokopedia
- Produk: iPhone 15 Pro (IP15PRO)
- Quantity: 5 unit
- Harga Jual: Rp 19.000.000/unit
- Total: Rp 95.000.000
- Referensi: TOPED-001
Langkah 3: Sistem Hitung HPP (FIFO)
Sistem otomatis ambil dari layer pembelian:
- Layer 1 (PO-001): 10 unit @ Rp 15.000.000
- Keluar: 5 unit @ Rp 15.000.000
- HPP: Rp 75.000.000
Langkah 4: Simpan & Posting

Jurnal Otomatis (2 entries):
Entry 1: Revenue Recognition
Dr. 1.1.01 Bank BCA Rp 95.000.000
Cr. 4.1.01 Penjualan Rp 95.000.000
Entry 2: COGS Recognition
Dr. 5.1.01 HPP Rp 75.000.000
Cr. 1.1.20 Persediaan Rp 75.000.000
Impact:
- Stok iPhone 15 Pro: 10 → 5 unit
- Revenue: Rp 95.000.000
- HPP: Rp 75.000.000
- Gross Profit: Rp 20.000.000
- Margin: 21.1%
Contoh 2: Penjualan Samsung via Shopee
Konteks: Terjual 8 unit Samsung S24 via Shopee, harga Rp 14 juta/unit.

Data:
- Channel: Shopee
- Produk: Samsung S24 (SGS24)
- Quantity: 8 unit
- Harga Jual: Rp 14.000.000/unit
- Total: Rp 112.000.000
- Referensi: SHOPEE-001
HPP Calculation (FIFO):
- Layer 1 (PO-002): 20 unit @ Rp 12.000.000
- Keluar: 8 unit @ Rp 12.000.000
- HPP: Rp 96.000.000

Jurnal:
Dr. Bank Rp 112.000.000
Cr. Penjualan Rp 112.000.000
Dr. HPP Rp 96.000.000
Cr. Persediaan Rp 96.000.000
Impact:
- Stok Samsung S24: 20 → 12 unit
- Revenue: Rp 112.000.000
- HPP: Rp 96.000.000
- Gross Profit: Rp 16.000.000
- Margin: 14.3%
Contoh 3: Penjualan Accessories
Penjualan USB-C Cable via Tokopedia:

- Quantity: 30 unit @ Rp 50.000 = Rp 1.500.000
- HPP: 30 × Rp 25.000 = Rp 750.000
- Gross Profit: Rp 750.000 (50% margin)

Penjualan Phone Case via Shopee:

- Quantity: 50 unit @ Rp 35.000 = Rp 1.750.000
- HPP: 50 × Rp 15.000 = Rp 750.000
- Gross Profit: Rp 1.000.000 (57.1% margin)

Laporan Persediaan
Stok Barang
Buka menu Inventori > Stok.

Transaksi Inventori
Buka menu Inventori > Transaksi.

Laporan Saldo Stok
Buka menu Inventori > Laporan > Saldo Stok.

Laporan Mutasi Stok
Buka menu Inventori > Laporan > Mutasi Stok.

Menampilkan kartu stok per produk:
- Tanggal transaksi
- Tipe (masuk/keluar)
- Qty
- Harga
- Saldo running
Profitabilitas Produk
Karakteristik Manufaktur
Ciri Khas
- Proses Produksi - Mengolah bahan baku menjadi barang jadi
- Bill of Materials (BOM) - Resep/formula produksi
- Production Orders - Perintah produksi dengan tracking cost
- Multi-stage Inventory - Bahan baku, WIP, dan barang jadi
- COGM (Cost of Goods Manufactured) - Harga pokok produksi
- Component Consumption - Konsumsi komponen saat produksi
Alur Bisnis Tipikal
Supplier → Raw Materials → Production → Finished Goods → Customer
Contoh Kasus: Kedai Kopi Nusantara
Kedai kopi & pastry yang memproduksi:
- Roti & pastry (Croissant, Roti Bakar Coklat)
- Menggunakan bahan baku: Tepung, Butter, Telur, Coklat, dll
- Produksi batch sesuai BOM
- Jual hasil produksi ke konsumen
Bill of Materials (BOM)
Konsep BOM
BOM adalah resep/formula produksi yang mendefinisikan:
- Barang jadi yang dihasilkan
- Komponen (bahan baku) yang dibutuhkan
- Kuantitas setiap komponen
- Output quantity per batch
Contoh: BOM Croissant
Output: 24 pcs Croissant
Komponen:
- Tepung Terigu: 3.00 kg
- Butter: 1.20 kg
- Telur: 24.00 butir
- Ragi: 50.00 gram
- Garam: 30.00 gram
Melihat Daftar BOM
Buka menu Inventori > Bill of Materials.

Detail BOM
Klik pada BOM untuk melihat detail:

Informasi yang ditampilkan:
- Kode BOM: BOM-CRS
- Produk Output: Croissant
- Output Quantity: 24 pcs per batch
- Daftar Komponen: Tabel dengan nama komponen, quantity, dan satuan
Menambah BOM Baru
-
Klik BOM Baru
-
Tab Informasi Dasar:
- Kode BOM (unik)
- Nama BOM (deskriptif)
- Produk Jadi (pilih dari dropdown)
- Output Quantity (berapa unit yang dihasilkan per batch)
- Status (Aktif/Nonaktif)
-
Tab Komponen:
- Klik Tambah Komponen
- Pilih produk (bahan baku)
- Isi quantity yang dibutuhkan
- Ulangi untuk semua komponen
-
Klik Simpan
Contoh: BOM Roti Bakar Coklat
Output: 20 pcs
Komponen:
- Tepung Terigu: 2.50 kg
- Butter: 1.00 kg
- Telur: 20.00 butir
- Ragi: 40.00 gram
- Garam: 25.00 gram
- Coklat Blok: 0.80 kg
Detail BOM Croissant

Detail BOM Roti Bakar Coklat

Production Order
Konsep Production Order
Production Order adalah perintah produksi untuk membuat barang jadi sesuai BOM.
Workflow:
DRAFT → IN_PROGRESS → COMPLETED
| Status | Arti | Aksi |
|---|---|---|
| DRAFT | Order belum dimulai | Edit, Start, Delete |
| IN_PROGRESS | Produksi sedang berjalan | Complete, Cancel |
| COMPLETED | Produksi selesai | View only (sudah ada transaksi inventory) |
Melihat Daftar Production Order
Buka menu Inventori > Production Orders.

Detail Production Order
Klik pada order untuk melihat detail:

Informasi yang ditampilkan:
- No. Order: PROD-001
- Tanggal Order: Kapan order dibuat
- BOM: BOM yang digunakan
- Produk Jadi: Croissant
- Jumlah Produksi: 24 pcs
- Status: COMPLETED
- Ringkasan Biaya: (tampil setelah COMPLETED)
- Total Biaya Komponen: Rp 106.920
- Jumlah Produksi: 24 pcs
- Harga Pokok per Unit: Rp 4.455
Tabel Komponen yang Dibutuhkan:
- Menampilkan semua komponen dari BOM
- Kebutuhan per BOM
- Total kebutuhan (dikalikan quantity order)
Membuat Production Order Baru
-
Klik Production Order Baru
-
Isi data:
- No. Order: Otomatis (PROD-XXX)
- Tanggal Order: Tanggal pembuatan order
- BOM: Pilih BOM yang akan diproduksi
- Quantity: Berapa batch yang akan diproduksi
- Target Selesai: (opsional) Target completion date
- Catatan: (opsional) Informasi tambahan
-
Klik Simpan → Status: DRAFT
Workflow Produksi
1. Start Production
Dari halaman detail order (status DRAFT):
- Klik Mulai Produksi
- Konfirmasi: "Pastikan semua komponen tersedia"
- Status berubah: DRAFT → IN_PROGRESS
Tidak ada transaksi inventory pada tahap ini.
2. Complete Production
Dari halaman detail order (status IN_PROGRESS):
- Klik Selesaikan Produksi
- Konfirmasi: "Komponen akan dikurangi dari stok dan produk jadi akan ditambahkan"
- Status berubah: IN_PROGRESS → COMPLETED
Transaksi Inventory Otomatis:
a. PRODUCTION_OUT - Konsumsi komponen:
- Tepung Terigu: -3.00 kg @ Rp 12.000 = -Rp 36.000
- Butter: -1.20 kg @ Rp 45.000 = -Rp 54.000
- Telur: -24 butir @ Rp 1.500 = -Rp 36.000
- Ragi: -50 gram @ Rp 30 = -Rp 1.500
- Garam: -30 gram @ Rp 14 = -Rp 420
Total: Rp 127.920
b. PRODUCTION_IN - Penerimaan barang jadi:
+ Croissant: 24 pcs @ Rp 4.455 = Rp 106.920
Unit Cost Calculation:
Unit Cost = Total Component Cost / Output Quantity
Unit Cost = Rp 106.920 / 24 pcs = Rp 4.455/pcs
Jurnal Otomatis:
Dr. 1.1.21 Persediaan Barang Jadi - Roti Rp 106.920
Cr. 1.1.20 Persediaan Bahan Baku - Roti Rp 106.920
Kalkulasi Biaya Produksi
Panduan lengkap untuk bisnis manufaktur sederhana (Home Industry, Bakery, Coffee Shop, Catering).
Manajemen Produk & Kategori
Kategori Produk
Buka menu Inventori > Kategori Produk.

Kategori Tipikal Manufaktur:
| Kategori | Jenis | Contoh |
|---|---|---|
| Bahan Baku Kopi | Raw Material | Biji Kopi, Susu, Gula Aren |
| Bahan Baku Roti | Raw Material | Tepung, Butter, Telur |
| Produk Jadi - Roti | Finished Goods | Croissant, Roti Bakar |
Daftar Produk
Buka menu Inventori > Produk.

Produk dibagi menjadi:
- Bahan Baku - Input untuk produksi (Tepung, Butter, Telur, Coklat)
- Barang Jadi - Output produksi (Croissant, Roti Bakar Coklat)
Menambah Produk Baru
-
Klik Produk Baru
-
Isi data produk:
- Kode: SKU unik (contoh: TEPUNG-TERIGU)
- Nama: Nama produk
- Kategori: Pilih kategori (Bahan Baku / Produk Jadi)
- Satuan: pcs, kg, liter, gram
- Metode Costing:
- FIFO (First In First Out)
- WEIGHTED_AVERAGE (Rata-rata Tertimbang)
- Track Inventory: ✓ (aktifkan untuk tracking stok)
- Minimum Stock: Alert stok rendah
- Harga Jual: Untuk barang jadi
- Akun:
- Inventory Account (1.1.20 - Persediaan Bahan Baku / 1.1.21 - Persediaan Barang Jadi)
- COGS Account (5.1.01 - HPP Bahan Baku / 5.2.01 - HPP Barang Jadi)
- Sales Account (4.1.02 - Pendapatan Penjualan)
-
Klik Simpan
Perbedaan Bahan Baku vs Barang Jadi:
| Aspek | Bahan Baku | Barang Jadi |
|---|---|---|
| Inventory Account | 1.1.20 Persediaan Bahan Baku | 1.1.21 Persediaan Barang Jadi |
| COGS Account | 5.1.01 HPP Bahan Baku | 5.2.01 HPP Barang Jadi |
| Harga Jual | 0 (tidak dijual langsung) | Sesuai harga pasar |
| Digunakan dalam | BOM sebagai komponen | BOM sebagai output |
Transaksi Inventory
Daftar Transaksi
Buka menu Inventori > Transaksi.

Tipe Transaksi:
| Tipe | Arti | Direction | Digunakan Untuk |
|---|---|---|---|
| PURCHASE | Pembelian | IN (+) | Beli bahan baku dari supplier |
| SALE | Penjualan | OUT (-) | Jual barang jadi ke customer |
| PRODUCTION_IN | Produksi Masuk | IN (+) | Terima barang jadi dari produksi |
| PRODUCTION_OUT | Produksi Keluar | OUT (-) | Konsumsi komponen untuk produksi |
| ADJUSTMENT_IN | Penyesuaian Masuk | IN (+) | Koreksi stok (selisih fisik) |
| ADJUSTMENT_OUT | Penyesuaian Keluar | OUT (-) | Koreksi stok (kerusakan, expired) |
Filter Transaksi
Gunakan filter untuk mempersempit pencarian:
- Produk: Pilih produk tertentu
- Tipe Transaksi: Pilih tipe (PURCHASE, SALE, PRODUCTION_IN, dll)
- Periode: Tanggal mulai - tanggal akhir
Pembelian Bahan Baku
Contoh: Pembelian Tepung Terigu
Menu Inventori > Transaksi > Pembelian Baru
Data:
- Tanggal: 1 Januari 2024
- Supplier: Bogasari
- Produk: Tepung Terigu (TEPUNG-TERIGU)
- Quantity: 50 kg
- Harga Beli: Rp 12.000/kg
- Total: Rp 600.000
- Referensi: PO-001
Jurnal Otomatis:
Dr. 1.1.20 Persediaan Bahan Baku - Roti Rp 600.000
Cr. 1.1.01 Bank BCA Rp 600.000
Impact:
- Stok Tepung Terigu: 0 → 50 kg
- Nilai persediaan: +Rp 600.000
- Kas: -Rp 600.000
Penjualan Barang Jadi
Contoh: Penjualan Croissant
Menu Inventori > Transaksi > Penjualan Baru
Data:
- Tanggal: 10 Januari 2024
- Customer: Walk-in customer
- Produk: Croissant (CROISSANT)
- Quantity: 15 pcs
- Harga Jual: Rp 25.000/pcs
- Total: Rp 375.000
- Referensi: INV-001
Sistem hitung HPP otomatis (FIFO/Weighted Average):
- 15 pcs @ Rp 4.455 = Rp 66.825
Jurnal Otomatis:
Dr. 1.1.01 Bank BCA Rp 375.000
Cr. 4.1.02 Pendapatan Penjualan Roti Rp 375.000
Dr. 5.2.01 HPP Barang Jadi - Roti Rp 66.825
Cr. 1.1.21 Persediaan Barang Jadi - Roti Rp 66.825
Margin Analysis:
- Revenue: Rp 375.000
- COGS: Rp 66.825
- Gross Profit: Rp 308.175
- Margin: 82.18%
Stok Barang
Melihat Saldo Stok
Buka menu Inventori > Stok Barang.

Informasi yang ditampilkan:
- Kode Produk: SKU
- Nama Produk: Nama produk
- Kategori: Kategori produk
- Stok: Quantity tersedia
- Biaya Rata-rata: Average cost per unit
- Total Nilai: Quantity × Average Cost
- Status: Normal / Stok Rendah (jika di bawah minimum)
Contoh Stok Setelah Produksi & Penjualan:
| Produk | Stok | Avg Cost | Total Nilai |
|---|---|---|---|
| Croissant | 9 pcs | Rp 4.455 | Rp 40.095 |
| Roti Bakar Coklat | 8 pcs | Rp 5.123 | Rp 40.984 |
| Tepung Terigu | 44.50 kg | Rp 12.000 | Rp 534.000 |
| Butter | 46.60 kg | Rp 45.000 | Rp 2.097.000 |
Detail Stok per Produk
Klik pada produk untuk melihat:
- Informasi produk
- Saldo stok saat ini
- History transaksi
- FIFO layers (jika menggunakan FIFO)
Contoh Skenario Lengkap: Produksi Croissant
Langkah 1: Pembelian Bahan Baku
Beli semua komponen yang dibutuhkan:
- Tepung Terigu: 50 kg @ Rp 12.000 = Rp 600.000
- Butter: 50 kg @ Rp 45.000 = Rp 2.250.000
- Telur: 100 butir @ Rp 1.500 = Rp 150.000
- Ragi: 500 gram @ Rp 30 = Rp 15.000
- Garam: 1000 gram @ Rp 14 = Rp 14.000
Total Investasi: Rp 3.029.000
Langkah 2: Buat BOM
BOM: BOM-CRS - Croissant
Output: 24 pcs
Komponen:
- Tepung: 3.00 kg
- Butter: 1.20 kg
- Telur: 24 butir
- Ragi: 50 gram
- Garam: 30 gram
Langkah 3: Buat Production Order
Order: PROD-001
- BOM: BOM-CRS
- Quantity: 24 pcs (1 batch)
- Status: DRAFT
Langkah 4: Mulai Produksi
Klik Mulai Produksi → Status: IN_PROGRESS
(Tidak ada transaksi inventory pada tahap ini)
Langkah 5: Selesaikan Produksi
Klik Selesaikan Produksi → Status: COMPLETED
Transaksi Otomatis:
PRODUCTION_OUT (konsumsi):
- Tepung: -3.00 kg
- Butter: -1.20 kg
- Telur: -24 butir
- Ragi: -50 gram
- Garam: -30 gram
PRODUCTION_IN (hasil):
- Croissant: +24 pcs @ Rp 4.455
Biaya Produksi:
- Total Component Cost: Rp 106.920
- Unit Cost: Rp 4.455/pcs
Langkah 6: Jual Barang Jadi
Jual 15 pcs Croissant @ Rp 25.000 = Rp 375.000
Auto-COGS:
- HPP: 15 × Rp 4.455 = Rp 66.825
- Gross Profit: Rp 308.175
- Margin: 82.18%
Sisa Stok:
- Croissant: 24 - 15 = 9 pcs @ Rp 4.455
Best Practices Manufaktur
1. Setup BOM yang Akurat
- Ukur komponen dengan presisi - Pastikan quantity di BOM sesuai dengan realita produksi
- Update BOM jika ada perubahan resep - Jangan biarkan BOM kadaluarsa
- Dokumentasi - Tambahkan catatan/deskripsi untuk BOM yang kompleks
2. Production Order Workflow
- Pastikan stok cukup sebelum start production - Cek stok komponen terlebih dahulu
- Complete production tepat waktu - Jangan biarkan order IN_PROGRESS terlalu lama
- Track tanggal completion - Untuk analisis lead time produksi
3. Inventory Management
- Pembelian bahan baku - Beli dalam batch optimal (tidak terlalu banyak/sedikit)
- Monitor stok minimum - Set minimum stock untuk alert stok rendah
- Stock opname berkala - Lakukan adjustment untuk koreksi selisih fisik vs sistem
- FIFO untuk barang yang mudah rusak - Susu, telur, produk segar
- Weighted Average untuk barang tahan lama - Tepung, gula, garam
4. Costing & Profitability
- Review unit cost secara berkala - Cek apakah harga beli komponen naik
- Evaluasi margin - Pastikan margin cukup untuk cover overhead
- Analisis produk profitability - Fokus pada produk dengan margin tinggi
- Adjust harga jual jika perlu - Jika cost naik, pertimbangkan naikkan harga
5. Laporan & Monitoring
- Cek laporan stok - Weekly/monthly untuk monitor inventory value
- Laporan profitabilitas - Monthly untuk review product mix
- Track production volume - Berapa batch per bulan
- Monitor waste/scrap - Jika ada komponen terbuang, catat sebagai adjustment
Troubleshooting
Stok Komponen Tidak Cukup
Problem: Saat complete production, muncul error "Insufficient stock"
Solusi:
- Cek stok komponen di Inventori > Stok Barang
- Beli komponen yang kurang via Transaksi > Pembelian
- Atau kurangi quantity production order
Unit Cost Tidak Sesuai Ekspektasi
Problem: Unit cost terlalu tinggi/rendah
Penyebab:
- Harga beli komponen berubah
- Ada waste/scrap yang tidak tercatat
- BOM quantity tidak akurat
Solusi:
- Review harga beli komponen di transaksi pembelian
- Update BOM jika ada perubahan resep
- Catat waste sebagai adjustment (PRODUCTION_OUT tambahan)
FIFO vs Weighted Average
Kapan pakai FIFO:
- Barang yang mudah rusak (susu, telur, produk segar)
- Harga komponen sering berubah
- Perlu tracking detail per batch pembelian
Kapan pakai Weighted Average:
- Barang tahan lama (tepung, gula, garam)
- Harga relatif stabil
- Lebih simple untuk inventory management
Integrasi dengan Modul Lain
Perpajakan (Modul 4)
- PPN atas pembelian bahan baku - Jika supplier PKP
- PPN atas penjualan barang jadi - Jika bisnis sudah PKP
- PPh 23 atas jasa produksi - Jika menggunakan jasa maklon
Lihat 04-perpajakan.md untuk detail.
Penggajian (Modul 5)
- Gaji karyawan produksi - Baker, chef, operator
- Overhead cost - Alokasi gaji ke production cost (advanced)
Lihat 05-penggajian.md untuk detail.
Aset Tetap (Modul 3)
- Mesin produksi - Oven, mixer, dll
- Depresiasi - Alokasi ke production overhead (advanced)
Lihat 03-aset-tetap.md untuk detail.
Referensi
Akun COA untuk Manufaktur
| Kode | Nama Akun | Fungsi |
|---|---|---|
| 1.1.20 | Persediaan Bahan Baku | Inventory bahan baku |
| 1.1.21 | Persediaan Barang Jadi | Inventory finished goods |
| 1.1.22 | Persediaan WIP | Work in Process (advanced) |
| 4.1.02 | Pendapatan Penjualan | Revenue dari penjualan |
| 5.1.01 | HPP Bahan Baku | COGS bahan baku |
| 5.2.01 | HPP Barang Jadi | COGS finished goods |
| 5.3.01 | Biaya Produksi | Direct labor & overhead |
Lihat 12-lampiran-akun.md untuk daftar lengkap.
Template Transaksi
| Template | Fungsi |
|---|---|
| Pembelian Bahan Baku | Purchase raw materials |
| Transfer Produksi | PRODUCTION_OUT & PRODUCTION_IN |
| Penjualan + COGS | Sale dengan auto-COGS |
| Stock Adjustment | Koreksi stok (kerusakan, selisih) |
Lihat 12-lampiran-template.md untuk detail.
Kesimpulan
Modul manufaktur aplikasi ini cocok untuk:
- ✅ Home industry (kue, roti, katering)
- ✅ Bakery & coffee shop
- ✅ Small-scale manufacturing
- ✅ Simple BOM-based production
Fitur utama:
- Bill of Materials (BOM) management
- Production Order workflow dengan cost tracking
- Auto-COGS calculation
- FIFO & Weighted Average costing
- Production & profitability reports
Next Steps:
- Setup kategori produk (bahan baku vs barang jadi)
- Input master produk
- Buat BOM untuk setiap produk jadi
- Beli bahan baku
- Mulai produksi via production order
- Jual barang jadi dengan auto-COGS
Untuk pertanyaan lebih lanjut, lihat modul terkait di manual ini atau hubungi support.
Laporan Produksi
Laporan Saldo Stok
Menu Inventori > Laporan > Saldo Stok

Menampilkan snapshot stok semua produk pada tanggal tertentu.
Kolom:
- Produk
- Kategori
- Quantity
- Unit Cost
- Total Value
Export: PDF / Excel
Laporan Penilaian Persediaan
Menu Inventori > Laporan > Penilaian Persediaan

Menampilkan valuasi persediaan:
- FIFO: Breakdown per layer dengan tanggal, quantity, unit cost
- Weighted Average: Breakdown per transaksi dengan running average
Filter:
- Periode tanggal
- Kategori produk
- Metode costing
Laporan Profitabilitas Produk
Menu Inventori > Laporan > Profitabilitas Produk

Analisis margin per produk:
| Produk | Units Sold | Revenue | COGS | Gross Profit | Margin % |
|---|---|---|---|---|---|
| Croissant | 15 pcs | Rp 375.000 | Rp 66.825 | Rp 308.175 | 82.18% |
| Roti Bakar Coklat | 12 pcs | Rp 240.000 | Rp 61.476 | Rp 178.524 | 74.39% |
Insight:
- Produk mana yang paling profitable
- Evaluasi harga jual vs cost
- Keputusan produk mix
Karakteristik Industri Pendidikan
Ciri Khas
- Revenue berbasis semester - Pendapatan SPP, Uang Pangkal, Biaya Praktikum
- Accounts Receivable Management - Piutang mahasiswa dengan cicilan
- Scholarship & Discounts - Beasiswa prestasi dan kurang mampu
- Program-based Revenue - Laporan pendapatan per program studi
- Academic Calendar - Periode fiskal mengikuti tahun ajaran (Juli-Juni)
- Payroll Kompleks - Gaji dosen tetap, honorarium dosen tidak tetap, gaji karyawan
Alur Bisnis Tipikal
Pendaftaran → Tagihan SPP → Pembayaran (Lunas/Cicilan) → Beasiswa → Laporan Piutang
Contoh Kasus: STMIK Tazkia
Sekolah Tinggi Manajemen Informatika & Komputer dengan:
- 3 Program studi: Teknik Informatika (S1), Sistem Informasi (S1), Manajemen Informatika (D3)
- Pendapatan: SPP, Uang Pangkal, Biaya Praktikum, Wisuda
- Beasiswa: Prestasi (50%), Tidak Mampu (75%)
- Tahun ajaran: Juli-Juni
Chart of Accounts Khusus Pendidikan
Melihat Daftar Akun
Buka menu Akuntansi > Bagan Akun.

Akun Piutang Mahasiswa
| Kode | Nama Akun | Normal Balance |
|---|---|---|
| 1.1.10 | Piutang SPP Mahasiswa | Debit |
| 1.1.11 | Piutang Uang Pangkal | Debit |
| 1.1.12 | Piutang Biaya Praktikum | Debit |
| 1.1.13 | Piutang Wisuda | Debit |
Akun Pendapatan
| Kode | Nama Akun | Normal Balance |
|---|---|---|
| 4.1.01 | Pendapatan SPP | Kredit |
| 4.1.02 | Pendapatan Uang Pangkal | Kredit |
| 4.1.03 | Pendapatan Biaya Praktikum | Kredit |
| 4.1.04 | Pendapatan Wisuda | Kredit |
| 4.1.05 | Pendapatan Ujian | Kredit |
| 4.1.06 | Pendapatan Sertifikasi | Kredit |
Akun Beban Akademik
| Kode | Nama Akun | Normal Balance |
|---|---|---|
| 5.1.01 | Beban Gaji Dosen Tetap | Debit |
| 5.1.02 | Beban Honorarium Dosen Tidak Tetap | Debit |
| 5.1.10 | Beban Bahan Praktikum | Debit |
| 5.1.11 | Beban Pemeliharaan Lab | Debit |
Akun Beasiswa
| Kode | Nama Akun | Normal Balance |
|---|---|---|
| 5.3.01 | Beban Beasiswa Prestasi | Debit |
| 5.3.02 | Beban Beasiswa Tidak Mampu | Debit |

Template Transaksi Pendidikan
Melihat Template
Buka menu Pengaturan > Template.

Template Standar
| Template | Kategori | Fungsi |
|---|---|---|
| Tagihan SPP Mahasiswa | INCOME | Membuat piutang SPP per semester |
| Pembayaran SPP | RECEIPT | Mencatat pembayaran SPP (lunas/cicilan) |
| Tagihan Uang Pangkal | INCOME | Membuat piutang uang pangkal mahasiswa baru |
| Pembayaran Uang Pangkal | RECEIPT | Mencatat pembayaran uang pangkal |
| Tagihan Biaya Praktikum | INCOME | Membuat piutang biaya praktikum |
| Pembayaran Biaya Praktikum | RECEIPT | Mencatat pembayaran biaya praktikum |
| Tagihan Wisuda | INCOME | Membuat piutang biaya wisuda |
| Pembayaran Wisuda | RECEIPT | Mencatat pembayaran wisuda |
| Beasiswa Prestasi | EXPENSE | Memberikan beasiswa (mengurangi piutang) |
| Beasiswa Tidak Mampu | EXPENSE | Memberikan beasiswa (mengurangi piutang) |
Template Gaji & Operasional
| Template | Kategori | Fungsi |
|---|---|---|
| Gaji Dosen Tetap | EXPENSE | Pembayaran gaji bulanan dosen tetap |
| Honorarium Dosen Tidak Tetap | EXPENSE | Honorarium per SKS dosen tidak tetap |
| Gaji Karyawan | EXPENSE | Pembayaran gaji karyawan administrasi |
| Bayar BPJS Dosen | EXPENSE | BPJS Kesehatan & Ketenagakerjaan dosen |
| Bayar BPJS Karyawan | EXPENSE | BPJS Kesehatan & Ketenagakerjaan karyawan |
| Setor PPh 21 | PAYMENT | Penyetoran PPh 21 ke kas negara |

Transaksi Harian: Contoh Praktis
Transaksi 1: Tagihan SPP Semester Ganjil
Konteks: Ahmad Fauzi (NIM 2201010001) mahasiswa Teknik Informatika semester 3, tagihan SPP semester ganjil 2024/2025.
Data Mahasiswa:
- NIM: 2201010001
- Nama: Ahmad Fauzi
- Program Studi: Teknik Informatika (S1)
- Semester: 3
- SPP per semester: Rp 7.500.000
Langkah:
Menu Transaksi > Buat Transaksi > Pilih template Tagihan SPP Mahasiswa
Isi Data:
- Tanggal: 1 Juli 2024
- Jumlah: Rp 7.500.000
- Keterangan: Tagihan SPP Semester Ganjil 2024/2025 - Ahmad Fauzi (2201010001)
- Referensi: INV-SPP-2024-001
Jurnal Otomatis:
Dr. 1.1.10 Piutang SPP Mahasiswa Rp 7.500.000
Cr. 4.1.01 Pendapatan SPP Rp 7.500.000
Impact:
- Piutang SPP mahasiswa: +Rp 7.500.000
- Pendapatan SPP diakui: +Rp 7.500.000
- Outstanding receivable untuk Ahmad Fauzi: Rp 7.500.000
Transaksi 2: Pembayaran SPP (Lunas)
Konteks: Ahmad Fauzi membayar lunas SPP semester ganjil via transfer bank.
Langkah:
Menu Transaksi > Buat Transaksi > Pilih template Pembayaran SPP
Isi Data:
- Tanggal: 5 Juli 2024
- Jumlah: Rp 7.500.000
- Rekening: Bank BCA
- Keterangan: Pembayaran SPP Lunas - Ahmad Fauzi (2201010001)
- Referensi: PMT-SPP-2024-001
Jurnal Otomatis:
Dr. 1.1.02 Bank BCA Rp 7.500.000
Cr. 1.1.10 Piutang SPP Mahasiswa Rp 7.500.000
Impact:
- Kas bertambah: +Rp 7.500.000
- Piutang SPP berkurang: -Rp 7.500.000
- Outstanding receivable Ahmad Fauzi: Rp 0 (LUNAS)
Transaksi 3: Tagihan Uang Pangkal Mahasiswa Baru
Konteks: Siti Aminah (NIM 2401010001) mahasiswa baru Sistem Informasi, tagihan uang pangkal.
Data Mahasiswa:
- NIM: 2401010001
- Nama: Siti Aminah
- Program Studi: Sistem Informasi (S1)
- Semester: 1 (Mahasiswa Baru)
- Uang Pangkal: Rp 5.000.000
Langkah:
Menu Transaksi > Buat Transaksi > Pilih template Tagihan Uang Pangkal
Isi Data:
- Tanggal: 10 Juli 2024
- Jumlah: Rp 5.000.000
- Keterangan: Tagihan Uang Pangkal - Siti Aminah (2401010001) - Sistem Informasi
- Referensi: INV-UP-2024-001
Jurnal Otomatis:
Dr. 1.1.11 Piutang Uang Pangkal Rp 5.000.000
Cr. 4.1.02 Pendapatan Uang Pangkal Rp 5.000.000
Impact:
- Piutang Uang Pangkal: +Rp 5.000.000
- Pendapatan Uang Pangkal: +Rp 5.000.000
- Outstanding receivable Siti Aminah: Rp 5.000.000
Transaksi 4: Pembayaran Uang Pangkal (Cicilan 1)
Konteks: Siti Aminah membayar cicilan pertama Rp 2.500.000 (50% dari total).
Langkah:
Menu Transaksi > Buat Transaksi > Pilih template Pembayaran Uang Pangkal
Isi Data:
- Tanggal: 15 Juli 2024
- Jumlah: Rp 2.500.000
- Rekening: Bank Mandiri
- Keterangan: Pembayaran UP Cicilan 1/2 - Siti Aminah (2401010001)
- Referensi: PMT-UP-2024-001-1
Jurnal Otomatis:
Dr. 1.1.03 Bank Mandiri Rp 2.500.000
Cr. 1.1.11 Piutang Uang Pangkal Rp 2.500.000
Impact:
- Kas bertambah: +Rp 2.500.000
- Piutang berkurang: -Rp 2.500.000
- Outstanding receivable Siti Aminah: Rp 2.500.000 (masih kurang)
Transaksi 5: Beasiswa Prestasi
Konteks: Budi Hartono (NIM 2201020001) mahasiswa MI semester 5 mendapat beasiswa prestasi 50% karena IPK 3.8.
Data:
- NIM: 2201020001
- Nama: Budi Hartono
- Program: Manajemen Informatika (D3)
- Tagihan SPP: Rp 6.000.000
- Beasiswa: 50% = Rp 3.000.000
Langkah 1: Buat Tagihan SPP
Template Tagihan SPP Mahasiswa
- Jumlah: Rp 6.000.000
- Keterangan: Tagihan SPP Semester Ganjil - Budi Hartono (2201020001)
Langkah 2: Berikan Beasiswa
Menu Transaksi > Buat Transaksi > Pilih template Beasiswa Prestasi
Isi Data:
- Tanggal: 1 Juli 2024
- Jumlah: Rp 3.000.000
- Keterangan: Beasiswa Prestasi 50% IPK 3.8 - Budi Hartono (2201020001)
- Referensi: BEASISWA-PRESTASI-001
Jurnal Otomatis:
Dr. 5.3.01 Beban Beasiswa Prestasi Rp 3.000.000
Cr. 1.1.10 Piutang SPP Mahasiswa Rp 3.000.000
Impact:
- Beban beasiswa: +Rp 3.000.000
- Piutang SPP berkurang: -Rp 3.000.000
- Outstanding receivable Budi: Rp 3.000.000 (setelah beasiswa)

Transaksi 6: Beasiswa Tidak Mampu
Konteks: Agus Wijaya (NIM 2301010003) mahasiswa SI semester 3 mendapat beasiswa kurang mampu 75%.
Data:
- NIM: 2301010003
- Nama: Agus Wijaya
- Program: Sistem Informasi (S1)
- Tagihan SPP: Rp 7.500.000
- Beasiswa: 75% = Rp 5.625.000
Langkah 1: Buat Tagihan SPP
Template Tagihan SPP Mahasiswa
- Jumlah: Rp 7.500.000
- Keterangan: Tagihan SPP Semester Ganjil - Agus Wijaya (2301010003)
Langkah 2: Berikan Beasiswa
Menu Transaksi > Buat Transaksi > Pilih template Beasiswa Tidak Mampu
Isi Data:
- Tanggal: 1 Juli 2024
- Jumlah: Rp 5.625.000
- Keterangan: Beasiswa Tidak Mampu 75% - Agus Wijaya (2301010003)
- Referensi: BEASISWA-TM-001
Jurnal Otomatis:
Dr. 5.3.02 Beban Beasiswa Tidak Mampu Rp 5.625.000
Cr. 1.1.10 Piutang SPP Mahasiswa Rp 5.625.000
Impact:
- Beban beasiswa: +Rp 5.625.000
- Piutang SPP berkurang: -Rp 5.625.000
- Outstanding receivable Agus: Rp 1.875.000 (setelah beasiswa 75%)
Transaksi 7: Gaji Dosen Tetap
Konteks: Pembayaran gaji bulanan Agustus 2024 untuk Dr. Siti Nurjanah M.Kom (dosen tetap TI).
Data Dosen:
- NIK: EMP-D001
- Nama: Dr. Siti Nurjanah M.Kom
- Jabatan: Dosen Tetap Teknik Informatika
- Gaji Pokok: Rp 8.500.000
- Tunjangan Fungsional: Rp 2.000.000
- Total Gaji: Rp 10.500.000
Langkah:
Menu Transaksi > Buat Transaksi > Pilih template Gaji Dosen Tetap
Isi Data:
- Tanggal: 25 Agustus 2024
- Jumlah: Rp 10.500.000
- Rekening: Bank BCA
- Keterangan: Gaji Agustus 2024 - Dr. Siti Nurjanah M.Kom (EMP-D001)
- Referensi: PAYROLL-DSN-202408-001
Jurnal Otomatis:
Dr. 5.1.01 Beban Gaji Dosen Tetap Rp 10.500.000
Cr. 1.1.02 Bank BCA Rp 10.500.000
Catatan: Untuk penggajian lengkap dengan BPJS dan PPh 21, lihat Bab 5: Penggajian.
Transaksi 8: Honorarium Dosen Tidak Tetap
Konteks: Pembayaran honorarium untuk dosen tidak tetap yang mengajar 4 SKS di bulan Agustus.
Data:
- Nama: Ir. Hendra Saputra M.T
- Mata Kuliah: Algoritma & Pemrograman (4 SKS)
- Honorarium: Rp 150.000/SKS
- Total: 4 SKS × Rp 150.000 = Rp 600.000
Langkah:
Menu Transaksi > Buat Transaksi > Pilih template Honorarium Dosen Tidak Tetap
Isi Data:
- Tanggal: 30 Agustus 2024
- Jumlah: Rp 600.000
- Rekening: Bank BCA
- Keterangan: Honorarium 4 SKS Agustus 2024 - Ir. Hendra Saputra M.T
- Referensi: HON-DSN-202408-001
Jurnal Otomatis:
Dr. 5.1.02 Beban Honorarium Dosen Tidak Tetap Rp 600.000
Cr. 1.1.02 Bank BCA Rp 600.000
Daftar Transaksi
Semua transaksi yang telah dibuat dapat dilihat di menu Akuntansi > Transaksi.

Laporan Keuangan Khusus Pendidikan
Laporan Laba Rugi
Buka menu Laporan > Laporan Laba Rugi.

Pendapatan Operasional:
- Pendapatan SPP
- Pendapatan Uang Pangkal
- Pendapatan Biaya Praktikum
- Pendapatan Wisuda
Beban Akademik:
- Beban Gaji Dosen Tetap
- Beban Honorarium Dosen Tidak Tetap
- Beban Bahan Praktikum
- Beban Pemeliharaan Lab
Beban Kemahasiswaan:
- Beban Beasiswa Prestasi
- Beban Beasiswa Tidak Mampu

Neraca (Balance Sheet)
Buka menu Laporan > Neraca.

Aset Lancar - Piutang:
- Piutang SPP Mahasiswa
- Piutang Uang Pangkal
- Piutang Biaya Praktikum
- Piutang Wisuda

Interpretasi:
- Piutang SPP tinggi → Banyak mahasiswa belum bayar/cicilan
- Piutang Uang Pangkal tinggi → Mahasiswa baru yang belum lunas
- Aging Analysis → Perlu strategi penagihan untuk piutang > 90 hari
Laporan Pendapatan per Program Studi
Konsep:
Laporan ini memecah pendapatan berdasarkan program studi untuk analisis profitabilitas.
Cara Manual (via Keterangan Transaksi):
Pastikan setiap transaksi pendapatan mencantumkan kode program di keterangan:
[TI]untuk Teknik Informatika[SI]untuk Sistem Informasi[MI]untuk Manajemen Informatika
Contoh:
Tagihan SPP Semester Ganjil 2024/2025 - Ahmad Fauzi (2201010001) - [TI]
Export & Analisis:
- Buka Laporan > Buku Besar > Akun 4.1.01 (Pendapatan SPP)
- Filter periode (1 semester)
- Export ke Excel
- Pivot table dengan kolom:
- Program (extract dari keterangan)
- Total Pendapatan
- Jumlah Mahasiswa
- Rata-rata per Mahasiswa
Hasil Analisis Contoh:
| Program | Total Pendapatan SPP | Jumlah Mahasiswa | Avg per Mhs |
|---|---|---|---|
| Teknik Informatika (S1) | Rp 375.000.000 | 50 | Rp 7.500.000 |
| Sistem Informasi (S1) | Rp 300.000.000 | 40 | Rp 7.500.000 |
| Manajemen Informatika (D3) | Rp 180.000.000 | 30 | Rp 6.000.000 |
| Total | Rp 855.000.000 | 120 | Rp 7.125.000 |

Laporan Piutang Mahasiswa
Receivables Aging Report
Konsep:
Analisis umur piutang untuk identifikasi mahasiswa yang perlu ditagih.
Kategori:
- Current (0-30 hari): Baru jatuh tempo
- 30-60 hari: Perlu reminder
- 60-90 hari: Perlu teguran
- > 90 hari: Perlu tindakan tegas (surat peringatan, blokir KRS)
Cara Manual:
- Buka Laporan > Buku Besar > Akun 1.1.10 (Piutang SPP)
- Export transaksi
- Analisis di Excel:
- Hitung selisih hari dari tanggal tagihan
- Group berdasarkan aging bucket
- Sort by amount descending
Contoh Hasil:
| NIM | Nama | Jumlah Piutang | Tgl Tagihan | Umur (Hari) | Status |
|---|---|---|---|---|---|
| 2201010005 | Rina Wati | Rp 7.500.000 | 01-Jul-24 | 95 | Overdue |
| 2301010007 | Hendra Saputra | Rp 3.750.000 | 15-Jul-24 | 80 | Overdue |
| 2401010002 | Dewi Lestari | Rp 7.500.000 | 01-Aug-24 | 35 | Current |
Enkripsi Dokumen & PII
Field-Level Encryption
Aplikasi mengenkripsi data sensitif (PII) menggunakan AES-256-GCM:
Data yang dienkripsi:
- NPWP karyawan
- Nomor rekening bank
- Alamat
- Nomor BPJS
- Nomor telepon
Document Storage Encryption
Dokumen yang diupload (struk, invoice, bukti potong) dienkripsi:
- Encryption at rest
- Unique key per document
- Backward compatible dengan dokumen lama
Implikasi untuk User
- Data terenkripsi tidak bisa di-query langsung di database
- Export data tetap menampilkan data asli (untuk authorized user)
- Backup database tetap aman (data terenkripsi)
Audit Log Keamanan
Apa yang Di-log?
| Aktivitas | Contoh |
|---|---|
| Login | User login/logout, failed attempts |
| Data Access | View data sensitif |
| Data Modification | Create, Update, Delete |
| Export | Download report, export data |
| Security Events | Password change, role change |
Melihat Audit Log
Buka menu Pengaturan > Audit Log.

Filter yang tersedia:
- Tanggal (dari-sampai)
- User
- Tipe aktivitas
- Entity yang diakses
Retention Policy
- Audit log disimpan minimal 2 tahun
- Log tidak bisa dihapus oleh user biasa
- Hanya ADMIN yang bisa mengakses audit log
Kebijakan Data (GDPR/UU PDP)
Panduan fitur keamanan dan kepatuhan regulasi (GDPR, UU PDP).
Kebijakan Data (GDPR / UU PDP)
Prinsip yang Diimplementasikan
| Prinsip | Implementasi |
|---|---|
| Lawfulness | Consent management |
| Purpose limitation | Data hanya untuk tujuan yang dinyatakan |
| Data minimization | Hanya kumpulkan data yang diperlukan |
| Accuracy | User bisa update data sendiri |
| Storage limitation | Retention policy |
| Integrity | Encryption, audit log |
| Accountability | Audit trail |
Data Subject Management
Buka menu Pengaturan > Data Subjects.

Fitur:
- Register data subject (karyawan, klien)
- Track consent
- Manage data processing activities
Privacy Settings
Buka menu Pengaturan > Privacy.

Konfigurasi:
- Data retention period
- Consent requirements
- Data masking rules
Keamanan Password
Kebijakan Password
| Requirement | Value |
|---|---|
| Minimum length | 12 karakter |
| Uppercase | Minimal 1 |
| Lowercase | Minimal 1 |
| Number | Minimal 1 |
| Special char | Minimal 1 |
Account Lockout
| Parameter | Value |
|---|---|
| Max failed attempts | 5 |
| Lockout duration | 30 menit |
| Reset after | Successful login |
Password Reset
- User request reset via "Lupa Password"
- Sistem kirim link ke email
- Link valid 1 jam
- User set password baru
Rate Limiting
Login Endpoint
| Parameter | Value |
|---|---|
| Max requests | 10 per menit |
| Block duration | 5 menit |
API Endpoints
| Parameter | Value |
|---|---|
| Max requests | 100 per menit |
| Block duration | 1 menit |
Data Anonymization
Kapan Digunakan?
- Data subject request deletion
- Retention period expired
- Test/development environment
Proses
- Identifikasi data subject
- Anonymize PII fields:
- Nama → "Anonymized User #123"
- NPWP → "XX.XXX.XXX.X-XXX.XXX"
- Alamat → "Anonymized Address"
- Retain non-PII untuk reporting
Data yang TIDAK di-anonymize
- Transaction amounts
- Account codes
- Dates
- Aggregated reports
Breach Response
Prosedur Breach
- Detect - Sistem mendeteksi anomali
- Contain - Isolasi sistem terdampak
- Assess - Evaluasi scope dan impact
- Notify - Lapor ke:
- Regulator (72 jam untuk GDPR)
- Data subjects yang terdampak
- Remediate - Perbaiki vulnerability
- Document - Catat seluruh proses
Monitoring
Sistem memonitor:
- Unusual login patterns
- Bulk data access
- Failed authentication spikes
- API abuse
Compliance Checklist
GDPR
- [x] Lawful basis for processing
- [x] Privacy notice
- [x] Consent management
- [x] Data subject rights (access, rectification, erasure)
- [x] Data breach notification procedure
- [x] Encryption at rest
- [x] Audit logging
UU PDP (Indonesia)
- [x] Persetujuan pemrosesan
- [x] Hak akses data pribadi
- [x] Hak koreksi
- [x] Hak penghapusan
- [x] Keamanan data
- [ ] Consent management UI (pending)
- [ ] DPO appointment (organizational)
Tips Keamanan
- Strong passwords - Gunakan password manager
- Regular review - Audit log review mingguan
- Principle of least privilege - Berikan akses minimal
- Update software - Patch security updates
- Backup encrypted - Backup database yang sudah terenkripsi
- Train users - Edukasi tentang phishing
Lihat Juga
- Setup Awal - User management
- Penggajian - Data PII karyawan
- Tutorial Akuntansi - Audit trail transaksi
Ekspor Data Subjek (DSAR)
Apa itu DSAR?
Data Subject Access Request - Hak subjek data untuk mendapatkan salinan data pribadinya.
Proses DSAR
- Terima request dari data subject
- Verifikasi identitas
- Generate export:
- Data pribadi
- History transaksi terkait
- Log aktivitas
- Deliver dalam format portable (JSON/PDF)
Batas Waktu
- GDPR: 30 hari
- UU PDP: 3×24 jam
Cara Generate Export
- Buka Pengaturan > Data Subjects
- Cari data subject
- Klik Export Data
- Sistem generate file
- Download dan deliver ke subject
Konsep Rekonsiliasi Bank
Apa Itu Rekonsiliasi Bank
Rekonsiliasi bank adalah proses mencocokkan catatan transaksi di buku besar (book) dengan mutasi rekening koran dari bank. Tujuannya memastikan bahwa saldo kas di pembukuan sesuai dengan saldo aktual di bank.
Mengapa Diperlukan
Saldo buku dan saldo bank sering berbeda karena:
| Penyebab | Contoh | Ada di |
|---|---|---|
| Biaya administrasi bank | Biaya admin bulanan Rp 15.000 | Bank saja |
| Pendapatan bunga | Bunga deposito yang belum dicatat | Bank saja |
| Cek beredar (outstanding check) | Cek yang sudah dicatat tapi belum dicairkan | Buku saja |
| Transfer belum dicatat | Pembayaran masuk yang belum di-input | Bank saja |
Rekonsiliasi mengidentifikasi selisih ini sehingga pembukuan dapat dikoreksi.
Alur Kerja
1. Import CSV 2. Buat Rekonsiliasi 3. Pencocokan 4. Laporan
dari bank (pilih statement) (auto/manual) (print/export)
Konfigurasi Parser Bank
Parser Bawaan
Aplikasi menyediakan parser bawaan untuk bank-bank utama Indonesia. Buka menu Rekonsiliasi Bank > Konfigurasi Parser.

Setiap parser mendefinisikan posisi kolom dalam file CSV: kolom tanggal, keterangan, debit, kredit, dan saldo.
Parser bawaan:
| Bank | Format Tanggal | Kolom |
|---|---|---|
| BCA | dd/MM/yyyy | Tanggal, Keterangan, Cabang, Debit, Credit, Saldo |
| Mandiri | dd/MM/yyyy | Tanggal, Keterangan, Debit, Kredit, Saldo |
| BNI | dd-MMM-yyyy | Tanggal, Keterangan, Cabang, Debit, Kredit, Saldo |
| BSI | dd/MM/yyyy | Tanggal, Keterangan, Debit, Kredit, Saldo |
| CIMB | dd/MM/yyyy | Tanggal, Keterangan, Debit, Kredit, Saldo |
Custom Parser
Jika bank tidak tersedia dalam daftar, buat parser kustom. Buka Konfigurasi Parser > Parser Baru.

Field yang perlu diisi:
- Tipe Bank: CUSTOM
- Nama Config: Nama deskriptif (contoh: "Bank Jatim CSV")
- Kolom Tanggal: Index kolom tanggal (dimulai dari 0)
- Kolom Keterangan: Index kolom deskripsi transaksi
- Format Tanggal: Pattern Java DateTimeFormatter (contoh:
dd/MM/yyyy)
Import Mutasi Bank
Persiapan File CSV
Download mutasi rekening dari internet banking dalam format CSV. Pastikan file memiliki header dan format sesuai dengan parser yang dipilih.
Contoh CSV BCA (bca-statement-202401.csv):
Tanggal,Keterangan,Cabang,Debit,Credit,Saldo
01/01/2024,"Setoran Modal Awal 2024",0316,,,500000000.00
15/01/2024,"Transfer Masuk - Konsultasi Core Banking",0316,,196200000.00,696200000.00
15/01/2024,"Transfer Keluar - JetBrains License",0316,3330000.00,,692870000.00
31/01/2024,"Transfer Keluar - AWS Cloud",0316,5550000.00,,687320000.00
31/01/2024,"Biaya Admin Bank BCA",0316,15000.00,,687305000.00
Form Import
Buka menu Rekonsiliasi Bank > Import Mutasi.

Isi data import:
- Rekening Bank: Pilih rekening (contoh: BCA - 1234567890)
- Parser Config: Pilih parser sesuai bank
- Periode Mulai: Tanggal awal mutasi (01/01/2024)
- Periode Akhir: Tanggal akhir mutasi (31/01/2024)
- File CSV: Upload file yang sudah didownload
Klik Import untuk memproses.
Daftar Mutasi
Setelah import, mutasi tampil di menu Rekonsiliasi Bank > Daftar Mutasi.

Detail Mutasi
Klik pada mutasi untuk melihat detail item yang berhasil di-parse.

Informasi yang ditampilkan:
- Bank: BCA
- Total Item: 5 transaksi
- Tabel Item: Tanggal, keterangan, debit/kredit, saldo
Proses Rekonsiliasi
Membuat Rekonsiliasi Baru
Buka menu Rekonsiliasi Bank > Rekonsiliasi Baru.

Pilih mutasi bank yang akan direkonsiliasi dari dropdown, lalu klik Buat Rekonsiliasi.
Detail Rekonsiliasi
Setelah dibuat, halaman detail menampilkan ringkasan:

Informasi yang ditampilkan:
- Status: IN_PROGRESS / COMPLETED
- Saldo Bank: Saldo akhir menurut bank (Rp 687.305.000)
- Saldo Buku: Saldo akhir menurut pembukuan
- Item Cocok: Jumlah transaksi yang sudah dicocokkan
- Selisih: Perbedaan antara saldo bank dan buku
Auto-Match (Pencocokan Otomatis)
Klik tombol Auto-Match untuk menjalankan pencocokan otomatis 3 tahap:
| Tahap | Metode | Kriteria |
|---|---|---|
| 1. Exact Match | Tanggal + jumlah persis sama | Tanggal dan nominal harus identik |
| 2. Fuzzy Date | Jumlah sama, tanggal berdekatan | Nominal identik, selisih tanggal maks 3 hari |
| 3. Keyword Match | Kata kunci di keterangan | Mencocokkan kata kunci keterangan bank vs buku |

Contoh hasil auto-match dengan data PT ArtiVisi:
| # | Item Bank | Jumlah | Match | Item Buku |
|---|---|---|---|---|
| 1 | Setoran Modal Awal 2024 | Rp 500.000.000 | Exact | Setoran Modal Awal 2024 |
| 2 | Transfer Masuk - Konsultasi Core Banking | Rp 196.200.000 | Exact | Konsultasi Core Banking - Milestone 1 |
| 3 | Transfer Keluar - JetBrains License | Rp 3.330.000 | Exact | JetBrains IntelliJ License 2024 |
| 4 | Transfer Keluar - AWS Cloud | Rp 5.550.000 | Exact | AWS Cloud Services Jan 2024 |
| 5 | Biaya Admin Bank BCA | Rp 15.000 | Bank Only | (tidak ada di buku) |
Manual Match
Item yang tidak ter-match otomatis dapat dicocokkan secara manual:
- Klik item bank yang belum cocok
- Pilih transaksi buku yang sesuai
- Konfirmasi pencocokan
Mark Bank-Only / Book-Only
Untuk item yang memang hanya ada di satu sisi:
-
Bank Only: Transaksi yang ada di bank tapi belum dicatat di buku. Contoh: Biaya Admin Bank BCA Rp 15.000 — perlu dibuat jurnal penyesuaian:
Dr. 6.1.01 Biaya Administrasi Bank Rp 15.000 Cr. 1.1.02 Bank BCA Rp 15.000 -
Book Only: Transaksi yang sudah dicatat di buku tapi belum muncul di bank. Contoh: cek yang sudah diterbitkan tapi belum dicairkan oleh penerima.
Laporan Rekonsiliasi
Buka laporan dari halaman detail rekonsiliasi, klik Laporan.

Laporan menampilkan:
- Header: Periode, rekening bank, tanggal rekonsiliasi
- Ringkasan saldo: Saldo bank vs saldo buku
- Item cocok: Daftar transaksi yang berhasil dicocokkan
- Item Bank Only: Transaksi bank tanpa pasangan di buku
- Item Book Only: Transaksi buku tanpa pasangan di bank
- Selisih: Total selisih yang perlu ditindaklanjuti
Gunakan tombol Print untuk mencetak atau export laporan.
Contoh Kasus Lengkap
Walk-through rekonsiliasi PT ArtiVisi Intermedia untuk periode Januari 2024.
Data Awal
- Rekening: BCA 1234567890, KCU Sudirman
- Akun GL: 1.1.02 Bank BCA
- Saldo awal: Rp 500.000.000
- Saldo akhir (bank): Rp 687.305.000
Langkah 1: Import Mutasi
Import file bca-statement-202401.csv yang berisi 5 item transaksi.
Langkah 2: Buat Rekonsiliasi
Pilih mutasi Januari 2024 dan buat rekonsiliasi baru. Sistem menampilkan 5 item bank dan transaksi buku yang tersedia.
Langkah 3: Jalankan Auto-Match
Klik Auto-Match. Hasil: 4 dari 5 item berhasil dicocokkan (Exact Match), 1 item tersisa (Biaya Admin Bank BCA).
Langkah 4: Tandai Bank Only
Item "Biaya Admin Bank BCA" Rp 15.000 tidak ada di pembukuan. Tandai sebagai Bank Only.
Tindak lanjut: buat jurnal penyesuaian untuk mencatat biaya admin tersebut di buku besar.
Langkah 5: Review Laporan
Buka laporan rekonsiliasi untuk verifikasi:
| Item | Bank | Buku | Status |
|---|---|---|---|
| Setoran Modal Awal 2024 | Rp 500.000.000 | Rp 500.000.000 | Cocok |
| Konsultasi Core Banking | Rp 196.200.000 | Rp 196.200.000 | Cocok |
| JetBrains License | Rp 3.330.000 | Rp 3.330.000 | Cocok |
| AWS Cloud | Rp 5.550.000 | Rp 5.550.000 | Cocok |
| Biaya Admin Bank BCA | Rp 15.000 | — | Bank Only |
Setelah semua item diproses, rekonsiliasi dapat di-complete.
Bantuan AI untuk Pencatatan Transaksi
Aplikasi ini mendukung pencatatan transaksi dengan bantuan AI assistant seperti Claude Code, Gemini CLI, atau asisten AI lainnya. AI assistant dapat membaca struk, invoice, atau dokumen keuangan lainnya, kemudian secara otomatis membuat transaksi akuntansi yang sesuai.
Fitur Utama:
- Autentikasi aman via OAuth 2.0 Device Flow
- AI membaca dan menganalisis dokumen (struk, invoice, bank statement)
- Template matching otomatis berdasarkan metadata
- User approval sebelum transaksi diposting
- Transaksi langsung tercatat (tanpa draft)
- Analisis keuangan: AI membaca laporan keuangan dan memberikan insight
Cara Kerja
Alur Umum
1. AI membaca OpenAPI spec (GET /v3/api-docs)
↓
2. AI melakukan autentikasi (OAuth 2.0 Device Flow)
↓
3. User mengirim struk/dokumen ke AI assistant
↓
4. AI menganalisis dokumen (merchant, jumlah, tanggal)
↓
5. AI mencocokkan template journal yang sesuai
↓
6. AI menampilkan preview dan meminta persetujuan user
↓
7. User menyetujui → AI posting transaksi ke aplikasi
↓
8. Transaksi tercatat di aplikasi
Keuntungan
- Cepat: Tidak perlu input manual di web
- Akurat: AI membaca struk dengan akurasi tinggi
- Konsisten: Template journal dipilih otomatis
- Audit Trail: Semua API call tercatat
API Discovery via OpenAPI Spec
Sebelum mulai berinteraksi dengan API, AI assistant sebaiknya membaca OpenAPI spec yang mendeskripsikan seluruh kemampuan API aplikasi ini. Spec ini di-generate otomatis oleh springdoc-openapi dan tersedia tanpa autentikasi.
Endpoint
GET /v3/api-docs
# Tidak perlu Authorization header
# Returns OpenAPI 3.x JSON spec
Swagger UI juga tersedia di /swagger-ui.html untuk eksplorasi interaktif.
Isi OpenAPI Spec
| Bagian | Deskripsi |
|---|---|
paths | Seluruh endpoint API, auto-generated dari controller annotations |
components.schemas | Request/response schema dari DTO records |
security | Bearer token authentication scheme |
x-authentication | Alur OAuth 2.0 Device Flow lengkap (step 1-3), daftar 8 scope, expiry |
x-workflows | 13 alur kerja end-to-end (receipt-based, text-based, direct posting, financial analysis, bank reconciliation, client onboarding, correction workflows, tax export) |
x-csv-files | 16 spesifikasi CSV untuk data import (nama kolom, tipe data, catatan) |
x-industries | Daftar kode industri yang didukung (it-service, online-seller, coffee-shop, campus) |
x-error-codes | 7 kode error dan HTTP status |
Cara AI Menggunakan OpenAPI Spec
1. AI membaca OpenAPI spec (GET /v3/api-docs)
↓
2. AI memahami:
- Endpoint apa saja yang tersedia (dari paths)
- Field apa yang wajib/opsional per endpoint (dari schemas)
- Scope apa yang diperlukan (dari x-authentication)
- Alur kerja (workflow) yang benar (dari x-workflows)
↓
3. AI mengikuti alur autentikasi dari x-authentication
↓
4. AI memanggil endpoint sesuai x-workflows
Keuntungan
- Auto-generated: Spec di-generate langsung dari kode (controller annotations, DTO records), sehingga selalu sinkron
- Standard format: OpenAPI 3.x yang dipahami oleh semua AI assistant dan developer tools
- AI extensions: Metadata khusus AI (workflows, CSV specs, industries) disimpan di
x-extensions - Swagger UI: Eksplorasi API interaktif di
/swagger-ui.html - Tanpa autentikasi: AI dapat membaca spec sebelum melakukan device flow
Untuk pengembang AI assistant: Langkah pertama integrasi adalah selalu
GET /v3/api-docsuntuk mengetahui endpoint, schema, dan workflow yang tersedia. Metadata AI ada dix-extensions.
Setup Autentikasi
AI assistant memerlukan autentikasi untuk mengakses aplikasi Anda. Proses ini menggunakan OAuth 2.0 Device Flow yang aman.
Langkah 1: AI Meminta Kode
AI assistant akan meminta device code dari aplikasi:
POST /api/device/code
{
"clientId": "claude-code"
}
Response:
{
"deviceCode": "a79d766e4972e61d...",
"userCode": "MBJN-KRFJ",
"verificationUri": "http://localhost:8080/device",
"interval": 5,
"expiresIn": 900
}
Langkah 2: User Otorisasi di Browser
AI akan menampilkan URL dan kode:
Please authorize this device:
URL: http://localhost:8080/device
Code: MBJN-KRFJ
Buka URL tersebut di browser, login, dan masukkan kode:

Langkah otorisasi:
- Login dengan username dan password Anda
- Verifikasi kode perangkat yang ditampilkan
- (Opsional) Beri nama perangkat, misalnya: "Claude Code di MacBook"
- Klik "Otorisasi Perangkat"
Keamanan: Kode device hanya berlaku 15 menit dan hanya bisa digunakan sekali.
Langkah 3: AI Mendapat Access Token
Setelah Anda otorisasi, AI akan mendapat access token:
{
"accessToken": "15d07ef9030cba7b...",
"tokenType": "Bearer",
"expiresIn": 2592000
}
Token ini berlaku 30 hari. AI akan menyimpannya untuk digunakan di request berikutnya.
Template Journal dengan Metadata
AI memilih template journal berdasarkan metadata semantik yang terdapat pada setiap template.
Contoh Response Template API
GET /api/templates
Authorization: Bearer {accessToken}
Response (contoh 1 template, field lines disertakan):
[
{
"id": "1bbc7ccc-4e8f-44ef-87d3-0cd011fbc56d",
"name": "Bayar Beban Listrik",
"category": "EXPENSE",
"description": "Pembayaran listrik kantor",
"semanticDescription": "Gunakan template ini untuk mencatat pembayaran tagihan listrik bulanan ke PLN atau penyedia listrik lainnya.",
"keywords": ["listrik", "electricity", "pln", "token", "utility"],
"exampleMerchants": ["PLN", "PLN Mobile", "Tokopedia PLN"],
"typicalAmountMin": 50000,
"typicalAmountMax": 5000000,
"merchantPatterns": [".*pln.*", ".*listrik.*"],
"lines": [
{
"lineOrder": 1,
"position": "DEBIT",
"accountId": "uuid-akun-beban-listrik",
"accountCode": "5.1.05",
"accountName": "Beban Listrik",
"accountHint": null,
"formula": "AMOUNT",
"description": null
},
{
"lineOrder": 2,
"position": "CREDIT",
"accountId": null,
"accountCode": null,
"accountName": null,
"accountHint": "Kas / Bank",
"formula": "AMOUNT",
"description": null
}
]
}
]
Setiap template menyertakan array lines yang menunjukkan struktur jurnal:
- accountId/accountCode/accountName: Akun tetap (sudah ditentukan di template)
- accountHint: Akun yang perlu dipilih saat transaksi (gunakan
accountSlotsdengan accountHint sebagai key untuk menentukan akun)
Catatan: Semua template dari seed pack (IT Service, Online Seller, Coffee Shop, Campus) sudah dilengkapi metadata semantik untuk AI matching.
Cara AI Matching Template
AI menggunakan metadata untuk mencocokkan template:
- Keyword matching: Cocokkan kategori/deskripsi dengan array
keywords - Merchant matching: Cocokkan nama merchant dengan
exampleMerchants - Regex pattern: Cocokkan dengan
merchantPatterns - Amount range: Validasi jumlah dalam rentang
typicalAmountMin-typicalAmountMax - Semantic similarity: Cocokkan deskripsi dengan
semanticDescription
Contoh matching:
- User: "Bayar listrik PLN 350 ribu"
- AI matching:
- Keyword: "listrik" ✓
- Merchant: "PLN" ✓
- Amount: 350000 (dalam range 50k-5jt) ✓
- Result: Template "Bayar Beban Listrik"
Posting Transaksi Langsung
Setelah AI matching template dan user approve, AI langsung posting transaksi (tanpa draft).
Request
POST /api/transactions
Authorization: Bearer {accessToken}
Content-Type: application/json
Body:
{
"templateId": "9aa9c785-bb32-4e1e-80db-1c30a10aa3e3",
"merchant": "Starbucks Grand Indonesia",
"amount": 85000,
"transactionDate": "2026-02-12",
"currency": "IDR",
"description": "Team coffee break at Starbucks",
"category": "Food & Beverage",
"items": ["Caffe Latte Grande", "Blueberry Muffin"],
"source": "claude-code",
"userApproved": true
}
Untuk template DETAILED yang menggunakan formula non-standar, tambahkan variables:
{
"templateId": "UUID-template-pembelian-aset",
"merchant": "Tokopedia",
"amount": 3681200,
"transactionDate": "2026-02-12",
"description": "Pembelian laptop Lenovo",
"source": "claude-code",
"userApproved": true,
"accountSlots": {
"ASET_TETAP": "UUID-akun-peralatan",
"BANK": "UUID-akun-bank"
},
"variables": {
"assetCost": 3681200
}
}
Response
{
"transactionId": "83da31e4-acdc-4ca9-898e-df2cefbe95c7",
"transactionNumber": "TRX-2026-0001",
"status": "POSTED",
"merchant": "Team coffee break at Starbucks",
"amount": 85000,
"transactionDate": "2026-02-12",
"description": "Team coffee break at Starbucks",
"journalEntries": [
{
"journalNumber": "JE-2026-0001-01",
"accountCode": "5.1.01",
"accountName": "Beban Gaji",
"debitAmount": 85000,
"creditAmount": 0
},
{
"journalNumber": "JE-2026-0001-02",
"accountCode": "2.1.10",
"accountName": "Hutang Gaji",
"debitAmount": 0,
"creditAmount": 85000
}
]
}
Verifikasi di Web UI
Setelah transaksi diposting, Anda dapat melihatnya di halaman Transaksi:

Transaksi yang dibuat via AI akan memiliki:
- Transaction Number: TRX-2026-0001 (auto-generated)
- Status: POSTED (langsung posted, bukan draft)
- Created By: Nama user yang otorisasi device
Buat Draft Langsung via API
Selain alur dari-teks/dari-struk, AI juga dapat membuat transaksi DRAFT langsung dengan template dan account overrides dalam satu panggilan. Alur ini cocok ketika AI sudah tahu template mana yang harus dipakai.
Request
POST /api/drafts
Authorization: Bearer {accessToken}
Content-Type: application/json
Body:
{
"templateId": "UUID-template",
"description": "Bayar listrik Januari 2026",
"amount": 350000,
"transactionDate": "2026-02-10",
"accountSlots": {
"Kas / Bank": "UUID-akun-bank-bca"
}
}
Field accountSlots memetakan accountHint template ke akun yang dipilih. Key = string accountHint dari template line, Value = UUID akun. Gunakan GET /api/templates untuk melihat accountHint mana yang perlu diisi.
Template DETAILED (Formula Non-Standar)
Beberapa template menggunakan formula selain amount (contoh: template "Pembelian Aset Tetap" menggunakan formula assetCost). Untuk template seperti ini, tambahkan field variables yang memetakan nama variabel formula ke nilainya:
{
"templateId": "UUID-template-pembelian-aset",
"description": "Pembelian laptop Lenovo untuk operasional kantor",
"amount": 3681200,
"transactionDate": "2026-02-10",
"accountSlots": {
"ASET_TETAP": "UUID-akun-peralatan-kantor",
"BANK": "UUID-akun-bank-bca"
},
"variables": {
"assetCost": 3681200
}
}
Field variables hanya diperlukan jika template menggunakan formula selain amount. Cek field formula di template lines (GET /api/templates) untuk mengetahui variabel yang dibutuhkan.
Response
{
"transactionId": "uuid-transaksi-baru",
"transactionNumber": null,
"status": "DRAFT",
"amount": 350000,
"transactionDate": "2026-02-10",
"description": "Bayar listrik Januari 2026",
"journalEntries": []
}
Transaksi dibuat dalam status DRAFT. Langkah selanjutnya:
- (Opsional) Preview jurnal:
GET /api/transactions/{id}/journal-preview - (Opsional) Koreksi:
PUT /api/transactions/{id} - Posting:
POST /api/transactions/{id}/post
Preview Jurnal Sebelum Posting
Sebelum mem-posting transaksi DRAFT, AI dapat melihat preview jurnal yang akan dihasilkan:
GET /api/transactions/{id}/journal-preview
Authorization: Bearer {accessToken}
Response:
{
"valid": true,
"errors": [],
"entries": [
{
"accountCode": "5.1.05",
"accountName": "Beban Listrik",
"debitAmount": 350000,
"creditAmount": 0
},
{
"accountCode": "1.1.02",
"accountName": "Bank BCA",
"debitAmount": 0,
"creditAmount": 350000
}
],
"totalDebit": 350000,
"totalCredit": 350000
}
Jika valid bernilai false, field errors berisi daftar masalah (contoh: akun belum dipilih untuk line dengan accountHint).
Koreksi Transaksi via AI
Jika AI salah mengklasifikasi transaksi atau ada kesalahan pada draft/transaksi, AI dapat memperbaikinya tanpa perlu intervensi manual di web UI.
Koreksi Draft (PENDING)
Draft yang masih berstatus PENDING dapat dikoreksi sebelum di-approve:
PATCH /api/drafts/{id}
Authorization: Bearer {accessToken}
Content-Type: application/json
Body (semua field opsional, hanya field yang dikirim yang diperbarui):
{
"merchantName": "Starbucks Reserve",
"amount": 95000,
"description": "Coffee meeting with client",
"suggestedTemplateId": "UUID-template-lain",
"category": "Entertainment"
}
Approve Draft → transactionId
Setelah approve, response menyertakan transactionId dari transaksi yang dibuat:
POST /api/drafts/{id}/approve
Response:
{
"draftId": "uuid-draft",
"status": "APPROVED",
"transactionId": "uuid-transaksi-yang-dibuat",
"merchant": "Starbucks Reserve",
"amount": 95000
}
Catatan: Draft endpoints mengembalikan
draftId(bukanid) untuk membedakan konteks draft dari transaksi.
Koreksi Transaksi DRAFT (Belum Posted)
Transaksi yang sudah di-approve dari draft tetapi belum di-post (status DRAFT) dapat dikoreksi:
PUT /api/transactions/{id}
Authorization: Bearer {accessToken}
Content-Type: application/json
Body (semua field opsional):
{
"templateId": "UUID-template-yang-benar",
"description": "Deskripsi yang diperbaiki",
"amount": 350000,
"transactionDate": "2026-02-10",
"accountSlots": {
"Kas / Bank": "UUID-akun-bank-lain"
}
}
Validasi:
- Hanya transaksi berstatus DRAFT yang bisa dikoreksi
- Tanggal transaksi tidak boleh di masa depan
accountSlotsdapat dikirim berulang kali (idempotent) — slot sebelumnya akan diganti
Hapus Transaksi DRAFT
Transaksi DRAFT yang salah total dapat dihapus:
DELETE /api/transactions/{id}
Authorization: Bearer {accessToken}
Response: 204 No Content
Hanya transaksi berstatus DRAFT yang bisa dihapus. Transaksi yang sudah POSTED tidak bisa dihapus via API.
Alur Koreksi
Skenario 1: Koreksi sebelum approve
PATCH /api/drafts/{id} → POST /api/drafts/{id}/approve
Skenario 2: Buat draft langsung, preview, lalu post
POST /api/drafts → GET /api/transactions/{id}/journal-preview
→ PUT /api/transactions/{id} (opsional) → POST /api/transactions/{id}/post
Skenario 3: Koreksi setelah approve, sebelum post
PUT /api/transactions/{id} → POST /api/transactions/{id}/post
Skenario 4: Hapus dan buat ulang
DELETE /api/transactions/{id} → (buat draft/transaksi baru)
Skenario 5: Void transaksi yang sudah POSTED
POST /api/transactions/{id}/void → (status jadi VOID, reversing entries dibuat otomatis)
Analisis Keuangan via AI
Selain mencatat transaksi, AI assistant juga dapat menganalisis data keuangan perusahaan Anda. Aplikasi menyediakan 10 endpoint read-only di bawah /api/analysis yang mengembalikan data terstruktur — AI yang menginterpretasikan datanya.
Endpoint Analisis
| Endpoint | Deskripsi | Parameter |
|---|---|---|
GET /api/analysis/snapshot | KPI bulanan (revenue, expense, profit, cash) | month (yyyy-MM) |
GET /api/analysis/trial-balance | Neraca saldo | asOfDate (yyyy-MM-dd) |
GET /api/analysis/income-statement | Laporan laba rugi | startDate, endDate |
GET /api/analysis/balance-sheet | Neraca | asOfDate |
GET /api/analysis/cash-flow | Laporan arus kas | startDate, endDate |
GET /api/analysis/tax-summary | Ringkasan pajak (PPN, PPh) | startDate, endDate |
GET /api/analysis/receivables | Piutang usaha | asOfDate |
GET /api/analysis/payables | Hutang usaha | asOfDate |
GET /api/analysis/accounts | Daftar akun (COA) | — |
GET /api/analysis/accounts/{id}/ledger | Buku besar per akun (running balance) | startDate, endDate |
GET /api/analysis/drafts | Draft transaksi pending | — |
Semua parameter wajib (tidak ada nilai default). Request tanpa parameter yang diperlukan akan mengembalikan HTTP 400.
Format Response
Semua endpoint mengembalikan format AnalysisResponse yang konsisten:
{
"reportType": "trial-balance",
"generatedAt": "2026-02-17T14:30:00",
"parameters": {
"asOfDate": "2026-01-31"
},
"data": { ... },
"metadata": {
"currency": "IDR",
"accountingBasis": "accrual",
"description": "Trial balance as of 2026-01-31..."
}
}
Field metadata memberikan konteks yang membantu AI memahami data (mata uang, basis akuntansi, penjelasan arti debit/credit, dll).
Contoh: KPI Snapshot
GET /api/analysis/snapshot?month=2026-01
Authorization: Bearer {accessToken}
Response:
{
"reportType": "snapshot",
"generatedAt": "2026-02-17T14:30:00",
"parameters": { "month": "2026-01" },
"data": {
"month": "2026-01",
"revenue": 50000000,
"revenueChange": 12.5,
"expense": 35000000,
"expenseChange": -3.2,
"netProfit": 15000000,
"profitChange": 8.7,
"profitMargin": 30.0,
"marginChange": 2.1,
"cashBalance": 125000000,
"receivablesBalance": 20000000,
"payablesBalance": 15000000,
"transactionCount": 47,
"cashBankItems": [
{ "accountName": "Kas", "balance": 25000000 },
{ "accountName": "Bank BCA", "balance": 100000000 }
]
},
"metadata": {
"currency": "IDR",
"accountingBasis": "accrual",
"description": "Financial KPI snapshot for 2026-01. Change percentages are vs previous month."
}
}
Contoh: Neraca Saldo
GET /api/analysis/trial-balance?asOfDate=2026-01-31
Authorization: Bearer {accessToken}
Response (ringkasan):
{
"reportType": "trial-balance",
"data": {
"items": [
{
"accountCode": "1.1.01",
"accountName": "Kas",
"accountType": "ASSET",
"normalBalance": "DEBIT",
"debitBalance": 25000000,
"creditBalance": 0
},
{
"accountCode": "4.1.01",
"accountName": "Pendapatan Jasa",
"accountType": "REVENUE",
"normalBalance": "CREDIT",
"debitBalance": 0,
"creditBalance": 50000000
}
],
"totalDebit": 85000000,
"totalCredit": 85000000
}
}
Contoh: Draft Transaksi Pending
GET /api/analysis/drafts
Authorization: Bearer {accessToken}
Response:
{
"reportType": "drafts",
"data": {
"items": [
{
"id": "a1b2c3d4-...",
"status": "PENDING",
"merchantName": "Starbucks Grand Indonesia",
"amount": 85000,
"currency": "IDR",
"transactionDate": "2026-02-12",
"source": "API",
"apiSource": "claude-code",
"overallConfidence": 0.95,
"suggestedTemplateName": "Konsumsi Karyawan",
"createdBy": "admin",
"createdAt": "2026-02-12T14:30:00"
}
],
"pendingCount": 1
}
}
AI dapat menggunakan data ini untuk merekomendasikan approval draft dengan confidence tinggi, atau menandai draft yang perlu review manual.
Contoh Interaksi Analisis
User:
Bagaimana kondisi keuangan bulan Januari?
AI:
Berdasarkan data keuangan Januari 2026:
Revenue: Rp 50.000.000 (+12.5% vs Desember)
Expense: Rp 35.000.000 (-3.2% vs Desember)
Net Profit: Rp 15.000.000 (+8.7%)
Margin: 30.0%
Kas & Bank:
- Kas: Rp 25.000.000
- Bank BCA: Rp 100.000.000
Piutang: Rp 20.000.000
Hutang: Rp 15.000.000
Bulan ini cukup baik — revenue naik, expense turun, dan
profit margin meningkat 2.1 poin.
User:
Ada pajak yang perlu dibayar?
AI:
Berdasarkan ringkasan pajak Januari 2026:
PPN Keluaran: Rp 5.000.000
PPN Masukan: Rp 2.000.000
PPN Kurang Bayar: Rp 3.000.000
PPh 23: Rp 1.500.000 (sudah dipotong)
PPh 21: Rp 2.800.000 (gaji karyawan)
Total kewajiban pajak bulan ini: Rp 7.300.000
Batas setor PPN: 31 Februari 2026
Otorisasi Scope
Token yang diterbitkan melalui Device Flow secara otomatis memiliki scope berikut:
drafts:create— membuat dan mengedit draft transaksidrafts:approve— approve/reject draftdrafts:read— membaca draftanalysis:read— membaca laporan keuangananalysis:write— mempublikasikan laporan analisistransactions:post— posting, koreksi, dan hapus transaksi DRAFTdata:import— import data dari file ZIPbills:read— membaca vendor billsbills:create— membuat vendor billsbills:approve— approve vendor bills
Tanpa scope yang sesuai, request akan ditolak dengan HTTP 403.
Inisialisasi Data Klien Baru
Untuk onboarding klien baru, AI membaca laporan keuangan klien (XLS/PDF neraca, laba rugi), mengekstrak struktur Chart of Accounts dan template jurnal, lalu menginisialisasi aplikasi secara programatis via POST /api/data-import.
Alur Kerja
1. AI menerima file XLS/PDF laporan keuangan klien
↓
2. AI mengekstrak struktur COA, template jurnal, dan data awal
↓
3. AI menghasilkan file CSV sesuai format yang diharapkan
↓
4. AI membuat ZIP dari file-file CSV tersebut
↓
5. AI mengirim ZIP ke POST /api/data-import
↓
6. Aplikasi memproses ZIP: truncate tabel yang ada data CSV-nya, lalu import
↓
7. Klien baru siap menggunakan aplikasi dengan COA dan template yang sesuai
Format CSV
ZIP berisi file CSV dengan nama berurut (dependency order). File yang paling umum untuk onboarding klien baru:
01_company_config.csv — Konfigurasi perusahaan (1 baris data):
company_name,company_address,company_phone,company_email,tax_id,npwp,nitku,fiscal_year_start_month,currency_code,signing_officer_name,signing_officer_title,company_logo_path,established_date,is_pkp,pkp_since,industry
02_chart_of_accounts.csv — Daftar akun:
account_code,account_name,account_type,parent_code,normal_balance,active,is_permanent
account_type:ASSET,LIABILITY,EQUITY,REVENUE,EXPENSEnormal_balance:DEBITatauCREDITparent_code: kosong jika akun top-level, isi kode parent jika sub-akun
04_journal_templates.csv — Template jurnal:
template_name,category,cash_flow_category,template_type,description,is_system,active,version,usage_count,last_used_at,semantic_description,keywords,example_merchants,typical_amount_min,typical_amount_max,merchant_patterns
category:REVENUE,EXPENSE,TRANSFER,ADJUSTMENT,PAYROLL,TAX,RECEIVABLE,PAYABLE,ASSET_PURCHASE,ASSET_DEPRECIATIONcash_flow_category:OPERATING,INVESTING,FINANCINGtemplate_type:SIMPLE,VARIABLE,SPLIT,MULTI_LINEkeywords,example_merchants,merchant_patterns: nilai dipisahkan dengan|(pipe)
05_journal_template_lines.csv — Baris template jurnal:
template_name,line_order,account_code,account_hint,position,formula,description
position:DEBITatauCREDITformula:AMOUNT(nilai penuh),AMOUNT * 0.11(PPN 11%), dsb.
Contoh Penggunaan API
curl -X POST https://akunting.example.com/api/data-import \
-H "Authorization: Bearer {accessToken}" \
-F "file=@seed-data.zip"
Response (HTTP 201):
{
"totalRecords": 45,
"documentCount": 0,
"durationMs": 1234
}
Referensi
- Lihat direktori
industry-seed/di source code untuk contoh lengkap seed data per industri (it-service, online-seller, coffee-shop) - Import mengganti (truncate) data pada tabel yang memiliki CSV di dalam ZIP. Tabel tanpa CSV di ZIP tidak terpengaruh
- File CSV boleh hanya berisi header (tanpa data) — tabel tersebut akan dilewati
Contoh Interaksi dengan AI
Skenario 1: Struk Kopi Starbucks
User:
[Kirim foto struk Starbucks]
AI:
📄 Saya menganalisis struk:
• Merchant: Starbucks Grand Indonesia
• Jumlah: Rp 85.000
• Tanggal: 12 Feb 2026
• Item: Caffe Latte Grande, Blueberry Muffin
Template yang cocok: "Konsumsi Karyawan" (confidence: 0.95)
Posting transaksi ini?
✓ Ya
✏️ Edit dulu
🔄 Pilih template lain
✗ Batal
User:
Ya
AI:
✓ Transaksi berhasil diposting!
Nomor: TRX-2026-0001
Status: POSTED
Jurnal:
[DEBIT] Beban Konsumsi Karyawan: Rp 85.000
[CREDIT] Kas: Rp 85.000
Skenario 2: Text Input Listrik
User:
Bayar listrik PLN 350 ribu
AI:
📄 Saya memahami:
• Merchant: PLN
• Jumlah: Rp 350.000
• Kategori: Utilities
Template yang cocok: "Bayar Beban Listrik"
Posting?
User:
Ya, tapi edit deskripsi dulu
AI:
Deskripsi apa yang Anda inginkan?
User:
Listrik bulan Januari 2026
AI:
✓ Siap posting:
• Merchant: PLN
• Jumlah: Rp 350.000
• Deskripsi: "Listrik bulan Januari 2026"
• Template: Bayar Beban Listrik
Posting sekarang? (ya/tidak)
User:
ya
AI:
✓ Posted TRX-2026-0002
Monitoring & Audit
Audit Log
Semua API call tercatat di audit log dengan detail:
- Event Type:
API_CALL - User: Username yang otorisasi device
- IP Address: IP address request
- Details: Source (claude-code), merchant, amount, confidence
Token Management (Self-Service)
Setiap user dapat melihat dan mencabut device token miliknya sendiri di halaman Perangkat API.
Lokasi: Sidebar → Master Data → Perangkat API, atau langsung buka /settings/devices

Informasi yang ditampilkan per token:
| Kolom | Deskripsi |
|---|---|
| Perangkat | Nama device (jika diisi saat otorisasi) |
| Client ID | Identifier aplikasi (contoh: claude-code) |
| Scope | Hak akses token (contoh: drafts:create,analysis:read) |
| Status | Aktif (hijau) atau Kedaluwarsa (abu-abu) |
| Dibuat | Waktu token diterbitkan |
| Terakhir Digunakan | Waktu terakhir token digunakan untuk API call |
| IP Terakhir | IP address terakhir yang menggunakan token |
Aksi yang tersedia:
- Cabut (per token): Mencabut satu token tertentu
- Cabut Semua: Mencabut semua token aktif sekaligus
Catatan: Setelah token dicabut, AI assistant yang menggunakan token tersebut tidak dapat mengakses API lagi. User perlu melakukan device flow ulang untuk mendapatkan token baru.
Admin view: Administrator juga dapat melihat dan mencabut token dari halaman detail pengguna di menu Pengguna > klik user > bagian Sesi Perangkat Aktif.
API Reference
Endpoint Summary
Discovery (public, tanpa autentikasi):
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /v3/api-docs | OpenAPI spec — seluruh endpoint, schema, x- extensions (workflow, scope, CSV specs) |
| GET | /swagger-ui.html | Swagger UI — eksplorasi API interaktif |
Autentikasi (public):
| Method | Endpoint | Deskripsi |
|---|---|---|
| POST | /api/device/code | Request device code |
| POST | /api/device/token | Poll for access token |
Draft Transaksi (scope: drafts:*, transactions:post):
| Method | Endpoint | Deskripsi |
|---|---|---|
| POST | /api/drafts | Buat DRAFT transaction langsung dengan template + overrides |
| POST | /api/drafts/from-receipt | Buat draft dari struk |
| POST | /api/drafts/from-text | Buat draft dari teks |
| GET | /api/drafts/{id} | Get draft by ID |
| PATCH | /api/drafts/{id} | Koreksi draft PENDING |
| POST | /api/drafts/{id}/approve | Approve draft (response menyertakan transactionId) |
| POST | /api/drafts/{id}/reject | Reject draft |
Template (scope: drafts:read, drafts:create):
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /api/templates | List templates dengan metadata dan lines |
| GET | /api/templates/{id} | Get single template dengan lines |
| POST | /api/templates | Buat template baru |
| PUT | /api/templates/{id} | Update template |
| DELETE | /api/templates/{id} | Hapus template (soft delete) |
Transaksi (scope: transactions:post):
| Method | Endpoint | Deskripsi |
|---|---|---|
| POST | /api/transactions | Post transaction langsung |
| PUT | /api/transactions/{id} | Koreksi transaksi DRAFT (termasuk accountSlots) |
| DELETE | /api/transactions/{id} | Hapus transaksi DRAFT |
| POST | /api/transactions/{id}/post | Post satu transaksi DRAFT |
| POST | /api/transactions/{id}/void | Void transaksi POSTED (buat reversing entries) |
| GET | /api/transactions/{id}/journal-preview | Preview jurnal entries sebelum posting |
| POST | /api/transactions/bulk-post | Batch post transaksi DRAFT |
Analisis Keuangan (scope: analysis:read):
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /api/analysis/company | Konfigurasi perusahaan (industry, currency, fiscal year) |
| GET | /api/analysis/snapshot | KPI bulanan |
| GET | /api/analysis/trial-balance | Neraca saldo |
| GET | /api/analysis/income-statement | Laporan laba rugi |
| GET | /api/analysis/balance-sheet | Neraca |
| GET | /api/analysis/cash-flow | Laporan arus kas |
| GET | /api/analysis/tax-summary | Ringkasan pajak |
| GET | /api/analysis/receivables | Piutang usaha |
| GET | /api/analysis/payables | Hutang usaha |
| GET | /api/analysis/accounts | Daftar akun (COA) |
| GET | /api/analysis/accounts/{id}/ledger | Buku besar per akun (running balance) |
| GET | /api/analysis/drafts | Draft transaksi pending |
| GET | /api/analysis/transactions | List transaksi dengan filter (status, category, date range, search) |
| GET | /api/analysis/transactions/{id} | Detail transaksi dengan jurnal entries |
| GET | /api/analysis/reports | Daftar laporan analisis |
Publikasi Laporan Analisis (scope: analysis:write):
| Method | Endpoint | Deskripsi |
|---|---|---|
| POST | /api/analysis/reports | Publikasi laporan analisis terstruktur |
Manajemen Data (scope: data:import):
| Method | Endpoint | Deskripsi |
|---|---|---|
| POST | /api/data-import | Import data dari file ZIP (COA, template, transaksi) |
Authentication
Endpoint yang tidak memerlukan autentikasi:
GET /v3/api-docs(OpenAPI spec)GET /swagger-ui.html(Swagger UI)POST /api/device/codePOST /api/device/token
Semua endpoint lainnya memerlukan Bearer token:
Authorization: Bearer {accessToken}
Rate Limiting
- Draft creation: 10 requests/menit per IP
- Transaction posting: 30 requests/menit per IP
Error Codes
| Code | Error | Deskripsi |
|---|---|---|
| 400 | MISSING_PARAMETER | Parameter wajib tidak dikirim (contoh: asOfDate) |
| 400 | INVALID_REQUEST | Request tidak valid (field required kosong, dll) |
| 401 | unauthorized | Token tidak valid atau expired |
| 403 | — | Scope tidak memadai (contoh: token tanpa analysis:read) |
| 404 | NOT_FOUND | Template/resource tidak ditemukan |
| 409 | CONFLICT | State conflict (contoh: transaksi sudah POSTED, tidak bisa dihapus) |
| 429 | RATE_LIMIT_EXCEEDED | Terlalu banyak request |
| 500 | INTERNAL_ERROR | Server error |
FAQ
Apakah data saya aman?
Ya. Autentikasi menggunakan OAuth 2.0 Device Flow yang merupakan standard industri. Access token:
- Tersimpan hanya di AI assistant Anda (tidak di server pihak ketiga)
- Berlaku maksimal 30 hari
- Dapat dicabut kapan saja di Settings
AI mana yang didukung?
API ini generik dan dapat digunakan oleh AI assistant apapun yang mendukung HTTP API:
- ✅ Claude Code
- ✅ Gemini CLI
- ✅ ChatGPT dengan plugin
- ✅ Custom script (curl, Python, dll)
Bagaimana jika AI salah pilih template?
Anda bisa:
- Koreksi draft: AI menggunakan
PATCH /api/drafts/{id}untuk memperbaiki draft sebelum approve - Koreksi transaksi DRAFT: AI menggunakan
PUT /api/transactions/{id}untuk reklasifikasi template sebelum posting - Hapus dan buat ulang: AI menggunakan
DELETE /api/transactions/{id}lalu buat transaksi baru - Void transaksi POSTED: AI menggunakan
POST /api/transactions/{id}/voiduntuk membatalkan transaksi yang sudah posted (reversing entries dibuat otomatis) - Edit di web: Setelah posted, edit transaksi di web UI
Apakah bisa batch import banyak transaksi?
Saat ini belum. Fitur batch import via CSV/Excel akan ditambahkan di versi berikutnya.
Bagaimana cara menambah metadata ke template?
Administrator dapat menambah metadata via:
- Web UI: Buka template > Edit > buka bagian Metadata AI > isi field yang diperlukan > Simpan. Lihat Referensi Template untuk detail field.
- API: PUT /api/templates/{id}
Troubleshooting
Error: "Authentication required" (401)
Penyebab: Token tidak valid atau expired
Solusi:
- Lakukan device flow authentication ulang
- Pastikan token disimpan dengan benar di AI assistant
- Cek apakah token sudah expired (30 hari)
Error: "Template not found" (404)
Penyebab: Template ID tidak valid
Solusi:
- Refresh template list: GET /api/templates
- Pastikan template ID yang dipilih ada di list
- Jangan hardcode template ID, selalu fetch dari API
AI matching template yang salah
Penyebab: Metadata template belum lengkap atau keyword tidak match
Solusi:
- Lengkapi metadata template: buka template > Edit > bagian Metadata AI
- Tambahkan keyword yang lebih spesifik
- Tambahkan merchant patterns (regex)
- User bisa override template saat approve
Transaction failed to post
Penyebab:
- Template tidak balanced (debit ≠ credit)
- Account tidak valid
- Tanggal transaksi invalid
Solusi:
- Cek template lines (harus ada debit dan credit)
- Cek account mapping
- Pastikan tanggal tidak di masa depan
Lihat Juga
- Setup Awal - Setup aplikasi pertama kali
- Tutorial Akuntansi - Dasar-dasar akuntansi
- Rekonsiliasi Bank - Bank reconciliation (data tersedia via
/api/analysis) - API Documentation - Technical API reference
Pengembangan Selanjutnya
Fitur yang akan ditambahkan:
- [ ] Batch transaction import (CSV/Excel)
- [x] Template metadata management UI
- [ ] Webhook notifications (transaksi berhasil/gagal)
- [ ] AI confidence feedback loop
- [ ] Multi-currency support dengan auto-conversion
- [ ] PDF invoice parsing
- [ ] Template suggestion improvement (machine learning)
Info: Dokumentasi ini ditulis berdasarkan test scenario yang sebenarnya. Semua screenshot dan JSON response diambil dari functional test yang berjalan pada aplikasi versi 2026.01-SNAPSHOT.
Publikasi Laporan Analisis
Setelah AI membaca data keuangan via endpoint /api/analysis/*, AI dapat menganalisis data tersebut dan mempublikasikan hasilnya kembali ke aplikasi. Laporan yang dipublikasikan langsung tersedia di web UI sehingga seluruh tim (akuntan, pemilik, manajer) dapat membacanya.
Konfigurasi Industri
Sebelum AI melakukan analisis, pastikan industri perusahaan sudah diatur di Pengaturan > Perusahaan > Industri. AI membaca konfigurasi ini via GET /api/analysis/company untuk menentukan metrik dan analisis yang relevan.
Industri yang didukung:
| Kode | Nama | Fokus Analisis |
|---|---|---|
it-service | Jasa IT & Konsultasi | Utilisasi, DSO, margin proyek, konsentrasi klien |
online-seller | Toko Online / E-Commerce | Margin per channel, inventory turnover, fee marketplace, cash conversion cycle |
coffee-shop | Kedai Kopi / F&B | Food cost %, labor cost %, prime cost, waste %, BOM costing |
campus | Kampus / Pendidikan | Kolektibilitas SPP, rasio biaya akademik, beasiswa, deferred revenue |
Struktur Laporan
Laporan analisis terdiri dari 5 bagian terstruktur:
| Bagian | Deskripsi |
|---|---|
| Ringkasan Eksekutif | Paragraf singkat kondisi keuangan periode ini |
| Indikator Utama | Metrik KPI spesifik industri dengan perubahan vs periode sebelumnya |
| Temuan | Hal-hal yang perlu diperhatikan, dengan kategori dan severity |
| Rekomendasi | Langkah-langkah yang disarankan, dengan prioritas dan dampak |
| Penilaian Risiko | Risiko yang teridentifikasi beserta mitigasi |
API Publikasi
POST /api/analysis/reports
Authorization: Bearer {accessToken}
Content-Type: application/json
Field industry diisi sesuai konfigurasi perusahaan. Field reportType diisi sesuai jenis analisis per industri (lihat tabel di bawah).
Membaca Konfigurasi Perusahaan
GET /api/analysis/company
Authorization: Bearer {accessToken}
Response berisi industry, currencyCode, fiscalYearStartMonth, dan isPkp — informasi yang AI butuhkan untuk memilih metrik yang tepat.
Daftar Laporan via API
GET /api/analysis/reports
Authorization: Bearer {accessToken}
Mengembalikan semua laporan yang sudah dipublikasikan, terbaru lebih dulu.
Analisis per Industri: Jasa IT & Konsultasi (it-service)
Tipe Laporan
| reportType | Kegunaan | Frekuensi |
|---|---|---|
utilization-review | Review utilisasi billable konsultan | Bulanan |
project-profitability | Analisis margin per proyek | Per proyek / bulanan |
receivables-aging | Aging piutang & DSO analysis | Bulanan |
client-concentration | Analisis konsentrasi pendapatan per klien | Kuartalan |
tax-withholding-recon | Rekonsiliasi Bukti Potong PPh 23 | Bulanan |
Metrik Utama
| Metrik | Formula | Benchmark |
|---|---|---|
| Utilisasi Billable | Jam billable / Total jam tersedia | 70-80% (optimal 75%) |
| DSO (Days Sales Outstanding) | (Piutang / Pendapatan) x Hari | < 45 hari |
| Rasio Biaya Tenaga Kerja | Total gaji / Pendapatan | 55-65% |
| Revenue per Konsultan | Pendapatan / Jumlah konsultan | Track trend |
| Margin Proyek | (Revenue proyek - Biaya langsung) / Revenue proyek | > 15% sehat, > 25% kuat |
| Konsentrasi Klien Top-3 | Revenue 3 klien terbesar / Total revenue | < 60% sehat |
| Realization Rate | Revenue terkumpul / (Jam billable x Tarif standar) | > 80% |
Kategori Temuan
utilisasi, piutang, profitabilitas-proyek, klien, pajak, bench-time
Risiko Spesifik
- Konsentrasi klien (1 klien > 20% revenue)
- Bench time (konsultan idle = pure cost)
- DSO creep (klien korporat bayar Net-60 sampai Net-90)
- Bukti Potong PPh 23 yang hilang (kehilangan kredit pajak 2%)
- Key-person dependency (revenue bergantung pada beberapa senior)
Analisis per Industri: Toko Online / E-Commerce (online-seller)
Tipe Laporan
| reportType | Kegunaan | Frekuensi |
|---|---|---|
marketplace-profitability | P&L per marketplace (Tokopedia, Shopee, dll) | Bulanan |
inventory-health | Turnover, dead stock, aging persediaan | Bulanan |
cash-conversion-cycle | Analisis siklus konversi kas | Bulanan |
channel-comparison | Perbandingan profitabilitas antar channel | Kuartalan |
shipping-cost-analysis | Analisis biaya pengiriman vs pendapatan | Bulanan |
Metrik Utama
| Metrik | Formula | Benchmark |
|---|---|---|
| Gross Margin per Channel | (Revenue - HPP - Fee marketplace) / Revenue | > 30% |
| Inventory Turnover | HPP / Rata-rata persediaan | 4-8x/tahun |
| Dead Stock Ratio | Nilai stok mati / Total nilai persediaan | < 10% |
| Fee Marketplace Ratio | Total fee marketplace / Revenue | < 12% |
| Shipping Cost Ratio | Biaya kirim / Revenue | < 10% |
| Return Rate | Jumlah retur / Jumlah order | < 10% |
| Cash Conversion Cycle | DIO + DSO - DPO | < 60 hari |
| ROAS (Return on Ad Spend) | Revenue dari iklan / Belanja iklan | > 3:1 |
Kategori Temuan
margin, persediaan, arus-kas, marketplace, retur, pengiriman, iklan
Risiko Spesifik
- Kenaikan fee marketplace (platform menaikkan komisi secara berkala)
- Dead stock (modal terjebak di persediaan tidak laku > 180 hari)
- Cash conversion cycle panjang (bayar supplier duluan, pencairan marketplace 7-21 hari)
- Ketergantungan pada satu marketplace
- Subsidi ongkir menggerus margin pada produk AOV rendah
Analisis per Industri: Kedai Kopi / F&B (coffee-shop)
Tipe Laporan
| reportType | Kegunaan | Frekuensi |
|---|---|---|
food-cost-review | Analisis food cost % dan variance resep | Bulanan |
labor-efficiency | Rasio biaya tenaga kerja dan produktivitas per shift | Bulanan |
menu-engineering | Profitabilitas dan popularitas per menu item | Kuartalan |
production-cost | Analisis biaya produksi BOM vs harga jual | Bulanan |
daily-sales-analysis | Analisis penjualan harian, peak hours, average check | Mingguan |
Metrik Utama
| Metrik | Formula | Benchmark |
|---|---|---|
| Food Cost % | HPP / Revenue | 20-30% |
| Labor Cost % | Total biaya tenaga kerja / Revenue | 25-30% |
| Prime Cost % | (HPP + Biaya tenaga kerja) / Revenue | < 60% |
| Gross Margin | (Revenue - HPP) / Revenue | 70-80% |
| Waste % | Nilai bahan terbuang / Total HPP | < 2-4% |
| Average Transaction Value | Revenue / Jumlah transaksi | Track trend |
| Inventory Turnover (perishable) | HPP perishable / Rata-rata stok perishable | > 4x/bulan |
| Variance Resep | (HPP aktual - HPP teoritis) / HPP teoritis | < 2% |
Kategori Temuan
biaya-bahan, tenaga-kerja, produksi, penjualan, persediaan, waste
Risiko Spesifik
- Spoilage bahan perishable (susu, roti — shelf life pendek)
- Over-portioning (resep tidak terstandar, HPP aktual > teoritis)
- Kenaikan harga komoditas (kopi arabica, butter volatil)
- Prime cost > 65% (biaya bahan + tenaga kerja melampaui batas sehat)
- Ketergantungan lokasi (revenue sangat terkait foot traffic)
Analisis per Industri: Kampus / Pendidikan (campus)
Tipe Laporan
| reportType | Kegunaan | Frekuensi |
|---|---|---|
tuition-collection | Analisis kolektibilitas SPP per angkatan | Per semester |
budget-realization | Realisasi RKAT vs anggaran | Per semester |
scholarship-impact | Dampak beasiswa terhadap net tuition revenue | Per semester |
faculty-cost-analysis | Analisis biaya dosen tetap vs tidak tetap | Per semester |
enrollment-forecast | Proyeksi pendapatan berdasarkan tren pendaftaran | Tahunan |
Metrik Utama
| Metrik | Formula | Benchmark |
|---|---|---|
| SPP Collection Rate | SPP terkumpul / SPP tertagih | > 90% |
| Tuition Dependency Ratio | Pendapatan SPP / Total pendapatan | < 85% (semakin rendah semakin sehat) |
| Operating Margin | (Total pendapatan - Total beban) / Total pendapatan | > 5% |
| Biaya per Mahasiswa | Total beban operasional / Jumlah mahasiswa | Track trend |
| Days Cash on Hand | Kas / (Total beban / 365) | > 90 hari |
| Rasio Biaya Akademik | Beban akademik / Total beban operasional | 30-40% |
| Rasio Biaya Administratif | Beban administratif / Total beban operasional | < 30% |
| Scholarship Expense Ratio | Total beban beasiswa / Gross SPP | Track (jaga agar tidak > 35%) |
| Piutang SPP > 90 Hari | Piutang SPP aging > 90 hari / Total piutang SPP | < 5% |
Kategori Temuan
penerimaan-spp, beasiswa, biaya-akademik, biaya-administratif, aset-tetap, tren-pendaftaran
Risiko Spesifik
- Penurunan jumlah mahasiswa baru (dampak langsung ke uang pangkal dan pipeline SPP)
- Ketergantungan tinggi pada SPP (> 90%) tanpa diversifikasi pendapatan
- Cash flow musiman (penerimaan terkonsentrasi di awal semester, beban tersebar sepanjang tahun)
- Deferred maintenance gedung dan laboratorium (tropical climate mempercepat deteriorasi)
- Piutang SPP yang tidak tertagih dari mahasiswa non-aktif
Format Field API
Indikator Utama (metrics)
| Field | Wajib | Deskripsi |
|---|---|---|
name | Ya | Nama metrik sesuai industri |
value | Ya | Nilai saat ini |
previousValue | Tidak | Nilai periode sebelumnya |
change | Tidak | Perubahan (contoh: "+12.5%", "+4pp", "+14 hari") |
status | Tidak | positive (hijau), negative (merah), warning (kuning), neutral (abu-abu) |
Temuan (findings)
| Field | Wajib | Deskripsi |
|---|---|---|
category | Ya | Kategori sesuai industri (lihat tabel per industri di atas) |
severity | Ya | info (biru), warning (kuning), critical (merah) |
description | Ya | Deskripsi temuan |
Rekomendasi (recommendations)
| Field | Wajib | Deskripsi |
|---|---|---|
priority | Ya | high (merah), medium (kuning), low (abu-abu) |
description | Ya | Deskripsi rekomendasi |
impact | Tidak | Dampak yang diharapkan |
Risiko (risks)
| Field | Wajib | Deskripsi |
|---|---|---|
severity | Ya | high (merah), medium (kuning), low (abu-abu) |
description | Ya | Deskripsi risiko |
mitigation | Tidak | Langkah mitigasi |
Melihat Laporan di Web UI
Laporan yang sudah dipublikasikan dapat dilihat di menu Laporan > Analisis AI.
Halaman Daftar Laporan
Halaman daftar menampilkan semua laporan terbaru dengan:
- Badge industri (Jasa IT, Toko Online, Kedai Kopi, Kampus) dengan warna berbeda per industri
- Tipe laporan dan judul
- Ringkasan eksekutif (2 baris pertama)
- Periode, sumber AI, dan jumlah metrik/temuan
Halaman Detail Laporan
Klik laporan untuk melihat detail lengkap. Setiap industri menampilkan metrik KPI yang berbeda sesuai karakteristik bisnisnya.
Bagian atas: Badge industri, tipe laporan, header, ringkasan eksekutif, dan grid indikator utama.
Bagian bawah: Tabel temuan dengan severity badge, daftar rekomendasi yang diurutkan berdasarkan prioritas, dan penilaian risiko dengan langkah mitigasi.
Menghapus Laporan
Klik tombol Hapus di halaman detail untuk menghapus laporan (soft delete). Laporan yang dihapus tidak akan muncul di daftar.
Contoh Laporan per Industri
Jasa IT & Konsultasi
Metrik utama:
- Pendapatan Bulanan
- Beban Operasional
- Laba Bersih
- Margin Laba
- Saldo Kas
- Rasio Beban/Pendapatan



Toko Online / E-Commerce
Metrik utama:
- Penjualan Bersih
- HPP (Harga Pokok)
- Laba Kotor
- Gross Margin
- Biaya Marketplace
- Biaya Pengiriman


Kedai Kopi / F&B
Metrik utama:
- Pendapatan
- Food Cost %
- Labor Cost %
- Prime Cost %
- Laba Bersih
- Net Margin


Kampus / Pendidikan
Metrik utama:
- Pendapatan Total
- Pendapatan SPP
- Biaya Dosen & Akademik
- Rasio Beasiswa
- Surplus Operasional
- Margin Operasional


Contoh Alur Lengkap
1. AI membaca data keuangan
GET /api/analysis/snapshot?month=2026-01
GET /api/analysis/income-statement?startDate=2026-01-01&endDate=2026-01-31
GET /api/analysis/receivables?asOfDate=2026-01-31
↓
2. AI menganalisis data dan membuat laporan terstruktur
↓
3. AI mempublikasikan laporan
POST /api/analysis/reports
↓
4. Tim membuka menu Laporan > Analisis AI di web browser
↓
5. Akuntan membaca temuan, rekomendasi, dan risiko
↓
6. Tindak lanjut: buat jurnal penyesuaian, tagih piutang, dll.
Konsep Peringatan
Apa Itu Peringatan
Peringatan (Smart Alerts) adalah sistem notifikasi otomatis yang memantau kondisi keuangan perusahaan dan memberitahu pengguna jika ada anomali atau risiko yang perlu ditindaklanjuti. Sistem mengevaluasi 7 jenis aturan setiap hari dan menghasilkan event peringatan ketika ambang batas terlampaui.
Jenis Peringatan
| Tipe | Nama Indonesia | Deskripsi | Satuan Ambang Batas |
|---|---|---|---|
| CASH_LOW | Kas Rendah | Saldo kas + bank di bawah ambang batas | Rp |
| RECEIVABLE_OVERDUE | Piutang Jatuh Tempo | Ada piutang yang sudah jatuh tempo | — (0 = aktif) |
| EXPENSE_SPIKE | Lonjakan Biaya | Biaya bulan ini naik melebihi X% dari rata-rata 3 bulan sebelumnya | % |
| PROJECT_COST_OVERRUN | Proyek Melebihi Anggaran | Ada proyek yang biayanya melebihi anggaran | — (0 = aktif) |
| PROJECT_MARGIN_DROP | Margin Proyek Turun | Margin proyek turun di bawah X% | % |
| COLLECTION_SLOWDOWN | Penagihan Melambat | Rata-rata hari penagihan melebihi X hari | hari |
| CLIENT_CONCENTRATION | Konsentrasi Klien | Satu klien menyumbang lebih dari X% pendapatan | % |
Tingkat Keparahan (Severity)
| Severity | Indonesia | Warna Badge | Keterangan |
|---|---|---|---|
| INFO | Informasi | Biru | Kondisi yang perlu diketahui, tidak mendesak |
| WARNING | Peringatan | Kuning | Kondisi yang perlu segera diperhatikan |
| CRITICAL | Kritis | Merah | Kondisi darurat yang harus ditindaklanjuti segera |
Evaluasi Harian
Sistem menjalankan evaluasi seluruh aturan yang aktif setiap hari pukul 08:00 secara otomatis. Mekanisme:
- Setiap aturan yang
enabled = truedievaluasi - Jika kondisi ambang batas terpenuhi, event peringatan dibuat
- Deduplikasi 24 jam: jika sudah ada event yang belum dikonfirmasi untuk aturan yang sama dalam 24 jam terakhir, event baru tidak dibuat (mencegah duplikasi peringatan)
Konfigurasi Peringatan
Halaman Konfigurasi
Buka menu Laporan > Peringatan, lalu klik tab Konfigurasi atau navigasi langsung ke /alerts/config.

Halaman menampilkan daftar 7 aturan peringatan bawaan. Setiap aturan menampilkan:
- Nama tipe: Nama Indonesia dari jenis peringatan
- Deskripsi: Penjelasan kondisi yang dievaluasi
- Ambang Batas (Threshold): Nilai numerik yang menjadi batas pemicu
- Status Aktif: Checkbox untuk mengaktifkan/menonaktifkan aturan
Mengubah Ambang Batas
- Isi nilai baru pada field Ambang Batas sesuai jenis aturan:
- Kas Rendah: nominal dalam Rupiah (contoh:
10000000= Rp 10 juta) - Lonjakan Biaya: persentase (contoh:
30= 30%) - Margin Proyek Turun: persentase (contoh:
10= 10%) - Penagihan Melambat: jumlah hari (contoh:
30= 30 hari) - Konsentrasi Klien: persentase (contoh:
50= 50%) - Piutang Jatuh Tempo / Proyek Melebihi Anggaran:
0berarti selalu aktif
- Kas Rendah: nominal dalam Rupiah (contoh:
- Klik Simpan pada aturan yang diubah
Menonaktifkan Aturan
Hapus centang pada checkbox Aktif, lalu klik Simpan. Aturan yang nonaktif tidak akan dievaluasi pada jadwal harian.
Permission yang diperlukan: ALERT_CONFIG
Tampilan Layar
Screenshot belum tersedia
Halaman konfigurasi aturan peringatan: ambang batas dan status aktif
Peringatan Aktif
Halaman Peringatan Aktif
Buka menu Laporan > Peringatan atau navigasi ke /alerts.

Halaman menampilkan daftar peringatan yang belum dikonfirmasi (unacknowledged). Setiap peringatan menampilkan:
- Badge severity: Warna menunjukkan tingkat keparahan (biru = INFO, kuning = WARNING, merah = CRITICAL)
- Tipe peringatan: Nama Indonesia dari jenis peringatan
- Pesan: Detail kondisi yang memicu peringatan
- Waktu: Timestamp kapan peringatan dipicu
- Tombol Konfirmasi: Untuk menandai peringatan sudah ditindaklanjuti
Mengonfirmasi Peringatan
Klik tombol Konfirmasi pada peringatan yang sudah ditindaklanjuti. Peringatan yang dikonfirmasi berpindah ke halaman riwayat dan tidak lagi muncul di daftar aktif.
Permission yang diperlukan: ALERT_ACKNOWLEDGE
Tampilan Layar
Screenshot belum tersedia
Daftar peringatan aktif yang belum dikonfirmasi
Widget Dashboard
Widget Peringatan
Widget peringatan ditampilkan di halaman Dashboard (/dashboard), dimuat secara dinamis via HTMX.

Widget menampilkan:
- Jumlah peringatan per severity: Berapa peringatan aktif bertipe INFO, WARNING, dan CRITICAL
- 5 peringatan terbaru: Daftar singkat peringatan aktif dengan badge severity dan pesan
- Link ke halaman peringatan: Klik untuk melihat seluruh peringatan aktif
Widget ini membantu memantau kondisi keuangan tanpa harus membuka halaman peringatan secara terpisah.
Tampilan Layar
Screenshot belum tersedia
Widget peringatan pada halaman dashboard
Riwayat Peringatan
Halaman Riwayat
Buka navigasi ke /alerts/history atau klik tab Riwayat dari halaman peringatan.

Halaman menampilkan seluruh peringatan (aktif dan yang sudah dikonfirmasi) dalam tabel paginated. Informasi yang ditampilkan:
- Tipe: Jenis peringatan
- Severity: Tingkat keparahan
- Pesan: Detail peringatan
- Waktu Trigger: Kapan peringatan dipicu
- Status: Dikonfirmasi (dengan nama dan waktu) atau belum
Permission yang diperlukan: ALERT_VIEW
Tampilan Layar
Screenshot belum tersedia
Riwayat semua peringatan dengan filter
Faktur (Invoice)
Konsep
Faktur adalah dokumen penagihan yang dikirim ke klien setelah pekerjaan selesai. Setiap faktur memiliki line item (rincian jasa/barang), tanggal jatuh tempo, dan status yang berubah sesuai alur kerja.
Alur Kerja Faktur
DRAFT → SENT → PARTIAL → PAID
↑ ↑
(sebagian) (lunas)
| Status | Keterangan |
|---|---|
| DRAFT | Baru dibuat, bisa diedit |
| SENT | Sudah dikirim ke klien, menunggu pembayaran |
| PARTIAL | Sebagian dibayar |
| PAID | Lunas |
| OVERDUE | Melewati tanggal jatuh tempo |
Membuat Faktur
Buka menu Proyek > Faktur > Faktur Baru.
Isi data faktur:
- Klien: Pilih dari daftar klien
- Tanggal Faktur: Tanggal penerbitan
- Tanggal Jatuh Tempo: Batas waktu pembayaran
- Proyek (opsional): Kaitkan ke proyek tertentu
Tambahkan line item:
- Deskripsi: Keterangan jasa/barang
- Quantity: Jumlah
- Harga Satuan: Harga per unit
- Total: Dihitung otomatis (qty x harga satuan)
Klik Simpan untuk menyimpan sebagai DRAFT.

Mengirim Faktur
Dari halaman detail faktur, klik Kirim untuk mengubah status dari DRAFT ke SENT. Faktur yang sudah dikirim tidak bisa diedit.

Setelah dikirim, faktur masuk ke laporan umur piutang dan siap menerima pembayaran.
Tampilan Layar
Screenshot belum tersedia
Halaman detail faktur yang baru dibuat
Screenshot belum tersedia
Faktur setelah dikirim ke klien
Tagihan Vendor (Bill)
Konsep
Tagihan (bill) adalah dokumen yang diterima dari vendor untuk pembelian barang atau jasa. Alur kerjanya mirip faktur, tapi dari sisi pengeluaran.
Alur Kerja Tagihan
DRAFT → APPROVED → PARTIAL → PAID
↑ ↑
(sebagian) (lunas)
| Status | Keterangan |
|---|---|
| DRAFT | Baru dibuat, menunggu approval |
| APPROVED | Disetujui, menunggu pembayaran |
| PARTIAL | Sebagian dibayar |
| PAID | Lunas |
| OVERDUE | Melewati tanggal jatuh tempo |
Membuat Tagihan
Buka menu Pembelian > Tagihan > Tagihan Baru.
Isi data:
- Vendor: Pilih dari daftar vendor
- Tanggal Tagihan: Tanggal penerbitan oleh vendor
- Tanggal Jatuh Tempo: Batas pembayaran
- Nomor Referensi Vendor (opsional): Nomor tagihan dari vendor
Tambahkan line item seperti pada faktur.
Menyetujui Tagihan
Dari halaman detail tagihan, klik Setujui untuk mengubah status dari DRAFT ke APPROVED.

Tagihan yang disetujui masuk ke laporan umur hutang dan siap menerima pembayaran.
Tampilan Layar
Screenshot belum tersedia
Halaman detail tagihan vendor yang disetujui
Pelacakan Pembayaran
Mencatat Pembayaran Faktur
Buka halaman detail faktur yang berstatus SENT, PARTIAL, atau OVERDUE. Klik Catat Pembayaran untuk membuka form pembayaran.
Isi data pembayaran:
- Tanggal Pembayaran: Tanggal dana diterima
- Jumlah: Nominal pembayaran (bisa sebagian)
- Metode Pembayaran: Transfer, Cash, Cek, Kartu Kredit, E-Wallet, Lainnya
- Nomor Referensi: Nomor bukti transfer/kuitansi
- Catatan (opsional): Keterangan tambahan
Klik Simpan Pembayaran.
Pembayaran sebagian (partial): Jika jumlah pembayaran kurang dari total faktur, status berubah ke PARTIAL. Sisa tagihan (balance due) ditampilkan di halaman detail.

Pembayaran lunas: Jika total semua pembayaran sama dengan total faktur, status otomatis berubah ke PAID.

Mencatat Pembayaran Tagihan
Prosesnya sama dengan faktur. Buka halaman detail tagihan berstatus APPROVED, PARTIAL, atau OVERDUE, lalu catat pembayaran.

Riwayat Pembayaran
Setiap faktur/tagihan menampilkan tabel riwayat pembayaran di halaman detail:
- Tanggal pembayaran
- Jumlah
- Metode pembayaran
- Nomor referensi
Validasi
- Pembayaran hanya bisa dicatat pada faktur/tagihan dengan status yang tepat
- Jumlah pembayaran tidak boleh melebihi sisa tagihan (overpayment ditolak)
- Total pembayaran + pembayaran baru <= total faktur/tagihan
Tampilan Layar
Screenshot belum tersedia
Faktur dengan pembayaran sebagian dan sisa tagihan
Screenshot belum tersedia
Faktur yang sudah lunas
Screenshot belum tersedia
Tagihan vendor yang sudah dibayar lunas
Laporan Umur Piutang & Hutang
Konsep Aging
Laporan umur (aging report) mengelompokkan faktur/tagihan yang belum lunas berdasarkan berapa lama sudah jatuh tempo. Berguna untuk memantau risiko piutang tak tertagih dan prioritas pembayaran.
Bucket Aging
| Bucket | Keterangan |
|---|---|
| Belum Jatuh Tempo | Belum melewati due date |
| 1-30 hari | Terlambat 1-30 hari |
| 31-60 hari | Terlambat 31-60 hari |
| 61-90 hari | Terlambat 61-90 hari |
| > 90 hari | Terlambat lebih dari 90 hari |
Umur Piutang (Receivables Aging)
Buka menu Laporan > Umur Piutang.

Menampilkan:
- Ringkasan per bucket: Total piutang per kategori umur
- Tabel per klien: Rincian saldo per klien di setiap bucket
- Filter tanggal: Pilih tanggal acuan (as-of date)
Setelah pembayaran sebagian, saldo di aging report berkurang sesuai jumlah yang sudah dibayar.

Setelah lunas, klien hilang dari laporan aging.

Umur Hutang (Payables Aging)
Buka menu Laporan > Umur Hutang. Format sama dengan umur piutang, tapi untuk tagihan vendor.

Tampilan Layar
Screenshot belum tersedia
Laporan aging receivables dengan faktur belum dibayar
Screenshot belum tersedia
Laporan aging setelah pembayaran sebagian
Screenshot belum tersedia
Laporan aging setelah semua faktur lunas
Screenshot belum tersedia
Laporan aging payables dengan tagihan belum dibayar
Laporan Klien & Vendor
Konsep Statement
Laporan per klien/vendor (statement) menampilkan riwayat transaksi secara kronologis dengan saldo berjalan (running balance). Berguna untuk rekonsiliasi dengan klien/vendor dan verifikasi posisi piutang/hutang.
Laporan Klien
Akses dari halaman detail klien: klik Lihat Laporan, atau langsung ke Laporan > Laporan Klien.

Informasi yang ditampilkan:
- Periode: Filter tanggal mulai dan akhir
- Saldo Awal: Total piutang sebelum periode
- Tabel Transaksi: Setiap baris menampilkan:
- Tanggal
- Tipe (Invoice atau Pembayaran)
- Nomor referensi
- Keterangan
- Jumlah invoice / jumlah pembayaran
- Saldo berjalan
- Saldo Akhir: Posisi piutang akhir periode
- Cetak: Buka versi cetak (print-friendly, A4 landscape)
Laporan Vendor
Format sama dengan laporan klien, tapi menampilkan tagihan (bill) dan pembayaran ke vendor.

Akses dari halaman detail vendor: klik Lihat Laporan.
Tampilan Layar
Screenshot belum tersedia
Laporan per klien dengan saldo berjalan
Screenshot belum tersedia
Laporan per vendor dengan saldo berjalan
Contoh Alur Lengkap
Walk-through siklus penagihan dari awal sampai lunas.
Langkah 1: Buat Faktur
Buat faktur untuk klien PT Telkom dengan 2 line item:
- Jasa Pengembangan Aplikasi: 1 x Rp 10.000.000
- Jasa Maintenance Bulanan: 5 x Rp 1.000.000
- Total: Rp 15.000.000
Langkah 2: Kirim Faktur
Kirim faktur. Status berubah ke SENT. Faktur muncul di laporan umur piutang pada bucket "Belum Jatuh Tempo".
Langkah 3: Terima Pembayaran Sebagian
Klien membayar Rp 5.000.000 via transfer. Status berubah ke PARTIAL. Sisa tagihan: Rp 10.000.000.
Di laporan aging, nominal berubah dari Rp 15.000.000 menjadi Rp 10.000.000.
Langkah 4: Terima Pembayaran Final
Klien membayar sisa Rp 10.000.000. Status berubah ke PAID. Faktur hilang dari laporan aging.
Langkah 5: Periksa Laporan Klien
Buka laporan klien PT Telkom. Terlihat:
- Invoice Rp 15.000.000 → saldo naik
- Pembayaran Rp 5.000.000 → saldo turun
- Pembayaran Rp 10.000.000 → saldo menjadi 0
Konsep Transaksi Berulang
Apa Itu Transaksi Berulang
Transaksi Berulang adalah fitur untuk mengotomatisasi pencatatan transaksi yang terjadi secara rutin dengan jumlah tetap. Contoh: sewa kantor bulanan, biaya langganan, pembayaran retainer, atau cicilan.
Sistem menjalankan scheduler harian pada pukul 05:00 yang memproses seluruh transaksi berulang yang sudah jatuh tempo, membuat transaksi baru secara otomatis, dan mencatat hasilnya.
Frekuensi yang Didukung
| Frekuensi | Indonesia | Keterangan |
|---|---|---|
| DAILY | Harian | Setiap hari |
| WEEKLY | Mingguan | Hari tertentu dalam minggu (Senin-Minggu) |
| MONTHLY | Bulanan | Tanggal tertentu dalam bulan (1-28) |
| QUARTERLY | Triwulanan | Setiap 3 bulan pada tanggal tertentu |
| YEARLY | Tahunan | Setiap tahun pada tanggal tertentu |
Status Transaksi Berulang
| Status | Indonesia | Warna Badge | Keterangan |
|---|---|---|---|
| ACTIVE | Aktif | Hijau | Dijadwalkan dan dieksekusi otomatis |
| PAUSED | Dijeda | Kuning | Dihentikan sementara, bisa dilanjutkan |
| COMPLETED | Selesai | Abu-abu | Tidak akan dieksekusi lagi |
Membuat Transaksi Berulang
Halaman Daftar
Buka menu Akuntansi > Transaksi Berulang di sidebar, atau navigasi langsung ke /recurring.

Halaman menampilkan:
- Kartu ringkasan: jumlah Aktif, Dijeda, Selesai
- Filter status: filter berdasarkan status
- Tabel: nama, template, frekuensi, jumlah, jadwal berikut, total eksekusi, status
Formulir Pembuatan
Klik tombol + Transaksi Berulang Baru untuk membuka formulir.
Field yang harus diisi:
| Field | Wajib | Keterangan |
|---|---|---|
| Nama | Ya | Nama deskriptif (contoh: "Sewa Kantor Bulanan") |
| Template Jurnal | Ya | Template yang digunakan untuk membuat transaksi |
| Jumlah (Rp) | Ya | Nominal transaksi |
| Deskripsi | Ya | Deskripsi yang akan muncul di transaksi |
| Frekuensi | Ya | Harian/Mingguan/Bulanan/Triwulanan/Tahunan |
| Tanggal | Kondisional | Tanggal 1-28 untuk Bulanan/Triwulanan/Tahunan |
| Hari | Kondisional | Senin-Minggu untuk Mingguan |
| Tanggal Mulai | Ya | Tanggal pertama eksekusi |
| Tanggal Selesai | Tidak | Kosongkan jika tanpa batas waktu |
| Maks. Eksekusi | Tidak | Jumlah maksimum eksekusi, kosongkan jika tanpa batas |
Opsi tambahan:
- Lewati Akhir Pekan: Jika jadwal jatuh pada Sabtu/Minggu, eksekusi dipindah ke Senin berikutnya
- Posting Otomatis: Jika dicentang, transaksi langsung diposting. Jika tidak, disimpan sebagai Draft
Detail dan Pengelolaan
Halaman Detail
Klik nama transaksi berulang di daftar untuk melihat detail.

Halaman menampilkan:
- Informasi: jumlah, frekuensi, deskripsi, tanggal mulai/selesai, jadwal berikut, total eksekusi
- Jadwal 5 Eksekusi Berikutnya: preview tanggal-tanggal eksekusi mendatang
- Riwayat Eksekusi: log setiap eksekusi (Berhasil/Gagal/Dilewati) beserta link ke transaksi yang dibuat
Aksi yang Tersedia
| Aksi | Kondisi | Keterangan |
|---|---|---|
| Edit | Status bukan Selesai | Mengubah konfigurasi |
| Jeda | Status Aktif | Menghentikan sementara eksekusi |
| Lanjutkan | Status Dijeda | Melanjutkan eksekusi, jadwal dihitung ulang dari hari ini |
| Selesaikan | Status bukan Selesai | Menghentikan permanen |
| Hapus | Semua status | Soft delete, transaksi yang sudah dibuat tidak terpengaruh |
Tampilan Layar
Screenshot belum tersedia
Halaman detail transaksi berulang dengan jadwal dan riwayat eksekusi
Eksekusi Otomatis (Scheduler)
Jadwal Eksekusi
Scheduler berjalan setiap hari pukul 05:00 (sebelum amortisasi pukul 06:00). Proses:
- Query semua transaksi berulang dengan status ACTIVE dan
nextRunDate <= hari ini - Untuk setiap item:
- Jika Lewati Akhir Pekan aktif dan tanggal jatuh pada Sabtu/Minggu: dipindah ke Senin
- Buat transaksi baru dari template + jumlah + deskripsi + mapping akun
- Jika Posting Otomatis aktif: posting transaksi
- Catat log eksekusi (SUCCESS)
- Update
nextRunDate,lastRunDate,totalRuns
- Jika
maxOccurrencestercapai ataunextRunDatemelewatiendDate: set status COMPLETED - Jika terjadi error: catat log (FAILED) dengan pesan error, lanjut ke item berikutnya
Status Log Eksekusi
| Status | Indonesia | Keterangan |
|---|---|---|
| SUCCESS | Berhasil | Transaksi berhasil dibuat |
| FAILED | Gagal | Terjadi error saat pembuatan transaksi |
| SKIPPED | Dilewati | Dilewati karena jatuh pada akhir pekan |
Hak Akses
| Permission | Admin | Owner | Accountant | Staff | Auditor |
|---|---|---|---|---|---|
| RECURRING_VIEW | Ya | Ya | Ya | Ya | Ya |
| RECURRING_CREATE | Ya | Ya | Ya | — | — |
| RECURRING_EDIT | Ya | Ya | Ya | — | — |
| RECURRING_DELETE | Ya | Ya | Ya | — | — |
Glosarium

Istilah Akuntansi
A
Akumulasi Amortisasi Kontra akun aset tak berwujud yang mencatat total amortisasi sejak aset diperoleh.
Amortisasi Proses pengalokasian biaya aset tak berwujud atau beban dibayar dimuka secara bertahap ke periode-periode yang menerima manfaat.
Aset Sumber daya yang dimiliki perusahaan yang memiliki nilai ekonomi. Contoh: kas, piutang, peralatan.
Aset Tak Berwujud Aset non-fisik yang memiliki nilai ekonomi jangka panjang. Contoh: website, software, hak paten.
B
Beban Pengeluaran yang terjadi dalam rangka menghasilkan pendapatan. Contoh: beban gaji, beban sewa.
Beban Dibayar Dimuka Pembayaran yang dilakukan di muka untuk jasa atau barang yang akan diterima di masa depan. Contoh: asuransi, sewa.
BOM (Bill of Materials) Daftar komponen yang diperlukan untuk memproduksi satu unit produk. Digunakan di industri manufaktur.
BPJS Badan Penyelenggara Jaminan Sosial. BPJS Kesehatan untuk jaminan kesehatan, BPJS Ketenagakerjaan untuk jaminan ketenagakerjaan (JHT, JKK, JKM, JP).
Buku Besar Kumpulan semua akun yang mencatat setiap transaksi secara kronologis.
C
COA (Chart of Accounts) Bagan Akun - daftar semua akun yang digunakan untuk mencatat transaksi keuangan.
D
Debit Sisi kiri dalam pencatatan akuntansi. Menambah aset dan beban, mengurangi kewajiban dan pendapatan.
Depresiasi (Penyusutan) Alokasi biaya aset tetap selama masa manfaatnya.
DPP (Dasar Pengenaan Pajak) Nilai yang menjadi dasar perhitungan pajak. Untuk PPN, DPP adalah harga sebelum pajak.
Draft Status transaksi atau dokumen yang tersimpan tapi belum final/diposting.
E
Ekuitas Hak pemilik atas aset perusahaan setelah dikurangi kewajiban. Ekuitas = Aset - Kewajiban.
F
Faktur Pajak Dokumen bukti pungutan PPN yang dibuat oleh PKP saat menyerahkan BKP/JKP.
FIFO (First In First Out) Metode penilaian persediaan di mana barang yang masuk lebih dulu, keluar lebih dulu.
H
HPP (Harga Pokok Penjualan) Biaya langsung yang dikeluarkan untuk menghasilkan barang/jasa yang dijual.
J
Jurnal Catatan kronologis transaksi keuangan dengan format debit dan kredit.
Jurnal Penyesuaian Jurnal yang dibuat di akhir periode untuk menyesuaikan saldo akun. Contoh: amortisasi, penyusutan.
K
Kas Uang tunai dan setara kas yang dimiliki perusahaan.
Kewajiban Hutang perusahaan kepada pihak lain. Contoh: hutang usaha, hutang pajak.
Kredit Sisi kanan dalam pencatatan akuntansi. Menambah kewajiban dan pendapatan, mengurangi aset dan beban.
L
Laba Bersih Selisih antara total pendapatan dan total beban dalam suatu periode.
Laba Kotor Pendapatan dikurangi biaya langsung, sebelum dikurangi beban operasional.
Laporan Laba Rugi Laporan keuangan yang menunjukkan pendapatan dan beban selama periode tertentu.
M
Margin Persentase laba terhadap pendapatan. Margin = (Laba / Pendapatan) × 100%.
Milestone Tahapan penting dalam proyek yang menandai pencapaian tertentu.
N
Neraca Laporan posisi keuangan yang menunjukkan aset, kewajiban, dan ekuitas pada tanggal tertentu.
Neraca Saldo Daftar semua akun beserta saldo debit dan kredit untuk memvalidasi keseimbangan pembukuan.
NTPN (Nomor Transaksi Penerimaan Negara) Nomor bukti penerimaan negara yang diterbitkan saat penyetoran pajak.
P
Pendapatan Penerimaan dari aktivitas utama bisnis. Contoh: pendapatan jasa, penjualan.
Pendapatan Akrual Pendapatan yang sudah menjadi hak perusahaan tapi belum diterima pembayarannya.
Pendapatan Diterima Dimuka Pembayaran yang diterima sebelum jasa/barang diserahkan. Dicatat sebagai kewajiban.
Piutang Hak perusahaan atas uang dari pelanggan yang belum diterima.
Posting Proses memindahkan transaksi dari status draft menjadi final dan mempengaruhi saldo akun.
PPN (Pajak Pertambahan Nilai) Pajak yang dikenakan atas penyerahan barang/jasa kena pajak. Tarif standar 11%.
PPN Keluaran PPN yang dipungut dari penjualan. Dicatat sebagai hutang pajak.
PPN Masukan PPN yang dibayar pada pembelian. Dapat dikreditkan dengan PPN Keluaran.
PPh (Pajak Penghasilan) Pajak atas penghasilan. PPh 21 untuk karyawan, PPh 23 untuk jasa, PPh 4(2) untuk final.
PTKP (Penghasilan Tidak Kena Pajak) Batas penghasilan yang tidak dikenakan pajak. Berbeda berdasarkan status pernikahan dan tanggungan.
R
Revenue Recognition Prinsip akuntansi yang menentukan kapan pendapatan diakui dalam laporan keuangan.
S
Saldo Berjalan Saldo akun yang terus diperbarui setiap kali ada transaksi.
SPT (Surat Pemberitahuan) Surat yang digunakan untuk melaporkan perhitungan dan pembayaran pajak.
T
Template Jurnal Pola pencatatan yang sudah dikonfigurasi untuk mempermudah pencatatan transaksi berulang.
Termin Pembayaran Jadwal pembayaran yang disepakati dalam kontrak, biasanya terkait dengan milestone proyek.
Transaksi Aktivitas keuangan yang dicatat dalam sistem akuntansi.
V
Void Pembatalan transaksi yang sudah diposting. Menghasilkan jurnal reversal otomatis.
W
Weighted Average Metode penilaian persediaan berdasarkan harga rata-rata tertimbang.
WIP (Work in Progress) Barang setengah jadi dalam proses produksi.
Singkatan
| Singkatan | Kepanjangan |
|---|---|
| BKP | Barang Kena Pajak |
| BOM | Bill of Materials |
| BPJS | Badan Penyelenggara Jaminan Sosial |
| COA | Chart of Accounts (Bagan Akun) |
| DPP | Dasar Pengenaan Pajak |
| FIFO | First In First Out |
| HPP | Harga Pokok Penjualan |
| JHT | Jaminan Hari Tua |
| JKK | Jaminan Kecelakaan Kerja |
| JKM | Jaminan Kematian |
| JKP | Jasa Kena Pajak |
| JP | Jaminan Pensiun |
| KPI | Key Performance Indicator |
| NPWP | Nomor Pokok Wajib Pajak |
| NTPN | Nomor Transaksi Penerimaan Negara |
| Portable Document Format | |
| PII | Personally Identifiable Information |
| PKP | Pengusaha Kena Pajak |
| PPN | Pajak Pertambahan Nilai |
| PPh | Pajak Penghasilan |
| PSAK | Pernyataan Standar Akuntansi Keuangan |
| PTKP | Penghasilan Tidak Kena Pajak |
| SPT | Surat Pemberitahuan |
| TER | Tarif Efektif Rata-rata |
| UKM | Usaha Kecil dan Menengah |
| WA | Weighted Average |
| WIP | Work in Progress |
Rumus Dasar
Persamaan Akuntansi
Aset = Kewajiban + Ekuitas
Laba Bersih
Laba = Pendapatan - Beban
PPN
PPN = DPP × 11%
DPP = Harga Inklusif / 1.11
PPh 23
PPh 23 = DPP × 2%
Margin Laba
Margin = (Laba / Pendapatan) × 100%
ROI (Return on Investment)
ROI = (Laba / Biaya) × 100%
Depresiasi Garis Lurus
Depresiasi/Tahun = (Harga Perolehan - Nilai Residu) / Masa Manfaat
HPP (FIFO)
HPP = Σ (Qty Terjual × Harga Beli dari Batch Terlama)
HPP (Weighted Average)
Avg Cost = Total Nilai Persediaan / Total Qty
HPP = Qty Terjual × Avg Cost
Lihat Juga
- Tutorial Akuntansi - Penjelasan konsep akuntansi dasar
- Referensi Akun - Daftar kode akun
- Referensi Template - Daftar template bawaan
Referensi Template

Daftar template transaksi standar yang tersedia dalam seed data. Template mempermudah pencatatan transaksi karena akun-akun sudah dikonfigurasi.
Kategori Template
| Kategori | Jumlah | Deskripsi |
|---|---|---|
| Pendapatan | 9 | Template untuk mencatat penerimaan |
| Pengeluaran | 12 | Template untuk mencatat pembayaran |
| Transfer | 3 | Template untuk transfer antar akun |
| Pajak | 6 | Template untuk setoran pajak |
| Payroll | 4 | Template untuk penggajian |
| Inventory | 4 | Template untuk persediaan |
Template Pendapatan
Pendapatan Jasa + PPN (PKP)
Digunakan: Menerima pembayaran jasa dari klien (PKP). DPP Nilai Lain (PMK 131/2024).
| Field | Input |
|---|---|
| Jumlah | Harga Jual (sebelum PPN) |
Jurnal:
Dr. Bank/Kas amount * 1.11
Cr. Hutang PPN amount * 0.11
Cr. Pendapatan Jasa amount
Formula PPN:
amount * 0.11= nominal 12% × DPP Nilai Lain (11/12 × Harga Jual). Lihat Perpajakan — Konsep PPN.
Pendapatan Jasa (Non-PKP)
Digunakan: Menerima pembayaran jasa tanpa PPN
Jurnal:
Dr. Bank/Kas amount
Cr. Pendapatan Jasa amount
Terima DP Proyek
Digunakan: Menerima uang muka proyek
Jurnal:
Dr. Bank/Kas amount
Cr. Pendapatan Diterima Dimuka amount
Pengakuan Pendapatan (Revenue Recognition)
Digunakan: Mengakui pendapatan saat milestone selesai
Jurnal:
Dr. Pendapatan Diterima Dimuka amount
Cr. Pendapatan Jasa amount
Terima Pelunasan Piutang
Digunakan: Klien melunasi piutang
Jurnal:
Dr. Bank/Kas amount
Cr. Piutang Usaha amount
Pendapatan Bunga
Digunakan: Terima bunga deposito/tabungan
Jurnal:
Dr. Bank amount
Cr. Pendapatan Bunga amount
Penjualan Barang + PPN
Digunakan: Menjual barang dengan PPN. DPP Nilai Lain (PMK 131/2024).
Jurnal:
Dr. Bank/Kas amount * 1.11
Cr. Hutang PPN amount * 0.11
Cr. Penjualan amount
Formula PPN:
amount * 0.11= nominal 12% × DPP Nilai Lain (11/12 × Harga Jual).
Penjualan Barang (Non-PKP)
Digunakan: Menjual barang tanpa PPN
Jurnal:
Dr. Bank/Kas amount
Cr. Penjualan amount
Pendapatan Jasa BUMN (FP 03)
Digunakan: Pendapatan jasa ke klien BUMN/Pemerintah. PPN dipungut pembeli (Faktur Pajak kode 03), PPh 23 dipotong.
| Field | Input |
|---|---|
| Jumlah | Harga Jual |
Jurnal:
Dr. Bank/Kas amount * 0.98
Dr. Kredit PPh 23 amount * 0.02
Cr. Pendapatan Jasa amount
Template Pengeluaran
Beban Operasional
Digunakan: Pengeluaran operasional umum (listrik, internet, dll)
Field:
- Jumlah
- Akun Beban (dropdown)
Jurnal:
Dr. [Akun Beban] amount
Cr. Bank/Kas amount
Beban dengan PPN (dapat dikreditkan)
Digunakan: Pembelian dengan faktur pajak. DPP Nilai Lain (PMK 131/2024).
Jurnal:
Dr. [Akun Beban] amount
Dr. PPN Masukan amount * 0.11
Cr. Bank/Kas amount * 1.11
Formula PPN:
amount * 0.11= nominal 12% × DPP Nilai Lain (11/12 × Harga Jual).
Pembelian Aset Tetap
Digunakan: Beli peralatan, kendaraan, dll
Jurnal:
Dr. Aset Tetap amount
Cr. Bank/Kas amount
Bayar Jasa + PPh 23
Digunakan: Bayar jasa freelancer/vendor dengan potong PPh 23
Jurnal:
Dr. Beban Jasa amount
Cr. Hutang PPh 23 amount * 2%
Cr. Bank/Kas amount * 98%
Bayar Sewa + PPh 4(2)
Digunakan: Bayar sewa gedung/tanah
Jurnal:
Dr. Beban Sewa amount
Cr. Hutang PPh 4(2) amount * 10%
Cr. Bank/Kas amount * 90%
Beban Gaji (Simple)
Digunakan: Bayar gaji tanpa proses payroll penuh
Jurnal:
Dr. Beban Gaji amount
Cr. Bank/Kas amount
Template Transfer
Transfer Antar Bank
Digunakan: Pindah dana antar rekening
Field:
- Dari Akun (dropdown)
- Ke Akun (dropdown)
- Jumlah
Jurnal:
Dr. [Bank Tujuan] amount
Cr. [Bank Asal] amount
Tarik Tunai
Digunakan: Tarik uang dari bank ke kas
Jurnal:
Dr. Kas amount
Cr. Bank amount
Setor Tunai
Digunakan: Setor uang dari kas ke bank
Jurnal:
Dr. Bank amount
Cr. Kas amount
Template Pajak
Setor PPN
Digunakan: Bayar PPN ke negara
Jurnal:
Dr. Hutang PPN amount
Cr. Bank amount
Setor PPh 21
Digunakan: Bayar PPh 21 karyawan ke negara
Jurnal:
Dr. Hutang PPh 21 amount
Cr. Bank amount
Setor PPh 23
Digunakan: Bayar PPh 23 ke negara
Jurnal:
Dr. Hutang PPh 23 amount
Cr. Bank amount
Setor PPh 25
Digunakan: Bayar angsuran PPh bulanan
Jurnal:
Dr. Hutang PPh 25 amount
Cr. Bank amount
Setor PPh 4(2)
Digunakan: Bayar PPh final
Jurnal:
Dr. Hutang PPh 4(2) amount
Cr. Bank amount
Setor PPh 29
Digunakan: Bayar PPh kurang bayar tahunan
Jurnal:
Dr. Hutang PPh 29 amount
Cr. Bank amount
Template Payroll
Posting Gaji
Digunakan: Posting hasil perhitungan payroll
Jurnal:
Dr. Beban Gaji gross_salary
Dr. Beban BPJS Perusahaan bpjs_company
Cr. Hutang Gaji net_salary
Cr. Hutang BPJS bpjs_total
Cr. Hutang PPh 21 pph21
Bayar Gaji
Digunakan: Transfer gaji ke rekening karyawan
Jurnal:
Dr. Hutang Gaji amount
Cr. Bank amount
Setor BPJS
Digunakan: Bayar iuran BPJS ke BPJS
Jurnal:
Dr. Hutang BPJS amount
Cr. Bank amount
Template Inventory
Pembelian Barang Dagang
Digunakan: Beli barang untuk dijual kembali
Jurnal:
Dr. Persediaan Barang Dagang amount
Cr. Bank/Kas amount
Penjualan dengan HPP
Digunakan: Jual barang (sistem hitung HPP otomatis)
Jurnal:
Dr. Bank/Kas selling_price
Cr. Penjualan selling_price
Dr. HPP cogs
Cr. Persediaan Barang Dagang cogs
Adjustment Stok (+)
Digunakan: Tambah stok (stock opname surplus)
Jurnal:
Dr. Persediaan amount
Cr. Selisih Persediaan amount
Adjustment Stok (-)
Digunakan: Kurang stok (rusak, hilang)
Jurnal:
Dr. Beban Selisih Persediaan amount
Cr. Persediaan amount
Membuat Template Baru
Jika template standar tidak mencukupi:
- Buka menu Pengaturan > Template
- Klik Template Baru
- Isi:
- Nama template
- Kategori (Pendapatan, Pengeluaran, Transfer, dll)
- Klasifikasi Arus Kas (Operasional, Investasi, Pendanaan)
- Tipe Template (Sederhana / Terperinci)
- Baris jurnal dengan formula
- (Opsional) Buka bagian Metadata AI untuk mengisi metadata yang digunakan AI assistant saat mencocokkan template
- Klik Simpan
Lihat Setup Awal untuk panduan detail.
Metadata AI pada Template
Setiap template memiliki field metadata opsional yang digunakan oleh AI assistant untuk mencocokkan template secara otomatis saat mencatat transaksi. Metadata ini dapat dikelola melalui bagian Metadata AI (collapsible) pada form template.
Field Metadata
| Field | Deskripsi | Contoh |
|---|---|---|
| Deskripsi Semantik | Penjelasan kapan dan bagaimana template digunakan | "Gunakan template ini untuk mencatat pembayaran tagihan listrik bulanan ke PLN" |
| Keywords | Kata kunci untuk matching, dipisah koma | listrik, pln, token, utility |
| Contoh Merchant | Nama merchant yang biasa menggunakan template ini | PLN, PLN Mobile, Tokopedia PLN |
| Rentang Nominal | Rentang jumlah transaksi tipikal (min-max) | Rp 50.000 - Rp 5.000.000 |
| Pola Merchant | Regex pattern untuk matching merchant name | .*pln.*, .*listrik.* |
Tampilan di Halaman Detail
Pada halaman detail template, metadata ditampilkan sebagai card Metadata AI dengan:
- Deskripsi semantik sebagai paragraf teks
- Keywords sebagai badge hijau
- Contoh merchant sebagai badge biru
- Rentang nominal dalam format
Rp X - Rp Y - Pola merchant sebagai badge monospace
Card ini hanya muncul jika minimal satu field metadata terisi.

Form Edit Metadata
Buka bagian Metadata AI (collapsible) pada form edit template untuk mengisi atau mengubah metadata.

Cara AI Menggunakan Metadata
Lihat Bantuan AI untuk penjelasan cara AI matching template berdasarkan metadata.
Lihat Juga
- Setup Awal - Mengelola template
- Tutorial Akuntansi - Cara menggunakan template
- Referensi Akun - Daftar akun yang digunakan
Referensi Amortisasi & Depresiasi
Tabel masa manfaat dan tarif penyusutan sesuai regulasi Indonesia.
Kelompok Aset Tetap (PMK 96/PMK.03/2009)
Kelompok 1 (Masa Manfaat 4 Tahun)
| Tarif | Garis Lurus | Saldo Menurun |
|---|---|---|
| Per Tahun | 25% | 50% |
Contoh Aset:
- Komputer dan laptop
- Printer dan scanner
- Mesin ketik
- Peralatan komunikasi (telepon, fax)
- Kendaraan roda 2 (motor)
- Mebel dan peralatan dari kayu/rotan
Kelompok 2 (Masa Manfaat 8 Tahun)
| Tarif | Garis Lurus | Saldo Menurun |
|---|---|---|
| Per Tahun | 12.5% | 25% |
Contoh Aset:
- Kendaraan roda 4 (mobil)
- Mebel dan peralatan dari logam
- Peralatan AC dan refrigerator
- Mesin produksi ringan
- Perabotan kantor
Kelompok 3 (Masa Manfaat 16 Tahun)
| Tarif | Garis Lurus | Saldo Menurun |
|---|---|---|
| Per Tahun | 6.25% | 12.5% |
Contoh Aset:
- Mesin produksi berat
- Peralatan pabrik
- Instalasi listrik
- Tangki dan kontainer
Kelompok 4 (Masa Manfaat 20 Tahun)
| Tarif | Garis Lurus | Saldo Menurun |
|---|---|---|
| Per Tahun | 5% | 10% |
Contoh Aset:
- Bangunan permanen
- Konstruksi
- Jalan, jembatan
- Saluran air
Aset Tak Berwujud
Amortisasi Standar
| Jenis | Masa Manfaat | Tarif/Tahun |
|---|---|---|
| Software | 4 tahun | 25% |
| Website | 4 tahun | 25% |
| Lisensi | Sesuai masa lisensi | Varies |
| Hak Paten | 20 tahun | 5% |
| Hak Cipta | Usia ekonomis | Varies |
Beban Dibayar Dimuka
Amortisasi Bulanan
| Jenis | Masa Amortisasi |
|---|---|
| Sewa Tahunan | 12 bulan |
| Asuransi Tahunan | 12 bulan |
| Langganan Software | Sesuai periode |
| Domain & Hosting | 12 bulan |
Contoh Perhitungan
Sewa Kantor:
- Total: Rp 60.000.000/tahun
- Periode: Januari - Desember 2025
- Amortisasi/bulan: Rp 5.000.000
Jurnal awal (bayar sewa):
Dr. Sewa Dibayar Dimuka 60.000.000
Cr. Bank 60.000.000
Jurnal bulanan (amortisasi):
Dr. Beban Sewa 5.000.000
Cr. Sewa Dibayar Dimuka 5.000.000
Metode Penyusutan
Garis Lurus (Straight Line)
Rumus:
Penyusutan/Tahun = (Harga Perolehan - Nilai Residu) / Masa Manfaat
Karakteristik:
- Beban sama setiap tahun
- Sederhana
- Cocok untuk aset dengan pemakaian merata
Contoh: | Data | Nilai | |------|-------| | Harga Perolehan | Rp 12.000.000 | | Nilai Residu | Rp 0 | | Masa Manfaat | 4 tahun | | Penyusutan/Tahun | Rp 3.000.000 |
Saldo Menurun (Declining Balance)
Rumus:
Penyusutan Tahun ke-n = Nilai Buku Awal Tahun × Tarif
Karakteristik:
- Beban besar di awal
- Sesuai untuk aset yang kehilangan nilai cepat di awal
- Lebih agresif dari garis lurus
Contoh: | Tahun | Nilai Buku Awal | Penyusutan (50%) | Nilai Buku Akhir | |-------|-----------------|------------------|------------------| | 1 | 12.000.000 | 6.000.000 | 6.000.000 | | 2 | 6.000.000 | 3.000.000 | 3.000.000 | | 3 | 3.000.000 | 1.500.000 | 1.500.000 | | 4 | 1.500.000 | 1.500.000 | 0 |
Kategori Aset Standar (Seed Data)
| Kategori | Kelompok | Masa Manfaat | Metode |
|---|---|---|---|
| Komputer & Laptop | 1 | 4 tahun | Garis Lurus |
| Peralatan Kantor | 1 | 4 tahun | Garis Lurus |
| Printer & Scanner | 1 | 4 tahun | Garis Lurus |
| Kendaraan Roda 2 | 1 | 4 tahun | Garis Lurus |
| Kendaraan Roda 4 | 2 | 8 tahun | Garis Lurus |
| Perabotan | 2 | 8 tahun | Garis Lurus |
| AC & Refrigerator | 2 | 8 tahun | Garis Lurus |
| Mesin Produksi | 3 | 16 tahun | Garis Lurus |
| Bangunan | 4 | 20 tahun | Garis Lurus |
Implikasi Pajak
Deductibility
- Penyusutan aset adalah beban yang dapat mengurangi penghasilan kena pajak
- Metode dan masa manfaat harus sesuai PMK 96/PMK.03/2009
- Aset di bawah Rp 10.000.000 boleh langsung dibebankan (tidak di-kapitalisasi)
Dokumentasi
Untuk keperluan audit pajak, simpan:
- Faktur pembelian aset
- Bukti pembayaran
- Kartu aset dengan jadwal penyusutan
- Laporan Penyusutan format Lampiran 1A
Lihat Juga
- Aset Tetap - Pencatatan dan manajemen aset
- Perpajakan - Deductibility beban
- Glosarium - Definisi istilah
Referensi Akun

Daftar akun standar yang tersedia dalam seed data. Akun dikelompokkan berdasarkan tipe dan sub-tipe.
Struktur Kode Akun
| Kode | Tipe | Saldo Normal |
|---|---|---|
| 1.x.xx | Aset | Debit |
| 2.x.xx | Kewajiban | Kredit |
| 3.x.xx | Ekuitas | Kredit |
| 4.x.xx | Pendapatan | Kredit |
| 5.x.xx | Beban | Debit |
1. Aset (Assets)
1.1 Aset Lancar (Current Assets)
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 1.1.01 | Kas Kecil | Uang tunai di tangan |
| 1.1.02 | Kas Besar | Kas operasional |
| 1.1.10 | Bank BCA | Rekening Bank BCA |
| 1.1.11 | Bank Mandiri | Rekening Bank Mandiri |
| 1.1.12 | Bank BNI | Rekening Bank BNI |
| 1.1.15 | Deposito | Deposito berjangka |
| 1.1.20 | Piutang Usaha | Tagihan ke pelanggan |
| 1.1.21 | Piutang Karyawan | Pinjaman ke karyawan |
| 1.1.25 | PPN Masukan | PPN yang dapat dikreditkan |
| 1.1.30 | Sewa Dibayar Dimuka | Sewa yang belum jatuh tempo |
| 1.1.31 | Asuransi Dibayar Dimuka | Premi yang belum jatuh tempo |
| 1.1.35 | Perlengkapan | Perlengkapan kantor |
| 1.1.40 | Persediaan Barang Dagang | Barang untuk dijual (Dagang) |
| 1.1.41 | Persediaan Bahan Baku | Bahan untuk produksi (Manufaktur) |
| 1.1.42 | Persediaan Barang Jadi | Hasil produksi (Manufaktur) |
1.2 Aset Tetap (Fixed Assets)
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 1.2.01 | Peralatan Kantor | Komputer, printer, dll |
| 1.2.02 | Akum. Penyusutan Peralatan | Kontra akun peralatan |
| 1.2.05 | Kendaraan | Kendaraan operasional |
| 1.2.06 | Akum. Penyusutan Kendaraan | Kontra akun kendaraan |
| 1.2.10 | Perabotan | Meja, kursi, lemari |
| 1.2.11 | Akum. Penyusutan Perabotan | Kontra akun perabotan |
| 1.2.15 | Bangunan | Gedung dan bangunan |
| 1.2.16 | Akum. Penyusutan Bangunan | Kontra akun bangunan |
1.3 Aset Tak Berwujud (Intangible Assets)
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 1.3.01 | Website | Biaya pengembangan website |
| 1.3.02 | Akum. Amortisasi Website | Kontra akun website |
| 1.3.05 | Software | Lisensi software |
| 1.3.06 | Akum. Amortisasi Software | Kontra akun software |
2. Kewajiban (Liabilities)
2.1 Kewajiban Lancar (Current Liabilities)
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 2.1.01 | Hutang Usaha | Hutang ke vendor/supplier |
| 2.1.02 | Hutang Gaji | Gaji yang belum dibayar |
| 2.1.03 | Hutang PPN | PPN yang harus disetor |
| 2.1.07 | Hutang Gaji (Payroll) | Gaji neto dari payroll bulanan |
| 2.1.08 | Hutang BPJS | Iuran BPJS yang belum disetor |
| 2.1.10 | Pendapatan Diterima Dimuka | Pembayaran dimuka dari klien |
| 2.1.20 | Hutang PPh 21 | PPh 21 yang dipotong |
| 2.1.21 | Hutang PPh 23 | PPh 23 yang dipotong |
| 2.1.22 | Hutang PPh 4(2) | PPh final yang dipotong |
| 2.1.23 | Hutang PPh 25 | Angsuran PPh bulanan |
| 2.1.24 | Hutang PPh 29 | PPh kurang bayar tahunan |
2.2 Kewajiban Jangka Panjang (Long-term Liabilities)
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 2.2.01 | Hutang Bank | Pinjaman bank jangka panjang |
| 2.2.05 | Hutang Leasing | Hutang sewa guna usaha |
3. Ekuitas (Equity)
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 3.1.01 | Modal | Modal awal pemilik |
| 3.1.02 | Modal Disetor | Tambahan modal dari pemilik |
| 3.2.01 | Laba Ditahan | Akumulasi laba tahun lalu |
| 3.2.02 | Laba Tahun Berjalan | Laba periode berjalan |
| 3.3.01 | Prive | Pengambilan oleh pemilik |
4. Pendapatan (Revenue)
4.1 Pendapatan Operasional
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 4.1.01 | Pendapatan Jasa | Pendapatan dari jasa utama |
| 4.1.02 | Pendapatan Konsultasi | Pendapatan konsultasi |
| 4.1.05 | Pendapatan Maintenance | Pendapatan maintenance/retainer |
| 4.1.10 | Penjualan | Pendapatan dari penjualan barang |
4.2 Pendapatan Lain-lain
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 4.2.01 | Pendapatan Bunga | Bunga deposito/tabungan |
| 4.2.02 | Pendapatan Lain-lain | Pendapatan di luar operasional |
5. Beban (Expenses)
5.1 Beban Operasional
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 5.1.01 | Beban Gaji | Gaji karyawan tetap |
| 5.1.02 | Beban Sewa | Sewa kantor/gedung |
| 5.1.03 | Beban Listrik | Tagihan listrik |
| 5.1.04 | Beban Air | Tagihan air |
| 5.1.05 | Beban Telepon | Tagihan telepon |
| 5.1.06 | Beban Internet | Tagihan internet |
| 5.1.10 | Beban ATK | Alat tulis kantor |
| 5.1.11 | Beban BPJS | Kontribusi BPJS perusahaan |
| 5.1.12 | Beban Perlengkapan | Perlengkapan kantor |
| 5.1.15 | Beban Transportasi | Transport dan perjalanan |
| 5.1.16 | Beban Parkir | Biaya parkir |
| 5.1.20 | Beban Makan | Makan karyawan/meeting |
5.2 Beban Profesional
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 5.2.01 | Beban Jasa Profesional | Jasa konsultan/freelancer |
| 5.2.02 | Beban Jasa Hukum | Jasa notaris/pengacara |
| 5.2.03 | Beban Jasa Akuntan | Jasa akuntan/audit |
| 5.2.05 | Beban Software | Subscription software |
| 5.2.06 | Beban Hosting | Hosting dan domain |
5.3 Beban Administrasi
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 5.3.01 | Beban Administrasi Bank | Biaya admin bank |
| 5.3.02 | Beban Materai | Bea materai |
| 5.3.05 | Beban Asuransi | Premi asuransi |
5.4 Beban Penyusutan & Amortisasi
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 5.4.01 | Beban Penyusutan | Penyusutan aset tetap |
| 5.4.02 | Beban Amortisasi | Amortisasi aset tak berwujud |
5.5 Harga Pokok (Cost of Goods)
| Kode | Nama Akun | Keterangan |
|---|---|---|
| 5.5.01 | HPP Barang Dagang | HPP untuk industri dagang |
| 5.5.02 | HPP Produksi | HPP untuk industri manufaktur |
| 5.5.10 | Beban Selisih Persediaan | Selisih stock opname |
Cara Menambah Akun
Jika akun yang Anda butuhkan tidak ada dalam daftar:
- Tentukan tipe akun (Aset/Kewajiban/Ekuitas/Pendapatan/Beban)
- Tentukan sub-tipe yang sesuai
- Buat kode akun mengikuti struktur yang ada
- Lihat Setup Awal untuk panduan menambah akun
Lihat Juga
- Setup Awal - Menambah dan mengelola akun
- Tutorial Akuntansi - Memahami debit dan kredit
- Glosarium - Penjelasan istilah
