Skip to main content

Opt-in disclosure templates

US carriers review the disclosure text sitting next to the opt-in point, not just the flow behind it. A form checkbox with the right language is a passing opt-in; the same checkbox with a vague “sign up for updates” is the most common 10DLC vetting rejection. This page gives you the actual words: the five disclosure slots the carriers look for, copy that fills all five per capture surface — SMS, WhatsApp, email, paper — and where to store the resulting consent artifact so a dispute-set defense has something to point at.
Everything on this page is tenant-owned. The wording you post, the capture surfaces you run, and the go-live decision are yours — Orbit records what you show and what the recipient did. This page is not legal advice; confirm your TCPA, CTIA, and state-law obligations with qualified counsel.

1. The five disclosure slots

Carrier reviewers (and dispute counsel) check every opt-in point against the same five slots. Miss one and the disclosure fails review even when the rest of the flow is perfect. Plus one phrase that is not a slot but is checked every time: “Consent is not a condition of purchase.” Omit it from a marketing capture form and the filing fails review on its own. Keep the disclosure verbatim next to the checkbox or keyword instruction, not behind a “terms” link — a linked-out disclosure is treated as missing.

2. Why the disclosure format differs per channel

The five slots do not move, but the container that carries them does — and each container has a different constraint:
  • SMS (long code, short code, toll-free). The disclosure on signage or a landing page has no hard length limit, but the first confirmation send is a 160-character segment. Fit the confirmation copy (section 3) into one segment or pay for two; keyword replies shorter than 160 characters also grade cleaner on throughput.
  • Email. A subject line plus body with no character cap, but the recipient never replies to a keyword — the capture is the form itself, so the slots live in the checkbox copy and the confirmation mail (double opt-in) that proves the click. Slot 4 names an unsubscribe keyword or mechanism (“Reply STOP”, “Reply STOP to end”, or an unsubscribe link); for a domain-matched sender, the link counts.
  • WhatsApp. Outbound template messages must be pre-approved by Meta before you can send them, and Meta rejects templates whose body asks for consent that the recipient cannot refuse — so the opt-in disclosure lives in the template body for review, and “Consent is not a condition of purchase” goes in the body text, not in a button (buttons are for the action, like “Confirm” or “Unsubscribe”; a button cannot carry the disclaimer phrase for Meta’s automated classifier).
  • Paper / verbal. The recipient cannot click, so the disclosure is the printed paragraph or the spoken script — record the exact wording versioned (e.g. paper_form-v3).
The slot discipline is identical; the mechanics of where each slot lives, and the space it gets, differ.

3. Slot-by-slot examples that clear vetting

Each pattern below fills all five slots. Replace the bracketed anchors, keep the rest word-for-word, and re-check the table above before you file. For each capture surface, name the disclosure version so the artifact you store later points at the exact copy the recipient saw.

Web form checkbox

Post this directly beside the checkbox on the signup form:
By checking this box, you agree to receive recurring marketing SMS messages from [Brand] about [campaign — e.g. promotions and order updates]. Message frequency varies. Message and data rates may apply. Reply STOP to opt out, HELP for help. Consent is not a condition of purchase. Support: [support email or phone].

SMS keyword opt-in (long code or short code)

Put the instruction where the keyword is advertised (signage, packaging, footer):
Text [KEYWORD] to [number] to subscribe to [Brand] alerts. Up to [N] msgs/month. Message and data rates may apply. Reply STOP to cancel, HELP for help. Consent is not a condition of purchase.
Then make the first send echo the disclosure, because reviewers sample your live traffic:
[Brand]: you’re subscribed. Up to [N] msgs/month. Msg & data rates may apply. Reply STOP to opt out, HELP for help.

Toll-free line

Toll-free opt-ins grade the same five slots; the shorter instruction is fine when sign space is tight:
Text [KEYWORD] to [toll-free number] for [Brand] updates. Recurring msgs. Msg & data rates may apply. Reply STOP to opt out. Help: [support contact]. Consent is not a condition of purchase.

WhatsApp pre-approved template opt-in

WhatsApp outbound runs on Meta pre-approved message templates, so you ask for the opt-in in a template Meta has already vetted — the same vetting discipline as 10DLC, and it catches the same five slots. Submit this shape in the Meta / Orbit template manager (marketing category):
[Brand] wants to send you recurring marketing WhatsApp messages (order updates + promotions). Reply YES to confirm. Message frequency varies. Reply STOP to opt out, HELP for help. Message and data rates may apply. Support: [support email or phone]. Consent is not a condition of purchase.
All five slots ride in the template body where Meta’s reviewer (and the receiving handset) sees them. If you attach a button (Quick Reply “Confirm” / “Unsubscribe”), keep the body text above untouched — the button is the action, not the disclosure surface. Accept the YES reply as the confirmed reply the double opt-in handshake records.

Email capture form

Email opt-ins grade the same five slots; the recipient’s “reply” is the form submit, so the slots sit in the checkbox copy on the form:
By submitting this form, you agree to receive recurring marketing email messages from [Brand] about [campaign — e.g. promotions and order updates]. Message frequency varies. Reply STOP to any message to opt out (or use the unsubscribe link). Support: [support email or phone]. Consent is not a condition of purchase.
Then send the double-opt-in confirmation mail the double opt-in handshake generates. The confirmation mail itself carries a compact version of the same five slots next to the confirm link, so the record on file shows the recipient saw the disclosure twice — once at capture, once at click:
You asked to hear from [Brand] — up to [N] emails/month about [campaign]. Click to confirm your subscription. Reply STOP to any mail or use the unsubscribe link to opt out. Support: [support contact]. Consent is not a condition of purchase.

Paper or verbal capture (point of sale, events)

