TCPA Consent Language
⚠️ CRITICAL
This is the single most litigated piece of copy on the entire site. Wrong placement, wrong font size, or missing element = $500-1,500 per call/text violation, class-action eligible. Have an attorney review the final version.
PX Placement Requirements
Per PX's published offer guidelines for solar verticals:
- Placement: Immediately above the submit button (NOT below, NOT in a collapsed tooltip)
- Font size: 12-16px
- Contrast: Must meet WCAG readability (dark text on light bg or vice versa)
- Links: Privacy Policy, Terms of Service, and Partner List must all be live, clickable, and open correctly
- No pre-checked boxes: User must take affirmative action (clicking the submit button counts IF the language is clear that clicking constitutes consent)
Standard Consent Language (Template)
Place this directly above the "Get My Quote" / "See My Savings" submit button:
By clicking "Get My Savings Report," I agree to the Terms of Service and
Privacy Policy and expressly consent to receive marketing calls, text messages,
emails, and prerecorded/artificial voice messages from Sose.ai and up to four
(4) solar energy companies, contractors, and their partners — including any of
the companies listed on our Partner List — at the phone number and email
address I provided above. I understand these communications may be made using
automated telephone dialing systems, and my consent is not a condition of
purchasing any product or service.
I also understand my carrier's standard message and data rates may apply, and
my consent applies even if my number is on a state, federal, or corporate Do
Not Call list. I can opt out at any time by replying STOP to any text or
clicking Unsubscribe in any email.
Required Links in That Block
Terms of Service→/legal/termsPrivacy Policy→/legal/privacyPartner List→/legal/partners(kept up to date with PX partner list)
Visual Spec (for v0 / Next.js implementation)
<div class="tcpa-consent">
<p class="text-xs text-gray-700 leading-relaxed max-w-2xl mb-4">
<!-- consent paragraph here, with clickable links -->
</p>
<button type="submit" class="btn-primary">Get My Savings Report</button>
</div>
CSS requirements:
font-size: 12-14px(not smaller)line-height: 1.5minimumcolor: #374151 or darker on white bg- Links underlined and in clearly contrasting color (e.g.,
#2563eb) - Minimum width: stretches full width of the form
- Must be visible without scrolling when the submit button is visible
What NOT To Do
- ❌ Pre-check any "I agree" box
- ❌ Put the consent in a dropdown, modal, tooltip, or collapsed section
- ❌ Use font smaller than 12px
- ❌ Use light gray text (#999999 or lighter) on white
- ❌ Reference the Partner List without linking to it live
- ❌ Omit the "consent is not a condition of purchase" clause
- ❌ Use vague language like "our partners" without explaining who or how many
Compliance Layer: Jornaya or TrustedForm
One of these must fire on every submission. Both give you a "certificate" that records:
- Screenshot of the exact consent language the user saw
- Video replay of their interaction with the form
- Timestamp, IP address, user agent
This is your get-out-of-court-free card in TCPA litigation. Many PX buyers require it.
Recommendation: Use ActiveProspect TrustedForm — lower friction to integrate (single JS snippet), and it's the tool most referenced in PX documentation.
Integration (TrustedForm):
<script type="text/javascript">
(function() {
var tf = document.createElement('script');
tf.type = 'text/javascript';
tf.async = true;
tf.src = ("https:" == document.location.protocol ? 'https' : 'http') +
'://api.trustedform.com/trustedform.js?field=xxTrustedFormCertUrl';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(tf, s);
})();
</script>
<input type="hidden" name="xxTrustedFormCertUrl" value="" />
The resulting xxTrustedFormCertUrl gets posted to PX with the lead. PX validates it on their end.
Revocation Requirements (FCC Rule, Effective April 11, 2025)
- Must honor opt-outs within 10 business days
- Must accept "any reasonable method" — STOP, QUIT, "stop calling me" on a live call, email unsubscribe, web form
- You can send one confirmation text after opt-out, no marketing content in it
- Document every revocation with timestamp and source
See Opt_Out_Policy.md for the operational flow.