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

# Send Verification Process

This Process sends/resends a verification message to an unverified email address or mobile number.

## Multiple Process Orchestration

Some user journeys only need one Process or standard REST API to complete a task. Other user journeys are multi-step, dependent processes linked together with **action tokens**. The Storefront Gateway Process framework manages the **action tokens** and how they are linked together and executed.

<img src="https://mintcdn.com/amdocs-spbu/0TZ9XF1Mst_2ATcV/marketONE/sgProcessGuide/images/m1c_multipleProcessSendVerification.png?fit=max&auto=format&n=0TZ9XF1Mst_2ATcV&q=85&s=43f891d39fdd79a267725dba966ff3a5" alt="" width="1272" height="245" data-path="marketONE/sgProcessGuide/images/m1c_multipleProcessSendVerification.png" />

The**Resend Verification** Process is a connective Process that links a preceding and subsequent process as a part of a more complex journey.

## **Resend Process vs Resend API**

This process is functionally similar to – but distinct from – the PUT session/token API. See the following table for more details:

|   | Send Verification Message Process | PUT /session/token API |
| - | - | - |
| **Invocation Methods** | `POST/process/start/{processName}` | `**PUT /session/token**?pkat={pkat}` |
| **Requires** | The authN ID (email address or mobile number) to which a token needs to be sent. | The [PKAT](c_actionTokens) that a previous Process returned to the client. |
| **What does it do?** | Sends a new \*\* token to a user's contact channel. | Resends an updated token to the designated contact channel. |
| **When can it be used?** | Invoked from an authenticated state meaning that the user is signed in. | Can be invoked from an anonymous or authenticated state. |

The Send Verification Process generates and sends a **new** action token to the user. Conversely, the PUT session/token API resends an existing token (updated value). Additionally, the Resend Verification Process doesn't require a [PKAT](c_actionTokens) but instead needs an email address or mobile number.

This Process is beneficial where the client doesn't have a PKAT that corresponds to an issued action token. This typically occurs when an authenticated user registers a new or additional email/mobile number to their profile (using the [Add/Update Email, Mobile, or Alias Process](c_addUpdateAuthnID) Process). At the Process end, if the user closes the client application or browser, then the client loses the PKAT. Therefore, if the user misplaces their link/code, and they return to their profile at a later date, they can select **send new link/code** option from the UI, and the user's email or mobile is sent to the [POST /process/start/\{processName}](c_processStart) API request.

## Add the AuthN ID to the Initial Request

Like most Processes, this Process is initialized by the Process Start API. In most use cases, the Process Start API optionally consumes no payload, and responds with a request for the data it requires to finish its task.

However, the Send Verification Process **needs** the client to add the required parameter, the authentication identifier that needs to be verified, along in the initial request.

The client can provide the target email address or mobile number in the initial request body:

```
**POST https://\{your.url\}/process/start/userManagement.SendVerification.v1.0**
{
   "parameters": {
      "authnIdentifier": "jane.smith@email.com"
   }
}
```

Alternatively, the client can add the target email or mobile to the request API path (i.e., in the request URL):

```
**POST /process/start/userManagement.SendVerification.v1.0?authnIdentifier=jane.smith@email.com**
<no body>
```

## Process Flow

This flow describes the Send Verification Process at a high level. using the happy path flow:

**Preconditions**

* The user is authenticated in Storefront Gateway.
* The user has an email address or mobile number pending verification.

**Basic Flow**

1. The user navigates to their email/mobile management section of their profile (or client UI equivalent), and selects to send a verification message to a given email/mobile.
   * The `GET /user` API returns the Storefront Gateway User entity to the client. This entity includes an `attributes` object wherein all of the user's registered authN IDs are listed, including each authN IDs **Status** in Storefront Gateway.
   * The client UI can read the status and display a message or icon that signifies that status to the user.
2. Storefront Gateway sends a verification message to the email address or mobile number.
   * The message contains a token redirect URL and/or a One Time Passcode (OTP).
   * When the user redeems this token, it will trigger Activate User Process.

**Post conditions**

* Verification token is sent out to the unverified email/mobile.

**Possible or Common Errors**

* Authentication identifier not provided. The process was invoked without any authN ID.
* Invalid authentication identifier. The specified value is not a valid authN ID.
* Authentication identifier not found. The specified authN ID is not associated to this user.

## App Settings

Manage app settings in the Admin Portal and configure your tokens from the **Admin** > **Authentication** > **Tokens** pages.

| Application Settings | Default Setting | |
| - | - | - |
| **tokenURL** | Base for the action token URL to include in the notification message sent to the user's external channel. The actual token value will be appended to this string to form the complete verification link URL. | [https://idp/user\\\_confirm?token\\\_value=](https://idp/user\\_confirm?token\\_value=) |
| **Token (long-form) Expiration** | Determines the number of minutes before a verification link expires. | 28800 minutes (20 days) |
| **Token (short-form) Expiration** | Determines the number of minutes before an OTP expires. **This setting is not configurable; it is noted here for context**. | 5 minutes |

## Use Cases

* [Send new verification link or OTP](c_useCaseSendNewVerification)

* [Sending verification errors](c_sendVerificationErrors)

* **[Send a new verification message](c_useCaseSendNewVerification)**

* **[Send Verification Errors](c_sendVerificationErrors)**

**Parent topic:**[Identity Management Processes](../images/c_identityProcesses)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.