Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
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
Handle multiple currencies
Custom payment flows
Flexible acquiring
    Overview
    Capture a payment multiple times
    Capture more than the authorised amount on a payment
    Place an extended hold on an online card payment
    Increment an authorisation
    Partially authorise a payment
    Migrate from beta
Orchestration
In-person payments
Terminal
Beyond payments
Incorporate your company
Crypto
Financial Connections
Climate
HomePaymentsFlexible acquiring

Increment an authorisation

Increase an existing authorisation on a confirmed PaymentIntent before you capture it.

Incremental authorisation allows you to increase the authorised amount on a confirmed PaymentIntent before you capture it. Before capture, each incremental authorisation appears on the credit card statement as an additional pending entry (for example, a 10 USD authorisation incremented to 15 USD appears as separate 10 USD and 5 USD pending entries). After capture, the pending authorisations are removed, and the total captured amount appears as one final entry.

Availability

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

  • It’s only available with Visa, Mastercard, or Discover.
  • Certain card brands have merchant category restrictions (see below).

To learn more about incremental authorisation and in-person payments made using Terminal, see Incremental Authorisations.

IC+ feature

We offer incremental authorisations to users on IC+ pricing. If you’re on standard Stripe pricing and want access to this feature, you can learn more at support.stripe.com.

Availability by card network and merchant category

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

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

