> For the complete documentation index, see [llms.txt](https://docs.verifone.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.verifone.com/online-payments/mobile-sdks/card-payments-with-3ds.md).

# 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](broken://spaces/OiXbo96Og9EN7rz2U44K/pages/a2f8218e3bc2c48f395f6105962c1223c9ad3edd) 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](broken://spaces/OiXbo96Og9EN7rz2U44K/pages/GQHgh4mWmPj7wkHiboYJ) 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 ](broken://spaces/OiXbo96Og9EN7rz2U44K/pages/GQHgh4mWmPj7wkHiboYJ)with the **JWT** and **authentication ID**. Continue with the standard card transaction.

<div data-with-frame="true"><figure><img src="/files/uKf8bLY5TJZXxkBDUfds" alt=""><figcaption></figcaption></figure></div>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
