> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zavu.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# 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

```
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](/guides/sub-accounts/creating))
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

```bash theme={null}
# 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

```bash theme={null}
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:

```bash theme={null}
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:

```bash theme={null}
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

```bash theme={null}
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:

```bash theme={null}
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](https://dashboard.zavu.dev)
2. Switch to the sub-account's project context
3. Go to **Compliance** → **10DLC**
4. Follow the standard registration flow

## Cost

All 10DLC fees are charged from the **parent team's balance**:

| Item                                 | Cost          |
| ------------------------------------ | ------------- |
| Brand registration per sub-account   | \$35 one-time |
| Campaign monthly fee per sub-account | \$2-15/month  |

<Note>
  Each sub-account requires its own brand registration ($35). The fee covers both brand ($15) and campaign (\~\$20) registration.
</Note>

## 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](/guides/sub-accounts/managing) to control spending per sub-account

## Next Steps

<CardGroup cols={2}>
  <Card title="Sub-Accounts Overview" icon="users" href="/guides/sub-accounts/overview">
    Learn about sub-accounts
  </Card>

  <Card title="10DLC Overview" icon="book" href="/guides/10dlc/overview">
    Full 10DLC registration guide
  </Card>
</CardGroup>
