curl --request POST \
--url https://service-sandbox.tazapay.com/v3/verify/payee \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "John Doe",
"type": "individual",
"beneficiary_details": {
"destination_details": {
"type": "bank",
"bank": {
"account_number": "9876543210",
"country": "IN",
"currency": "INR",
"bank_codes": {
"ifsc_code": "HDFC0001234"
}
}
}
}
}
'import requests
url = "https://service-sandbox.tazapay.com/v3/verify/payee"
payload = {
"name": "John Doe",
"type": "individual",
"beneficiary_details": { "destination_details": {
"type": "bank",
"bank": {
"account_number": "9876543210",
"country": "IN",
"currency": "INR",
"bank_codes": { "ifsc_code": "HDFC0001234" }
}
} }
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'John Doe',
type: 'individual',
beneficiary_details: {
destination_details: {
type: 'bank',
bank: {
account_number: '9876543210',
country: 'IN',
currency: 'INR',
bank_codes: {ifsc_code: 'HDFC0001234'}
}
}
}
})
};
fetch('https://service-sandbox.tazapay.com/v3/verify/payee', 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://service-sandbox.tazapay.com/v3/verify/payee",
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([
'name' => 'John Doe',
'type' => 'individual',
'beneficiary_details' => [
'destination_details' => [
'type' => 'bank',
'bank' => [
'account_number' => '9876543210',
'country' => 'IN',
'currency' => 'INR',
'bank_codes' => [
'ifsc_code' => 'HDFC0001234'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://service-sandbox.tazapay.com/v3/verify/payee"
payload := strings.NewReader("{\n \"name\": \"John Doe\",\n \"type\": \"individual\",\n \"beneficiary_details\": {\n \"destination_details\": {\n \"type\": \"bank\",\n \"bank\": {\n \"account_number\": \"9876543210\",\n \"country\": \"IN\",\n \"currency\": \"INR\",\n \"bank_codes\": {\n \"ifsc_code\": \"HDFC0001234\"\n }\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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://service-sandbox.tazapay.com/v3/verify/payee")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"John Doe\",\n \"type\": \"individual\",\n \"beneficiary_details\": {\n \"destination_details\": {\n \"type\": \"bank\",\n \"bank\": {\n \"account_number\": \"9876543210\",\n \"country\": \"IN\",\n \"currency\": \"INR\",\n \"bank_codes\": {\n \"ifsc_code\": \"HDFC0001234\"\n }\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://service-sandbox.tazapay.com/v3/verify/payee")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"John Doe\",\n \"type\": \"individual\",\n \"beneficiary_details\": {\n \"destination_details\": {\n \"type\": \"bank\",\n \"bank\": {\n \"account_number\": \"9876543210\",\n \"country\": \"IN\",\n \"currency\": \"INR\",\n \"bank_codes\": {\n \"ifsc_code\": \"HDFC0001234\"\n }\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "",
"data": {
"id": "pyv_xxxx",
"object": "verification",
"verification_status": "pending",
"status_description": "",
"beneficiary": "",
"beneficiary_details": {
"type": "individual",
"email": "",
"tax_id": "",
"address": null,
"phone": null,
"destination_details": {
"type": "bank",
"bank": {
"account_number": "9876543210",
"country": "IN",
"currency": "INR",
"bank_codes": {
"ifsc_code": "HDFC0001234"
}
}
}
},
"verified_information": null,
"balance_transaction": {
"holding_currency": "USD",
"initial_balance": 100,
"balance_impact": 10,
"remaining_balance": 90,
"balance_transaction_id": "txn_xxxx"
},
"metadata": null,
"reference_id": "",
"created_at": "2026-04-07T10:00:00Z",
"updated_at": "2026-04-07T10:00:00Z"
}
}{
"status": "error",
"message": "Invalid request",
"errors": [
{
"code": 100,
"message": "beneficiary_details is required when beneficiary is not provided.",
"remarks": ""
}
]
}{
"status": "error",
"message": "Internal server error",
"errors": [
{
"code": 500,
"message": "Something went wrong while processing your request. Please try again or contact support if the issue persists.",
"remarks": ""
}
]
}Create Verification
This lets you create a payee verification. Pass either beneficiary (Mode A - verify an existing saved beneficiary) or inline beneficiary_details (Mode B).
curl --request POST \
--url https://service-sandbox.tazapay.com/v3/verify/payee \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "John Doe",
"type": "individual",
"beneficiary_details": {
"destination_details": {
"type": "bank",
"bank": {
"account_number": "9876543210",
"country": "IN",
"currency": "INR",
"bank_codes": {
"ifsc_code": "HDFC0001234"
}
}
}
}
}
'import requests
url = "https://service-sandbox.tazapay.com/v3/verify/payee"
payload = {
"name": "John Doe",
"type": "individual",
"beneficiary_details": { "destination_details": {
"type": "bank",
"bank": {
"account_number": "9876543210",
"country": "IN",
"currency": "INR",
"bank_codes": { "ifsc_code": "HDFC0001234" }
}
} }
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'John Doe',
type: 'individual',
beneficiary_details: {
destination_details: {
type: 'bank',
bank: {
account_number: '9876543210',
country: 'IN',
currency: 'INR',
bank_codes: {ifsc_code: 'HDFC0001234'}
}
}
}
})
};
fetch('https://service-sandbox.tazapay.com/v3/verify/payee', 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://service-sandbox.tazapay.com/v3/verify/payee",
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([
'name' => 'John Doe',
'type' => 'individual',
'beneficiary_details' => [
'destination_details' => [
'type' => 'bank',
'bank' => [
'account_number' => '9876543210',
'country' => 'IN',
'currency' => 'INR',
'bank_codes' => [
'ifsc_code' => 'HDFC0001234'
]
]
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"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://service-sandbox.tazapay.com/v3/verify/payee"
payload := strings.NewReader("{\n \"name\": \"John Doe\",\n \"type\": \"individual\",\n \"beneficiary_details\": {\n \"destination_details\": {\n \"type\": \"bank\",\n \"bank\": {\n \"account_number\": \"9876543210\",\n \"country\": \"IN\",\n \"currency\": \"INR\",\n \"bank_codes\": {\n \"ifsc_code\": \"HDFC0001234\"\n }\n }\n }\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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://service-sandbox.tazapay.com/v3/verify/payee")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"John Doe\",\n \"type\": \"individual\",\n \"beneficiary_details\": {\n \"destination_details\": {\n \"type\": \"bank\",\n \"bank\": {\n \"account_number\": \"9876543210\",\n \"country\": \"IN\",\n \"currency\": \"INR\",\n \"bank_codes\": {\n \"ifsc_code\": \"HDFC0001234\"\n }\n }\n }\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://service-sandbox.tazapay.com/v3/verify/payee")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"John Doe\",\n \"type\": \"individual\",\n \"beneficiary_details\": {\n \"destination_details\": {\n \"type\": \"bank\",\n \"bank\": {\n \"account_number\": \"9876543210\",\n \"country\": \"IN\",\n \"currency\": \"INR\",\n \"bank_codes\": {\n \"ifsc_code\": \"HDFC0001234\"\n }\n }\n }\n }\n}"
response = http.request(request)
puts response.read_body{
"status": "success",
"message": "",
"data": {
"id": "pyv_xxxx",
"object": "verification",
"verification_status": "pending",
"status_description": "",
"beneficiary": "",
"beneficiary_details": {
"type": "individual",
"email": "",
"tax_id": "",
"address": null,
"phone": null,
"destination_details": {
"type": "bank",
"bank": {
"account_number": "9876543210",
"country": "IN",
"currency": "INR",
"bank_codes": {
"ifsc_code": "HDFC0001234"
}
}
}
},
"verified_information": null,
"balance_transaction": {
"holding_currency": "USD",
"initial_balance": 100,
"balance_impact": 10,
"remaining_balance": 90,
"balance_transaction_id": "txn_xxxx"
},
"metadata": null,
"reference_id": "",
"created_at": "2026-04-07T10:00:00Z",
"updated_at": "2026-04-07T10:00:00Z"
}
}{
"status": "error",
"message": "Invalid request",
"errors": [
{
"code": 100,
"message": "beneficiary_details is required when beneficiary is not provided.",
"remarks": ""
}
]
}{
"status": "error",
"message": "Internal server error",
"errors": [
{
"code": 500,
"message": "Something went wrong while processing your request. Please try again or contact support if the issue persists.",
"remarks": ""
}
]
}Authorizations
Basic authentication header of the form Basic <encoded-value>, where <encoded-value> is the base64-encoded string username:password.
Body
Type of beneficiary entity.
individual, business Inline payee details (Mode B). Required on the wire, but auto-populated when beneficiary is passed.
Show child attributes
Show child attributes
ID of an existing saved beneficiary (bnf_xxxx) to verify (Mode A). When provided, name, type, and beneficiary_details are resolved from the saved beneficiary and any values you pass for them are overwritten.
Full name of the beneficiary (payee) to match against the account holder. Required for Mode B (inline) requests.
Additional key-value data to attach to the verification. Echoed back in the response.
Response
200
Was this page helpful?