Skip to main content
POST
/
api
/
v3
/
withdraw
/
v2
/
bank
BANK WITHDRAWAL
curl --request POST \
  --url https://sandbox-api.kotanipay.com/api/v3/withdraw/v2/bank \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "bankDetails": {
    "name": "George Smith",
    "address": "Unit 163 Richmond Street, 25 Allan Road, Oakdene, 4250",
    "phoneNumber": "712345678",
    "bankCode": "2500",
    "accountNumber": "63122514698",
    "country": "ZA"
  },
  "currency": "ZAR",
  "amount": 100,
  "referenceId": "1234567890",
  "callbackUrl": "https://your-domain.com/webhook"
}
'
{
  "success": true,
  "message": "Withdrawal has been successfully created.",
  "data": {
    "id": "<string>",
    "message": "<string>",
    "referenceId": "<string>",
    "referenceNumber": 123
  }
}
This API handles payout to bank, currently only supports SA Banks.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
bankDetails
object
required
currency
enum<string>
required

The currency of the transaction

Available options:
KES,
GHS,
NGN,
ZAR,
ZAR,
USD,
XOF,
ZMW,
XAF,
SLE,
CDF,
TZS,
UGX,
EGP,
MWK,
RWF,
ETB,
MZN,
LSL,
GNF,
USDT,
BTC,
ETH,
USDC
Example:

"ZAR"

amount
number
required

The amount of the transaction

Example:

100

referenceId
string
required

The reference id of the transaction

Example:

"1234567890"

callbackUrl
string

Callback URL to receive withdrawal status updates

Example:

"https://your-domain.com/webhook"

Response

success
boolean
Example:

true

message
string
Example:

"Withdrawal has been successfully created."

data
object