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.
UPI
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.
| Parameter | Type | Mandatory | Default | Description |
type | string | Required | — | Must be "UPI". |
flows | array | Optional | All flows | Accepted values: "INTENT", "COLLECT", "QR". |
apps | array | Optional | All apps | Allowed apps (lowercase). See Supported Values. |
instruments | array | Optional | All instruments | Accepted values: "BANK_ACCOUNT", "RUPAY_CC", "CREDIT_LINE". |
Note:
appsvalues 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.
| flows | apps | instruments | Resulting 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.
Card
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.
| Parameter | Type | Mandatory | Default | Description |
|---|---|---|---|---|
type | string | Required | — | Must be "CARD". |
types | array of strings | Optional | All types | Card types to allow or block. Accepted values: "CREDIT_CARD", "DEBIT_CARD". |
networks | array of strings | Optional | All networks | Card networks to allow or block. Accepted values: "VISA", "MASTER_CARD", "RUPAY", "AMEX", "DINERS_CLUB". |
variants | array of strings | Optional | All variants | Card tier to allow or block. Accepted values: "CONSUMER", "PREMIUM", "SUPER_PREMIUM", "CORPORATE". |
geoScopes | array of strings | Optional | All geographies | Card 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.
types | networks | variants | geoScopes | Result |
|---|---|---|---|---|
["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
| Variant | Description |
|---|---|
CONSUMER | Standard consumer cards for everyday personal use |
PREMIUM | Premium consumer cards with rewards and lifestyle benefits |
SUPER_PREMIUM | Super-premium cards (Signature, Infinite, World Elite tier) |
CORPORATE | Corporate 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.
NetBanking
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.
| Parameter | Type | Mandatory | Default | Description |
|---|---|---|---|---|
type | string | Required | — | Must be "NET_BANKING". |
banks | array of strings | Optional | All banks | Bank 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.
Corporate Net Banking
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.
| Parameter | Type | Mandatory | Default | Description |
|---|---|---|---|---|
type | string | Required | — | Must be "CORPORATE_NET_BANKING". |
banks | array of strings | Optional | All banks | Corporate 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"
}
]
}
}
}EMI
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.
| Parameter | Type | Mandatory | Default | Description |
|---|---|---|---|---|
type | string | Required | — | Must be "EMI". |
types | array of strings | Optional | All types | EMI 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"]
}
]
}
}
}Wallet
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.
| Parameter | Type | Mandatory | Default | Description |
|---|---|---|---|---|
type | string | Required | — | Must be "WALLET". |
wallets | array of strings | Optional | All wallets | Wallet 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"]
}
]
}
}
}
What’s Next?
Head over to the next section to understand the V1 schema for paymentModeConfig.