Card brandMerchant countryPayment typeMerchant category
VisaGlobalAll card payment typesAll user categories
MastercardGlobal*All card payment typesAll user categories
DiscoverGlobalAll card payment typesCar rental, hotels, local/suburban commuter, passenger transport, 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 & campsites, 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)
DiscoverGlobalCard not presentTaxicabs and limousines

  • Excludes MX users and JPY transactions for JP users
  • Networks with limited support (beta)

    Incremental authorisations with Strong Customer Authentication (SCA)

    If you and the cardholder are in a country with SCA requirements, there are important considerations to keep in mind when using incremental authorisation.

    When you request the incremental authorisation feature during the initial authorisation, Stripe automatically configures the payment method for future off-session usage. Although this requires 3-D Secure (3DS) for the initial authorisation, subsequent incremental authorisations on this payment is considered merchant-initiated, potentially exempting any additional SCA. Clearly indicate to your customer during the initial transaction that their payment will be saved for future off-session usage with the incremental authorisations.

    With some 3DS transactions, the liability for fraudulent chargebacks (stolen or counterfeit cards) shifts from you to the card issuer. You don’t benefit from liability shift when submitting merchant-initiated transactions.

    Compliance

    You’re responsible for your compliance with all applicable laws, regulations, and network rules when saving a customer’s payment details. For instance, if you want to save their payment method for future use, such as charging them when they’re not actively using your website or app. Add terms to your website or app that state how you plan to save payment method details and allow customers to opt in.

    If you want to charge them when they’re offline, make sure your terms include the following:

    • The customer’s agreement to your initiating a payment or a series of payments on their behalf for specified transactions.
    • The anticipated timing and frequency of payments (for example, if the charges are for scheduled instalments, subscription payments, or unscheduled top-ups).
    • How you determine the payment amount.
    • Your cancellation policy, if the payment method is for a subscription service.

    Make sure you keep a record of your customer’s written agreement to these terms.

    Best practices

    When using incremental authorisation, proactively notify your end customer with the details of any authorisations for estimated amounts, which might be followed by incremental authorisations that increase those amounts. Here are some best practices for doing so:

    • Disclose that an authorisation is for an estimated amount and that subsequent authorisation requests might follow at the time of checkout, before purchase.
    • Base estimated amounts on a genuine estimate of what the total transaction amount will be.

    Compliance

    You’re responsible for your compliance with all applicable laws, regulations, and network rules when using incremental authorisation. Consult the network rules for the card networks that you plan to use this feature with to make sure your sales comply with applicable rules, which vary by network. For example, most card networks restrict how you can calculate estimated amounts included in the initial authorisation, and prohibit the use of incremental authorisations for transactions where the transaction amount should be known at the time of authorisation (for example, charges for recurring subscriptions).

    The information provided on this page relating to your compliance with these requirements is for your general guidance, and isn’t legal, tax, accounting, or other professional advice. Consult a professional if you’re unsure about your obligations.

    Create and confirm an uncaptured PaymentIntent

    You can use the request_incremental_authorization parameter to specify the PaymentIntents you plan to increment.

    Use the if_available or never parameters to determine when to start incrementing a PaymentIntent:

    • if_available: The created PaymentIntent allows for future increments based on incremental authorisation support availability.

    • never: The created PaymentIntent doesn’t allow for future increments.

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

    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 \ -d payment_method=pm_card_debit_incrementalAuthAuthorized \ -d confirm=true \ -d capture_method=manual \ -d "expand[]"=latest_charge \ -d "payment_method_options[card][request_incremental_authorization]"=if_available

    In the PaymentIntent confirmation response, the payment_method_details field on the latest_charge contains available or unavailable based on the customer’s payment method and the availability criteria mentioned above, which determines whether a PaymentIntent is eligible for incremental authorisation or not. (If you didn’t request incremental authorisation in your PaymentIntent confirmation request, it will be unavailable.)

    // PaymentIntent Response { "id": "pi_ANipwO3zNfjeWODtRPIg", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, ... // if latest_charge is expanded { "latest_charge": { "amount": 1000, "payment_method_details": { "card": { "incremental_authorization": { "status": "available" // or "unavailable" } } } ... } } }

    Perform an incremental authorisation

    To increase the authorised amount on a PaymentIntent, use the increment_authorization endpoint and provide the updated total authorisation amount to increment to, which must be greater than the original authorised amount. This attempts to authorise for a higher amount on your customer’s card. A single PaymentIntent can call this endpoint multiple times to further increase the authorised amount.

    You have a maximum of 10 incremental authorisation attempts per PaymentIntent.

    Command Line
    curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/increment_authorization \ -u
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :
    \ -d "amount"=1500

    If the incremental authorisation succeeds, it returns the PaymentIntent object with the updated amount. If the authorisation fails, it returns a card_declined error instead. The PaymentIntent object remains capturable for the previously authorised amount. Any potential updates to other PaymentIntent fields (for example, application_fee_amount, transfer_data, metadata, description, and statement_descriptor) aren’t saved if the incremental authorisation fails.

    Incremental authorisation has a maximum cap of either 500 USD (or local equivalent) over, or 500% over the previously authorised amount (whichever is higher) for each individual increment.

    Capture the PaymentIntent

    Whether you increase the authorised amount on a PaymentIntent with an incremental authorisation or not, you need to capture the funds before the initial authorisation expires – incremental authorisations don’t extend the validity period. To capture the authorised amount on a PaymentIntent with prior incremental authorisations, use the capture endpoint as usual.

    Command Line
    curl https://api.stripe.com/v1/payment_intents/{{PAYMENT_INTENT_ID}}/capture \ -u
    sk_test_BQokikJOvBiI2HlWgH4olfQ2
    :

    If the incremental authorisation succeeds, it returns the captured PaymentIntent object with the updated amount. If the authorisation fails, it returns a card_declined error instead. The PaymentIntent isn’t captured, but it remains capturable for the previously authorised amount. Any potential updates to other PaymentIntent fields (for example, application_fee_amount, transfer_data, metadata, description and statement_descriptor) aren’t saved if the incremental authorisation fails.

    Test your integration

    Use the incremental authorisation Stripe test card with any CVC, postal code, and future expiry to trigger incremental authorisations while testing:

    1. First create the PaymentIntent using the test card in the create and confirm PaymentIntent step above.
    1. Perform the incremental authorisation with the parameters specified in the perform an incremental authorisation step above, and use the test card to trigger an incremental authorisation.
    NumberPayment MethodDescription
    pm_card_debit_incrementalAuthAuthorizedThis increases the authorisation amount to the amount provided in the request.
    Was this page helpful?
    YesNo
    Need help? Contact Support.
    Join our early access programme.
    Check out our changelog.
    Questions? Contact Sales.
    LLM? Read llms.txt.
    Powered by Markdoc