Card holds for free trials
How TrialValid holds the plan price at sign-up, starts the trial, captures before it ends, and what happens when a step fails.
- Hold placedSign-up
- Reminder sentTrial runs
- Hold capturedTwo hours before end
- Invoice nets to zeroTrial ends
- Trial converted$49.00Captured
- Hold placed$49.00Held
- Hold placed$129.00Held
- Trial canceled$49.00Released
Hold first, trial second
When a buyer signs up, TrialValid creates a Stripe customer and an uncaptured PaymentIntent for the plan price, card only.
A trial that ends on the date the buyer saw
Once the hold is confirmed, TrialValid creates a free-trial subscription on the same saved card.
Capture two hours before the trial ends
A capture job reads the PaymentIntent from Stripe first, because an earlier run may already have captured it.
Rules that protect the buyer
A capture never runs inside the last 5 minutes of the trial, because Stripe charges the first invoice then and a capture would collect twice.
Card holds for free trials
Hold first, trial second
When a buyer signs up, TrialValid creates a Stripe customer and an uncaptured PaymentIntent for the plan price, card only. The trial starts only after Stripe reports that the card can cover the price. A card that cannot be held never starts a trial.
02
A trial that ends on the date the buyer saw
Once the hold is confirmed, TrialValid creates a free-trial subscription on the same saved card. The trial ends on the date the buyer was shown, and no payment is attempted at sign-up.
03
Capture two hours before the trial ends
A capture job reads the PaymentIntent from Stripe first, because an earlier run may already have captured it. It then captures with an idempotency key per attempt. It tries up to 11 times, 10 minutes apart, which fits inside the two-hour lead.
After Stripe confirms the capture, TrialValid writes a negative customer-balance transaction for the same amount. When Stripe issues the first invoice at trial end, the credit pays it, so the buyer is charged once.
04
Rules that protect the buyer
- A capture never runs inside the last 5 minutes of the trial, because Stripe charges the first invoice then and a capture would collect twice.
- Trials longer than about 7 days need the hold renewed. TrialValid places a fresh merchant-initiated hold before the old one lapses. A renewal that needs buyer authentication counts as failed.
- If a hold cannot be renewed, the trial is marked as lost and you get an alert. The same setting as for a failed capture decides the subscription (below).
- Every Stripe write carries an idempotency key built from the trial and the action, so a retried job cannot double-charge.
05
What you decide when a capture fails
If every capture attempt fails, the hold is released and you get an alert. You decide what happens to the subscription: by default it is left to Stripe, which charges the saved card on the first invoice and keeps retrying under your own billing settings, which may recover the payment; or you can switch to canceling it. The choice applies to a lapsed or unrenewable hold too. If the capture window is missed, the subscription is never canceled, because the card did nothing wrong.
Product
More of the product. Each part runs on the same trial record.
- Trial pages and variantsHosted trial pages with a price from your Stripe price, one to 90 trial days, and variants that split traffic evenly.
- Attribution and analyticsFirst-touch campaign data on every signup, plus visits, signups, conversions and revenue per page variant.
- Alerts and statement descriptorsSlack alerts for high-value trials, failed captures, lost holds and disputes, and card statement descriptors derived from your brand.
Start every trial on a card that works.
Connect your Stripe account, publish a trial page and let the hold, the reminder and the capture run on one schedule.
Starter, online
$29 a month for $0 up to $10,000 of MRR. Start with a 14-day trial for $1.
See pricing