Mailfully logo

Live sending is refused

Six refusals block a live send because of your domain or your account state. Match the error type to its cause, from an unverified domain to a suspended account.

Six checks refuse a send because of the sending domain or the account's state. The status and error type together identify which one:

StatustypeCause
403unverified_domain_requiredThe org has no verified domain at all
422validation_error, param: "from"The from domain is not itself verified
403account_suspendedSetup was never completed
403account_rejectedA staff member declined the account
403forbiddenThe account is paused
429account_under_reviewA new account's live sending is bounded during review

403 unverified_domain_required

The org-level gate: your organization has no verified domain at all.

{
  "error": {
    "type": "unverified_domain_required",
    "message": "Your organization has no verified sending domain. Add and verify a domain before sending live email, or use test mode."
  }
}

Fix: verify a domain, or send in test mode, which is exempt from this check.

422 on the from field

The per-send check: the from domain itself is not verified, even if some other domain on the org is. param is "from":

{
  "error": {
    "type": "validation_error",
    "message": "The request was invalid.",
    "param": "from"
  }
}

Fix: verify that exact domain.

Why a parent domain is not enough

orders@mail.acme.com needs mail.acme.com itself verified. A verified acme.com does not cover it. See Subdomain or root domain for why the check works this way.

Check which domains are verified

GET /v1/domains returns each domain on the org alongside its current status:

curl https://api.mailfully.com/v1/domains \
  -H "Authorization: Bearer mf_live_xxxxxxxxxxxx"

Read status per row; only verified domains pass the from check. See GET /v1/domains.

403 account_suspended

Setup was never completed. Verify a sending domain; this clears itself, no ticket needed.

403 account_rejected

A staff member declined the account. Only a human can undo this; contact support rather than retrying.

403 forbidden

The account is paused. Sending stays refused until the pause is lifted; do not retry automatically.

429 account_under_review

A new account's live sending is bounded while staff review it, and this is a review state rather than a quota. See New accounts for how long the review takes and why retrying on a timer doesn't help.

Test mode is exempt from the domain checks

Test mode skips both the org-level and per-send domain checks, so you can build and test your integration before DNS is in place.