API v1
Merchant Login Get API Keys

Create Payout

Disburse money to a validated beneficiary. Wallet is debited for payout amount + platform fee + GST immediately.

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

Request Body

ParameterTypeRequiredDescription
reference_idstringYesYour unique payout reference (max 100 chars)
amountnumberYesPayout amount in INR. Minimum: 1
payout_modestringYesbank, upi, imps, or neft
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

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-2024-001","amount":1000,"payout_mode":"imps","beneficiary_name":"Rahul Sharma","beneficiary_account":"1234567890","beneficiary_ifsc":"HDFC0001234"}'
$payload = [
"reference_id" => "PAY-2024-001",
"amount" => 1000,
"payout_mode" => "imps",
"beneficiary_name" => "Rahul Sharma",
"beneficiary_account" => "1234567890",
"beneficiary_ifsc" => "HDFC0001234",
];

$ch = curl_init("https://paygo.sanvexo.in/api/v1/payout/create");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => [
"X-API-Key: SVX_your_api_key",
"X-Secret-Key: SVS_your_secret_key",
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => json_encode($payload),
CURLOPT_RETURNTRANSFER => true,
]);
$response = json_decode(curl_exec($ch), true);
const response = await fetch("https://paygo.sanvexo.in/api/v1/payout/create", {
method: "POST",
headers: {
"X-API-Key": process.env.PAYGATE_API_KEY,
"X-Secret-Key": process.env.PAYGATE_SECRET_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
reference_id: "PAY-2024-001",
amount: 1000,
payout_mode: "imps",
beneficiary_name: "Rahul Sharma",
beneficiary_account: "1234567890",
beneficiary_ifsc: "HDFC0001234",
}),
});
const data = await response.json();
import java.net.*;
import java.net.http.*;

HttpClient client = HttpClient.newHttpClient();
String body = "{\"reference_id\":\"" . $referenceId . "\",\"amount\":" . $amount . ",\"payout_mode\":\"imps\",\"beneficiary_name\":\"" . $beneficiaryName . "\",\"beneficiary_account\":\"1234567890\",\"beneficiary_ifsc\":\"HDFC0001234\"" . $beneficiaryIdJava . "}";

HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://paygo.sanvexo.in/api/v1/payout/create"))
.header("X-API-Key", "SVX_your_api_key")
.header("X-Secret-Key", "SVS_your_secret_key")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();

HttpResponse<String> response = client.send(
request, HttpResponse.BodyHandlers.ofString()
);

Success Response

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
processingBeing sent to beneficiary
successMoney credited to beneficiary
failedPayout failed — wallet refunded
Wallet is debited immediately. On failure, total_debited is refunded automatically.