Submit 10DLC registration

View as Markdown
Register a US number for 10DLC — the carrier registration required before a number can send SMS or MMS to US phone numbers. US carriers **block** outbound SMS and MMS sent from an unregistered 10-digit number to a US phone number. Registering this number lifts that block. Inbound texts, voice calls in either direction, and messaging to numbers outside the US are unaffected. **Eligibility.** The number must be US, have the `sms` capability, and not have the `imessage` capability (iMessage numbers send over Apple Messages for Business, not carrier SMS). 10DLC registration is currently offered on pay-as-you-go accounts only. An ineligible number returns `403` — read the `tenDlc` object on the number to know in advance. **Fee.** A one-time **$25.00** per number, taken from the account's credit balance when the submission is accepted. A balance below the fee returns `402`. **Resubmitting after a rejection is free** — the number is charged at most once, ever. **What happens next.** The submission lands in `in_review` while Dial checks the details, moves to `with_carrier` once filed with the carrier registry, and finishes as `approved` or `rejected`. Carriers usually decide within 3–5 business days. Dial emails the account owner on approval and on rejection; a rejection carries a `reason` explaining exactly what to change before resubmitting. **Body.** `multipart/form-data` only — a screenshot of the opt-in flow is required. Send `kind`, a JSON `data` part carrying the field set for that kind, and one `optInImage` file part. ### Fields — both kinds Every field is required unless noted. | Key | Description | |---|---| | `firstName`, `lastName` | The person responsible for the registration. | | `email` | Contact email. | | `phone` | Mobile number in E.164. Receives a verification SMS — reply `YES`. | | `street`, `city`, `state`, `zip` | US mailing address; `state` is the 2-letter code. Carriers use it to verify the registration. | | `country` | Always `US`. | | `useCaseDescription` | Who is messaged and why. At least 40 characters. | | `messageFlow` | How people opt in. At least 40 characters. | | `containsUrls`, `containsPhones` | Booleans. Optional; default false. | ### Fields — `business` only | Key | Description | |---|---| | `businessName` | Registered business or DBA name. | | `numberCount` | How many numbers you plan to use. Whole number, at least 1. | | `businessType` | One of `Partnership`, `Corporation`, `LLC`, `Co-operative`, `Sole Proprietorship`, `Non-profit`. | | `industry` | The business's industry. | | `position` | Your position, e.g. `Head of Operations`. | | `ein` | Tax ID. | | `regIdType` | One of `EIN`, `DUNS`, `GIIN`, `LEI`. Optional; defaults to `EIN`. | | `companyType` | One of `Private`, `Public`, `Non profit`, `Government`. | | `website`, `privacyUrl`, `termsUrl` | Full `https://` URLs. | | `social` | Social media URL. Optional. | | `regions` | Regions of operation. Optional; defaults to `USA AND CANADA`. | | `useCase` | Campaign use case, e.g. `CUSTOMER CARE`. Optional; defaults to `MIXED`. | | `sample1`, `sample2` | Two sample messages, at least 20 characters each. Each must name the brand and carry an opt-out instruction. |

Authentication

AuthorizationBearer

Your Dial API key, sent as Authorization: Bearer sk_live_...

Path parameters

idstringRequired

Request

This endpoint expects a multipart form containing a file.
kindenumRequired

Text part. Who is registering. A sole proprietor operates under their own name and has no EIN — lower throughput, quicker to approve. A business is a registered company with an EIN.

Allowed values:
datastringRequired

Text part. A JSON object carrying the field set for the chosen kind — see the tables above.

optInImagefileRequired

A single uploaded file part: a screenshot of the form, checkbox, or page where people opt in, with the consent wording and the checkbox both visible. jpeg, png, gif, or webp; max 2 MB.

Response

Submitted, and the fee charged unless this was a free resubmission.
registrationobject
A number's 10DLC registration, including the field set that was submitted. Returned by Get and Submit 10DLC registration.

Errors

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
404
Not Found Error
409
Conflict Error
413
Content Too Large Error