Testing & Sandbox
Test payouts in the demo environment — no real money is transferred.
Demo Credentials
| Merchant Login | merchant@demo.com / merchant123 |
| Wallet Balance | ₹50,000 (pre-loaded) |
| OTP | 123456 |
| Test IP | 127.0.0.1 |
Test a Payout
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: YOUR_KEY' -H 'X-Secret-Key: YOUR_SECRET' -H 'Content-Type: application/json' -d '{
"reference_id": "TEST-001",
"amount": 100,
"payout_mode": "imps",
"beneficiary_name": "Test User",
"beneficiary_account": "012345678901",
"beneficiary_ifsc": "HDFC0001234",
"beneficiary_bank": "HDFC Bank",
"beneficiary_mobile": "9876543210",
"account_type": "saving",
"remark": "Merchant payout"
}'
$payload = json_decode('{
"reference_id": "TEST-001",
"amount": 100,
"payout_mode": "imps",
"beneficiary_name": "Test User",
"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: YOUR_KEY", "X-Secret-Key: YOUR_SECRET"],
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": "TEST-001",
"amount": 100,
"payout_mode": "imps",
"beneficiary_name": "Test User",
"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": "TEST-001",
"amount": 100,
"payout_mode": "imps",
"beneficiary_name": "Test User",
"beneficiary_account": "012345678901",
"beneficiary_ifsc": "HDFC0001234",
"beneficiary_bank": "HDFC Bank",
"beneficiary_mobile": "9876543210",
"account_type": "saving",
"remark": "Merchant payout"
}
Simulate Payout Result
- Note
payout_idfrom the create response - Open
https://paygo.sanvexo.in/payout/simulate/{payout_id} - Click Simulate Success or Simulate Failure
- Webhook fires to your configured URL
Test Scenarios
| Scenario | Expected |
|---|---|
| Successful payout | Status success, webhook payout.success |
| Failed payout | Status failed, wallet refunded, webhook payout.failed |
| Insufficient balance | HTTP 402 |
| Duplicate reference_id | HTTP 409 |