Bulk Transfers

Pay multiple recipients at once with Paystack bulk transfer feature

The bulk transfers endpoint takes an array of objects containing transferrecipients and amount and queues them for processing.

Show Response
1curl https://api.paystack.co/transfer/bulk
2-H "Authorization: Bearer YOUR_SECRET_KEY"
3-H "Content-Type: application/json"
4-d '{ currency: "NGN", source: "balance", transfers: [{
5 "amount": 20000,
6 "reason": "Life go better for you",
7 "recipient": "RCP_t0ya41mp35flk40"
8 },
9 {
10 "amount": 20000,
11 "reason": "Easy does it",
12 "recipient": "RCP_z7e30qo1xxo98ub"
13 }]
14}'
15-X POST
1{
2 "status": true,
3 "message": "2 transfers queued.",
4 "data": [
5 {
6 "recipient": "RCP_t0ya41mp35flk40",
7 "amount": 20000,
8 "transfer_code": "TRF_p2q7q9r2mmjawb3",
9 "currency": "NGN"
10 },
11 {
12 "recipient": "RCP_z7e30qo1xxo98ub",
13 "amount": 20000,
14 "transfer_code": "TRF_8khq7hdizqxw1zt",
15 "currency": "NGN"
16 }
17 ]
18}

Once these transfers have been queued, the same rules apply as single transfers, the transfer status would be pending while the transfer is being processed. Test transfers always return success, because there is no processing involved. The live transfers processing usually take between a few seconds and a few minutes. When it's done processing, a notification is sent to your webhook URL.

If the transfer is successful, you will get a transfer.success notification. If the transfer failed, you will get a transfer.failed event. Learn more about  Paystack events and webhook here.

The response for a transfer also contains a unique transfer code to identify this transfer. You can use this code to call the Fetch TransferAPI endpoint to fetch status and details of the transfer anytime you want.