Orders

Order adalah pusat alur pembayaran: semua langkah berikutnya (rate, QR, webhook, settlement) merujuk ke order_no yang Anda buat.

Buat order

POST/merchant/fiat/order

Header wajib: api-key.

FieldTipeWajibKeterangan
merchant_idstringYaID merchant Anda
order_nostringYaNomor order unik dari sistem Anda
amountstringYaNominal fiat (IDR), mis. "150000"
namestringTidakNama pelanggan
emailstringTidakEmail pelanggan (untuk notifikasi)
phonestringTidakNomor telepon pelanggan
productsarrayTidak[{ name, price, quantity }] untuk rincian item
bash
curl -X POST "$HASHPAY_BASE/merchant/fiat/order" \
  -H "api-key: $HASHPAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "merchant_id": "10001",
    "order_no": "INV-2026-0001",
    "amount": "150000",
    "name": "Budi Santoso",
    "products": [
      { "name": "Kopi Arabika 250g", "price": 75000, "quantity": 2 }
    ]
  }'
Respons 201
{
  "status_code": 201,
  "message": "success",
  "data": {
    "request": {
      "order_no": "INV-2026-0001",
      "merchant_id": "10001",
      "cashierID": "0",
      "amount": "150000",
      "currency": "IDR",
      "status": "Created"
    },
    "url": "https://pay.hashpay.io?key=...",
    "key": "...",
    "expired_at": 1821387856
  }
}

Field penting pada respons

FieldKeterangan
urlHalaman pembayaran (webview) siap dibuka untuk order ini — lihat Payment page.
keyKredensial scoped 30 menit yang sudah tertanam di url. Simpan di server; jangan tampilkan ke browser.

Ambil order

POST/merchant/fiat/getOrder

Berguna untuk polling status dan rekonsiliasi. Header wajib: api-key.

bash
curl -X POST "$HASHPAY_BASE/merchant/fiat/getOrder" \
  -H "api-key: $HASHPAY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "merchant_id": "10001",
    "order_no": "INV-2026-0001"
  }'
Respons 200 (field penting)
{
  "status_code": 200,
  "message": "success",
  "data": {
    "order_no": "INV-2026-0001",
    "merchant_id": "10001",
    "status": "Success",
    "currency": "IDR",
    "tokenName": "USDT",
    "network": "ETHEREUM",
    "paid_amount": "5.616659",
    "final_amount": "5.504335",
    "merchant_received_amount": "5.504335",
    "tx_hash": "0x...",
    "link_explorer": "https://sepolia.etherscan.io/tx/0x...",
    "isSettlement": false,
    "nominalDetails": {
      "nominalCrypto": "5.616659",
      "fee": "0.112324",
      "feeIsIncluded": true,
      "finalAmount": "5.504335"
    }
  }
}
FieldArti
paid_amountJumlah crypto yang benar-benar diterima (termasuk kode unik)
final_amount / merchant_received_amountPenerimaan bersih Anda setelah fee
feeIsIncludedtrue = fee ditanggung penjual, false = ditanggung pembeli
tx_hash / link_explorerBukti transaksi on-chain
isSettlementtrue bila dana sudah disapu ke wallet settlement