Payment Mode Reference


Use this complete reference to configure individual payment modes. Allow or block specific options by adding a constraint object to enabledPaymentModes or disabledPaymentModes inside paymentModeConfig.

Control which UPI flows, apps, and instruments are available. A single "type": "UPI" object covers all UPI payment methods, you do not need separate entries for Intent, QR, and Collect.

Parameters

Add an object with "type": "UPI" to enabledPaymentModes or disabledPaymentModes. All dimension fields are optional, omitting a field matches all values for that dimension.

ParameterTypeMandatoryDefaultDescription
typestringRequiredMust be "UPI".
flowsarrayOptionalAll flowsAccepted values: "INTENT", "COLLECT", "QR".
appsarrayOptionalAll appsAllowed apps (lowercase). See Supported Values.
instrumentsarrayOptionalAll instrumentsAccepted values: "BANK_ACCOUNT", "RUPAY_CC", "CREDIT_LINE".

Note:

  • apps values are case-sensitive and must be lowercase (for example, “phonepe”, “gpay”). Uppercase values will not match.
  • Only the first "type": "UPI" constraint in the list is processed. If you include multiple UPI objects, only the first takes effect.

How Dimensions Interact

All fields within the UPI constraint are evaluated with AND logic. A UPI payment option is shown only when it matches every specified dimension.

flowsappsinstrumentsResulting Behavior
["INTENT"]["gpay"]["BANK_ACCOUNT"]GPay intent payments from a bank account only.
["INTENT"]["gpay"](omitted)GPay intent payments using any instrument.
["INTENT"](omitted)(omitted)All apps and instruments via intent flow
(omitted)["phonepe"](omitted)PhonePe via any flow (intent, collect, QR).
(omitted)(omitted)[“BANK_ACCOUNT”]All apps and flows, but bank account instrument only.

Configuration Examples

1. Allow PhonePe intent only

Show only the PhonePe UPI intent option. All other UPI apps, QR, and Collect are hidden.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "enabledPaymentModes": [
        {
          "type": "UPI",
          "flows": ["INTENT"],
          "apps": ["PhonePe"]
        }
      ]
    }
  }
}

2. Allow QR only

Show only the UPI QR code option. Intent and Collect flows are hidden.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "enabledPaymentModes": [
        {
          "type": "UPI",
          "flows": ["QR"]
        }
      ]
    }
  }
}

3. Block Credit Line instruments

Allow all UPI flows and apps, but exclude UPI Credit Line (BNPL/credit-based UPI instruments).

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "disabledPaymentModes": [
        {
          "type": "UPI",
          "instruments": ["CREDIT_LINE"]
        }
      ]
    }
  }
}

5. Allow PhonePe and GPay, all flows

Show only PhonePe and GPay across all UPI flows (intent, collect, QR). All other UPI apps are hidden.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "disabledPaymentModes": [
        {
          "type": "UPI"
        }
      ]
    }
  }
}

4. Disable UPI entirely

Block all UPI payment options. All other enabled payment methods remain available.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "enabledPaymentModes": [
        {
          "type": "UPI",
          "apps": ["phonepe", "gpay"]
        }
      ]
    }
  }
}

Note: Omitting all dimension fields (flows, apps, instruments) in disabledPaymentModes disables all UPI options entirely.

Use the CARD constraint to control which card types, networks, variants, and geographies are available to your customers. You can allow or block combinations across all four dimensions.

Important: Disabling the CARD payment mode also disables EMI options, since EMI is processed through the card payment flow. If you want to disable only EMI while keeping cards active, use the EMI constraint instead.

Parameters

Add an object with "type": "CARD" to enabledPaymentModes or disabledPaymentModes. All dimension fields are optional, omitting a field matches all values for that dimension.

