Skip to main content
This guide walks you through creating and sending your first payout with the Zuba API. You’ll create a beneficiary with a Nigerian bank account, then pay them NGN from your EUR balance; the currency conversion happens automatically.

Prerequisites

Before you start, make sure you have:
  • Valid API credentials (see Authentication)
  • Your API base URL
  • A Sandbox or production account with sufficient balance

Step 1: Create a Beneficiary

First, create a beneficiary to receive the payout. A beneficiary represents a person or entity together with their payment account details. For NGN bank accounts, bankCode is the 3-digit CBN short code (e.g. 044) or the 6-digit NIP long code (e.g. 000014), and crAccount is the 10-digit account number.
string
Unique UUID for the created beneficiary
array
Array of payment accounts with their IDs and details
Required beneficiary fields vary by destination currency and by whether the recipient is an individual or a business. Call GET /v1/payouts/requirements?currency=USD&route=swift before submitting to see exactly which fields the corridor needs of the recipient and of the sender, for an individual and for a business of each, instead of discovering them through validation errors.The response also lists rules a field value must satisfy, as a pattern to test before submitting: a corridor that addresses an individual recipient by first and last name separately reports one for name, and refuses a single-token name with a 400 naming name.A business recipient is its legal name and needs no split.

Step 2: Create Your First Payout

Now create a payout to your beneficiary. RECOMMENDED: Reference the beneficiary by ID (from Step 1). Currency Fields: inputCurrency is the currency debited from your account, while currency is what the beneficiary receives. When they differ, Zuba converts automatically; no separate quote is needed for this corridor:
senderInfo is optional. If omitted, the originator is the paying account as its KYB application was approved: your workspace, or the sub-account named in Zuba-Account-Id. Supply it only when paying out on behalf of a distinct third party. Some corridors, such as mobile money in Ghana and Cameroon, require it.
Alternatively, provide the full beneficiary object to create a new beneficiary inline:
See Payment Routes for available routes and their characteristics.

Step 3: Monitor Payout Status

Track your payout’s progress by checking its status:
A fresh payout moves through created → queued → processing → paid, so don’t be surprised to see created or queued if you poll immediately after creation. See Payout Statuses for detailed status definitions.

Step 4: Handle the Response

A successful payout response includes:
The FX fields show what was actually debited: inputAmount is the total charged in inputCurrency (including the fee), and fxRate is the rate applied to convert to the destination currency.

Error Handling

Common errors when creating payouts:

Next Steps

Complete Example

Here’s a complete example combining all steps: