Web Rabbit MediaDocs
Get Started

Introduction

What Web Rabbit Payments is and how the API is structured.

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

iOne base URL — mode is inferred from the key
There is no separate host to call. The mode of the request (test or live) is determined by the key prefix: wr_test_... runs against our built-in simulator, wr_live_... hits production rails. Test and live data are fully isolated.
iMachine-readable contract
The whole API — Payments, Messaging, Bills and every webhook event — is published as an OpenAPI 3.1 document at 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.

!Payouts are not part of the public API
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.

iTest mode is fully simulated
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.
!Live mode requires approval
You can create live API keys, but charges will fail until your business status is 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?

Jump to the Quickstart →