customer_bank_account_number and customer_bank_ifsc (and customer_bank_code for NetBanking TPV) must match how the customer actually pays.
To process a TPV payment through Cashfree, include specific customer details in the Create Order API request. During checkout (UPI or NetBanking) or when the bank transfer is received (Challan), Cashfree checks these details against the payer or remitter information for that payment. The required fields are customer_bank_account_number and customer_bank_ifsc, where the IFSC is an alphanumeric code (for example, SBIN000001) that uniquely identifies a bank branch in India.
Implement a TPV-enabled order
To process a payment with bank account verification (TPV), pass the customer account number (customer_bank_account_number) and IFSC (customer_bank_ifsc) with every Create Order request. If you want the customer to pay through NetBanking, also pass customer_bank_code. For bank transfers (Challans), the customer pays to a Virtual Bank Account; Cashfree validates the remitter account and IFSC against the same TPV fields when the transfer is received.
Pre-built UI
To process a TPV payment using the pre-built UI, open checkout using thepayment_session_id from the Create Order API response. The customer can then complete payment only through their linked account using an enabled method such as UPI, NetBanking, or a bank transfer (Challan). If the customer attempts to pay from a different account, the payment fails and the order remains in an ACTIVE state.
Custom UI
To process TPV payments using your own UI, integrate either the JavaScript Elements SDK or use the/orders/sessions API. There is no change to the API request. You can read about the API contract for the payments pay endpoint. Offer UPI, NetBanking, and bank transfers (Challans) according to the payment methods enabled on your account.
TPV with payment links
You can process TPV payments using Payment Links through the Payment Link API, a bulk CSV file upload, or the Cashfree Dashboard. Passcustomer_bank_account_number and customer_bank_ifsc for every TPV link; include customer_bank_code when you expect the customer to pay with NetBanking. Field usage for bank transfers (Challans) differs from NetBanking; see the “Implement a TPV-enabled order” and “Multi-bank TPV” sections on this page. Which payment methods appear on the link depends on what you enable for that link.
Bulk upload
When using a CSV file to bulk-create payment links, pass the customer bank details using the Notes columns. Use the following column mapping:- Note 1:
customer_bank_code - Note 2:
customer_bank_account_number - Note 3:
customer_bank_ifsc
Note 1 Title is set to customer_bank_code and the corresponding value appears in Note 1 Description.
Sample CSV
Sample CSV
Payment Link API
To use TPV with the Payment Link API, pass the customer bank details in thecustomer_details object. See the request and response below for reference.
Multi-bank TPV
Multi-bank TPV allows you to pass up to four customer bank accounts in a single payment request. Customers can select their preferred account at checkout, which increases the likelihood of a successful payment. Multi-bank TPV is supported on the following payment methods:- UPI
- NetBanking
- Bank transfers (Challans)
For bank transfers (Challans), the
customer_bank_account_number and customer_bank_ifsc fields are used to validate the remitter when the transfer reaches the Virtual Bank Account.|) in the customer_bank_account_number and customer_bank_ifsc fields within the customer_details object. The mapping between accounts and IFSC codes is index-based, so the order of values in both fields must match.
The following example shows a Create Order request with three bank accounts:
Key rules
Follow these rules when passing multiple bank accounts for multi-bank UPI or NetBanking TPV. They do not describe multi-account selection for bank transfers (Challans); use a single expected remitter account and IFSC for Challan TPV unless Cashfree confirms otherwise for your account.- You can pass a maximum of four bank accounts per request.
- The
customer_bank_account_numberandcustomer_bank_ifscfields must contain the same number of pipe-separated values. Account 1 maps to IFSC 1, account 2 maps to IFSC 2, and so on.
UPI
Multi-bank TPV for UPI is supported on select UPI rails. Contact the Cashfree team to get the required rails enabled for your account.NetBanking
When using multi-bank TPV with NetBanking, do not pass a value incustomer_details.customer_bank_code. Cashfree automatically populates the bank list on the checkout page based on the IFSC codes you provide. The checkout page displays both retail and corporate banking options, depending on the modes enabled for your account.
If you pass multiple accounts from the same bank, only the first account is used for TPV.
Bank transfers
For bank transfers (Challans), pass the remitter account number and IFSC you expect the customer to use incustomer_bank_account_number and customer_bank_ifsc. Do not rely on customer_bank_code; that field applies to NetBanking TPV. When the customer sends IMPS, NEFT, or RTGS to the order Virtual Bank Account, Cashfree validates the transfer against those TPV fields.
Fill this Support Form or contact your account manager to enable multi-bank TPV for your account.
Supported banks
The following tables list the banks that support TPV through NetBanking and UPI. Bank transfers (Challans) do not use the NetBanking bank code list; TPV for those payments relies on the account number and IFSC you pass at order creation and on the remitter details returned with the incoming transfer.NetBanking supported banks
NetBanking supported banks
| Sr | Bank code | Bank name |
|---|---|---|
| 1 | 3003 | Axis Bank |
| 2 | 3005 | Bank of Baroda - Retail Banking |
| 3 | 3006 | Bank of India |
| 4 | 3007 | Bank of Maharashtra |
| 5 | 3009 | Canara Bank |
| 6 | 3010 | CSB Bank Limited |
| 7 | 3011 | Central Bank of India |
| 8 | 3012 | City Union Bank |
| 9 | 3016 | Deutsche Bank |
| 10 | 3019 | Dhanlakshmi Bank |
| 11 | 3020 | Federal Bank |
| 12 | 3021 | HDFC Bank |
| 13 | 3022 | ICICI Bank |
| 14 | 3023 | IDBI Bank |
| 15 | 3024 | IDFC FIRST Bank |
| 16 | 3026 | Indian Bank |
| 17 | 3027 | Indian Overseas Bank |
| 18 | 3028 | IndusInd Bank |
| 19 | 3029 | Jammu and Kashmir Bank |
| 20 | 3030 | Karnataka Bank Ltd |
| 21 | 3031 | Karur Vysya Bank |
| 22 | 3032 | Kotak Mahindra Bank |
| 23 | 3037 | Punjab & Sind Bank |
| 24 | 3038 | Punjab National Bank Retail Banking |
| 25 | 3039 | RBL Bank |
| 26 | 3040 | Saraswat Bank |
| 27 | 3042 | South Indian Bank |
| 28 | 3043 | Standard Chartered Bank |
| 29 | 3044 | State Bank Of India |
| 30 | 3052 | Tamilnad Mercantile Bank Ltd |
| 31 | 3054 | UCO Bank |
| 32 | 3055 | Union Bank of India |
| 33 | 3058 | Yes Bank Ltd |
| 34 | 3060 | Bank of Baroda - Corporate |
| 35 | 3086 | Shivalik Small Finance Bank |
| 36 | 3087 | AU Small Finance Bank |
| 37 | 3088 | Bandhan Bank - Retail Banking |
| 38 | 3089 | Utkarsh Small Finance Bank |
| 39 | 3090 | The Surat Peoples Co-operative Bank Limited |
| 40 | 3091 | Gujarat State Co-operative Bank Limited |
| 41 | 3092 | HSBC Retail NetBanking |
| 42 | 3097 | Cosmos Bank |
| 43 | 3098 | Capital Small Finance Bank |
| 44 | 3102 | Jana Small Finance Bank |
| 45 | 3115 | SBM Bank India |
| 46 | 3117 | The Sutex Co-op Bank Ltd |
| 47 | 3126 | Ujjivan Small Finance Bank |
| 48 | 3123 | Airtel Payments Bank |
UPI supported apps
UPI supported apps
All UPI apps support bank account validation.