Stripe Billing Thresholds: Mid-Cycle Invoices in QuickBooks
A Stripe billing threshold invoices usage before renewal. What each threshold invoice bills, the volume-tier credit line, and what QuickBooks receives.
Your API customer is on a monthly usage plan at $0.50 a call, and you have told Stripe to invoice them every time their unpaid usage reaches $100. They have a big month. By the 30th, Stripe has raised five invoices for one customer on one subscription.
None of that is a bug. It is a billing threshold doing its job, which is to stop a usage customer from running up a large balance before you see any money. The bookkeeping questions come afterwards: why one subscription produced five invoices, why revenue for that customer arrived in uneven lumps, and why you paid Stripe's fixed per-transaction fee five times instead of once.
Every threshold invoice, synced as it happens. Acodei's Invoice Sync creates a QuickBooks Online invoice when a Stripe invoice is finalized, threshold invoices included, and applies the payment when it is paid. Start a free trial.
This post covers how Stripe's two kinds of billing threshold work, what the threshold invoice contains and what it leaves out, what happens to the billing cycle and to tiered prices, the negative line that volume pricing can produce, and what all of it looks like in QuickBooks.
What a billing threshold is
Stripe bills metered usage in arrears. A customer uses your product all month, reports usage against a billing meter, and gets one invoice at the end of the period for everything they used. That is fine until a customer's usage is large, new, or both. Then you are extending credit for a month to someone you have never collected from.
A billing threshold cuts the period short for billing purposes. In Stripe's words, you set thresholds "to limit the amount owed or the products consumed between invoices or charges." When the customer crosses the line, Stripe raises an invoice for the usage so far, instead of waiting for the renewal date.
There are two kinds, and they live on different objects.
A monetary threshold sits on the subscription. You set billing_thresholds[amount_gte], and Stripe issues an invoice "when a customer's accrued usage in a service period reaches a specific monetary threshold." The value is in the currency's smallest unit, so 10000 means $100.00. Stripe's thresholds guide asks you to set it "to at least 50 currency units" and to make it a multiple of one unit's cost, because "setting a lower amount for the threshold results in your customers receiving an invoice for every unit of usage." You can set a monetary threshold in the Dashboard or the API.
A usage threshold sits on a subscription item. You set billing_thresholds[usage_gte] on the subscription item, and Stripe invoices when that item's usage reaches a quantity rather than an amount. Stripe advises setting it "to exceed one unit of usage to prevent frequent invoicing," and notes that it "doesn't support setting usage thresholds in the Dashboard." If you find a usage threshold on a subscription, a developer put it there through the API.
Stripe's API reference describes the subscription field as a way to "define thresholds at which an invoice will be sent, and the subscription advanced to a new billing period." Whether the period really advances is a setting, covered below.
Stripe also has usage alerts, which overlap in name. Stripe describes them as a way "to get notified when customers exceed meter usage thresholds, or to trigger an invoice when customers reach a specific billing threshold." A notification alone sends a webhook and puts nothing on an invoice. If your developer says "the threshold fired" and no new invoice appeared, ask which kind they mean.
What the threshold invoice contains
A threshold invoice is an ordinary Stripe invoice with two fields that tell you where it came from. Its billing_reason is subscription_threshold, which the invoice object reference defines as "A subscription reached a billing threshold." Its threshold_reason field "returns more information on which threshold rules triggered the invoice." Our post on Stripe's billing_reason field covers the full list of reasons and how to use them to sort a month of invoices.
What the invoice bills is the usage accrued in the current period up to the moment the invoice is created. Stripe is specific about the cut-off: "Threshold invoices don't include usage reported during the invoice finalization grace period. They reflect only the usage accrued within the billing period up to the point the invoice is created."
That matters because of how end-of-period invoices work. Stripe's finalization grace period defaults to one hour and can run to 72 hours, and during it you "can continue to report usage for the previous billing period." But "only subscription cycle invoices and subscription schedule phase transition invoices for metered items include usage reported during this period." A threshold invoice does not wait. Usage that your system reports a few minutes late, with a timestamp before the threshold invoice was created, does not go back onto that invoice. It is billed on a later one.
For a bookkeeper, the consequence is that threshold invoices are not clean slices of the month. Five threshold invoices for $100 each will not necessarily cover exactly 200 calls each, because late-reported usage moves from one to the next. The total for the period still comes out right. The individual invoices are approximations of when the usage happened.
What happens to the billing cycle
By default, crossing a threshold does not move the renewal date. Stripe's guide: "By default, the billing cycle anchor of a subscription remains unchanged after a customer reaches the usage threshold. If a customer reaches the threshold mid-month of a monthly subscription, the subscription resets at the end of the month, similar to a subscription without thresholds."
So a monthly customer anchored on the 1st who crosses the threshold on the 9th, the 16th and the 24th gets three threshold invoices on those dates, and then the normal renewal invoice on the 1st for whatever usage is left. The renewal invoice is smaller than it would have been, because most of the month's usage has already been billed.
You can change that with billing_thresholds[reset_billing_cycle_anchor]. With it set to true, Stripe "treats this configured behavior as if the subscription naturally arrived at its rollover point at the end of the month." The subscription starts a new billing cycle from the moment of the threshold. The renewal date moves, and keeps moving every time the customer crosses the threshold again.
That setting has a bookkeeping cost. If the subscription also carries a flat monthly fee, the fee now bills on whatever dates the customer's usage dictates, not on the 1st. Any schedule you keep in QuickBooks that assumes one invoice per customer per calendar month, such as a deferred revenue release or a recurring accrual, stops lining up. Find out which setting your subscriptions use before you build month-end checks around them.
Tiered prices carry across threshold invoices
Usage prices are often tiered: the first 10,000 units at one rate, everything above at a lower one. A natural worry is that each threshold invoice restarts the tiers, so the customer pays the expensive first tier again and again. It does not. Stripe "maintains tiers across threshold invoices. By default, tiers reset at the end of each billing period."
Stripe's own example uses graduated tiers of $0.50 per unit up to 10,000 units and $0.40 above that, with a $100 threshold. The customer is billed every 200 units through the first 10,000 (200 × $0.50 = $100), then every 250 units after that (250 × $0.40 = $100). Every threshold invoice is $100, but the quantity on the line changes once the customer moves into the cheaper tier. If you only look at invoice totals in QuickBooks, you will not see the tier change. If you look at the quantity on each line, you will.
The exception is the reset setting again. "To reset tiers after reaching a threshold, you must configure the subscription to reset the billing cycle anchor after the usage reaches the thresholds that you set." With the anchor reset, each threshold starts a fresh period with fresh tiers, and the customer pays the first-tier rate again.
The negative line that volume pricing produces
Volume tiers are different from graduated tiers. A volume tier prices every unit at the rate of the tier the total falls into. With volume tiers of $0.50 up to 10,000 units and $0.40 above, 10,000 units cost $5,000, but 10,001 units cost $4,000.40, because all 10,001 drop to the lower rate.
Combine that with a threshold and the customer can be billed more than they end up owing. Stripe's guide walks through it with a $5,000 threshold:
- The customer reaches 10,000 units. Stripe issues a threshold invoice for $5,000, and it is paid.
- The customer uses one more unit. The value of the period's usage is now $4,000.40, but $5,000 has already been billed.
- If usage stopped there, the customer would be owed $999.60. Stripe's handling: "At the end of the billing period, Stripe credits this amount to the customer's balance, which we use to pay future invoices."
- If usage keeps going, nothing new is billed until the usage is worth more than what was already paid. At 12,500 units the usage is worth $5,000 again, which the first payment already covers. Stripe will not raise the next invoice "until either the total usage reaches 25,000 units (for a total cost of 10,000 USD), or the end of the billing period arrives."
When the second invoice does come, it looks like this in Stripe:
| Line | Quantity | Amount |
|---|---|---|
| Usage ($0.40 per unit) | 25,000 | $10,000.00 |
| Amount previously billed (at $0.50 per unit) | -$5,000.00 | |
| Total | $5,000.00 |
The invoice restates all of the period's usage at the new rate and subtracts what was already billed. Its total is positive and correct, but it contains a negative line, and its first line is double the invoice total.
Two things follow for your books.
Revenue by product can look inflated if you report on lines. The $10,000 usage line is the period's whole usage, not new usage. The $5,000 credit line is what stops it being counted twice. A report that sums usage lines without the credit line will overstate usage revenue by everything previously billed in the period.
A period can end with the customer in credit. In step 3, the customer has paid $5,000 for $4,000.40 of usage, and Stripe carries the $999.60 as a customer balance to apply to future invoices. That is money you hold for the customer, not revenue, until a later invoice uses it up. How your books show that balance is a decision to make with your accountant before it happens, not after.
If you sell on volume tiers with thresholds, the simplest protection is to model one heavy customer's month in a Stripe test clock and look at every invoice it produces before a real customer does it for you.
What reaches QuickBooks
Stripe's invoice tells you why it was raised. What arrives in QuickBooks depends on how you sync.
With Acodei's Invoice Sync, a paid-plan feature you switch on per company, the trigger is the invoice being finalized. When a Stripe invoice is finalized, Acodei creates a QuickBooks invoice that reproduces its line items and tax lines, as your mapping settings allow. When the invoice is paid by a successful charge, Acodei creates a payment and applies it to that invoice. That automatic application needs the Automatic Application setting turned on in QuickBooks.
Acodei's documentation keys that flow on invoice events, not on billing_reason. A threshold invoice is finalized like any other, so it becomes a QuickBooks invoice like any other. For the customer with the big month, that means five QuickBooks invoices for one subscription, each with its own payment applied. That is the honest picture, because Stripe really did invoice and collect five times.
Three details are worth checking on threshold-heavy customers.
Line mapping. Each invoice line uses the product your mapping returns for it. Before a volume-tier customer produces the invoice above, decide where the "Amount previously billed" credit should land: it should net against the usage it reverses. When the first one syncs, compare the QuickBooks invoice with the Stripe invoice line by line. If the credit sits on a different account from the usage, your income report shows usage revenue and an unrelated negative figure instead of one net number.
Applied customer balance. When a later invoice is paid partly from the customer's Stripe balance, such as the $999.60 from the volume example, Acodei's default is to include the applied balance as a line on the QuickBooks invoice, so the invoice matches what Stripe charged. An admin setting can skip that line instead, and create the invoice at its full gross amount so accounts receivable shows the full value of the sale. Decide which presentation you want before the first one arrives.
Fees. Acodei never adds Stripe fees to invoices, because they would make the totals disagree. They post according to your fee settings. That keeps the invoices clean, but it does not make the fees smaller, which is the next point.
If something does land wrong, Acodei's guidance is to resync from the Data Feed rather than edit the synced transactions by hand in QuickBooks.
The fee cost of a low threshold
Every threshold invoice that is paid by card is a separate charge, and Stripe's standard card pricing is "2.9% + 30¢ per successful transaction for domestic cards." The percentage part is the same however you slice the month. The fixed part is not.
Take a customer who uses $1,000 of your product in a month.
| Threshold | Card charges in the month | Percentage fees | Fixed fees | Total fees |
|---|---|---|---|---|
| None (one invoice) | 1 | $29.00 | $0.30 | $29.30 |
| $500 | 2 | $29.00 | $0.60 | $29.60 |
| $100 | 10 | $29.00 | $3.00 | $32.00 |
| $50 | 20 | $29.00 | $6.00 | $35.00 |
At $50 the fixed fees are twenty times what one monthly charge costs. On one customer the difference is small. Across a few hundred usage customers it is a real line on your processing fee expense account, and it grows with exactly the customers you most want. A threshold is a credit-risk control. Set it to the amount you are genuinely unwilling to be owed, not to the lowest number Stripe allows.
Month-end checks for threshold customers
- Count invoices by reason, not by customer. In Stripe, filter the month's invoices by
billing_reason. Thesubscription_thresholdinvoices are usage billed early. A customer with several is usually busy, not broken. - Confirm the anchor setting. For each subscription with thresholds, check
reset_billing_cycle_anchor. If it istrue, the customer's renewal date moves, and any QuickBooks schedule built on calendar months will drift. - Look at quantities, not just totals. Equal-sized threshold invoices with changing quantities mean the customer moved tiers. That is expected under graduated pricing and worth knowing for revenue analysis.
- Find the negative lines. Under volume pricing, search for "Amount previously billed" lines and check they net against usage in QuickBooks rather than sitting on a separate account.
- Check customer credit balances at period end. A customer who ends the period in credit has money of theirs on your books. Make sure it is shown as a liability, not left inside revenue.
- Review the fee line. If your processing fees rose faster than revenue, count threshold charges before blaming Stripe's rates.
Frequently asked questions
What is a billing threshold in Stripe?
A setting that makes Stripe invoice a usage-based subscription before the end of its billing period. A monetary threshold on the subscription (amount_gte) triggers an invoice when accrued usage reaches an amount. A usage threshold on a subscription item (usage_gte) triggers one when usage reaches a quantity. The invoice has a billing_reason of subscription_threshold.
Does a threshold invoice reset the billing cycle?
Not by default. The renewal date stays where it was, and the subscription renews at the end of the period as usual. If you set reset_billing_cycle_anchor to true, Stripe treats the threshold as if the subscription had reached its normal rollover point, and the period starts again from the threshold.
Why does my Stripe threshold invoice have a negative line?
Usually because the price uses volume tiers. Once usage crosses into a cheaper tier, all of the period's usage is repriced at the lower rate. The next invoice bills the whole period's usage at the new rate and subtracts the amount previously billed, which shows as a negative line. If the repricing leaves the customer owing less than they paid, Stripe credits the difference to the customer's balance at the end of the period.
Does a threshold invoice include usage reported late?
No. Stripe states that threshold invoices "reflect only the usage accrued within the billing period up to the point the invoice is created." Unlike end-of-period invoices, they do not wait for usage reported during the finalization grace period. Late usage is billed on a later invoice in the period.
How do Stripe threshold invoices show up in QuickBooks?
With Acodei's Invoice Sync, each finalized threshold invoice becomes its own QuickBooks invoice, with its lines reproduced as your mapping allows, and each payment is applied to its invoice. A customer who crosses the threshold four times in a month has four invoices plus the renewal invoice in QuickBooks.
Do billing thresholds increase Stripe fees?
They can. Each paid threshold invoice is a separate charge, and Stripe's standard domestic card price includes a fixed 30¢ per successful transaction. The percentage fee is the same however the month is split, but the fixed fee is paid once per charge. A low threshold on a busy customer can multiply it.
The point
A billing threshold changes when you get paid, not what you are owed. The month's usage is the same. What changes is the number of invoices, the number of charges and fees, possibly the renewal date, and under volume pricing, the shape of the invoices themselves. Stripe's records explain all of it through billing_reason, threshold_reason and the line items. Your job is to make sure QuickBooks receives the same invoices and lets the credit lines net where they should.
Five invoices in Stripe, five invoices in QuickBooks. Acodei syncs finalized Stripe invoices into QuickBooks Online, threshold invoices included, and applies each payment to the invoice it paid. Start a free trial.
Automate your Stripe to QuickBooks sync
Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.
14-day free trial · card required · cancel anytime
How Acodei handles this in your stack
Stripe QuickBooks Integration
See how Acodei syncs Stripe payments, fees, refunds, invoices, and payouts into QuickBooks Online automatically.
Or go straight to a capability
Advanced Product Mapping
Map Stripe products to QuickBooks with rule-based logic on product ID, price ID, metadata, and account. Set rule priority and extend mapping to refunds and fees.
Automated Invoice Sync
Bring Stripe invoices into QuickBooks and auto-apply payments and credit memos, with invoice numbering suffixes and quantity tracking to cut double-entry.
Multi-Currency Mastery
Sync Stripe transactions across currencies with automatic exchange rate handling and currency-specific customer records. Our team enables multicurrency on request, and zero-decimal currencies such as JPY are not supported.
Class Mapping
Map Stripe products to QuickBooks classes for scalable categorization and multi-entity reporting. Class tracking requires QuickBooks Online Plus or Advanced.
Historical Data Import
Backfill historical Stripe data into QuickBooks by month range. Preview volume and cost before syncing so reporting starts from a complete baseline.
How to Connect Stripe to QuickBooks Online
Connect Stripe to QuickBooks Online in minutes. Acodei links both accounts with secure OAuth and syncs payments, fees, refunds, and payouts automatically.
Reconcile Stripe Payments in QuickBooks
Reconcile Stripe in QuickBooks Online automatically. Acodei splits out fees, matches payouts to deposits, and keeps every charge audit-ready.
Related articles
Acodei Journal
Stripe Subscription Setup Fees in QuickBooks
Acodei Content Team
Stripe Subscription Setup Fees in QuickBooks
11/11/2026
Acodei Journal
Canceling a Stripe Subscription: What Reaches QuickBooks
Acodei Content Team
Canceling a Stripe Subscription: What Reaches QuickBooks
11/10/2026
Acodei Journal
Nepal VAT and Digital Service Tax on Stripe Sales
Acodei Content Team
Nepal VAT and Digital Service Tax on Stripe Sales
11/9/2026
Get more operational finance guides like this one
We will only send high-value product and finance content.