How to Protect Your Business and Stripe Account Against Fraudulent Users

2 min read·

Fraudulent transactions can be costly for any business. After dealing with this issue myself, I implemented a few strategies using Stripe Radar and webhooks that helped reduce fraud while keeping the payment process smooth for legitimate customers.

Here’s what worked for me:

Enforce 3D Secure (3DS) Authentication

In Stripe Radar, create a rule to enforce 3DS authentication for transactions with a risk score between 30 and 75.

Note: You can enable 3DS for all payments, and that might be better depending on your business and transaction amounts. Sometimes fraudulent payments can have a lower risk score and still pass Stripe Radar checks. Based on the behavior I observed, setting it to 30 was a good balance between limiting fraud and avoiding unnecessary friction for legitimate users.

Block High-Risk Payments

Stripe Radar has a built-in rule to automatically block payments with a risk score above 75. Make sure this is enabled to stop the riskiest transactions.

Handle Failed Payment Events via Webhooks

Set up your backend to listen for Stripe’s failed payment events. Check the decline_code field, and if it matches any of the following:

['fraudulent', 'stolen_card', 'lost_card', 'generic_decline', 'do_not_honor']

then cancel the payment intent and block that user from making further payments.

In my case, instead of suspending the account entirely, I added a payment_blocked flag in the users table. This way, the user can still log in, but they cannot process any future purchases.

Monitor and Review

Set up email or system notifications whenever a payment is blocked. Review each case to confirm if further action is needed.

This setup has worked well for me so far in limiting fraudulent activity while keeping the checkout process smooth for legitimate customers. Every business is different, so you may need to adjust thresholds and rules, but these steps are a good starting point to protect your Stripe account.