Dokumentasi VPMS
Panduan lengkap VPMS — dari setup awal (cabang, router, profile), sistem agen bertingkat A/B/C, mesin komisi (final & on-top), keuangan agen (saldo, top up, utang, withdraw), sampai PPPoE dan keamanan sesi. Gunakan pencarian di kiri atas untuk langsung menuju fitur yang dicari.
BAGIAN 1 Login & Sesi
Semua pengguna (admin, agen, pelanggan portal) masuk lewat halaman login yang sama.
- Buka alamat panel:
memuat…. - Isi Username dan Password, klik Masuk.
- Anda diarahkan ke Dashboard sesuai role akun Anda.
Aturan sesi (penting)
- Satu akun = satu sesi aktif. Jika login lagi di perangkat/browser lain, sesi yang lama otomatis ditendang (harus login ulang).
- Idle timeout 30 menit. Tidak ada aktivitas selama 30 menit → sesi berakhir otomatis. Setiap aktivitas (klik/buka halaman) memperpanjang batas waktu.
- Akun yang di-disable (atau upline-nya di-disable) langsung tidak bisa login, termasuk sesi yang sedang berjalan.
BAGIAN 2 Role & Hak Akses
VPMS punya 4 role utama di panel: Admin dan tiga tingkat agen: A, B, C. Menu dan tombol yang tampil otomatis mengikuti role — dan backend tetap memvalidasi setiap aksi (tidak bisa ditembus lewat API).
| Fitur | Admin | Agen A | Agen B | Agen C |
|---|---|---|---|---|
| Master data (router, cabang, profile, user) | ✓ | ✗ | ✗ | ✗ |
| Daftarkan downline | ✓ (A) | ✓ (B/C) | ✓ (C) | ✗ |
| Generate voucher (saldo sendiri) | ✓ | ✓ | ✓ | ✓ |
| Generate pakai saldo downline | ✓ semua | ✓ B/C | ✗ | ✗ |
| Top Up saldo | — | ✗ | ✓ | ✓ |
| Input utang | ✓ | ✗ | ✗ | ✗ |
| Disable / enable akun | ✓ semua | ✓ B/C | ✗ | ✗ |
| Transfer saldo ke bawah | ✓ semua | ✓ B/C | ✗ | ✗ |
| Withdraw komisi | — | ✓ | ✗ | ✗ |
| Approve claim voucher | ✓ | ✓ downline | ✗ | ✗ |
| Set komisi profile | ✓ A/B/C | ✓ bagian B/C | ✗ | ✗ |
| PPPoE (paket, pelanggan, invoice) | ✓ | △ lihat subtree | ✓ miliknya | ✗ |
| Monitor top up | ✓ semua | △ dirinya+B/C | △ dirinya+C | △ sendiri |
BAGIAN 3 Cabang / POP ADMIN
Cabang (POP) adalah lokasi fisik layanan. Satu cabang terikat ke satu router, dan menjadi unit terkecil untuk pembatasan akses agen.
- Buka menu Master Data → Cabang → klik Tambah Cabang.
- Isi nama cabang (mis.
POP-Jakarta-01) lalu simpan. - Cabang nanti dipilih saat membuat router, profile, dan saat mendaftarkan agen.
BAGIAN 4 Router MikroTik ADMIN
Buka Master Data → Router → Tambah Router. Isi data koneksi router MikroTik Anda:
Penjelasan isian form
| IP / Host | Alamat IP atau domain router (IP publik / DDNS). |
|---|---|
| API Port / SSH Port | Port API RouterOS default 8728, SSH default 22. |
| Username / Password Router | Akun RouterOS dengan hak baca/tulis (untuk deploy script). |
| Hotspot Name / DNS | Nama hotspot & alamat login untuk cetakan voucher. |
| Tipe | Production atau Dev. |
| Mode Laporan Penjualan | App (script VPMS) · Mikhmon · Combine — sumber data laporan penjualan. |
| Interval Sync Penjualan | 30 menit / 1 jam / 12 jam. |
Test, Scripts & Sync
- Test — cek koneksi. Berhasil jika identitas router muncul.
- Scripts — deploy script on-login/cleanup/remove-record ke router. Wajib agar penjualan tercatat otomatis.
- Sync Penjualan — tarik data penjualan ke database VPMS.
BAGIAN 5 Profile Voucher & Setting Komisi ADMIN AGEN A
Profile voucher menentukan harga dasar dan aturan komisi berjenjang yang dipakai seluruh rantai agen.
- Menu Hotspot → Profile Voucher → Tambah Profile.
- Isi nama, harga jual (
default_price), validitas, limit uptime, kecepatan, shared users. - Tentukan mode komisi:
finalatauontop(penjelasan di Bagian 12). - Tentukan persentase berjenjang (lihat tabel di bawah).
Field komisi berjenjang pada profile
| Komisi A (%) | Persen komisi level A dari harga dasar. Contoh 25 → 25.000 dari harga 100.000. Hanya admin yang bisa mengubah. |
|---|---|
| Komisi B (%) | Persen bagian B dari komisi A. Contoh 50 → 12.500. Bisa diubah agen A. |
| Komisi C (%) | Persen bagian C dari komisi B. Contoh 50 → 6.250. Isi 0 jika profile ini tidak dipakai level C. |
| Mode | final = harga jual mati (tidak boleh markup) · ontop = agen boleh menjual lebih mahal (markup). |
BAGIAN 5b Payment Gateway (Midtrans) ADMIN
Menu Master Data → Payment Gateway — tempat mengelola kredensial pembayaran Midtrans. Sebelumnya hanya bisa lewat file .env di server, sekarang bisa diatur dari panel.
Apa saja yang diatur
| Production | Server key, client key, dan merchant ID akun Midtrans production (pembayaran sungguhan). |
|---|---|
| Sandbox | Tiga kredensial yang sama untuk akun sandbox (testing). |
| Mode Production | Aktif = memakai kredensial production · nonaktif = memakai sandbox. |
| Mode MOCK | Aktif = pembayaran disimulasikan tanpa menyentuh Midtrans (untuk dev/testing). Matikan setelah kredensial asli diisi. |
- Nilai yang diisi di panel mengesampingkan
.env; field yang dikosongkan tidak diubah (key lama tetap tersimpan aman, ditampilkan tersamar). - Setting ini dipakai otomatis oleh semua pembayaran: top up saldo, bayar invoice utang, dan bayar invoice PPPoE.
BAGIAN 6 Generate Voucher HOTSPOT
Menu Hotspot → Generate Voucher. Pilih cabang → router (otomatis) → profile → server hotspot → atur jumlah & format kode.
- Markup (harga jual) — muncul hanya saat profile bermode on-top. Isi harga jual Anda ke pelanggan; komisi tetap dihitung dari harga resmi profile.
- Bayar pakai saldo downline — tampil untuk admin & agen A. Generate voucher dengan saldo agen di bawah Anda, dihitung dengan harga level agen tersebut, dan transaksi tercatat atas nama agen itu (komisi rantai tetap berjalan).
- Setelah generate: hasil bisa Copy All, export CSV, cetak A4 / Thermal.
BAGIAN 7 Biaya & Komisi Saat Generate
Setiap generate memotong saldo biasa penjual. Besar potongan tergantung level penjual dan mode komisi profile. Sebelum memotong, sistem menampilkan rincian biaya & komisi.
| Penjual | Mode final | Mode on-top | Rincian komisi yang ditahan |
|---|---|---|---|
| Agen B | 87.500 | 112.500 | 12.500 → komisi A (pending) |
| Agen C | 93.750 | 118.750 | 12.500 → A + 6.250 → B (pending) |
Mode final: bagian pemilik = harga − komisi A penuh (100.000 − 25.000 = 75.000), lalu komisi berjenjang ditambahkan. Mode on-top: pemilik menerima harga dasar penuh (100.000), komisi berjenjang ditambahkan di atasnya.
BAGIAN 8 User Hotspot & Penjualan HOTSPOT
Menu Hotspot → User Hotspot: daftar user voucher di router — status terpakai/belum, uptime, profile. Penjualan bisa dipantau di Laporan → Hotspot (export CSV/PDF).
BAGIAN 9 Konsep Level Agen A/B/C AGEN
Sistem reseller bertingkat dengan maksimal 3 level di bawah admin. Hubungan atasan-bawahan global per akun (satu upline), bukan per router.
🏢 Level A (Kepala Teknisi)
Terdaftar oleh admin. Umumnya tidak menjual langsung — penghasilan dari komisi downline. Bisa withdraw, transfer saldo ke bawah, disable B/C, dan generate pakai saldo B/C.
🛒 Level B (Penjual Utama)
Terdaftar oleh A. Yang berjualan & top up saldo. Mendapat bagian dari komisi A. Untuk PPPoE: mendaftarkan pelanggan & membayar invoice.
📱 Level C (Sub-penjual)
Terdaftar oleh B. Hanya untuk hotspot (PPPoE maksimal 2 level). Berjualan & top up; mendapat bagian dari komisi B.
🔗 Rantai komisi
Setiap penjualan, komisi mengalir ke semua upline sesuai persentase profile. Contoh penjual C: A dapat 12.500, B dapat 6.250, C margin 6.250.
BAGIAN 10 Pendaftaran Agen
Akun agen hanya bisa didaftarkan oleh upline-nya: A oleh admin, B oleh A, C oleh B. Tidak ada pendaftaran mandiri.
- Admin buka Agen A/B/C → Daftarkan Agen Level A: isi username/nama/password → Agen A lahir (level 0).
- Agen A login → buka Agen A/B/C → Daftarkan Agen B → Agen B lahir (level 1), otomatis di bawah A.
- Agen B login → daftarkan Agen C (level 2) dengan cara yang sama. Agen C tidak bisa mendaftarkan siapa pun.
Akses cabang agen baru otomatis diwarisi dari upline-nya — admin/A tetap bisa mengubahnya lewat edit agen.
BAGIAN 11 Disable / Enable Agen (Cascade) ADMIN AGEN A
Tombol Disable/Enable di pohon agen menonaktifkan/mengaktifkan akun beserta seluruh asetnya:
- Semua profile hotspot milik cabang agen + user voucher di profile itu → disabled di MikroTik.
- Semua pelanggan PPPoE milik agen → di-isolir.
- Seluruh downline ikut nonaktif efektif (tidak bisa login) sampai upline diaktifkan kembali.
- Sesi login yang sedang berjalan langsung diputus.
Enable mengembalikan semuanya: profile & user diaktifkan lagi, pelanggan PPPoE dipulihkan, downline bisa login lagi. Saldo & komisi tidak hangus.
BAGIAN 12 Cara Kerja Mesin Komisi
Komisi diatur per profile. Dengan harga dasar P dan persentase A/B/C, sistem menghitung tiga lapis bagian penuh:
Formula (contoh P = 100.000, A 25%, B 50%, C 50%)
| S1 — bagian penuh A | P × A% = 25.000 |
|---|---|
| S2 — bagian penuh B | S1 × B% = 12.500 |
| S3 — bagian penuh C | S2 × C% = 6.250 |
| Komisi neto upline | A menerima S1 − S2 = 12.500 · B menerima S2 − S3 = 6.250 |
| Margin penjual | Penjual level L mendapat S(L+1): B → 12.500, C → 6.250 |
Mode FINAL vs ON-TOP
| Mode Final | Mode On-Top | |
|---|---|---|
| Harga jual ke pelanggan | Mati = harga profile (100.000) | Bebas ≥ harga + komisi (markup) |
| Biaya generate B | 75.000 (owner) + 12.500 (komisi A) = 87.500 | 100.000 (owner) + 12.500 = 112.500 |
| Kapan komisi cair | Saat voucher terjual (lihat Bagian 13) | |
BAGIAN 13 Siklus Komisi: pending → terjual → konversi
Komisi upline tidak langsung jadi uang — ia melewati 3 tahap. Ini jantung sistem keuangan agen:
- Generate: saldo biasa B dipotong 87.500 (75.000 ke pemilik + 12.500 masuk saldo komisi A — status PENDING).
- Terjual: voucher login di router → komisi A berubah pending → TERJUAL di saldo komisi A. Saldo biasa A belum berubah.
- Konversi: A membuka Portal Saldo Komisi → klik Konversi Semua (atau nominal) → komisi terjual pindah ke saldo biasa A, siap dipakai/withdraw.
Momen "terjual": hotspot = terdeteksi login voucher; PPPoE = B membayar invoice & pelanggan aktif.
Status komisi
| pending | Voucher belum terjual — komisi masih "menggantung" di saldo komisi upline. |
|---|---|
| terjual (sold) | Voucher laku — komisi siap dikonversi ke saldo biasa. |
| converted | Sudah dipindah ke saldo biasa via portal konversi. |
| refunded_back | Voucher tak laku di-refund — komisi dikembalikan ke penjual. |
| cancelled | Voucher di-claim — komisi dibatalkan (nominal claim sudah mencakupnya). |
BAGIAN 14 Skenario Angka Lengkap
Semua contoh memakai profile harga 100.000, komisi A 25% · B 50% · C 50%.
| Momen | Saldo biasa B | Saldo komisi A | Pemilik |
|---|---|---|---|
| Generate | −87.500 | +12.500 pending | +75.000 |
| Voucher terjual | — | 12.500 → terjual | — |
| A konversi + B jual 100.000 ke pelanggan | margin B = 12.500 | saldo biasa A +12.500 | — |
| Momen | Saldo biasa B | Saldo komisi A | Pemilik |
|---|---|---|---|
| Generate | −112.500 | +12.500 pending | +100.000 |
| Voucher terjual | — | 12.500 → terjual | — |
| B jual 115.000 ke pelanggan | margin B = 2.500 | — | — |
| Momen | Saldo biasa C | Komisi A | Komisi B | Pemilik |
|---|---|---|---|---|
| Generate | −93.750 | +12.500 pending | +6.250 pending | +75.000 |
| Terjual | — | → terjual | → terjual | — |
| C jual 100.000 | margin C = 6.250 | +12.500 | +6.250 | — |
Mode on-top C: biaya generate = 118.750 (100.000 + 12.500 + 6.250).
Agen A generate voucher untuk B memakai saldo B: saldo B terpotong harga level B (87.500), transaksi tercatat atas nama B, dan komisi 12.500 tetap pending ke A. Berguna saat B tidak sempat mengakses panel. B tidak bisa memakai saldo C — hanya A (dan admin) yang boleh.
BAGIAN 15 Dua Saldo: Biasa & Komisi
Setiap akun agen punya dua saldo yang terpisah fungsinya:
💳 Saldo Biasa
Dompet utama. Isi: top up, konversi komisi, refund, transfer masuk. Dipakai untuk: generate voucher, bayar invoice PPPoE, withdraw, transfer ke downline.
📊 Saldo Komisi
Penampungan komisi upline. Isi: komisi dari penjualan downline (pending/terjual). Wajib dikonversi ke saldo biasa dulu sebelum dipakai apa pun. Hanya pemiliknya yang bisa melihat.
Portal Saldo Komisi
Menu Agen & Keuangan → Saldo Komisi. Menampilkan tiga angka: total, terjual (bisa dikonversi), pending. Tombol Konversi Semua atau input nominal (maks = total terjual) memindahkan ke saldo biasa.
BAGIAN 16 Top Up Saldo B · C
Menu Agen & Keuangan → Top Up Saldo. Yang wajib top up: B dan C. Agen A tidak punya tombol top up (saldo dari komisi/transfer/refund).
Cara 1 — Midtrans (otomatis)
- Isi nominal → klik Bayar via Midtrans.
- Diarahkan ke halaman pembayaran Midtrans (VA/QRIS/e-wallet) — atau mode simulasi di lingkungan dev.
- Pembayaran sukses → saldo bertambah otomatis tanpa approval admin.
Cara 2 — Request Manual
- Klik Request Manual → admin menyetujui di menu Keuangan (admin).
BAGIAN 17 Utang Agen ADMIN
Utang adalah kewajiban ber-invoice yang hanya admin bisa input. Saat punya utang, agen tetap bisa generate (selama saldo cukup) — yang diblokir hanya top up sampai utang lunas.
- Admin buka Invoice Utang → pilih agen → input nominal + catatan → invoice terbentuk (nomor
UTG-YYYYMM-XXXX). - Agen B melihat invoice di menu Invoice Utang — bisa bayar langsung (Midtrans) atau lewat top up.
- Saat B top up, sistem memunculkan info utang dan pembayaran otomatis memotong utang dulu (lihat Bagian 16).
BAGIAN 18 Withdraw Komisi AGEN A
Hanya Agen A yang bisa menarik saldo — menu Withdraw tidak tampil untuk B/C. B/C memakai saldo untuk berjualan.
- A membuka Withdraw → isi nominal (minimal 100.000), bank, nomor rekening, atas nama.
- Request berstatus pending — admin melihatnya di daftar withdraw.
- Admin transfer manual ke rekening A, lalu klik Sudah Transfer di aplikasi → saldo biasa A terpotong dan riwayat tercatat.
Komisi harus dikonversi dulu ke saldo biasa (Bagian 13) sebelum bisa di-withdraw.
BAGIAN 19 Transfer Saldo ADMIN AGEN A
Menu Keuangan → Transfer Saldo. Aturannya:
- Admin → bisa transfer ke agen mana pun (admin tidak punya saldo sendiri — transfer bersifat kredit).
- Agen A → bisa transfer ke downline (B/C) dari saldo biasanya — dipakai untuk menurunkan komisi.
- B dan C → tidak bisa transfer.
BAGIAN 20 Monitor Top Up
Menu Agen & Keuangan → Monitor Top Up — melihat hasil top up anggota, berjenjang sesuai hak akses:
| Role | Melihat top up milik |
|---|---|
| Admin | Semua agen |
| Agen A | Dirinya + seluruh downline (B/C) |
| Agen B | Dirinya + downline (C) |
| Agen C | Dirinya sendiri |
BAGIAN 21 Riwayat Batch Generate
Setiap generate = satu batch. Menu Keuangan menampilkan riwayat batch: profile, jumlah, mode, biaya, komisi, dan status tiap kode (unsold / sold / refunded). Dari sini Anda memantau berapa voucher yang belum laku untuk diputuskan refund (Bagian 23).
BAGIAN 22 Refund Voucher AGEN
Satu menu Agen & Keuangan → Refund Voucher menangani semua pengembalian voucher, dengan dua mode:
Mode A — Per Voucher (voucher tidak bisa dipakai)
Untuk voucher yang sudah terjual tapi gagal dipakai pelanggan (salah profile/error router/double-print) atau expired.
- B buka Refund Voucher → tab Per Voucher → masukkan kode voucher + alasan → nominal otomatis = harga generate B (87.500).
- Refund B/C menunggu approval Agen A; refund A menunggu admin.
- Setelah approve: saldo biasa B +87.500; data penjualan voucher dihapus dari laporan; komisi terkait dibatalkan/dibiarkan sesuai statusnya.
Mode B — Per Batch (batch tidak laku)
Untuk batch yang vouchernya belum laku sama sekali/tersisa (status unsold).
- B buka Refund Voucher → tab Per Batch → pilih batch (menampilkan jumlah belum laku & biaya) → ajukan alasan.
- Admin membuka daftar refund → bisa mengisi bagian owner yang dikembalikan (default = penuh, mis. 75.000).
- Approve → komisi pending otomatis balik ke saldo biasa B (12.500) + bagian owner (75.000) → B menerima kembali 87.500 penuh; voucher dinonaktifkan.
BAGIAN 24 Paket PPPoE & Komisi PPPoE ADMIN
PPPoE memakai maksimal 2 level agen (A & B). Komisi menempel pada paket: komisi A (%), komisi B (% dari A), dan mode final/ontop — cara kerjanya sama dengan profile hotspot (Bagian 12).
BAGIAN 25 Pelanggan PPPoE oleh Agen B PPPoE AGEN B
Hanya Agen B yang mendaftarkan pelanggan PPPoE. Admin melihat semua pelanggan; A melihat pelanggan subtree-nya; C tidak terlibat PPPoE sama sekali.
- B membuka PPPoE → Customer → daftarkan pelanggan: pilih coverage, paket, isi data pelanggan.
- Pelanggan masuk status waiting (menunggu aktivasi) dan otomatis terikat ke B.
- Invoice bulanan pelanggan menjadi tanggungan B (Bagian 26).
BAGIAN 26 Pembayaran Invoice oleh B PPPoE
Agen B membayar dulu invoice pelanggannya lewat Midtrans dengan harga komisi, lalu menagih harga penuh ke pelanggan.
- Sistem membuat invoice bulanan 100.000 atas nama pelanggan B.
- B membuka invoice → klik Bayar → membayar via Midtrans sebesar 87.500 (75.000 pemilik + 12.500 komisi A).
- Pembayaran sukses → invoice paid + pelanggan otomatis aktif → komisi A 12.500 langsung berstatus terjual (bayar & aktif = momen yang sama).
- B menagih 100.000 ke pelanggan (cash/transfer) — margin B = 12.500.
BAGIAN 27 Notifikasi & Alert
VPMS memberi tahu Anda setiap kejadian penting: komisi masuk, top up sukses, utang, withdraw, claim, sampai akun di-disable. Ada 2 saluran: lonceng in-app (ikon 🔔 di pojok kanan atas) dan WhatsApp.
Lonceng in-app
- Ikon 🔔 di header menampilkan badge jumlah belum dibaca; klik untuk melihat 10 notifikasi terakhir.
- Lihat semua membuka halaman Notifikasi — filter per kategori (komisi, keuangan, claim & refund, akun, sistem) dan hanya-belum-dibaca.
- Klik notifikasi untuk menandai dibaca; ada tombol Tandai semua dibaca.
- Kiriman WA memakai perangkat WA aktif (Master Data → Whatsapp Gateway).
- Anti-spam (digest): lebih dari 10 pesan kategori yang sama dalam 10 menit → sisa kejadian digabung jadi satu pesan ringkasan.
- Pelanggan PPPoE menerima WA: tagihan jatuh tempo, pembayaran diterima, dan isolir (sesuai toggle
wa_notifypelanggan).
Mengatur preferensi
- Agen: menu Keuangan → Setelan Notifikasi — nyalakan/matikan per kategori per saluran.
- Admin: Master Data → Setelan Alert — master switch WA, batas digest, retensi, jam pembayaran menggantung, dan override per agen.
- Alert sistem (router offline, pembayaran menggantung, worker error) hanya dikirim ke admin — agen tidak pernah menerimanya.
BAGIAN 28 Keamanan Sesi
- 1 akun = 1 sesi — login di perangkat baru menendak sesi lama.
- Idle timeout 30 menit — tanpa aktivitas 30 menit, sesi berakhir; aktivitas memperpanjang otomatis.
- Disable langsung efektif — akun (atau upline-nya) di-disable → sesi yang sedang jalan langsung diputus.
- API key — semua request panel membawa kunci API; backend memvalidasi token + sesi + role di setiap endpoint.
BAGIAN 29 Troubleshooting
| Login: "Invalid API key" | Aplikasi di browser masih versi lama (cache). Lakukan hard refresh: Ctrl+Shift+R, atau buka jendela incognito. |
|---|---|
| "Sesi berakhir" saat masih dipakai | Ada login lain dengan akun yang sama (sesi Anda ditendang), atau idle lebih dari 30 menit. |
| Generate ditolak "Saldo tidak cukup" | Saldo biasa harus menutup biaya generate + komisi upline (ditahan penuh di muka). Lakukan top up. |
| Tombol top up tidak muncul | Anda login sebagai Agen A — A memang tidak top up; saldo A dari komisi/transfer/refund. |
| Konversi komisi ditolak | Konversi maksimal = komisi berstatus terjual. Komisi pending hanya bisa dikonversi setelah vouchernya laku. |
| Menu PPPoE tidak muncul | Anda login sebagai Agen C — PPPoE hanya untuk admin, A, dan B. |
| Tombol disable tidak ada | Hanya admin & Agen A yang bisa disable/enable akun. |
| Withdraw ditolak | Minimal 100.000, hanya untuk Agen A, dan harus dari saldo biasa (konversi komisi dulu). |
| Top up dipotong otomatis | Itu pelunasan utang — pembayaran dialokasikan ke invoice utang tertua dulu, sisanya masuk saldo. |