Skip to main content
The Transfer API allows you to send money from your Paystack balance to bank accounts. This guide covers how to initiate and manage transfers.

Overview

Transfers enable you to send funds to your customers, vendors, or employees. The process involves:
  1. Creating transfer recipients
  2. Initiating transfers to recipients
  3. Finalizing transfers with OTP (when required)
  4. Tracking transfer status
Transfers require sufficient balance in your Paystack account. Ensure your account is funded before initiating transfers.

Prerequisites

Before sending transfers, you need:
  • A funded Paystack balance
  • Transfer recipients created (see Transfer Recipients API)
  • OTP enabled (for first-time transfers)

Initiate a Transfer

Send money to a transfer recipient.
1

Import and initialize

2

Initiate the transfer

3

Handle OTP (if required)

Transfer Parameters

string
default:"balance"
required
Source of funds (currently only balance is supported)
number
required
Amount to transfer in kobo (minimum: 1000 kobo = ₦10)
string
required
Transfer recipient code (starts with RCP_)
string
Description of the transfer
string
required
Unique transfer reference
string
default:"NGN"
Currency code: NGN, USD, GHS, ZAR, KES, or XOF

Finalize Transfer with OTP

Complete a transfer that requires OTP verification.
OTP is typically required for the first transfer or when transferring to new recipients. After successful verification, subsequent transfers may not require OTP.

Bulk Transfers

Initiate multiple transfers in a single request.
Bulk transfers are processed asynchronously. Monitor transfer status using webhooks or by polling the transfer endpoints.

List Transfers

Retrieve a paginated list of transfers.

List Parameters

number
default:"50"
Number of transfers per page
number
default:"1"
Page number to retrieve
string
Filter by status: pending, success, failed, reversed
string
Start date (ISO 8601 format)
string
End date (ISO 8601 format)

Get Single Transfer

Fetch details of a specific transfer.

Verify Transfer

Confirm the status of a transfer by reference.

Transfer Status

Transfers can have the following statuses:
  • pending - Transfer is being processed
  • success - Transfer completed successfully
  • failed - Transfer failed (check failures field for reason)
  • reversed - Transfer was reversed (funds returned to your balance)
  • processing - Transfer is in progress

Error Handling

Handle common transfer errors:

Best Practices

  1. Validate recipient codes before initiating transfers
  2. Use unique references for each transfer
  3. Monitor your balance before bulk transfers
  4. Handle OTP gracefully in your user interface
  5. Store transfer records in your database
  6. Implement webhooks to track transfer status in real-time
  7. Test with small amounts before going live
  8. Set up notifications for failed transfers

Common Scenarios

Payout to Vendor

Salary Payments

Refund Processing

Webhook Integration

Listen for transfer events in real-time: