Skip to main content
Firma sends signing invitations, reminders, and other signer-facing emails through Resend. This guide explains that delivery path, what causes a recipient to be suppressed, how to read a RECIPIENT_EMAIL_SUPPRESSED error, and how to get a wrongly-suppressed address cleared.

How Firma sends emails

When you send a signing request, Firma builds the email and hands it to Resend for delivery. Resend sends delivery events back to Firma through a webhook — sent, delivered, bounced, complained, opened, clicked — so Firma always knows the last known state of an email it sent.
Firma keeps its own suppression record built from those events, and checks it before every send — not just before the first send attempt, but for every signer on a signing request, every time one goes out.
Signing invitations are transactional, not marketing email — recipients don’t subscribe to them and can’t opt out of a specific signing request. The suppression mechanics on this page exist to stop sending to addresses that can’t or won’t accept mail, not to manage consent.

The suppression list, explained

An email address gets suppressed when there’s a strong signal it can’t or shouldn’t receive any more mail from Firma. There are two automatic triggers, plus one manual one:
Suppression is per email address and does not clear on its own. Once an address is suppressed, every future signing request to that address will be blocked until the entry is removed — see Requesting removal below.
Soft bounces are intentionally not suppressed: a full mailbox or a momentary server outage usually resolves on its own, and treating every temporary bounce as permanent would suppress addresses that were never actually broken. Only a permanent (hard) bounce or a spam complaint adds an address to the list.

The RECIPIENT_EMAIL_SUPPRESSED error

If you try to send a signing request and any signer’s email address is on the suppression list, Firma rejects the entire send before anything goes out:
  • HTTP status: 422
  • Scope: the check runs against every signer on the request, not just the next one in sequence. A signing request with three signers is rejected up front if signer #3’s email is suppressed, even though signers #1 and #2 are fine — this avoids a request getting stuck partway through with credit already spent and some signers already signed.
  • Side effects: nothing is sent, no credit is deducted, and the signing request is not marked as sent. You can safely fix the address and resend.
The error message names the specific address and the reason phrase: the address bounced, a previous email was marked as spam, or the address has been blocked.

Diagnosing it

  1. Read the address out of the error message — that’s the recipient that’s blocked.
  2. Check for a typo in that address. A mistyped domain or a stale address from an old contact list is the most common cause of a hard bounce.
  3. If the address is correct and you believe the suppression is wrong (a spam complaint you don’t recognize, or a bounce that looks like it should have been transient), continue to Requesting removal.
A signer’s email address can’t be changed after a signing request has been sent. If a multi-signer request is already stuck because one signer’s address got suppressed mid-flow, clearing the suppression won’t retroactively fix that request — cancel it and create a new one once the address is cleared.

Requesting removal

Firma support can review and clear a suppression entry, but there’s no self-service way to do it from the dashboard or API today. To request removal:
  1. Contact Firma support and provide the exact recipient email address and, if you have it, the signing request ID that hit the error.
  2. Support checks the suppression reason against the underlying Resend delivery record for that address.
  3. If the suppression was caused by a transient issue misclassified as permanent, or the complaint doesn’t hold up, support removes the entry.
Repeated tickets about the same address usually mean the underlying cause hasn’t been fixed — for example, resending to a hard-bounced address without first checking whether it’s still valid will get it suppressed again after the next hard bounce.

Preventing re-suppression

  • Verify addresses before sending. A typo’d domain or a stale address from an imported contact list is the single most common cause of a hard bounce.
  • Avoid role-based or shared inboxes like info@, noreply@, or admin@ for signer addresses. Nobody owns them individually, so they’re more likely to auto-filter incoming mail to spam (generating a complaint) or to be turned off entirely (generating a hard bounce).
  • Watch for a pattern across signing requests. If several signers at the same company domain bounce, it’s more likely a company-wide mail server change than several unrelated typos — worth confirming with the customer before resending.
  • Send from a custom domain. Firma’s shared sending domain carries the combined sending reputation of every customer using it. A verified custom domain isolates your reputation, which reduces the odds of a hard bounce or spam classification caused by someone else’s sending behavior.

Next steps

  • Custom Domains — set up your own sending domain for better deliverability and branding
  • Webhooks — subscribe to signing_request.recipient.signed and signing_request.recipient.declined events to track signing progress
  • Sending a Signing Request — creating and sending signing requests via the API