Transfer Funds
curl --request POST \
--url https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"destination_account_number": "<string>",
"destination_bank_code": "<string>",
"destination_account_name": "<string>",
"amount": 123,
"narration": "<string>"
}
'import requests
url = "https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer"
payload = {
"destination_account_number": "<string>",
"destination_bank_code": "<string>",
"destination_account_name": "<string>",
"amount": 123,
"narration": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
destination_account_number: '<string>',
destination_bank_code: '<string>',
destination_account_name: '<string>',
amount: 123,
narration: '<string>'
})
};
fetch('https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'destination_account_number' => '<string>',
'destination_bank_code' => '<string>',
'destination_account_name' => '<string>',
'amount' => 123,
'narration' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer"
payload := strings.NewReader("{\n \"destination_account_number\": \"<string>\",\n \"destination_bank_code\": \"<string>\",\n \"destination_account_name\": \"<string>\",\n \"amount\": 123,\n \"narration\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"destination_account_number\": \"<string>\",\n \"destination_bank_code\": \"<string>\",\n \"destination_account_name\": \"<string>\",\n \"amount\": 123,\n \"narration\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destination_account_number\": \"<string>\",\n \"destination_bank_code\": \"<string>\",\n \"destination_account_name\": \"<string>\",\n \"amount\": 123,\n \"narration\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"status": "SUCCESS",
"transaction_id": "t9c3e8e2-b1c4-48e0-a75d-35e982d6b2c2",
"nomba_reference": "INT-ABC123DEF456",
"new_balance": 15000000,
"currency": "NGN"
}
}
Wallets
Transfer Funds
Transfer funds from a wallet to another Avenue wallet or an external bank account.
POST
/
v1
/
wallets
/
:wallet_id
/
transfer
Transfer Funds
curl --request POST \
--url https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"destination_account_number": "<string>",
"destination_bank_code": "<string>",
"destination_account_name": "<string>",
"amount": 123,
"narration": "<string>"
}
'import requests
url = "https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer"
payload = {
"destination_account_number": "<string>",
"destination_bank_code": "<string>",
"destination_account_name": "<string>",
"amount": 123,
"narration": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
destination_account_number: '<string>',
destination_bank_code: '<string>',
destination_account_name: '<string>',
amount: 123,
narration: '<string>'
})
};
fetch('https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'destination_account_number' => '<string>',
'destination_bank_code' => '<string>',
'destination_account_name' => '<string>',
'amount' => 123,
'narration' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer"
payload := strings.NewReader("{\n \"destination_account_number\": \"<string>\",\n \"destination_bank_code\": \"<string>\",\n \"destination_account_name\": \"<string>\",\n \"amount\": 123,\n \"narration\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"destination_account_number\": \"<string>\",\n \"destination_bank_code\": \"<string>\",\n \"destination_account_name\": \"<string>\",\n \"amount\": 123,\n \"narration\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://johnajayi-avenue.hf.space/v1/wallets/:wallet_id/transfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destination_account_number\": \"<string>\",\n \"destination_bank_code\": \"<string>\",\n \"destination_account_name\": \"<string>\",\n \"amount\": 123,\n \"narration\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"status": "SUCCESS",
"transaction_id": "t9c3e8e2-b1c4-48e0-a75d-35e982d6b2c2",
"nomba_reference": "INT-ABC123DEF456",
"new_balance": 15000000,
"currency": "NGN"
}
}
Request Headers
string
required
Your live or test API key.
Path Parameters
string
required
The Avenue wallet ID you are sending funds from.
Request Body
string
required
The destination NUBAN or virtual account number.
string
The CBN bank code of the destination (e.g.
058 for GTB). Optional if transferring internally to another Avenue wallet.string
The name of the destination account.
integer
required
The amount to transfer in kobo (e.g.
5000000 for ₦50,000).string
default:"Wallet Transfer"
Description of the transfer.
Internal vs External Transfers
Avenue automatically detects if thedestination_account_number belongs to another wallet managed by your developer account.
- Internal Transfers: Settled instantly via the internal double-entry ledger. No fees.
- External Transfers: Routed out via Nomba to the destination bank.
Response
All amounts and balances in this endpoint are represented in kobo (e.g.,
500000 = ₦5,000.00). Ensure you do not send or expect Naira values.{
"success": true,
"data": {
"status": "SUCCESS",
"transaction_id": "t9c3e8e2-b1c4-48e0-a75d-35e982d6b2c2",
"nomba_reference": "INT-ABC123DEF456",
"new_balance": 15000000,
"currency": "NGN"
}
}
Was this page helpful?