Record what the recipient signed or agreed to, line by line:
I agree to receive recurring marketing SMS from [Brand] (up to [N]/month). Message and data rates may apply. Reply STOP to opt out, HELP for help. Consent is not a condition of purchase. Support: [support contact]. Signature / verbal confirmation recorded at [location, date].
Keep one copy of the signed form (or the call-recording reference for verbal) per contact — the artifact below is what settles a dispute.

4. Per-channel slot mapping

The slots stay the words; the template field they live in changes per channel: For WhatsApp, Meta’s classifier reads the body text; for email, the recipient reads the form. Neither weighs a linked “Terms” page, so the disclosure stays in the container itself.

5. One disclosure, four surfaces

The strongest defense at dispute time is the same versioned disclosure running on every surface, so a reviewer sees one coherent story. Worked example — Acme Retail, campaign promotions, with four live capture surfaces:
  • Web form — disclosure version webform-v3 (checked box next to the copy in section 3, “Web form checkbox”).
  • SMS keyword JOIN to 844-555-0100 — version keyword-844-v2, first send echoes the same five slots.
  • WhatsApp pre-approved template promo_join_v1 — Meta-approved body as in section 3, “WhatsApp pre-approved template opt-in”, YES reply confirmed via the double-opt-in handshake.
  • Email capture form on acme.example/subscribe — version emailform-v3, confirmation mail via the double-opt-in handshake.
  • Paper form at the register — version paper_form-v3, transcribed the same day.
The names are the discipline: <surface>-<channel>-v<N>, bumped the day the wording changes. A dispute-set defense then reads one line per contact — “agreed on 2026-08-14 to webform-v3, artifact #…” — and every version string points at the exact copy of the disclosure the recipient saw.

6. Store the artifact

Collecting the disclosure is only half the job; keep the consent artifact structured enough to answer “who agreed to what, shown what text, when.” Store it on one of the platform consent surfaces, not in a spreadsheet:
  • Form / API captures — write a consent record through the Consent Management ledger or the public consent form, and put the disclosure text you showed into the record metadata (for example metadata.disclosure_version: "webform-v3", emailform-v3, keyword-844-v2). When the wording changes, bump the version string so every record points at the exact copy the recipient saw.
  • SMS keyword and WhatsApp template captures — run them through the double opt-in handshake when you want proof of reply: the begin endpoint returns the confirmation prompt copy and records a pending row; the recipient’s YES reply converts it to a confirmed opted_in grant with two timestamps — prompt and reply. That two-event artifact is what survives a dispute.
  • Email captures — the double-opt-in confirmation mail converts the click into the same two-event artifact (confirmation prompt sent at form time, click event at confirm time); the mail’s reply-to or unsubscribe link carries slot 4 through the suppression list.
  • Paper / verbal captures — transcribe them through the public consent form (operator-driven capture is one of its listed uses) and attach the source tag (paper_form, verbal_pos) plus the disclosure version in metadata.
For any surface, the artifact you want on file is: the identifier, the channel, the timestamp, the disclosure text version, and the capture source. Export the ledger (see Consent Management) before you answer a carrier or litigation inquiry — do not reconstruct it from campaign logs.

7. When to use double opt-in vs single

Single opt-in (checkbox checked, keyword replied, form submitted) is the minimum for a complete artifact. Double opt-in adds the second event — the recipient’s confirm reply or confirmation-link click — and it’s the version that survives a challenge, because it proves the recipient could read the disclosure and still agreed. Use it when:
  • You file a campaign where a prior opt-in was disputed (the second event answers “did they really agree to this exact campaign”).
  • The capture is a keyword on a high-volume shortcode (carrier reviewers will sample the live replies).
  • The capture came from a paper or verbal setting and the recipient may need to recognize your confirmation before you send marketing.
  • A brand you’ve onboarded before an audit needs receipts, not just records.
The mechanics, the begin/confirm endpoint shape, and the pending-row row lifecycle live in the Confirmed Consent (Double Opt-In) Handshakes page. The metadata.disclosure_version tag you attach carries over into the confirmed record so the two-event receipt also identifies the exact copy the recipient confirmed.

8. Where this page plugs in

The list-growth funnel sequences capture → 10DLC filing → import → first campaign, and the 10DLC marketing baseline is the daily-ops checklist per sender. Both embed sample copy in passing; this page is the citation they point at when the question is “what exact disclosure text do we post.” Keep one canonical disclosure per capture surface, keep the version strings stable, and reference them from the campaign filing’s opt-in-flow description.

9. Common pitfalls

  • Universal consent on a paper form. “I agree to receive messages from [Brand] and its partners” fails — carriers want the grant scoped to one brand and one campaign, and “partners” reads as scope creep at review time. Capture a per-brand grant instead.
  • Scope creep in the disclosure text. The wording you post must match the campaign use case you filed (MARKETING vs. transactional). A marketing campaign whose form discloses only “order updates” is a use-case mismatch rejection — see the 10DLC rejections and re-vet guide.
  • Missing “consent is not a condition of purchase.” The single most common vetting failure on a marketing capture. Add the phrase verbatim to the body of the WhatsApp template, the checkbox copy, and the signage — not to a button.
  • Disclosure behind a link. If the full text is not beside the checkbox/keyword instruction, reviewers treat it as absent. A “Terms” hyperlink is a supplement, not the disclosure.
  • Placeholder frequencies. “You may receive messages” without a cadence is slot 2 unfilled. Say “recurring” or give a number.
  • Support = HELP keyword only on non-SMS surfaces. On web, paper, email, and WhatsApp templates, also name a real contact (email or phone); on keyword flows, HELP must resolve to one.
Compliance posture is your organization’s decision, and the go-live call is yours. These templates are the pattern carriers reward at vetting time — never a substitute for legal review of your TCPA, CTIA, or state obligations.