API conventions
Aturan umum yang berlaku untuk semua endpoint Hashpay: base URL, autentikasi, envelope respons, tipe data, dan idempotensi.
Base URL & versi
| Lingkungan | Base URL |
|---|---|
| Sandbox | https://api.hashpay.id/api/v2/testnet/ |
| Produksi | https://api.hashpay.id/api/v2/mainnet/ |
Semua endpoint di dokumen ini relatif terhadap base URL tersebut, mis. POST /merchant/fiat/order berarti https://api.hashpay.id/api/v2/testnet/merchant/fiat/order.
Header
| Header | Wajib | Keterangan |
|---|---|---|
api-key | Ya (endpoint transaksi) | API key merchant |
Authorization: Bearer <jwt> | Ya (endpoint dashboard) | Token dari login merchant |
Content-Type: application/json | Ya | Semua request JSON |
Envelope respons
json
{
"status_code": 200,
"message": "success",
"data": { }
}status_code— cerminan HTTP status; selalu cek nilai ini.message— pesan sukses atau alasan error (aman ditampilkan ke log internal).data— payload; bentuknya berbeda per endpoint (dijelaskan di masing-masing halaman).
Tipe data
| Tipe | Format | Contoh |
|---|---|---|
| Nominal fiat | string, 2 desimal | "150000", "100000.00" |
| Nominal crypto | string, hingga 6 desimal (titik sebagai desimal) | "5.616189" |
| Kurs | string, IDR per 1 token | "17805.23" |
| Waktu | Unix detik atau ISO-8601 | 1821387856 |
| Network | uppercase | ETHEREUM, BINANCE, TRON, SOLANA |
Idempotensi
- Order:
order_noadalah kunci idempotensi Anda. Jangan membuat dua order denganorder_noyang sama. - QR: memanggil ulang
/pgqr/fiat/createuntuk order yang sama mengembalikan alamat & nominal yang sudah ada (tidak membuat alamat baru). - Webhook: pakai
X-Hashpay-Idempotency-Keyuntuk memastikan Anda memproses satu pembayaran tepat sekali.
Referensi endpoint
- Orders — buat & ambil order.
- Rate & fee — kunci kurs, hitung fee.
- QR & deposit address — QR pembayaran + alamat unik.
- Tokens & wallets — daftar token/channel aktif.
- Payment links — link pembayaran reusable.
- Settlement — pencairan dana.