---
title: "Initiate A Transfer"
method: POST
path: "/payout-receptor/payout"
tags: ["Transfers"]
---

# Initiate A Transfer

`POST /payout-receptor/payout`

Send funds from your Payaza account to a bank account or mobile wallet. Supports single and bulk payouts. See the full [Transfers guide](/guides/transfers) for a step-by-step walkthrough.

**Before you call this endpoint:**

- Your server IP address must be whitelisted on the Payaza Dashboard under **Settings → Developers → IP Whitelisting** (live environment only).
- Your transaction PIN must be set up on the dashboard under **Settings → Profile → Security**.
- The `account_reference` is retrieved from the [View Payaza Account Details](/api-reference/payaza-account/view-payaza-account-details) endpoint.
- Bank codes for each supported country are available <a href="https://docs.google.com/spreadsheets/d/1ZvJBIIHMlqIy0pRYDHL-4PYFpHWXgIYV3lZFSgseV7o/edit#gid=790657640" target="_blank">here</a> 
- Cross-border payouts outside Nigeria are not enabled by default — email [support@payaza.africa](mailto:support@payaza.africa) to activate this on your account.

## Request body

- union
  - InitiateATransferRequest
    - `transaction_type` string, required — The type of account being transferred to.(Default is NGN). NGN == “nuban”, GHS == “mobile_money” or “ghipps”, UGX == “mobile_money” , TZS == “mobile_money” or “tiss”, KES == “mobile_money” or “kepss”, XOF == “mobile_money” or “wave”, XAF == “mobile_money”, LRD == “mobile_money”, ZAR == “RTC”
    - `service_payload` object, required — It contains the details of the service payload.
      - `payout_amount` number, double, required — The amount of the transaction.
      - `transaction_pin` integer, required — This is the 6 digit transaction PIN that would be created on the dashboard. This is required to authorise the transfer
      - `account_reference` string, required — The reference of the Payaza account. Please be advised that your Payaza Account possesses unique account references corresponding to each currency utilized.(This is available in the **“View Payaza Account Details”** API response body).
      - `currency` string, required — The transfer currency code.e.g. NGN, GHS, TZS, UGX, KES, XAF, LRD, ZAR.
      - `country` string — The ISO 3166-1 alpha-3 country code e.g. BEN,CIV,CMR. This is required for XOF payouts
      - `payout_beneficiaries` object[], required — It contains the details of the payout beneficiaries
        - `credit_amount` number, double, required — The amount to be credited to this particular beneficiary.
        - `account_number` string, required — This is the account number of the beneficiary. For “nuban” transfer == 10 digits For “kepss” transfer == 10 digits For “mobile_money” == 12 digits for GHA, TZA, UGA, KEN, CMR and 13 digits for CIV, BEN (starting with the 3-digit country code) e,g.Ghana = 233xxxxxxxxx, Kenya = 254xxxxxxxxx, Uganda = 256xxxxxxxxx, Tanzania = 255xxxxxxxxx, Cameroon = 237xxxxxxxxx, Benin = 229(01)xxxxxxxx, Côte d'Ivoire = 225xxxxxxxxxx, Liberia = 231xxxxxxxxx etc..
        - `account_name` string, required — This is the name of the beneficiary for the transfer.
        - `bank_code` string, required — This is the beneficiary's bank code.
        - `narration` string, required — Narration for the payout (This must be 25 characters or less with no special characters).
        - `transaction_reference` string, required — This is the unique identifier generated for each transaction by the merchant. <b>This must have a minimum length of 10 characters</b>
        - `sender` object, required — It contains the details of the sender.
          - `sender_name` string, required — Name of the sender.
          - `sender_id` string — Unique ID of sender.
          - `sender_phone_number` string, required — Phone number of the sender.
          - `sender_address` string, required — Address of the sender.
          - `dial_code` string — The country code for Cameroon. This is required for XAF Payouts.
  - InitiateAEurTransferRequest
    - `transaction_type` string, required — The type of account being transferred to. **EUR** == “sepa”.
    - `service_payload` object, required — It contains the details of the service payload.
      - `payout_amount` number, required — The amount of the transaction.
      - `transaction_pin` integer, required — This is the merchant's unique transaction pin.
      - `account_reference` string, required — The reference of the Payaza account. Please be advised that your Payaza Account possesses unique account references corresponding to each currency utilized.(This is available in the **“View Payaza Account Details”** API response body).
      - `country` string — The country code..
      - `currency` string, required — The currency code.
      - `payout_beneficiaries` object[], required — It contains the details of the payout beneficiaries.
        - `destination_country` string, required — The beneficiary's country code.
        - `bank_name` string, required — The name of the beneficiary's bank.
        - `credit_amount` number, required — The amount to be credited to this particular beneficiary.
        - `account_number` string, required — This is the account number of the beneficiary.
        - `account_name` string, required — This is the name of the beneficiary for the transfer.
        - `bank_code` string, required — This is the beneficiary's bank code. It would be in the format of a SWIFT/BIC number. It would be in the format AAAABBCC123 i.e. AAAA = **4 Letters representing the bank**, BB = **2 Letters representing the country code the bank is in**, CC= **2 characters showing the location code**, 123= **3 Digits specifying a particular branch, 'XXX' represents the Bank's Head Office**.
        - `narration` string, required — Narration for the payout (This must be 25 characters or less with no special characters).
        - `transaction_reference` string, required — This is the unique identifier generated for each transaction by the merchant. This must have a minimum length of 10 characters
        - `sender` object, required — Details of the sender.
          - `sender_name` string, required — The name of the sender
          - `sender_id` string — The unique identifier of the sender
          - `sender_phone_number` string, required — The phone number of the sender
          - `sender_address` string, required — The sender's address

## Response `200`

Transfer initiated successfully

- union
  - InitiateATransferResponse
    - `response_code` integer
    - `response_message` string
    - `response_content` object
      - `transaction_status` string
      - `amount` number
      - `response_status` string
  - InitiateBulkTransferResponse
    - `response_code` integer
    - `response_content` object
      - `message` string
      - `batch_reference` string
      - `response_code` string

## Other responses

- `400` — Invalid request

---

[API](https://skmtc.net/payaza/apis/payaza-documentation.md) · [All operations](https://skmtc.net/payaza/apis/payaza-documentation/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/payaza/payaza-documentation/revisions/1ecd4b94ff07/schema)
