Developer docs

Environments

Live keys move real NGN. Sandbox keys never create real funding accounts.

Live

  • Prefix hpay_live_ — create under Merchant → API keys (Business plan + approved merchant application)
  • Creates real virtual accounts and moves real NGN when funded/released
  • Managed delivery (rates / attach / retry) books real carrier pickups when delivery_mode is managed
  • Webhook registration requires live merchant access

Test (sandbox)

  • Prefix hpay_test_ — create free from Settings → API sandbox (no Business plan; max 3 active)
  • Same /api/public/v1 base URL
  • No real money: initiate/charge return a sandbox virtual account (HarrenaPay Sandbox Bank) — partner funding providers are never called
  • Mark paid with POST /api/public/v1/escrow/{reference}/simulate-fund using the same test key
  • Managed logistics attach/retry returns 403
  • Webhook registration is allowed for integration testing
  • Minimum escrow amount is still ₦10,000 (same as live)

Same base URL

There is no separate sandbox host. Behavior is selected by the key prefix (hpay_test_ vs hpay_live_).

Hosted checkout

Merchant checkouts use /checkout/{reference} on your deployed origin. Sandbox checkouts show a sandbox bank account; call simulate-fund from your integration to complete the payment flow.