Account

Suppression & Suspension

How SendFleet handles bounces, spam complaints, suppressed recipients, and account suspension, and what you need to do on your side to stay well clear of the limits.

Suppression

When an address hard-bounces or files a spam complaint, it is added to a suppression list. Later sends to that address are not delivered, the attempt is skipped rather than made.

Suppression is scoped to your account, so one sender's bad address never blocks another's legitimate mail to the same person.

Why it exists

Re-sending to an address that already bounced burns your quota, damages your sender reputation, and, because shared accounts deliver through common infrastructure, degrades deliverability for everyone on the platform. Suppression is the backstop that keeps one bad list from becoming everyone's problem.

What gets suppressed

Which events cause suppression
EventSuppressed?Notes
Hard bounce (Permanent)Yes, immediatelyThe address does not exist, or the mailbox is permanently unavailable. Never retry it.
Soft bounce (Transient)NoA temporary condition such as a full mailbox or an unavailable server. The delivery platform may retry on its own.
Spam complaintYes, immediatelyThe recipient marked your mail as spam. Continuing to send to them is the fastest route to a suspension.
Manual additionBy supportSupport can add addresses when there is a clear reason to.

What happens when you send to a suppressed address

The sequence is:

Suppressed send sequence
StepWhat you see
1. You call POST /v1/send200 OK with "success": true, exactly as for any other accepted send.
2. Delivery is processedThe recipient is found on the suppression list, so no delivery is attempted.
3. The send resolvesThe email log status becomes suppressed and an email.suppressed webhook fires with a reason.
4. Your countersThe send counts against your monthly quota but not against your bounce rate — a skipped delivery is not a bounce.

Handling it in your code

Because the outcome arrives asynchronously, handle it in your webhook handler rather than around the send call. Subscribe to email.suppressed and treat it as permanent.

Python: handling a suppression webhook
# Fires from your verified webhook handler.
# See /webhooks for signature verification.

def handle_event(event_type, payload):
    if event_type == "email.suppressed":
        # Permanent. Stop sending to this address from your own system too -
        # every attempt still costs you a message against your monthly quota.
        db.mark_undeliverable(
            payload["recipient"],
            reason=payload.get("reason", "suppressed"),
        )

    elif event_type == "email.bounced" and payload.get("bounce_type") == "Permanent":
        db.mark_undeliverable(payload["recipient"], reason="hard_bounce")

    elif event_type == "email.complained":
        db.mark_unsubscribed(payload["recipient"])

Bounce and complaint processing

Delivery events are processed automatically and reflected in your logs, your counters, and your webhooks.

What happens on each event
EventWhat happens
Permanent hard bounce1. The address is suppressed
2. The log status becomes bounced
3. email.bounced fires, if you subscribe to it
4. Your bounce counter increases, feeding abuse detection
Spam complaint1. The address is suppressed
2. The log status becomes complained
3. email.complained fires
4. Your complaint counter increases
Successful delivery1. The log status becomes delivered, with a timestamp
2. email.delivered fires
Rejected before sending1. The log status becomes rejected
2. email.rejected fires with the reason
Permanent send failure1. The log status becomes failed
2. email.failed fires with the reason

Automatic enforcement

SendFleet monitors delivery quality to protect the shared sending pool. Sending-quality problems can lead to a warning, a temporary pause or suspension. The effects on sending and billing are described below.

What to monitor

Sending quality and account notices
SignalWhat it means for you
Hard bouncesRemove permanently undeliverable addresses from your application and review how you collect recipients.
Spam complaintsStop sending to recipients who report your mail as spam, and review whether your messages were expected.
Warning emailWhile a rate is getting close to a limit, we email your account address with what to check, so there is time to fix the cause before anything happens. Nothing about your account changes, and you can keep sending.
Severe spam reportsA report classifying your mail as fraud or virus acts on its own, whatever the volume or rate around it. An ordinary mark-as-spam click does not: it counts toward your complaint rate and is judged by rate like any other signal.
Free plan smoke testsThe one other exception. A spam complaint on a free-plan Shared smoke test, which can only have gone to your own address, permanently suspends the account on the first report, with no warning and no pause. Free BYOC sending and every paid plan follow the usual steps.
Your own test trafficNever counted toward these rates. See Testing Sends.