ParameterTypeMandatoryDefaultDescription
typestringRequiredMust be "CARD".
typesarray of stringsOptionalAll typesCard types to allow or block. Accepted values: "CREDIT_CARD""DEBIT_CARD".
networksarray of stringsOptionalAll networksCard networks to allow or block. Accepted values: "VISA""MASTER_CARD""RUPAY""AMEX""DINERS_CLUB".
variantsarray of stringsOptionalAll variantsCard tier to allow or block. Accepted values: "CONSUMER""PREMIUM""SUPER_PREMIUM""CORPORATE".
geoScopesarray of stringsOptionalAll geographiesCard issuing geography to allow or block. Accepted values: "DOMESTIC""INTERNATIONAL".

How Dimensions Interact

All fields within the card constraint are evaluated with AND logic. A card is shown only when it matches every specified dimension.

typesnetworksvariantsgeoScopesResult
["CREDIT_CARD"]["VISA"](omitted)["DOMESTIC"]Domestic Visa credit cards (all variants)
["DEBIT_CARD"]["RUPAY"](omitted)(omitted)All RuPay debit cards
(omitted)(omitted)["CORPORATE"](omitted)All corporate cards (credit and debit, any network)
["CREDIT_CARD"]["VISA", "MASTER_CARD"]["CONSUMER", "PREMIUM"]["DOMESTIC"]Domestic Visa/Mastercard consumer and premium credit cards
(omitted)(omitted)(omitted)["INTERNATIONAL"]All international cards

Card Variant Tiers

VariantDescription
CONSUMERStandard consumer cards for everyday personal use
PREMIUMPremium consumer cards with rewards and lifestyle benefits
SUPER_PREMIUMSuper-premium cards (Signature, Infinite, World Elite tier)
CORPORATECorporate or business expense cards

Examples

1. Allow domestic Visa and Mastercard credit cards only

Show only domestic Visa and Mastercard credit cards. Debit cards, international cards, RuPay, Amex, and Diners Club are hidden.

2. Block international cards

Allow all domestic cards; block all international cards.

3. Allow domestic debit cards only

Show only domestic debit cards across all networks.

4. Allow corporate cards only

Show only corporate cards (useful for B2B invoicing flows where only corporate expense cards are expected).

5. Disable cards entirely

Block all card payments. Note that this also disables all EMI options.

Important: Disabling CARD with an empty constraint (no dimension fields) blocks all card payments and all EMI options.

Use the NET_BANKING constraint to control which banks are available for retail net banking payments. You can allowlist(enabledPaymentModes) a specific set of banks or blocklist(disabledPaymentModes) certain banks while keeping all others available.

Parameters

Add an object with "type": "NET_BANKING" to enabledPaymentModes or disabledPaymentModes.

ParameterTypeMandatoryDefaultDescription
typestringRequiredMust be "NET_BANKING".
banksarray of stringsOptionalAll banksBank codes to allow or block. Omit to match all supported banks. See Supported Values and Bank Codes for the full list.

Note: 

  • Bank codes are uppercase identifiers (for example, "HDFC""ICIC""SBIN"). See the Supported Values page for the complete list.
  • Only the first "type": "NET_BANKING" constraint in the list is processed. If you include multiple net banking objects, only the first takes effect.

Examples

1. Allow specific banks only

Show only HDFC, ICICI, and SBI for net banking. All other banks are hidden.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "enabledPaymentModes": [
        {
          "type": "NET_BANKING",
          "banks": ["HDFC", "ICIC", "SBIN"]
        }
      ]
    }
  }
}

2. Block specific banks

Allow all banks except Axis Bank and Yes Bank.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "disabledPaymentModes": [
        {
          "type": "NET_BANKING",
          "banks": ["UTIB", "YESB"]
        }
      ]
    }
  }
}

3. Disable net banking entirely

Block all net banking options. All other enabled payment methods remain available.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "disabledPaymentModes": [
        {
          "type": "NET_BANKING"
        }
      ]
    }
  }
}

Note: Omitting banks entirely in disabledPaymentModes disables all net banking options.

