Rate & fee
Sebelum menampilkan QR, kunci kurs dan hitung fee. Nominal crypto yang dihasilkan di langkah ini bersifat final — QR berikutnya tidak akan berubah walau kurs pasar bergerak.
Kunci kurs & hitung fee
POST
/merchant/fiat/checkOrderRateHeader wajib: api-key.
| Field | Tipe | Keterangan |
|---|---|---|
merchant_id | string | ID merchant Anda |
transactionID | string | order_no dari langkah 1 |
tokenAddress | string | Alamat kontrak token (lihat listToken) |
network | string | ETHEREUM | BINANCE | TRON | SOLANA |
bash
curl -X POST "$HASHPAY_BASE/merchant/fiat/checkOrderRate" \
-H "api-key: $HASHPAY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"merchant_id": "10001",
"transactionID": "INV-2026-0001",
"tokenAddress": "0xaD322e530C15330442841b4C400D730103B0af87",
"network": "ETHEREUM"
}'Respons 200
{
"status_code": 200,
"message": "success",
"data": {
"order_no": "INV-2026-0001",
"currency": "IDR",
"amount": "150000",
"amount_crypto": "8.424283",
"crypto_rate": "17805.23",
"fees": [
{
"name": "Platform Fee",
"fee_type": "PERCENT",
"fee_value": "1.00",
"fee_amount": "1500.00",
"fee_amount_crypto": "0.084243",
"is_included": true
}
],
"total_fee_amount": "1500.00",
"total_fee_amount_crypto": "0.084243",
"total_amount": "150000",
"total_amount_crypto": "8.424283"
}
}Mode fee
Fee platform diatur admin per merchant (default 1%) dengan dua mode yang menentukan siapa yang menanggung:
| Mode | is_included | Yang dibayar pelanggan | Penerimaan merchant |
|---|---|---|---|
| Ditanggung penjual (MDR) | true | amount (+ kode unik) | amount − fee |
| Ditanggung pembeli | false | amount + fee (+ kode unik) | amount |
Kurs
Kurs diambil dari sumber pasar (stablecoin → IDR) dan di-cache singkat di sisi Hashpay. Bila sumber live tidak tersedia, sistem memakai kurs fallback internal dan tetap mengunci nilai yang ditampilkan ke pelanggan.