Introduction

Hashpay adalah payment gateway crypto untuk merchant: Anda membuat order, kami menyediakan alamat deposit unik dan QR pembayaran, lalu mengabari Anda lewat webhook begitu dana masuk. Dana disettle ke wallet Anda secara terjadwal.

Alur pembayaran

  1. Buat order — server Anda memanggil POST /merchant/fiat/order dengan nomor order dan nominal fiat (IDR).
  2. Pilih token & wallet — pelanggan memilih token (mis. USDT) dan wallet (MetaMask, Trust Wallet, dst).
  3. Rate & feePOST /merchant/fiat/checkOrderRate mengunci kurs dan menghitung fee. Nominal crypto yang harus dibayar sudah final di langkah ini.
  4. QR + alamat depositPOST /pgqr/fiat/create menghasilkan QR (EIP-681 atau deep link wallet) dan alamat deposit unik per transaksi.
  5. Pelanggan membayar — blockchain watcher mendeteksi transfer dan menandai order Success.
  6. Webhook — kami mengirim notifikasi bertanda tangan ke notification_url merchant.
  7. Settlement — dana disapu dari alamat deposit ke wallet settlement Anda (otomatis terjadwal atau manual).
Diagram alur (ringkas)
Merchant server ──► POST /merchant/fiat/order        (buat order)
                ──► POST /merchant/fiat/checkOrderRate (kunci kurs + fee)
                ──► POST /pgqr/fiat/create             (QR + alamat deposit)
Pelanggan       ──► kirim USDT/USDC ke alamat deposit
Hashpay         ──► order = Success
                ──► webhook transaction.success ──► Merchant server
Hashpay         ──► sweep ke wallet settlement (terjadwal/manual)

Base URL

LingkunganBase URLDana
Sandbox (testnet)https://api.hashpay.id/api/v2/testnet/Token testnet dari faucet
Produksi (mainnet)https://api.hashpay.id/api/v2/mainnet/USDT/USDC sungguhan

Envelope respons

Semua endpoint mengembalikan JSON dengan bentuk konsisten: status_code, message, dan data.

json
{
  "status_code": 201,
  "message": "success",
  "data": {
    "request": { "order_no": "INV-2026-0001", "status": "Created" }
  }
}

Cek status_code (bukan hanya HTTP status) dan baca pesan error dari message. Detail selengkapnya di Errors & status codes.

Langkah selanjutnya