Stripe early fraud warning
A Stripe early fraud warning is an issuer report that a payment looks fraudulent. Learn the EFW object, how often it turns into a dispute, and when to refund.
Updated October 1, 2026
A Stripe early fraud warning (EFW) tells you that a card issuer has flagged one of your payments as likely fraud. It comes from fraud reports that issuers on the Visa, Mastercard and JCB networks must file, including Visa TC40 reports and Mastercard SAFE (System to Avoid Fraud Effectively) reports. An EFW is not a dispute and needs no response. It is often the first sign that one is coming.
How a Stripe early fraud warning works
Stripe creates a radar.early_fraud_warning object for each warning. It sends radar.early_fraud_warning.created when one arrives and radar.early_fraud_warning.updated when it changes. The object has a few fields:
chargeandpayment_intentpoint to the flagged payment.fraud_typeis the issuer's label. It is one ofcard_never_received,fraudulent_card_application,made_with_counterfeit_card,made_with_lost_card,made_with_stolen_card,unauthorized_use_of_cardormisc.actionableistruewhen the charge hasn't been disputed or fully refunded, so you still have a choice to make.
You can see warnings on the payment in the Dashboard, or list them with the Early Fraud Warnings API.
Networks process fraud reports and disputes in separate systems that aren't always in sync. So you can sometimes receive an EFW after a fraud dispute on the same charge has already opened.
How often an EFW becomes a dispute
Stripe says that if you don't refund, about 40% of Visa and Mastercard EFWs turn into fraud disputes. The rate varies by card network and payment amount. Each dispute brings a dispute fee and a response deadline.
The warning also counts against you without a dispute. Visa's Acquirer Monitoring Program (VAMP) counts fraud reported through TC40, the source of Visa EFWs, alongside disputes. A transaction that appears in both reports counts twice. A run of EFWs can push you toward a monitoring program before many disputes land.
Should you refund an early fraud warning?
Not always. Stripe advises against refunding every EFW, because you would refund many payments that were never going to be disputed.
A refund doesn't remove the fraud report. The only refund that prevents the report is one processed as a reversal, which usually means within about 2 hours of capture. What a refund does is give the cardholder no reason to file a dispute.
Stripe's guidance for the decision:
- Compare the amount with your dispute fee. Stripe's analysis puts the best refund point at charges roughly at or below your dispute fee. Refunding is likely not worth it on charges more than 35% above that fee. With the US dispute received fee at $15 as of 2026, that means refunding flagged charges up to about $15 and rarely anything above about $20.
- Refund more if disputes threaten your account. If you are in or near a card network monitoring program, avoiding the dispute can matter more than the money.
- Use the reason `fraudulent`. It feeds Radar's models. On Radar plans with default block lists, it also adds the card fingerprint and email to those lists.
- Hold fulfillment. If the order hasn't shipped or the account hasn't been used, pause it while you decide.
Patterns and prevention
Several EFWs close together on small charges can mean a card testing attack got through. Check for other small payments from the same period.
Stripe Radar has an early fraud warning risk control that blocks payments likely to produce EFWs. It is available with the "Balance risk and revenue" and "Maximize protection" risk settings. Changing risk settings can require a higher Radar plan, and Stripe recommends the control if you are in a card brand monitoring program.
Finance or ops usually owns the refund decision. The founder sets the refund threshold, and engineering handles prevention when a pattern shows up.
Early fraud warnings and ChargeBell
ChargeBell has no early fraud warning alert. Watch for them in the Stripe Dashboard, or listen for radar.early_fraud_warning.created in your own webhook handler. ChargeBell covers what comes before and after the refund decision. If you refund, the refund alert confirms in Slack that the money went back, with the amount and reason. If the warning becomes a dispute anyway, the dispute created alert posts the amount, reason and customer as a critical alert that skips quiet hours.
Get alerted in Slack
Stripe events: radar.early_fraud_warning.created, radar.early_fraud_warning.updated
ChargeBell posts Stripe events to the Slack channel you pick, written in plain English.