# Campaign Registration

> Register your messaging campaign for 10DLC SMS compliance

## Campaign Registration

A **Campaign** describes your messaging use case. After your brand is approved, you must register at least one campaign to start sending SMS messages in the United States.

## Prerequisites

Before registering a campaign:

1. **Approved Brand** - Your brand must be verified (see [Brand Registration](https://www.zavu.dev/docs/guides/10dlc/brand-registration))
2. **US Phone Number** - At least one phone number to assign to your campaign

## Use Case Types

Select the use case that best describes your messaging:

| Use Case | Description | Registration | Monthly Fee |
|----------|-------------|--------------|-------------|
| 2FA / Authentication | One-time passwords, login codes | $15 | $10/month |
| Account Notifications | Account updates, alerts | $15 | $10/month |
| Customer Care | Support conversations | $15 | $10/month |
| Delivery Notifications | Shipping updates, ETAs | $15 | $10/month |
| Fraud Alerts | Security warnings | $15 | $10/month |
| Marketing | Promotional messages, offers | $15 | $10/month |
| Low Volume Mixed | Multiple use cases, low volume | $2 | $2/month |
| Polling and Voting | Surveys, feedback collection | $15 | $10/month |
| Public Service Announcement | Non-profit, public info | $15 | $10/month |
| Security Alerts | Security notifications | $15 | $10/month |

> **Tip:**
> Choose the most specific use case for your messaging. `LOW_VOLUME` is the only cheaper tier — it carries lower throughput, so pick it only if your volume really is low.

## Registration Steps

### Step 1: Campaign Basics

Provide general information about your campaign:

- **Campaign Name** - A descriptive name for internal reference
- **Use Case** - Select from the list above
- **Description** - Brief explanation of what messages you'll send
- **Subscriber Opt-in** - How users consent to receive messages

### Step 2: Sample Messages

Provide 2-5 sample messages that represent your typical content:

```
Example for 2FA:
"Your verification code is 123456. This code expires in 10 minutes."

Example for Delivery:
"Hi {{name}}, your order #{{order_id}} has shipped! Track it here: {{tracking_url}}"
```

> **Warning:**
> Sample messages must accurately represent your actual messaging. Misleading samples can result in campaign rejection.

### Step 3: Compliance Settings

Configure compliance options:

| Setting | Description |
|---------|-------------|
| **Opt-in Keywords** | Words that subscribe users (e.g., START, YES) |
| **Opt-out Keywords** | Words that unsubscribe users (e.g., STOP, CANCEL) |
| **Help Keywords** | Words that trigger help message (e.g., HELP, INFO) |
| **Age-gated Content** | Whether content is restricted to adults |
| **Direct Lending** | Whether messages relate to lending services |

> **Note:**
> Standard opt-out (STOP) handling is automatic. Users who reply STOP will be automatically unsubscribed.

### Step 4: Review and Submit

Review all information before submitting:

1. Verify campaign details are accurate
2. Confirm sample messages are representative
3. Check compliance settings
4. Submit for review

### Via API

```bash
# Step 1: Create campaign (draft)
curl -X POST https://api.zavu.dev/v1/10dlc/campaigns \
  -H "Authorization: Bearer $ZAVUDEV_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
  }'

# Step 2: Submit for carrier review
curl -X POST https://api.zavu.dev/v1/10dlc/campaigns/{campaignId}/submit \
  -H "Authorization: Bearer $ZAVUDEV_API_KEY"
```

## Cost

| Item | Cost | Type |
|------|------|------|
| Campaign Registration | $15.00 ($2.00 for `LOW_VOLUME`) | One-time, charged when you submit |
| Monthly Fee | $10.00/month ($2.00 for `LOW_VOLUME`) | Recurring |

> **Note:**
> These are TCR's fees, passed through at cost and charged from your balance. The one-time fee is charged when the campaign is submitted and refunded if the carrier rejects it. The brand's own $4.00 registration fee is separate.

## Approval Process

After submission, your campaign goes through carrier review:

```
Submitted → Under Review → Approved/Rejected
              1-7 days
```

### Review Timeline

| Use Case | Typical Review Time |
|----------|---------------------|
| 2FA / Transactional | 1-2 business days |
| Customer Care | 2-3 business days |
| Marketing | 5-7 business days |

### Status Meanings

| Status | Description |
|--------|-------------|
| **Pending** | Campaign submitted, awaiting review |
| **Approved** | Ready to assign phone numbers |
| **Rejected** | Campaign rejected (see reason) |

## If Rejected

If your campaign is rejected:

1. Review the rejection reason provided
2. Update your campaign details or sample messages
3. Resubmit for review

Common rejection reasons:
- Sample messages don't match use case
- Missing opt-in/opt-out information
- Prohibited content type
- Incomplete description

## Campaign Limits

Each campaign has messaging limits based on your brand's Trust Score:

| Trust Score | Daily SMS Limit | Messages/Second |
|-------------|-----------------|-----------------|
| Low | 2,000 | 0.2 |
| Medium | 10,000 | 1 |
| High | 200,000 | 10+ |

> **Tip:**
> You can create multiple campaigns for different use cases. Each campaign can have its own phone numbers assigned.

## Next Steps

Once your campaign is approved:

  - [Assign Phone Numbers](https://www.zavu.dev/docs/guides/10dlc/phone-assignment): Connect your numbers to the campaign
  - [10DLC Overview](https://www.zavu.dev/docs/guides/10dlc/overview): Review the full process
