Looking for "The customer's bank declined this card"? That's a different message, with the reference (pay016) — see Payment error PAY016. Bank declines used to arrive as PAY004 as well, which is why the older message read so much like a system fault.
What this error means
When BRM asks Stripe to charge a card and Stripe refuses for a reason that isn't the customer's bank turning it down, BRM reports it as PAY004. The wording that appears before the code — for example "Your card has expired." or "Invalid amount." — comes straight from Stripe, not from BRM, and it is the part that tells you which cause you have.
A full example looks like:
Reservation Reference: Jul0003-26, Client : 4461, Stripe Id : cus_XXXX, Amount : 218.8: Invalid amount. (pay004)
Why it happens
There are two broad families:
- Something about the card itself. Messages such as "Your card has expired" or "Your card's security code is incorrect", where Stripe reports a card problem rather than a decision by the bank.
- Stripe rejected the request before reaching the card. Messages such as "Invalid amount". The card was never actually tried — Stripe turned the charge away first because something about the request wasn't acceptable to it.
What to do
- Read the message that appears before the code. That is Stripe's own explanation, and it decides what happens next.
- If it points at the card (expired, incorrect CVC, card cannot be processed): ask the customer for different card details, or take payment another way. Save the new card against their record so future charges work.
- If it says "Invalid amount": first check the amount is a sensible, positive figure. A zero or negative total — which can happen after a full refund or a 100% discount — will be refused, as will a very tiny amount, since card networks have a minimum charge.
- If the amount looks perfectly normal, stop there and contact support. A reasonable amount being rejected as invalid is not something you can fix from your settings, and it is worth us looking at.
- Check the booking's payments before retrying, so you can see what has and hasn't gone through. You can also cross-check the attempt in your Stripe dashboard using the Stripe Id shown in the error.
As with any refused charge, no money is taken when this message appears.
When to get in touch
Contact support if:
- The message doesn't obviously point at the card — for example it mentions configuration, a key, or test versus live mode. That's a Stripe setup issue at our end, not something you can fix, so send it straight over.
- You're seeing it across several customers and several cards, which suggests a setup problem rather than one bad card.
- An amount that looks perfectly normal is being rejected as invalid.
Still stuck?
Contact support with the full error message, the reservation reference and the Stripe Id — all three appear in the error itself, and together they let us trace the exact attempt. Tell us too whether another card worked.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article