Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
About Stripe payments
Upgrade your integration
Payments analytics
Online payments
OverviewFind your use caseManaged Payments
Use Payment Links
Build a checkout page
Build an advanced integration
Build an in-app integration
Payment methods
Add payment methods
Manage payment methods
Faster checkout with Link
Payment interfaces
Payment Links
Checkout
Web Elements
In-app Elements
Payment scenarios
Custom payment flows
Flexible acquiring
Orchestration
In-person payments
Terminal
    Overview
    Accept in-person payments
    Integration design
    Select your reader
    Design an integration
    Quickstart
    Example applications
    Testing
    Terminal setup
    Set up your integration
    Connect to a reader
    Accepting a payment
    Collect card payments
    Additional payment methods
    Accept offline payments
    Mail order and telephone order payments
    Regional considerations
    During checkout
    Collect tips
    Collect and save payment details for future use
    Flexible authorizations
      Incremental authorizations
      Extended authorizations
    After checkout
    Refund transactions
    Provide receipts
    Customize checkout
    Cart display
    Collect on-screen inputs
    Collect swiped data
    Collect tapped data for NFC instruments
    Apps on devices
    Manage readers
    Order, return, replace readers
    Register readers
    Manage locations and zones
    Configure readers
    Encryption
    References
    API references
    Mobile readers
    Smart readers
    SDK migration guide
    Deployment checklist
    Stripe Terminal reader product sheets
Other Stripe products
Financial Connections
Crypto
Climate
HomePaymentsTerminal

Incremental authorizations

Increase the authorized amount before capturing a payment.

Copy page

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, 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
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, equip/tool/furn/appl 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
cURL
curl https://api.stripe.com/v1/payment_intents \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1000 \ -d currency=usd \ -d "payment_method_types[]"=card_present \ -d capture_method=manual \ -d "payment_method_options[card_present][request_incremental_authorization_support]"=true

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 } }

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
cURL
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/increment_authorization \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=1500

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
cURL
curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/capture \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount_to_capture=2000

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.

Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc