# Free trial abuse prevention Detect and block customers likely to abuse free trials. Free trial abuse can occur when customers exploit free trials to access your product without intending to pay. Common patterns include using prepaid or virtual cards, or repeatedly signing up with the same card across multiple accounts. Radar provides a free trial abuse control that automatically detects and blocks high-risk trial starts before they convert to subscriptions. You can enable it on the [Risk controls](https://dashboard.stripe.com/settings/radar/risk-controls) page in the Dashboard. ## How it works When a customer starts a free trial, Radar evaluates the payment method they provide and predicts whether their subscription payment will fail when the trial ends. If the risk is high, Radar blocks the trial from starting before the customer can gain access to your product. To evaluate trial starts, Radar must know which payment method collections represent a free trial. We recommend integrating with [Checkout Sessions](https://docs.stripe.com/payments/checkout.md), which automatically evaluates trial starts with no code changes. Follow the steps below to set up your integration. ## Enable Radar to detect trial starts We recommend integrating with [Checkout Sessions](https://docs.stripe.com/payments/checkout.md) in `subscription` mode, which automatically detects trial starts with no code changes required. If you don’t use Checkout Sessions, Radar can still automatically detect trial starts if you do any of the following to create free trials: - Set [`subscription_data.trial_period_days`](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-subscription_data-trial_period_days) - Set [`subscription_data.trial_end`](https://docs.stripe.com/api/checkout/sessions/create.md#create_checkout_session-subscription_data-trial_end) - Use [coupons](https://docs.stripe.com/billing/subscriptions/coupons.md) to create 100% off trials If you use a different integration path (for example, the [Setup Intents API](https://docs.stripe.com/api/setup_intents.md), [Payment Intents API](https://docs.stripe.com/api/payment_intents.md), or [Subscriptions API](https://docs.stripe.com/api/subscriptions.md)), contact us using the form above. We’ll help you add the metadata you need to enable Radar to detect trial starts. ## Enable the control in the Dashboard After updating your integration, go to the [Risk controls](https://dashboard.stripe.com/settings/radar/risk-controls) page and enable **Free trial abuse**. Before selecting this control, you can review backtesting data to see how the control would have performed on your recent trial starts. ## Monitor trial starts You can review blocked trial starts on the [Risk controls](https://dashboard.stripe.com/settings/radar/risk-controls) page in the Dashboard. To query blocked trial starts in [Sigma](https://docs.stripe.com/stripe-data/sigma.md), use the `rule_decisions` table with the `block_if_high_free_trial_abuse_risk` rule ID: ```sql -- Setup attempts blocked by the free trial abuse control SELECT * FROM rule_decisions WHERE rule_id = 'block_if_high_free_trial_abuse_risk' ``` To view the number of blocked SetupIntents and customers: ```sql SELECT COUNT(DISTINCT setup_intent_id) AS blocked_setup_intents, COUNT(DISTINCT customer_id) AS blocked_customers FROM rule_decisions r JOIN setup_intents s ON r.setup_intent_id = s.id WHERE rule_id = 'block_if_high_free_trial_abuse_risk' ```