Preauthorization hold / incremental authorization
Reserve an estimated card amount now, then raise that same hold as the final bill grows before collecting it.
See it
What it is
When the final bill can grow, start with a preauthorization hold that reserves an estimate without collecting it. An incremental authorization asks the issuer to raise that same hold as the bill grows. Hotels, car rentals, bar tabs, and ride-hailing use this when the final total is not known at the start.
Reach for it when one purchase grows over time and replacing the hold would create confusing duplicate pending charges. Track every approved increment and capture only against the current authorized total.
Gotcha: an increment is another authorization request, not a guaranteed increase. The issuer can decline it, eligibility varies by card and processor, and the hold can still expire before capture. Build a clear fallback for a declined increment and release unused holds promptly.
Ask AI for it
Implement manual capture with Stripe incremental authorization for a growing card tab. Create the PaymentIntent with capture_method 'manual', then call paymentIntents.incrementAuthorization to raise the held amount on the same intent. Store the Stripe authorization id and approved total, record every request and response idempotently, never treat an increment as approved until its webhook or API result confirms it, block capture above the latest approved amount, and add explicit flows for a declined increment, an expiring hold, final capture, and release of unused funds.