As a small business owner, it never occurred to me that using Stripe to process payments would become one of the biggest risks to my small business.
From the moment I began my freelance web design business back in 2014, I was collecting payments via Stripe and happily paying their processing fees for the ability to grow my business from just a desire for more freedom to running a company that employs women and supports them to create their own freedom and financial independence.
It never occurred to me that using Stripe to process payments would become one of the biggest risks to my small business.
My Stripe account was hacked due to Stripe's lax security, over $70,000 of fraudulent charges were processed by the hacker through a fake connected account, paid out instantly to that person via Stripe's Instant Payments to the hacker's pre-paid debit card, and Stripe started pulling the money out of my business bank account to pay back the victims of the theft.
And Stripe says it's my fault that my account was hacked and that I'm liable to pay back the victims of the fraud.
Listen to the full podcast episode or read on to find out exactly what happened and how to protect your business.
______________________
On a quiet Monday morning after the Easter holiday, I was sipping coffee on my couch in Columbus, Ohio like I normally do, snuggling with my dog and going through my normal morning entrepreneurial routine of checking emails and DMs on my business account when I see an email from Stripe with the subject line:
“Subject: [Action required] Closure of your Stripe account”
We recently identified payments on your Stripe account that don’t appear to have been authorized by the customer, meaning that the owner of the card or bank account didn’t consent to these payments.
As a precautionary measure, we will no longer accept payments for [your company].
We will also begin issuing refunds on card payments on April 15, 2023, although they may take longer to appear on the cardholder’s statement.
Please refer to your dashboard for a list of the charges that will be refunded. If there are insufficient funds on your account to cover any refunds, those refunds won’t be processed and any outstanding funds will remain in your account .
If you believe that we’ve misunderstood or miscategorized your business and would like us to conduct another review of your account , please complete the form on your Stripe Dashboard to provide more information about your business.
Request further review
If you have any questions, you can contact us any time from our support site.”
I remember thinking… yeah, this is probably some phishing scam…
So I check out the “From” address, and actually click into it to see the actual address and it’s saying it’s FROM accounts@stripe.com…
And I log into my Stripe account from a separate browser, you know, just in case… and after using my Authenticator app because I have 2-factor authentication set up on my account, I see the request at the top of my account asking me to provide proof that I am the owner of my business.
I look at my recent authorized transactions and nothing is out of the ordinary… all of the successful payment listed are from students inside my Web Designer Academy who have been making their monthly membership payments like clockwork.
And I think, “This must just be a mistake. I’ve been a customer of Stripe for 8 years now. I’ll submit all the documentation Stripe requested and I’m sure that will take care of it.”
So I grab my laptop, submit all the documentation right away, and get back to snuggling and scrolling.
Then I log into my back account and see a withdrawal from my business checking account from Stripe for over $600. And another pending transaction for a withdrawal over $2000. And no credits for the payments that were made by students over the weekend.
And I’m feeling very confused thinking, “What is happening?”
I’m starting to feel the anxiety bubbling up, but I tell myself to be patient. Once they review all the documents I submitted to prove that I am who I say I am, this will all get resolved.
A few hours later, I receive another email:
“Subject: Additional review completed for Stripe Shop”
Whew, I think. I’m glad they took care of this so quickly.
I click into the email, and my heart starting pounding in my chest as I read it:
“Thank you for providing additional information about your business.
After reviewing your account again, we’ve confirmed that your business represents a higher risk than we can currently support.
We are unable to accept payments for [your company] moving forward.
Payouts to your bank account have been paused, and we will issue refunds on any card payments by May 10, 2023, although they may take longer to appear on the cardholder’s statement.
If there are insufficient funds on your account to cover any refunds, these refunds will not be processed and any outstanding funds will remain on your account.
Please refer to your Dashboard for a list of the charges to be refunded.
If you’d like to further appeal our decision, please contact us.”
I can feel the panic rising in my body. I tap on the Stripe app on my phone and I see that there’s a negative payout balance… but all the transactions listed in the app are legit.
I logged back into my Stripe account via my computer trying to figure out what in the world they are talking about, what are all these charges that they are saying are fraudulent? I’m looking for a phone number I can call to talk to someone.
I start clicking through every link in my Stripe dashboard, and when I get to the “Connect” menu item, that’s when I see it.
Two accounts with the business name of “Netflix.com” under the name “Albert Dawkins” which between the two accounts had racked up over $70,000 in credit card charges in the 3 days over the Easter holiday weekend.
Looking more closely, the ill-gotten gains were paid out instantly to a pre-paid debit card via Stripe’s Instant Payouts feature the moment the transactions were successful.
I realized my Stripe account was hacked.
I figured the hack wasn’t an attack on me personally, but I was wracking my brain trying to figure out how in the world these connected accounts were set up inside my account when I have all the recommended security measures in place, like a complex password and 2-factor authentication.
Now things were starting to make sense as to why Stripe thought it needed to close down my account.
Again, I felt a sense of relief… “I’ll just let Stripe know this wasn’t me, and they’ll take care of it and stop trying to take this money from my bank account that they never paid to me in the first place.”
So I send an email to Stripe Support:
“Subject: Someone is fraudulently using my Stripe account
I received an email today notifying me that my account was being shut down due to unauthorized charges (attached) – when I looked at my account I discovered several accounts that ARE NOT MINE in the Connect section of Stripe
(screenshot attached).
It appears that somehow my account has been hacked – I'm not sure how these accounts were even able to be connected to my stripe account, why I never received a single email notification of any of those payments, why those successful payments connected to Albert Dawkins aren't showing up in my list of successful payments – and now why my account is at risk of being shut down and I'm getting emails that these payments are being refunded from my funds and funds are being taken out of my bank account? Please help me fix this – these fraudulent charges are happening outside of my business through my Stripe account somehow!”
Several hours later, I received the following response:
“Hi there,
Thank you for taking the time to write in. I understand the importance of getting some information on your account situation. I'll do my best to shield some light on this matter.
As it turns out, my records indicate that we found that identified payments on your Stripe account that don’t appear to have been authorized by the customer, meaning that the owner of the card or bank account didn’t consent to these payments.
For this reason we will no longer accept payments for your account.
If you believe that we have misinterpreted or incorrectly classified your business and would like us to further review your account, please fill out the corresponding form on your management platform to supplement your business information.
Once you complete this form, we will review it and contact you in two business days. In the meantime, if you have any questions or if you need anything else, please don't hesitate to let me know.
Best Wishes, Lori’
And I naively think… “Oh, she must not have understood what I was asking for help with. Let me make a video sharing my screen and walking her though what’s going on so she can help me.”
So I send back the following video response:
“Good morning Lori, thank you for your email. I understand that you found payments on my account that don't appear to have been authorized by the customer and what I am trying to explain to Stripe is that my account has been hacked.
I did not authorize these connections and some illicit activity is going on on my account.
I submitted the documents that you asked for. What I discovered is when I came in to my account and clicked on Connect is that none of these accounts are mine. These are not my accounts, these charges here by this Albert Dawkins person. I don't know what these are.
And when I click into these transactions, there's a whole new account called Netflix. that's attached to my account.
This is not mine. I have no idea how those got connected to my account. I did not authorize those.
These are completely fraudulent and all of this activity is fraudulently happening and not through my business.
I need some support with whoever is charging these payments and taking the money that you are paying out with instant payments out to a debit card that is also not my account.
This is not my activity.
I need some support from your team and please let me know who I can talk to to get this resolved.”
Later that day, I hear back from Lori.
“Thanks for keeping in touch with us, I would like to apologize in advance for the inconvenience. I know that you are requesting information about why your account is still rejected.
Let me review this for you.
Unfortunately, after conducting a further review of your account, we’ve determined that we still won’t be able to accept payments for your business moving forward.
Stripe can only support businesses with a low risk of customer disputes. After reviewing your account, it does seem like your business presents a higher level of risk than we can currently support.
Payouts to your bank account have been paused, and we will issue refunds on the affected card payments in 5 business days from the account closing day, although they may take longer to appear on the cardholder’s statement.
If there are insufficient funds on your account to cover any refunds, these refunds will not be processed and any outstanding funds will remain on your account. Please refer to your Dashboard ( https://dashboard.stripe.com/balance ) for a list of the charges to be refunded. You should have received a separate email from Stripe explaining the details of this as well.
We’re sorry that as of now we can no longer offer our services to you, and we wish you the best of luck with your business.”
My response:
“Lori – is there anyone I can speak to regarding this matter?
I have a huge concern that you are “refunding” money from my bank account that I never received in the first place.
These payments were fraudulently charged through my Stripe account by a fraudulent 3rd party and paid out via Instant Transfers to a debit cards that are not mine, and don't even have any names or email addressed attached to them – and now refunds for these fraudulent payments are being taken out of my legitimate bank account.
The connected account that these transactions are running through is not mine and I need some help resolving this.
Please can you help me escalate this to someone who can help?”
Meanwhile, more payments are coming in via my website, and I see that they are being held in “reserve” to pay back these fraudulent charges, and I’m starting to completely panic.
I run a small business coaching company for freelance web designers. Our annual revenue is around $400,000 a year, and I don’t just have $70,000 lying around in my bank account to be drafted to pay for a crime I didn’t commit.
I have two employees, payroll, business expenses, and I see the my legitimate money being held in reserve and withdrawals coming out of my bank account.
As I’m freaking out, my husband is asking me “Isn’t there a support line you can call?” And I’m like, no, I’m on their support page, and all I can do is email support.
So he starts Googling, and he finds some posts on Reddit talking about this same exact thing happening to someone else, and the only way they got someone at Stripe to actually look at their account was to post a review on Trustpilot.
So I made a post similar to the one I sent to support on Trustpilot, and within 10 minutes, received a response to email a different support email addressAgain, I shared all the same information I shared with Lori, I received a confirmation email that they were investigating and that they’d be in touch.
…..
A friend reached out to me later that day and I shared with her what was going on, and after her initial reaction of, “They can’t possibly try to hold you liable for this fraud, it must just be a misunderstanding…” she recommended that I close the bank account Stripe was debiting and file a police report.
And I thought, no, that feels like overkill… I don’t want to do anything that would jeopardize them helping me resolve this…
So I didn’t.
…..
The next day, I wake up to another email:
“Subject: [Important] Your Stripe account for [company] is re-enabled
Hi Shannon,
We’re writing to you regarding your Stripe account for [company].
It looks like some transactions on your account were misidentified as unauthorized, which led us to close your account. This was a mistake on our end, and we’ve just re-enabled your account.
We’re very sorry for any disruption this may have caused for your business. If you have any questions, you can contact us at any time from our support site.
— The Stripe team”
What a huge relief!!!
Until I saw the next email…
Hi there,
I hope this email meets you well. The live secret API key [0] for your Stripe account has been rolled and the card testing attack has ceased.
Your old API keys are no longer valid, which means that your account cannot currently accept payments. In order to resume accepting payments, you (or your engineering team) will need to replace any instances of the old keys with the new ones in your integration. If you use a third-party platform that connects using an API key, you’ll need to follow their instructions for replacing the keys. You can find your new keys on the API keys[1] page in your Dashboard.
Although your secret keys cannot be used to log in to Stripe, they can be used to charge cards on your account’s behalf. As such, they should be considered as sensitive as your password, and protected in an equally secure manner.
If you or your developers use Github, Pastebin, or other publicly available services to post code or snippets, please reevaluate how you use them, as that’s generally how this compromise happens. It’s also good to check whether your secret key is being inadvertently displayed in your source code.
Kindly ensure that you keep your secret API keys secure using the same methods you would any other privileged financial data. While we do our best to be vigilant about security on your behalf, you are ultimately responsible for any disputes resulting from unauthorized payments.
Please let us know if you have additional questions.
Best, Alan
I couldn’t believe what I was reading.
“Although your secret keys cannot be used to log in to Stripe, they can be used to charge cards on your account’s behalf. Kindly ensure that you keep your secret API keys secure using the same methods you would any other privileged financial data. While we do our best to be vigilant about security on your behalf, you are ultimately responsible for any disputes resulting from unauthorized payments.”
Not only did Stripe allege that I somehow exposed my API key, which I did not, but for sake of argument let’s say I just left my API key laying around…
Stripe literally said in that email to me that with ONLY an API, anyone can set up fake accounts on your Stripe account, you’ll get zero notifications of the account being set up, zero notifications of successful or failed payments – and they won’t show up in the app or on your main account so that until Stripe’s algorithms catches the fraud and shuts down the account, Stripe will pay the money they stole out to a debit card via Instant Payments and I’m left with all the liability.
What a perfect crime for someone who’s aware of that gaping hole in Stripe’s security and business practices.
And if that sounds insane and like you couldn’t possibly be understanding what I’m saying correctly, well, that’s exactly what I thought too.
I was like, no, they just must not be understanding what I’m telling them, let me tell them again – I’m a victim of this fraud too.
And again, they said the same thing over and over and over again:
“I understand that this is something that you're not expecting.
As mentioned earlier, platforms are the one who's responsible for the activity on your accounts.
In regards to the notifications for the activities of your connect accounts, webhooks are the way that Stripe will relay information about your connected accounts to your platform. It's important to set up a Connect Endpoint to listen for these.
The `account.updated` webhook going to be the most useful as you're getting started as we will send an event for any changes on your connected accounts as they go through the various onboarding stages. These can be used to listen out for verification updates, payouts, charges, etc.
In addition to the `account.updated` webhooks, you should also listen for any of the webhooks related to transfers, payouts, charges, and customers.
There are still quite a few of them, but it's important to keep an “ear” out for these sorts of things so you know quickly if anything has gone wrong.
The best option that we have is to help you review your account to check if we can refund the Stripe or/and Radar fees after you refund the successful card testing charges.
Though I understand that you want to us to help you in processing the mass refund of the card testing charges, you need to have enough funds on you Stripe account for the refunds to be successful.
I hope this will still help. Should you have further questions or concerns, don't hesitate to reach out and I'd be glad to assist.’
And no, they understood exactly what I was saying.
And their position is that you are the one responsible for the activity on your account. Even if you’re the victim of fraud, apparently.
At least the other victims of the fraud have a way to dispute their fraudulent charges. Little do they know that Stripe’s trying to pay them back out of another victim’s bank account…
So I had to close my bank account to stop Stripe from taking all of my money so that I could continue to pay my employees and keep my business running.
I contacted an attorney.
I filed a police report.
I reached out to my bank to dispute the money Stripe already took from me to try to get it back.
I worked with my bank to get a merchant account set up, and went through the tedious process of switching out the entire back-end e-commerce of my website to be able to use the new merchant account on my website instead of Stripe. Thank goodness I have the skill to figure that stuff out.
I had to stop all of our current payment plans on Stripe so they didn’t hold that money that I needed to pay my team their paychecks.
I had to ask all my clients to restart their payment plans via my new setup.
The first attorney I hired ultimately couldn’t help me, but I paid their fees anyway.
I hired another attorney who helped me craft a cease and desist letter.
So far, the fraudulent activity on my Stripe account has cost me nearly $10,000 in missed student payments, legal fees, bank fees, and costs related to switching my e-commerce website from Stripe to a merchant account… not including the over $3000 Stripe is withholding, and the $70K they are trying to claim I owe.
Small businesses are the backbone of the American economy, driving 44% of economic growth in 2021. We work tirelessly to provide services, create jobs, and drive innovation.
Stripe's policy to pass on the cost of fraudulent transactions to small businesses is both unconscionable and violates consumer protection laws.
Small business owners should not be burdened with the responsibility of absorbing costs that result from security breaches on platforms that we have no control over – especially when that platform is being marketed to us a simple payments solution that we can use as small business owners without a dedicated IT team.
So far, Stripe has completely failed to take any responsibility for the safety of its platform and instead is creating a false sense of security for small business owners like me who have entrusted Stripe with our precious financial transactions.
If you’re using Stripe to process transactions for your small business, be aware that it is Stripe’s current policy and practice, however unbelievable and unconscionable, is to hold you liable for any fraud on your account and withdraw money they never gave you in the first place to pay back victims.
Looks like “Albert Dawkins” of “Netflix.com” got away with the perfect crime… and Stripe was happy to help him.
Bio: Shannon Mattern is an American small business owner living in Columbus, Ohio. She is the founder and CEO of the Web Designer Academy and host of the Profitable Web Designer Podcast, where she helps ambitious women web designers create profitable and sustainable freelance web design businesses. Shannon can be reached via email at shannon@webdesigneracademy.com, and if she’s still in business after this whole debacle with Stripe, she’ll probably be reading your email on her couch, with her coffee, while snuggling with her dog.
Resources mentioned in this episode:
Ann Koppuzha: https://powerhouse-legal.com