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"
}