# Perform Authentication
source: https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step6/index.md

## Step 6. Perform Authentication {#step-6-perform-authentication}

Note: Performing cardholder authentication is required for Secure Card on File. However, it may not be applicable for all checkout or transaction scenarios.

Request transaction authentication while adding a card or performing checkout.

* [Option 1](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step6/index.md#option-1-perform-authentication-using-passkey): Perform Authentication using Passkey
* [Option 2](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step6/index.md#option-2-perform-authentication-using-a-preferred-method): Perform Authentication using a Preferred Method
* [Option 3](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step6/index.md#option-3-perform-authentication-using-third-party-method): Perform Authentication using a Third Party Method

## Option 1: Perform Authentication using Passkey {#option-1-perform-authentication-using-passkey}

Mastercard allows the cardholders to create a passkey and the Integrators to use these passkeys for authenticating a transaction.

1. Launch the Mastercard [Authentication UI](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step4/index.md) to perform Identity and Verification (ID\&V).   
   The authentication request must comprise of:

* `authenticationMethodType` = MANAGED_AUTHENTICATION
* `authenticationReasons` = ENROL_FINANCIAL_INSTRUMENT or CONSUMER_IDENTITY_VALIDATION or TRANSACTION_AUTHENTICATION
* `transactionAmount` \> 0 and other required parameters
* Mandatory data fields: **acquirerMerchantId** /**acquirerId** , **acquirerBIN** , **merchantCategoryCode** , **dpaLocale** , and **merchantCountryCode** Note: The `transactionAmount` is required for `authenticationReasons` = TRANSACTION_AUTHENTICATION.

2. If a passkey is not present, Mastercard initiates 3DS authentication.   
   Once the ID\&V is successful, the cardholder is prompted to create a passkey.

3. If a passkey exists, Integrator prompts the cardholder for authentication.

4. Mastercard authenticates the transaction using the passkey and shares the results in `authenticationResult`= AUTHENTICATED and `authenticationStatus`= COMPLETE within `assuranceData` with the Integrator, detailed out [here](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step5/index.md).

5. Pass these authentication results in the [Checkout API](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step7/index.md) call.

Use cases are available [here](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/token-authentication/secure-card-on-file/by-mastercard/authentication-with-passkey/create-passkey/index.md).

## Option 2: Perform Authentication using a Preferred Method {#option-2-perform-authentication-using-a-preferred-method}

To perform authentication using Issuer supported methods (3DS), follow these steps:

1. Launch the Mastercard [Authentication UI](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step4/index.md) to perform 3DS transaction authentication.   
   The authentication request must comprise of:

* `authenticationMethodType` = 3DS
* `authenticationReasons` = TRANSACTION_AUTHENTICATION
* `transactionAmount` \> 0 and other required parameters
* Mandatory data fields: **acquirerMerchantId** , **acquirerBIN** , **merchantCategoryCode** , and **merchantCountryCode**

2. The Issuer may present the challenge on the Authentication UI or a frictionless 3DS transaction authentication is done.

3. The Issuer shares the authentication results with Mastercard.

4. Upon successful 3DS transaction authentication, Mastercard shares the results in `authenticationResult`= AUTHENTICATED and `authenticationStatus`= COMPLETE within `assuranceData` with the Integrator, detailed out [here](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step5/index.md).

5. Pass these authentication results in the [Checkout API](https://developer.mastercard.com/mastercard-checkout-solutions/tutorial/integrate_apis_scof/step7/index.md) call.

Use case is available [here](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/token-authentication/secure-card-on-file/by-mastercard/authentication-with-3ds/index.md).

## Option 3: Perform Authentication using Third Party Method {#option-3-perform-authentication-using-third-party-method}

Integrators can also opt for Mastercard-approved, third-party authentication solution. In this solution, an Authenticating Entity (AE) serves as a third-party entity and performs authentication.

For more details, see [here](https://developer.mastercard.com/mastercard-checkout-solutions/documentation/token-authentication/secure-card-on-file/by-third-party/index.md).
