Capture the card. Convert when the trial ends.
When a customer checks out with a trial, the subscription is created in a trialing state with full access to every benefit on the product. The card is captured at checkout, but no money moves yet.
When the trial period ends, Polar charges the saved card and the first regular billing cycle begins, all without your code in the loop. If the customer cancels mid-trial, no charge is ever attempted.
The edge case is conversion that fails because the card declines. Rather than treating that as the end of the relationship, the subscription enters the same payment recovery flow as any past-due renewal, so a temporary card issue has multiple chances to resolve before benefits are revoked.
When the trial ends, the subscription charges and continues. No manual step.
Polar emails the customer before the trial ends so the charge is expected.
Block repeat trial sign-ups by normalized email or payment-method fingerprint.
Extend, shorten, or end a trial from the dashboard or the API.
Set a default on the product. Override per Checkout Link or per Checkout Session. The most specific value wins.
Polar emails the customer before the trial ends so the conversion charge is expected. Reminder timing is calibrated to the trial length.
Repeat sign-ups are a common problem with trials, especially for products that rely on free evaluation periods to drive conversion. Polar offers an optional layer of detection that tracks redemptions across your products without any setup beyond a toggle.
When Prevent trial abuseis enabled, a new checkout is matched against past trial redemptions on two signals: the customer's normalized email (so user+alias@example.com is treated as user@example.com) and the fingerprint of the payment method on file. A match on either blocks the trial.
The customer never hits a dead end. Polar refreshes the session without the trial period and the regular paid checkout continues, so a returning user can still convert at full price.
Set unit and duration on the product, the Checkout Link, or the API.