Skip to main content
This guide takes you from zero to a completed NGN payout on your own account. Along the way you’ll touch the four things almost every integration uses: wallets, virtual accounts, beneficiaries, and withdrawals.
Building banking for your own customers as an MSB or FI? Do this quickstart first — then the Platform Quickstart adds customer onboarding and per-customer scoping on top of everything here.

Prerequisites

  • A verified Rolla business account at app.rolla.xyz
  • Funds — or a plan to deposit some in Step 3

Step 1: Create an API key

1

Open the dashboard

Log in at app.rolla.xyz and go to Settings → API Keys.
2

Create a key

Click Create API Key, name it, and copy the key. It is shown once — store it securely.
3

Allowlist your server IPs

Add your server’s IP addresses to the key’s allowlist. A key needs at least one before it can call Withdraw Funds or Rolla Transfer, and once a key has an allowlist it is enforced on every endpoint, not just the money-moving ones.
Keep your API key secret. Never expose it in frontend code or public repositories.

Step 2: Make your first request

Send the key in the X-API-Key header. List your wallets to confirm everything works:
Every successful response carries status (the HTTP code as a number), a human-readable message, and success: true, in that order. Most endpoints then nest the payload under data, but not all of them do — each endpoint’s reference page shows its exact shape. All amounts are in the currency’s smallest unit — kobo for NGN, cents for USD. See Amounts & Currencies.

Step 3: Fund your wallet

Generate a dynamic virtual account and transfer money to it from any Nigerian bank. Rolla credits your NGN wallet when the deposit lands:
The response contains a bank_name and account_number to pay into. 500000 kobo = ₦5,000.
Testing without real money? Sandbox environments expose Simulate a Deposit to credit your wallet instantly.

Step 4: Create a beneficiary

First resolve the recipient’s account so you know the name matches:
Then save them as a beneficiary (get bank codes from List Banks):
Copy the id from the response.
In a hurry? Withdraw Funds also accepts inlineBeneficiary details directly, so you can skip this step for one-off payouts.

Step 5: Send the payout

100000 kobo = ₦1,000, and description is required. By default the fee comes out of your wallet balance on top of amount, so the beneficiary receives the full ₦1,000; pass deductFeesFromBalance: false to take it out of the amount sent instead. Want a fee quote first? Call Get Transaction Fee.
This request must come from an IP on your key’s allowlist (Step 1), or it is rejected with 403.
Keep the transaction id. source_amount is what left your wallet (amount plus the fee) and destination_amount is what the beneficiary gets. On USD and other non-NGN bank rails you can also send your own externalReference and fetch the transaction by it later — but NGN and mobile money payouts always get a Rolla-generated reference like NG-NFNUJTUW instead, because the provider imposes its own format. See Idempotency & Retries before retrying failed requests.

Step 6: Track it

Poll the transaction:
Or — better — configure a webhook endpoint in the dashboard and receive transaction.completed / transaction.failed events the moment the payout settles, instead of polling.

Next steps

Accept deposits

Static and per-customer virtual accounts for collections at scale.

Send payouts

All rails: local transfers, USD wires, SWIFT, mobile money, stablecoins.

Set up webhooks

Stop polling — get pushed every status change.

API Reference

Every endpoint, field by field.