---
page_title: Enabling CRED-Unbundling
product: CRED-Unbundling
page_source: https://juspay.io/in/docs/cred-unbundling/docs/cred-unbundling/enabling-cred-unbundling
llms_txt: https://juspay.io/in/docs/llms.txt
product_llms_txt: https://juspay.io/in/docs/cred-unbundling/llms.txt
---


# Enabling CRED Unbundling



> **Warning**
> Select your integration from the **Frontend**  dropdown above👆 — **Juspay HyperCheckout (Payment Page)**  or **Express Checkout SDK**  and follow the steps accordingly.



---

## Integration type : Juspay Express Checkout SDK


### Step 1. Check CRED app availability


Call `containerAvailability` on page load, before rendering any payment options. This is a client-side check no Juspay backend call is made.

* See the [containerAvailability reference](https://juspay.io/in/docs/cred-unbundling/docs/cred-unbundling/container-availability-check) the full request and response schema.

* If `credAppPresent` is `false`, stop here and render your payment page normally without any CRED elements.
* If `credAppPresent` is `true`store `credDeviceId` and `credAuthCode` from the response. You pass them to the eligibility check in [step 2](https://juspay.io/in/docs/cred-unbundling/docs/cred-unbundling/enabling-cred-unbundling#step-2.1-cred-eligibility-check).

> **Note**
> On Android, the response returns a **device ID**  and an **auth code** . 
> 
> On iOS, the auth code and device ID are returned only for repeat users who have previously paid with this mode.






### Step 2. Check card eligibility


The eligibility check asks CRED whether to show cards for this user. 

* Call the eligibility check using [containerEligibility (SDK)](https://juspay.io/in/docs/cred-unbundling/docs/cred-unbundling/containereligibility-sdk) from your app, or [(containerEligibility S2S)](https://juspay.io/in/docs/cred-unbundling/docs/cred-unbundling/containereligibility-s2s) from your backend server. Use one, not both.

* The response varies based on the user's eligibility, indicated by the `card.state` field _(explained in below table)_ . There are three possible states, and each one maps to a different UI on your payment page:


| card.state | What it means | Response contains | What you render |
|---|---|---|---|
| LINKED_INSTRUMENT | The user has linked their CRED cards and given consent | instruments: array of card objects. nudge is null | Show the cards with the Powered by CRED label. Store each instrumentId for the transaction call. |
| ELIGIBLE_TO_LINK | The user can use CRED but has no linked cards yet (no consent, or first time on iOS) | nudge: link prompt object. instruments is null | Show the Link and Pay prompt from the nudge content. On tap, call containerTxn without flow_data. |
| INELIGIBLE | Do not offer CRED to this user | Both instruments and nudge are null | Nothing. Render the payment page with no CRED elements. |



#### Response - If Cards are linked Code Snippet:

```response - if cards are linked
{
            "card": {
              "state": "LINKED_INSTRUMENT",
              "instruments": [
                {
                  "type": "CREDIT_CARD",
                  "priority": 0,
                  "par": "card_par_value",
                  "maskedCardNumber": "XXXX-XXXX-XXXX-9871",
                  "issuerLogoUrl": "bank_logo_url",
                  "instrumentId": "instrument_id_value",
                  "cardIssuer": "Bank Name",
                  "brandLogo": "card_brand_logo_url",
                  "brand": "VISA"
                }
              ]
            }
          }
```

#### Response - If No cards are linked Code Snippet:

```response - if no cards are linked
{
            "card": {
              "state": "ELIGIBLE_TO_LINK",
              "nudge": {
                "icon": "icon_logo_url",
                "text": "text if any",
                "sub_text": "sub text if any",
                "title": "Add cards from CRED"
              }
            }
          }
```

#### Response - If User is ineligible Code Snippet:

```response - if user is ineligible
{
                      "card": {
                        "state": "INELIGIBLE"
                    }                    
                  }
  
```





### Step 3.  Display CRED cards on the payment page


Expected result: The user sees their CRED cards (or a Link and Pay nudge) on your payment page.

Render based on `card.state`:

* `LINKED_INSTRUMENT`: Display the returned cards alongside any cards saved directly with you. Mark each CRED card distinctly with a "**Powered by CRED** " label and the "**CRED logo"**  so the user can tell them apart.
* `ELIGIBLE_TO_LINK`: Display the Link and Pay nudge using the `nudge` object (`title`, `text`, `sub_text`, `icon`).
* `INELIGIBLE`: Do not show any CRED card or nudge.




### Step 4 Initiate CRED Unbundling transactions


Invokes the CRED app to authenticate and complete payment, then returns the transaction status in a callback.

* Call `containerTxn`. The SDK invokes the CRED app on the device, where the user authenticates with biometrics, sees the OTP screen, and completes payment inside the CRED app. See the [containerTxn](https://juspay.io/in/docs/cred-unbundling/docs/cred-unbundling/containertxn) for the full schema.
* If the user selected a card shown on your payment page (saved card flow), include `flow_data` with the card's `instrument_id`

After the SDK callback, always verify the final status server-side using the [Order Status API.](https://juspay.io/in/docs/cred-unbundling/docs/cred-unbundling/order-status)



---

## Integration type : Juspay HyperCheckout (Payment Page)


### 3.1 Juspay Config Changes


* [Login](https://portal.juspay.in/marketplace?id=de72c170-22c8-4536-b3db-e1b6e8758eff&name=DOTP) to Juspay Dashboard and navigate to Marketplace tab to get the Cred Unbundling enabled on your Juspay payment page
* Juspay will release these changes in testing environment (CUG) for you to initiate the end to end testing on your app / website



---

## See Also

- [PA/PG Set Up](https://juspay.io/in/docs/cred-unbundling/docs/cred-unbundling/pa-pg-set-up)
- [Go-live](https://juspay.io/in/docs/cred-unbundling/docs/cred-unbundling/golive)
