How card declines work
When a charge is refused, the customer's bank returns a reason code with the decline. The codes vary by gateway and network, but they fall into two families. Soft declines say the problem is the moment: not enough money in the account today, the bank's systems were busy, a spending limit was reached. Retried a few days later, many of these go through.
Hard declines say the problem is the card itself: it has expired, been reported lost or stolen, been closed, or the number is wrong. No amount of retrying changes that answer, and repeated attempts on a dead card can look suspicious to the bank. The fix is a new card from the customer.
Some refusals are neither. The bank may ask the customer to confirm the payment (3D Secure), which needs the customer, not a retry. And some decline codes are generic and say little about the cause. Do not honor is the best known: the bank refuses without saying why, and businesses differ on whether to retry it or ask for a new card.
Worked example
A made-up business has 40 renewal charges fail in one month. It retries soft declines and asks for a new card on hard ones.
- Failed renewals
- 40
- Soft: insufficient funds (18) and processing errors (8)
- 26
- Hard: expired cards (10) and lost or stolen cards (4)
- 14
- Soft declines recovered by retries
- 17
- Hard declines recovered after a card update
- 9
- Recovered in total: 17 + 9
- 26 of 40
Retrying the 14 hard declines would have spent 14 attempts on every retry with no chance of success. Asking those customers for a new card is what recovered 9 of them.
Why the difference matters
Treating every decline the same wastes effort in both directions. Retrying hard declines burns attempts, may cost a fee per attempt, and can get further charges flagged. Giving up on soft declines throws away payments that would have cleared in a few days.
The decline reason also shapes the message to the customer. "Your card has expired, please add a new one" gets a card update; "your payment did not go through" with no reason gets ignored. Plain words beat raw bank codes.
Common mistakes
- Retrying hard declines on a schedule A stolen or closed card will never start working. Ask for a new card instead.
- Retrying soft declines too fast Several retries on the same day usually meet the same empty account. Space them out over days.
- Showing customers the bank's code "Decline code 05" means nothing to a customer. Translate it into what happened and what to do.
- Treating an authentication request as a decline When the bank wants the customer to confirm the payment, the card is fine. Send them a link to confirm instead of retrying.