Unsubscribe and suppression
How Hermeticor decides who may receive marketing, how to record consent, and how unsubscribes and suppressions work.
Every marketing and prospecting message is checked twice before it leaves:
Consent. The person has consent on record for that channel and purpose. Each record keeps where it came from.
Suppression. The address or number is not suppressed.
A message that fails either check is recorded as blocked with a reason. It is not sent. No setting or API call turns this off.
Record consent
The person must exist first (POST /v1/profiles, an event, or an import).
curl -s -X POST "$BASE/v1/consent/batch/write" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"items":[{"target":{"email":"ada@example.com"},
"consent":{"channel":"email","purpose":"marketing","status":"granted","source":"form",
"sourceRef":"newsletter form","disclosureText":"Yes, email me product news."}}]}'A suppressed address is refused here with "Address is suppressed". Consent never overrides a suppression.
Look someone up
curl -s "$BASE/v1/consent/lookup?email=ada@example.com" -H "Authorization: Bearer $HERMETICA_API_KEY"You get their consent states and any active suppressions. To see why one send would be blocked:
curl -s -X POST "$BASE/v1/eligibility/check" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"profileId":"<profileId>","channel":"email","purpose":"marketing","destination":"ada@example.com"}'The unsubscribe link
Put {{ unsubscribe_url }} in every marketing email. Hermeticor also adds the one-click List-Unsubscribe header.
Opening the link shows a confirm page. Link scanners cannot unsubscribe anyone.
Confirming (or a one-click request from the mail app) revokes consent and adds an
unsubscribesuppression.The page offers Resubscribe, which undoes that unsubscribe only. It never grants consent to someone who had none.
The page links the preference centre, where people pick topics, frequency or a pause.
{{ preferences_url }}is the same signed link as{{ unsubscribe_url }}: both open that page, and the preference centre is one click from it.
SMS honours STOP replies.
Suppress someone yourself
curl -s -X POST "$BASE/v1/suppressions" \
-H "Authorization: Bearer $HERMETICA_API_KEY" -H "Content-Type: application/json" \
-d '{"channel":"email","value":"someone@example.com","reason":"manual","sourceRef":"Support ticket 123"}'Suppressions ignore case and +tag variants: suppressing someone@example.com also blocks Someone+news@example.com.
Other ways:
A whole profile:
POST /v1/profiles/<id>/suppress {}. Nothing at all is sent to them until you lift it.Stop all marketing for people:
POST /v1/consent/batch/unsubscribe-all {"items":[{"email":"..."}],"source":"Support ticket"}(targetsstill works but is deprecated).A file:
POST /v1/suppressions/importwith-F file=@list.csv -F mode=preview, then again withmode=commit.A whole domain, for every kind of message:
POST /v1/blocklist {"domain":"competitor.example","reason":"..."}.
What blocks what
Suppression reason | Blocks |
|---|---|
Hard bounce, spam complaint | Every message, transactional too |
Manual, do-not-contact, a blocked domain | Every message, transactional too |
Unsubscribe | Marketing and prospecting |
Hard bounces and complaints are added automatically from your provider's reports.
Transactional messages
Receipts, password resets and other messages a person asked for are transactional. They do not need marketing consent and ignore quiet hours. They still stop at hard bounces, complaints, manual and do-not-contact suppressions, and blocked domains. Use transactional only for those messages. Sending marketing as transactional breaks the law in most countries and your provider's terms.
Lifting a suppression
POST /v1/suppressions/<id>/lift {"reason":"..."}. Lifting a hard bounce needs an admin signed in to the web app; an API key cannot do it.
Data requests from your contacts
Copy of their data:
POST /v1/profiles/<id>/dsar/export {}.Erase them:
POST /v1/profiles/<id>/dsar/erase {}. Hermeticor keeps a do-not-contact suppression, so they are never marketed to again by mistake.