# Perform Cardholder Authentication using Identity & Verification (ID&V)
source: https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/3rdparty_authentication_scof/step2/index.md

## Step 2: Perform Cardholder Authentication using Identity \& Verification (ID\&V) {#step-2-perform-cardholder-authentication-using-identity--verification-idv}

Identification \& Verification (ID\&V) is an authentication mechanism through which an Integrator can validate the cardholder identity for the card stored with the merchant/wallet.

An Integrator can request Mastercard to perform ID\&V using an authentication method supported by Mastercard. Currently, only EMV 3DS is supported.

Mastercard Checkout Solutions provides the 3DS data to the Issuers to help them authenticate their consumers during the ID\&V process.

![ID&V](https://static.developer.mastercard.com/content/mastercard-checkout-solutions/documentation/images/ID&V_taf_2.png "ID&V for TAF")

In the above image, **step 4** depicts the Authentication UI where a consumer successfully completes the challenge.

An Integrator launches the Authentication UI (owned by Mastercard) using one of the following approaches, wherein the Issuers present their challenge to consumer:   

* SDK based Authentication Invocation -- Integrator can utilize our SDK to invoke the Authentication UI. Refer to this [tutorial](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step4/index.md) for details.   

* URL based Authentication Invocation -- Integrator can utilize our URL to invoke the Authentication UI. Refer to this [tutorial](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step4/index.md) for details.

Note: Alongside ID\&V, an Integrator must use a Mastercard approved MFA method to perform authentication on their end and share the results with Mastercard Checkout Solutions. This is a required step to perform the [token binding](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/use-cases/card-on-file/token-auth-framework/token-binding-unbinding/index.md) with a consumer device and can be performed before or after the [ID\&V](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/use-cases/card-on-file/token-auth-framework/identification-verification/index.md).

## Authentication Invocation {#authentication-invocation}

Diagram taf-id\&v-authentication

Detailed steps are explained below:

1. An Integrator fetches the `authenticationMethods` and `uri` available in the response of [Enroll Card](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/api-reference/apis/index.md#card) or [Lookup Authentication Method](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/api-reference/apis/index.md#authentication) API endpoints.

2. An Integrator initiates the authentication process using either [SDK](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step4/index.md) or [URL](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step4/index.md) based invocation approach.   
   Pass the relevant values for:

   * `authenticationMethodType`= 3DS or MANAGED_AUTHENTICATION
   * `authenticationReason`= ENROL_FINANCIAL_INSTRUMENT or CONSUMER_IDENTITY_VERIFICATION.   

     For SDK approach, pass the relevant values in [authenticate()](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/sdk-reference/authenticate/index.md) method in [AuthenticationContext.dpaTransactionOptions](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/sdk-reference/common-objects/index.md#dpa-transaction-options) object:
   * `TransactionAmount`
   * `MerchantCategoryCode`
   * `MerchantCountryCode`
   * `ThreeDsInputData`
   * `forceChallenge`= *true*
3. An Integrator creates a Window object. Mastercard recommends to use pop-up.

4. Mastercard Checkout Solutions launches the Authentication UI within the window object to perform the 3DS challenge.

5. Issuer presents their challenge for the cardholder to complete on the Authentication UI.

6. Cardholder successfully passes the challenge for authentication.

7. Issuer shares the authentication results with Mastercard Checkout Solutions.

8. Mastercard Checkout Solutions sends the proof of ID\&V authentication to the Integrator with the fields such as `authenticationResult`= *authenticated* and `authenticationStatus`= *complete* in `assuranceData`.

## Consumer Cancels The Challenge {#consumer-cancels-the-challenge}

If a consumer cancels the challenge on the Authentication UI, Mastercard Checkout Solutions responds with `authenticationStatus`= *cancelled*.

In this case, Mastercard does not provide token binding for the consumer device and fraud liability protection to the Integrator.

```json
{
  "authenticationStatus": "CANCELLED",
  "authenticationResult": "NOT_AUTHENTICATED",
  "srcCorrelationId": "6cb05dac-72ee-43a6-802d-3444354488bf",
  "srciTransactionId": "3e73a481-d79c-4cb1-b648-52b70469e63a"
}
```

