SMSCompliance10DLCA2P

What is A2P 10DLC? The Complete Guide for Developers

Everything you need to know about A2P 10DLC: what it is, why it exists, registration requirements, throughput limits, and how to get started with compliant SMS messaging.

Written by: Jennifer VillalobosReviewed by: Victor VillalobosDecember 22, 202512 min read

What is A2P 10DLC? The Complete Guide for Developers

If you're sending SMS messages in the United States, you've probably heard about A2P 10DLC. But what exactly is it, and why does it matter for your business? This comprehensive guide covers everything developers need to know.

Understanding A2P 10DLC

A2P stands for Application-to-Person messaging. This is any SMS sent from a business application to a consumer's phone. Examples include:
  • Verification codes (OTP/2FA)
  • Order confirmations
  • Appointment reminders
  • Marketing campaigns
  • Notifications and alerts
10DLC stands for 10-Digit Long Code. These are standard US phone numbers with 10 digits, like (312) 555-1234. Before the 10DLC system, these numbers were primarily used for person-to-person (P2P) communication.

Why Was 10DLC Created?

In the past, businesses could send unlimited SMS messages from any phone number without oversight. This led to massive spam problems:

  • Unwanted marketing messages
  • Phishing attempts
  • Robocall-style text blasts
  • No accountability for bad actors
