Lewati ke konten

Nomor Ajaib (Test Rules)

Nomor Ajaib memungkinkan kamu mensimulasikan berbagai skenario tanpa setup manual:

  • Success — transaksi berhasil
  • Pending — menunggu konfirmasi (memicu webhook tertunda)
  • Failed — transaksi ditolak
  • Expired — tagihan/VA kadaluarsa

Cukup pakai nomor di bawah sebagai accountNo, customerNo, atau virtualAccountNo. Tidak perlu membuat rule dulu — semuanya sudah aktif secara global di sandbox.

Setiap rule mengontrol dua field pada response, dan keduanya sering tertukar:

FieldPanjangContohArti
responseCode7 digit4031714Hasil pemanggilan API
latestTransactionStatus2 digit06Status transaksinya

responseCode SNAP tersusun dari tiga bagian:

403 17 14
│ │ └─ case code — kasusnya (14 = Insufficient Funds)
│ └────────────── service code — endpoint yang dipanggil (17 = Transfer Intrabank)
└─────────────────────── HTTP status — status HTTP response-nya juga 403

Karena bagian tengahnya berbeda per endpoint, satu rule yang berlaku di banyak endpoint menyimpan ** di posisi itu. snapdev mengganti ** dengan service code endpoint yang sedang dipanggil saat response dibuat. Jadi rule yang tersimpan sebagai 403**14 menjadi 4031714 di Transfer Intrabank dan 4035414 di Direct Debit Payment.

responseMessage mengikuti responseCode secara otomatis, memakai teks baku dari tabel “Daftar Response Code” di spesifikasi SNAP. Status HTTP response juga diambil dari tiga digit pertama — jadi rule 403**14 benar-benar membalas HTTP 403, bukan 200.

NomorScopeMatch typeresponseCodelatestTransactionStatusWebhook
9999999999anyaccountNo, customerNo200**00 — Successful00 Success
8888888888anyaccountNo, customerNo202**00 — Request In Progress03 Pendingsuccess setelah 5 detik
7777777777anyaccountNo, customerNo403**05 — Do Not Honor06 Failedfailed langsung
6666666666vavirtualAccountNo404**19 — Invalid Bill/Virtual Account05 Canceledexpired langsung
5555555555transferaccountNo403**14 — Insufficient Funds06 Failed

Contoh: POST /bca/v1.0/transfer-intrabank dengan sourceAccountNo: "7777777777" membalas HTTP 403 dengan responseCode: "4031705" dan responseMessage: "Do Not Honor", lalu mengirim webhook failed ke URL yang kamu daftarkan.

Tiga nomor pertama punya dua baris rule: satu accountNo untuk alur perbankan dan satu customerNo untuk top up e-money. Keduanya perlu ada karena setiap endpoint mencocokkan field yang berbeda — accountNo tidak akan pernah cocok dengan request top up.

Di admin panel kamu bisa membuat rule sendiri:

  • Scopetransfer, topup, va, qr, otc, bulk, atau any
  • Match TypeaccountNo, customerNo, virtualAccountNo, atau amount
  • Match Value — nilai yang dicocokkan
  • Response Code — 7 digit, boleh memakai ** di posisi service code
  • Latest Status — status 2 digit yang dilaporkan endpoint status
  • Webhook Eventsuccess, failed, expired, atau none
  • Delay — jeda sebelum webhook dikirim, dalam detik

Rule milikmu sendiri selalu dievaluasi sebelum rule global, jadi kamu bisa menimpa nomor bawaan di atas untuk project-mu.

Contoh: VA yang baru terbayar setelah 30 detik

Section titled “Contoh: VA yang baru terbayar setelah 30 detik”
  1. Buat rule: scope va, match type virtualAccountNo, match value 12345678901234
  2. Set responseCode 202**00, latest status 03, webhook success, delay 30
  3. Saat developer inquiry VA → HTTP 202, responseCode 2022400, status 03
  4. Setelah 30 detik → webhook success dikirim ke URL developer