---
title: "Card holds for trials at large SaaS companies"
url: "https://trialvalid.com/solutions/enterprise.md"
canonical_url: "https://trialvalid.com/solutions/enterprise"
last_updated: "2026-10-19"
type: "guide"
summary: "For SaaS companies above $250,000 of MRR: how the money flow works, which controls you keep, and how to arrange a call for a custom setup."
related: ["https://trialvalid.com/solutions.md", "https://trialvalid.com/solutions/growing-saas.md", "https://trialvalid.com/security.md", "https://trialvalid.com/docs/api.md", "https://trialvalid.com/docs/webhooks.md", "https://trialvalid.com/how-it-works.md", "https://trialvalid.com/product/trial-holds.md", "https://trialvalid.com/product/dispute-readiness.md", "https://trialvalid.com/contact.md"]
---

# Card holds for trials at large SaaS companies

> **For AI agents:** the complete index of TrialValid pages is [llms.txt](https://trialvalid.com/llms.txt). Every page is also served as markdown at its URL plus .md.

For SaaS companies above $250,000 of MRR: how the money flow works, which controls you keep, and how to arrange a call for a custom setup.

## Who this is for

Your connected Stripe account is above $250,000 of monthly recurring revenue. Trials touch finance, security, support and engineering, and each team wants to see how the money moves before anything is connected. This page is written for the person who has to answer those questions.

## Challenges this solves

- Finance needs a clear answer to who holds the funds and when the buyer is charged, before any connection is approved.
- Security reviewers want to know which access is granted, how it is revoked and which secrets are stored.
- Engineering wants events and records it can pull into existing systems rather than another console to check.
- Support and risk want a per trial record they can open when a buyer questions a charge.
- Leadership wants a rollout with agreed shares and review dates, not an overnight switch.

## What it costs

Two plans sit at this level. Max covers $250,000 up to $1,000,000 at $995 a month. Enterprise starts at $1,995 a month for $1,000,000 and above. At the bottom of each band the fee is 0.40% and 0.20% of MRR. No transaction fees. No contract.

| Plan | Price per month | Connected-account MRR |
| --- | --- | --- |
| Max | $995 | $250,000 up to $1,000,000 |
| Enterprise | $1,995 | $1,000,000 and above |

The Enterprise price is a starting point. If you need terms that differ from the published plans, email hello@trialvalid.com to arrange a call (see the [contact page](https://trialvalid.com/contact.md)) and we will go through your volumes, your approval steps and your Stripe setup together.

## How the money moves

1. The buyer signs up on a trial page and a hold for the plan price is placed on their card in your Stripe account.
2. Once Stripe confirms the card can cover the price, a free-trial subscription starts on the same card and ends on the date the buyer saw.
3. About two hours before the trial ends, the hold is captured, with up to 11 attempts spaced 10 minutes apart.
4. A matching credit is written to the customer balance, so the first invoice nets to zero and the buyer is charged once.
5. Funds sit in your Stripe account throughout. TrialValid does not custody them.

## Controls your teams keep

- Stripe access is granted through OAuth and can be revoked from your own Stripe dashboard. Revoking ends the connection, held trials are marked as lost and unconfirmed ones are ended.
- Webhook events are signature verified and claimed once, so a repeated delivery does not run twice.
- Every write to Stripe carries an idempotency key built from the trial and the action.
- Seller keys are stored only as hashes, and secrets are never returned by the API.
- You choose what happens to a subscription after a failed capture: leave it to your Stripe retry settings, or cancel it.
- Each trial keeps its record, its scheduled jobs and its alerts, so finance can follow a single trial from signup to first invoice.

The details behind each point are on the [security page](https://trialvalid.com/security.md) and in the [trial lifecycle docs](https://trialvalid.com/docs/trial-lifecycle.md). The prices on this page are the launch prices.

## Your first 30 days

### Week 1: review with finance and security

Walk the money flow above with the people who approve payment changes. Read the webhook and API references with engineering, and agree on who owns the Stripe connection and the Slack channel that receives alerts.

### Week 2: connect a non-production scope

Connect a Stripe account that is not your main one, publish a page for a single plan, and run internal signups through it. Check that the customer balance credit appears and that the first invoice nets to zero.

### Week 3: wire alerts and records into your tools

Subscribe your own systems to the events described in the [webhooks docs](https://trialvalid.com/docs/webhooks.md), pull records through the [API](https://trialvalid.com/docs/api.md), and decide how disputes are handled using the stored trial record.

### Week 4: choose a first live slice

Pick one plan, one region or one channel for the first real traffic, with an agreed share and an agreed review date. Widen the share only after finance has reconciled the first captured trials against Stripe payouts.

## Recommended setup

- A dedicated Slack channel for capture failures, lost holds and disputes, read by finance and support.
- Failure setting agreed between finance and growth before launch, since it applies to the whole account.
- Webhook consumers in your own infrastructure that mirror trial status into your data warehouse.
- One owner for the MRR figure, which the plan depends on and which is rechecked about every 7 days.

## First features to use

- [Card holds for free trials](https://trialvalid.com/product/trial-holds.md) for the capture rules and money safety checks.
- [Dispute readiness](https://trialvalid.com/product/dispute-readiness.md) for the record kept per trial.
- [High-value trial alerts](https://trialvalid.com/product/high-value-alerts.md) for named accounts.
- [Trial pages and variants](https://trialvalid.com/product/trial-pages.md) for page control and custom domains.

### Can we talk to someone before connecting Stripe?

Yes. Email hello@trialvalid.com to arrange a call about your volumes, your approvals and a custom setup (see the [contact page](https://trialvalid.com/contact.md)).

### Does TrialValid hold our funds?

No. Holds, captures and credits all happen inside your Stripe account, and no per-transaction fee is taken.

### How do we revoke access?

Revoke the connection from your own Stripe dashboard. TrialValid then marks held trials as lost and ends trials that had not confirmed a card.

### What do finance teams see for each trial?

The hold, the subscription, the capture, the balance credit and the first invoice are all objects in your Stripe account, and TrialValid keeps its own record of each step and the jobs behind it.

### Can we get terms that differ from the plan list?

The listed prices are the starting point. Email hello@trialvalid.com to arrange a call and we will go through anything that needs to differ.

### Is there an API for our own systems?

Yes. See the [API reference](https://trialvalid.com/docs/api.md) and the [webhooks reference](https://trialvalid.com/docs/webhooks.md) for routes, events and error codes.

## Related

- [Solutions by company stage](https://trialvalid.com/solutions.md)
- [Trial conversion for growing SaaS teams](https://trialvalid.com/solutions/growing-saas.md)
- [Security at TrialValid](https://trialvalid.com/security.md)
- [API overview](https://trialvalid.com/docs/api.md)
- [Webhooks](https://trialvalid.com/docs/webhooks.md)
- [How TrialValid works](https://trialvalid.com/how-it-works.md)
- [Card holds for free trials](https://trialvalid.com/product/trial-holds.md)
- [Dispute readiness for free trials](https://trialvalid.com/product/dispute-readiness.md)
- [Contact](https://trialvalid.com/contact.md)
