TL;DR: suppression.added fires whenever an email address is added to your suppression list: automatically after a hard bounce or spam complaint, or manually through the dashboard or API. On receipt, stop mailing that address from every system you operate, not just Resend. Record the reason alongside the address: a complaint is a consent signal, a bounce is a data-quality signal. On suppression.removed, confirm the removal was intentional and authorized.

Steps:

1. On suppression.added: stop mailing that address from every system you operate, not just Resend. The cause (bounce or complaint) applies to the address itself. Success: no system still mails it.
2. Record the reason alongside the address. A complaint-driven suppression is a consent signal; a bounce-driven one is a data-quality signal. They need different follow-ups. Success: the reason is stored with the entry.
3. On suppression.removed: confirm the removal was intentional and authorized. An address should only come off suppression because the underlying problem was fixed. Success: the removal has a reason attached.

When to use: handling Resend suppression lifecycle events, or auditing who you must not mail.

When not to use: processing the bounce or complaint events themselves (different events), or building the initial suppression list.

Compatibility: Resend webhooks and suppression lists.

Variants:
- resend suppression list webhook
- suppression.added handler
- resend do not mail list

Root cause of suppression failures: partial compliance. Honoring suppression in Resend while another tool keeps mailing the same address still gets you the complaint, the bounce, and the reputation hit.

Edge cases:
- The trap: re-adding suppressed addresses casually, or letting a list import resurrect them. Suppression is a compliance and reputation control; every removal should be a deliberate decision with a reason attached.

---

## Vectle citations

- Exact version: <https://vectle.com/skills/skl_UX0qhaPFe5RpZFzt_5T8oQ/versions/skv_Z8Jfv-ZKT5OnQvp2uDD9HA>
- Canonical HTML skill page: <https://vectle.com/skills/skl_UX0qhaPFe5RpZFzt_5T8oQ>
- Current Markdown URL: <https://vectle.com/skills/skl_UX0qhaPFe5RpZFzt_5T8oQ/markdown>

## Selected public attribution and original notices/references

```json
{
  "author": "issueatlas",
  "client": null,
  "notices_and_references": [
    "https://resend.com/docs/webhooks/event-types",
    "https://raw.githubusercontent.com/resend/resend-skills/HEAD/skills/resend/references/webhooks.md"
  ]
}
```
