Pausing a Stripe Subscription: What QuickBooks Sees
Stripe offers three ways to handle invoices while payment collection is paused, and they produce three different sets of QuickBooks records for one...
A customer emails in March asking for two months of breathing room. You agree, open the subscription in Stripe, and click Pause payment collection. Stripe asks a question you were not expecting: how should it handle invoices during the pause? Three options, one dropdown, no explanation of what any of them does to your books.
That dropdown is the whole article. The three settings are not three flavours of the same outcome. They produce three genuinely different sets of records in QuickBooks for one identical business decision, and one of them produces different records for two different customers under the same setting.
Start a free trial of Acodei if you want Stripe invoices, payments and voids landing in QuickBooks without the retyping.
Pausing collection is one of three Stripe features with similar names
Before the dropdown, the vocabulary, because picking the wrong feature is a larger mistake than picking the wrong option inside the right one.
Pause payment collection is the one this post is about. Stripe describes it in its pause payment collection guide as a way to "temporarily offer a customer your services for free," and is explicit about what stays running: "the subscription remains active and invoices continue to generate, but Stripe doesn't collect payment. Your customer retains access to the service during this time." The subscription status does not change. Invoices keep being produced. Only collection stops.
Pause subscriptions is a different feature with a different result. Stripe: "Pause a subscription to temporarily suspend service delivery and invoice generation without canceling it." Here the status does change, to paused, and "Stripe pauses invoice generation until you resume the subscription." Stripe points you between the two in one sentence on its pause subscriptions page: "If you want to keep your customer's access to the service active while temporarily stopping payment collection, use pause payment collection instead."
Cancelling is the third, and Stripe routes you to it in the same breath: "If you want to permanently stop renewal, see Cancel subscriptions instead."
The short version: pause collection keeps the invoices and stops the money. Pause the subscription and you stop the invoices too. Cancel and there is nothing to come back to.
Everything below is about the first one.
One setting Stripe asks about before it starts
When you pause collection, you set pause_collection[behavior] to one of three values. Stripe's own summaries:
keep_as_draft: "Keeps all invoices in draft status while collection is paused."mark_uncollectible: "Marks all invoices as uncollectible while collection is paused."void: "Voids all invoices while collection is paused."
You can also set pause_collection[resumes_at], which Stripe defines as "A Unix timestamp after which the subscription resumes collecting payments." Leave it off and the pause runs until you clear it: "If you don't set resumes_at, payment collection remains paused until you unset pause_collection."
One thing is true of all three, and it matters for anyone who monitors their sync by watching webhook traffic. Stripe: "During the time that payment collection is paused, Stripe won't send any upcoming invoice emails or webhooks for these invoices and the subscription's status remains unchanged." Your customer stops hearing from Stripe, and so, for the upcoming-invoice notifications, do you.
What Acodei actually keys off, which is what makes the three differ
Acodei's Invoice Sync documentation describes a small number of trigger events, and the pause behaviours differ precisely because they steer invoices toward or away from those triggers.
Two triggers carry this whole article. When a Stripe invoice is finalized, Acodei creates a QuickBooks Invoice that reproduces every line item, and tax lines, as your mapping settings allow. When a Stripe invoice is paid, by a successful charge, by a manual payment according to your settings, or by a credit balance offset, Acodei creates a QuickBooks Payment Receipt or Credit Memo and applies it to the invoice it created earlier. Automatic application of the payment to the invoice requires QuickBooks Automatic Application to be switched on.
Two more matter for the pause cases specifically. On invoice.voided, Acodei's documented action is to void the QuickBooks invoice or create a Credit Memo, and if credit notes are attached they are deleted first. On invoice.marked_uncollectible, Acodei's documentation says the handling is the same as void, and adds a detail worth remembering: "if later paid we reopen and process payment."
Notice what is not on that list. There is no trigger for a draft invoice, and none for a pause. Acodei's product documentation has no page describing pause_collection, and nothing in it describes Acodei reading a subscription's pause state or reacting to it. What follows is not Acodei behaving differently in three ways. It is the same documented behaviour meeting three different streams of invoice events.
Behaviour one: keep invoices as drafts
Stripe's description is two bullets. "Invoices are created in draft status with auto_advance set to false" and "You can finalize and collect payment later."
auto_advance is the field that decides whether Stripe pushes an invoice through finalization on its own. With it set to false, nothing advances. The invoice is created, it sits in draft, and Stripe leaves it there. We covered that field and the collection behaviour around it in automatic collection on Stripe invoices, and the enum of statuses an invoice moves through is in Stripe invoice status.
Put that against Acodei's trigger and the QuickBooks result follows. The QuickBooks invoice is created when the Stripe invoice is finalized. Under keep_as_draft no invoice finalizes, so no finalization event occurs, and there is nothing for the documented trigger to act on. Accounts Receivable shows nothing for the paused months, because as far as your books are concerned nothing was ever billed.
That is the cleanest of the three, and it is the one most bookkeepers actually want when they hear "grace period." It is also the one with a tail.
Stripe carries an explicit warning next to this option: "If you have custom logic that finalizes invoices, you might need to disable or modify it so that it doesn't conflict with these settings." A finalizer running against your Stripe account will happily finalize the drafts you were carefully keeping unfinalized, and each one it finalizes is a QuickBooks invoice you did not intend to raise.
The backlog that arrives when you resume
This is the part that surprises people three months later, and it is documented plainly.
Resuming collection on the subscription does not finalize the drafts that piled up. Stripe: "After you resume payment collection from a subscription, set auto_advance=true on each draft invoice." Each one. There is a Dashboard path (open the invoice, overflow menu, Turn on automatic collection) and an API path, and Stripe even tells you how to find them if you did not keep the IDs: list invoices filtered by the subscription with status=draft.
So a two-month pause on a monthly plan leaves two draft invoices that will sit in draft forever until somebody acts. Turn auto_advance on for all of them in one sitting and they finalize together, which means two QuickBooks invoices land on the same day for two different service periods. That is not wrong, but it is worth expecting rather than discovering, particularly if the periods straddle a closed month.
There is a related trap on the way in rather than the way out. Stripe: "Invoices created before you pause subscriptions continue to be [retried] unless you void them." The pause governs invoices generated during the pause. The unpaid invoice from last month is not covered by it and keeps going through dunning on its own schedule.
Behaviour two: mark invoices uncollectible, which forks in two
Here the books get busier, and this is the setting where two customers on identical plans and the identical pause can end up with different records.
Under mark_uncollectible, invoices generate and finalize. That finalization is a real event, so Acodei's documented trigger fires and a QuickBooks invoice is created carrying the line items for a period you have decided not to collect on. Then Stripe marks the invoice uncollectible, and Acodei's documented handling for invoice.marked_uncollectible is the same as for a void: void the QuickBooks invoice or create a Credit Memo. The write-off decision between those two shapes, for a single invoice, is covered in voiding against marking a Stripe invoice uncollectible, and that post is the right place for it rather than here.
So the record set is a raised invoice and then its reversal, per paused period. Your A/R moves up and back down. That is a meaningful difference from the draft behaviour, where A/R never moved at all, and it is invisible on the Stripe dropdown that produced it.
Now the fork. Stripe: "Despite this pause, Stripe applies any existing customer balance to invoices. This behavior helps use available funds before we mark an invoice as uncollectible. If the invoice's total is paid off entirely using customer balance, then the invoice's status is set to paid. Otherwise, the invoice's status is set to uncollectible."
Read that against the customer list. Customer A has no balance, so their invoice becomes uncollectible and takes the write-off path. Customer B is carrying a credit from an earlier overpayment large enough to cover the month, so their invoice becomes paid. Paid is one of Acodei's documented triggers, including specifically the credit balance offset case, so Customer B's QuickBooks invoice gets a payment or credit memo applied to it rather than a reversal.
One setting. Two customers. Two different sets of QuickBooks records, decided by a balance neither of them mentioned when they asked for a grace period. Customer balances and how they reach QuickBooks are covered in Stripe customer balance and applied credits.
Two Acodei settings become relevant on the Customer B branch, and both are worth checking before you pause anybody.
The first is applied balance handling. Acodei's documentation says that by default it includes the applied balance as a line item on the QuickBooks invoice, so the invoice reflects the exact amount Stripe charged. An admin setting, "Skip 'Applied Balance' as line item on Invoice," instead creates the invoice at the full gross amount of subtotal plus tax, so QuickBooks A/R reflects the full value of the sale. Which of those two you are running decides what the Customer B invoice looks like before the credit is applied to it.
The second is the zero case. Acodei documents an admin setting, Enable $0 Invoices, defaulting to off, which allows invoices whose amount_due is zero and which carry at least one line item above zero to sync. Pure zero invoices, where every line is zero, are skipped regardless. An invoice fully covered by customer balance is exactly the shape that setting governs, so if the Customer B case matters to you, confirm the setting rather than assuming it. Zero and negative Stripe invoices in general are covered in zero dollar and negative Stripe invoices in QuickBooks.
Behaviour three: void invoices, which is not the same as no invoices
Stripe's line here is one sentence: "Invoices are voided. No record of charges is created for these periods."
That sentence is accurate and it is regularly misread. It says no record of charges. It does not say no invoices.
Voiding is an operation on a finalized invoice, not an alternative to producing one. Stripe's void endpoint is documented as "Mark a finalized invoice as void," and spells out the distinction from deleting a draft: voiding "only applies to finalized invoices and maintains a papertrail where the invoice can still be found."
So under this behaviour Stripe generates the invoice, finalizes it, and voids it. The finalization event happens, Acodei's documented trigger fires, and a QuickBooks invoice is created. Then invoice.voided arrives and Acodei's documented action is to void the QuickBooks invoice or create a Credit Memo, deleting any attached credit notes first.
The Stripe side is genuinely clean: no charges, no payment attempts, nothing collected. The QuickBooks side is not empty. It carries an invoice and its reversal for every paused period, in the same shape the uncollectible path produces, minus the customer balance fork.
If your reason for pausing is "I do not want these months in my books at all," void is not the setting that delivers it. keep_as_draft is. That is the single most useful sentence in this article, and it is the opposite of what the option names suggest.
The three side by side
| Behaviour | Stripe invoice reaches | What QuickBooks receives | A/R during the pause |
|---|---|---|---|
keep_as_draft | draft, auto_advance false | Nothing. No finalization, so no documented trigger fires. | Unmoved |
mark_uncollectible | uncollectible, or paid if customer balance covers it | An invoice, then a void or credit memo. On the paid branch, an invoice and an applied payment or credit memo instead. | Up, then back down |
void | void | An invoice, then a void or credit memo. | Up, then back down |
The column that decides everything is the middle one on the Stripe side, and the reason is always the same. Acodei's QuickBooks invoice is created at finalization. Two of the three behaviours finalize.
Subscription schedules change the picture, in two directions
If the paused subscription is managed by a subscription schedule, two documented behaviours are worth knowing before you pause.
Stripe: "If you pause a subscription that's managed by a subscription schedule, scheduled updates still take effect. A subscription schedule phase transition doesn't automatically remove pause_collection behavior that was set directly on the subscription." So a price change scheduled for next month still lands next month, and the pause survives it. The subscription moves to its new phase and carries on not collecting.
The second one runs the other way. Stripe's subscription schedules guide lists pause_collection among the properties "copied from the current phase to the new phase" when a schedule's phase splits automatically, which happens when you edit certain attributes directly on a subscription that has a schedule attached. A pause you set once can therefore propagate into a phase you did not think you were creating.
Neither of these is a problem, but both mean the pause outlives the mental model of "I paused this until June." Check the schedule, not just the subscription.
What to check in QuickBooks after a pause ends
Five things, in the order they tend to bite.
Count the drafts. If you paused with keep_as_draft, list the subscription's invoices filtered to status=draft before you touch anything. That count is the number of QuickBooks invoices about to appear once you set auto_advance=true on them.
Decide whether they should all finalize. Finalizing three months of drafts at once bills a customer three times in a day. That may be exactly what you agreed, or it may be the moment to void two of them in Stripe instead and let the QuickBooks side follow through the documented void path.
Look for the pre-pause invoice. The one raised before the pause started keeps retrying unless you voided it. It is the most common reason a customer who was promised a grace period gets a dunning email during it.
Check the write-off account. If you paused with mark_uncollectible or void, the paused periods produced invoices and reversals in QuickBooks. Confirm they landed where your bad-debt or credit memo treatment expects them, and confirm the reversal exists for each raised invoice rather than assuming a matched pair.
Reconcile the customer balance cases separately. Any customer whose paused invoice came out paid rather than uncollectible took a completely different path. They are not in the write-off pile and they should not be reconciled as though they are.
The point
Pausing collection is a single decision on the Stripe side and up to three different outcomes on the QuickBooks side, and the mapping between them is not intuitive. The behaviour named void, which sounds like the one that leaves no trace, raises invoices in QuickBooks and then reverses them. The behaviour named keep_as_draft, which sounds like a filing decision, is the only one that keeps the paused months out of your books entirely, because Acodei's documented trigger for creating a QuickBooks invoice is finalization and drafts never finalize.
Pick the behaviour by what you want your books to say, not by what the option is called. If you want silence in A/R, keep the invoices as drafts and plan for the backlog. If you want the receivable on record and then written off, mark them uncollectible and check who is carrying a credit balance first.
Start a free trial and see how Stripe invoices, voids and credit memos arrive in QuickBooks Online.
Frequently asked questions
Does pausing a Stripe subscription stop invoices from reaching QuickBooks?
Only if you pause with the keep_as_draft behaviour. Acodei's documented trigger for creating a QuickBooks invoice is finalization of the Stripe invoice, and under keep_as_draft Stripe creates invoices in draft with auto_advance set to false, so none finalize. Under mark_uncollectible and void the invoices do finalize, so QuickBooks receives an invoice for each paused period and then a void or credit memo reversing it.
What is the difference between pausing payment collection and pausing a subscription?
They are two separate Stripe features. Pausing payment collection leaves the subscription active and keeps generating invoices, and Stripe states that your customer "retains access to the service during this time." Pausing the subscription changes its status to paused and, in Stripe's words, "pauses invoice generation until you resume the subscription." If you want the customer to keep using the service while you stop charging them, pause collection is the one.
Why did one paused customer's invoice come out paid instead of uncollectible?
Because they were carrying a customer balance. Stripe applies any existing customer balance to invoices even during a pause, and states that "if the invoice's total is paid off entirely using customer balance, then the invoice's status is set to paid. Otherwise, the invoice's status is set to uncollectible." Acodei's documented triggers include an invoice paid by a credit balance offset, so that customer gets a payment or credit memo applied in QuickBooks rather than a write-off.
Do the draft invoices finalize themselves when I resume collection?
No, and this catches almost everybody. Stripe is explicit that after resuming payment collection from a subscription you "set auto_advance=true on each draft invoice." Resuming the subscription restores normal collection going forward, but the drafts accumulated during the pause stay drafts until you turn automatic collection on for each one, either in the Dashboard or through the API.
Will an invoice raised before the pause still chase the customer?
Yes. Stripe documents that invoices created before you pause "continue to be retried unless you void them." The pause behaviour applies to invoices generated during the paused window. Anything already open at the moment you paused carries on through its normal retry schedule, which is usually the reason a customer who was promised a grace period receives a payment reminder during it.
Does a scheduled price change still happen while a subscription is paused?
Yes. Stripe states that if you pause a subscription managed by a subscription schedule, "scheduled updates still take effect," and that "a subscription schedule phase transition doesn't automatically remove pause_collection behavior that was set directly on the subscription." The phase changes on time and the pause carries over into it.
Can I pause collection indefinitely?
Yes. resumes_at is optional, and Stripe documents that without it "payment collection remains paused until you unset pause_collection." The Dashboard offers the same two choices, an indefinite pause or a custom resume date. An indefinite pause on keep_as_draft quietly accumulates draft invoices for as long as it runs, so it is worth a calendar reminder even when the pause has no end date.
Does Acodei have a setting for paused subscriptions?
Not one that is documented. Acodei's product documentation describes triggers on invoice finalization, payment, voiding and being marked uncollectible, and has no page covering subscription pause states. The effect of a pause on your books comes entirely from which invoice events the pause behaviour produces, which is why the choice in the Stripe dropdown is the decision that matters.
Automate your Stripe to QuickBooks sync
Save hours every month. Acodei automatically syncs your Stripe transactions, invoices, and payouts to QuickBooks Online.
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 numbering, invoice matching, 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.
Get more operational finance guides like this one
We will only send high-value product and finance content.