Developer docs

Accept your first payment

Hosted checkout flow for an e-commerce order. No inline widget yet — redirect only.

  1. Create a Business-plan account and mint a key in Merchant → API keys.
  2. Register a webhook URL in Webhooks subscribed to at least escrow.funded, escrow.delivered, escrow.released.
  3. On order create in your store, call POST /escrow/initiate with your order reference, amount in kobo, buyer email, and return_url.
  4. Redirect the browser to checkout_url. The buyer must sign in (or sign up) with the same email you passed as customer_email before bank-transfer details are shown on /checkout/{reference}. Guest checkout is not supported.
  5. When you receive escrow.funded, fulfill the order. Optionally poll GET /escrow/:reference.
  6. After dispatch, call deliver. The 24h inspection window starts.
  7. Call release when ready (seller must have accepted), or wait for auto-release after the inspection window.
  8. On escrow.released, mark the order paid/settled in your store.

Return URL

After checkout the buyer is sent to your return_url. Treat webhooks (not the browser redirect) as the source of truth for funding.

Seller acceptance

If you pass seller_email, HarrenaPay emails an accept link. Release is blocked until seller_accepted_at is set — plan for that latency in your ops flow.