Payment Bridge
Kembali Login Dashboard
ADMIN GUIDE

Panduan Admin Payment Bridge

Pelajari cara mengelola seluruh infrastruktur pembayaran Anda hanya dari satu dashboard.

1. Persiapan Akun

Setiap Produk (website/aplikasi) yang Anda hubungkan ke Bridge harus memiliki identitas terpisah.

1

Mendaftar dengan Product Code

Gunakan Product Code (seperti AIRB atau MUSE) sebagai identitas unik Anda. Semua transaksi akan dikelompokkan berdasarkan kode ini.

2

Dashboard Access

Setelah mendaftar, Anda memiliki akses penuh untuk memantau trafik uang masuk tanpa perlu login ke dashboard bank/provider satu per satu.

2. Konfigurasi Gateway

Gateway adalah pintu masuk uang. Anda bisa menghubungkan Midtrans, Xendit, atau Doku ke sini.

1

Tambah Gateway Baru

Di tab Gateway Settings, Anda bisa menambahkan config provider. Bridge mendukung pemisahan akun Sandbox (untuk tes) dan Production (untuk uang asli).

2

Gateway ID

Sistem akan memberikan Gateway ID unik. Kode ini sangat penting untuk diberikan kepada developer agar sistem tahu akun mana yang akan digunakan untuk memproses pembayaran tertentu.

💡
Anda bisa memiliki lebih dari satu Gateway (misal: satu untuk QRIS Bank A, satu untuk Kartu Kredit Bank B) dalam satu aplikasi.

3. Kelola API Keys

API Key adalah "Kunci Rahasia" agar website/aplikasi Anda bisa berbicara dengan Payment Bridge.

  • Generate Key: Buat kunci baru di tab Integration API Keys.
  • Revoke/Delete: Jika kunci bocor atau tidak digunakan lagi, Anda bisa menghapusnya seketika untuk memutus akses.
⚠️
Jangan pernah membagikan API Key Anda di forum publik atau menyimpannya di script frontend (client-side).

4. Keamanan & Whitelist

Agar server Anda aman dari serangan paket palsu, lakukan konfigurasi berikut:

Allowed Domains

Masukkan domain website Anda (misal: mywebsite.com) ke daftar putih. Bridge hanya akan mengirimkan notifikasi ke domain yang terdaftar di sini.

Global Webhook Secret

Ini adalah kunci rahasia utama produk Anda. Bridge menggunakannya untuk memberikan "Stempel Signature" (HMAC) pada setiap data yang dikirim ke web Anda.

5. Monitoring & Logs

Pantau segala aktivitas secara transparan.

Riwayat Penghasilan

Lihat detail transaksi, nominal bersih yang Anda terima (setelah dipotong biaya gateway), hingga status pembayaran secara real-time.

Delivery Logs

Jika server Anda mati atau lemot menerima notifikasi, Anda bisa mengecek di Delivery Logs. Bridge akan melakukan Retry otomatis jika server Anda gagal membalas webhook.


INTEGRATION GUIDE

Dokumentasi Developer

Referesi API lengkap untuk mengintegrasikan Payment Bridge ke backend aplikasi Anda.

Autentikasi API

Setiap request ke API Payment Bridge wajib menyertakan header berikut:

HeaderDeskripsi
X-Product-CodeKode Produk Anda (contoh: AIRB)
X-Api-KeyAPI Key valid yang digenerate dari dashboard
Content-TypeHarus application/json

Membuat Transaksi Pembayaran

Gunakan endpoint ini untuk memproses pembayaran dan mendapatkan redirectUrl.

POST /api/v1/payments/create

Request Body

json { "gatewayId": "cca8029e3e9c4b16a12af8539959eae8", "internalOrderId": "INV-123456", "grossAmount": 300000, "callbackTarget": "https://web-anda.com/api/webhook", "items": [ { "itemCode": "SEM-01", "itemName": "Tiket Seminar", "qty": 1, "price": 300000 } ] }

Parameter Reference

FieldTypeDeskripsi
gatewayIdstringID Gateway dari Dashboard (Mandatory)
internalOrderIdstringID Pesanan unik dari sistem Anda
grossAmountnumberTotal harga yang harus dibayar
callbackTargeturlURL Webhook Anda untuk menerima status lunas

Response Berhasil

json { "isSuccess": true, "bridgeOrderId": "PB-AIRB-168A4B9", "productCode": "AIRB", "internalOrderId": "INV-123456", "grossAmount": 300000, "snapToken": "c8bf2288-5183-4a09-9065-...", "redirectUrl": "https://app.sandbox.midtrans.com/snap/v3/redirection/...", "status": "pending", "errorMessage": null }

Menerima Webhook Notification

Bridge akan mengirimkan POST request ke callbackTarget Anda saat pembayaran diselesaikan.

Contoh Payload

json { "event": "payment.updated", "internal_order_id": "INV-123456", "transaction_status": "settlement", "payment_type": "qris", "gross_amount": 300000.00 }
📌
Status Lunas adalah settlement (untuk e-wallet/qris) atau capture (untuk Kartu Kredit).

Verifikasi Signature (Keamanan)

Gunakan **Webhook Global Secret** Anda untuk memvalidasi header X-Bridge-Signature.

1. Node.js / JavaScript

javascript const crypto = require('crypto'); const signature = crypto.createHmac('sha256', 'KUNCI_GLOBAL_ANDA') .update(JSON.stringify(req.body)) .digest('hex'); if (signature === req.headers['x-bridge-signature']) { // Data Valid & Aman }

2. PHP

php $secret = 'KUNCI_GLOBAL_ANDA'; $payload = file_get_contents('php://input'); // Ambil Raw Body $signature = hash_hmac('sha256', $payload, $secret); if ($signature === $_SERVER['HTTP_X_BRIDGE_SIGNATURE']) { // Data Valid & Aman }

3. Python

python import hmac import hashlib secret = b'KUNCI_GLOBAL_ANDA' payload = request.get_data() # Ambil Raw Body dari framework (misal Flask) signature = hmac.new(secret, payload, hashlib.sha256).hexdigest() if signature == request.headers.get('X-Bridge-Signature'): # Data Valid & Aman pass