> This page is part of the [Customer.io documentation](https://docs.customer.io). For the complete index, see [llms.txt](https://docs.customer.io/llms.txt).
> Last updated: June 16, 2026

# Build a compliant SMS opt-in form

U.S. carriers require specific elements on your SMS opt-in form before they approve your sender registration. This page covers each requirement so you can build a compliant consent surface and avoid registration delays.

Before you [register as an SMS sender](/journeys/channels/sms/registration/get-a-phone-number/), carriers and SMS providers like Twilio review your opt-in form to make sure it meets their compliance standards. A missing element can delay or block your registration.

This page covers the **11 elements** that a compliant U.S. SMS opt-in form must include. For information about the opt-in and opt-out *process*, including keywords, welcome messages, and what to show SMS providers like Twilio, see [Opt-in and out flow](/journeys/channels/sms/registration/opt-in-and-out-flow/).

 These requirements are specific to U.S. SMS messaging

International SMS requirements vary by country. This page focuses on U.S. carrier and **Telephone Consumer Protection Act (TCPA)** requirements—which are typically best practices anyway. But if you send messages internationally you should make sure you comply with local regulations.

## Required elements[](#required-elements)

Your opt-in form must include all of the following elements. Carriers evaluate each one during registration.

1.  **Brand name in heading.** Your company or brand name appears in the form heading so users know who they’re consenting to receive messages from.
2.  **Separate mobile number field.** The user manually enters their phone number. Pre-filled or inferred numbers don’t satisfy consent requirements. Carriers need evidence that the user actively provided their number.
3.  **Unchecked consent checkbox.** The checkbox is unchecked by default. Pre-checked boxes don’t meet the “prior express written consent” standard under TCPA rules. The user must actively check the box to opt in.
4.  **Single-purpose consent.** SMS consent isn’t bundled with other actions like email signup, account creation, or terms-and-conditions acceptance. The checkbox is dedicated to SMS consent only.
5.  **Specific program description.** The disclosure describes the messages you send, like “promotional offers and order updates” rather than just “text messages.”
6.  **“Consent is not a condition of any purchase.”** When your form appears alongside a transaction like a checkout page, state that SMS consent isn’t required to complete a purchase. This is a TCPA requirement.
7.  **Frequency disclosure.** State how often you’ll message users. Use a specific number when possible, like “Up to 4 messages per month,” or “Message frequency varies” if it varies.
8.  **“Message and data rates may apply.”** Include this standard disclosure on the form. Carriers also require it in your welcome message after a user opts in.
9.  **HELP and STOP keywords called out.** Call out both keywords *before* the user consents—for example, “Reply HELP for help and STOP to cancel.”
10.  **Privacy policy and terms of service links.** Link both so they’re reachable from the form. Your privacy policy must also state that mobile numbers aren’t sold or shared with third parties. See [Update your privacy policy for SMS](/journeys/channels/sms/registration/your-privacy-policy/).
11.  **Clear submit action.** The submit button label matches the user’s intent, like “Sign Up” or “Subscribe.” The form can be submitted without checking the SMS consent checkbox. Checking it opts the user into SMS only, and leaving it unchecked simply means they won’t receive text messages.

## Example opt-in form[](#example-opt-in-form)

This example shows how the 11 elements come together on a single form. The bracketed text—like `[brand name]` and `[program description]`—marks where you fill in your own details.

[![An SMS opt-in form with a brand-name heading, a manually entered mobile number field, and an unchecked consent checkbox. The consent text describes the program, states that consent isn't a condition of any purchase, discloses message frequency and that message and data rates may apply, calls out the HELP and STOP keywords, and links to the privacy policy and terms of service. A Subscribe button completes the form.](https://docs.customer.io/images/sms-opt-in-example.png)](#9f431c14b46eb782006a6c02b6447c66-lightbox)