10DLC Registration
10DLC (10-Digit Long Code) is the US carrier-mandated system for sending Application-to-Person (A2P) SMS messages using standard 10-digit phone numbers. All businesses sending SMS to US numbers must register through 10DLC to ensure deliverability and compliance.
Overview
US carriers (T-Mobile, AT&T, Verizon) require 10DLC registration for A2P messaging. Unregistered traffic faces:
- Aggressive filtering — messages silently blocked
- Higher fees — per-message surcharges for unregistered senders
- Low throughput — limited to ~1 message/second vs. 75+ when registered
Orbit handles the registration process through The Campaign Registry (TCR).
Registration Steps
Step 1: Register Your Brand
Create a brand identity that represents your organization.
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/10dlc/brand \
-H "X-API-Key: dv_live_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"entity_type": "PRIVATE_PROFIT",
"display_name": "Acme Corp",
"company_name": "Acme Corporation Inc.",
"ein": "12-3456789",
"phone": "+14155551234",
"street": "1 Market St",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "US",
"email": "compliance@acme.com",
"website": "https://acme.com",
"vertical": "TECHNOLOGY"
}'
entity_type must be one of PRIVATE_PROFIT, PUBLIC_PROFIT, NON_PROFIT, GOVERNMENT, or SOLE_PROPRIETOR. display_name, company_name, phone, street, city, state, postal_code, and email are required; ein and website are optional.
Response (201 Created):
{
"data": {
"brandId": "BXXXXXX",
"status": "PENDING"
},
"meta": {
"request_id": "req_abc123",
"timestamp": "2026-03-08T12:00:00Z"
}
}
Brand vetting typically completes within 24–48 hours.
Step 2: Create a Campaign
Register the specific use case for your messaging.
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/10dlc/campaign \
-H "X-API-Key: dv_live_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"brand_id": "BXXXXXX",
"usecase": "CUSTOMER_CARE",
"description": "Sending order updates and support responses to customers who opted in on our website checkout form.",
"sample_message": [
"Your order #12345 has shipped! Track at https://acme.com/track/12345",
"Hi! Your support ticket #567 has been resolved. Reply STOP to unsubscribe."
],
"message_flow": "Customers opt in via a web form at checkout and confirm consent. They can reply STOP at any time to opt out.",
"help_message": "Reply HELP for assistance or contact support@acme.com.",
"optout_message": "You have been unsubscribed and will receive no further messages."
}'
description must be at least 40 characters, message_flow at least 40, and both help_message and optout_message at least 20. sample_message is an array of 1–10 representative messages. Political-vertical campaigns (usecase of POLITICAL_ADVOCACY or POLLING_AND_VOTING, or is_political: true) additionally require a Campaign Verify cv_token.
Response (201 Created):
{
"data": {
"campaignId": "CXXXXXX",
"status": "PENDING"
},
"meta": {
"request_id": "req_def456",
"timestamp": "2026-03-08T12:05:00Z"
}
}
Step 3: Wait for Approval
Campaign review takes 1–5 business days. You can check status:
curl https://api.orbit.devotel.io/api/v1/compliance/10dlc/campaigns/CXXXXXX/status \
-H "X-API-Key: dv_live_sk_your_key_here"
Response:
{
"data": {
"campaignId": "CXXXXXX",
"status": "APPROVED",
"brandId": "BXXXXXX",
"mnoStatuses": {
"10017": "APPROVED",
"10035": "APPROVED",
"10095": "REVIEW"
},
"provider": "telnyx"
},
"meta": {
"request_id": "req_ghi789",
"timestamp": "2026-03-09T09:00:00Z"
}
}
The top-level status is the CSP-level decision. mnoStatuses is the per-carrier approval map (keys are MNO carrier ids — e.g. 10017 T-Mobile, 10035 AT&T, 10095 Verizon); a campaign can be APPROVED at the CSP level while still in REVIEW at an individual carrier.
Statuses:
| Status | Description |
|---|
PENDING | Submitted, awaiting carrier review |
APPROVED | Approved — you can start sending |
FAILED | Rejected — see rejectionReason for details |
Step 4: Start Sending
Once approved, messages sent from registered numbers receive full 10DLC throughput and deliverability.
Use Case Types
| Use Case | Description | Throughput |
|---|
customer_care | Support, account alerts | 75 msg/sec |
marketing | Promotions, offers | 75 msg/sec |
notifications | Transactional alerts | 75 msg/sec |
two_factor_auth | OTP/2FA codes | 75 msg/sec |
account_notifications | Account changes, billing | 75 msg/sec |
delivery_notifications | Shipping, delivery updates | 75 msg/sec |
mixed | Multiple use cases | 15 msg/sec |
low_volume | Under 6,000 msg/month | 1 msg/sec |
Vetting Scores
Your brand vetting score (0–100) affects throughput limits:
| Score | Throughput |
|---|
| 75–100 | Maximum (75 msg/sec per campaign) |
| 50–74 | Medium (15 msg/sec) |
| 1–49 | Low (4 msg/sec) |
Improve your vetting score by providing complete, accurate brand information including EIN, website, and stock symbol (if public).
Compliance Requirements
- Opt-in consent. You must have explicit consent from every recipient before sending.
- Opt-out handling. Honor STOP requests immediately. Orbit automatically processes STOP, CANCEL, and UNSUBSCRIBE.
- Message content. Sample messages must be representative of actual traffic.
- Consistent use. Only send messages that match your registered campaign use case.
Dashboard Registration
You can also complete the entire 10DLC registration through the Orbit dashboard:
- Navigate to Settings > Compliance > 10DLC
- Click Register Brand and fill in your company details
- Once the brand is approved, click Create Campaign
- Select your use case, add sample messages, and assign numbers
- Submit for carrier review
Troubleshooting
| Issue | Solution |
|---|
| Brand rejected | Verify your EIN matches IRS records exactly |
| Campaign rejected | Ensure sample messages match the selected use case and include opt-out language |
| Low vetting score | Provide complete brand info (website, stock symbol, full legal name) |
| Messages still filtered | Confirm the campaign status is approved and numbers are assigned |
Sending high-volume SMS without 10DLC registration may result in carrier filtering, message blocking, and potential number suspension.