The Web Rabbit Payments API lets you accept Mobile Money across Africa (plus bank transfer in Nigeria) with a single integration. Live route health is on the status page. You get one API, one dashboard, and one settlement — we handle the rails.
Overview
The API is organised around REST. It uses predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes and verbs.
Base URL
All endpoints are served over HTTPS at:
https://api.webrabbitmedia.com/v1
wr_test_... runs against our built-in simulator, wr_live_... hits production rails. Test and live data are fully isolated.https://api.webrabbitmedia.com/openapi.json (and https://webrabbitmedia.com/openapi.json). Generate a client from it, validate payloads against it, and diff it between releases. Every page here is also served as plain Markdown at /docs/<page>.md. See OpenAPI & SDKs and the API changelog.Health check
GET https://api.webrabbitmedia.com/v1/health is unauthenticated and returns { "ok": true, "service": "webrabbit-api", "request_id": "…" } with HTTP 200. Use it for uptime monitoring — it is still subject to the unauthenticated per-IP rate limit.
Payment providers
Behind the API we settle through licensed payment providers. OGateway is the default for payments and payouts in all 16 live countries; 360Pay (LibertePay) and JuniPay remain available in Ghana when we route a business to them. Each business is routed to one provider; the routing is managed by us and never changes your request or response shape. The normalised status (approved · pending · failed) is identical either way — only the raw code and reason passed through from upstream differ. See Provider codes.
POST /v1/payout/momo and /v1/payout/bank are retired and return 501 provider_unsupported. Withdrawals are requested from Payouts in the merchant dashboard and settled by our operations team.Test mode & Live mode
Every business has two independent environments. Live mode unlocks after your business is approved and processes real payments.
wr_test_ keys are served by our built-in simulator: no upstream provider call, no real debit, amounts capped at GHS 10, and deterministic outcomes chosen by the amount. Read test_moves_real_money on GET /v1/me if you want to assert it. See Test data.approved. Complete verification from the Verification page.Only GHS is supported today. Amounts are decimal (e.g. 10.50) — we handle any pesewa-string conversion required by upstream rails.
Ready to charge your first customer?
