A declined card at checkout — kiosk, an invoice pay link, or a booking deposit — always comes back with a reason code from the payment network. The single most useful thing to know is which of two families it falls into, because that decides what you tell the customer.
Terminal declines — a different card is needed
These will fail again on retry, every time, with the same card. Don't have the customer try again — ask for a different card.
- Do not honor — the bank refused generically, without giving a specific reason
- Expired card — the card's expiration date has passed
- Fraudulent card — the issuing bank has flagged this card as fraudulent
- Incorrect payment information — the card number, CVV, or ZIP didn't match what's on file
- Invalid card security code — the 3-4 digit CVV was wrong
- Invalid expiration date — the expiration date entered doesn't check out
- No card number on file with issuer — that card number doesn't exist at the issuing bank
- No such card issuer — the card's bank identification number isn't valid
- Stolen card — the issuing bank has flagged this card as stolen
- Unsupported card type — that card network or type isn't accepted
Soft declines — worth retrying
These can succeed on a second attempt, sometimes immediately.
- Insufficient funds — not enough available balance right now
- Over limit — the card's credit limit has been reached
- Processing error — something glitched on the processing side, unrelated to the card itself
- Retry — a generic "try again" signal from the card network
- Retry with 3-D Secure — the card issuer wants an extra verification step (a text code or banking-app approval) before it'll approve the charge; retrying often prompts that step
What to say to the customer
For a terminal decline, be direct and move on: "That card didn't go through — do you have another one you'd like to try?" Re-entering the same card's details, or trying the same card again, won't change the outcome.
For a soft decline, a quick retry is worth it — "Let's try that again" resolves a real share of these on the spot. If it declines a second time, switching cards is the next step.
Either way, SalesThumb doesn't show the raw reason code to the customer — the payment dialog reports the decline plainly, without exposing bank-internal language like "do not honor" that would only confuse them. This article is your internal reference for interpreting what happened before you decide what to say.