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
| Parameter | Type | Required | Description |
|---|---|---|---|
reference_id | string | Yes | Your unique payout reference (max 100 chars) |
amount | number | Yes | Payout amount in INR. Minimum: 1 |
payout_mode | string | Yes | bank, upi, imps, or neft |
beneficiary_id | integer | No* | ID of a validated beneficiary (recommended) |
beneficiary_name | string | Yes | Beneficiary full name |
beneficiary_account | string | Yes* | Bank account number (required for bank/imps/neft) |
beneficiary_ifsc | string | Yes* | IFSC code (required for bank/imps/neft) |
beneficiary_vpa | string | Yes* | UPI ID e.g. user@upi (required for upi mode) |
beneficiary_bank | string | No | Bank name |
beneficiary_mobile | string | No | Beneficiary mobile |
currency | string | No | Default: 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
| Status | Description |
|---|---|
| pending | Payout created, awaiting processing |
| processing | Being sent to beneficiary |
| success | Money credited to beneficiary |
| failed | Payout failed — wallet refunded |
Wallet is debited immediately. On failure,
total_debited is refunded automatically.