Skip to main content
For merchants with Third Party Verification (TPV) enabled, Cashfree shares the customer’s bank account details with the issuing bank. The issuing bank verifies that the transaction is processed from the same bank account. You can view the list of supported banks.
Please reach out to your account manager to enable the this feature.
To process a TPV payment through Cashfree, include specific customer details in the Create Order API request. During payment authorization, we will verify these details against the actual payment instrument used by the customer. Required fields include customer_bank_account_number and customer_bank_ifsc, where the IFSC is an alphanumeric code (e.g., SBIN000001) that uniquely identifies a bank branch in India.

Implement TPV enabled order

To process a payment with bank account check (TPV), you must pass the customer account number (customer_bank_account_number) and IFSC (customer_bank_ifsc) with every create order request. If you want the order to be processed through NetBanking, then you must pass the customer_bank_code as well.
curl --request POST \
  --url https://sandbox.cashfree.com/pg/orders \
  --header 'Content-Type: application/json' \
  --header 'x-api-version: 2022-09-01' \
  --header 'x-client-id: xxxx' \
  --header 'x-client-secret: xxxx' \
  --data '{
    "customer_details": {
        "customer_email": "test@cashfree.com",
        "customer_id": "LD09755CSCON10092021",
        "customer_name": "Rohit",
        "customer_phone": "9999911111",
        "customer_bank_ifsc": "CITI0000001",
        "customer_bank_account_number": "1518121112",
        "customer_bank_code": "3044"
    },	  
    "order_amount": 1,
	  "order_currency": "INR"
}'

Pre-Built UI

To process a TPV payment using pre-built UI, open checkout using the payment_session_id parameter generated from the response of the create order API. Using this the customer can make a payment only through their linked account.
If the customer tries to complete the payment through a different account, the payment will fail and the order will remain in an ACTIVE state.

Custom UI

To process TPV payments with your own UI. You will have to either integrate the javascript elements SDK or use the /orders/sessions API. There is no change in this api request and you can read about the API contract here. If you want to process a TPV payment using Payment Links, you can either use the Payment Link API or the upload a file to bulk create Payment Links or through Dashboard as well.

Bulk Upload

When using a file upload to create payment links, you can pass on the customer bank information to us in the CSV file being uploaded. You will use the Notes columns to fill in the specific values. You can use the Notes 1 columns for bank code, Notes 2 for customer bank account number and Notes 3 for IFSC. Here is an example of a sample file. In the below file Note 1 Title is set customer_bank_code and the value is in Note 1 Description.
Link Id,Expiry Time,Currency,Amount,Min Amount,Description,Customer Name,Customer Phone,Customer Email,Note 1 Title,Note 1 Description,Note 2 Title,Note 2 Description,Note 3 Title,Note 3 Description,Webhook URL

Order-12zzsa,2023-02-11,INR,22.5,10,Payment for order,John Doe,9999999999,John.doe@cashfree.com,customer_bank_code,3044,customer_bank_account_number,37866911583,customer_bank_ifsc,SBIN0001882,https://cashfree.com/callback-webhook
Order-12zsdca,2023-02-11,INR,22.5,10,Payment for order,John Doe,9999999999,John.doe@cashfree.com,customer_bank_code,3026,customer_bank_account_number,6633835901,customer_bank_ifsc,IDIB000V018,https://cashfree.com/callback-webhook
To use TPV with Payment Link API, you need to pass on the customer bank information in the customer_details object. See the below request and response for reference.
curl --request POST \
  --url https://api.cashfree.com/pg/links \
  --header 'Content-Type: application/json' \
  --header 'x-api-version: 2025-01-01' \
  --header 'x-client-id: xxxx' \
  --header 'x-client-secret: xxxx' \
  --data '{
     "customer_details": {
          "customer_phone": "9908734803",
          "customer_email": "rohit@cashfree.com",
          "customer_name": "Rohit",
          "customer_bank_account_number": "78123123",
          "customer_bank_ifsc": "SBIN0000001",
          "customer_bank_code": "3044"
     },
		"link_notify": {
          "send_sms": true
     },     
		 "link_id": "testlink12354",
     "link_amount": 4,
     "link_currency": "INR",
     "link_purpose": "Test for TPV"
}'

Supported banks

SrBank CodeBank Name
13003Axis Bank
23005Bank of Baroda - Retail Banking
33006Bank of India
43007Bank of Maharashtra
53009Canara Bank
63010CSB Bank Limited
73011Central Bank of India
83012City Union Bank
93016Deutsche Bank
103019Dhanlakshmi Bank
113020Federal Bank
123021HDFC Bank
133022ICICI Bank
143023IDBI Bank
153024IDFC FIRST Bank
163026Indian Bank
173027Indian Overseas Bank
183028IndusInd Bank
193029Jammu and Kashmir Bank
203030Karnataka Bank Ltd
213031Karur Vysya Bank
223032Kotak Mahindra Bank
233037Punjab & Sind Bank
243038Punjab National Bank Retail Banking
253039RBL Bank
263040Saraswat Bank
273042South Indian Bank
283043Standard Chartered Bank
293044State Bank Of India
303052Tamilnad Mercantile Bank Ltd
313054UCO Bank
323055Union Bank of India
333058Yes Bank Ltd
343060Bank of Baroda - Corporate
353086Shivalik Small Finance Bank
363087AU Small Finance Bank
373088Bandhan Bank - Retail Banking
383089Utkarsh Small Finance Bank
393090The Surat Peoples Co-operative Bank Limited
403091Gujarat State Co-operative Bank Limited
413092HSBC Retail NetBanking
423097Cosmos Bank
433098Capital Small Finance Bank
443102Jana Small Finance Bank
453115SBM Bank India
463117The Sutex Co-op Bank Ltd
473126Ujjivan Small Finance Bank
483123Airtel Payments Bank
All UPI apps support bank account validation.