<!-- llms.txt: https://workos.com/llms.txt -->

# Email Verification

## Introduction

Email verification is a process in which a new user must validate ownership of their email inbox before they can access the application, ensuring authenticity of inbox ownership.

## The email verification flow

Verification is a two-step process:

- A user signs up to your application and an email is sent with a verification code.
- The user inputs the verification code to complete the signup process.

This applies to all authentication methods including [OAuth](https://workos.com/docs/authkit/social-login) and [SSO](https://workos.com/docs/authkit/sso). This unifying interface simplifies how your application considers the authenticity of your users.

**Email verification is always on** to ensure that verified users are always returned to your application.

## Users with verified email domains

Users signing in with SSO with a [verified domain](https://workos.com/docs/authkit/domain-verification) are automatically considered verified and do not need to complete the email verification process.

## Users who accept an invitation

An [invitation](https://workos.com/docs/authkit/invitations) link is delivered by email, so accepting one proves ownership of the invited inbox. New users who sign up with the exact email address the invitation was sent to, within 10 minutes of the invitation email being sent, are automatically considered verified and are not sent a separate verification email. Resending an invitation restarts the 10 minute window.

An [`authentication.email_verification_succeeded`](https://workos.com/docs/events#authentication) event is emitted in this case, but no `email_verification.created` event, since no verification code is created.

The user completes the usual email verification process if the invitation is accepted after that window, if the invitation was never sent by email, or if they sign up with a different email address than the one that was invited.

## Sending verification emails

[AuthKit](https://workos.com/docs/authkit) automatically handles email verification out of the box. When a user signs up via the hosted signup form, AuthKit will automatically send the verification email, prompt the user to input the code and route them through the authentication process before they gain access to the application. If desired, you can [send these emails yourself](https://workos.com/docs/authkit/custom-emails).

If a verification email does not arrive, follow [Troubleshooting missing authentication emails](https://workos.com/docs/email#missing-authentication-emails) to check email settings, suppressions, and delivery history before trying again.
