5 ms·
Making a live-mode test payment to yourself = a payment processor ToS violation?
To me it seemed like common sense that before you push the thing into the real world, no matter how much testing you do, you'd fire a couple test payments on the live version.
Apparently, after reading more into it, if you make a payment to yourself, or to a business where your name is associated with it, this is a violation of the Stripe (and other payment processor) ToS, and you can get your account banned AND even potentially put on a MATCH list that effectively blacklists you from using ANY payment processor in the future. Well over the last several months I've made about a dozen such payments just to test things out and make sure everything was working correctly. Now I'm worried that I'm boned.
If you search the subject online you can find several posts on Reddit where people (mainly the same few people) detail the ominous "hammer-of-doom" consequences that can and likely will result from making a few live-mode test payments like this.
How big of a deal is this really? Is this not practically speaking just the common-sense norm before launching your live product? Did everyone else know this and I'm just a moron? Can anyone in the software developer / SaaS community point to one real-world example of someone they know who had their payment provider account banned for doing this, let alone outright blacklisted and put on a MATCH list, because of a handful of small test payments? I couldn't find any clear examples online, making me think, the severity of this infraction may be overblown.
I'm curious to see where the SaaS / software entrepreneur community is on this issue, since this is really pretty vital to what ALL of us do as part of our product development/launching/testing process. It's got me THOROUGHLY stressed out. Thanks.
- aq9 2y agoAs long as the amounts are small, and from a variety of cards, no normal (real) card processor is going to notice/care. Cannot speak for Stripe.
- blackeyeblitzar 2y ago> Is this not practically speaking just the common-sense norm before launching your live product? Did everyone else know this and I'm just a moron? I can’t help you because I’m not familiar with this area. But I just wanted to say that what you’re describing seems very much like common sense to me, and it would seem crazy to me that someone would be placed on an industry wide blacklist for it. I’m also surprised to hear of this industry wide blacklist. That type of collusion feels like it could easily be abused.
- TheCleric 2y agoIn banking not only can this be common, sometimes it can be legally mandated. For example I can definitely see this rule being in place to prevent money laundering.
- forgetfreeman 2y agoI've coded a few payment gateways over the years and spent several weekends neck deep in a few more. I don't remember all of the fine technical details of why payment handlers freak out over this kind of activity. What I do recall is spikes in small charges are a hallmark of a card dump being tested. Anyway this isn't the correct way to test a payment gateway. As stated elsewhere there's a mode flag and test card # that's used to confirm your code is working. Put another way, don't test in prod.
- Wowfunhappy 2y ago> Put another way, don't test in prod. There's a difference between "testing in prod", and "testing prod". The former is bad but the latter does seem to me like common sense.
- forgetfreeman 2y agoIf there's a distinction there I sure as hell don't see it. Either you satisfy the conditions (testing, prod) or you don't. Don't test in prod. If that seems questionable for any reason that's a clear indication your dev and/or testing environments are lacking and you know it.
- wat10000 2y agoIt’s not your testing environment, it’s the payment processor’s, and you don’t really know what it may or may not be lacking.
- captnObvious 2y agoYou’ve legitimately never tested something you built in production, after having already tested it in staging and local? You’ve just, had complete faith in staging production environment parity your entire career on every project and it has never failed you? I’m sorry man but I don’t believe you at all.
- andrewfromx 2y agoi think the idea is if you code your app using TEST_MODE you can make all the test charges you want with 4111 1111 1111 1111 card. Then when you are ready go live switching to LIVE_MODE with no code changes is guaranteed to work the same but with real cards.
- x0xrx 2y agoHaving extensive experience running billions of dollars through Stripe, this is not accurate. Production is always different, except for the simplest cases.
- mattbrewsbytes 2y agoWhat you’re describing is probably being detected and flagged as fraud or money laundering by software. If they didn’t have protection in place this would be abused. You can use test credit cards. They have obligations to shareholders to not allow fraud because that is their entire business on the line. I would assume their end of the integration is more like electricity and always on/working and if there are issues I’d be looking at my code first.
- theredsix 2y agoIf you need to test in production, have a family relative or friend buy the product/subscription and then make them whole offline. Also, do not reverse or refund the transaction.
- edoceo 2y agoBeen doing it like this since at least 2000. Never been a problem.
- adrr 2y agoUsed to do it all the time at a subscription company. Amex complained once since it was their corporate card but that was it. Something about generating fake revenue but it was a few hundred dollars and we were doing $10m in rev at the time. I think it depends on your processor, stripe uses their own merchant account(PSP) so they are probably stricter. If you had your own merchant account, you can get away with lots of stuff be the processor complains.
- Shank 2y ago> this is really pretty vital to what ALL of us do as part of our product development/launching/testing process The whole point of test-mode is that you can run your transaction as if it was running on the live-mode network. The solution is to test in test mode. Live mode just runs real cards, it should be have identically to test mode. The reason why this is a per-se violation is because you're playing on the real network with real cards, and that means the real anti-fraud systems are active, and the card networks are taking real interchange fees for doing their jobs. If you're already processing a ton of money per day, you probably can fly under the radar with 1-2 non-refunded test transactions that you reimburse yourself for later. But why risk it? If you're breaking the ToS you're risking account termination. > The Stripe Services Agreement prohibits testing in live mode using real payment method details. If Stripe or whomever else is your gateway to accepting all payments, why would you poke the bear? Section 6.2 of the Stripe Services Agreement: > Stripe may immediately suspend providing any or all Services to you, and your access to the Stripe Technology, if: > (e) you breach this Agreement or any other agreement between the parties; It's just not worth the risk.
- TheRealSteel 2y agoBut why do they care? You're paying the transaction fees. They're getting their money. If anything isn't it good for the payment processor to get more transactions? It's a real transaction. Nobody was deceived, the money really changed hands, and the payment processor got their fee. If I own a physical shop I'm allowed to buy stuff from it if I want, why isn't that also the case for an online store? I'm not saying it isn't against the ToS, but I agree with OP it isn't obvious why it should be and it seems like almost everybody would test at least one real transaction at some point.
- toasterlovin 2y agoI think the issue is that one possible scam is to sign up for a stripe account, run a bunch of charges from cards you control, then when the funds from Stripe hit your bank account, you run a bunch of chargebacks. So this policy that allows them to ban accounts that have even a whiff of this going on.
- 2y ago
- guyfromfargo 2y agoI work in this space and can tell you it’s fairly common to test on real cards. Stripe knows this and they don’t care as long as it’s very infrequent tests. But there is no reason to test a dozen times with a real card. Stripe is the gold standard of a test environment that exactly matches the real world. On top of a test environment they also have test clocks so you can run tests over time. There is only one test in my opinion that warrants using a real card. The very first time you go live. When you’re first swapping the test keys to a live environment. There isn’t a good way to be 100% sure your system is working correctly without a real card test. The front end has a “test” badge, but there is no 100% way to verify the webhook and webhook secret are configurable properly without some sort of a test. You only have to do this the first time. I often see devs want to use real cards to test updating a webhook secret, but you can usually replay a previous webhook to ensure your changes are working as expected. For your specific situation I wouldn’t do any more real tests, but I wouldn’t panic about your previous tests. The odds of them taking action against you are extremely low.
- dqv 2y agoIn SaaS/Software specifically? No. But we did get banned from a gateway in 2013 for doing this and had to switch to an entirely new gateway. We had similar reasoning - we wanted the processing to work seamlessly with our new clients, so we tested it to make sure it worked properly. It didn't prevent us from signing up with the new gateway though, so I wouldn't be worried about going on any lists if you do get kicked off Stripe.
- xtiansimon 2y agoIf you’re really worried about, just get your mom to buy something.
- devnullbeef 2y agoA solution is a sum of its parts, yours, the infrastructure, all of it. Live testing is the only testing that matters to your customers and bottom line. We all need to figure out how to do it under the TOS, 100% legit. In this case: ask Stripe.
- dmurray 2y agoIn trading, it's illegal to do a test trade in production on most regulated exchanges. Making a trade with no intrinsic economic motivation is considered market manipulation and will be punished by the regulator. It's also illegal not to do such a test trade. Operating a trading system that hasn't been validated under production conditions is reckless behaviour that will be punished by a different arm of the same regulator. Payments processing seems to be in a similar situation. It's bad practice to test in production, but it's even worse practice not to test in production.