Reference

Decline reasons, explained

Every reason a payment is refused, what it means in plain language, and whether trying again can help.

Every declined payment comes with a message. This page lists each message you might see, what it means in plain language, and whether trying again can help.

Find your message in the table, then read its section on this page if you need more.

All decline messages

Message Meaning Will retrying help?
Insufficient funds Not enough available balance Yes, once funds are available
Card expired Past its expiry date No, not until the card is replaced
Incorrect details A number, date, or code was wrong Yes, if you correct them
Address does not match Billing address differs from your bank's record Yes, with the right address
Card declined Your bank refused without giving a reason Rarely, and not without calling them
Do not honor Your bank refused and will not say why Rarely, and not without calling them
Card not supported Your bank blocks this type of payment No, until your bank lifts the block
Withdrawal limit exceeded Past a daily or per-transaction cap Yes, usually the next day
Payment system unavailable A temporary fault, not your card Yes, after about ten minutes

Insufficient funds

Your account doesn't have enough available balance. Available balance isn't the same as the number displayed in your banking app: money you've spent that hasn't yet cleared is already committed against it.

Do this: pay from a different card, or wait for funds to clear and try again. If you were expecting a deposit to have landed, check that it has actually settled rather than that it has appeared.

Card expired

The card is past its expiry date. This is worth checking even when you're sure, because a card that expired recently still looks entirely normal and will be refused every single time.

Do this: use a current card. If your bank has already sent a replacement, the new card has a different expiry date and often a different security code, so re-enter all of the details rather than just the date.

Incorrect details

One of the values didn't match: the card number, the expiry date, or the security code on the back.

Do this: type the details rather than pasting them. Pasted card numbers often carry spaces or invisible characters from wherever they were copied. If the card is stored in your browser, try entering it by hand once; saved details go stale after a card is replaced.

Address does not match

The billing address you entered doesn't match the one your bank holds for the card.

It must be the address on your card statement, not your delivery address and not your office. If you've moved recently and haven't told your bank, their record is still the old address, and that's the one to enter.

Do this: enter the address exactly as it appears on your card statement, including the postal code. If you're unsure, your banking app shows it under your profile or statement settings.

Card declined

Your bank refused the payment and didn't tell us why.

That's frustrating, but the silence isn't ours. Banks often hold the reason back, most often when their fraud system is involved, because a specific reason would tell anyone testing a stolen card exactly what to change. The only party who can tell you is your bank, and they can usually do it in a two-minute phone call.

Do this: call the number on the back of your card. Ask whether there is a block or a fraud hold on recent transactions. Most of these are a fraud-prevention hold triggered by an unfamiliar merchant, and your bank can release it while you're on the phone.

Don't keep retrying. See why retrying usually fails.

Do not honor

Your bank refused and gave no reason. "Do not honor" is the generic refusal banks use when they don't want to give a specific one. It isn't a technical fault, and it doesn't mean anything is wrong with your account.

Treat it exactly like card declined: call your bank. Retrying is close to useless here, and repeated attempts against a "do not honor" are the fastest way to get a card blocked entirely.

Card not supported

Your bank doesn't allow this card to be used for this kind of payment. The usual causes are a block on international payments, a block on online payments, or a card type we can't accept.

Many banks disable international and online payments by default on new cards and on most debit cards. Nothing on the card tells you this.

Do this: ask your bank to enable online or international payments, or use a different card. If they tell you the card type itself isn't supported, a different card is the only route.

Withdrawal limit exceeded

The payment is above a limit set on your account: a single-transaction cap, a daily total, or a monthly total. Debit cards commonly have limits well below the account balance.

Do this: ask your bank to raise the limit, which many can do immediately and temporarily. Or wait until the limit resets, usually at midnight. Or pay by bank transfer, which isn't subject to card limits.

Payment system unavailable

Something failed between us and the card networks. It isn't your card, and it isn't your bank.

Do this: wait about ten minutes and try again. If it's still happening after an hour, tell us, because at that point it's our problem to fix and we may not know about it yet.

What a decline is not

It isn't a charge. No money moved. You may see a pending authorization on your statement for a few days; your bank releases it on its own schedule.

It isn't a judgment about you. Most declines are a bank's fraud system being cautious about an unfamiliar merchant, which is the system working as intended even when it's inconvenient.

It doesn't cancel the invoice. The invoice stays open and payable, and its due date doesn't move because an attempt failed.


Building an integration? Each message here corresponds to a stable failure_code in the Ledger API error reference, with the retry semantics your code needs and what to show the payer for each one. The facts are identical; the audience is not, and so the wording is not either.

← Back to Portfolio