title: “Bank Accounts” description: “Manajemen rekening bank, kas, dan e-wallet perusahaan — 4 tipe akun, saldo real-time, transfer antar rekening, deposit/withdrawal workflow, dan integrasi POS di SNISHOP ERP.”
Bank Accounts

is_default_pos. Setiap akun terhubung ke Chart of Accounts (COA) untuk pelaporan keuangan.
Arsitektur Akun Keuangan
Entity Account
Field Account
COA Code Mapping
Add Bank Account
Step-by-Step
- Klik “Tambah Rekening” di halaman Saldo
- Isi form:
- Klik “Simpan”
- Sistem create Account entity dengan
current_balance = initial_balance
Multiple Accounts
Sistem mendukung unlimited rekening:Saldo Real-Time
Auto-Refresh
- Sistem auto-refresh setiap 30 detik
- Menampilkan
current_balance(server-authoritative) - Bukan field
balance(undeclared, tidak digunakan)
Balance Monitoring
Balance Alerts
Deposit Workflow
Deposit Rules
Withdrawal Workflow
Withdrawal Rules
Transfer Antar Rekening
Transfer Rules
Transfer di Laporan
- All accounts view: Transfer net zero (tidak mempengaruhi total)
- Single account view: Transfer tercatat sebagai inflow/outflow
POS Integration
Default POS Account
Flagis_default_pos menentukan akun mana yang menerima revenue dari POS:
Multiple POS Accounts
Jika ada multiple outlet, setiap outlet bisa punya akun POS sendiri:Transaction Tracking
Incoming Transactions
Outgoing Transactions
Transaction Details
Rekonsiliasi Bank
Import Bank Statement
- Download statement dari bank (CSV/Excel)
- Upload ke sistem
- Auto-match berdasarkan nominal + tanggal
- Review unmatched items
- Complete reconciliation
Manual Reconciliation
- Input statement balance
- List outstanding items
- Calculate adjusted balance
- Compare with system balance
- Investigate differences
Reconciliation Report
Reporting
Bank Statement
Cash Flow Report
Best Practices
Security
- Limit akses ke rekening bank (hanya owner/finance)
- Regular password change
- Two-factor authentication
- Audit trail untuk semua transaksi
Reconciliation
- Rekonsiliasi minimal sebulan sekali
- Investigate semua differences
- Document adjustments
- Keep records untuk audit
Monitoring
- Check balance harian
- Review transactions mingguan
- Monitor alerts
- Report discrepancies segera
Entity Schema & Relasi ke General Ledger
ER Diagram — Bank Account Entities
Tabel Schema — BankAccount
Tabel Schema — Account (Field Relevan)
Tabel Schema — GLJournalEntry (Bank-Related)
Tabel Schema — FinancialRecord (Transaksi Keuangan)
State Machine — Status Rekening Bank
Transisi Status
Implikasi Status terhadap Operasi
Sequence Diagram — Rekonsiliasi Bank
Status Rekonsiliasi per Transaksi
Sequence Diagram — Transfer Antar Rekening
Aturan Transfer
Enum Tables
account_type (BankAccount)
type (Account)
bank_name / provider
reconciliation_status
reference_type (GLJournalEntry)
status (GLJournalEntry)
source (FinancialRecord)
RBAC — Hak Akses Rekening Bank
RLS Policy Summary
Catatan Keamanan
- Semua mutasi saldo dicatat di
FinancialRecorddenganidempotency_keyuntuk mencegah duplikasi current_balancebersifat server-authoritative — frontend tidak boleh meng-update langsung- Transfer antar rekening menggunakan database lock untuk mencegah race condition
- Rekening yang di-freeze (
is_active = false) menolak semua operasi transaksi - Audit trail tersedia melalui
GLJournalEntrydengan statuspostedyang tidak bisa di-mutate (hanya reversal)
