Skip to content

Partner Program

Example Flow

A comprehensive, step-by-step integration guide demonstrating the full lifecycle of a customer on your platform — from provisioning and balance transfer, to KYC, trunk creation, and CDR monitoring.

Authentication Setup

All Partner API calls require your Master credentials. Store these securely in your backend.

Required Headers
X-Auth-ID: <your_partner_auth_id>
X-Auth-Token: <your_partner_auth_token>

Step 1 — Create Customer Account

Provision a new SIP-enabled account under your partner umbrella.

POSThttps://api.vobiz.ai/api/v1/partner/accounts
FieldRequiredDescription
nameYesCustomer's full name
emailYesCustomer's email — KYC link is sent here
phoneYesE.164 format e.g. +919876543210
passwordYesMin 8 chars, must include number and special char
companyNoLegal company or business name
countryYesISO 2-letter code e.g. IN
cURL
curl -X POST \
  "https://api.vobiz.ai/api/v1/partner/accounts" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "John Doe",
    "email": "john@example.com",
    "phone": "+919876543210",
    "password": "SecurePass123!",
    "company": "Acme Corp",
    "country": "IN"
  }'
201 Created
{
  "auth_id": "MA_XXXXXX",
  "auth_token": "sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "name": "John Doe",
  "email": "john@example.com",
  "status": "active",
  "balance": 0.00,
  "currency": "INR",
  "country": "IN",
  "created_at": "2026-03-25T10:00:00Z"
}
Save both auth_id and auth_token. The auth_id is used in every partner API call for this customer. The auth_token is the customer's own credential — used when calling the Customer API on their behalf.

Step 2 — Transfer Balance to Customer

When you call the transfer endpoint, VoBiz atomically debits the amount from your partner master balance and credits it to the customer's wallet.

Your Master Balance
- ₹500.00
Customer Wallet
+ ₹500.00
POSThttps://api.vobiz.ai/api/v1/partner/accounts/{customer_auth_id}/transfer-balance
cURL
curl -X POST \
  "https://api.vobiz.ai/api/v1/partner/accounts/{customer_auth_id}/transfer-balance" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 500.00,
    "currency": "INR",
    "description": "April recharge — Credresolve"
  }'
200 OK
{
  "transaction_id": "txn_abc123def456",
  "from_account": "partner-882abc",
  "to_account": "MA_48149cf4",
  "amount": 500.00,
  "currency": "INR",
  "description": "April recharge — Credresolve",
  "status": "completed",
  "partner_balance_after": 47750.00,
  "customer_balance_after": 2950.00,
  "timestamp": "2026-03-25T11:00:00Z"
}

Step 3 — Initiate KYC Session

VoBiz emails the customer a KYC link automatically. The email goes to the address on their account.

POSThttps://api.vobiz.ai/api/v1/partner/kyc-sessions
cURL
curl -X POST \
  "https://api.vobiz.ai/api/v1/partner/kyc-sessions" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "account_auth_id": "MA_XXXXXX",
    "webhook_url": "https://yourapp.com/kyc-webhook",
    "expires_in_days": 14,
    "reminder_schedule": [
      { "trigger": "days_before_expiry", "value": 3 },
      { "trigger": "days_before_expiry", "value": 1 }
    ]
  }'
201 Created
{
  "session_id": "kycs_abc123",
  "status": "email_sent",
  "kyc_type": null,
  "email_dispatched_to": "j***@example.com",
  "expires_at": "2026-05-12T10:00:00Z"
}

Step 4 — Customer Completes KYC

The customer clicks the link in their email and completes verification on the VoBiz hosted widget.

  • Individual (PAN 4th char = P): PAN + DOB → Aadhaar via DigiLocker (Govt OTP)
  • Company (PAN 4th char = C): PAN + entity name → GSTIN

Webhook Events

kyc.completedAll documents verified
kyc.failedDocument invalid or name mismatch
kyc.session_revokedYou revoked the session

Managing KYC Sessions

List all sessions
curl -X GET \
  "https://api.vobiz.ai/api/v1/partner/kyc-sessions?page=1&size=20" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"
Check one session
curl -X GET \
  "https://api.vobiz.ai/api/v1/partner/kyc-sessions/{session_id}" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"
Resend email
curl -X POST \
  "https://api.vobiz.ai/api/v1/partner/kyc-sessions/{session_id}/resend" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"
