- 01Awalnya Karena “Menumpuk Tanpa Diklasifikasikan”
- 02Alur Sistemnya
- 03Mengambil Data Transaksi yang Belum Diproses
- 04Trik Pencarian Email
- 05Aturan Klasifikasi
- 06Mendaftarkan sebagai Biaya
- 07Secara Berkala Juga Menyisir “Biaya yang Salah Masuk Kategori Lain”
- 08Keputusan Akhir Diserahkan ke Ahlinya
- 09Yang Saya Rasakan Setelah Mencoba
- 10Cocok untuk Orang Seperti Apa
- 11Rangkuman
Selamat pagi, saya Masakin.
Saya menjalankan usaha sampingan kecil secara pribadi. Pencatatan biayanya sendiri bisa dilakukan lewat SaaS akuntansi, tapi mengingat “penggunaan kartu ini untuk biaya apa” diam-diam cukup merepotkan.
Karena itu, saya membuat sistem yang meminta AI mencocokkan data kartu dengan email struk, sampai mengotomatisasi klasifikasi biayanya. Kali ini saya akan memperkenalkan sampai cara memanggil API dan jebakan yang benar-benar saya alami.
Awalnya Karena “Menumpuk Tanpa Diklasifikasikan”
Kalau kartu sudah diintegrasikan ke SaaS akuntansi, data transaksinya otomatis masuk. Tapi, itu tidak memberi tahu “ini pembayaran untuk apa”. Akhirnya, harus mengklasifikasikan belakangan dengan mengandalkan memori.
Memori lama-lama semakin kabur. Karena itu, saya memutuskan menyerahkan proses mengingat itu sendiri ke AI.
Alur Sistemnya
Yang saya lakukan ada 4 tahap berikut.
- Ambil data transaksi kartu yang belum diklasifikasikan, lewat API SaaS akuntansi
- Cari email konfirmasi pesanan atau email struk dengan jumlah sama dan tanggal berdekatan
- Cocokkan keduanya untuk mengidentifikasi isinya
- Berdasarkan isi yang teridentifikasi, klasifikasikan jenis biayanya, dan daftarkan sebagai transaksi di SaaS akuntansi
Poinnya, baik “hanya data transaksi” maupun “hanya email” saja tidak cukup. Isinya baru bisa teridentifikasi setelah keduanya dicocokkan.
Mengambil Data Transaksi yang Belum Diproses
Saat mengambil data transaksi lewat API SaaS akuntansi, setiap transaksi punya flag yang menunjukkan status prosesnya. Untuk menyaring hanya transaksi yang belum didaftarkan, saya gunakan flag ini.
GET /api/1/wallet_txns
query: { company_id, start_date, end_date, limit: 100 }
Dari data yang dikembalikan, hanya yang berstatus “belum didaftarkan” dan jumlah yang belum dicocokkan lebih besar dari 0, yang jadi target proses. Data yang sudah terdaftar atau di-set sebagai diabaikan, dikeluarkan dari target. Karena periode sering dipecah lewat paging, saya memeriksa dengan membagi ke beberapa periode agar tidak ada yang terlewat saat melintasi bulan.
Trik Pencarian Email
Kalau isi email langsung dimasukkan seluruhnya ke AI, informasinya terlalu banyak dan bisa mencapai batas token. Karena itu, saya menyaring kondisinya dulu sebelum memberikan isinya.
Pertama, saya cari email konfirmasi pesanan atau struk berdasarkan alamat pengirim dalam periode tertentu.
search_threads query: "from:[email protected] after:2026/09/01 before:2026/09/30"
Meski email yang sesuai ditemukan, kalau seluruh isinya langsung diberikan ke AI, kadang menabrak batas token. Dalam kasus itu, saya melakukan pencarian kata kunci pada file tempat isi email disimpan, dan hanya mengambil baris yang menuliskan jumlah atau nama produk.
# contoh menyaring dari file email yang tersimpan, hanya yang jumlah dan tanggalnya berdekatan
grep -l "3,980円" ./mail_archive/*.eml | xargs grep -l "2026-09"
Dengan menyaring berdasarkan 2 petunjuk, jumlah dan tanggal, kandidatnya berkurang jadi hanya beberapa. Setelah dipersempit sejauh itu, baru bagian yang relevan saja diberikan ke AI untuk dicocokkan. Banyak email yang cukup dilihat dari subjek atau potongan awalnya saja, jadi kuncinya adalah hanya mengambil bagian yang benar-benar diperlukan.
Di antara pengeluaran yang diklasifikasikan sebagai biaya, ada juga biaya tetap seperti biaya komunikasi yang tercampur. Biaya smartphone yang juga dipakai untuk kerja, adalah salah satu contoh khas yang sering bikin bingung soal pembagian porsinya. Kalau dipikir begitu, meninjau ulang paketnya sendiri mungkin salah satu solusinya.
Setelah diklik, halaman login Rakuten akan terbuka. Setelah login, detail kampanye akan muncul.
Aturan Klasifikasi
Setelah isinya teridentifikasi, saya klasifikasikan ke dalam 3 jenis berikut.
| Klasifikasi | Isi | Perlakuan |
|---|---|---|
| Biaya langsung usaha sampingan | Barang habis pakai/layanan yang langsung berkaitan dengan usaha sampingan | Dicatat sebagai biaya dengan catatan pembagian porsi usaha |
| Buku referensi/biaya materi | Buku dan sejenisnya untuk memahami pekerjaan | Dicatat sebagai biaya materi umum |
| Pengeluaran pribadi | Pembelian pribadi yang tidak berkaitan dengan usaha sampingan | Dikeluarkan dari biaya, diproses sebagai penarikan pribadi |
Untuk yang sulit diklasifikasikan, saya tidak memaksa mengarahkannya ke sisi biaya. Pengeluaran yang tidak yakin penentuannya, sementara diperlakukan sebagai pengeluaran pribadi, dan diberi flag sebagai target ditinjau ulang nanti.
Mendaftarkan sebagai Biaya
Setelah klasifikasi ditentukan, saya daftarkan sebagai transaksi lewat API SaaS akuntansi.
POST /api/1/deals
body: {
company_id,
issue_date: "2026-09-15",
type: "expense",
details: [{
account_item_id: <ID kategori biaya>,
amount: <jumlah>,
description: "◯◯ Barang habis pakai (catatan pembagian porsi usaha)"
}],
payments: [{
amount: <jumlah>, date: "2026-09-15",
from_walletable_type: "credit_card", from_walletable_id: <ID kartu>
}]
}
Ada satu hal yang perlu diperhatikan di sini. Proses pendaftaran ini adalah operasi “membuat transaksi baru” di internal SaaS akuntansi, dan tidak otomatis terhubung, yaitu tercocokkan, dengan data transaksi yang belum diproses sebelumnya. Hanya dengan mendaftarkan transaksi, status data transaksinya tetap belum diproses.
Karena itu, setelah pendaftaran selesai, saya selalu melakukan operasi manual di layar SaaS akuntansi untuk menghubungkan data transaksi dengan transaksi yang baru dibuat itu. Kalau bagian ini dilewati, pengeluaran yang sama bisa tercatat dobel, jadi saya selalu memperhatikan ini.
Secara Berkala Juga Menyisir “Biaya yang Salah Masuk Kategori Lain”
Meski sudah diotomatisasi, kesalahan klasifikasi tidak akan menjadi nol. Karena itu, sebulan sekali, saya minta AI menyisir apakah ada catatan yang sepertinya berkaitan dengan usaha sampingan, tapi masih dibiarkan di kategori umum.
Secara konkret, saya mengambil laporan laba rugi lewat API, lalu mengidentifikasi biaya yang tercatat di kategori umum, bukan kategori khusus usaha sampingan. Setelah itu, saya ambil rincian setiap kategori lewat API daftar transaksi, dan minta AI mengekstrak serta membuat daftar catatan yang “sepertinya seharusnya dipindahkan ke kategori usaha sampingan” berdasarkan kata kunci di kolom keterangan dan tren jumlahnya.
Kalau ditemukan transaksi yang sesuai, saya ganti kategorinya dengan PUT.
PUT /api/1/deals/{ID transaksi}
body: { company_id, issue_date, type: "expense",
details: [{ id: <ID detail yang sudah ada>, account_item_id: <ID kategori yang benar>, amount, description }] }
Ada hal yang perlu diperhatikan di sini juga. Kalau ID detail yang sudah ada tidak disertakan di dalam details, ini akan diperlakukan sebagai penambahan baru, bukan update. Menyertakan ID yang sudah ada adalah syarat mutlak agar bisa berpindah kategori dengan benar.
Hasil yang diekstrak, saya periksa sendiri isinya, dan hanya yang memang perlu yang saya ubah kategorinya.
Keputusan Akhir Diserahkan ke Ahlinya
Ini poin yang ingin saya tekankan berulang kali. Sistem ini hanya untuk mengefisienkan “persiapan awal klasifikasi”. Keputusan akhir soal kategori biaya, dan kewajaran pembagian porsi usaha, saya ikuti sesuai penilaian ahli seperti akuntan pajak.
Klasifikasi oleh AI hanyalah usulan awal. Terutama bagian yang berkaitan dengan pembagian porsi usaha, saya tidak memutuskan sendiri, tapi selalu dijalankan dengan prasyarat dikonfirmasi ke ahlinya.
Yang Saya Rasakan Setelah Mencoba
Yang paling membantu adalah hilangnya pekerjaan mengingat “ini pembayaran untuk apa”. Selama catatan berupa email masih ada, identifikasi isinya bisa diserahkan ke AI.
Di sisi lain, konfirmasi akhir klasifikasi selalu saya lakukan dengan mata saya sendiri. Terutama batas antara pengeluaran pribadi dan biaya usaha, menurut saya bagian yang berisiko kalau hanya diserahkan pada penilaian mekanis saja.
Cocok untuk Orang Seperti Apa
- Orang yang biaya usaha sampingan atau usaha pribadinya banyak dibayar lewat kartu, dan klasifikasinya sering ditunda
- Orang yang banyak pembelian dengan email konfirmasi pesanan atau struk
- Orang yang sudah cukup terbiasa dengan integrasi API SaaS akuntansi atau pemanfaatan AI
Rangkuman
Ide mencocokkan data transaksi kartu dengan email, bukanlah sesuatu yang istimewa. Tapi, apakah dilakukan sendiri setiap kali atau diserahkan ke sistem, bebannya sangat berbeda.
Fakta bahwa hanya mendaftarkan lewat API belum berarti tercocokkan dengan data transaksi, adalah jebakan yang penting dipahami sebelum benar-benar dipraktikkan. Dengan tetap menjaga prinsip keputusan akhir diserahkan ke ahli, saya merasa bisa mengotomatisasi bagian persiapan awalnya dengan baik.
Sambil merapikan ini, biaya komunikasi juga jadi objek yang perlu ditinjau ulang. Biaya smartphone yang juga dipakai untuk kerja, adalah pengeluaran yang paling membingungkan soal pembagian porsinya. Kalau begitu, mungkin lebih baik merapikan dulu paketnya sendiri.
Setelah diklik, halaman login Rakuten akan terbuka. Setelah login, detail kampanye akan muncul.
Artikel ini mengandung iklan afiliasi. Jika Anda mendaftar produk atau layanan melalui tautan di situs ini, kami mungkin menerima komisi dari perusahaan mitra. Selain itu, pengelola adalah karyawan Rakuten Group dan mungkin menerima imbalan melalui program referral karyawan. Konten dan penilaian artikel dibuat berdasarkan pengalaman nyata dan riset pengelola, terlepas dari ada atau tidaknya iklan, namun kami harap Anda membaca dengan memahami hubungan di atas. Untuk detailnya, silakan lihat Sangkalan & Info Afiliasi. Sangkalan & Info Afiliasi
Artikel ini menggunakan terjemahan mesin. Untuk syarat resmi, silakan cek halaman multibahasa di situs resmi Rakuten Mobile.
Jika Anda memiliki kekhawatiran tentang area jangkauan atau kondisi sinyal Rakuten Mobile, Anda dapat berkonsultasi melalui formulir permintaan perbaikan sinyal resmi.