What is A2P 10DLC, and why is it needed?
A2P means Application-to-Person: software sends a text message to a person. This includes appointment reminders, replies to customer inquiries and follow-up messages sent by an AI assistant, not only advertising. 10DLC means 10-digit long code, the ordinary US local phone number used as the sender. US mobile networks require registration for application messages sent through these local numbers to US recipients. Registration identifies the business and explains what it sends and how recipients agree to receive it. It helps networks distinguish expected business messages from spam. Buying a number and enabling SMS alone do not complete registration.What gets registered?
- Business (brand): the legal business responsible for the messages.
- Messaging campaign: the purpose, sample messages and consent process. Here, “campaign” means the registered SMS use case; it does not mean you must run a bulk campaign.
- Sender number: the eligible phone number linked to the approved campaign.
When does this apply in your workspace?
Use this registration for purchased, SMS-capable US local numbers. Voice-only use does not require this SMS registration. Imported numbers are registered through your own carrier. Toll-free numbers have a separate verification process and cannot use this 10DLC form; numbers outside the US are outside this registration flow. Whitelabel customers register the actual business sending messages in their own workspace. Another customer’s approval does not cover their business.Why are there setup and monthly fees?
The one-time charge covers registration; the recurring charge keeps the messaging campaign subscription active. Number rental and sent SMS are billed separately. Review the exact setup price, monthly price and applicable taxes before payment. Prices can differ between direct and whitelabel workspaces. A later pricing change does not alter an existing subscription’s agreed price. Monthly billing starts when payment succeeds, including while external review is pending. Review has no guaranteed completion date and may require corrections. Have your real opt-in process, privacy policy, SMS terms and message examples ready before submitting.Who can send SMS
How message length affects cost
SMS is billed per segment, not per message. One segment holds:- 160 characters of plain ASCII text, or
- 70 characters if the message contains anything outside that set — emoji, most accented letters, or a small set of symbols like
{ } [ ] ~ ^ | €.
Enable outbound SMS
- Open Settings → Numbers and select the number.
- Open the SMS tab (visible when the number is SMS-capable).
- Enable Allow outbound SMS.
- For purchased US local numbers, use SMS registration (A2P) below. For carrier imports, complete registration in your own carrier account and wait for campaign approval.
Register a purchased US number for SMS
In Settings → Numbers, eligible numbers show an SMS status tag beside the number, for example Not registered, In review or Active. Select the tag on an active purchased US local number that supports SMS to open SMS registration (A2P). Imported numbers use registration in your own carrier account. Canadian, non-US, toll-free, inactive and non-SMS numbers are not eligible for this action.- Enter the legal business name, registration identifier, address and authorized contact. Use the legal name exactly as registered with the IRS or your tax authority, including suffixes such as LLC or Inc.; a different spelling can fail the brand review. For US and Canadian addresses, use the two-letter state or province code, for example AZ.
- Describe the messages, provide two examples, and link the public privacy policy, SMS terms and actual opt-in process. A privacy policy or an unrelated verification code is not consent to receive reminders or marketing.
- Review the one-time registration price and monthly subscription. Prices exclude tax; the payment dialog calculates applicable tax. Registration is separate from number rental and SMS usage. Monthly billing begins with payment. Choose the registration volume first: Low volume allows up to 6,000 message segments per day to US numbers (2,000 per day to T-Mobile) and suits most businesses; with Standard volume the daily limit follows your trust score (6,000 to 400,000 segments, 2,000 to 200,000 per day to T-Mobile) and includes additional business vetting. Both options show their one-time and monthly price before you continue. After payment the application is submitted, and its business details and volume can’t be changed. Before you pay, Milian checks the application for common rejection reasons, such as missing opt-in details, example messages without your business name or STOP wording, or link and phone settings that don’t match the examples. Findings marked Must fix need your confirmation before you can submit anyway; Edit opens the step to correct.
- Confirm the price and pay using the existing secure payment dialog. The application is submitted only after payment is confirmed. External review can require corrections; payment does not guarantee approval.
- Track the review in the dialog: payment, business verification, brand registration, campaign review and number activation. After approval, another eligible number in the same workspace can use the registration if the business, messages and consent process match. This does not create another registration subscription. One registration covers all US numbers in the workspace: numbers that aren’t part of it yet show Not linked, and after approval Use for all US numbers links every remaining eligible number at once.
GET and POST /api/v1/phone-numbers/{id}/sms-registration to read an application, save truthful details for a quote, or attach another eligible number. These actions require phone-number read or write permission. Use GET /api/v1/billing/sms-registration to read the workspace subscription, and POST on that endpoint with checkout (number ID, quote reference and explicit price confirmation) or cancel (registration ID and explicit confirmation). Reading needs billing:read and either a workspace API key or a user-authorised credential of an owner, admin or billing manager. checkout and cancel need billing:write and a user-authorised credential of an owner, admin or billing manager, because a person approves the payment; workspace API keys are refused. Registration responses include review_stage (business, brand, campaign or numbers): how far the external review got, including where a rejected application stopped. The MCP tools are get_sms_registration, get_sms_registration_prices, review_sms_registration, resubmit_sms_registration, save_sms_registration, checkout_sms_registration, cancel_sms_registration, attach_sms_registration_number and attach_all_sms_registration_numbers. While no application exists or it is still a draft, GET also returns volume_options with the one-time and monthly price of both volumes. POST with review checks the same details for common rejection reasons without saving anything; it returns ready, checked_by_ai and findings. POST with resubmit applies corrected details to a rejected application where the correction is free and returns corrections_left; a correction that needs a new, charged review returns 402 with correction_requires_payment. attach_all links every other eligible number of the workspace at once; GET returns unlinked_numbers, the count of eligible numbers not linked yet.
How long review takes
Review times are set by US carriers and aren’t guaranteed. The status in the dialog updates automatically, and each step shows its typical duration while it’s still ahead. Messages to US numbers stay blocked until the number shows Active.
What gets rejected
US carriers don’t accept these businesses or topics for business texting, even with consent: high-risk financial services (payday, high-interest or third-party loans, crypto, debt collection, consolidation or relief, credit repair), third-party lead generation and affiliate marketing, get-rich-quick schemes, cannabis, CBD and vaping products, prescription drugs, gambling and sweepstakes, phishing (including simulated phishing), firearms and tobacco. Alcohol is only possible with an age gate. Most other rejections can be avoided. Check these points before you submit:- Opt-in: Describe exactly where and how people agree to receive texts (for example an optional, unchecked checkbox on a web form, a keyword or a paper form) and quote what they see: your business name, the kind of messages, “Message frequency varies”, “Message and data rates may apply”, and how to reply STOP and HELP.
- Example messages: Include your business name, add “Reply STOP to opt out” to at least one, mark variable parts with [brackets], and match the messaging purpose you selected.
- Privacy policy: State that mobile numbers and SMS consent aren’t sold or shared with third parties for marketing.
- SMS terms: Include the program description, message frequency, “Message and data rates may apply”, HELP and STOP instructions and a support contact.
- Website and links: Use a live website that matches your business name. Put links on your own domain; public link shorteners are rejected.
- Business name: Use the legal name exactly as registered with the tax authority.
Get help from Milian
Ask Milian to help prepare your SMS registration. It can explain required fields and supported values, help correct formats, and draft message examples from facts you provide. Confirm that your business details are accurate and your opt-in process is already available before saving the application. Milian can prepare the application and guide an authorized user to checkout after explicit acceptance of the quoted one-time and monthly prices. You complete payment in the secure payment dialog. Milian can then read the registration status and explain any requested corrections; payment and business approval alone do not mean the campaign and number are ready to send. Available actions follow your workspace permissions.REST API
phone_numbers:write
See also: OpenAPI POST /sms/send, MCP tool send_sms.