Email checks and Domain Intelligence share one credit balance. See how credits work

Start for free

Guides

How to handle disposable email signups in a free trial

Use the disposable-domain reason code to choose when to ask for another address, require confirmation or review a trial. A risky status alone cannot make that decision.

What to do with each answer

The same four verdicts every time. The instruction changes with the situation, because what a mistake costs changes with it.

What to do with each answer
VerdictWhat to do here
DeliverableAllow the signup, then confirm the address before releasing the trial benefit. A deliverable result says the address can receive mail; it does not identify the person.
RiskyRead reason_codes. If DISPOSABLE_DOMAIN appears, apply your trial policy. A role address or catch-all domain alone is not evidence of abuse; ask for confirmation when you need control of the mailbox.
UndeliverableAsk the person to correct the address before granting the trial. An invalid address or absent domain cannot receive the confirmation link; explain the fix where the person can still make it.
UnknownLet the signup continue provisionally and send confirmation. The check could not settle delivery, so do not treat it as proof of fraud or as a confirmed contact. Recheck later if the decision still matters.

Use the domain signal for the question it answers

A disposable-mail signal says the address uses a domain associated with a temporary-mail provider. The public disposable email checker lets you inspect that classification. It does not tell you how long one mailbox will last or whether its owner intends to misuse a trial. The definition of disposable email explains why a temporary address can still receive a confirmation message.

In a full verification, checks.disposable and DISPOSABLE_DOMAIN carry this fact. Emvero can mark an otherwise deliverable address risky, but it does not automatically return reject for that reason. ROLE_ACCOUNT describes an address such as support@; ACCEPT_ALL_DOMAIN describes a server that accepts arbitrary recipients. Neither code says the person is abusing a trial. Branch on the actual reasons and the rest of the evidence, not on the risky label by itself.

Pick a policy before the form goes live

  • Reject listed domains if your trial requires a lasting contact address. State that requirement plainly and let someone enter another address.
  • Require email confirmation before releasing a trial benefit if an active inbox is enough for the first step. A disposable mailbox may pass this gate, so it is not a one-person-one-trial control.
  • Allow and review if false rejection would cost more than a provisional trial. Keep the disposable flag for a separate abuse decision.

These are rules for your service, not automatic Emvero actions. Apply the same baseline confirmation step to ordinary addresses if later contact or account recovery depends on email. Confirmation shows current control of a mailbox; it does not establish identity, uniqueness or future reachability.

Put the decision on your server

Call the verification API from your backend and read status, action, reason_codes and checks together. If the first response is pending, wait for the final result before applying a terminal-status rule. Use a definite failure such as DNS_NXDOMAIN to request a corrected address. For unknown, continue provisionally and rely on confirmation rather than guessing why the destination did not answer.

Limit claims of a trial benefit with controls owned by your application, such as eligibility and rate rules. Email evidence can help you decide which signups need friction, but cannot prevent all repeat accounts or automated abuse. The email verification API page shows the response fields; the signup-form guide covers general inline handling.

Reason codes that decide something here

The API uses these identifiers to explain a check. The notes identify values that the current verification policy or probe does not return.

Reason codes that decide something here
DISPOSABLE_DOMAINDisposable address provider
ROLE_ACCOUNTAddress uses a role name
ACCEPT_ALL_DOMAINDomain accepts every recipient
DNS_NXDOMAINDomain does not exist

Try it on an address you already know.

The free checker returns the whole result - every stage, every reason code, nothing held back.