Use the CORPORATE_NET_BANKING constraint to control which banks are available for corporate net banking payments. This is separate from retail NetBanking and use this mode for B2B or corporate payment flows.

Note: Corporate net banking uses the same bank codes as retail net banking. The only difference is the type value: "CORPORATE_NET_BANKING" instead of "NET_BANKING".

Parameters

Add an object with "type": "CORPORATE_NET_BANKING" to enabledPaymentModes or disabledPaymentModes.

ParameterTypeMandatoryDefaultDescription
typestringRequiredMust be "CORPORATE_NET_BANKING".
banksarray of stringsOptionalAll banksCorporate bank codes to allow or block. Omit to match all supported banks. See Supported Values — Bank Codes for the full list.

Note: Only the first "type": "CORPORATE_NET_BANKING" constraint in the list is processed. If you include multiple corporate net banking objects, only the first takes effect.

Examples

1. Allow specific corporate banks only

Show only HDFC and ICICI for corporate net banking. All other corporate banking options are hidden.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "enabledPaymentModes": [
        {
          "type": "CORPORATE_NET_BANKING",
          "banks": ["HDFC", "ICIC"]
        }
      ]
    }
  }
}

2. Disable corporate net banking entirely

Block all corporate net banking options. Retail net banking is not affected.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "disabledPaymentModes": [
        {
          "type": "CORPORATE_NET_BANKING"
        }
      ]
    }
  }
}

Use the EMI constraint to control which EMI instrument types are available. You can disable EMI entirely or restrict it to specific instrument types.

Important: EMI is automatically disabled when you disable the CARD payment mode. If you want to disable only EMI while keeping card payments active, use this EMI constraint explicitly.

Parameters

Add an object with "type": "EMI" to enabledPaymentModes or disabledPaymentModes.

ParameterTypeMandatoryDefaultDescription
typestringRequiredMust be "EMI".
typesarray of stringsOptionalAll typesEMI instrument types to allow or block. Omit to match all types. Currently supported value: "CREDIT_CARD".

Note: Only the first "type": "EMI" constraint in the list is processed. If you include multiple EMI objects, only the first takes effect.

Examples

1. Disable EMI entirely

Block all EMI payment options while keeping card payments available.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "disabledPaymentModes": [
        {
          "type": "EMI"
        }
      ]
    }
  }
}

2. Allow credit card EMI only

Restrict EMI to credit card instruments only.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "enabledPaymentModes": [
        {
          "type": "EMI",
          "types": ["CREDIT_CARD"]
        }
      ]
    }
  }
}

Use the WALLET constraint to control which wallet providers are available to your customers. You can disable wallets entirely or restrict to specific providers.

Parameters

Add an object with "type": "WALLET" to enabledPaymentModes or disabledPaymentModes.

ParameterTypeMandatoryDefaultDescription
typestringRequiredMust be "WALLET".
walletsarray of stringsOptionalAll walletsWallet providers to allow or block. Omit to match all supported providers. Currently supported value: "PHONEPE".

Note: Only the first "type": "WALLET" constraint in the list is processed. If you include multiple wallet objects, only the first takes effect.

Examples

1. Disable wallet entirely

Block all wallet payment options. All other enabled payment methods remain available.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "disabledPaymentModes": [
        {
          "type": "WALLET"
        }
      ]
    }
  }
}

2. Allow PhonePe wallet only

Restrict wallet payments to PhonePe only.

{
  "merchantOrderId": "ORDER_123",
  "amount": 50000,
  "paymentFlow": {
    "type": "PG_CHECKOUT",
    "merchantUrls": {
      "redirectUrl": "https://www.yoursite.com/callback"
    },
    "paymentModeConfig": {
      "version": "V2",
      "enabledPaymentModes": [
        {
          "type": "WALLET",
          "wallets": ["PHONEPE"]
        }
      ]
    }
  }
}
Is this article helpful?