Funding, Transfers & Withdrawals
Every endpoint on this page requires a verified NIN — see Identity Verification. Calling any of them before verification returns a 403 with code: "NIN_VERIFICATION_REQUIRED".
Funding the wallet
There's no "push money in" API call — funding happens by bank transfer to the wallet's dedicated virtual account. POST /wallet/fund just returns the account details to display for a given amount; the balance updates automatically once the transfer is confirmed server-to-server (typically within a few minutes).
/wallet/fund
Requires Auth
curl https://app.slimpay.ng/api/v1/wallet/fund \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{ "amount": 5000 }'
/wallet/fund
{
"status": true,
"message": "Transfer to the account below to fund your wallet.",
"data": {
"amount": 5000,
"account": { "bank": "Wema Bank", "number": "8123456789", "name": "SLIMPAY-OBINNA JOHN" },
"note": "Payment reflects within 5 minutes."
}
}
Transfer to another Slimpay user
/wallet/transfer
Requires Auth
Free, instant, wallet-to-wallet. The recipient is looked up by email or phone.
curl https://app.slimpay.ng/api/v1/wallet/transfer \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"recipient": "jane@example.com",
"amount": 5000,
"note": "For lunch",
"transaction_pin": "1234"
}'
/wallet/transfer
Withdraw to a bank account
/wallet/withdraw
Requires Auth
Withdraws to any Nigerian bank for a flat ₦25 fee. The account name is re-verified server-side against the bank before anything moves — always call /wallet/verify-account first and show the confirmed name to the user before they submit.
curl https://app.slimpay.ng/api/v1/wallet/withdraw \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"amount": 5000,
"bank_code": "058",
"account_number": "0123456789",
"account_name": "Obinna John",
"transaction_pin": "1234"
}'
/wallet/withdraw
{
"status": true,
"message": "Withdrawal to OBINNA JOHN SAMUEL — 0123456789 initiated successfully.",
"data": {
"amount": 5000,
"fee": 25,
"total": 5025,
"destination": "OBINNA JOHN SAMUEL — 0123456789 (Guaranty Trust Bank (GTB))",
"new_balance": "975.00"
}
}
The wallet is debited before dispatch, then reversed automatically if the bank transfer itself fails on the receiving end — you'll get a 422 and the balance will already reflect the reversal. You never need to reconcile this manually.
Look up a recipient before sending
/users/lookup
Requires Auth
curl "https://app.slimpay.ng/api/v1/users/lookup?q=jane@example.com" \
-H "Authorization: Bearer {token}"
/users/lookup
docs