Revoke session
curl -X DELETE \
  "https://api.vobiz.ai/api/v1/partner/kyc-sessions/{session_id}" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}" \
  -H "Content-Type: application/json" \
  -d '{ "reason": "Wrong email" }'

Transactions

All transactions for a customer
curl -X GET \
  "https://api.vobiz.ai/api/v1/partner/accounts/{customer_auth_id}/transactions?page=1&per_page=20" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"
Billing cycle (March 2026)
curl -X GET \
  "https://api.vobiz.ai/api/v1/partner/accounts/{customer_auth_id}/transactions?from_date=2026-03-01&to_date=2026-03-31&per_page=100" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"
Recharges only
curl -X GET \
  "https://api.vobiz.ai/api/v1/partner/accounts/{customer_auth_id}/transactions?transaction_type=recharge&per_page=50" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"

CDRs (Call History)

Partner View

You (the partner) look up any customer's call history from your side.

Quality check
curl -X GET \
  "https://api.vobiz.ai/api/v1/partner/accounts/{customer_auth_id}/cdrs?call_direction=inbound&status=answered&min_duration=10" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"

Customer View

The customer calls this endpoint using their own credentials.

Failed calls
curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{customer_auth_id}/cdrs?status=failed&hangup_cause=NO_ANSWER" \
  -H "X-Auth-ID: {customer_auth_id}" \
  -H "X-Auth-Token: {customer_auth_token}"

Phone Numbers (Partner View)

List all numbers for a customer
curl -X GET \
  "https://api.vobiz.ai/api/v1/partner/accounts/{customer_auth_id}/numbers?page=1&per_page=20" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"

Profile & Dashboard

Your partner profile
curl -X GET \
  "https://api.vobiz.ai/api/v1/partner/me" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"
Dashboard summary
curl -X GET \
  "https://api.vobiz.ai/api/v1/partner/dashboard" \
  -H "X-Auth-ID: {your_partner_id}" \
  -H "X-Auth-Token: {your_auth_token}"

Customer API

Important: These endpoints are called using the customer's own credentials — not yours as the partner. The auth_id and auth_token are returned when you create the customer account (Step 1).

Base URL: https://api.vobiz.ai/api/v1/account/{customer_auth_id}/...
Auth headers: X-Auth-ID: {customer_auth_id} + X-Auth-Token: {customer_auth_token}

Inventory Numbers (Browse Available)

Lists phone numbers available to purchase — not yet assigned to any account.

cURL
curl -X GET \
  "https://api.vobiz.ai/api/v1/account/{customer_auth_id}/inventory/numbers?country=IN&page=1&per_page=25" \
  -H "X-Auth-ID: {customer_auth_id}" \
  -H "X-Auth-Token: {customer_auth_token}"

Release a Phone Number

Returns a number from the customer's account back to inventory. Permanent — cannot be undone.

cURL
curl -X DELETE \
  "https://api.vobiz.ai/api/v1/account/{customer_auth_id}/numbers/+918071387149" \
  -H "X-Auth-ID: {customer_auth_id}" \
  -H "X-Auth-Token: {customer_auth_token}"

Create a SIP Trunk

VoBiz auto-generates a unique SIP domain for the trunk in the format: {trunk_id}.sip.vobiz.ai

cURL
curl -X POST \
  "https://api.vobiz.ai/api/v1/account/{customer_auth_id}/trunks" \
  -H "X-Auth-ID: {customer_auth_id}" \
  -H "X-Auth-Token: {customer_auth_token}" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "My SIP Trunk",
    "trunk_status": "enabled",
    "secure": false,
    "trunk_direction": "outbound",
    "concurrent_calls_limit": 10,
    "cps_limit": 5,
    "transport": "udp"
  }'
201 Created
{
  "trunk_id": "aabbcc-dd-ee-ff-gg",
  "auth_id": "MA_XXXXXX",
  "name": "My SIP Trunk",
  "trunk_domain": "aabbcc-dd-ee-ff-gg.sip.vobiz.ai",
  "trunk_status": "enabled",
  "secure": false,
  "trunk_direction": "outbound",
  "concurrent_calls_limit": 10,
  "cps_limit": 5,
  "transport": "udp",
  "created_at": "2026-03-25T14:09:12Z",
  "updated_at": "2026-03-25T14:09:12Z"
}

Save the trunk_id — you need it for all trunk update, delete, and lookup operations.

Last updated: April 2026Edit this page