Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Incremental authorizations


Incremental authorizations

Increase the authorized amount before capturing a payment.

Incremental authorizations allow you to increase the authorized amount on a confirmed PaymentIntent before you capture it. This is helpful if the total price changes or the customer adds goods or services and you need to update the amount on the payment.

Depending on the issuing bank, cardholders might see the amount of the original pending authorization increase in place, or they might see each increment as an additional pending authorization. After capture, the total captured amount appears as one entry.

Availability

When using incremental authorizations, be aware of the following restrictions:

  • They’re only available with Visa, Mastercard, American Express, or Discover.
  • Certain card brands have merchant category restrictions (see below).
  • You can only increment a transaction made with the POS and reader fully online.
  • You have a maximum of 10 attempts per payment.

Availability by card network and merchant category

Use incremental authorizations on payments that fulfill the criteria below. You can find your user category in the Dashboard.

Attempting to perform an incremental authorization on a payment that doesn’t fulfill the below criteria results in an error.

Card brandMerchant category
VisaAll user categories
MastercardAll user categories
American ExpressAll user categories
DiscoverCar rental, hotels, local/suburban commuter, passenger transportation, including ferries, passenger railways, bus lines-charter, tour, steamship/cruise lines, boat rentals & lease, grocery stores and supermarkets, electric vehicle charging, eating places and restaurants, drinking places (alcoholic beverages), hotels, motels, resorts, trailer parks & campgrounds, the relevant part of the product rental & leasing, automobile rental agency, truck and utility trailer rentals, motor home and rec vehicle rentals, parking lots, parking meters, and garages, amusement parks, circuses, fortune tell, recreation services (not classified)

Request incremental authorization support Server-side Client-side

When you create a PaymentIntent, you can request the ability to capture increments of the payment. Set the request_incremental_authorization_support field to true and the capture_method to manual. This updates the text from Total to Pre-authorization in the payment collection screen.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

Confirm the PaymentIntent Client-side

Check the incremental_authorization_supported field in the confirm response to determine if the PaymentIntent is eligible for incremental authorization.

You can only perform incremental authorizations on uncaptured payments after confirmation. To adjust the amount of a payment before confirmation, use the update method instead.

async () => {
 const result = await terminal.processPayment(paymentIntent);
 if (result.error) {
 // Placeholder for handling result.error
 } else if (result.paymentIntent) {
 // Now you're ready to increment the authorization using your backend
 }
}

Not all PaymentIntents are eligible for incremental authorizations. To determine whether a PaymentIntent is eligible based on the restrictions listed in the Availability section, check the incremental_authorization_supported field on the PaymentIntent’s latest charge after a successful confirmation.

Perform an incremental authorization Server-side

To increase the authorized amount on a payment, use the increment_authorization endpoint and provide the updated total amount to increment to, which must be greater than the original authorized amount. This attempts to authorize for the difference between the previous amount and the incremented amount. Each PaymentIntent can have a maximum of 10 incremental authorization attempts, including declines.

A single PaymentIntent can call this endpoint multiple times to further increase the authorized amount.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

An authorization can either:

  • Succeed – Returns the PaymentIntent with the updated amount.
  • Fail – Returns a card_declined error, and the PaymentIntent remains authorized to capture the original amount. Updates to other PaymentIntent fields (for example, application_fee_amount ) aren’t saved.

Capture the PaymentIntent Server-side

To capture the authorized amount on a PaymentIntent that has prior incremental authorizations, use the capture endpoint. To increase the authorized amount and simultaneously capture that updated amount, provide an updated amount_to_capture.

Providing an amount_to_capture that’s higher than the currently authorized amount results in an automatic incremental authorization attempt.

Note

If you’re eligible to collect on-receipt tips, using an amount_to_capture that’s higher than the currently authorized amount won’t result in an automatic incremental authorization attempt. Capture requests always succeed.

Command Line

Select a language

cURL

Stripe CLI

Ruby

Python

PHP

Java

Node.js

Go

.NET

No results

The possible outcomes of an incremental authorization attempt are:

  • Succeed – Returns the captured PaymentIntent with the updated amount.
  • Fail – Returns a card_declined error, and the PaymentIntent remains authorized to capture the original amount. Updates to other PaymentIntent fields (for example, application_fee_amount ) aren’t saved.

Regardless, when using amount_to_capture we recommend that you always check for potential failures.

Last verified 2026-09-24

Is this helpful?