> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wittify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# OTP Verification

> Type the 8-character code we sent to your email. The same page powers three flows: confirming a new signup, two-factor login, and password reset.

<Note>
  The verification page is at `app.wittify.ai/verify-otp`. It looks the same in all three flows (signup, password reset, two-factor login) but the title, description, and the page you go to next change to match the reason you got here.
</Note>

## What this page looks like

A centered card on the form panel of the auth shell.

* The standard **top bar** with the **language switcher** and **theme toggle**.
* A 56 px brand-gradient tile at the top of the card with a white **shield with checkmark** icon inside.
* The heading **Check your email**.
* A description that depends on why you're here:

| You got here from                                        | Description text                                                                                                                                     |
| -------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
| Signup, you just sent your email on the **Sign Up** page | *We sent a verification code to* **[your-email@company.com](mailto:your-email@company.com)** (the email is shown in left-to-right direction in bold) |
| Forgot Password, you just asked for a reset code         | *We sent a verification code to* **[your-email@company.com](mailto:your-email@company.com)**                                                         |
| Login with two-factor authentication on                  | *Enter the code from your authenticator app.*                                                                                                        |

* The **8-character code field** (described below).
* A brand-gradient **Verify code** button.
* A **Didn't receive the code?** row with the **Resend code** action (described below).
* A **Back to sign in** link with a left-pointing arrow icon.

## The 8-character code field

The field is split into two groups of four boxes with a small dash between them, like `XXXX-XXXX`. Each box accepts one character.

* **Allowed characters**: letters `A` to `Z`, letters `a` to `z`, digits `0` to `9`. Spaces aren't allowed.
* **Case**: case-insensitive at submit time, type in upper or lower case as you like.
* **Direction**: left-to-right, even on Arabic pages (codes are always Latin characters).
* **Auto-tab**: typing a character automatically moves the cursor to the next box.
* **Paste support**: you can paste the whole code, with or without the dash, the page splits it across the boxes for you.
* **Auto-submit**: the form does not submit on its own when you finish typing, you always need to click **Verify code**.

### Validation

| What you do                                | What you see                                      |
| ------------------------------------------ | ------------------------------------------------- |
| Click **Verify code** with the field empty | **Verification code is required** under the field |
| Type fewer than 8 characters and submit    | **Code must be 8 alphanumeric characters**        |
| Type a wrong code                          | **Invalid code. Please try again.**               |

The error appears centered in red just below the code boxes.

## Verify code button

A full-width brand-gradient button reading **Verify code**.

* While the request is running, the button is disabled and the label changes to **Verifying...** with a spinner.
* On success, you're routed to the next page automatically. Where you land depends on why you came here, see the table below.

| You got here from   | Where you go next                                                                                                          |
| ------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| Signup confirmation | [Profile Completion](/en/Systems/AI-Agents/Auth/Profile-Completion) , set your password and fill in your profile           |
| Password reset      | The **Reset your password** page (covered in [Forgot Password](/en/Systems/AI-Agents/Auth/Forgot-Password))                |
| Two-factor login    | Your dashboard at `/{lang}/dashboard`, signed in. If you arrived at the login page from a deep link, you go there instead. |

## Didn't receive the code? row

Just below the **Verify code** button.

* The first line is plain text: *Didn't receive the code?*
* Right after the page loads, a **60-second cooldown** starts. During the cooldown the second line reads **Resend in 59s**, then **58s**, all the way down to **1s**.
* Once the cooldown ends, the second line is replaced by a **Resend code** button (with a small refresh icon next to it).

### Clicking Resend code

* Sends a new code to the same email and for the same reason. The cooldown restarts.
* A confirmation line appears below the resend row in green: **A new code has been sent.**
* If something fails, the line reads in red: **Failed to resend code. Please try again.**
* The button is briefly disabled and shows the **Verifying...** spinner while it's working.

<Tip>
  The previous code stops working as soon as a new one is sent. Don't keep typing the older one if you've clicked **Resend code**.
</Tip>

## Back to sign in

A quiet text link at the bottom of the page reading **Back to sign in** with a small arrow icon. Click to drop the current verification flow and return to [Login](/en/Systems/AI-Agents/Auth/Login).

## Missing email guard

If you arrive at the verification page with a broken URL (no email), you don't see the form at all. Instead, the page shows:

* The error message **Email address is missing. Please go back.**
* A link reading **Back to sign in** with an arrow icon.

This protects you from typing a code that has nowhere to go. Restart from whichever flow brought you here ([Sign Up](/en/Systems/AI-Agents/Auth/Sign-Up), [Forgot Password](/en/Systems/AI-Agents/Auth/Forgot-Password), or [Login](/en/Systems/AI-Agents/Auth/Login)).

## Top bar (language + theme)

Identical on every auth page: a **language switcher** (Globe icon, EN / AR dropdown) and a **theme toggle** (animated sun / moon icon, **Light** / **Dark** / **System**). Switching language preserves the verification flow you're in.

## Common questions

<AccordionGroup>
  <Accordion title="The code never arrived.">
    Check your spam folder first. If 60 seconds have passed, click **Resend code**. If still nothing, your email provider may be rejecting the message, try with a different email by restarting the flow you came from. The code arrives within a few seconds normally, more than 5 minutes is unusual.
  </Accordion>

  <Accordion title="I keep getting Invalid code. Please try again.">
    Make sure you're typing the most recent code, codes from older emails stop working as soon as you ask for a new one. Each code expires after a short window. Codes are case-insensitive, so capitalisation doesn't matter, but a `0` (zero) is not the same as an `O` (letter O), check the email font carefully.
  </Accordion>

  <Accordion title="The page says Email address is missing.">
    That means the URL doesn't have your email in it, usually because someone clicked an old or hand-edited link. Go back to [Sign Up](/en/Systems/AI-Agents/Auth/Sign-Up), [Forgot Password](/en/Systems/AI-Agents/Auth/Forgot-Password), or [Login](/en/Systems/AI-Agents/Auth/Login) and resubmit your email.
  </Accordion>

  <Accordion title="Why is my code 8 characters and not 6?">
    Wittify codes are 8 characters and use letters as well as digits to make brute-force attempts harder. The `XXXX-XXXX` mask is just a visual aid to make typing easier.
  </Accordion>

  <Accordion title="I'm trying to sign up but I never get past this page.">
    The next page after signup verification is [Profile Completion](/en/Systems/AI-Agents/Auth/Profile-Completion), where you set your password. If the verify call succeeds and the page appears not to do anything, refresh once, you may have already moved on.
  </Accordion>

  <Accordion title="I clicked Resend code but the cooldown didn't restart.">
    The cooldown only restarts on a successful resend. If you saw the red **Failed to resend code. Please try again.** line, the request didn't go through, try once more.
  </Accordion>
</AccordionGroup>

## Next

<CardGroup cols={2}>
  <Card title="Profile Completion" icon="user-pen" href="/en/Systems/AI-Agents/Auth/Profile-Completion">
    The page after signup verification, set your password and fill in your profile.
  </Card>

  <Card title="Forgot Password" icon="key" href="/en/Systems/AI-Agents/Auth/Forgot-Password">
    The full reset flow.
  </Card>

  <Card title="Login" icon="right-to-bracket" href="/en/Systems/AI-Agents/Auth/Login">
    Sign in with your password (and 2FA if enabled).
  </Card>

  <Card title="Sign Up" icon="user-plus" href="/en/Systems/AI-Agents/Auth/Sign-Up">
    Don't have an account yet? Start here.
  </Card>
</CardGroup>
