Direct Transfer V1.2
curl --request POST \
--url https://payout-api.cashfree.com/payout/v1.2/directTransfer \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"amount": 123,
"transferId": "<string>",
"transferMode": "<string>",
"beneDetails": {
"name": "<string>",
"phone": "<string>",
"email": "<string>",
"address1": "<string>",
"bankAccount": "<string>",
"ifsc": "<string>",
"vpa": "<string>"
},
"paymentInstrumentId": "<string>"
}
'import requests
url = "https://payout-api.cashfree.com/payout/v1.2/directTransfer"
payload = {
"amount": 123,
"transferId": "<string>",
"transferMode": "<string>",
"beneDetails": {
"name": "<string>",
"phone": "<string>",
"email": "<string>",
"address1": "<string>",
"bankAccount": "<string>",
"ifsc": "<string>",
"vpa": "<string>"
},
"paymentInstrumentId": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'},
body: JSON.stringify({
amount: 123,
transferId: '<string>',
transferMode: '<string>',
beneDetails: {
name: '<string>',
phone: '<string>',
email: '<string>',
address1: '<string>',
bankAccount: '<string>',
ifsc: '<string>',
vpa: '<string>'
},
paymentInstrumentId: '<string>'
})
};
fetch('https://payout-api.cashfree.com/payout/v1.2/directTransfer', 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://payout-api.cashfree.com/payout/v1.2/directTransfer",
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([
'amount' => 123,
'transferId' => '<string>',
'transferMode' => '<string>',
'beneDetails' => [
'name' => '<string>',
'phone' => '<string>',
'email' => '<string>',
'address1' => '<string>',
'bankAccount' => '<string>',
'ifsc' => '<string>',
'vpa' => '<string>'
],
'paymentInstrumentId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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://payout-api.cashfree.com/payout/v1.2/directTransfer"
payload := strings.NewReader("{\n \"amount\": 123,\n \"transferId\": \"<string>\",\n \"transferMode\": \"<string>\",\n \"beneDetails\": {\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"address1\": \"<string>\",\n \"bankAccount\": \"<string>\",\n \"ifsc\": \"<string>\",\n \"vpa\": \"<string>\"\n },\n \"paymentInstrumentId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://payout-api.cashfree.com/payout/v1.2/directTransfer")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.body("{\n \"amount\": 123,\n \"transferId\": \"<string>\",\n \"transferMode\": \"<string>\",\n \"beneDetails\": {\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"address1\": \"<string>\",\n \"bankAccount\": \"<string>\",\n \"ifsc\": \"<string>\",\n \"vpa\": \"<string>\"\n },\n \"paymentInstrumentId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://payout-api.cashfree.com/payout/v1.2/directTransfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
request.body = "{\n \"amount\": 123,\n \"transferId\": \"<string>\",\n \"transferMode\": \"<string>\",\n \"beneDetails\": {\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"address1\": \"<string>\",\n \"bankAccount\": \"<string>\",\n \"ifsc\": \"<string>\",\n \"vpa\": \"<string>\"\n },\n \"paymentInstrumentId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "PENDING",
"subCode": "201",
"message": "Transfer request pending at the bank",
"data": {
"referenceId": "23457526",
"utr": "",
"acknowledged": 0
}
}Direct Transfer V1.2
Use this API to initiate amount transfers directly to the beneficiary account via a bank transfer or UPI. You can add the beneficiary details in the same API request.
POST
/
payout
/
v1.2
/
directTransfer
Direct Transfer V1.2
curl --request POST \
--url https://payout-api.cashfree.com/payout/v1.2/directTransfer \
--header 'Authorization: <authorization>' \
--header 'Content-Type: <content-type>' \
--data '
{
"amount": 123,
"transferId": "<string>",
"transferMode": "<string>",
"beneDetails": {
"name": "<string>",
"phone": "<string>",
"email": "<string>",
"address1": "<string>",
"bankAccount": "<string>",
"ifsc": "<string>",
"vpa": "<string>"
},
"paymentInstrumentId": "<string>"
}
'import requests
url = "https://payout-api.cashfree.com/payout/v1.2/directTransfer"
payload = {
"amount": 123,
"transferId": "<string>",
"transferMode": "<string>",
"beneDetails": {
"name": "<string>",
"phone": "<string>",
"email": "<string>",
"address1": "<string>",
"bankAccount": "<string>",
"ifsc": "<string>",
"vpa": "<string>"
},
"paymentInstrumentId": "<string>"
}
headers = {
"Authorization": "<authorization>",
"Content-Type": "<content-type>"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<authorization>', 'Content-Type': '<content-type>'},
body: JSON.stringify({
amount: 123,
transferId: '<string>',
transferMode: '<string>',
beneDetails: {
name: '<string>',
phone: '<string>',
email: '<string>',
address1: '<string>',
bankAccount: '<string>',
ifsc: '<string>',
vpa: '<string>'
},
paymentInstrumentId: '<string>'
})
};
fetch('https://payout-api.cashfree.com/payout/v1.2/directTransfer', 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://payout-api.cashfree.com/payout/v1.2/directTransfer",
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([
'amount' => 123,
'transferId' => '<string>',
'transferMode' => '<string>',
'beneDetails' => [
'name' => '<string>',
'phone' => '<string>',
'email' => '<string>',
'address1' => '<string>',
'bankAccount' => '<string>',
'ifsc' => '<string>',
'vpa' => '<string>'
],
'paymentInstrumentId' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: <authorization>",
"Content-Type: <content-type>"
],
]);
$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://payout-api.cashfree.com/payout/v1.2/directTransfer"
payload := strings.NewReader("{\n \"amount\": 123,\n \"transferId\": \"<string>\",\n \"transferMode\": \"<string>\",\n \"beneDetails\": {\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"address1\": \"<string>\",\n \"bankAccount\": \"<string>\",\n \"ifsc\": \"<string>\",\n \"vpa\": \"<string>\"\n },\n \"paymentInstrumentId\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<authorization>")
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://payout-api.cashfree.com/payout/v1.2/directTransfer")
.header("Authorization", "<authorization>")
.header("Content-Type", "<content-type>")
.body("{\n \"amount\": 123,\n \"transferId\": \"<string>\",\n \"transferMode\": \"<string>\",\n \"beneDetails\": {\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"address1\": \"<string>\",\n \"bankAccount\": \"<string>\",\n \"ifsc\": \"<string>\",\n \"vpa\": \"<string>\"\n },\n \"paymentInstrumentId\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://payout-api.cashfree.com/payout/v1.2/directTransfer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<authorization>'
request["Content-Type"] = '<content-type>'
request.body = "{\n \"amount\": 123,\n \"transferId\": \"<string>\",\n \"transferMode\": \"<string>\",\n \"beneDetails\": {\n \"name\": \"<string>\",\n \"phone\": \"<string>\",\n \"email\": \"<string>\",\n \"address1\": \"<string>\",\n \"bankAccount\": \"<string>\",\n \"ifsc\": \"<string>\",\n \"vpa\": \"<string>\"\n },\n \"paymentInstrumentId\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"status": "PENDING",
"subCode": "201",
"message": "Transfer request pending at the bank",
"data": {
"referenceId": "23457526",
"utr": "",
"acknowledged": 0
}
}Body
application/json
Amount to be transferred. Amount should be greater that INR 1.00. Decimals are allowed.
A unique ID to identify this transfer. Alphanumeric characters and underscores are allowed (40 character limit).
It is the mode of transfer. Allowed values are: banktransfer, neft, imps, rtgs, upi, paytm, and amazonpay. The default transferMode is banktransfer.
Object with the beneficiary details to whom amount is to be transferred
Show child attributes
Show child attributes
Specify the fund source ID from where you want the amount to be debited.
⌘I
