Skip to main content

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
Parent 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

  1. Active sub-account with an API key (create one)
  2. KYC verification completed for the parent account
  3. 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

# 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

curl -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:
curl -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:
curl -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

curl -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:
curl -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:
  1. Navigate to the sub-account in your Dashboard
  2. Switch to the sub-account’s project context
  3. Go to Compliance10DLC
  4. Follow the standard registration flow

Cost

All 10DLC fees are charged from the parent team’s balance:
ItemCost
Brand registration per sub-account$35 one-time
Campaign monthly fee per sub-account$2-15/month
Each sub-account requires its own brand registration (35).Thefeecoversbothbrand(35). The fee covers both brand (15) and campaign (~$20) registration.

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

Next Steps