Catatu punya 3 cara import data dari bank: (1) Scan E-Statement Bank upload PDF/screenshot, AI Gemini Vision baca otomatis tanggal+nominal+kategori; (2) Smart Import untuk CSV/Excel berantakan, AI DeepSeek normalisasi format; (3) Standard Excel Import untuk file rapi. Support 9 bank Indonesia (BCA, Mandiri, BNI, BRI, Jenius, Permata, BSI, Danamon, CIMB) plus e-wallet (DANA, OVO, GoPay, ShopeePay). 100+ transaksi dalam 30 detik. Aman sesuai UU PDP §17 — password PDF di-decrypt di browser, gak pernah sampai ke server.
Kamu pernah download mutasi rekening 1 bulan dari mobile banking, niat mau catat satu-satu di app finance, lalu liat 137 baris transaksi dan langsung nyerah? Ini wajar. Manual entry untuk recap bulan lalu adalah aktivitas paling demoralizing dalam pencatatan keuangan.
Solusinya: upload langsung file mutasi-nya, biar AI yang ngebaca. Artikel ini panduan lengkap pakai fitur Scan E-Statement Bank dan Smart Import di Catatu — cara tercepat masukin ratusan transaksi dari bank ke catatan keuangan dalam hitungan detik, tanpa typing satu nominal pun.
- Apa itu e-statement / mutasi rekening?
- Kenapa import lebih cepat dari catat manual?
- 3 cara import data ke Catatu (kapan pakai yang mana)
- Tutorial 5-langkah Scan E-Statement
- Panduan per-bank: BCA, Mandiri, BNI, BRI, Jenius, dll
- Privasi & keamanan: aman gak upload PDF rekening?
- Common errors & solusinya
- FAQ — pertanyaan yang sering muncul
Apa itu e-statement / mutasi rekening?
E-statement (electronic statement) adalah versi digital dari rekening koran — laporan transaksi rekening selama periode tertentu (biasanya 1 bulan). Dulu rekening koran cetak dikirim via pos, sekarang banknya kirim PDF via email atau bisa di-download langsung dari mobile banking.
Istilah-istilah yang artinya sama:
- Mutasi rekening — istilah Indonesia natural, sering muncul di KlikBCA, Mandiri, BNI Mobile
- E-statement — istilah formal, biasanya dipakai di email subject "E-Statement [Bank Name] [Bulan]"
- Rekening koran — istilah lama, masih dipakai untuk versi cetak resmi
- Bank statement — istilah Inggris, dipakai di Wise, Jenius, kartu kredit internasional
- Histori transaksi — istilah app-style, biasanya untuk e-wallet (DANA, OVO, GoPay)
Format umumnya PDF dengan password proteksi. Password biasanya: tanggal lahir (DDMMYYYY), 6 digit terakhir nomor KTP, atau kombinasi keduanya. Cek email konfirmasi e-statement dari bank — biasanya petunjuk password disebutin di body email.
Kenapa import lebih cepat dari catat manual?
Mari kita compare angka:
| Cara | 137 transaksi (1 bulan) | Akurasi | Effort |
|---|---|---|---|
| Catat manual satu-satu | 3-4 jam (90 detik per tx) | ~99% (tapi kemungkinan typo) | Tinggi · drain motivasi |
| Copy-paste dari bank ke Excel | 1-1.5 jam (clean format dulu) | ~95% (kalau format konsisten) | Sedang · perlu Excel skill |
| Scan E-Statement Catatu (AI Gemini) | 30-45 detik | 92-95% (review preview) | Rendah · drag & drop |
| Smart Import CSV/Excel (AI DeepSeek) | 20-30 detik | 90-94% (review preview) | Rendah · upload file |
Trade-off-nya: AI biasanya 5-8% kurang akurat dari manual. Tapi 5% dari 137 = 7 baris yang perlu di-edit di preview, vs 3-4 jam typing ulang. Total time savings: 99%+.
Plus benefit psikologis: banyak orang gagal catat keuangan karena backlog. Begitu lewat 1 minggu tanpa catat, mountain of unrecorded transactions terasa overwhelming dan akhirnya nyerah total. Import e-statement = clear backlog dalam 1 sesi 5 menit, lanjut catat real-time mulai sekarang.
3 cara import data ke Catatu (kapan pakai yang mana)
Catatu punya 3 fitur import yang kepakai untuk skenario berbeda. Pilih yang sesuai jenis file kamu:
1. Scan E-Statement Bank — untuk PDF / screenshot dari mobile banking
Kapan pakai: kamu punya file PDF e-statement dari email bank, atau screenshot mutasi dari aplikasi mobile banking (BCA Mobile, Livin, BRImo, dll).
Cara kerja: File dikirim ke Gemini Vision (AI multimodal Google), yang baca tabel transaksi sebagai gambar dan ekstrak structured data: tanggal, deskripsi, nominal debit/kredit. Akurasi tinggi untuk format bank besar Indonesia karena Gemini sudah training dengan banyak sample.
Format didukung: PDF (termasuk password-protected), PNG, JPG, WebP. Multi-halaman PDF di-process per page paralel.
2. Smart Import — untuk CSV / Excel berantakan
Kapan pakai: kamu export dari aplikasi finance lain (Money Lover, Wallet, dll) dan dapet CSV dengan header weird, format tanggal aneh (ISO 8601 mixed dengan dd/mm/yy), nominal pakai comma decimal, atau currency tercampur.
Cara kerja: File dikirim ke DeepSeek (AI text), yang ngerti maksud kolom-kolom data dan normalisasi ke format standar Catatu (date ISO, amount integer rupiah, category mapped).
Format didukung: CSV, XLSX, XLS dengan max 1MB / 500 baris per batch.
3. Standard Excel Import — untuk file rapi tanpa AI
Kapan pakai: kamu udah punya Excel template Catatu (dari blog template atau export Catatu sebelumnya), atau file Excel kamu udah clean dengan header standar (Tanggal, Jumlah, Kategori, Catatan).
Cara kerja: Parse langsung di browser pakai SheetJS, no AI needed. Lebih cepat dan zero biaya AI. Multi-format date parser (dd/mm/yyyy, yyyy-mm-dd, format Excel native), multi-format amount parser ("Rp 25.000", "25rb", "25000").
Tutorial 5-langkah Scan E-Statement
Skenario: kamu mau import mutasi BCA bulan April 2026 yang udah di-download dari BCA Mobile sebagai PDF.
Step 1: Download mutasi dari mobile banking
Goal: Dapet file PDF / screenshot mutasi 1 bulan dari aplikasi mobile banking kamu.
Buka aplikasi mobile banking, navigate ke menu mutasi:
- BCA Mobile / KlikBCA: m-Info → m-Statement → pilih rekening → set rentang tanggal → "Lihat" → "Download PDF" (akan kirim ke email)
- Livin Mandiri: Akun → Mutasi → pilih rekening → set periode → tap ikon download di kanan atas → "E-Statement"
- BNI Mobile: Mutasi Rekening → pilih rekening → set tanggal → Cetak → kirim ke email
- BRImo: Mutasi → pilih rekening → set rentang → tap "Download" → email
- Jenius (BTPN): $aldo → Statement → pilih bulan → "Email Statement"
Buka email, download attachment PDF. Catat password PDF (biasanya disebutin di body email — formatnya tanggal lahir DDMMYYYY atau 6 digit KTP).
Alternatif tanpa email: kalau cuma butuh transaksi hari ini sampai 7 hari lalu, screenshot langsung dari mobile banking app. Catatu juga baca screenshot.
Step 2: Buka Catatu, masuk ke menu Scan E-Statement
Goal: Sampai di modal upload e-statement bank.
Buka catatu.app di browser apa aja (Chrome / Safari / Edge), login dengan Google. Kalau kamu user baru, pakai tutorial install Catatu dulu.
Setelah login:
- Tap menu Pengaturan (ikon gear di tab nav bawah)
- Scroll ke bagian DATA
- Tap 📑 Scan E-Statement Bank
Modal upload muncul dengan area drag-and-drop dan tombol pilih file.
Step 3: Upload file PDF / screenshot
Goal: File ter-upload, Catatu siap ngirim ke AI Gemini Vision.
Drag-and-drop file PDF atau screenshot ke area upload. Atau klik area-nya untuk file picker.
Kalau PDF kamu password-protected, akan muncul prompt input password. Masukan password dari email bank. Penting: password ini di-decrypt di browser kamu pakai library pdfjs-dist dari Mozilla — password gak pernah dikirim ke server Catatu (kepatuhan UU PDP §17 tentang kerahasiaan bank). Browser convert PDF terdekripsi ke JPEG, baru JPEG itu yang dikirim ke AI.
Sebelum upload, ada toggle pilihan:
- Skip Credit (default ON): hanya import transaksi debit (uang keluar). Skip semua credit (gaji masuk, transfer dari pihak lain). Toggle OFF kalau mau import income juga.
- Pilih Provider AI: Gemini (default, lebih akurat untuk gambar), atau DeepSeek (kalau mau pakai text-only mode). Per-provider consent disclosure (UU PDP §56) muncul kalau pertama kali pakai.
Tap tombol Scan Sekarang.
Step 4: AI Gemini Vision baca otomatis
Goal: AI ekstrak transaksi, preview tabel muncul.
File dikirim ke Gemini API Google dengan TLS encryption. Gemini ngebaca tabel transaksi sebagai vision input — sama kayak kamu liat tabel pakai mata, AI "liat" pixel pattern dan ekstrak structured data:
- Tanggal transaksi (parsed ke ISO date format)
- Deskripsi merchant (raw text, biasanya di kolom Keterangan)
- Nominal debit / kredit (parsed ke integer rupiah)
- Saldo akhir (untuk validasi — kalau saldo cocok di akhir, semua transaksi correctly parsed)
- Suggested kategori (Catatu mapping based on merchant text → Kafe/Transport/Belanja/dll, 80+ kategori siap pakai)
Loading state nampilin progress: "Membaca halaman 1 dari 5..." Untuk PDF 5 halaman dengan 200 transaksi, butuh 30-45 detik.
Step 5: Review preview, simpan
Goal: Audit hasil AI, edit yang salah, tap simpan.
Preview tabel muncul dengan semua transaksi yang berhasil di-parse. Tiap baris editable:
- Tanggal — ubah kalau salah parse
- Deskripsi — bisa rename merchant biar lebih familiar
- Nominal — koreksi kalau ada typo OCR (misalnya 25,000 ke-baca 26,000)
- Kategori — paling sering perlu edit. AI tebak dari nama merchant, tapi gak selalu match dengan budget mental kamu
- Currency — kalau multi-currency, picker per-row plus bulk apply control
- ❌ tombol hapus — buang transfer internal antar rekening sendiri (gak masuk pengeluaran)
Setelah selesai review, tap Simpan {N} Transaksi. Semua masuk ke catatan harianmu sekaligus dengan timestamps yang asli dari bank statement (bukan timestamp upload).
Panduan per-bank: BCA, Mandiri, BNI, BRI, Jenius, dll
Tiap bank punya quirks tersendiri. Catatan dari ngamatin pengguna Catatu yang import statement bank-bank besar Indonesia:
BCA (KlikBCA, BCA Mobile)
- Format mutasi: PDF dengan tabel rapi, password = tanggal lahir DDMMYYYY (8 digit)
- Akurasi AI: ~95%, salah satu format paling friendly
- Catatan: kolom "Catatan" di BCA bisa panjang banget kalau auto-debet — bisa di-rename setelah import
- Multi-rekening: kalau punya 2+ rekening BCA, download terpisah per rekening, import satu-satu
Mandiri (Livin)
- Format mutasi: PDF dengan format yang beda dari versi lama. Livin baru pakai layout 2-kolom di mobile statement
- Akurasi AI: ~92% (sedikit lebih rendah karena tata letak unik)
- Tip: kalau scan PDF mobile gagal, request "E-Statement Bulan" via email — format yang itu lebih clean
BNI (BNI Mobile Banking)
- Format mutasi: PDF email statement, password = 6 digit terakhir nomor KTP
- Akurasi AI: ~94%
- Catatan: BNI suka pakai singkatan merchant unik (TRX BIAYA ADM, BUNGA SIMPANAN) — biasanya skip-able sebagai non-pengeluaran
BRI (BRImo)
- Format mutasi: PDF cetak rapi, password = NIK (16 digit) atau tanggal lahir
- Akurasi AI: ~93%
- Catatan: BRImo screenshot mutasi sering lebih lengkap dari PDF email — ada timestamp jam yang berguna
Jenius (BTPN)
- Format mutasi: PDF Statement bulan, no password by default
- Akurasi AI: ~96% (format Jenius paling clean)
- Catatan: kalau punya $aldo (USD) di Jenius, transaksi USD muncul di statement. Pakai per-row currency picker untuk separate IDR vs USD
Permata, BSI, CIMB Niaga, Danamon
- Format: PDF email statement, password biasanya tanggal lahir atau kombinasi NIK
- Akurasi AI: 90-94% tergantung kompleksitas tabel
- Tips: bank yang lebih kecil kadang format PDF-nya inconsistent antar bulan. Kalau gagal, coba upload screenshot dari mobile banking aja — lebih reliable
E-wallet: DANA, OVO, GoPay, ShopeePay
- Format: biasanya CSV/Excel via export feature, atau screenshot history transaksi
- Akurasi AI: 88-92% — e-wallet pakai narrative description ("Bayar di Warkop Pak Slamet, Bandung") yang lebih ambigu kategorisasinya
- Tips: GoPay export Excel paling clean (header standar), DANA biasanya screenshot, OVO export PDF history
Privasi & keamanan: aman gak upload PDF rekening?
Pertanyaan yang sah dan harus dijawab transparent. Bank statement adalah salah satu data paling sensitive seseorang — UU PDP §17 menetapkan kerahasiaan bank sebagai "data spesifik" yang punya proteksi ekstra.
Catatu pakai 3 lapis proteksi:
Lapisan 1: Password PDF di-decrypt di browser
Kalau PDF kamu password-protected, password yang kamu input tidak pernah sampai ke server Catatu. Library pdfjs-dist dari Mozilla decrypt PDF langsung di JavaScript browser. Setelah ter-decrypt, halaman PDF di-render ke JPEG canvas, baru JPEG itu yang dikirim ke AI. Server cuma dapet JPEG decrypted, gak pernah liat password atau PDF asli.
Lapisan 2: Transit encryption + no permanent storage di server Catatu
JPEG dikirim ke Gemini API Google via HTTPS (TLS 1.3). Catatu's edge function scan-bank-statement cuma proxy — terima request, forward ke Gemini, terima response, return ke kamu. File JPEG asli tidak disimpan permanen di Supabase storage atau database Catatu — hanya hasil ekstraksi (tanggal, nominal, deskripsi yang udah dinormalisasi) yang masuk ke tabel transactions. Raw image di-discard di edge fn setelah AI selesai parsing. Hasil ekstraksi bisa kamu hapus kapan saja via menu Catatan.
Lapisan 3: Per-provider consent + RLS database
Sebelum kamu upload pertama kali, modal consent disclosure muncul (UU PDP §56 — informed consent harus spesifik). Disebutin: provider AI = Gemini Google (server US), data yang dikirim = gambar tabel transaksi, retention = tidak disimpan permanen, opt-out = bisa hapus akun kapan aja. Consent disimpan per-provider di localStorage.
Hasil parsing AI disimpan di tabel transactions dengan Row-Level Security: hanya kamu (lewat auth.uid match) yang bisa SELECT/UPDATE/DELETE row kamu. Admin Catatu (Ariq) gak punya read access ke transaksi user — kecuali kamu opt-in untuk debugging via support ticket.
Selengkapnya di Privacy Policy Catatu.
Common errors & solusinya
"AI tidak bisa membaca file ini"
Penyebab umum: PDF yang di-scan dari kertas (bukan generated digital), resolusi screenshot terlalu rendah, atau format tabel yang tidak biasa.
Solusi: (1) request ulang e-statement digital dari bank (bukan scan kertas); (2) screenshot mobile banking dengan zoom maksimal; (3) coba split PDF jadi per-page dan upload satu-satu.
"Password salah" terus padahal yakin benar
Penyebab: BCA dan Mandiri kadang pakai variasi password yang tidak obvious. Coba:
- Tanggal lahir: DDMMYYYY (01011990) atau YYYYMMDD (19900101) atau DDMMYY (010190)
- 6 digit terakhir nomor KTP
- Kombinasi: 4 digit awal nama + 4 digit tanggal lahir
- Cek email konfirmasi e-statement — petunjuk password biasanya disebutin di body email
Beberapa transaksi hilang dari preview
Penyebab: AI miss-row pas tabel terlalu padat (lebih dari 50 baris/halaman). Atau toggle "Skip Credit" ON, jadi income gak masuk preview.
Solusi: (1) split file jadi 2-3 page chunks dan upload satu-satu; (2) toggle Skip Credit OFF kalau memang mau import income; (3) compare manually dengan sumber asli, tambah baris yang hilang via tab Catatan.
Kategori salah-tebak semua
Penyebab: deskripsi merchant ambigu (misalnya semua transaksi tertera sebagai "TRANSFER ATAS NAMA: AHMAD"). AI gak bisa nebak kategori dari nama orang.
Solusi: edit kategori manual di preview tahap. Kalau pattern-nya konsisten (misalnya gaji bulanan dari "PT. ABC" selalu masuk Income), nanti bisa di-mapping ke kategori spesifik via fitur Auto-Mapping di Pengaturan.
Multi-currency tercampur, semua di-konvert ke IDR
Penyebab: AI default semua nominal ke IDR kalau tidak ada explicit currency code di file.
Solusi: di preview tahap, gunakan picker currency per-row untuk transaksi USD/SGD/dll. Atau bulk apply currency ke semua row sekaligus. FX rate di-fetch realtime, transaksi disimpan di currency aslinya plus IDR equivalent.
FAQ — pertanyaan yang sering muncul
Apa beda Scan E-Statement vs Smart Import?
Scan E-Statement untuk file gambar — PDF, screenshot, foto. Pakai Gemini Vision (AI baca pixel). Smart Import untuk file text — CSV, Excel. Pakai DeepSeek (AI baca text). Kalau bingung, mulai dari Scan E-Statement — Gemini lebih flexible untuk file aneh.
Berapa transaksi maksimal per upload?
Per-page PDF tidak ada limit, tapi quota harian bergantung tier akun: Free = 3 scan per bulan (~150 transaksi), Pro = unlimited (fair-use 1000 scan/bulan). 1 scan = 1 file upload, jadi 1 PDF 5-halaman = 1 scan saja.
Bisa schedule auto-import setiap awal bulan?
Belum (per Mei 2026). Auto-import butuh integrasi langsung ke API bank, yang di Indonesia masih terbatas (Open Banking belum mature). Sementara: tetep manual upload tiap bulan. Lihat roadmap Catatu untuk update.
Kalau bank saya tidak ada di list, masih bisa di-scan?
Bisa! AI Gemini agnostic terhadap bank — dia baca format tabel apa aja yang ada kolom tanggal + deskripsi + nominal. List bank di artikel ini cuma "tested with high accuracy". Bank lain (Mega, Sinarmas, Bukopin, dll) tetap bisa di-import, akurasi mungkin sedikit lebih rendah.
Bisa import statement kartu kredit?
Bisa. PDF e-statement kartu kredit (BCA, Mandiri, BNI, dll) format-nya sama dengan rekening biasa — tanggal, merchant, nominal. AI baca tanpa masalah. Bedanya: di kartu kredit, semua transaksi adalah debit (pengeluaran), jadi toggle "Skip Credit" bisa di-OFF tanpa worry tentang gaji masuk.
Hasil scan akan menggandakan transaksi yang sudah saya catat manual?
Mungkin, kalau timestamp transaksi sama persis. Catatu deteksi duplicate berdasarkan kombinasi (tanggal + nominal + deskripsi) — kalau ada match dengan transaksi existing, akan flag "Duplicate?" di preview. Kamu bisa skip atau merge. Best practice: import e-statement bulan-bulan yang belum kamu catat manual sama sekali.
Bisa export balik data Catatu ke Excel atau bank format?
Bisa. Pengaturan → Data → Ekspor CSV (gratis untuk semua user). File .csv kompatibel dengan Excel, Numbers, Google Sheets. Format CSV: tanggal, kategori, jumlah, catatan. Untuk export ke format bank (PDF mutasi style), belum ada — tapi bisa request via halo@catatu.app kalau prioritas.
Mau langsung coba?
Buka catatu.app, login Google, masuk Pengaturan → Data → Scan E-Statement Bank. Upload PDF mutasi bulan kemarin. 30 detik kemudian semua udah ke-catat di Catatu.
Kalau stuck atau ada feedback, email halo@catatu.app — saya yang bikin Catatu, saya yang baca. Mau ada feature request? Kasih tau, langsung masuk ke roadmap publik.