curl --request PATCH \
--url https://sandbox.cashfree.com/pg/vba/{virtual_account_id} \
--header 'Content-Type: application/json' \
--header 'x-api-version: <x-api-version>' \
--header 'x-client-id: <x-client-id>' \
--header 'x-client-secret: <x-client-secret>' \
--data '{}'import requests
url = "https://sandbox.cashfree.com/pg/vba/{virtual_account_id}"
payload = {}
headers = {
"x-client-id": "<x-client-id>",
"x-client-secret": "<x-client-secret>",
"x-api-version": "<x-api-version>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-client-id': '<x-client-id>',
'x-client-secret': '<x-client-secret>',
'x-api-version': '<x-api-version>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://sandbox.cashfree.com/pg/vba/{virtual_account_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://sandbox.cashfree.com/pg/vba/{virtual_account_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-version: <x-api-version>",
"x-client-id: <x-client-id>",
"x-client-secret: <x-client-secret>"
],
]);
$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://sandbox.cashfree.com/pg/vba/{virtual_account_id}"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-client-id", "<x-client-id>")
req.Header.Add("x-client-secret", "<x-client-secret>")
req.Header.Add("x-api-version", "<x-api-version>")
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.patch("https://sandbox.cashfree.com/pg/vba/{virtual_account_id}")
.header("x-client-id", "<x-client-id>")
.header("x-client-secret", "<x-client-secret>")
.header("x-api-version", "<x-api-version>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/pg/vba/{virtual_account_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-client-id"] = '<x-client-id>'
request["x-client-secret"] = '<x-client-secret>'
request["x-api-version"] = '<x-api-version>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"virtual_bank_accounts": [
{
"vba_bank_code": "UTIB",
"vba_account_number": 94351020001772,
"vba_ifsc": "UTIB0CCH274",
"vba_status": "ACTIVE",
"vba_created_on": "2019-08-24T14:15:22Z",
"vba_last_updated_on": "2019-08-24T14:15:22Z",
"virtual_account_details": {
"virtual_account_id": "User01",
"virtual_account_name": "John Doe",
"virtual_account_email": "user@cashfree.com",
"virtual_account_phone": 9876543210
},
"kyc_details": {
"gst": "29AAICP2912R1ZR",
"pan": "ABCPV1234D",
"aadhar": "655675523712"
},
"remitter_lock_details": {
"allowed_remitters": [
{
"account_number": "026291800001191",
"ifsc": "YESB0000262"
}
]
},
"amount_lock_details": {
"min_amount": 1000,
"max_amount": 5000
},
"notification_group": "<string>"
}
]
}{
"message": "bad URL, please check API documentation",
"code": "request_failed",
"type": "invalid_request_error"
}{
"message": "authentication Failed",
"code": "request_failed",
"type": "authentication_error"
}{
"message": "something is not found",
"code": "somethind_not_found",
"type": "invalid_request_error"
}{
"message": "order with same id is already present",
"code": "order_already_exists",
"type": "invalid_request_error"
}{
"message": "something is not found",
"code": "request_invalid",
"type": "idempotency_error"
}{
"message": "Too many requests from IP. Check headers",
"code": "request_failed",
"type": "rate_limit_error"
}{
"message": "something is not found",
"code": "bank_processing_failure",
"type": "api_error"
}Manage VBA
Use this API to manage the status of the created virtual bank account.
curl --request PATCH \
--url https://sandbox.cashfree.com/pg/vba/{virtual_account_id} \
--header 'Content-Type: application/json' \
--header 'x-api-version: <x-api-version>' \
--header 'x-client-id: <x-client-id>' \
--header 'x-client-secret: <x-client-secret>' \
--data '{}'import requests
url = "https://sandbox.cashfree.com/pg/vba/{virtual_account_id}"
payload = {}
headers = {
"x-client-id": "<x-client-id>",
"x-client-secret": "<x-client-secret>",
"x-api-version": "<x-api-version>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {
'x-client-id': '<x-client-id>',
'x-client-secret': '<x-client-secret>',
'x-api-version': '<x-api-version>',
'Content-Type': 'application/json'
},
body: JSON.stringify({})
};
fetch('https://sandbox.cashfree.com/pg/vba/{virtual_account_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://sandbox.cashfree.com/pg/vba/{virtual_account_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-version: <x-api-version>",
"x-client-id: <x-client-id>",
"x-client-secret: <x-client-secret>"
],
]);
$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://sandbox.cashfree.com/pg/vba/{virtual_account_id}"
payload := strings.NewReader("{}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("x-client-id", "<x-client-id>")
req.Header.Add("x-client-secret", "<x-client-secret>")
req.Header.Add("x-api-version", "<x-api-version>")
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.patch("https://sandbox.cashfree.com/pg/vba/{virtual_account_id}")
.header("x-client-id", "<x-client-id>")
.header("x-client-secret", "<x-client-secret>")
.header("x-api-version", "<x-api-version>")
.header("Content-Type", "application/json")
.body("{}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/pg/vba/{virtual_account_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["x-client-id"] = '<x-client-id>'
request["x-client-secret"] = '<x-client-secret>'
request["x-api-version"] = '<x-api-version>'
request["Content-Type"] = 'application/json'
request.body = "{}"
response = http.request(request)
puts response.read_body{
"virtual_bank_accounts": [
{
"vba_bank_code": "UTIB",
"vba_account_number": 94351020001772,
"vba_ifsc": "UTIB0CCH274",
"vba_status": "ACTIVE",
"vba_created_on": "2019-08-24T14:15:22Z",
"vba_last_updated_on": "2019-08-24T14:15:22Z",
"virtual_account_details": {
"virtual_account_id": "User01",
"virtual_account_name": "John Doe",
"virtual_account_email": "user@cashfree.com",
"virtual_account_phone": 9876543210
},
"kyc_details": {
"gst": "29AAICP2912R1ZR",
"pan": "ABCPV1234D",
"aadhar": "655675523712"
},
"remitter_lock_details": {
"allowed_remitters": [
{
"account_number": "026291800001191",
"ifsc": "YESB0000262"
}
]
},
"amount_lock_details": {
"min_amount": 1000,
"max_amount": 5000
},
"notification_group": "<string>"
}
]
}{
"message": "bad URL, please check API documentation",
"code": "request_failed",
"type": "invalid_request_error"
}{
"message": "authentication Failed",
"code": "request_failed",
"type": "authentication_error"
}{
"message": "something is not found",
"code": "somethind_not_found",
"type": "invalid_request_error"
}{
"message": "order with same id is already present",
"code": "order_already_exists",
"type": "invalid_request_error"
}{
"message": "something is not found",
"code": "request_invalid",
"type": "idempotency_error"
}{
"message": "Too many requests from IP. Check headers",
"code": "request_failed",
"type": "rate_limit_error"
}{
"message": "something is not found",
"code": "bank_processing_failure",
"type": "api_error"
}Headers
client id generated from the merchant dashboard
client secret generated from the merchant dashboard
API version to be used. The accepted format is YYYY-MM-DD.
2024-07-10T00:00:00.000Z Request id for the API call. Can be used to resolve tech issues. Communicate this in your tech related queries to Cashfree Payments.
"4dfb9780-46fe-11ee-be56-0242ac120002"
Path Parameters
It is the unique ID you created to identify the virtual bank account.
"User01"
Body
PG VBA Manage Request
It is the respective code used to create a virtual bank account in the corresponding bank. UTIB - Axis Bank ICIC - ICICI Bank YESB - Yes Bank Each bank code corresponds to a specific bank name.
YESB, ICIC, UTIB It is the status to which you want to modify the virtual bank account.
ACTIVE, INACTIVE Response
Success Response.
It contains the details of the virtual bank account.
Show child attributes
Show child attributes
