---
page_title: Card transaction flow
product: API Reference 
page_source: https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/card-transaction-flow
llms_txt: https://juspay.io/br/docs/llms.txt
product_llms_txt: https://juspay.io/br/docs/api-reference-brazil/llms.txt
---


# Card Transaction Flow



The card transaction flow enables customers to make secure payments using their credit or debit cards, providing a convenient and widely accepted method for transactions. The two different types of card transaction flow are:

1. **[New Card Transaction Flow](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/card-transaction-flow#New-Card-Transaction-Flow)** **:**  This flow allows customers to enter their card details during checkout for processing a payment. It is suitable for first-time users or customers who prefer to provide card information manually.
2. **[Saved Card Transaction Flow](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/card-transaction-flow#Saved-Card-Transaction-Flow)** : With this flow, customers can conveniently complete transactions using their previously saved card details. It offers a streamlined checkout experience for returning customers, eliminating the need to re-enter card information.

Both flows prioritize security and aim to provide a seamless payment experience for customers using card-based payments.


### **Integration Architecture** 



![Image](https://dth95m2xtyv8v.cloudfront.net/tesseract/assets/blog/Juspay%E2%80%99s%20EC%20API%20-%20Card%20Integration%20-%20Flow%20Diagram%20(2).jpg)




### **New Card Transaction Flow** 



* This flow handles a user entering card details manually for the first time.
  
  **Step 1** : Call the**** **[Create Order API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/create-order-api)** [](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/create-order-api)- To register the transaction amount and generate a unique **order_id**  before any sensitive data is collected. Ensure that the return_url passed here is able to handle poll/display of order status.
  
  **Step 2:**  Call the **[Transaction API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/credit--debit-card-transaction)**  - Pass the Raw Card Details (Number, Expiry, Name) provided by the user. The transaction will reach a terminal state or expect a 3DS redirect URL.
  
  **Step 3:**  Parse the response from the **[Transaction API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/credit--debit-card-transaction)** .
  
  1. Look for a Pending/Authentication status (e.g., **PENDING_VBV** ).
  2. If found, extract the Bank URL<payment.authentication.url> provided in the response.
  3. Redirect the user's browser to this URL to complete the OTP step. Except the callback to the return_url sent in **[Create Order API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/create-order-api)** ).


### **Saved Card Transaction Flow** 



* This flow handles a returning user selecting a card they have previously stored or tokenized.
  
  **Step 1:**  Call the **[List Cards API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/list-stored-cards)**  - To fetch the **card_token**  and masked numbers (e.g., "XXXX-1234") to display to the user on your checkout UI. <or in cases where multiple saved instruments need to be displayed Call Get SPM API>
  
  **Step 2:**  Call the **[Create Order API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/create-order-api)**  (Same as New Card flow) - Generates the **order_id**  for this specific payment attempt.
  
  **Step 3:**  Call the **[Transaction API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/credit--debit-card-transaction)** - Ensure the API knows this is a "Tokenized" transaction so it doesn't look for a full card number. Instead of raw numbers, pass the Card Token (from Step 1) and the CVV (collected from the user).
  
  **Step 4:**  Handle the 3DS Challenge - Same as Step 3 in the New Card flow (Check for Pending status -> Redirect to Bank URL).
  
  **Note:**  If your system has a card management module, integrate the **[Add Card API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/add-card)** , **[Update Card API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/update-card)** , **[Delete Card API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/delete-card)** , **[List Stored Cards API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/list-stored-cards)**

> **Error**
> * **Compliance Check:**  Merchants who are not PCI DSS compliant should refrain from using this API and consume our [PayV3.js](https://juspay.io/br/docs/payv3/web/overview/introduction)[](https://juspay.io/br/docs/payv3/web/overview/introduction)for cards.



---

## See Also

- [Cance Transaction API](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/cance-transaction-api)
- [Credit / Debit Card transaction](https://juspay.io/br/docs/api-reference-brazil/docs/express-checkout/credit--debit-card-transaction)
