# Card Payments with 3DS

To perform card payments using 3DS flow with mobile SDKs, complete the following steps:

1. Store the [card capture key](/online-payments/api-integration-methods-auth-and-endpoints/secure-card-capture-key.md) on your backend and pass it to the mobile app at the start-up phase or when the payment is initialized.
2. Your app will send a call to **Verifone SDK** to display the **Card Form.** The following information should be passed to the **Card Form**: card capture key, price, and the option whether to include the stored card in the **Card Form** or not. **Verifone SDK** will provide your app with the encrypted card data, shopper name and card brand. Send the encrypted data along with additional information about the order to the backend.
3. Initiate a [Create JWT](/api-reference/open-api-references/ecommerce/token-management.md) transaction with the encrypted data.
4. Receive the **JWT** from your backend.
5. Send the **JWT** back to the SDK to complete the 3DS setup. After the setup is complete, a **device ID** will be generated.
6. Send the **device ID** to your backend.
7. Perform a[ lookup request](/api-reference/open-api-references/3d-secure.md) using the **encrypted data** and the **device ID.**
8. The 3DS API will return a **payload** and **transaction ID.**
9. Forward the **payload** and **transaction ID** to the SDK to complete the authentication.
10. If the authentication is successful, an **authentication ID** will be generated. After the ID is generated, send it to the backend.
11. Initiate a [JWT Validation ](/api-reference/open-api-references/3d-secure.md)with the **JWT** and **authentication ID**. Continue with the standard card transaction.

<div data-with-frame="true"><img src="https://verifone.cloud/sites/default/files/inline-images/3DS%20Card%20Payment%20Flow%20Diagram.PNG" alt=""></div>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.verifone.com/online-payments/mobile-sdks/card-payments-with-3ds.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
