Payment blocked due to excessive retries

On April 1, 2021 Visa implemented a new fee on excessive retries to enforce their rules prohibiting excessive payment reattempts. Visa’s rules broadly prohibit more than 15 retries of a single payment over 30 calendar days. To help users on integrated pricing plans comply with this new rule, after the 15th retry attempt on a Visa transaction, Stripe will automatically block subsequent retry attempts if Stripe determines there is a low chance of a successful authorization for the given charge.

The API response on the Charge object in this case will be:

{

 "error" => {

   "charge" => "ch_123456789",

   "code" => "card_declined",

   "decline_code" => "generic_decline",

   "doc_url" => "https://stripe.com/docs/error-codes/card-declined",

   "message" => "Your card was declined.",

   "type" => "card_error"

 }

}

The "outcome" field in the charge.failed webhook will be:

{

 "network_status" => "not_sent_to_network",

 "reason" => "previously_declined_do_not_retry",

 "risk_level" => "normal",

 "seller_message" => "Stripe blocked this payment.",

 "type" => "blocked"

}