Skip to content
Create account or Sign in
The Stripe Docs logo
/
Ask AI
Create accountSign in
Get started
Payments
Revenue
Platforms and marketplaces
Money management
Developer resources
APIs & SDKsHelp
Overview
Billing
OverviewAbout the Billing APIs
Subscriptions
Invoicing
Usage-based billing
Advanced usage-based billing
Quotes
Customer management
Billing with other products
Revenue recovery
Automations
Test your integration
Tax
Overview
Use Stripe Tax
Manage compliance
Reporting
Overview
Select a report
Configure reports
Reports for multiple accounts
Reports API
Revenue recognition
    Overview
    How Revenue Recognition works
    Set up revenue recognition
    Data freshness
    Pricing
    Multi-currency
    Connect platforms
    Revenue contracts
    Reports
    Overrides
    Audit your numbers
    Examples
    Revenue recognition rules
      Create a rule
    Revenue Recognition settings
    Map to your chart of accounts
    Performance obligations API
    Import data to Stripe
    Export data from Stripe
    Standalone selling price
Data
Overview
Query business data
Sigma
Data Pipeline
Import external data
United States
English (United Kingdom)
HomeRevenueRevenue recognitionRevenue recognition rules

Create a rule

Learn how to create a Revenue Recognition rule.

You can create and manage Revenue Recognition rules from the Stripe Dashboard. To create a rule, click Add rule from the Rules page.

A rule consists of the following key components:

  • Name
  • Apply to
  • Revenue treatment and allocation
  • Effective period

Conditions

Under Apply to, you can set conditions specifying which transactions (for example, charges, invoice line items, , ) a rule applies to.

Caution

A transaction fulfils the condition requirement when all the conditions are true.

Effective period

An effective period specifies the time period that a rule applies to. For an invoice line item, if the finalisation time for the invoice falls within the specified effective period, the invoice line item fulfils the effective period requirement. For a charge, if the balance transaction that it corresponds to has a creation time that falls within the specified effective period, the charge fulfils the effective period requirement.

For a rule to apply to a transaction, the transaction must fulfil both the effective period and condition requirements. When you update the effective period, the rule retroactively applies to previous accounting periods. If the previous periods are closed, changes are reflected in the first open accounting period. You can avoid corrections by re-opening previous periods.

Treatments

When a transaction fulfils both the effective period and condition requirement, a set of defined treatments are applied. A treatment consists of its type and the allocation percentage. The allocation percentage specifies how much of the amount the type of treatment applies to. The type of treatment specifies how to treat the amount. We support the following treatment types:

Revenue treatmentProducts*Customers**InvoicesOther payments
Defer and recognise revenue at a specified time (applied to payments)
Categorise the amount as passthrough fees
Categorise the amount as tax
Exclude the amount
Amortise the amount over a specified period (applied to payments)
Amortise the amount over the service period for an invoice line item

  • You can combine products with Invoices for additional targeting.
  • ** You can’t use Customers alone. You must combine them with Invoices, Other payments.

    Rule examples

    The following examples demonstrate common Revenue Recognition rule configurations. Each example shows how to set up rules for different business scenarios, from tax categorisation to revenue amortisation.

    Tax treatment

    To categorise a tax line item (for example, created by Avalara), you can set one rule, such as the following example:

    ComponentsValue
    Apply toInvoices > Line item description contains all of the following: AvaTax
    Effective periodStart: All past dates - End: Indefinite
    TreatmentsTax (100%)

    If you have a 10 USD invoice line item with the description “Sales Tax calculated by AvaTax” and the invoice finalises in April, you’d see the account balances as in the following example:

    AccountApril
    AccountsReceivable10 USD
    TaxLiability10 USD

    Passthrough fees

    To categorise 10% of an amount as a passthrough fee, you can set one rule like the following example:

    ComponentsValue
    Apply toInvoices > All line items
    Effective periodStart: All past dates – End: Indefinite
    TreatmentsAmortisation over line item service period (90%) and Passthrough fee (10%)

    If you have a 100 USD invoice line item (without a service period) that finalises in April, you’d see the account balances like the following example:

    AccountApril
    AccountsReceivable100 USD
    Revenue90 USD
    PassthroughFees10 USD

    Exclude transactions from a test customer

    To exclude all the standalone payments from a test customer, you can set one rule like the following example:

    ComponentsValue

    Apply to

    Customers > Customer email contains all of the following: test@stripe.com

    Other payments > All other payments

    Effective periodStart: All past dates – End: Indefinite
    TreatmentsExclude revenue (100%)

    The report excludes other payments from the customer, whose email is test@stripe.com.

    Exclude standalone payments

    To exclude all standalone payments from the report, set a rule like the following:

    ComponentsValue
    Apply toOther payments > All other payments
    Effective periodStart: All past dates – End: Indefinite
    TreatmentsExclude revenue (100%)

    This rule restricts Revenue Recognition to only include recurring payments and one-off invoice payments in your revenue accounting reports. Standalone payments are excluded from the report.

    Amortise revenue over custom time period

    In this example, we want to (1) amortise other payments from a small set of customers (for example, cus_AAA and cus_BBB) over one year and (2) amortise the remaining other payments over one month.

    We can make two rules and use the order of the rules as shown in the following example:

    Rule 1: Amortise other payments over one year

    ComponentsValue

    Apply to

    Customers > Customer ID matches any of the following: cus_AAA, cus_BBB

    Other payments > All other payments

    Effective periodStart: All past dates - End: Indefinite
    TreatmentsAmortisation over custom service period (100%) > Amortisation starting 0 days from paid time over 1 year

    Rule 2: Amortise other payments over one month

    ComponentsValue
    Apply toOther payments > All other payments
    Effective periodStart: All past dates - End: Indefinite
    TreatmentsAmortisation over custom service period (100%) > Amortisation starting 0 days from paid time over 1 month

    Other payments from cus_AAA or cus_BBB match Rule 1 and the revenue amortises over one year. Other payments from any other customer match Rule 2 and the revenue amortises over one month.

    Was this page helpful?
    YesNo
    • Need help? Contact Support.
    • Check out our changelog.
    • Questions? Contact Sales.
    • LLM? Read llms.txt.
    • Powered by Markdoc