Overview
Payaza Transfers lets you send money to any bank account or mobile wallet in Nigeria, Ghana, Kenya, and other supported countries. This guide walks through the full flow — from confirming the recipient’s account name to initiating the payout and verifying the outcome. The transfer flow has four steps:1
Verify account name
Confirm the recipient’s account name before sending (Nigeria and Ghana
only).
2
Get your account reference
Fetch the
payazaAccountReference for the currency you want to send from.3
Initiate the transfer
Send the funds using the recipient details, amount, and your transaction
PIN.
4
Confirm the outcome
Query the transaction status or listen for a webhook to confirm success or
failure.
Before you begin
You need the following before making your first transfer:- A funded Payaza account for the currency you want to send from
- Your public API key encoded in Base64 — see the Authentication guide
- A webhook URL saved on the dashboard — see the Webhooks guide
- Your transaction PIN set up on the dashboard — required to authorise every payout
- Your server IP address whitelisted on the dashboard — required before live payouts are processed
Switch
X-TenantID from test to live when you are ready to process real
payouts.Step 1 — Verify account name
This step applies to Nigeria (NGN) and Ghana (GHS) only. Skip to Step
2 if you are sending to other countries.
cURL
Step 2 — Get your account reference
Retrieve thepayazaAccountReference for the currency you want to send from. You will pass this as account_reference in your transfer request.
cURL
The response contains one object per currency. Use the
payazaAccountReference from the object whose currency matches your
intended payout.Step 3 — Initiate the transfer
One-time live setup
Two steps are required before your first live payout. They only need to be done once.1. Whitelist your server IP address
1. Whitelist your server IP address
Live transfers are blocked until your server IP is whitelisted.
1
Log in to the Payaza dashboard
2
Go to Settings → Developers → IP Whitelisting
3
Add your server IP address(es) and save
2. Set your transaction PIN
2. Set your transaction PIN
A 6-digit PIN is required to authorise every transfer. Set it once on the dashboard.Your PIN must have a unique value for each digit and must not include:
1
Log in to the Payaza dashboard
2
Go to Settings → Profile → Security
3
Click "Edit Details" then "Update Transaction PIN"
- Repeated digits — e.g.
111111 - Sequential digits — e.g.
123456or654321 - Repeating patterns — e.g.
121212or123123
Sample email
Sample email
Request
cURL
Request parameters
transaction_type values
The transaction_type field controls which payment rail is used for the payout. Pass the value that matches the recipient’s currency and intended transfer method.
Response
Creating Transfer API requests using a Signature Header.
Kindly follow the steps below to create Transfer API requests using a signature headerStep 1:
- Create an x-payaza signature value from your Tranfer API request body using the format below.
Step 2:
- Pass the signature value created using the format in Step 1 as an Authorization header in your API request.
Kindly note that your Payaza account has to be activated before this API
request method can be used. Kindly reach out to our team at
support@payaza.africa regarding this.
Step 4 — Verify the transfer
Use this endpoint to confirm the outcome of a transfer. Call it after initiating, or as a fallback if a webhook is not received.cURL
Transaction statuses
Webhook events
Payaza sends a webhook for every completed or failed transfer. Use webhooks as your primary notification mechanism and the status query endpoint only as a fallback.Always verify the webhook signature before processing the payload. See the
Webhooks guide for signature verification steps.
Key reminders
- Your Payaza account must be funded before initiating a transfer
- Generate a unique
transaction_referencefor every transfer attempt - Transfers are not retried automatically — your application must handle retry logic
- IP whitelisting is required for live payouts only — not enforced in test
- If
postNoDebitistrueon your account, transfers will be blocked — contact support@payaza.africa
What’s next
Webhooks
Set up signature verification and handle transfer event payloads.
Errors
A reference for all transfer error responses and how to fix them.
Virtual accounts
Collect inbound payments via dynamic or reserved virtual account numbers.
Payaza account
View your account balance and reference across all currencies.