---
page_source: https://docs.hdfcbank.juspay.in/docs/hypercheckout-mobile-sdk/web/resources/payment-locking
page_title: Payment Locking
---


# Payment Locking



Payment locking allows you to block/ allow specific payment instrument groups/ payment instruments on the SmartGateway screen. For example, if you want to display or hide a specific payment option for a particular product/ service, you can use payment locking to handle such scenarios.Follow the below steps to implement payment locking:


### Step 1 Construct the Payment Locking Payload


For constructing the payment locking payload please refer to the`Payment Locking Sample Payloads` and select the desired action from the dropdown to obtain the appropriate payload. 




### Step 2(a) Pass the Payment Locking Payload (Web Integration)


1. Pass the payment locking payload in the `payment_filter` parameter while [creating an order](https://docs.global.juspay.in/juspay-sdk-integration/android/how-to-integrate-sdks/create-an-order), where all the fields are **CASE SENSITIVE**
2. Open the payment page by loading the**** Payment Link received in response




### Step 2(b) Pass the Payment Locking Payload (Android/iOS Integration)


1. Pass the payment locking payload in the `payment_filter` parameter while [creating an order](https://docs.global.juspay.in/juspay-sdk-integration/android/how-to-integrate-sdks/create-an-order), where all the fields are **CASE SENSITIVE**
2. After creating an order the `sdk_payload`received will contain the payment filter parameters
3. Open the payment page by passing the `sdk_payload`in `openPaymentPage()` function




### Payload Details




### Step 1.1a PaymentFilter Payload


Refer below parameters for Payment Locking. Refer to this [link](/hdfc-resources/docs/common-resources/payment-locking-bank-codes) for the list of possible values of payment locking.


### Payload
- **AllowDefaultOptions**:
  - Description: It defines whether you want to display all default payment options along with the payment options on which payment filters were applied.**For Example:**  You passed payload to disable cards payment option and set 'allowDefaultOptions' as true, then it will display all other payment options other than cards. ORYou passed payload to enable cards payment option and set 'allowDefaultOptions' as false, then it will only display cards option on the SmartGateway screen.
  - Value: <p><b>Possible Values:</b> true or false</p>
  - Tags: Boolean, Mandatory
- **Options**:
  - Description: Options defines the method on which payment locking has to be applied.
  - Value:
    - **Enable**:
      - Description: This is to decide whether to disable or enable the payment method, false will disable the payment method and true will enable the payment method.For CARD/UPI as paymentMethodType it should be true if upiFilters or cardFilters are passed.
      - Value: <b>Possible Values:</b> true, false
      - Tags: Boolean, Mandatory
    - **PaymentMethodType**:
      - Description: This decides on which payment method type the payment locking should be applied on.
      - Value: <p><b> Possible Values:</b> CARD, UPI, WALLET, NB, CONSUMER_FINANCE, REWARD, CASH</p>
      - Tags: String, Mandatory
    - **PaymentMethods**:
      - Description: This contains the payment methods on which payment locking have to be applied It won't be considered if paymentMethodType is UPI / CARD.
      - Value: <p><b>Possible Values:</b> [PHONEPE, PAYTM],...<br>
<br>
In case of <b>mandate flows</b> (NB, WALLET, CONSUMER_FINANCE) pass additional values with prefix JP_<br>
<br>
<b>For example,</b> <br>
In NB pass both ["NB_HDFC", "JP_HDFC"] <br>
In WALLET pass both["PAYTM", "JP_PAYTM"] <br>
In CONSUMER_FINANCE pass both ["ZESTMONEY", "JP_ZESTMONEY"] <br></p>
      - Tags: Array, Optional
    - **CardFilters**:
      - Description: It won't be considered unless paymentMethodType is CARD.
      - Value:
        - **CardBrands**:
          - Description: This contains the card brand on which payment locking has to be applied.
          - Value: <b>Possible values:</b> VISA, RUPAY,...
          - Tags: Array, Optional
        - **CardBins**:
          - Description: This contains the card BINS on which payment locking has to be applied.
          - Value: <p><b>Possible values:</b> ["459000::460000"]</p>
          - Tags: Array, Optional
        - **CardTypes**:
          - Description: This contains the card type on which payment locking has to be applied.
          - Value: <p><b>Possible values:</b> DEBIT, CREDIT</p>
          - Tags: Array, Optional
        - **CardSubTypes**:
          - Description: This contains the card sub type on which payment locking has to be applied.
          - Value: <p><b>Possible values:</b> BUSINESS, EMPLOYEE_CARD</p>
          - Tags: Array, Optional
        - **CardBanks**:
          - Description: This contains the Bank names on which payment locking has to be applied.
          - Value: <p><b>Possible values:</b> SBI, ICICI Bank, HDFC Bank, Bank of India etc</p>
          - Tags: Array, Optional
        - **Enable**:
          - Description: This is to decide whether to disable or enable the payment instrument. False will disable the payment method and true will enable the payment method.
          - Value: <p><b>Possible values:</b>true, false</p>
          - Tags: Boolean, Mandatory
      - Tags: Array, Optional
    - **UpiFilters**:
      - Description: It won't be considered unless paymentMethodType is UPI.
      - Value:
        - **UpiType**:
          - Description: This contains the UPI type on which payment locking has to be applied.
          - Value: <p> <b>Possible values:</b>COLLECT, INTENT </p>
          - Tags: String, Optional
        - **UpiMethods**:
          - Description: This contains the UPI method on which payment locking has to be applied.
          - Value: <p> <b>Possible values:</b> If upiType is 'COLLECT' then '@ybl', '@okicici'... <br> If upiType is 'INTENT' then 'phonepe', 'googlepay'... </p>
          - Tags: Array, Optional
        - **Enable**:
          - Description: This is to decide whether to disable or enable the payment method on which upiFilters are applied, false will disable the payment method and true will enable the payment method.
          - Value: <p><b>Possible values:</b> true or false</p>
          - Tags: Boolean, Mandatory
      - Tags: Array, Optional
  - Tags: Array, Mandatory





### EMI Filter:



You can show/ hide/ only display EMI without cards by passing below values in **'sdk_udf'**  parameter while creating an order.

> **Note**
> Please intimate your Bank POC if you plan on using sdk_udf. They will enable a config required to use this feature.




| Use case | Description and Type | sdk_udf : Possible Values |
|---|---|---|
| Show EMI | <b>Type:</b> String <br> <br><b>Use Case:</b> Need to show EMI on the SmartGateway screen | <b>Value:</b> showEMI |
| No EMI | <b>Type:</b> String<br> <br><b>Use Case:</b> Need to hide EMI on the SmartGateway screen. | <b>Value:</b> hideEMI |
| EMI without Cards | <b>Type:</b> String <br> <br><b>Use Case:</b> Need to show EMI on the SmartGatewayscreen, but not CARD. | <b>Value:</b> ShowEMIWithoutCards |
