Skip to main content

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

Bank Accounts Halaman Bank Accounts (atau Saldo) mengelola seluruh rekening keuangan perusahaan: kas, bank, dan e-wallet. Sistem mendukung 4 tipe akun, saldo real-time yang di-refresh setiap 30 detik, workflow deposit dengan upload bukti transfer, withdrawal dengan approval admin, dan integrasi langsung dengan POS melalui flag 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

  1. Klik “Tambah Rekening” di halaman Saldo
  2. Isi form:
  1. Klik “Simpan”
  2. 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

Flag is_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

  1. Download statement dari bank (CSV/Excel)
  2. Upload ke sistem
  3. Auto-match berdasarkan nominal + tanggal
  4. Review unmatched items
  5. Complete reconciliation

Manual Reconciliation

  1. Input statement balance
  2. List outstanding items
  3. Calculate adjusted balance
  4. Compare with system balance
  5. 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 — 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 FinancialRecord dengan idempotency_key untuk mencegah duplikasi
  • current_balance bersifat 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 GLJournalEntry dengan status posted yang tidak bisa di-mutate (hanya reversal)