curl --request PUT \
--url https://developersandbox-api.flutterwave.com/virtual-accounts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"action_type": "update_bvn",
"status": "inactive",
"bvn": "12345678912",
"meta": {}
}
'import requests
url = "https://developersandbox-api.flutterwave.com/virtual-accounts/{id}"
payload = {
"action_type": "update_bvn",
"status": "inactive",
"bvn": "12345678912",
"meta": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({action_type: 'update_bvn', status: 'inactive', bvn: '12345678912', meta: {}})
};
fetch('https://developersandbox-api.flutterwave.com/virtual-accounts/{id}', 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://developersandbox-api.flutterwave.com/virtual-accounts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'action_type' => 'update_bvn',
'status' => 'inactive',
'bvn' => '12345678912',
'meta' => [
]
]),
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://developersandbox-api.flutterwave.com/virtual-accounts/{id}"
payload := strings.NewReader("{\n \"action_type\": \"update_bvn\",\n \"status\": \"inactive\",\n \"bvn\": \"12345678912\",\n \"meta\": {}\n}")
req, _ := http.NewRequest("PUT", 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.put("https://developersandbox-api.flutterwave.com/virtual-accounts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"action_type\": \"update_bvn\",\n \"status\": \"inactive\",\n \"bvn\": \"12345678912\",\n \"meta\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developersandbox-api.flutterwave.com/virtual-accounts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"action_type\": \"update_bvn\",\n \"status\": \"inactive\",\n \"bvn\": \"12345678912\",\n \"meta\": {}\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": {
"id": "",
"amount": 1000,
"account_number": "7824822527",
"reference": "htuy68787hvhyff454",
"account_bank_name": "WEMA BANK",
"account_type": "static",
"account_expiration_datetime": "2025-12-03T13:54:21.546559974Z",
"note": "Please make a bank transfer to James Burgers",
"customer_id": "cus_J0PvwvJB2n",
"created_datetime": "2024-12-03T13:54:21.546559974Z",
"meta": {},
"customer_reference": "AEGP2345",
"currency": "NGN"
}
}{
"status": "failed",
"error": {
"type": "REQUEST_NOT_VALID",
"code": "10400",
"message": "Request is not valid",
"validation_errors": [
{
"field_name": "amount",
"message": "must not be null"
}
]
}
}{
"status": "failed",
"message": "UNAUTHORIZED",
"error": {
"type": "UNAUTHORIZED",
"code": "10401",
"message": "unauthorized"
}
}{
"status": "failed",
"message": "<string>",
"error": {
"type": "FORBIDDEN",
"code": "10403",
"message": "Forbidden"
}
}Update a virtual account
Update a virtual account
curl --request PUT \
--url https://developersandbox-api.flutterwave.com/virtual-accounts/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"action_type": "update_bvn",
"status": "inactive",
"bvn": "12345678912",
"meta": {}
}
'import requests
url = "https://developersandbox-api.flutterwave.com/virtual-accounts/{id}"
payload = {
"action_type": "update_bvn",
"status": "inactive",
"bvn": "12345678912",
"meta": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({action_type: 'update_bvn', status: 'inactive', bvn: '12345678912', meta: {}})
};
fetch('https://developersandbox-api.flutterwave.com/virtual-accounts/{id}', 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://developersandbox-api.flutterwave.com/virtual-accounts/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'action_type' => 'update_bvn',
'status' => 'inactive',
'bvn' => '12345678912',
'meta' => [
]
]),
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://developersandbox-api.flutterwave.com/virtual-accounts/{id}"
payload := strings.NewReader("{\n \"action_type\": \"update_bvn\",\n \"status\": \"inactive\",\n \"bvn\": \"12345678912\",\n \"meta\": {}\n}")
req, _ := http.NewRequest("PUT", 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.put("https://developersandbox-api.flutterwave.com/virtual-accounts/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"action_type\": \"update_bvn\",\n \"status\": \"inactive\",\n \"bvn\": \"12345678912\",\n \"meta\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://developersandbox-api.flutterwave.com/virtual-accounts/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"action_type\": \"update_bvn\",\n \"status\": \"inactive\",\n \"bvn\": \"12345678912\",\n \"meta\": {}\n}"
response = http.request(request)
puts response.read_body{
"message": "<string>",
"data": {
"id": "",
"amount": 1000,
"account_number": "7824822527",
"reference": "htuy68787hvhyff454",
"account_bank_name": "WEMA BANK",
"account_type": "static",
"account_expiration_datetime": "2025-12-03T13:54:21.546559974Z",
"note": "Please make a bank transfer to James Burgers",
"customer_id": "cus_J0PvwvJB2n",
"created_datetime": "2024-12-03T13:54:21.546559974Z",
"meta": {},
"customer_reference": "AEGP2345",
"currency": "NGN"
}
}{
"status": "failed",
"error": {
"type": "REQUEST_NOT_VALID",
"code": "10400",
"message": "Request is not valid",
"validation_errors": [
{
"field_name": "amount",
"message": "must not be null"
}
]
}
}{
"status": "failed",
"message": "UNAUTHORIZED",
"error": {
"type": "UNAUTHORIZED",
"code": "10401",
"message": "unauthorized"
}
}{
"status": "failed",
"message": "<string>",
"error": {
"type": "FORBIDDEN",
"code": "10403",
"message": "Forbidden"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
A unique identifier to track this operation. It must be between 12 and 255 characters in length.
12 - 255An optional scenario key that can be used to simulate specific behaviors or test different scenarios within the API. Providing this header allows you to trigger predefined responses or alter data based on the key's value, which can be useful for testing, development, or demonstrating specific functionalities. The key should be a string of 1 to 1000 characters.
Path Parameters
ID of the virtual account.
"va_EFAHCzELJb"
Body
The supported virtual account update actions.
update_bvn, update_status "update_bvn"
The status of the virtual account.
inactive "inactive"
This is the customer's Bank Verification Number.
^[1-9][0-9]{10}$"12345678912"
Show child attributes
Show child attributes
Was this page helpful?