Skip to content
ZytePedevelopersDashboard
DocsBeneficiaries
Beneficiaries

Bank and UPI verification

Verify a saved payee for the payout method your workflow uses.

Verify a bank account

Create the payee first, then call Verify payee bank account with its resolved ID and an empty JSON object body. The source calls for bank verification before IMPS, NEFT or RTGS payouts.

Verify a UPI ID

For UPI payouts, call Verify payee UPI ID on the saved payee. It also uses merchant HMAC and an empty JSON object body. A separate raw-VPA dashboard helper is not part of this merchant API.

Interpret the result carefully

The response examples include verified and the account-holder name. A dummy/test account returning verified is not proof of real bank-provider validation. Confirm provider behavior and account eligibility before relying on verification in your production risk process.

Request example

Choose Node.js, Python, PHP, Ruby, Java or cURL. Run signed requests on your backend. PHP, Ruby and Java include signing directly. Java requires JDK 17 or newer.

import { signedHeaders } from './signing.mjs';
const payee_id = process.env.ZYTEPE_PAYEE_ID;
if (!payee_id) throw new Error('Set ZYTEPE_PAYEE_ID to the returned identifier');
const path = `/api/v1/payees/external/${encodeURIComponent(payee_id)}/verify/bank`;
const query = '';
const payload = {};
const body = JSON.stringify(payload);
const headers = signedHeaders({
  method: 'POST', path, query, body,
  keyId: process.env.ZYTEPE_API_KEY_ID,
  secret: process.env.ZYTEPE_API_SECRET,
});
headers['Content-Type'] = 'application/json';
const url = 'https://api.zytepe.com' + path + (query ? '?' + query : '');
const response = await fetch(url, { method: 'POST', headers, body });
if (!response.ok) throw new Error('Request failed: HTTP ' + response.status);
const result = await response.json();
// Store the returned identifiers securely. Do not log customer data.

Path, query and headers

payee_idRequiredpath

Use the identifier returned by the corresponding creation operation.

Request body

JSON · request.json
{}

Example response

JSON · response
{
  "success": true,
  "message": "Bank verification processed.",
  "data": {
    "status": "verified",
    "name_at_bank": "Aditi Traders"
  }
}