When an active card is used to make a purchase, an authorization request is made. This request must be approved for the purchase to be successfully completed. If it’s not, the purchase is declined.
You can configure an synchronous webhook to handle authorization requests yourself for complete control, allow Stripe to approve or decline authorizations automatically using authorization controls, or use a combination of both.
When the authorization request is received, an Authorization object is created. Stripe first checks if you have applied any authorization controls to the card that would decline the request. If the purchase isn’t declined at this point and you have configured a synchronous webhook to handle authorization requests, we send an
issuing_authorization.request event to your integration so it can approve or decline the request.
If no authorization controls declined the request and no webhook is configured, Stripe approves the authorization. The entire process takes only a few seconds to complete, and occurs while the cardholder and business wait for the response.
Authorization status changes
Once an authorization request is approved, the Authorization object’s status is updated to
pending, and the
issuing_authorization.updated webhook event is sent. The authorized amount is deducted from your account balance and held reserve until the authorization is either captured or voided. Once captured, the
Authorization object’s status transitions to
closed, and a new transaction is created.
If the authorization request is declined, its status is immediately set to
closed. If it’s voided or not captured in a timely manner, its status transitions to
Purchases in different currencies
Issued cards can be used for purchases in any currency that is supported by the card network. Stripe automatically converts this into the card’s currency when holding or deducting funds, based on the card network’s daily rate. The values for
authorized_currency on the
Authorization object are provided in the amount of the currency used.
held_amount represents the expected amount the authorization will settle for. The conversion rate and amount held are not final until the authorization has been captured. The final amount and currency are provided as values for amount and currency on the transaction that is subsequently created, and any excess authorized funds will be refunded at that time.
Read on to learn more about authorizations.
Was this page helpful?