> ## Documentation Index
> Fetch the complete documentation index at: https://docs.politicalcomms.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Compliance and link tagging

> CAN-SPAM footers, paid-for-by disclaimers, one-click unsubscribe, forget this address, and how donation links are tagged for WinRed and Anedot.

## What goes in every footer

Two things are attached to every message automatically, from the sender
identity rather than the campaign, so they cannot be forgotten on a particular
send. If your template does not already include them, they are **appended for
you** rather than sent without:

**A physical mailing address.** CAN-SPAM requires a valid postal address in
every commercial message. It lives on the sender identity.

**A paid-for-by disclaimer.** Political email carries the same
attribution expectations as other political communication. Set the disclaimer
text on the sender identity, and mark whether the message is authorized by the
candidate.

If you edit a sender identity in a way that removes a required physical address
or disclaimer, the identity is **paused rather than allowed to keep sending**.
The write succeeds and sending stops, which is the safe direction: a paused
identity is a problem you notice, while non-compliant mail is one you find out
about later.

Requirements vary by jurisdiction and by whether the sender is a candidate
committee, a party committee, or an independent group. We supply the mechanism;
confirm the exact wording with your counsel or compliance advisor.

## Unsubscribes

Every message carries a working unsubscribe, in two forms:

**One-click unsubscribe.** The RFC 8058 `List-Unsubscribe` headers are on every
message, so the mailbox provider's own unsubscribe button works. This is now a
Gmail and Yahoo bulk-sender requirement, not an optional nicety. A recipient who
uses it is suppressed immediately, with no confirmation page and no chance to
mail them again.

**A hosted preferences page.** The footer link opens a page where the recipient
can unsubscribe and give a reason.

Unsubscribes are honored synchronously. There is no batch window during which a
recipient who just opted out can still receive a queued message.

A provider retrying a one-click POST does not produce a second unsubscribe event:
the deduplication key is the message, and a recipient unsubscribes from one send
exactly once.

## Suppression scopes

An unsubscribe applies at the scope the recipient chose or the scope of the
message they acted on, which is why suppressions exist at three levels:
organization, sender identity, and list. See
[Bounces, complaints, and suppressions](/help/email/bounces-complaints-and-suppressions).

## Authentication

Three mechanisms prove your mail is really yours, and all three are set up by
the DNS records you publish when you add a domain:

| Mechanism | What it proves                                                                              | Where it comes from                                      |
| --------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| **DKIM**  | The message was signed by your domain and was not altered in transit.                       | The three DKIM records.                                  |
| **SPF**   | The sending server was authorized by your domain.                                           | The bounce host records, which is why that pair matters. |
| **DMARC** | The first two line up with the domain in the From address, and what to do when they do not. | The DMARC record, or your existing policy.               |

Together these satisfy the bulk-sender requirements Gmail and Yahoo enforce.
Your standing against each requirement is on the sender requirements scorecard;
see [Campaigns and deliverability](/help/email/campaigns-and-deliverability#sender-requirements-scorecard)
and [Sending domains and DNS](/help/email/sending-domains-and-dns).

## Gmail's Verified Sender Program

Gmail runs a program that can show a verified indicator beside messages from
participating senders. Political senders generally qualify through Campaign
Verify, the same authorization used for 10DLC texting.

Two things to know:

* **Campaign Verify accepts committee sending domains for the program from
  September 8, 2026.** We prepare the submission with you (eligibility from
  your existing Campaign Verify record, the exact sending address, and the
  pre-checks Google requires); the one step that has to happen in Campaign
  Verify's own portal is yours.
* **Google publishes no automated status feed for it**, so the status shown on
  your sender identity is recorded by our team rather than fetched. If you are
  enrolled and it is not reflected, tell support.
* **It is never a condition of sending.** It affects how a message may be
  displayed, not whether it is delivered. A sender with no Verified Sender
  status sends exactly as well as one with it.

## Forget this address <a id="forget-this-address" />

A deletion request is different from an unsubscribe. Unsubscribing keeps the row
so it can keep blocking mail; forgetting erases the address itself.

Forget this address is a support-assisted operation, and it works in a specific
order that is worth understanding:

1. **A platform-wide suppression is written first**, holding the address so it
   stays blocked permanently. This happens before anything is erased, so there is
   no window in which the address is both forgotten and mailable.
2. **Then the address is erased everywhere else.** In records that must survive
   for accounting and reporting, such as sent messages and click records, the
   address is replaced with a one-way hash. In list membership, contact
   profiles, and validation caches, the row is deleted outright. Anything still
   queued to send is skipped.

The replacement is a one-way digest, so the address cannot be recovered from it.
This is irreversible.

## The donation page URL and `{donate_url}`

Set a **Donation page URL** once, in Email settings, and every donate button
that does not already link somewhere more specific uses it. A template can
reference it directly with the `{donate_url}` tag; Lincoln also falls back
to it when it drafts a donate button and you have not given it a URL of its
own. If a template uses `{donate_url}` and no donation page URL is set, the
checklist and test sends refuse the campaign rather than sending a button
that links nowhere.

## Link tagging for WinRed and Anedot

Campaigns that link out to a WinRed or Anedot donation page get their links
tagged automatically, so the committee can attribute the gift in their own
WinRed or Anedot portal. Political Comms does not track or report donation
amounts: fundraising totals live in the committee's donation platform, not
here.

Each campaign gets a **refcode**: `e-` followed by eight characters. When a
donation link points at WinRed or Anedot, we append, without ever overwriting a
parameter you set yourself:

| Parameter      | Value                                                    |
| -------------- | -------------------------------------------------------- |
| `refcode`      | The campaign's refcode                                   |
| `source_code`  | Your source code, defaulting to the refcode              |
| `email`        | The recipient's address, so the donate form is prefilled |
| `utm_source`   | `email`                                                  |
| `utm_medium`   | The campaign's UTM medium                                |
| `utm_campaign` | The campaign's refcode                                   |

UTM parameters are added when `append_utm` is on. If you already put a `refcode`
on a link, yours wins.

From there, attribution happens entirely inside WinRed or Anedot: they match
the refcode, source code, and UTM parameters against the gift and report it in
their own dashboard. Political Comms hands off the tagging and stops there.
