Kanzen Ads Docs
IntroductionQuickstartAuthentication
Connect to Hermes Agent
Payments / Top-up
Overview & CreditsGenerate ImageGenerate VideoRetrieve Media
Top Up Campaign AdsCharacter + Product Video
Errors & LimitsAPI ReferenceMeta Marketing API Guide

Pembayaran / Top-up

Isi saldo kredit kamu lewat transfer bank. Pilih paket, transfer sesuai jumlah unik yang ditampilin, dan kreditnya otomatis masuk begitu transfernya kedeteksi — nggak perlu konfirmasi manual, nggak perlu upload bukti transfer.

Cara kerja top-up

1

Pilih paket kredit

Buka halaman top-up dan pilih paket. Tiap paket punya jumlah kredit tetap dan harga dasar dalam Rupiah.
2

Dapetin jumlah transfer unik kamu

Kami bikin invoice dengan jumlah unik: harga dasar paket ditambah kode unik 3 digit (misalnya dasar 50.000 jadi 50.237). Jumlah persis ini yang bikin kami bisa mencocokkan transfer kamu ke akun kamu.
3

Transfer jumlah yang PERSIS

Transfer jumlah persis yang ditampilin ke rekening bank yang tertera di invoice. Jangan dibulatkan naik atau turun — 3 digit terakhir itu kode yang jadi identitas pembayaran kamu.
4

Tunggu — ini otomatis

Sistem rekonsiliasi pembayaran kami memantau transfer yang masuk. Begitu ada jumlah yang cocok, invoice-nya otomatis berubah jadi PAID dengan sendirinya. Kamu nggak perlu kirim bukti transfer atau kabarin siapa pun.
5

Saldo ke-update

Kredit ditambahkan ke saldo kamu dan kamu dapet notifikasi sukses. Halaman invoice-nya ke-update otomatis selagi kamu nunggu.
❗

Transfer jumlah yang persis

Kode unik 3 digit ada di digit terakhir jumlahnya (angka yang keliatan aneh itu). Kalau transfernya dibulatkan, deteksi otomatis kami nggak bisa mencocokkan ke invoice kamu dan kreditnya nggak akan masuk. Selalu kirim jumlah persis yang ditampilin.

Kenapa jumlahnya ganjil?

Banyak orang bisa top up paket yang sama di waktu yang bersamaan, dan harga dasar polos (misalnya 50.000) jadi ambigu — beberapa transfer masuk dengan nilai yang sama nggak bisa dibedain. Kode unik 3 digit bikin jumlah tiap invoice yang masih pending jadi beda-beda, jadi transfer sebesar 50.237 cuma cocok ke satu invoice dan satu akun. Makanya jumlahnya keliatan ganjil dan nggak boleh dibulatkan.

ℹ️

Rekonsiliasi otomatis

Pencocokan ditangani oleh sistem rekonsiliasi pembayaran kami, yang membaca aktivitas transfer bank masuk dan otomatis mengkredit invoice yang sesuai. Nggak ada tahap review manual dan nggak ada yang perlu diupload.

API buat integrator

Alur yang sama tersedia secara programatik. Semua endpoint pakai autentikasi session (cookie user yang lagi login); invoice selalu ter-scope ke user yang manggil.

List paket

GET/api/payment/packages
Response 200
{
  "configured": true,
  "packages": [
    { "id": "pkg_starter", "name": "Starter", "credits": 50000, "priceIdr": 50000 },
    { "id": "pkg_pro", "name": "Pro", "credits": 200000, "priceIdr": 190000 }
  ]
}

Bikin invoice

POST/api/payment/invoices
Request body
{ "packageId": "pkg_starter" }
Response 200
{
  "id": "inv_abc123",
  "status": "PENDING",
  "credits": 50000,
  "amountBase": 50000,
  "uniqueCode": 237,
  "amountExpected": 50237,
  "bankName": "BCA",
  "bankAccount": "1234567890",
  "bankHolder": "PT Hermes",
  "expiresAt": "2026-07-08T12:30:00Z"
}

amountExpected = amountBase + uniqueCode. Suruh yang bayar transfer amountExpected persis ke bankAccount (bankHolder) sebelum expiresAt.

Poll status invoice

GET/api/payment/invoices/{id}
Response 200
{
  "id": "inv_abc123",
  "status": "PAID",
  "credits": 50000,
  "amountExpected": 50237,
  "paidAt": "2026-07-08T12:05:11Z"
}

Poll endpoint ini (halaman top-up poll tiap 8 detik) sampai status berubah dari PENDING ke PAID. Status terminalnya adalah PAID / SETTLED (udah dikredit), EXPIRED (waktu abis — bikin invoice baru buat dapet jumlah unik yang segar), dan FAILED.

⚠️

Kedaluwarsa

Tiap invoice cuma berlaku sampai expiresAt. Setelah itu jumlah uniknya dilepas dan dipakai lagi, jadi invoice yang udah kedaluwarsa nggak bisa dibayar lagi — bikin yang baru buat dapet jumlah yang segar.
← Connect to Hermes AgentOverview & Credits →