Place an extended hold on an online card payment
Learn how to use extended authorisations to capture online card payments up to 30 days after authorisation.
Extended authorisations have a longer authorisation validity period, which allows you to hold customer funds for longer than standard authorisation validity windows. For most card networks, the default authorisation validity period is 7 days for online payments and 2 days for in-person Terminal payments, whereas extended validity periods can go up to 30 days depending on the card network. For more information about authorisation validity windows, see place a hold on a payment method.
Availability
When you use extended authorisations, there are no regional restrictions. However, be aware of the following limitations:
- They’re only available with Visa, Mastercard, American Express, and Discover.
- Certain card brands have merchant category restrictions. Refer to the network availability table below.
- This page describes extended authorisations for online card payments. For in-person card payments using extended authorisations, refer to the Terminal documentation.
IC+ Feature
We offer extended authorisations to users on IC+ pricing. If you’re on blended Stripe pricing and want access to this feature, contact us at support.stripe.com.
Availability by card network and merchant category
Every card network has different rules that determine which payments have extended authorisations available, and how long they’re valid. The following table shows the validity windows and transaction types that extended authorisation is available for using Visa, Mastercard, American Express, and Discover. However, we recommend that you rely on the capture_before field to confirm the validity window for any given payment because these rules can change without prior notice.
Card brand | Merchant category | Extended authorisation validity window |
---|---|---|
Visa | Hotel, lodging, vehicle rental, and cruise line All other merchant categories* | 30 days** |
Mastercard (not including Maestro and Cirrus cards) | All merchant categories | 30 days |
American Express | Lodging and vehicle rental | 30 days*** |
Discover | Airline, bus charter/tour, car rental, cruise line, local/suburban commuter, passenger transport including ferries, hotel, lodging, and passenger railway | 30 days |
Networks with limited support (beta)
Recent changes to availability
Best Practices
Customers see their funds held longer when you use extended authorisations. Use clear statement descriptors to avoid increased disputes from unrecognised payments.
Compliance
You’re responsible for your compliance with all applicable laws, regulations, and network rules when using extended authorisation. Consult the network specifications for the card networks that you plan to accept using this feature with to make sure your sales are compliant with the applicable rules, which vary by network. For instance, for many networks extended validity windows are only for cases where you don’t know the final amount that you’ll capture at the time of authorisation.
The information provided on this page relating to your compliance with these requirements is for your general guidance, and is not legal, tax, accounting, or other professional advice. Consult a professional if you’re unsure about your obligations.
Create and confirm an uncaptured PaymentIntent
By default, an authorisation for an online card payment is valid for 7 days for most card networks. To increase the validity period, you can request an extended authorisation by using if_
with the request_extended_authorization parameter.
Rely on the capture_before field to confirm the validity window for a given payment. The validity window won’t change after the PaymentIntent is confirmed. To determine if the authorisation is extended after confirming the PaymentIntent, look at the extended_authorization.status field on the associated Charge.
// PaymentIntent response { "id": "pi_xxx", "object": "payment_intent", "amount": 1000, "amount_capturable": 1000, "amount_received": 0, "status": "requires_capture", ... // if latest_charge is expanded "latest_charge": { "id": "ch_xxx", "object": "charge", "payment_method_details": { "card": { "amount_authorized": 1000, "capture_before": 1696524701, "extended_authorization": { "status": "enabled", // or "disabled" } } } ... } ... }
Test your integration
Use the Stripe test cards below with any CVC and future expiry date to request extended authorisations while testing. If extended authorisations are available on payments for a given network while testing, they’re also available for live payments.
Card brand | Number | Payment method |
---|---|---|
Visa | pm_ | |
Mastercard | pm_ | |
Amex | pm_ | |
Discover | pm_ |