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. Call GET /v1/payouts/requirements before submitting to see exactly which fields a currency needs, instead of discovering them through validation errors.

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, your workspace is used as the business originator; 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 createdqueuedprocessingpaid, 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: