Mailfully logo

Live sending is refused

Nine refusals block a send because of your domain or your account. Match the error type to its cause, from an unverified domain to a past-due payment.

Nine checks refuse a send because of the sending domain or your account. 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
429volume_limit_reachedThe account reached its daily sending volume limit
402payment_past_dueA payment is past due
403account_deletedThe account has been deleted

403 unverified_domain_required

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.

422 on the from field

The from domain is not verified, even if another domain on your organization is. param is "from", and the message names the domain:

{
  "error": {
    "type": "validation_error",
    "message": "The from-domain 'acme.com' is not a verified sending domain for this organization. Add and verify it before sending in live mode.",
    "param": "from"
  }
}

Fix: verify that exact domain. Test mode skips the verified-domain check.

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 and the refusal clears. You do not need a ticket.

403 account_rejected

A staff member declined the account. Only a person can undo this. Email contact@mailfully.com instead of retrying.

403 forbidden

The message is "This account is paused." Sending stays refused until the pause is lifted. Do not retry automatically. To appeal, email contact@mailfully.com. See Policies.

429 account_under_review

A new account's live sending is bounded while staff review it. The message is "Your account needs further review before it can send more live email. Reviews take 24 hours on average." Room also frees up as the rolling 24-hour window moves, and test-mode keys keep working. Alert a person instead of retrying in a loop. See New accounts.

429 volume_limit_reached

The message is "This account has reached its daily sending volume limit. Contact contact@mailfully.com to raise it. Test-mode keys keep working." Room also frees up as the rolling 24-hour window moves. Alert a person instead of retrying in a loop. See Rate limits.

402 payment_past_due

The message is "Live sending is paused because a payment is past due. Update your payment method on the Billing page of your Mailfully dashboard; sending resumes as soon as the payment goes through. Test-mode keys keep working."

403 account_deleted

The message is "This account has been deleted." Both environments refuse sends, and a deleted account cannot be restored. Do not retry. If you did not expect this, email contact@mailfully.com.

Test mode

Test mode skips both domain checks, so you can build and test before DNS is in place. A pause (403 forbidden) and account_deleted apply in test mode too.