Skip to main content
Once a customer account is approved, you operate it with the same endpoints the Business docs describe. One header changes whose money moves.

The X-Account-Id header

Add X-Account-Id: <accountId> to any request and the entire request runs as that customer — their wallets, their beneficiaries, their transactions:
The accountId is the id returned by Create Account (or List Accounts). Accounts you create with your tenant key — and customers who onboard themselves through your white-label app — are automatically part of your tenancy.
There is no need to create per-customer API keys: one tenant key operates the whole book. Keep it server-side and IP-allowlisted — a key needs at least one allowlisted IP before it can pay out or transfer.

Funding customer accounts

  • NGN — issue an NGN account; deposits to it credit the customer’s NGN wallet.
  • USD — issue a USD account (provider review applies). Need one deposit account per purpose? Pass a distinct reference per account — issuance is idempotent per reference, and deposits attribute to the right one.
  • Any currency — Funding Instructions returns complete payment details for every currency provisioned on the account, ready to show your customer.

Moving customer money

Everything in Send Payouts and Convert Currencies applies — just add the header:
description is required on every withdrawal. Beneficiaries are per-account too: create and reuse them under the customer’s scope. Use metadata to tie every transaction back to your own records — it comes back verbatim on responses and webhooks. On USD and other non-NGN bank rails you can also send your own externalReference, which is stored on the transaction and is looked up by Get Transaction; NGN and mobile money payouts get a Rolla-generated reference instead, so metadata is the handle that always works.

Staying in sync

As the tenant, your webhook endpoints receive events for every account in your tenancy:
  • transaction.* for customer deposits and payouts — payloads identify the account, and carry your metadata
  • account.* for onboarding progress and deposit-account issuance
  • fee.* with incurred_by_account, so you know which customer incurred what

Reconciliation

List Transactions Across Accounts is your book-level feed: every transaction across all managed accounts, newest first, each row naming its account — JSON or CSV. For a single customer, use the regular transaction endpoints under their X-Account-Id scope.