Stripe | Financial Infrastructure to Grow Your Revenue

Stripe | Financial Infrastructure to Grow Your Revenue

4466 articles

Contracts


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.

ContractsSubscriptions
Optimized forFlexibility, with different terms for each customerScale, with the same terms across many customers
PricingNegotiated rates through overrides on top of catalog pricingStandard catalog pricing
LifecycleDefined start and end datesRecurring with no end date unless canceled
Driven bySales-led negotiationsCustomer 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:

StatusDescription
draftConfiguration. No billing occurs.
activeBilling in effect. Invoices generated.
endedEnd date reached. The contract completed its term.
canceledContract 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:

  1. In a sandbox, go to the Contracts page .
  2. Click Create contract .
  3. Enter a contract number, then select a customer and currency.
  4. To add a recurring fee, click Add item , select an existing product and price, and set the start date, end date, and quantity.
  5. 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.
  6. 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.
  7. 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:

  1. Go to the Contracts page and open a draft contract.
  2. Click Activate contract .
  3. 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:

  1. In the contract editor, click Add , then select One-time fee .
  2. Select an existing product.
  3. Enter the Amount and Bill date .
  4. 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:

  1. Go to the Contracts page and open the contract.
  2. Click Edit contract .
  3. To add a fee, click Add , select One-time fee , and enter its product, amount, and bill date.
  4. 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 .
  5. 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:

  1. Go to the Contracts page and open an active contract.
  2. Click the overflow menu ( ), then select Cancel contract .
  3. Choose whether to refund the customer for unused time.
  4. 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:

  1. Go to the Contracts page and open the contract.
  2. Click the Invoices tab.
  3. 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.

Last verified 2026-09-24

Is this helpful?