Step 1: a temporary pause

Crossing a limit the first time pauses API sending for 24 hours. It resumes by itself. There is nothing you have to do to restart it, and nothing you have to request. We email your account address when the pause starts, with the time it ends, and again when sending resumes.

What a temporary pause changes
ItemEffect
POST /v1/sendEvery request returns 403 Forbidden with "error": "sending_suspended", and a detail that says the pause is temporary and will lift on its own.
Your subscriptionUntouched. Your plan keeps running and nothing is cancelled, and nothing is added to any blocklist.
Account changesWhile the pause is open you cannot add or remove domains, create or delete API keys, change webhook endpoints, or delete the account. Revoking an existing API key still works. Everything unfreezes when the pause lapses.

Step 2: suspension, on a repeat breach

If your account crosses a limit again after it has already been paused once, that is a repeat breach and the response becomes permanent. We email your account address when it happens, and again if the account is reinstated.

What changes when your account is suspended
ItemEffect
POST /v1/sendEvery request returns 403 Forbidden with "error": "sending_suspended". Nothing is queued, and nothing is counted against your quota.
Your subscriptionEnded immediately. Billing stops on the day of the suspension, you are not charged for any part of the period after it. The charge already in progress is not refunded; see our refund policy. The dashboard billing page shows this as an ended subscription, not a cancellation you can undo.
Account changesWhile the account is under review you cannot add or remove domains, create or delete API keys, change webhook endpoints, or delete the account. Revoking an existing API key still works, if you think a key is compromised, revoke it first.
Everything elseDashboard access, your email logs, and your existing API keys are untouched. You can review what was sent, read your bounce and complaint counts, and contact support.

The 403 detail, for both steps

The detail string tells you which of the two you are in: a temporary pause says so and says it will resume on its own; a suspension says the subscription has ended.

403 Forbidden: temporarily paused
{
  "success": false,
  "error":   "sending_suspended",
  "detail":  "Your account's email sending has been temporarily paused while we review recent delivery results. It will resume on its own. Please contact support@sendfleet.net if you have questions."
}
403 Forbidden: suspended
{
  "success": false,
  "error":   "sending_suspended",
  "detail":  "Your account's email sending has been suspended. Your subscription has been ended and will not be billed again. Please contact support@sendfleet.net to discuss reinstatement."
}

Branch on error, never on detail, which is human-readable and explicitly non-contractual. Both steps return the same error code, and the only difference you should code against is whether your sending comes back on its own.

Emails we send you

Everything below goes to the address you sign in with. They are service messages about your account, not marketing, so there is nothing to unsubscribe from; replies go to support. If your mail is filtered, allow verify@sendfleet.net, security@sendfleet.net and notifications@sendfleet.net.

Emails SendFleet sends to the account holder
EmailWhen
Verify your emailWhen you sign up, and whenever you ask for another link. The link lasts 24 hours.
Password resetWhen you ask for one. The link lasts 1 hour and works once.
Password changed, new API key, account deletedStraight after each of these, so you notice if it was not you.
Deliverability warning, pause, resume, suspension, reinstatementAs described above. None of them states a rate or a limit.
Domain ready, verification failed, records failingFrom the hourly DNS check: when a domain becomes able to send, when a new domain still cannot be verified after several checks, and when a record that was verified stops working.
Domain verified by another accountIf someone else proves ownership of a domain you had added.
Payment failed, payment recovered, subscription endedWhen a change to your subscription affects sending. Receipts and invoices come from our payment provider.
Approaching / reached your monthly limitAt most once a month each, when you pass most of your allowance and when it runs out.
BYOC: protection warning or pause, lost AWS access, tracking removedBefore and when your reputation protection pauses BYOC sending; once when SendFleet can no longer use your IAM role; and when tracking resources in your AWS account are removed again soon after a repair.

Manual suspension

Support can also suspend an account manually for policy violations, spam, abuse, or a breach of the Terms of Service. From your application's point of view this is indistinguishable from an automatic suspension: the same sending_suspended error code, the same 403, and the same effect on your subscription. A manual suspension can also carry additional account restrictions, for example, a registration email address that may no longer be used to create a new account, or a domain that may no longer be added. If that applies to you, support will tell you when you contact us.

