Most signup forms that cause trouble have no missing field. They have one bundled checkbox that says "I agree to receive communications." That sentence won't hold up under carrier review, and it is weak evidence if a TCPA demand letter arrives. The fix is short wording that names the brand, says what texts the person will get and how often, and tells them how to stop.
This post gives you that wording for web forms, keyword signups and email, explains when double opt-in is worth the drop in signups, and covers Constant Contact, DocuSign and other form builders. The examples are written to be copied. Replace the bracketed parts and keep the structure.
What every SMS opt-in needs to say
Carriers reviewing a 10DLC campaign and lawyers reviewing a TCPA claim look for the same few elements. If one is missing, registration can be rejected, and you have less to show in a dispute.
| Element | Example wording | Why it's there |
|---|---|---|
| Brand name | "Brightline Dental" | The recipient has to know who is texting |
| Message type | "appointment reminders and occasional offers" | Consent covers what you described, nothing wider |
| Frequency | "up to 4 msgs/month" or "msg frequency varies" | Carriers check for it |
| Cost disclosure | "Msg & data rates may apply" | Standard carrier requirement |
| Opt-out and help | "Reply STOP to cancel, HELP for help" | Required in the disclosure and in the first message |
| Not a condition of purchase | "Consent is not a condition of purchase" | Needed for marketing consent under the TCPA |
| Terms and privacy links | Links to both pages | Reviewers open them |
| Unchecked checkbox | Box starts empty | A pre-ticked box doesn't count as consent |
For the privacy policy side, including the clause that says you won't share mobile numbers with third parties for marketing, see 10DLC website, privacy policy and terms requirements. For phrases that get campaigns rejected, see the opt-in wording that clears registration on the first submission.
Web form wording you can copy
Marketing plus transactional (most common)
☐ Yes, text me at the number above. By checking this box, I agree to receive recurring marketing and account texts from [Brand], including offers and order updates, at the number provided, which may be sent using an automated system. Consent is not a condition of purchase. Msg frequency varies. Msg & data rates may apply. Reply STOP to cancel, HELP for help. See our [Terms] and [Privacy Policy].
Transactional only (reminders, order updates)
☐ Text me appointment reminders from [Brand] at the number above. Up to 4 msgs/month. Msg & data rates may apply. Reply STOP to cancel, HELP for help. [Terms] | [Privacy Policy]
If you later want to send promotions to people who signed up under this wording, you need fresh consent. The marketing and transactional split matters legally. Prior express written consent vs implied consent explains where the line sits.
Checkout page
☐ Send me text updates about this order and future offers from [Brand]. Up to 6 msgs/month. Consent is not a condition of purchase. Msg & data rates may apply. Reply STOP to opt out.
Keep this checkbox separate from the "I accept the terms" box. If they are combined, the SMS consent is no longer freely given.
Keyword opt-in examples
Keyword signups work well on printed material, receipts and counter signs. The call to action carries the same disclosures in shorter form.
Poster or receipt:
Text JOIN to (555) 555-0123 for appointment reminders and offers from [Brand]. Up to 4 msgs/month. Msg & data rates may apply. Reply STOP to cancel. Terms: [short URL]
Auto-reply to the keyword:
[Brand]: You're subscribed to reminders and offers, up to 4 msgs/month. Msg & data rates may apply. Reply HELP for help, STOP to cancel.
That reply is 138 characters of plain GSM-7 text, so it fits in one 160-character segment. Adding a party emoji drops the single-segment limit to 70 characters, and the same text becomes 3 segments. Leave confirmation texts plain.
Choose keywords that are hard to mistype and don't overlap with opt-out words. JOIN, REMIND, DEALS and VIP are all fine. Don't use STOP, END, CANCEL or QUIT, and don't use any word a carrier treats as an opt-out. People also opt out with words that aren't STOP. Opt-out variants carriers don't catch covers handling those.
Ready does not create a per-contact consent record when someone replies with a keyword. Ready records your attestation on each bulk send and each API send that sets consent_attested: who sent, to how many, and when. The recipient's opt-in time, the wording they saw and the page they signed up on should live in your own system, whether that's a CRM, form tool or database. If a keyword is how someone joined, log the inbound message and timestamp on your side.
Email signup wording, and why it stays separate
Email and SMS consent are separate permissions under separate rules. US email runs on CAN-SPAM, which is opt-out based. SMS marketing runs on the TCPA, which requires prior express written consent. If you have Canadian or EU subscribers, CASL and GDPR require opt-in for email too.
A combined form should have two checkboxes:
☐ Email me product news and offers from [Brand]. Unsubscribe anytime.
☐ Text me offers from [Brand] at the number above. Msg frequency varies. Consent is not a condition of purchase. Msg & data rates may apply. Reply STOP to cancel. [Terms] | [Privacy]
A filled-in phone field doesn't count as SMS consent. Neither does an email opt-in that sits next to a phone field. For email-first templates, see opt-in language examples for email and text sign-up forms.
Double opt-in: the tradeoff in numbers
Double opt-in sends a confirmation text after the form, and the subscription starts only when the person replies YES:
[Brand]: Reply YES to confirm reminders and offers, up to 4 msgs/month. Msg & data rates may apply. Reply STOP to cancel.
What it costs in signups. Some people never reply. Teams that measure this often report losing roughly a fifth to a third of form signups at the confirm step. Treat that as an industry approximation, not a guarantee. Double opt-in loses sign-ups up front and still wins on revenue per contact goes through the tradeoff in more detail.
What it costs in texts. This is a worked example under stated assumptions. Suppose 1,000 form signups a month, a 1-segment confirmation, and a 75% YES rate. On Ready, inbound replies are billed like sent texts, so the cost is:
- 1,000 confirmations × 1 segment × ($0.0075 + $0.0045)
- 750 YES replies × 1 segment × ($0.0075 + $0.0045)
- Total: 1,750 segments, which is 1,750 × $0.0075 = $13.13 at the Standard rate, plus 1,750 × $0.0045 in carrier fee
Ready's all-in prices per segment include the carrier fee but not screening: Scrub lists and Number validation, the two switches in Settings under Compliance, each add $0.003 per segment when switched on, shown as screening on your bill, and both are off by default. Unless you turn the opt-out footer off, the first text to each contact, and one again from time to time, also gets "Reply STOP to opt out" and your business name if the message does not already have them, so a text close to the segment limit can bill one more segment.
What you get for it. You get a list with no mistyped numbers and no one signed up by somebody else. You also get a dated YES reply from each subscriber, which you store as evidence. Use double opt-in when signups come from shared or public devices, from contests or giveaways, or from anywhere a number could be entered by someone other than its owner. A single opt-in checkbox at an authenticated checkout is usually fine.
Tool-specific notes
Constant Contact and other email-first platforms
Email-first tools such as Constant Contact, Mailchimp and Klaviyo build signup forms where email is the main field and SMS is an add-on. Check these points:
- The SMS consent checkbox is separate from the email consent and starts unchecked.
- The disclosure text under the phone field includes every element from the table above. The default copy may be shorter than what your carrier reviewer expects.
- When you export contacts to a different sending platform, export the consent metadata with them: the timestamp, the source form and the wording shown. A phone number without its consent record is hard to defend.
DocuSign and contract-based consent
Signed agreements such as patient intake forms, service contracts and leases can capture strong written consent, provided the SMS clause has its own checkbox or initial field. If the clause is buried in paragraph 14 of terms the person signs as a whole, the consent isn't separate. Put the same disclosure wording next to a separate checkbox, and keep the completed envelope as your record. For healthcare intake specifically, patient consent to receive text messages covers the HIPAA side.
Typeform, Jotform, Google Forms, Webflow
All of these can hold compliant wording. The common mistakes are:
- Making the SMS checkbox required. Required consent isn't freely given.
- Leaving out the terms and privacy links.
- Not recording the page URL with each submission.
Turn on timestamps and hidden URL fields so every submission records what was shown and where.
Once the opt-in is collected
When you send, Ready handles the parts that come after consent:
- Opt-outs. STOP and UNSUBSCRIBE are honored automatically. An opted-out contact is refused across every campaign, and refused sends aren't charged.
- Quiet hours. Texts sent outside permitted hours in the recipient's area are held and sent later. Campaigns, drip campaigns and automations wait up to 24 hours for the window; a one-to-one or API text is held only if the window opens within 6 hours, otherwise it is refused and must be resent; a one-to-one reply to someone who texted you in the last 24 hours goes out at any hour.
- Litigator and DNC scrubbing. You can switch on scrubbing for $0.003 extra per segment, or run the standalone scrub at $0.005 per contact. It's off by default. It reduces risk on a list. It doesn't replace consent.
If you send through the API, the consent_attested: true field on POST /v1/messages is your promise that the recipient agreed. The proof behind that promise still lives in your form tool or CRM. See docs.tryready.com/api/messages.
Compliance remains the sender's responsibility. These tools reduce exposure. They don't make you immune to claims.
The practical takeaway
For each signup source, check four things:
- The brand, message type and frequency are named.
- STOP and HELP are included.
- The SMS checkbox is unchecked and separate from email consent.
- Each submission's timestamp, wording and URL are saved where you can retrieve them.
Then decide on double opt-in for each source based on how much you trust it.
If you're ready to put compliant wording to use, create an account. The first 20 one-to-one texts are free, so you can test your confirmation and keyword replies on your own phone before you register. Registration happens in the app, and most approvals take 2 to 7 days.