# Enroll API-Asynchronous
source: https://developer.mastercard.com/issuer-enrollment/documentation/use-cases/auto-enrollment/enroll_api_async/index.md

[Enroll API-Asynchronous](https://developer.mastercard.com/issuer-enrollment/documentation/api-reference/index.md#enroll-api-asynchronous) allows you to enable single or multiple cardholders into Click to Pay in a single batch request.

### Pre-requisites {#pre-requisites}

1. Get onboarded with Mastercard Click to Pay. Refer to the [tutorial page](https://developer.mastercard.com/issuer-enrollment/documentation/tutorials-and-guides/index.md#tutorials) for [onboarding steps](https://developer.mastercard.com/issuer-enrollment/tutorial/issuer-onboarding-click2pay/index.md) and [key management](https://developer.mastercard.com/issuer-enrollment/tutorial/key-management-click2pay/index.md) for accessing APIs.
2. Update necessary Terms and Conditions to offer Click to Pay as a default feature in your core banking product before going into production.  
3. [Encrypt](https://developer.mastercard.com/issuer-enrollment/tutorial/perform-encryption/step2/index.md) the `enrollmentData` object (containing card and consumer details) to be passed to Enroll API.

### Detailed steps {#detailed-steps}

1. Call the [Enroll API-Asynchronous](https://developer.mastercard.com/issuer-enrollment/documentation/api-reference/index.md#enroll-api-asynchronous) to start the enablement.
   Ensure the following while using the API:

   * Generate and pass the `externalBatchID` along with the `srcClientId` and `serviceId` in the API request. Mastercard will respond with the `batchId` and `externalBatchId` on successful enablement.
   * Include the following data as part of the API request:
     * Email address.
     * Mobile number with country code.
     * Card details with Primary Account Number and expiry date.
     * Cardholder address.
     * First and last name of cardholder.
     * Locale with country and language.
     * `externalCardId` for each card in the batch.
     * `externalConsumerId` for each consumer in the batch.
     * Compliance settings (optional).
2. On successful enablement, `batchId` is provided in the API response that can be used to [fetch batch status](https://developer.mastercard.com/issuer-enrollment/documentation/use-cases/auto-enrollment/batch_status/index.md).

3. Once the cards are linked to the Click to Pay profile, consumers can review the added cards in the banking app/website.

![Auto-Enroll UX Flow on Issuer App](https://static.developer.mastercard.com/content/issuer-enrollment/documentation/img/auto-enroll-ux-flow08.png "Auto-Enroll UX Flow on Issuer App")
Note:   

* Ensure that during tokenization these cards should have no declines (red path).
* Once the eligible cards are auto-enabled, it may take some time to show the linked cards as the auto-enablement process is asynchronous.
* Post enablement, consumers can opt out of Click to Pay at anytime.   

  For more details, refer to [FAQs](https://developer.mastercard.com/issuer-enrollment/documentation/support/index.md#related-to-auto-enablement).

### Checkout {#checkout}

Based on Issuer implementation, cardholders may need to accept the Click to Pay Terms and Privacy Notice and may need to go through additional authentication after selecting card during first time checkout.

![tnc First Time User](https://static.developer.mastercard.com/content/issuer-enrollment/documentation/img/tnc_firsTimeCheckout2.png "Mastercard Click to Pay First time checkout auto enrollment")

If any required data is not provided during enablement by the issuer, Mastercard will need to collect it during checkout.
Mastercard will update the cardholder's profile with the user-provided information.

Data will be updated and stored if:

* Issuer has delegated to update directory management for required fields as per contractual Terms and Conditions to Mastercard.
* When data is collected during checkout, the consumer must provide consent to store their profile data with the Issuer.  

Otherwise, the collected data will not be saved. It will solely be used for the specific checkout session.
