API v1
Merchant Login Get API Keys

Create Payout

Send payouts to validated beneficiaries using the PayGo API.

Merchant API

Use the endpoint below to initiate a payout from your PayGo wallet. Authenticate using your PayGo X-API-Key and X-Secret-Key. Bank payouts through this integration require whole INR amounts of at least ₹1,000. Supported bank rails are IMPS and NEFT; bank maps to IMPS. UPI-address payouts are not supported by this bank payout integration. The saved validated beneficiary supplies the actual bank details; ensure bank name and mobile are present.

POST https://paygo.sanvexo.in/api/v1/payout/create

Request Body

ParameterTypeRequiredDescription
reference_idstringYesYour unique payout reference (max 100 chars)
amountintegerYesminimum ₹1,000 live; ₹1 sandbox. Wallet, scheme and merchant limits apply.
payout_modestringYesbank, imps, or neft.
account_typestringYes for bank payoutssaving or current
remarkstringYes for bank payoutsNon-empty description, maximum 250 characters.
beneficiary_idintegerNo*ID of a validated beneficiary (recommended)
beneficiary_namestringYesBeneficiary full name
beneficiary_accountstringYes*Bank account number (required for bank/imps/neft)
beneficiary_ifscstringYes*IFSC code (required for bank/imps/neft)
beneficiary_vpastringYes*UPI ID e.g. user@upi (required for upi mode)
beneficiary_bankstringNoBank name
beneficiary_mobilestringNoBeneficiary mobile
currencystringNoDefault: INR

Example Request

Use your saved beneficiary's details; a new beneficiary must complete the configured validation flow before a payout is accepted.

curl -X POST 'https://paygo.sanvexo.in/api/v1/payout/create' -H 'X-API-Key: SVX_your_api_key' -H 'X-Secret-Key: SVS_your_secret_key' -H 'Content-Type: application/json' -d '{
"reference_id": "PAY-2026-001",
"amount": 1000,
"payout_mode": "imps",
"beneficiary_name": "Example Recipient",
"beneficiary_account": "012345678901",
"beneficiary_ifsc": "HDFC0001234",
"beneficiary_bank": "HDFC Bank",
"beneficiary_mobile": "9876543210",
"account_type": "saving",
"remark": "Merchant payout"
}'
$payload = json_decode('{
"reference_id": "PAY-2026-001",
"amount": 1000,
"payout_mode": "imps",
"beneficiary_name": "Example Recipient",
"beneficiary_account": "012345678901",
"beneficiary_ifsc": "HDFC0001234",
"beneficiary_bank": "HDFC Bank",
"beneficiary_mobile": "9876543210",
"account_type": "saving",
"remark": "Merchant payout"
}', true);
$ch = curl_init('https://paygo.sanvexo.in/api/v1/payout/create');
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => ["Content-Type: application/json", "X-API-Key: SVX_your_api_key", "X-Secret-Key: SVS_your_secret_key"],
CURLOPT_POSTFIELDS => json_encode($payload)]);
$response = curl_exec($ch);
const response = await fetch("https://paygo.sanvexo.in/api/v1/payout/create", {
method: "POST", headers: {"Content-Type": "application/json",
"X-API-Key": process.env.PAYGO_API_KEY, "X-Secret-Key": process.env.PAYGO_SECRET_KEY},
body: JSON.stringify({
"reference_id": "PAY-2026-001",
"amount": 1000,
"payout_mode": "imps",
"beneficiary_name": "Example Recipient",
"beneficiary_account": "012345678901",
"beneficiary_ifsc": "HDFC0001234",
"beneficiary_bank": "HDFC Bank",
"beneficiary_mobile": "9876543210",
"account_type": "saving",
"remark": "Merchant payout"
})
});
const result = await response.json();
{
"reference_id": "PAY-2026-001",
"amount": 1000,
"payout_mode": "imps",
"beneficiary_name": "Example Recipient",
"beneficiary_account": "012345678901",
"beneficiary_ifsc": "HDFC0001234",
"beneficiary_bank": "HDFC Bank",
"beneficiary_mobile": "9876543210",
"account_type": "saving",
"remark": "Merchant payout"
}

Merchant API acceptance response (illustrative)

HTTP 200 OK

{
  "success": true,
  "message": "Payout initiated",
  "data": {
    "payout_id": "POXXXXXXXXXXXX",
    "reference_id": "PAY-2024-001",
    "amount": 1000,
    "platform_fee": 15,
    "gst_amount": 2.70,
    "total_fee": 17.70,
    "total_debited": 1017.70,
    "status": "processing",
    "payout_mode": "imps",
    "beneficiary_name": "Rahul Sharma",
    "beneficiary_id": 1,
    "invoice_number": null
  }
}

Status Values

StatusDescription
pendingPayout created, awaiting processing
processingPayout is being processed; settlement is not yet confirmed
successMoney credited to beneficiary
failedPayout failed; inspect refund_status and wallet_refunded for refund completion.
Payouts debit the merchant wallet before submission. Failed payouts retain that debit until PayGo confirms its refund. Timeouts and ambiguous errors require status checks, not another transfer. Track the outcome using the status endpoint and your PayGo webhooks.