When credit cards are declined, our gateway usually provides a useful reason: insufficient funds, CVV mismatch, invalid card number, etc.

Should we show this to the user? Or should we just show a generic "Card Declined" error?

Obviously it is far more useful to show granular errors to our users! But, when we talk about user logins, we choose to show less information, as not to leak info about user activity. Does the same concept apply here (in case of someone trying to use stolen credit cards?)

  • I think you could be specific about a few errors, like invalid card number (maybe they fat fingered) or a validation error and then a processing error that way it's not too specific but still clear enough for the customer to figure it out.
    – CobaltHex
    Feb 2, 2014 at 19:14

2 Answers 2


Show as much information as you can without compromising security. The security team/audit may get excited if you report directly "CVV mismatch" as there are only 999 alternatives.

BUT this does not mean that you have to fall back to the generic "Card Declined" error. If you are not allowed to be explicit, then categorise in a useful manner, e.g.

  • Incorrect card details provided (invalid card number, CVV)
  • Insufficient funds available
  • I like the idea of categorizing granular errors into useful, but not-too-specific, buckets. Thanks!
    – poundifdef
    Feb 19, 2014 at 19:03

The point of providing feedback is to help the user understand the system and how to use it for their specific goal. In this case Yes you should absolutely provide the reason their card was declined as that will allow them to remedy the problem and proceed to use your system. If you don't provide feedback on how they can solve a problem why even tell them it's been declined.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.