Ask HN: Use Appengine or Stripe? How are your “card declined” rates?

21 points by foxylad ↗ HN
Stripe is the best payment processor I've dealt with over the years, but in the last month, our "card declined" rate has gone from zero to 100%. Sadly Stripe is simply responding with "ask your customers to call their bank and instruct them to accept the payment", which is completely impractical at this level of failure.

We have never had a chargeback, our customers are reputable (school admin staff), and our customer satisfaction rates make me blush. So why are the banks now declining all payments?

Our service runs on Appengine, so it's possible that a scammer's app has tarnished Appengine's IP range with the banks' fraud detection systems. If this is the case, then all other Appengine apps should be seeing their decline rates going crazy too.

If you use Appengine or Stripe and accept card payments, I'd really appreciate it if you could comment on your decline rates below. It's quite possible that this issue is only affecting us, but if others are in the same boat then a simple up/same/down will let us isolate the issue with Appengine, Stripe or the banks' fraud detection system.

Thanks!

4 comments

[ 6.6 ms ] story [ 53.0 ms ] thread
Hm, I'm sorry about the issues here — could you email me at edwin.wee@stripe.com and we can take a closer look into this?
I'm a Stripe connect application provider, and I get hundreds if not thousands of "Zip code failed validation" decline errors - primarily affecting Canadian customers. The decline rate is too high in my opinion to be user-error.
When you have postal code check on, the cardholder's bank checks to see if the postal code you collect matches the one they have on file—these results are passed directly from the bank. While we can't control the bank's decision to decline a charge, we work hard to improve decline rates for both individual businesses and across Stripe—we'd be happy to take a look into your integration to see if there's anything amiss. Could you get in touch with me at edwin.wee@stripe.com?
UPDATE:

With Stripe's help, we've resolved the problem. In the process, I've learned several things:

- Do the numbers. In our case, we found that the decline surge was caused purely by MasterCard payments in foreign currencies.

- Actively encourage customers to call their bank to accept the payment. In our case, we modified the payment rejected page to give detailed instructions, including what information their bank would need.

- The customer calls provide feedback to the bank's fraud detection system on a timescale of days. Our MasterCard rejections went from zero to 100% over three or four days, and then gradually back down to zero over three days.

- The banks don't get IP addresses, so Appengine was not a factor in the declined payments.

My only criticism of Stripe is that their declines help page describes declines as sporadic random events, which was not what we were experiencing. Knowing that decline surges happen - and the points above - would have hugely reduced the stress caused by the situation.

But apart from that, Stripe are great. Their simple-but-powerful and awesomely-documented API is the best I've used, and the service itself just works. Thanks Stripe!