In 2021, the major US carriers (AT&T, T-Mobile, and Verizon) collaborated to create the 10DLC framework. The goals were:
  • Reduce spam - Require businesses to register and be accountable
  • Improve deliverability - Legitimate businesses get better throughput
  • Consumer protection - Give carriers tools to block bad actors
  • Compliance - Ensure businesses follow messaging regulations
  • How 10DLC Registration Works

    Step 1: Brand Registration

    First, you register your business (brand) with The Campaign Registry (TCR). You'll need:

    • Legal business name
    • EIN (Employer Identification Number)
    • Business address
    • Website URL
    • Contact information
    • Business type/vertical
    Brand registration typically takes 1-2 business days.

    Step 2: Campaign Registration

    Next, you register your messaging use case (campaign). Each campaign describes:

    • Use case - What type of messages you're sending (2FA, marketing, notifications, etc.)
    • Sample messages - Examples of the content you'll send
    • Opt-in process - How users consent to receive messages
    • Opt-out process - How users can stop receiving messages (usually "Reply STOP")
    Campaign registration takes 1-5 business days, depending on your use case.

    Step 3: Number Assignment

    Finally, you assign phone numbers to your registered campaigns. Each number can only be associated with one campaign.

    Trust Scores and Throughput

    After registration, your brand receives a Trust Score that determines your messaging throughput (messages per second). The scoring system:

    Trust ScoreMessage Throughput
    Low1 msg/sec
    Medium-Low2 msg/sec
    Medium5 msg/sec
    Medium-High10 msg/sec
    High15 msg/sec

    Factors Affecting Trust Score

    • Business age and reputation
    • Brand vetting (optional $40 fee for faster approval)
    • Use case type (2FA gets higher scores than marketing)
    • Historical messaging behavior

    10DLC vs Short Codes vs Toll-Free

    Feature10DLCShort CodeToll-Free
    Number format(312) 555-1234123451-800-555-1234
    Setup time1-2 weeks8-12 weeks1-2 weeks
    Monthly costLow$1,000+Medium
    Throughput1-15 msg/sec100+ msg/sec3-10 msg/sec
    Best forMost use casesHigh-volume campaignsCustomer support

    When to Use Each

    10DLC is ideal for:
    • Small to medium businesses
    • Transactional messages (OTP, confirmations)
    • Moderate marketing campaigns
    • Two-way conversations
    Short Codes are better for:
    • Very high-volume messaging
    • Time-sensitive campaigns
    • Large enterprises with budget
    Toll-Free works well for:
    • Customer support
    • Businesses wanting a 1-800 image
    • Lower registration requirements

    What Happens Without Registration?

    As of February 2025, all major US carriers block unregistered A2P traffic. If you try to send without registration:

  • Messages get blocked - They won't be delivered
  • Numbers may be suspended - Carriers can disable your number
  • Potential penalties - Carriers can blacklist your business
  • Poor deliverability - Even if some messages go through, rates are terrible
  • Common 10DLC Use Cases

    1. Two-Factor Authentication (2FA)

    typescript
    import Zavudev from "@zavudev/sdk"; const client = new Zavu(); await client.messages.send({ to: "+14155551234", channel: "sms", text: "Your verification code is 847293. Valid for 5 minutes.", });
    Campaign type: Authentication (highest throughput)

    2. Order Notifications

    typescript
    await client.messages.send({ to: "+14155551234", channel: "sms", text: "Your order #12345 has shipped! Track: https://track.example.com/12345", });
    Campaign type: Delivery notifications

    3. Appointment Reminders

    typescript
    await client.messages.send({ to: "+14155551234", channel: "sms", text: "Reminder: Your appointment is tomorrow at 2:00 PM. Reply Y to confirm or N to reschedule.", });
    Campaign type: Account notifications

    4. Marketing Campaigns

    typescript
    await client.messages.send({ to: "+14155551234", channel: "sms", text: "Flash sale! 20% off everything today only. Shop now: https://shop.example.com. Reply STOP to unsubscribe.", });
    Campaign type: Marketing (requires explicit opt-in)

    Registration Requirements by Use Case

    Use CaseOpt-in RequirementSample Message NeededApproval Time
    2FA/OTPImplicitYes1-2 days
    TransactionalWeb form/AppYes1-3 days
    NotificationsWeb form/AppYes2-3 days
    MarketingDouble opt-inYes3-5 days
    MixedStrictest appliesYes3-5 days

    How Zavu Simplifies 10DLC

    Managing 10DLC compliance can be complex. Here's how Zavu handles it for you:

    1. Automatic Registration

    When you create a sender in Zavu, we automatically:
    • Register your brand with TCR
    • Create the appropriate campaign
    • Assign your phone numbers
    • Handle carrier connections

    2. Included Fees

    TCR charges registration fees that add up:
    • $4 brand registration
    • $15+ campaign registration
    • Monthly maintenance fees
    With Zavu, these fees are included in your plan.

    3. Compliance Monitoring

    Carrier policies change frequently. We:
    • Monitor policy updates
    • Adjust your registration as needed
    • Alert you about required changes
    • Prevent compliance issues before they happen

    4. Simple API

    typescript
    import Zavudev from "@zavudev/sdk"; const client = new Zavu(); // That's it - we handle the compliance const result = await client.messages.send({ to: "+14155551234", channel: "sms", text: "Your verification code is 123456", }); console.log(result.message.id);

    Common 10DLC Questions

    Do I need to register if I only send a few messages?

    Yes. There are no volume exemptions. Even one message per day requires registration.

    Can I use my existing phone number?

    Yes, as long as it's a 10-digit US number. You'll need to register it with TCR before sending.

    How long does registration take?

    • Brand: 1-2 business days
    • Campaign: 1-5 business days
    • Total: Usually under 1 week

    What if my campaign is rejected?

    Common rejection reasons include:
    • Missing opt-out instructions in samples
    • Unclear use case description
    • Missing business information
    Zavu's team reviews your registration before submission to minimize rejections.

    Can I send to multiple countries?

    10DLC only applies to US numbers. For international messaging, different regulations apply. Zavu handles this automatically based on the destination number.

    Getting Started

    Ready to start sending compliant SMS? Here's how:

  • Sign up for Zavu at dashboard.zavu.dev
  • Create a sender - We'll guide you through the registration
  • Install the SDK - npm install @zavudev/sdk
  • Send your first message - Our API handles the rest
  • Need help with 10DLC compliance? Our team is here to help. Contact us or join our Discord community.

    Need help? Contact us or join our Discord community for support.

    Follow us on social media

    Ready to start building?

    Get started with Zavu's unified messaging API today.

    Get Started Now
    What is A2P 10DLC? The Complete Guide for Developers | Zavu Blog | Zavu