sub_accounts resource - plus a first-class customer KYC pipeline (PAN, GST, CIN, DigiLocker, hosted verification sessions) so each customer sub-account can be onboarded and compliant before it ever places a call.
If you already have a Twilio integration, this is mostly a rename-and-add-auth_id job. Every account-scoped Vobiz method takes your master auth_id explicitly, and the sub-account is addressed by its own sub_auth_id.
Set credentials once:
AUTH_ID is your Vobiz master Auth ID (MA_…) and AUTH_TOKEN is its Auth Token. In the Vobiz SDK api_key is the Auth ID (sent as X-Auth-ID), and auth_token maps to X-Auth-Token. Base URL: https://api.vobiz.ai/api/v1.At a glance
Twilio → Vobiz mapping table
Create a tenant
Twilio’saccounts.create becomes sub_accounts.create_subaccount - add your master auth_id and use name instead of friendly_name. Both return the new tenant’s own credentials.
Onboard a customer tenant with built-in KYC
Where Twilio hands you a bare subaccount, Vobiz lets you gate the tenant behind verification. Create it withkyc_mode="customer_use" (this requires an email) and pass the customer’s business_type to drive which documents are needed. A fresh customer_use sub-account starts with kyc_calls_blocked: true, then flips live once KYC passes - no external compliance stack to build.
List, fetch, rename
accounts.list() / .fetch() map straight across. Vobiz addresses a specific tenant by its sub_auth_id.
Suspend, reactivate, close
Twilio drives lifecycle through thestatus enum (active / suspended / closed). Vobiz splits this into a reversible enabled toggle and an explicit delete, so “pause” and “permanently remove” are separate, deliberate calls.
Acting as a tenant
On Twilio you re-authenticate with the subaccount’s own SID and Auth Token to make calls “as” that tenant. Vobiz works the same way: each sub-account has its own Auth ID and Auth Token, and you pass those as theauth_id on account-scoped methods (make_call, phone_numbers.*, cdr.*, and the rest). Calls, numbers, recordings and CDRs are all scoped to whichever Auth ID you present, so billing and data stay cleanly isolated per tenant and roll up to the master.
Key differences
- Explicit
auth_ideverywhere. Twilio infers the account from the credentials on the client; Vobiz passes the Auth ID on each account-scoped call. This makes master-vs-tenant context obvious in code and easy to audit. - Reversible pause is its own field. Twilio overloads one
statusenum; Vobiz usesenabled(True/False) for pause/resume and a separatedelete_subaccountfor permanent removal - so a routine “pause billing” can never be confused with an irreversible close. - Customer KYC is built in. Twilio gives you the tenant container; Vobiz adds
sub_account_kyc.*on top - PAN, GSTIN, CIN, and Aadhaar-via-DigiLocker verification, plus Vobiz-hosted email/redirect sessions fromkyc.vobiz.ai. You can onboard regulated Indian customers without building a compliance stack. - KYC-gated go-live. With
kyc_mode="customer_use", a new tenant starts withkyc_calls_blocked: trueand flips live automatically once verification passes - a clean, provable onboarding gate.personal_usesub-accounts simply inherit the master’s KYC. - Number assignment is a first-class call. Move a purchased DID to a tenant with
phone_numbers.assign_did_to_subaccount(...), keeping ownership and billing under the master while the tenant uses the number. - Self-service onboarding.
create_subaccount_kyc_session(...)hands the whole verification flow to your customer via a signed email link or an inline redirect widget, with results delivered to yourwebhook_url.
Next steps
- Continue with the full Twilio → Vobiz overview for the resource-by-resource map.
- Building IVR/menus for these tenants? See the
<Gather>reference. - Coming from Plivo too? Start with the Plivo → Vobiz overview for the resource-by-resource map.