Billing Dashboard Insight
Halaman utama Billing Backoffice bertugas menyajikan ringkasan kesehatan finansial perusahaan kepada para eksekutif dan Admin Finance.
1. Ringkasan Pendapatan & Deposit
Untuk merender kartu metrik (Metric Cards) di bagian atas Dashboard, Frontend dapat memanggil endpoint agregasi ini.
A. Metrik Deposit Bulanan (Prepaid)
Menghitung total nominal uang Topup yang sukses disetorkan pelanggan bulan ini dibandingkan bulan lalu.
GET /api/backoffice/dashboard/customer/deposit
B. Metrik Pendapatan (Postpaid)
Menghitung total uang dari tagihan pascabayar yang sudah terverifikasi lunas.
GET /api/backoffice/dashboard/customer/revenue
Format Respons (Keduanya 200 OK):
{
"data": {
"current_month_total": 50000000.00,
"last_month_total": 45000000.00,
"growth_percentage": 11.11
}
}
Tip Frontend: Gunakan atribut growth_percentage untuk menampilkan ikon panah hijau (naik) atau merah (turun).
2. Kesehatan Penagihan (Billing Health)
Sebagai penyedia layanan Cloud Prepaid, mimpi buruk terbesar adalah ketika pelanggan kehabisan saldo namun VM mereka terus menyala (menjadi minus). Daftar pelanggan yang memiliki saldo negatif harus disorot di Dashboard.
GET /api/backoffice/dashboard/billing/health?page=1&limit=5
Respons (200 OK):
Mereturn daftar nama pengguna yang atribut actual_balance-nya di bawah nol, beserta tanda apakah akun mereka sudah di-suspend atau belum.
3. Pemakaian Aktif Tertinggi (Top Spenders)
Admin juga dapat memantau resource apa yang sedang menghabiskan biaya paling besar saat ini. Ini membantu divisi Sales untuk melakukan Up-selling.
GET /api/backoffice/dashboard/billing/active?page=1&limit=5
Respons (200 OK): Mereturn daftar ID penagihan berjalan yang sedang menyedot biaya tagihan paling tinggi (contoh: Bare Metal Server dengan Current Cost paling besar).
4. Requeue Penagihan Aktif (Requeue Billing)
Dalam kondisi tertentu (misalnya kegagalan Cronjob atau database deadlock), sebuah sesi penagihan (active billing) mungkin gagal diproses atau terhenti statis. Admin dapat melakukan penyelesaian paksa (force settle) atau antre ulang terhadap sesi tersebut.
PATCH /api/backoffice/dashboard/billing/requeue?billing_id=12345
Respons (200 OK): Sistem akan memasukkan kembali billing tersebut ke dalam antrean RabbitMQ atau Cronjob agar segera diproses ulang (dipotong saldonya).