Private preview
Contracts Private preview
Learn how to model negotiated sales agreements with dedicated contract billing.
Use contracts to model negotiated sales agreements that require custom pricing, defined service periods, and mid-deal seat changes while keeping your product catalog clean and avoiding complex subscription schedules.
Private preview
This feature is in private preview. You can request early access by filling in the form below.
Get early access to billing contracts.
Enter your email to request access.
Manage contracts in the Dashboard
Use the Dashboard to create, edit, activate, and cancel contracts without writing code. Creating and editing contracts in the Dashboard is in preview and only available in sandboxes. In live mode, you can view contracts, but you can’t create or edit them.
Go to the Contracts page in a sandbox to get started. The Dashboard and API use the same Contract objects, so you can manage a contract with either method.
Compare contracts and subscriptions
Contracts and subscriptions support different billing models and can coexist on the same platform.
| Contracts | Subscriptions | |
|---|---|---|
| Optimized for | Flexibility, with different terms for each customer | Scale, with the same terms across many customers |
| Pricing | Negotiated rates through overrides on top of catalog pricing | Standard catalog pricing |
| Lifecycle | Defined start and end dates | Recurring with no end date unless canceled |
| Driven by | Sales-led negotiations | Customer self-service |
Contracts and subscriptions use the same products and prices. For example, you can reference a product priced at 50 USD per seat per month by both a subscription and a contract, with the contract applying negotiated pricing through overrides.
Understand how contracts work
Contracts include these building blocks for mapping to a negotiated deal:
- Pricing lines : Products from your existing catalog included in the agreement, with quantities and service periods.
- Pricing overrides : Negotiated rates that differ from your standard catalog pricing (price override or percentage multiplier).
- License quantity : Seat or unit counts that you can change mid-contract period.
- Billing settings : Collection method and payment terms specific to the deal.
- One-time fees : Fixed charges billed outside the recurring cycle, such as a setup or implementation fee.
Contracts lifecycle
Contracts move through four statuses:
| Status | Description |
|---|---|
draft | Configuration. No billing occurs. |
active | Billing in effect. Invoices generated. |
ended | End date reached. The contract completed its term. |
canceled | Contract canceled before its end date. |
Create a contract
Create a contract in draft status to map your billing cycle to your negotiated sales agreement, then activate it when you’re ready to begin billing.
To create a contract in the Dashboard:
- In a sandbox, go to the Contracts page .
- Click Create contract .
- Enter a contract number, then select a customer and currency.
- To add a recurring fee, click Add item , select an existing product and price, and set the start date, end date, and quantity.
- To replace a recurring fee’s sticker price, select the fee, click Schedule price override , and enter the new amount and the dates it applies to.
- To apply a discount or markup, click Add item , select Discount or Markup , then enter a percentage and the date range and recurring fees it applies to.
- Click Save draft contract . Stripe saves the contract in draft status.
Activate a contract
Activate a contract to finalize the draft and create the first invoice when applicable. After activation, the contract status changes to active.
To activate a contract in the Dashboard:
- Go to the Contracts page and open a draft contract.
- Click Activate contract .
- Review the amount due and invoice date, then click Activate contract to confirm.
Create a contract with one-time fees
Use one-time fees to bill fixed charges that aren’t tied to the recurring billing cycle, such as setup fees, implementation charges, or one-off professional services. Each one-time fee references a product from your catalog and specifies when to bill.
To add a one-time fee when creating a contract in the Dashboard:
- In the contract editor, click Add , then select One-time fee .
- Select an existing product.
- Enter the Amount and Bill date .
- Click Save draft contract .
Manage one-time fees on an existing contract
After creating a contract, you can add, update, or remove one-time fees that haven’t been billed.
To manage one-time fees in the Dashboard:
- Go to the Contracts page and open the contract.
- Click Edit contract .
- To add a fee, click Add , select One-time fee , and enter its product, amount, and bill date.
- To change an existing fee, select it in the contract editor and update its details. To remove it, select the fee and click Remove one-time fee .
- Click Save changes .
You can’t update or remove a one-time fee that has already been billed on an active contract.
Cancel a contract
Cancel a contract to end it before the scheduled end date. You can specify whether to generate credit prorations for unused time.
To cancel a contract in the Dashboard:
- Go to the Contracts page and open an active contract.
- Click the overflow menu ( ), then select Cancel contract .
- Choose whether to refund the customer for unused time.
- Click Cancel contract immediately .
List invoices for a contract
After activating a contract, Stripe generates invoices according to its pricing and billing terms.
To view a contract’s invoices in the Dashboard:
- Go to the Contracts page and open the contract.
- Click the Invoices tab.
- Select an invoice to open its invoice details page.
Testing
Use test clocks to test your contract setup and simulate the advancement of time. Inspect the invoices and event notifications that Stripe generates as time advances.
Limitations
Contracts don’t support all subscription features. Notable exceptions include the following.
-
Trials : Contracts don’t have a trial status. To model a trial period, use pricing overrides to reduce pricing.
-
Discounts : Contracts don’t support coupons and discounts. To reduce pricing, use pricing overrides.
-
Charge automatically : Contracts support only collection _ method=send _ invoice . Support for collection _ method=charge _ automatically isn’t enabled for your account.
-
Metered prices : Contracts only support licensed prices.
