Transfers Control

The Transfers Control API allows you manage settings of your transfers.

Check Balance

Fetch the available balance on your integration

Headers
authorization
String
Set value to Bearer SECRET_KEY
GET/balance
cURL
1#!/bin/sh
2url="https://api.paystack.co/balance"
3authorization="Authorization: Bearer YOUR_SECRET_KEY"
4
5curl "$url" -H "$authorization" -X GET
Sample Response
200 Ok
1{
2 "status": true,
3 "message": "Balances retrieved",
4 "data": [
5 {
6 "currency": "NGN",
7 "balance": 1700000
8 }
9 ]
10}

Fetch Balance Ledger

Fetch all pay-ins and pay-outs that occured on your integration

Headers
authorization
String
Set value to Bearer SECRET_KEY
GET/balance/ledger
cURL
1#!/bin/sh
2url="https://api.paystack.co/balance/ledger"
3authorization="Authorization: Bearer YOUR_SECRET_KEY"
4
5curl "$url" -H "$authorization" -X GET
Sample Response
200 Ok
1{
2 "status": true,
3 "message": "Balance ledger retrieved",
4 "data": [
5 {
6 "integration": 463433,
7 "domain": "test",
8 "balance": 2078224968,
9 "currency": "NGN",
10 "difference": -50000,
11 "reason": "Who dey breet?",
12 "model_responsible": "Transfer",
13 "model_row": 56610600,
14 "id": 149411613,
15 "createdAt": "2021-04-08T09:39:49.000Z",
16 "updatedAt": "2021-04-08T09:39:49.000Z"
17 },
18 {
19 "integration": 463433,
20 "domain": "test",
21 "balance": 2078274968,
22 "currency": "NGN",
23 "difference": 10000,
24 "reason": "",
25 "model_responsible": "Transaction",
26 "model_row": 1073891448,
27 "id": 149314482,
28 "createdAt": "2021-04-08T00:00:11.000Z",
29 "updatedAt": "2021-04-08T00:00:11.000Z"
30 },
31 {
32 "integration": 463433,
33 "domain": "test",
34 "balance": 2078264968,
35 "currency": "NGN",
36 "difference": 500000,
37 "reason": "",
38 "model_responsible": "Transaction",
39 "model_row": 1073278150,
40 "id": 149178966,
41 "createdAt": "2021-04-07T15:26:36.000Z",
42 "updatedAt": "2021-04-07T15:26:36.000Z"
43 },
44 {
45 "integration": 463433,
46 "domain": "test",
47 "balance": 2077764968,
48 "currency": "NGN",
49 "difference": 230845,
50 "reason": "",
51 "model_responsible": "Transaction",
52 "model_row": 1073230164,
53 "id": 149164577,
54 "createdAt": "2021-04-07T14:56:02.000Z",
55 "updatedAt": "2021-04-07T14:56:02.000Z"
56 },
57 {
58 "integration": 463433,
59 "domain": "test",
60 "balance": 2077534123,
61 "currency": "NGN",
62 "difference": -210000,
63 "reason": "",
64 "model_responsible": "Refund",
65 "model_row": 1600361,
66 "id": 149089424,
67 "createdAt": "2021-04-07T12:19:22.000Z",
68 "updatedAt": "2021-04-07T12:19:22.000Z"
69 }
70 ],
71 "meta": {
72 "total": 36944,
73 "skipped": 0,
74 "perPage": 50,
75 "page": 1,
76 "pageCount": 739
77 }
78}

Resend OTP

Generates a new OTP and sends to customer in the event they are having trouble receiving one.

Headers
authorization
String
Set value to Bearer SECRET_KEY
content-type
String
Set value to application/json
Body Parameters
transfer_code
String
Transfer code
reason
String
Either resend_otp or transfer
POST/transfer/resend_otp
cURL
1#!/bin/sh
2url="https://api.paystack.co/transfer/resend_otp"
3authorization="Authorization: Bearer YOUR_SECRET_KEY"
4content_type="Content-Type: application/json"
5data='{
6 "transfer_code": "TRF_vsyqdmlzble3uii",
7 "reason": "resend_otp"
8}'
9
10curl "$url" -H "$authorization" -H "$content_type" -d "$data" -X POST
Sample Response
200 Ok
1{
2 "status": true,
3 "message": "OTP has been resent"
4}

Disable OTP

This is used in the event that you want to be able to complete transfers programmatically without use of OTPs. No arguments required. You will get an OTP to complete the request.

Headers
authorization
String
Set value to Bearer SECRET_KEY
POST/transfer/disable_otp
cURL
1#!/bin/sh
2url="https://api.paystack.co/transfer/disable_otp"
3authorization="Authorization: Bearer YOUR_SECRET_KEY"
4content_type="Content-Type: application/json"
5
6curl "$url" -H "$authorization" -H "$content_type" -X POST
Sample Response
200 Ok
1{
2 "status": true,
3 "message": "OTP has been sent to mobile number ending with 4321"
4}

Finalize Disable OTP

Finalize the request to disable OTP on your transfers.

Headers
authorization
String
Set value to Bearer SECRET_KEY
content-type
String
Set value to application/json
Body Parameters
otp
String
OTP sent to business phone to verify disabling OTP requirement
POST/transfer/disable_otp_finalize
cURL
1#!/bin/sh
2url="https://api.paystack.co/transfer/disable_otp_finalize"
3authorization="Authorization: Bearer YOUR_SECRET_KEY"
4content_type="Content-Type: application/json"
5data='{ "otp": "928783" }'
6
7curl "$url" -H "$authorization" -H "$content_type" -d "$data" -X POST
Sample Response
200 Ok
1{
2 "status": true,
3 "message": "OTP requirement for transfers has been disabled"
4}

Enable OTP

In the event that a customer wants to stop being able to complete transfers programmatically, this endpoint helps turn OTP requirement back on. No arguments required.

Headers
authorization
String
Set value to Bearer SECRET_KEY
POST/transfer/enable_otp
cURL
1#!/bin/sh
2url="https://api.paystack.co/transfer/enable_otp"
3authorization="Authorization: Bearer YOUR_SECRET_KEY"
4content_type="Content-Type: application/json"
5
6curl "$url" -H "$authorization" -H "$content_type" -X POST
Sample Response
200 Ok
1{
2 "status": true,
3 "message": "OTP requirement for transfers has been enabled"
4}