Skip to main content

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
Set these headers on every request:
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.
Resolve and display the recipient’s account name before proceeding. This prevents sending funds to the wrong account and is required as a confirmation step before initiating a transfer.
cURL
Response
Always display the resolved account_name to the user and require their confirmation before proceeding. Never auto-submit.

Step 2 — Get your account reference

Retrieve the payazaAccountReference for the currency you want to send from. You will pass this as account_reference in your transfer request.
cURL
Response
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.
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

IP whitelisting is only required for live transfers. Test environment transfers are not IP-restricted.
A 6-digit PIN is required to authorise every transfer. Set it once on the dashboard.
1

Log in to the Payaza dashboard

2

Go to Settings → Profile → Security

3

Click "Edit Details" then "Update Transaction PIN"

Your PIN must have a unique value for each digit and must not include:
  • Repeated digits — e.g. 111111
  • Sequential digits — e.g. 123456 or 654321
  • Repeating patterns — e.g. 121212 or 123123
After setting your PIN, email support@payaza.africa from your Super Admin email to request the PND (Post No Debit) restriction be lifted on your account.

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

Always generate a unique transaction_reference per transfer. Reusing a reference will return a duplicate transaction error and the transfer will be rejected.

Creating Transfer API requests using a Signature Header.

Kindly follow the steps below to create Transfer API requests using a signature header

Step 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
Response

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_reference for 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 postNoDebit is true on 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.