Skip to main content
This guide shows you how to complete 10DLC (10-Digit Long Code) registration using the Telnyx CLI, from brand creation through campaign approval.

Why 10DLC?

US carriers require 10DLC registration for Application-to-Person (A2P) messaging from local phone numbers. Without it, your messages may be blocked or throttled. Registration establishes your business identity with carriers and unlocks higher throughput based on your trust score.
For a deeper explanation of 10DLC, trust scores, and carrier requirements, see Understanding 10DLC.

Prerequisites

Quick Start: Interactive Wizard

The easiest way to register is using the interactive wizard:
telnyx 10dlc wizard
This guides you through brand creation, campaign setup, and number assignment step-by-step.

Manual Registration

Step 1: Create a Brand

A brand represents your business identity for 10DLC registration.

Standard Business

telnyx 10dlc brand create \
  --entity-type PRIVATE_PROFIT \
  --display-name "Acme Corp" \
  --company-name "Acme Corporation Inc" \
  --ein 12-3456789 \
  --phone +15551234567 \
  --street "123 Main Street" \
  --city "San Francisco" \
  --state CA \
  --postal-code 94102 \
  --country US \
  --vertical TECHNOLOGY \
  --website https://acme.com

Sole Proprietor

telnyx 10dlc brand create --sole-prop \
  --display-name "John's Plumbing" \
  --phone +15551234567 \
  --email [email protected]
Entity Types:
  • PRIVATE_PROFIT - Private company
  • PUBLIC_PROFIT - Publicly traded company
  • NON_PROFIT - Non-profit organization
  • GOVERNMENT - Government entity
  • SOLE_PROPRIETOR - Individual / sole proprietor

Step 2: Verify Brand (if required)

Some brands require phone verification:
# Check brand status
telnyx 10dlc brand get <brand-id>

# If verification needed, you'll receive an OTP
telnyx 10dlc brand verify <brand-id> --pin 123456

Step 3: Create a Campaign

A campaign defines your messaging use case:
telnyx 10dlc campaign create \
  --brand-id <brand-id> \
  --usecase MIXED \
  --description "Customer notifications and support" \
  --sample-message-1 "Your order #12345 has shipped. Track at https://acme.com/track" \
  --sample-message-2 "Reminder: Your appointment is tomorrow at 2pm. Reply STOP to opt out."

Common Use Cases

# List all available use cases
telnyx 10dlc usecases
Use CaseDescription
2FATwo-factor authentication codes
MARKETINGPromotional messages
CUSTOMER_CARECustomer support messages
DELIVERY_NOTIFICATIONShipping/delivery updates
ACCOUNT_NOTIFICATIONAccount alerts
MIXEDMultiple purposes
POLLING_VOTINGSurveys and polls
PUBLIC_SERVICE_ANNOUNCEMENTPSAs

Step 4: Assign Phone Numbers

Assign your US phone numbers to the campaign:
# Assign a single number
telnyx 10dlc assign +15551234567 <campaign-id>

# Check assignment status
telnyx 10dlc assignment status +15551234567

Step 5: Verify Everything

# Check brand status
telnyx 10dlc brand list

# Check campaign status
telnyx 10dlc campaign list

# Verify number assignment
telnyx number get +15551234567

Campaign Approval

After submission, campaigns go through carrier approval:
StatusMeaning
PENDINGAwaiting review
APPROVEDReady to send messages
REJECTEDReview feedback and resubmit
Check status:
telnyx 10dlc campaign get <campaign-id>
Campaign approval can take 1-7 business days. Do not send A2P messages until approved.

Best Practices

Sample Messages

Your sample messages should:
  • Represent actual messages you’ll send
  • Include opt-out language (“Reply STOP to unsubscribe”)
  • Match your stated use case
  • Not contain placeholder text

Throughput

10DLC throughput depends on your trust score:
Trust ScoreMessages/Second
Low0.2
Medium1
High10+
Higher trust scores come from:
  • Verified business information
  • Good messaging practices
  • Low spam/complaint rates

Troubleshooting

”Brand verification failed”

  • Double-check EIN matches IRS records exactly
  • Verify business address is current
  • Ensure phone number is associated with business

”Campaign rejected”

Common reasons:
  • Sample messages don’t match use case
  • Missing opt-out language
  • Vague or generic description
Solution: Review feedback, update campaign details, and resubmit.

”Number assignment pending”

Assignment can take up to 24 hours. Check status:
telnyx 10dlc assignment status +15551234567

Complete Script Example

#!/bin/bash
# 10dlc-setup.sh - Complete 10DLC registration

set -e

# Create brand
echo "Creating brand..."
BRAND_ID=$(telnyx 10dlc brand create \
  --entity-type PRIVATE_PROFIT \
  --display-name "My Company" \
  --company-name "My Company Inc" \
  --ein 12-3456789 \
  --phone +15551234567 \
  --street "123 Main St" \
  --city "San Francisco" \
  --state CA \
  --postal-code 94102 \
  --country US \
  --vertical TECHNOLOGY \
  --website https://mycompany.com \
  --json | jq -r '.id')

echo "Brand created: $BRAND_ID"

# Wait for brand approval (in practice, check status)
echo "Waiting for brand approval..."
sleep 5

# Create campaign
echo "Creating campaign..."
CAMPAIGN_ID=$(telnyx 10dlc campaign create \
  --brand-id "$BRAND_ID" \
  --usecase CUSTOMER_CARE \
  --description "Customer support and account notifications" \
  --sample-message-1 "Your support ticket #123 has been updated. View at https://mycompany.com/support" \
  --sample-message-2 "Your password was changed. If this wasn't you, contact support immediately." \
  --json | jq -r '.id')

echo "Campaign created: $CAMPAIGN_ID"

# Assign numbers
echo "Assigning phone numbers..."
telnyx 10dlc assign +15551234567 "$CAMPAIGN_ID"

echo "✅ 10DLC setup complete!"
echo "Brand ID: $BRAND_ID"
echo "Campaign ID: $CAMPAIGN_ID"
echo ""
echo "Next: Wait for campaign approval before sending messages."

Next Steps