Integration Guide
End-to-end flow for integrating payout disbursements into your application.
Flow Diagram
Your App Sanvexo Beneficiary
│ │ │
│── Load wallet ─────────►│ │
│◄── Balance credited ────│ │
│ │ │
│── POST /payout/create ─►│ │
│ (wallet debited) │── IMPS/UPI transfer ────►│
│◄── Webhook success ─────│ │
│ │ │
Step 1: Check Wallet Balance
Before each payout, ensure balance covers amount + fee. Fail early in your app if balance is low.
Step 2: Create Payout
$result = $sanvexo->createPayout([
'reference_id' => 'PAY-' . uniqid(),
'amount' => 1000,
'payout_mode' => 'imps',
'beneficiary_name' => $vendor->name,
'beneficiary_account' => $vendor->account,
'beneficiary_ifsc' => $vendor->ifsc,
]);
Step 3: Handle Webhook
// POST /webhooks/sanvexo
$data = json_decode($payload, true);
if ($data['event'] === 'payout.success') {
Payout::where('reference_id', $data['reference_id'])
->update(['status' => 'paid', 'utr' => $data['utr']]);
} elseif ($data['event'] === 'payout.failed') {
// Mark failed — wallet already refunded by platform
}
Sample PHP Client
class SanvexoClient {
public function createPayout(array $data): array {
return $this->request('POST', '/payout/create', $data);
}
public function getStatus(string $referenceId): array {
return $this->request('GET', '/payout/status?reference_id=' . urlencode($referenceId));
}
}