API v1
Merchant Login Get API Keys

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));
    }
}