Upload Physical Mandate File
curl --request POST \
--url https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload \
--header 'Content-Type: multipart/form-data' \
--header 'x-client-id: <x-client-id>' \
--header 'x-client-secret: <x-client-secret>' \
--form file='@example-file'import requests
url = "https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload"
files = { "file": ("example-file", open("example-file", "rb")) }
headers = {
"x-client-id": "<x-client-id>",
"x-client-secret": "<x-client-secret>"
}
response = requests.post(url, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('file', '@/Users/abcd/Documents/pnach/250723/file.jpg');
const options = {
method: 'POST',
headers: {'x-client-id': '<x-client-id>', 'x-client-secret': '<x-client-secret>'}
};
options.body = form;
fetch('https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload', 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/api/v2/subscriptions/physical-mandate-file/upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n@/Users/abcd/Documents/pnach/250723/file.jpg\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"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/api/v2/subscriptions/physical-mandate-file/upload"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n@/Users/abcd/Documents/pnach/250723/file.jpg\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<x-client-id>")
req.Header.Add("x-client-secret", "<x-client-secret>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload")
.header("x-client-id", "<x-client-id>")
.header("x-client-secret", "<x-client-secret>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n@/Users/abcd/Documents/pnach/250723/file.jpg\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-client-id"] = '<x-client-id>'
request["x-client-secret"] = '<x-client-secret>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n@/Users/abcd/Documents/pnach/250723/file.jpg\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "File Uploaded Successfully",
"data": {
"pNachFileId": "1475380791"
}
}{
"status": "ERROR",
"subCode": "400",
"message": "File Size exceeded."
}{
"status": "ERROR",
"message": "Server encountered an unexpected condition."
}Upload Physical Mandate File
Use this API to upload the Physical Nach registration forms that contain your customer’s bank account details and signature. Use the fileId you get in the response in the “Create Auth Seamless PhysicalMandate API”.
POST
/
api
/
v2
/
subscriptions
/
physical-mandate-file
/
upload
Upload Physical Mandate File
curl --request POST \
--url https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload \
--header 'Content-Type: multipart/form-data' \
--header 'x-client-id: <x-client-id>' \
--header 'x-client-secret: <x-client-secret>' \
--form file='@example-file'import requests
url = "https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload"
files = { "file": ("example-file", open("example-file", "rb")) }
headers = {
"x-client-id": "<x-client-id>",
"x-client-secret": "<x-client-secret>"
}
response = requests.post(url, files=files, headers=headers)
print(response.text)const form = new FormData();
form.append('file', '@/Users/abcd/Documents/pnach/250723/file.jpg');
const options = {
method: 'POST',
headers: {'x-client-id': '<x-client-id>', 'x-client-secret': '<x-client-secret>'}
};
options.body = form;
fetch('https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload', 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/api/v2/subscriptions/physical-mandate-file/upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n@/Users/abcd/Documents/pnach/250723/file.jpg\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Content-Type: multipart/form-data",
"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/api/v2/subscriptions/physical-mandate-file/upload"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n@/Users/abcd/Documents/pnach/250723/file.jpg\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<x-client-id>")
req.Header.Add("x-client-secret", "<x-client-secret>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload")
.header("x-client-id", "<x-client-id>")
.header("x-client-secret", "<x-client-secret>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n@/Users/abcd/Documents/pnach/250723/file.jpg\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/api/v2/subscriptions/physical-mandate-file/upload")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-client-id"] = '<x-client-id>'
request["x-client-secret"] = '<x-client-secret>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"; filename=\"example-file\"\r\nContent-Type: application/octet-stream\r\n\r\n@/Users/abcd/Documents/pnach/250723/file.jpg\r\n-----011000010111000001101001--"
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "File Uploaded Successfully",
"data": {
"pNachFileId": "1475380791"
}
}{
"status": "ERROR",
"subCode": "400",
"message": "File Size exceeded."
}{
"status": "ERROR",
"message": "Server encountered an unexpected condition."
}Headers
Client ID provided by Cashfree.
Example:
"x-client-id"
Client Secret provided by Cashfree.
Example:
"x-client-secret"
Body
multipart/form-data
The physical mandate file to be uploaded.
Response
Successful upload of the physical mandate file.
⌘I
