Skip to main content
Before you can send a payout, you must register the recipient as a beneficiary. This endpoint validates the bank account details you provide, runs account verification, and returns a contact_id that permanently represents this beneficiary in your account. You only need to call this API once per unique recipient, reuse the contact_id for every subsequent payout to the same person.
Quick ReferenceMethod: POSTRequired: name, email, phone, bank_details (account number, IFSC)Returns: contact_id, verification statusReusable: One contact_id per unique recipient across all future payouts.

Endpoint

Request Headers

Request Body Parameters

string
required
Full name of the beneficiary as it appears on their bank account.
string
required
Email address of the beneficiary.
string
required
Mobile phone number of the beneficiary (10 digits, no country code).
object
required
Bank account details for the beneficiary.
string
required
The method used to verify the bank account. Accepted values:
  • PENNY_DROP — transfers a small amount to the account to confirm it is active and reachable.
  • PENNY_LESS — verifies account details without sending any money.
string
PAN (Permanent Account Number) of the beneficiary. Optional — pass an empty string if not available.
PENNY_DROP vs PENNY_LESS: Use PENNY_DROP when you want the highest confidence in account validity — a micro-deposit confirms the account is live and accepting funds. Use PENNY_LESS for a faster, zero-cost check that validates account details against bank records without an actual transfer.

Response

string
Top-level result of the API call — success or error.
integer
HTTP status code for the operation (e.g., 200).
string
Human-readable summary of the result.
object
The beneficiary record and verification outcome.
Save the contact_id from the response in your database alongside the beneficiary’s record. You’ll pass it directly in the contact_id field when calling the Initiate Payout API — no need to look it up again.