Contact support if you need help understanding an account restriction or the steps required for review.

Frequently asked questions

What causes suppression, how suspension is measured, and how to get reinstated.

What triggers an address being added to the SendFleet suppression list?
Hard bounces, which are permanent failures, and spam complaints suppress the recipient address immediately. Soft, transient bounces do not. Once an address is suppressed, a send to it is still accepted with HTTP 200 but no delivery is attempted: it resolves to a suppressed status, fires an email.suppressed webhook, and still counts against your monthly quota, though not against your bounce rate.
How can I avoid a sending-quality pause or suspension?
Keep recipient lists accurate, send only expected mail and remove addresses that hard-bounce or report spam. Monitor your delivery webhooks and dashboard logs, and act promptly on account notices. SendFleet monitors sending quality, but does not publish enforcement thresholds.
What happens the first time I cross a limit?
A first sending-quality breach normally pauses sending for 24 hours. We email you when it starts and ends. The pause lifts automatically and leaves your subscription active. Account changes are restricted during the pause, but revoking an existing API key still works. A repeat breach results in suspension, ends the subscription and requires a support review. Severe abuse and a spam complaint on a free-plan Shared smoke test can cause immediate suspension.
Does one spam report suspend my account?
Usually not. A report classifying your mail as fraud or virus acts on its own, whatever the volume or rate around it. Everything else an inbox provider reports, including an ordinary mark-as-spam button click, counts toward your complaint rate and is judged by rate like any other signal. The one exception is the free plan's Shared smoke test: it can only reach your own address, so a single spam complaint on a smoke test permanently suspends the account, with no warning and no pause.
How do I get my SendFleet account reinstated after suspension?
Reinstatement is always a manual review, never automatic. Email support@sendfleet.net with your account email, what caused the high bounce or complaint rate, the corrective action you have taken such as list cleaning or double opt-in, and your expected future volume. We aim to respond within two business days. Reinstatement restores sending but not billing: a cancelled subscription cannot be un-cancelled, so you will need to subscribe again before sending resumes.
Can I still log in to my dashboard when my account is suspended?
Yes, with one important exception. Dashboard access is unaffected, so you can still sign in, review your email logs, and contact support, and your API keys and domains stay in place. POST /v1/send returns HTTP 403 with the error code sending_suspended, your subscription is ended immediately so you are not billed for the suspended period, and while the account is under review you cannot add or remove domains, create or delete API keys, change webhooks, or delete the account. Revoking an existing API key still works.

Requesting reinstatement

Reinstatement is always a manual review, never automatic. That is deliberate: an account reinstated without anything changing tends to breach the same limit again within hours, which is worse for you than the suspension.

To request it, email support@sendfleet.net with:

What to include in a reinstatement request
What to includeWhy it matters
Your account emailSo we can find the account and the suspension record.
What caused the ratesA stale list? Addresses from a form with no validation? A purchased list? We need the actual cause, not a guess.
What you have changedList cleaning, double opt-in, unsubscribe handling, validation at capture — something concrete that makes recurrence unlikely.
Your expected volumeHelps us gauge risk and set sensible expectations on both sides.

We aim to respond within two business days.

Reinstatement is not guaranteed. Switching to BYOC or changing plans does not remove an account suspension.

Preventing bounce and complaint problems

List hygiene practices
PracticeImpact
Use double opt-in for anything list-basedEliminates typos and invalid addresses at the source. The single biggest lever on bounce rate.
Never send to purchased or scraped listsThese are full of dead addresses and spam traps. A single spam-trap hit can damage reputation for months.
Honour unsubscribes promptlyRequired by law in many jurisdictions, and someone who cannot unsubscribe will use the spam button instead.
Remove hard bounces from your own system immediatelySuppression stops the delivery, but every attempt still costs you a message against your quota.
Watch bounce and complaint webhooksCatch a rising rate while you can still fix it, instead of finding out through a suspension.
Re-verify addresses that have been dormant for a yearAbandoned mailboxes get recycled into spam traps. An old list is not a safe list.
Send transactional mail, not bulk marketingSendFleet is built for transactional sending. Bulk campaigns carry far higher complaint rates than these thresholds allow for.