Initiate a Transfer
curl --request POST \
--url https://api.flutterwave.com/v3/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"account_bank": "044",
"account_number": "0690000040",
"amount": 500,
"narration": "Akhlm Pstmn Trnsfr xx007",
"currency": "NGN",
"reference": "akhlm-pstmnpyt-rfxx078_PMCKDU_1",
"callback_url": "https://www.flutterwave.com/ng/",
"debit_currency": "NGN"
}
'import requests
url = "https://api.flutterwave.com/v3/transfers"
payload = {
"account_bank": "044",
"account_number": "0690000040",
"amount": 500,
"narration": "Akhlm Pstmn Trnsfr xx007",
"currency": "NGN",
"reference": "akhlm-pstmnpyt-rfxx078_PMCKDU_1",
"callback_url": "https://www.flutterwave.com/ng/",
"debit_currency": "NGN"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_bank: '044',
account_number: '0690000040',
amount: 500,
narration: 'Akhlm Pstmn Trnsfr xx007',
currency: 'NGN',
reference: 'akhlm-pstmnpyt-rfxx078_PMCKDU_1',
callback_url: 'https://www.flutterwave.com/ng/',
debit_currency: 'NGN'
})
};
fetch('https://api.flutterwave.com/v3/transfers', 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://api.flutterwave.com/v3/transfers",
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([
'account_bank' => '044',
'account_number' => '0690000040',
'amount' => 500,
'narration' => 'Akhlm Pstmn Trnsfr xx007',
'currency' => 'NGN',
'reference' => 'akhlm-pstmnpyt-rfxx078_PMCKDU_1',
'callback_url' => 'https://www.flutterwave.com/ng/',
'debit_currency' => 'NGN'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.flutterwave.com/v3/transfers"
payload := strings.NewReader("{\n \"account_bank\": \"044\",\n \"account_number\": \"0690000040\",\n \"amount\": 500,\n \"narration\": \"Akhlm Pstmn Trnsfr xx007\",\n \"currency\": \"NGN\",\n \"reference\": \"akhlm-pstmnpyt-rfxx078_PMCKDU_1\",\n \"callback_url\": \"https://www.flutterwave.com/ng/\",\n \"debit_currency\": \"NGN\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.flutterwave.com/v3/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"account_bank\": \"044\",\n \"account_number\": \"0690000040\",\n \"amount\": 500,\n \"narration\": \"Akhlm Pstmn Trnsfr xx007\",\n \"currency\": \"NGN\",\n \"reference\": \"akhlm-pstmnpyt-rfxx078_PMCKDU_1\",\n \"callback_url\": \"https://www.flutterwave.com/ng/\",\n \"debit_currency\": \"NGN\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flutterwave.com/v3/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_bank\": \"044\",\n \"account_number\": \"0690000040\",\n \"amount\": 500,\n \"narration\": \"Akhlm Pstmn Trnsfr xx007\",\n \"currency\": \"NGN\",\n \"reference\": \"akhlm-pstmnpyt-rfxx078_PMCKDU_1\",\n \"callback_url\": \"https://www.flutterwave.com/ng/\",\n \"debit_currency\": \"NGN\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Transfer Queued Successfully",
"data": {
"id": 621922,
"account_number": "0690000040",
"bank_code": "044",
"full_name": "Alexis Sanchez",
"created_at": "2024-03-18T08:58:30.000Z",
"currency": "NGN",
"debit_currency": "NGN",
"amount": 500,
"fee": 10.75,
"status": "NEW",
"reference": "akhlm-pstmnpyt-rfxx078_PMCKDU_1",
"meta": null,
"narration": "Akhlm Pstmn Trnsfr xx007",
"complete_message": "",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "ACCESS BANK NIGERIA"
}
}{
"status": "error",
"message": "Transfer creation failed",
"data": {
"id": 621925,
"account_number": "0690000099",
"bank_code": "044",
"full_name": "N/A",
"created_at": "2024-03-18T09:02:14.000Z",
"currency": "NGN",
"debit_currency": "NGN",
"amount": 500,
"fee": 10.75,
"status": "FAILED",
"reference": "akhlm-pstmnpyt-rfxx678_PMCKDU_1",
"meta": null,
"narration": "Akhlm Pstmn Trnsfr xx007",
"complete_message": "Account resolve failed",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "N/A"
}
}Transfers
Create a transfer
Creates a direct transfer using only the recipient and sender IDs. Before calling this endpoint, make sure you have already created both the recipient and the sender via their respective endpoints and obtained their IDs.
POST
/
transfers
Initiate a Transfer
curl --request POST \
--url https://api.flutterwave.com/v3/transfers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"account_bank": "044",
"account_number": "0690000040",
"amount": 500,
"narration": "Akhlm Pstmn Trnsfr xx007",
"currency": "NGN",
"reference": "akhlm-pstmnpyt-rfxx078_PMCKDU_1",
"callback_url": "https://www.flutterwave.com/ng/",
"debit_currency": "NGN"
}
'import requests
url = "https://api.flutterwave.com/v3/transfers"
payload = {
"account_bank": "044",
"account_number": "0690000040",
"amount": 500,
"narration": "Akhlm Pstmn Trnsfr xx007",
"currency": "NGN",
"reference": "akhlm-pstmnpyt-rfxx078_PMCKDU_1",
"callback_url": "https://www.flutterwave.com/ng/",
"debit_currency": "NGN"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
account_bank: '044',
account_number: '0690000040',
amount: 500,
narration: 'Akhlm Pstmn Trnsfr xx007',
currency: 'NGN',
reference: 'akhlm-pstmnpyt-rfxx078_PMCKDU_1',
callback_url: 'https://www.flutterwave.com/ng/',
debit_currency: 'NGN'
})
};
fetch('https://api.flutterwave.com/v3/transfers', 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://api.flutterwave.com/v3/transfers",
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([
'account_bank' => '044',
'account_number' => '0690000040',
'amount' => 500,
'narration' => 'Akhlm Pstmn Trnsfr xx007',
'currency' => 'NGN',
'reference' => 'akhlm-pstmnpyt-rfxx078_PMCKDU_1',
'callback_url' => 'https://www.flutterwave.com/ng/',
'debit_currency' => 'NGN'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$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://api.flutterwave.com/v3/transfers"
payload := strings.NewReader("{\n \"account_bank\": \"044\",\n \"account_number\": \"0690000040\",\n \"amount\": 500,\n \"narration\": \"Akhlm Pstmn Trnsfr xx007\",\n \"currency\": \"NGN\",\n \"reference\": \"akhlm-pstmnpyt-rfxx078_PMCKDU_1\",\n \"callback_url\": \"https://www.flutterwave.com/ng/\",\n \"debit_currency\": \"NGN\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://api.flutterwave.com/v3/transfers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"account_bank\": \"044\",\n \"account_number\": \"0690000040\",\n \"amount\": 500,\n \"narration\": \"Akhlm Pstmn Trnsfr xx007\",\n \"currency\": \"NGN\",\n \"reference\": \"akhlm-pstmnpyt-rfxx078_PMCKDU_1\",\n \"callback_url\": \"https://www.flutterwave.com/ng/\",\n \"debit_currency\": \"NGN\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flutterwave.com/v3/transfers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"account_bank\": \"044\",\n \"account_number\": \"0690000040\",\n \"amount\": 500,\n \"narration\": \"Akhlm Pstmn Trnsfr xx007\",\n \"currency\": \"NGN\",\n \"reference\": \"akhlm-pstmnpyt-rfxx078_PMCKDU_1\",\n \"callback_url\": \"https://www.flutterwave.com/ng/\",\n \"debit_currency\": \"NGN\"\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "Transfer Queued Successfully",
"data": {
"id": 621922,
"account_number": "0690000040",
"bank_code": "044",
"full_name": "Alexis Sanchez",
"created_at": "2024-03-18T08:58:30.000Z",
"currency": "NGN",
"debit_currency": "NGN",
"amount": 500,
"fee": 10.75,
"status": "NEW",
"reference": "akhlm-pstmnpyt-rfxx078_PMCKDU_1",
"meta": null,
"narration": "Akhlm Pstmn Trnsfr xx007",
"complete_message": "",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "ACCESS BANK NIGERIA"
}
}{
"status": "error",
"message": "Transfer creation failed",
"data": {
"id": 621925,
"account_number": "0690000099",
"bank_code": "044",
"full_name": "N/A",
"created_at": "2024-03-18T09:02:14.000Z",
"currency": "NGN",
"debit_currency": "NGN",
"amount": 500,
"fee": 10.75,
"status": "FAILED",
"reference": "akhlm-pstmnpyt-rfxx678_PMCKDU_1",
"meta": null,
"narration": "Akhlm Pstmn Trnsfr xx007",
"complete_message": "Account resolve failed",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "N/A"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Response
OK
Show child attributes
Show child attributes
Example:
{
"id": 621922,
"account_number": "0690000040",
"bank_code": "044",
"full_name": "Alexis Sanchez",
"created_at": "2024-03-18T08:58:30.000Z",
"currency": "NGN",
"debit_currency": "NGN",
"amount": 500,
"fee": 10.75,
"status": "NEW",
"reference": "akhlm-pstmnpyt-rfxx078_PMCKDU_1",
"meta": null,
"narration": "Akhlm Pstmn Trnsfr xx007",
"complete_message": "",
"requires_approval": 0,
"is_approved": 1,
"bank_name": "ACCESS BANK NIGERIA"
}
Was this page helpful?
⌘I