Special scenarios Invite only


    Authorization patterns you may encounter.

    Partial authorizations

    Although most authorization requests have static amounts to approve or deny, some can be partially authorized to control spending. This is useful, for example, when there are not enough funds to cover the full transaction, but you might want to cover whatever is left. Fuel dispensers often support this feature, and will stop pumping gas when the partially authorized amount is reached.

    To submit partial authorizations, you must integrate your application into the authorization flow with a webhook. When you receive authorization requests, the issuing_authorization.request events will contain a is_held_amount_controllable boolean, and if it is set to true, you can specify a held_amount in the approve authorization API.

    Incremental authorizations

    Incremental authorizations are additional authorizations that link back to an original authorization. These are common in the hotel industry, for instance, as customers stay additional days or add services to their bill.

    When incremental authorizations are received, you can approve or decline them with the same webhook integration as normal authorizations. The authorized_amount will contain the previously approved total amount, whereas the pending_authorized_amount will denote the new, incremental authorization request.

    After being approved, incremental authorizations are bundled into the original authorization and update its authorized_amount and held_amount to accurately reflect the new, combined totals. You can see a history of the authorization requests in the request_history of the authorization object.

    Partial reversals

    If a merchant determines that the amount previously authorized is too high and they expect to capture a lower amount of funds, they may issue a a partial reversal.

    You can find partial reversals within issuing_authorization.updated events, where the original authorization’s authorized_amount and held_amount will be lowered. Extraneously held funds will also be released back to your balance immediately.

    Fuel dispensers

    At fuel dispensers cardholders are charged according to the amount of fuel they dispense, but the amount isn’t known ahead of time. The authorization flow for a fuel dispenser is initiated with an authorization for 1 USD, triggering an issuing_authorization.request event. When the cardholder finishes pumping fuel the authorization is updated to reflect the actual amount. This update triggers an issuing_authorization.updated event. It is not possible to reject the authorization based on its updated amount.

    These 1 USD authorizations have the is_held_amount_controllable field set to true. This means that the maximum amount spent at the fuel dispenser can be limited through the approve authorization API. The default limit is 100 USD.

    You may want to clearly identify fuel dispenser authorizations because a 1 USD authorization can potentially result in a 100 USD transaction. Fuel dispenser authorizations can be identified by:

    • authorized_amount is 100
    • merchant_data.category is set to automated_fuel_dispensers
    • is_held_amount_controllable is equal to true

    Next steps

    Read on to learn more.

    Was this page helpful?

    Thank you for helping improve Stripe's documentation. If you need help or have any questions, please consider contacting support.

    On this page