/v1 and speaks JSON over HTTPS.
What this API offers today
POST /v1/request-money— You send aRequestMoneyRequestbody (applicant, payout method, amount, currency, and yourreferenceId). ThereferenceIdmust be exactly 8 characters froma-z,A-Z, and0-9. The API returns201 Createdwith aRequestMoneyResponse: yourreferenceId, an operationid, astatus,waLink(WhatsApp payer journey),landingLink(web landing), and related fields as in OpenAPI. Screening may respond with403 Forbidden(for example OFAC hit) without the standard create success body.GET /v1/request-money/{referenceId}— You read the public status for the same integratorreferenceId. A missing or unknown resource returns404with JSONerrorandmessagefields as in OpenAPI.
country), and status enum live in the API Reference tab (OpenAPI-backed).
Typical integration flow
Choose your base URL
Use the base URL for your environment (sandbox vs production). For Banrural sandbox integrations, the versioned API root is
https://banrural-request-api-sandbox.up.railway.app/v1 (host base URL without the path: https://banrural-request-api-sandbox.up.railway.app).Send your API key
On every
POST and GET under /v1/request-money, include header X-API-Key with the key your integration contact gives you for that environment. Missing or wrong keys receive 401 Unauthorized. In the API Reference playground, use Authorize (or your client’s equivalent) so requests include the key.Configure landing and messaging
Before
POST /v1/request-money succeeds, your operator stores landingBaseUrl (HTTPS base for the payer funding page), whatsappBaseUrl, and whatsappMessageTemplate on your partner record through the partner portal or Leap admin. The API builds landingLink from landingBaseUrl by appending a ref query parameter for your referenceId. Omitting landingBaseUrl yields 422 until you configure it.Create the operation
Call
POST /v1/request-money with a payload that matches RequestMoneyRequest. Supply a stable referenceId (8 alphanumeric characters: a-z, A-Z, 0-9) from your own systems so you can correlate webhooks, support tickets, and later GET calls.Use the returned links
Read
waLink and landingLink from RequestMoneyResponse. Use the URL that matches your payer experience (WhatsApp vs browser). Treat status as the public lifecycle field (pending, processing, completed, rejected, cancelled as defined in the schema).API keys and environments
API keys and environments
You receive separate credentials per environment. Never use production keys in development builds, CI logs, or example code you ship to partners.
referenceId ownership
referenceId ownership
referenceId is your stable operation code: exactly 8 characters from a-z, A-Z, and 0-9. The API uses it to correlate GET responses with the original POST for your integrator account.Tooling routes
Tooling routes
GET /api-docs, GET /openapi.json, and other non-versioned tooling routes may sit outside api_key security unless your deployment adds another layer in front of the process.Quickstart
Make your first authenticated calls in a few minutes.
Authentication
How
X-API-Key works, errors (including 403 screening), and operational tips.Partner portal playground
Run guided create, GET, and optional internal status tests from the partner portal (API key for create and lookup; server secret for internal status).
API reference intro
Base URLs, headers, status codes, and response shape.
Webhooks
Receive signed callbacks for operation_created, operation_updated, and operation_error with HMAC-SHA256 verification and built-in retries.
OpenAPI playground
Interactive POST /v1/request-money with schemas and examples.
GET status endpoint
Open GET
/v1/request-money/{referenceId} for the public status payload and 404 behavior.Environments
| Environment | Host base URL | Versioned API root |
|---|---|---|
| Sandbox (Banrural) | https://banrural-request-api-sandbox.up.railway.app | https://banrural-request-api-sandbox.up.railway.app/v1 |
| Production | Provided by your integration contact | {production-host}/v1 |
BASE_URL to the host base URL (no trailing slash, no /v1). Append /v1/request-money (or other versioned paths) in your client, as in the Quickstart examples.
The OpenAPI servers entry and API Reference playground use the sandbox host for Banrural. Your deployment may set OPENAPI_SERVER_URL when exporting OpenAPI from the API repo so servers reflects other environments.