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
referenceper 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 yourmetadataaccount.*for onboarding progress and deposit-account issuancefee.*withincurred_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 theirX-Account-Id scope.