# Enroll a card in 3D Secure 3D Secure (3DS) provides an additional security layer for your cardholders when making online payments. Enabling 3DS on your cards reduces the chance of fraudulent transactions and chargebacks. You must enroll physical cards and multi-use virtual cards in 3DS if they: - Were issued within the European Economic Area (EEA) or the UK - Can be used for online payments within the EEA or the UK > **Information** > > Online transactions performed using physical cards or multi-use virtual cards that are not enrolled in 3DS are likely to be declined. To comply with the Payment Services Directive 2 (PSD2) regulation, we support two-factor authentication (2FA). During your [Issuing onboarding](https://www.checkout.com/docs/card-issuing/set-up-card-program.md), choose one of the following two-factor authentication flows: - One-time password (OTP) sent through SMS and a password chosen by the cardholder - OTP sent through SMS and a security question and answer chosen by the cardholder --- ## Enroll a card You can enroll cards in 3DS using the Dashboard and the API. ### Enroll a card in the Dashboard 1. Sign in to the [Dashboard](https://dashboard.checkout.com). 2. Go to _Issuing_ > _Cards_. 3. Select the card you want to enroll. You can search or use filters to help find the card. 4. Select _Set up 3D Secure_. This option is not displayed if the card is already enrolled. 5. Enter the required details. 6. Select _Confirm_. ### Enroll a card using the API Call the [Enroll a card in 3DS](https://api-reference.checkout.com/tag/Cards/#operation/enrollCard) endpoint, and provide the card ID as the `{cardId}` path parameter. In the request body: - `security_pair` or `password` – Provide the cardholder's details, depending on your chosen 2FA option. - `phone_number` – Provide the phone number to send the OTP to. - `locale` – Optionally, provide the customer's locale as either `en-US` or `fr-FR`. > **Information** > > Your base URL's `{prefix}` value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see [API endpoints](https://www.checkout.com/docs/developer-resources/api/api-endpoints.md). **Production** `POST` `https://{prefix}.api.checkout.com/issuing/cards/{cardId}/3ds-enrollment` **Sandbox** `POST` `https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment` ### Request example **Password** ```json { "password": "Xtui43FvfiZ", "locale": "en-US", "phone_number": { "country_code": "+1", "number": "415 555 2671" } } ``` **Security pair** ```json { "security_pair": { "question": "What is my favorite animal?", "answer": "Dog" }, "locale": "en-US", "phone_number": { "country_code": "+1", "number": "415 555 2671" } } ``` ### Response example ```json { "_links": { "self": { "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment", "actions": [ "GET" ], "types": [ "application/json" ] } } } ``` If you receive a `202` response, the card was successfully enrolled in 3DS. After enrolling a card, you can [retrieve the enrollment details](https://api-reference.checkout.com/tag/Cards/#operation/getCardEnrollmentDetails). > **Information** > > You can use the Out-of-Band Authentication SDK for [Android](https://www.checkout.com/docs/developer-resources/sdks/out-of-band-authentication-sdks/out-of-band-authentication-android-sdk.md) or [iOS](https://www.checkout.com/docs/developer-resources/sdks/out-of-band-authentication-sdks/out-of-band-authentication-ios-sdk.md) to perform 3DS authentication on cardholders from your app. --- ## Update enrollment details If your customer requests a change to their details, for example if they change their password or phone number, update the details of their enrolled card accordingly. You can do this using the Dashboard and the API. ### Update enrollment details in the Dashboard 1. Sign in to the [Dashboard](https://dashboard.checkout.com). 2. Go to _Issuing_ > _Cards_. 3. Select the card you want to update the details for. You can search or use filters to help find the card. 4. Select _Edit_. This option is only displayed if the card is already enrolled. 5. Update the required details. 6. Select _Save_. ### Update enrollment details using the API Call the [Update a card's 3DS details](https://api-reference.checkout.com/tag/Cards/#operation/updateCardEnrollmentDetails) endpoint, and provide the card ID as the `{cardId}` path parameter. In the request body, update the required details. > **Information** > > Your base URL's `{prefix}` value is unique to your account and environment. To learn how to retrieve your base URLs for the sandbox and production environments, see [API endpoints](https://www.checkout.com/docs/developer-resources/api/api-endpoints.md). **Production** `PATCH` `https://{prefix}.api.checkout.com/issuing/cards/{cardId}/3ds-enrollment` **Sandbox** `PATCH` `https://{prefix}.api.sandbox.checkout.com/issuing/cards/{cardId}/3ds-enrollment` ### Request example **Password** ```json { "password": "Xtui43FvfiZ", "locale": "en-US", "phone_number": { "country_code": "+1", "number": "415 123 4567" } } ``` **Security pair** ```json { "security_pair": { "question": "What is my favorite animal?", "answer": "Dog" }, "locale": "en-US", "phone_number": { "country_code": "+1", "number": "415 123 4567" } } ``` ### Response example ```json { "_links": { "self": { "href": "https://{prefix}.api.checkout.com/issuing/cards/crd_fa6psq42dcdd6fdn5gifcq1491/3ds-enrollment", "actions": [ "GET" ], "types": [ "application/json" ] } } } ``` --- ## Subscribe to webhooks You can set up webhooks to be notified when cards are enrolled or their enrollment details are updated: 1. [Configure your webhook server](https://www.checkout.com/docs/developer-resources/event-notifications/receive-webhooks/configure-your-webhook-server.md). 2. Subscribe to the following webhooks: - [3DS card enrolled](https://www.checkout.com/docs/developer-resources/event-notifications/event-types/3ds_card_enrolled.md) - [3DS card information changed](https://www.checkout.com/docs/developer-resources/event-notifications/event-types/3ds_card_information_changed.md)