API v1
Merchant Login Get API Keys

Getting Started

Send your first payout through Sanvexo in a few steps.

Prerequisites

  • Approved merchant account with KYC and bank verification
  • API credentials generated (API Key + Secret Key)
  • Server IP whitelisted
  • Wallet balance loaded (payout amount + fee + GST)
  • At least one validated beneficiary
  • Merchant agreement accepted
1

Register & Complete KYC

Create merchant account, upload KYC, add bank details. Wait for admin approval.

2

Generate API Credentials

Merchant Dashboard → API Management → set MPIN, verify OTP, whitelist IP, generate keys.

3

Load Wallet

Admin credits wallet or submit load request. Demo merchant has ₹50,000 pre-loaded.

Wallet guide →
4

Add & Validate Beneficiary

Use Beneficiaries API or Merchant Panel → Beneficiaries → penny-drop validate.

5

Send Your First Payout

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

Handle Webhook

Configure webhook URL and listen for payout.success or payout.failed events.

Webhooks →