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, 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. 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.

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.

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.

3. 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"). When the wording changes, bump the version string so every record points at the exact copy the recipient saw.
  • SMS keyword 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.
  • 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.

4. 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 and reference it from the campaign filing’s opt-in-flow description.

5. 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.
  • 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 and paper forms, 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.