DOKU Payment Gateway

SNAP BI Standard • MCH-0008-1047985122112

Buat Transaksi Baru

Semua channel terhubung ke DOKU Production API

1 Informasi Pelanggan

Rp

2 Metode Pembayaran

3 Mode Eksekusi

Mode Live: Transaksi akan dikirim ke DOKU Production API. Pastikan data benar.

Virtual Account

4 Bank

BCA, BSI, Mandiri, DOKU

QRIS

Semua Wallet

GoPay, OVO, Dana, dll

Retail

Alfamart

O2O Channel

Security

SNAP BI

HMAC-SHA512

Konfigurasi Production

Client ID MCH-0008-...
Base URL api.doku.com
Callback purwantara.id
Token B2B OAuth2

Alur Pembayaran SNAP

1

Get B2B Token (OAuth2)

2

Generate Signature HMAC-SHA512

3

Create VA / QRIS via API

4

Tampilkan ke Pelanggan

5

Terima Notifikasi DOKU

Transaksi Terakhir

Belum ada transaksi

Balance Inquiry

Cek saldo akun merchant DOKU via SNAP API

Account number merchant di DOKU (lihat di DOKU Dashboard)

Tentang Balance Inquiry

• Endpoint: POST /snap/v1.1/balance-inquiry

• Memerlukan SNAP B2B Token (RSA Asymmetric)

• Token aktif setelah RSA public key didaftarkan ke DOKU

• Saldo menunjukkan dana tersedia untuk disbursement

• Gunakan mode Simulasi untuk testing tanpa SNAP token

5/7

Channel Aktif

Non-SNAP

VA Aktif

Pending

RSA Registrasi

Status SNAP Integration

Private Key (DOKU_PRIVATE_KEY) Tersimpan
Public Key (DOKU_PUBLIC_KEY) Tersimpan
RSA Public Key di DOKU Dashboard Perlu Registrasi
SNAP B2B Access Token Belum Aktif

Cara Aktivasi SNAP:

1. Login ke DOKU Dashboard

2. Settings → Edit Merchant Public Key

3. Upload oauth-public.key

4. Tunggu approval (1-3 hari kerja)

Transfer Langsung

Transfer ke rekening bank via DOKU Kirim

Bank & e-Wallet Didukung

BCA BNI BRI Mandiri CIMB BSI BTN Danamon Permata GoPay OVO DANA ShopeePay +100 Bank

Dan 100+ bank lainnya di Indonesia. Lihat daftar lengkap →

Alur Integrasi Payout

1

Get B2B Token

POST /authorization/v1/access-token/b2b
2

Account Inquiry

POST /snap/v1.1/emoney/bank-account-inquiry
3

Transfer Bank

POST /snap/v1.1/emoney/transfer-bank
4

Check Status

POST /snap/v1.1/qr/qr-mpm-status

Test Semua Channel — Production

Jalankan test otomatis ke DOKU Production API

🏦

BCA Virtual Account

Siap ditest

🕌

BSI Virtual Account

Siap ditest

🏛️

Mandiri VA

Siap ditest

💜

DOKU VA

Siap ditest

🏪

Alfamart

Siap ditest

📱

QRIS

Siap ditest

💳

Kartu Kredit

Siap ditest

Test Log

// Test log akan muncul di sini...

Riwayat Transaksi

Semua transaksi yang dibuat di sesi ini

0 transaksi

Belum ada transaksi

API Endpoints

POST
/api/payment/create

Buat pembayaran baru

GET
/api/payment/status/:id

Cek status transaksi

GET
/api/channels

Daftar channel tersedia

POST
/api/payment/callback

Notifikasi dari DOKU

POST
/api/payment/inquiry

Inquiry VA (DIPC)

Request Body — Buat Pembayaran

{
  "channel": "bca | bsi | mandiri | doku | alfa | qris | credit_card",
  "amount": 150000,
  "customerName": "John Doe",
  "customerEmail": "john@example.com",
  "customerPhone": "628123456789",
  "simulate": false
}

Response — Virtual Account

{
  "success": true,
  "invoiceNumber": "INV-20260409-ABC123",
  "virtualAccountNo": "8808881234567890",
  "expiredDate": "2026-04-10T10:00:00+07:00",
  "simulated": false
}

Skema Signature SNAP

Get Token (Asymmetric)

stringToSign = clientId + "|" + timestamp
signature = HMAC_SHA512(secretKey, stringToSign)

API Call (Symmetric)

stringToSign = METHOD:endpoint:token:SHA256(body):timestamp
signature = HMAC_SHA512(secretKey, stringToSign)