Skip to main content
Sub-accounts let you provision isolated messaging environments for each of your customers. Each sub-account gets its own API key, usage tracking, and optional spending cap — while all charges are billed to your team’s balance.

Quick Start

1

Create a sub-account

curl -X POST https://api.zavu.dev/v1/sub-accounts \
  -H "Authorization: Bearer zv_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Client ABC",
    "externalId": "client_123",
    "creditLimit": 100000
  }'
2

Save the API key

The response includes the sub-account’s API key. This is only shown once.
{
  "subAccount": {
    "id": "jx7abc123def456",
    "name": "Client ABC",
    "status": "active",
    "totalSpent": 0,
    "creditLimit": 100000,
    "apiKey": "zv_live_sub_xxxxxxxxxxxx",
    "createdAt": "2025-01-15T10:00:00Z"
  }
}
3

Your customer sends messages

Your customer uses their API key to send messages:
curl -X POST https://api.zavu.dev/v1/messages \
  -H "Authorization: Bearer zv_live_sub_xxxxxxxxxxxx" \
  -d '{"to": "+14155551234", "text": "Hello from Client ABC!"}'

Guides

Important Rules

Each team can have only one main account. All additional projects must be created as sub-accounts. If you need a separate main account, create a new team.
  • Sub-accounts share the team’s balance but are fully isolated
  • Each sub-account has its own API keys, senders, phone numbers, contacts, and usage tracking
  • Credit limits are optional — omit or set to 0 for unlimited spending
  • When a credit limit is reached, the sub-account’s messages are blocked
  • Deactivating a sub-account revokes all its API keys immediately