curl --request POST \
--url https://sandbox.cashfree.com/verification/pan/bulk \
--header 'Content-Type: application/json' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"bulk_verification_id": 31123,
"entries": [
{
"pan": "ABCPV1234D",
"name": "JOHN DOE"
},
{
"pan": "ABCPV1234D",
"name": "JOHN"
}
]
}
'import requests
url = "https://sandbox.cashfree.com/verification/pan/bulk"
payload = {
"bulk_verification_id": 31123,
"entries": [
{
"pan": "ABCPV1234D",
"name": "JOHN DOE"
},
{
"pan": "ABCPV1234D",
"name": "JOHN"
}
]
}
headers = {
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
bulk_verification_id: 31123,
entries: [{pan: 'ABCPV1234D', name: 'JOHN DOE'}, {pan: 'ABCPV1234D', name: 'JOHN'}]
})
};
fetch('https://sandbox.cashfree.com/verification/pan/bulk', 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/verification/pan/bulk",
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([
'bulk_verification_id' => 31123,
'entries' => [
[
'pan' => 'ABCPV1234D',
'name' => 'JOHN DOE'
],
[
'pan' => 'ABCPV1234D',
'name' => 'JOHN'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-client-id: <api-key>",
"x-client-secret: <api-key>"
],
]);
$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/verification/pan/bulk"
payload := strings.NewReader("{\n \"bulk_verification_id\": 31123,\n \"entries\": [\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN DOE\"\n },\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
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://sandbox.cashfree.com/verification/pan/bulk")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"bulk_verification_id\": 31123,\n \"entries\": [\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN DOE\"\n },\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/verification/pan/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bulk_verification_id\": 31123,\n \"entries\": [\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN DOE\"\n },\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"reference_id": 612,
"message": "Request accepted. You can check the status after some time."
}Verify
Use this API to verify your customers’ PAN information individually or in batches at a time. This API comes in handy when you have to verify a large number of PAN information. View the test data and use the information to trigger the validations. The test data are usable only in the test environment sandbox.
curl --request POST \
--url https://sandbox.cashfree.com/verification/pan/bulk \
--header 'Content-Type: application/json' \
--header 'x-client-id: <api-key>' \
--header 'x-client-secret: <api-key>' \
--data '
{
"bulk_verification_id": 31123,
"entries": [
{
"pan": "ABCPV1234D",
"name": "JOHN DOE"
},
{
"pan": "ABCPV1234D",
"name": "JOHN"
}
]
}
'import requests
url = "https://sandbox.cashfree.com/verification/pan/bulk"
payload = {
"bulk_verification_id": 31123,
"entries": [
{
"pan": "ABCPV1234D",
"name": "JOHN DOE"
},
{
"pan": "ABCPV1234D",
"name": "JOHN"
}
]
}
headers = {
"x-client-id": "<api-key>",
"x-client-secret": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'x-client-id': '<api-key>',
'x-client-secret': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
bulk_verification_id: 31123,
entries: [{pan: 'ABCPV1234D', name: 'JOHN DOE'}, {pan: 'ABCPV1234D', name: 'JOHN'}]
})
};
fetch('https://sandbox.cashfree.com/verification/pan/bulk', 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/verification/pan/bulk",
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([
'bulk_verification_id' => 31123,
'entries' => [
[
'pan' => 'ABCPV1234D',
'name' => 'JOHN DOE'
],
[
'pan' => 'ABCPV1234D',
'name' => 'JOHN'
]
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-client-id: <api-key>",
"x-client-secret: <api-key>"
],
]);
$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/verification/pan/bulk"
payload := strings.NewReader("{\n \"bulk_verification_id\": 31123,\n \"entries\": [\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN DOE\"\n },\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-client-id", "<api-key>")
req.Header.Add("x-client-secret", "<api-key>")
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://sandbox.cashfree.com/verification/pan/bulk")
.header("x-client-id", "<api-key>")
.header("x-client-secret", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"bulk_verification_id\": 31123,\n \"entries\": [\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN DOE\"\n },\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://sandbox.cashfree.com/verification/pan/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-client-id"] = '<api-key>'
request["x-client-secret"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"bulk_verification_id\": 31123,\n \"entries\": [\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN DOE\"\n },\n {\n \"pan\": \"ABCPV1234D\",\n \"name\": \"JOHN\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"reference_id": 612,
"message": "Request accepted. You can check the status after some time."
}Authorizations
Client ID. You can find your ID in the Merchant Dashboard.
Client secret key. You can find your secret key in the Merchant Dashboard.
Headers
Send the signature if IP is not whitelisted.
It is the API version. To receive the aadhaar seeding status in the response, use any date after 2022-09-12
Body
Find the request parameters to verify a large number of PAN information
It is the unique ID you create to identify the API request. Only alphanumeric and underscore ( _ ) are allowed.
"ABCPV1234D"
It is the array of PAN details for verification. PAN and name should be included. The name parameter is optional.
2Show child attributes
Show child attributes
[
{ "name": "John Doe", "pan": "ABCPP3011E" },
{ "name": "Jane Doe", "pan": "ABCPP3022E" }
]
Response
Success response for verifying a large number of PAN information
