10DLC for Sub-Accounts
Register independent 10DLC brands and campaigns for each of your sub-accounts
10DLC for Sub-Accounts
If you use sub-accounts to manage multiple clients, each client that sends SMS in the United States needs their own 10DLC registration. Since each sub-account represents a different business with its own legal entity, they cannot share a single brand registration.
How It Works
Each sub-account (project) can independently register:
- Its own Brand — with the client's legal business information
- Its own Campaigns — with the client's specific messaging use cases
- Its own Phone Numbers — assigned to the client's approved campaigns
CodeParent Account ├── Sub-Account A (Client A) │ ├── Brand: "Acme Corp" │ ├── Campaign: "Order Notifications" │ └── Phone: +1 (555) 111-0001 ├── Sub-Account B (Client B) │ ├── Brand: "Beta LLC" │ ├── Campaign: "2FA Codes" │ └── Phone: +1 (555) 222-0002 └── Sub-Account C (Client C) ├── Brand: "Gamma Inc" ├── Campaign: "Marketing" └── Phone: +1 (555) 333-0003
Prerequisites
- Active sub-account with an API key (create one)
- Business Verification (KYB) approved on the parent account (submitting a brand or campaign without it returns
403 kyb_required) - Client's business information (legal name, EIN, address, website)
Step-by-Step Registration
Use the sub-account's API key for all requests below. This ensures the brand and campaign are scoped to that specific sub-account.
1. Register the Client's Brand
terminal# Using the sub-account's API key curl -X POST https://api.zavu.dev/v1/10dlc/brands \ -H "Authorization: Bearer $SUB_ACCOUNT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "entityType": "PRIVATE_PROFIT", "displayName": "Acme Corp", "companyName": "Acme Corporation", "ein": "12-3456789", "email": "compliance@acme.com", "phone": "+14155551234", "street": "123 Main St", "city": "San Francisco", "state": "CA", "postalCode": "94102", "country": "US", "website": "https://acme.com", "vertical": "Technology" }'
2. Submit Brand for Review
terminalcurl -X POST https://api.zavu.dev/v1/10dlc/brands/{brandId}/submit \ -H "Authorization: Bearer $SUB_ACCOUNT_API_KEY"
Wait 1-3 business days for brand verification. Check status:
terminalcurl -X POST https://api.zavu.dev/v1/10dlc/brands/{brandId}/sync \ -H "Authorization: Bearer $SUB_ACCOUNT_API_KEY"
3. Create a Campaign
Once the brand is verified:
terminalcurl -X POST https://api.zavu.dev/v1/10dlc/campaigns \ -H "Authorization: Bearer $SUB_ACCOUNT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "brandId": "brand_abc123", "name": "Order Notifications", "useCase": "ACCOUNT_NOTIFICATION", "description": "Send order status updates to customers who opted in at checkout.", "sampleMessages": [ "Hi {{name}}, your order #{{order_id}} has shipped!", "Your order #{{order_id}} has been delivered." ], "subscriberOptIn": true, "subscriberOptOut": true, "subscriberHelp": true, "numberPooling": false, "directLending": false, "embeddedLink": true, "embeddedPhone": false, "affiliateMarketing": false, "ageGated": false }'
4. Submit Campaign for Review
terminalcurl -X POST https://api.zavu.dev/v1/10dlc/campaigns/{campaignId}/submit \ -H "Authorization: Bearer $SUB_ACCOUNT_API_KEY"
5. Assign Phone Numbers
After the campaign is approved, assign the sub-account's phone numbers:
terminalcurl -X POST https://api.zavu.dev/v1/10dlc/campaigns/{campaignId}/phone-numbers \ -H "Authorization: Bearer $SUB_ACCOUNT_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "phoneNumberId": "pn_abc123" }'
Managing via Dashboard
Team owners can also manage 10DLC registration for each sub-account through the dashboard:
- Navigate to the sub-account in your Dashboard
- Switch to the sub-account's project context
- Go to Compliance → 10DLC
- Follow the standard registration flow
Cost
All 10DLC fees are charged from the parent team's balance:
| Item | Cost |
|---|---|
| Brand registration per sub-account | $4 one-time |
| Campaign registration per sub-account | $15 one-time ($2 for LOW_VOLUME) |
| Campaign monthly fee per sub-account | $10/month ($2 for LOW_VOLUME) |
Best Practices
- Register early — Brand and campaign approval can take up to 7 business days
- Use accurate business info — Mismatches between the brand and official records cause rejections
- One brand per sub-account — Each sub-account represents one business entity
- Set credit limits — Use credit limits to control spending per sub-account