Skip to main content
Preauthorisation (pre-auth) allows you to temporarily block funds on a customer’s card or account and capture the payment later, typically after order fulfilment. This helps secure funds without charging the customer immediately. Cashfree Payment Gateway (PG) supports preauthorisation for the following payment methods:
  • UPI
  • Visa credit, debit, and prepaid cards
  • Mastercard credit, debit, and prepaid cards
  • Rupay credit, debit, and prepaid cards

How preauthorisation works

Preauthorisation allows you to manage payments flexibly in the following ways:
  • Authorise an amount on a customer’s card or account without immediate capture.
  • Capture the authorised amount later—either fully or partially—when required.
  • Void the authorisation to release the blocked funds if the order is not fulfilled.
Unlike standard transactions, where funds are instantly captured, preauthorisation provides flexibility in payment processing.

Preauthorisation flow

  1. The customer initiates the payment.
  2. The bank blocks the amount on the customer’s card or account after successful payment completion.
  3. You can:
  • Either Capture the full or partial amount.
    OR
  • Void the authorisation to release the blocked funds to the customer.
Note: If not captured within seven days, the funds are automatically released.

Preauthorisation feature request

Please use the raise an issue support form to request this feature to be enabled for your account.

Managing preauthorisation transactions

You can capture or void preauthorisation transactions from the Merchant Dashboard or integrate the capture and void APIs to automate the process.
Note
  • You must capture or void a preauthorisation transaction within seven days of authorisation.
  • A transaction can only be captured or voided once.
  • Once captured, a transaction cannot be voided.
  • Once voided, a transaction cannot be captured.
  • Transactions not captured within 7 days are automatically released back to the customer.
  • Voided transactions return funds to the customer immediately.
  • After preauthorisation is enabled for your account, ensure all preauthorisation transactions are either captured or voided.

Supported payment instruments for preauthorisation

Cashfree Payment Gateway supports preauthorisation workflow on cards and UPI (Unified Payments Interface).

Cards

Once preauthorisation is enabled for your account, every card payment will be preauthorised by default, you do not need to provide any additional parameters while initiating the payment. Below is a sample Order Pay API request and response:
curl --request POST \
  --url https://sandbox.cashfree.com/pg/orders/sessions \
  --header 'Content-Type: application/json' \
  --header 'x-api-version: <x-api-version>' \
  --data '{
  "payment_session_id": "session__CvcEmNKDkmERQrxnx39ibhJ3Ii034pjc8ZVxf3qcgEXCWlgDDlHRgz2XYZCqpajDQSXMMtCusPgOIxYP2LZx0-05p39gC2Vgmq1RAj--gcn",
  "payment_method": {
    "card": {
      "channel": "link",
      "card_number": "4111111111111111",
      "card_expiry_mm": "06",
      "card_expiry_yy": "22",
      "card_cvv": "900",
      "card_holder_name": "Tushar Gupta"
    }
  },
  "save_instrument": true
}'

UPI

For UPI preauthorisation, you need to pass additional parameters in the /orders/pay API request. Once you have created the order, invoke the Order Pay API call with the authorize_only, authorization parameters. The authorization object contains the following attributes:
  • approve_by - The time by when customer needs to approve this one time mandate request.
  • start_time - The time when the mandate should start.
  • end_time - The time until when the mandate hold will be on customer’s bank account. You can call capture and void until this time.

UPI collect

Below is a sample UPI Collect request and response:
curl --request POST \
  --url https://api.cashfree.com/pg/orders/sessions \
  --header 'Content-Type: application/json' \
  --data '{
	"payment_session_id": "HTIdYxfOYgqKyYM3rLCZ",
	"payment_method" : {
		"upi" : { 
			"channel": "collect",
			"upi_id": "rohit@okicici",
			"authorize_only": true,
			"authorization" : {
          "approve_by": "2022-02-08T19:20:12+05:30",
          "start_time": "2022-02-09T12:34:34Z",
          "end_time": "2022-02-10T12:34:34Z"
       }			
		}
	}
}'

UPI intent

Below is a sample UPI Intent request and response:
curl --request POST \
  --url https://api.cashfree.com/pg/orders/sessions \
  --header 'Content-Type: application/json' \
  --data '{
	"payment_session_id": "HTIdYxfOYgqKyYM3rLCZ",
	"payment_method" : {
		"upi" : { 
			"channel": "link",
			"authorize_only": true,
			"authorization" : {
          "approve_by": "2022-02-08T19:20:12+05:30",
          "start_time": "2022-02-09T12:34:34Z",
          "end_time": "2022-02-10T12:34:34Z"
       }			
		}
	}
}'

Capture

The capture workflow helps you to capture the payment and move the authorised amount partially or completely from customers bank account to your bank account, by calling Preauthorisation API for capture.
curl --request POST \
  --url https://api.cashfree.com/pg/orders/:order_id/authorization \
  --header 'Content-Type: application/json' \
  --header 'x-api-version: <<api_version>>' \
  --header 'x-client-id: <<app_id>>' \
  --header 'x-client-secret: <<secret_key>>' \
  --data '{
  "action": "CAPTURE",
  "amount": "2.00"
}'

Void

The void workflow helps you to release the entire authorised amount back to the customer, by calling Preauthorisation API for void.
curl --request POST \
  --url https://api.cashfree.com/pg/orders/:order_id/authorization \
  --header 'Content-Type: application/json' \
  --header 'x-api-version: <<api_version>>' \
  --header 'x-client-id: <<app_id>>' \
  --header 'x-client-secret: <<secret_key>>' \
  --data '{
  "action": "VOID"
}'

FAQs

Capture call is performed after authorisation. It is a merchant-initiated request (via API or Merchant Dashboard) to collect the previously authorised funds. This step debits the amount from the customer.
If not captured within 7 days, the authorisation expires, and the funds are released back to the customer.
Yes, merchants can capture a partial amount of the authorised funds.
MDR is always applied only on the captured amount.
All Visa, Mastercard and RuPay credit, debit and prepaid cards support preauthorisation.
A void call cancels the authorisation before capture, releasing the hold on funds.
No, voiding must be for the entire authorised amount.
Here are some common use cases:
  • Ticket Bookings – Airlines, concerts, and events often place a hold on a credit card to ensure funds are available before finalizing the booking. This is useful if confirmation is pending or for refundable ticket options.
  • Car Rentals – Rental companies use preauthorisation to secure a deposit in case of damages, late returns, or additional charges. The hold is released if no extra fees are incurred.
  • Hotel Reservations – Hotels preauthorise a guest’s credit card at check-in to cover potential incidentals, damages, or unpaid charges, ensuring payment security before checkout.
Settlement occurs when the merchant finalizes a preauthorised transaction by capturing the funds.
Merchants typically receive funds from preauthorised transactions as per their normal settlement cycle, i.e., T+x days after a successful capture.
A dispute may result in a chargeback, requiring the merchant to provide proof of authorisation and service fulfilment.
Currently, the preauthorisation feature is not supported for American Express and Diners cards due to limitations imposed by the respective card networks. We are actively monitoring any changes in network policies and will update our services accordingly if support becomes available in the future.
The following sponsor banks currently support the preauthorisation feature on Cashfree Payments:
  • Axis Bank
  • HDFC Bank
  • ICICI Bank
  • IndusInd Bank
  • Kotak Mahindra Bank
  • Yes Bank
  • Federal Bank
  • State Bank of India