Skip to main content
Sub-accounts are isolated DialNexa environments that exist beneath a parent account. Each sub-account has its own agents, phone numbers, call history, team members, and optionally its own wallet. The parent account retains administrative oversight and can manage all sub-accounts from a single interface.
Sub-accounts are an Enterprise feature. Contact [email protected] to enable sub-account functionality on your account.

When to Use Sub-Accounts

Sub-accounts solve the multi-tenant problem: how do you give different customers, clients, or business units their own isolated environment without creating entirely separate DialNexa accounts?
A voice AI agency builds and manages agents for 20 clients. Each client gets their own sub-account: their agents, numbers, and call data are completely isolated from each other. The agency can access all sub-accounts from the parent account without needing to log in separately.
A software company builds a product on top of DialNexa and sells it to businesses. Each end customer is provisioned a sub-account. The ISV manages their customers’ environments centrally and bills them separately using DialNexa’s billing isolation features.
A large enterprise has 15 business units, each needing their own voice AI deployment. Rather than 15 separate accounts, one parent account with 15 sub-accounts gives central IT visibility while keeping business unit environments isolated.
A white-label DialNexa deployer provisions a sub-account per client. Each client sees only the white-labeled platform and has no visibility into the parent account or other clients.

Sub-Account vs. Workspace

Both sub-accounts and workspaces provide isolation. The key differences:
FeatureWorkspaceSub-Account
Isolation levelLogicalFull (separate entity)
BillingShared with parent accountIsolated (own wallet) or consolidated
API keysScoped to workspaceScoped to sub-account
Team membersManaged per workspaceManaged per sub-account, separate from parent
Parent visibilityYes (org admin can view)Yes (parent admin can view and manage)
Use caseInternal team/environment separationExternal client or reseller isolation
Use workspaces for internal separation (dev/staging/prod, different teams). Use sub-accounts for external separation (client environments, reseller tenants).

Creating a Sub-Account

Sub-accounts are created programmatically via the API or from the parent account dashboard.

Via the Dashboard

  1. Go to Organization Settings → Sub-Accounts
  2. Click + Create Sub-Account
  3. Enter the sub-account name (typically the client or business unit name)
  4. Select the billing mode (see below)
  5. Select the data region for the sub-account
  6. Set initial concurrency limits
  7. Click Create
The sub-account is provisioned immediately. You can then configure agents, phone numbers, and invite members within it.

Via the API

curl -X POST https://api.dialnexa.com/v1/sub-accounts \
  -H "Authorization: Bearer dnx_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corp",
    "billing_mode": "isolated",
    "region": "india",
    "concurrency_limit": 10
  }'
Response:
{
  "sub_account_id": "sa_01h9xyz...",
  "name": "Acme Corp",
  "status": "active",
  "billing_mode": "isolated",
  "region": "india",
  "concurrency_limit": 10,
  "created_at": "2025-03-15T10:22:00Z"
}

Billing Isolation

Sub-accounts support two billing modes:

Isolated Billing

Each sub-account has its own wallet. The parent account cannot draw from a sub-account’s wallet, and the sub-account cannot draw from the parent’s wallet. In this mode:
  • Recharge the sub-account’s wallet via the API or dashboard
  • The sub-account’s balance is entirely separate from the parent
  • You can pass costs directly to your client by loading funds into their sub-account’s wallet
  • Invoices are generated per sub-account
Recharging a sub-account wallet via API:
curl -X POST https://api.dialnexa.com/v1/sub-accounts/sa_01h9xyz.../wallet/recharge \
  -H "Authorization: Bearer dnx_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 5000,
    "currency": "INR"
  }'

Consolidated Billing

All charges for the sub-account are drawn from the parent account’s wallet. The parent pays all costs and manages billing centrally. Sub-accounts in consolidated billing mode cannot manage their own funds. This mode is suitable when:
  • The parent manages all costs internally and doesn’t need to track per-client billing separately
  • The parent bills clients via a custom mechanism outside DialNexa
Billing mode can be changed per sub-account after creation via the API.

API Access Per Sub-Account

Each sub-account has its own API keys that are scoped exclusively to that sub-account. A sub-account API key cannot access parent account or other sub-account resources. Creating an API key for a sub-account from the parent:
curl -X POST https://api.dialnexa.com/v1/sub-accounts/sa_01h9xyz.../api-keys \
  -H "Authorization: Bearer dnx_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Acme Corp Production Key",
    "type": "live"
  }'
You can provision and share API keys for each sub-account to give clients or client systems direct API access to their own environment.

Managing Sub-Accounts from the Parent

From Organization Settings → Sub-Accounts, parent account Owners and Org Admins can:
  • View all sub-accounts and their status
  • See each sub-account’s current wallet balance, concurrency utilization, and call volume
  • Access any sub-account’s dashboard directly (without needing a separate login) by clicking Access Dashboard
  • Suspend a sub-account (blocks new calls without deleting data)
  • Reactivate a suspended sub-account
  • Delete a sub-account (permanent - all data is deleted)

Concurrency Management

Each sub-account has its own concurrency limit, set from its allocation of the parent account’s total concurrency. For example, a parent account with 200 concurrent calls might allocate:
  • Sub-account A: 50 concurrent calls
  • Sub-account B: 30 concurrent calls
  • Sub-account C: 20 concurrent calls
  • Parent reserved: 100 concurrent calls
Adjust sub-account concurrency limits in Organization Settings → Sub-Accounts → [Sub-Account] → Limits, or via the API.

Sub-Account Isolation Guarantees

  • Call data (recordings, transcripts) in one sub-account is never visible to another sub-account
  • API keys from one sub-account cannot access another sub-account’s resources
  • Team members invited to a sub-account have no visibility into the parent account or other sub-accounts (unless separately invited)
  • Usage metrics for one sub-account are not visible to another sub-account’s members
The parent account has full visibility and control over all sub-accounts.