Versi 1
| Field | Isi |
|---|---|
| Dokumen ID | VBS-FIN-008 |
| Deskripsi | Rekonsiliasi rekening koran bank dengan catatan pembukuan: impor bank statement, pencocokan otomatis maupun manual terhadap jurnal debit / kredit, pencatatan selisih, dan pembuatan transaksi baru dari mutasi yang belum tercatat |
| Nomor Revisi | 1 |
| Tanggal | 2026-10-04 |
| Keterangan | Dokumentasi baseline dari dokumentasi fitur demo dan kode FE |
1. Ringkasan
a. In scope
- User memilih akun bank dan periode bulan untuk direkonsiliasi.
- User mengunduh template bank statement Basic dan mengimpor file bank statement dengan format Basic, BCA, atau BRI.
- User melihat mutasi bank statement dalam tab Semua, Sudah Terekonsiliasi, Belum Terekonsiliasi, dan Rangkuman Terekonsiliasi.
- User menjalankan pencocokan otomatis antara bank statement dan jurnal pembukuan.
- User mencocokkan secara manual satu baris bank statement dengan satu atau lebih jurnal debit / kredit yang masih bersisa, termasuk mencatat alasan selisih (denda, konversi kurs, potongan bank, lain-lain).
- User membuat transaksi baru langsung dari mutasi yang belum tercatat (pemasukan / pengeluaran kas bank, titipan DP, pembayaran piutang, pembayaran hutang) lalu otomatis dipasangkan.
- User memberi kategori pada baris bank statement.
b. Catatan
c. Kesimpulan
- [FE] -
- [BE] -
2. Functional Requirement
| Kode | Deskripsi |
|---|---|
| FR-01 | User dapat memilih akun bank dan rentang bulan sebagai konteks rekonsiliasi |
| FR-02 | User dapat mengunduh template bank statement Basic |
| FR-03 | User dapat mengimpor bank statement format Basic, BCA, atau BRI ke akun terpilih |
| FR-04 | Sistem menampilkan mutasi bank statement per status terekonsiliasi |
| FR-05 | User dapat menjalankan pencocokan otomatis untuk akun terpilih |
| FR-06 | User dapat mencocokkan bank statement dengan jurnal debit / kredit secara manual |
| FR-07 | Sistem meminta alasan selisih jika total jurnal yang dipasangkan tidak sama dengan sisa statement |
| FR-08 | User dapat membuat transaksi baru dari mutasi belum terekonsiliasi dan langsung memasangkannya |
| FR-09 | User dapat memberi kategori pada baris bank statement |
| FR-10 | Sistem menampilkan rangkuman hasil rekonsiliasi per periode |
3. Use Case List
| Kode | Deskripsi |
|---|---|
| UC-01 | Memilih akun bank dan periode rekonsiliasi |
| UC-02 | Mengunduh template bank statement |
| UC-03 | Mengimpor bank statement |
| UC-04 | Mencocokkan bank statement secara otomatis |
| UC-05 | Mencocokkan bank statement dengan jurnal secara manual |
| UC-06 | Membuat transaksi baru dari mutasi yang belum tercatat |
| UC-07 | Memberi kategori pada baris bank statement |
| UC-08 | Melihat rangkuman terekonsiliasi |
4. Use Case Scenario
UC-01 : Memilih akun bank dan periode rekonsiliasi
| Aktor | User keuangan |
| Deskripsi | User menentukan akun bank dan periode yang akan direkonsiliasi |
| Prekondisi | User sudah login dan memiliki akses Rekonsiliasi Bank |
| Alur utama | 1. User membuka halaman Rekonsiliasi Bank. 2. Sistem memuat daftar akun. 3. User memilih akun bank dan rentang bulan. 4. Sistem menampilkan bank statement pada tab Semua, Sudah Terekonsiliasi, dan Belum Terekonsiliasi. |
| Alur negatif | - Jika akun belum dipilih, tombol upload dan cocokkan otomatis tidak tampil. - Jika gagal memuat, daftar tampil kosong. |
| Bisnis rule | - User non-admin hanya dapat memilih akun berawalan 11 (kas/bank). - Tanggal akhir periode dibulatkan ke akhir bulan. |
| Postkondisi | Konteks rekonsiliasi terpilih dan daftar statement tampil |
| Trigger | User membuka halaman atau memilih akun / periode |
| Kode FR | FR-01 FR-04 |
UC-02 : Mengunduh template bank statement
| Aktor | User keuangan |
| Deskripsi | User mengunduh template impor bank statement Basic |
| Prekondisi | User berada di halaman Rekonsiliasi Bank |
| Alur utama | 1. User menekan Template Basic. 2. Sistem membuat file Excel dengan kolom Tanggal, Keterangan, Nominal Debit, dan Nominal Credit. 3. File "Template Bank Statement Upload" terunduh. |
| Alur negatif | - Jika pembuatan file gagal, unduhan tidak terjadi. |
| Bisnis rule | - Kolom bertanda bintang (tanggal, nominal debit, nominal credit) wajib diisi. |
| Postkondisi | Template terunduh |
| Trigger | User menekan Template Basic |
| Kode FR | FR-02 |
UC-03 : Mengimpor bank statement
| Aktor | User keuangan dengan hak dasar |
| Deskripsi | User mengunggah rekening koran bank ke sistem |
| Prekondisi | Akun bank sudah dipilih |
| Alur utama | 1. User memilih Upload File lalu format Basic, BCA, atau BRI. 2. User memilih file. 3. Sistem mengunggah file dengan indikator progres. 4. Sistem menampilkan status berhasil. |
| Alur negatif | - Jika file atau akun kosong, unggah tidak dijalankan. - Jika unggah gagal, status berubah error dan user dapat mencoba lagi. |
| Bisnis rule | - Format file dikirim sebagai tipe impor (manual, bca, bri). |
| Postkondisi | Baris bank statement tersimpan untuk akun terpilih |
| Trigger | User memilih format upload |
| Kode FR | FR-03 |
UC-04 : Mencocokkan bank statement secara otomatis
| Aktor | User keuangan |
| Deskripsi | Sistem memasangkan bank statement dengan jurnal secara otomatis |
| Prekondisi | Akun bank sudah dipilih dan bank statement tersedia |
| Alur utama | 1. User menekan Cocokkan Otomatis. 2. Sistem menjalankan pencocokan untuk akun tersebut. 3. Sistem menampilkan "Berhasil memasangkan Rekonsiliasi Bank Otomatis". 4. Sistem memuat ulang tab aktif. |
| Alur negatif | - Jika server menolak, muncul notifikasi error. |
| Bisnis rule | - Pencocokan otomatis berlaku untuk seluruh statement akun terpilih. |
| Postkondisi | Statement yang cocok berstatus terekonsiliasi |
| Trigger | User menekan Cocokkan Otomatis |
| Kode FR | FR-05 |
UC-05 : Mencocokkan bank statement dengan jurnal secara manual
| Aktor | User keuangan dengan hak dasar |
| Deskripsi | User memasangkan statement dengan jurnal debit / kredit pilihan |
| Prekondisi | Ada statement belum terekonsiliasi dan jurnal yang masih bersisa |
| Alur utama | 1. User memilih baris statement di tab Belum Terekonsiliasi atau Semua. 2. Sistem menampilkan jurnal debit (untuk statement debit) atau kredit (untuk statement kredit) yang sisa belum dipasangkan lebih dari 0. 3. User memilih satu atau lebih jurnal. 4. User menekan simpan. 5. Jika total tidak sama dengan sisa statement, sistem meminta alasan selisih. 6. Sistem menyimpan pasangan dan menampilkan "Berhasil buat Mencocokkan data Rekonsiliasi Bank". |
| Alur negatif | - Jika belum memilih jurnal, muncul "Anda Belum memilih data yang mau anda cocokkan". - Jika user membatalkan dialog selisih, data tidak disimpan. - Jika server menolak, muncul pesan error diikuti "Silahkan pasangkan kembali!". |
| Bisnis rule | - Statement debit dipasangkan dengan jurnal debit, statement kredit dengan jurnal kredit. - Pilihan alasan selisih: Denda, Konversi Nilai Mata Uang (Kurs), Potongan Bank, Lain Lain, atau Biarkan transaksi Open. - Nominal yang dipasangkan = sisa jurnal yang belum dipasangkan. |
| Postkondisi | Statement terpasang dengan jurnal |
| Trigger | User memilih statement dan jurnal lalu simpan |
| Kode FR | FR-06 FR-07 |
UC-06 : Membuat transaksi baru dari mutasi yang belum tercatat
| Aktor | User keuangan dengan hak dasar |
| Deskripsi | User mencatat transaksi yang belum ada di pembukuan langsung dari statement |
| Prekondisi | Ada statement belum terekonsiliasi |
| Alur utama | 1. User memilih statement lalu tab Tambah Baru. 2. User memilih jenis: Pemasukan / Titipan DP / Pembayaran Piutang (untuk dana masuk) atau Pengeluaran / Titipan DP / Pembayaran Hutang (untuk dana keluar). 3. User mengisi form transaksi. 4. Sistem membuat transaksi final dengan tanggal dan akun mengikuti statement. 5. Sistem langsung memasangkan transaksi baru dengan statement. |
| Alur negatif | - Jika form belum lengkap, muncul "Form Harus Diisi". - Jika total melebihi sisa statement, muncul "Total Invoice tidak boleh lebih dari NOMINAL". - Jika pembuatan atau pemasangan gagal, muncul alert error. |
| Bisnis rule | - Transaksi kas bank dari rekonsiliasi disimpan dengan mode Harian dan langsung final. - Akun kas/bank transaksi = akun bank statement. |
| Postkondisi | Transaksi baru tercatat dan statement terekonsiliasi |
| Trigger | User memilih Tambah Baru pada statement |
| Kode FR | FR-08 |
UC-07 : Memberi kategori pada baris bank statement
| Aktor | User keuangan |
| Deskripsi | User menandai kategori suatu mutasi bank |
| Prekondisi | Baris statement terpilih |
| Alur utama | 1. User memilih Masukkan Kategori. 2. User mengisi nama kategori. 3. Sistem menyimpan dan menampilkan "Berhasil Mengupdate Kategori". |
| Alur negatif | - Jika kategori kosong, muncul "Form Harus Diisi". - Jika server menolak, muncul alert error. |
| Bisnis rule | - |
| Postkondisi | Kategori statement tersimpan |
| Trigger | User memilih Masukkan Kategori |
| Kode FR | FR-09 |
UC-08 : Melihat rangkuman terekonsiliasi
| Aktor | User keuangan |
| Deskripsi | User melihat ringkasan hasil rekonsiliasi akun dan periode |
| Prekondisi | Akun bank dan periode sudah dipilih |
| Alur utama | 1. User membuka tab Rangkuman Terekonsiliasi. 2. Sistem memuat rangkuman statement dan pasangan jurnal. 3. User dapat memasangkan sisa statement dari tab ini. |
| Alur negatif | - Jika akun atau periode belum dipilih, data tidak dimuat. - Jika jurnal terkait tidak ditemukan, muncul "Jurnal Umum tidak ditemukan". |
| Bisnis rule | - Pemasangan dari tab rangkuman memakai aturan yang sama dengan UC-05. |
| Postkondisi | Rangkuman tampil |
| Trigger | User membuka tab Rangkuman |
| Kode FR | FR-10 |
5. Data Flow Diagram
DFD-01 — Alur data rekonsiliasi bank
6. Sequence Diagram
SD-01 — UC-01 : Memilih akun bank dan periode rekonsiliasi
SD-02 — UC-02 : Mengunduh template bank statement
SD-03 — UC-03 : Mengimpor bank statement
SD-04 — UC-04 : Mencocokkan bank statement secara otomatis
SD-05 — UC-05 : Mencocokkan bank statement dengan jurnal secara manual
SD-06 — UC-06 : Membuat transaksi baru dari mutasi yang belum tercatat
SD-07 — UC-07 : Memberi kategori pada baris bank statement
SD-08 — UC-08 : Melihat rangkuman terekonsiliasi
7. Table Schema
8. API Schema
| Endpoint | Status | Perubahan |
|---|---|---|
GET /rekening | existing | - |
GET /bank-statement | existing | - |
PUT /bank-statement/:id | existing | - |
POST /rekonsiliasi-bank/uploads | existing | - |
POST /rekonsiliasi-bank/rekonsiliasi | existing | - |
GET /rekonsiliasi-bank/summary | existing | - |
GET /debit | existing | - |
GET /credit | existing | - |
POST /bank_debetcredit_match | existing | - |
POST /invoice-kasbank-harian | existing | - |
POST /invoice-dp | existing | - |
POST /invoice-bayar-piutang | existing | - |
POST /invoice-bayar-hutang | existing | - |