SMS Phone Number Provisioning
Provision a phone number and register for A2P 10DLC compliance
Instructions
SMS Phone Number Provisioning
Provision a local or toll-free phone number for SMS outreach and complete A2P 10DLC registration required for business-to-person messaging in the US.
Why A2P 10DLC Matters
US carriers (AT&T, T-Mobile, Verizon) require A2P 10DLC registration for all business SMS sent via local (10-digit) numbers. Without registration, messages are throttled or blocked. Registration involves:
- Brand registration (your company)
- Campaign registration (your use case)
- Number assignment to the campaign
Twilio (Default)
Step 1: Buy a phone number
curl -X POST "https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/IncomingPhoneNumbers.json" \
--data-urlencode "AreaCode=415" \
--data-urlencode "SmsEnabled=true" \
-u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"
Cost: $1.15/month for a local US number.
Step 2: Register your brand
Via Twilio Console > Messaging > Trust Hub > A2P Brand Registration. Provide:
- Company legal name, EIN, address
- Company type (private, public, nonprofit)
- Stock exchange and ticker (if public)
Or via API:
curl -X POST "https://messaging.twilio.com/v1/a2p/BrandRegistrations" \
-d "CustomerProfileBundleSid=BUxxxxxxxx" \
-u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"
Brand registration fee: $4 one-time. Vetting fee: $40 one-time (optional but improves throughput).
Step 3: Register your campaign
curl -X POST "https://messaging.twilio.com/v1/Services/$TWILIO_MESSAGING_SERVICE_SID/UsAppToPerson" \
-d "BrandRegistrationSid=BNxxxxxxxx" \
-d "Description=Sales outreach to solution-aware B2B prospects" \
-d "MessageFlow=Prospects opt in via website form or respond to initial outreach. They can reply STOP at any time." \
-d "MessageSamples=[\"Hi {{first_name}}, saw {{company}} is scaling {{pain_area}}. We help teams like yours cut that timeline in half. Worth a 10-min chat? Reply YES or STOP to opt out.\"]" \
-d "UseCase=MIXED" \
-d "HasEmbeddedLinks=true" \
-d "HasEmbeddedPhone=false" \
-u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"
Campaign registration fee: $15/campaign one-time.
Step 4: Add number to Messaging Service
curl -X POST "https://messaging.twilio.com/v1/Services/$TWILIO_MESSAGING_SERVICE_SID/PhoneNumbers" \
-d "PhoneNumberSid=PNxxxxxxxx" \
-u "$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"
Throughput after registration
- Standard brand: 15-75 SMS/second (varies by carrier trust score)
- Sole proprietor: 1 SMS/second (very limited)
- High-volume brands with secondary vetting: up to 225 SMS/second
Salesmsg
Number provisioning and A2P 10DLC registration handled through Salesmsg dashboard: Settings > Phone Numbers > Add Number. Salesmsg manages the carrier registration process. Registration fee: included in plan. Processing time: 1-5 business days.
OpenPhone (Quo)
Each Quo user gets one local or toll-free number included. A2P 10DLC registration: Settings > Business Texting Registration. One-time fee: $19.50 + $1.50-3.00/month ongoing. Processing time: 2-7 business days.
Error Handling
- Registration rejected: Review company information for accuracy. Common issues: EIN mismatch, unregistered business name, insufficient campaign description.
- Number not SMS-capable: Verify
SmsEnabled=trueon the number resource. Some numbers are voice-only. - Low throughput: Apply for secondary brand vetting ($40 via Twilio) to increase per-second sending rate.
Timeline
Allow 3-7 business days for full A2P 10DLC registration. Start this BEFORE writing message copy. Do NOT send any outbound SMS until registration is confirmed and active.