Late Fees on Overdue Stripe Invoices in QuickBooks

QuickBooks applies a late fee as a line on the overdue invoice. When that invoice came from Stripe, the fee lands on a record Stripe cannot collect.

Acodei Content Team · 9/5/2026 · 15 min read

Your customer is three weeks past due. You turn on late fees in QuickBooks, and the next morning the overdue invoice has a new line on it and a slightly larger balance. Nothing appears in Stripe. Stripe still shows the original amount, still retries the original amount, and if the customer pays through the link in their Stripe email, they pay the original amount and the invoice closes as paid.

The fee is real in your books and invisible to the system that collects your money. That gap is not a bug in either product. It is what happens when the receivable lives in QuickBooks and the collection lives in Stripe, and it is worth understanding before you turn the setting on rather than at the end of a quarter when someone asks why the aging report and the Stripe dashboard disagree.

Start a free trial of Acodei if you want Stripe invoices, payments and credit memos landing in QuickBooks without the retyping.

Stripe does not have a status for late

The first thing to internalise is that lateness is not a state a Stripe invoice enters. Stripe documents the invoice status field as "one of draft, open, paid, uncollectible, or void". There is no past_due and no late. An invoice that blew through its due date last month is still open, sitting in exactly the same status as one issued this morning.

The due date itself is thinner than people expect. Stripe describes due_date as "The date on which payment for this invoice is due" and then adds the part that catches people out: "This value will be null for invoices where collection_method=charge_automatically." If you charge a saved card, the invoice has no due date at all, because there is nothing to be late for. Only invoices sent for the customer to pay carry one. Which of those two you are looking at is covered properly in our post on automatic collection and your QuickBooks A/R, along with what the collection method does to the due date and the aging report. This post starts after the invoice is already late.

Read down the documented attribute list on the invoice object and the absence is the striking part. There is amount_due, amount_paid, amount_remaining, amount_overpaid, attempt_count, next_payment_attempt. There is no field for a fee, a finance charge, or interest accrued. The amount on a finalized Stripe invoice is the amount it was finalized with.

What Stripe does do about an overdue invoice

Stripe's answer to non-payment is thorough. It is just entirely about collecting the same number.

It retries the card. Smart Retries "chooses the best times to retry failed payment attempts", on a policy you set to "a specific number of times within a time period: 1 week, 2 weeks, 3 weeks, 1 month, or 2 months", with Stripe noting that "The recommended default setting is 8 tries within 2 weeks."

It emails the customer. For unpaid one-off invoices there is a setting to "Send reminders if a one-off invoice hasn't been paid", and you can "schedule reminders for before, on, or after the invoice due date."

It eventually writes the thing off, if you tell it to. In the billing settings, "You can mark an invoice as uncollectible if it's past due by 30, 60, or 90 days. You can also leave the invoice past-due."

And for subscriptions it changes the relationship rather than the amount. When recovery fails, the subscription either gets cancelled, moves to unpaid, or is left past_due, depending on your setting. Stripe is blunt about where that ends: "After the final payment attempt, we make no further payment attempts."

Retry, remind, give up, or cut the customer off. Four documented responses to lateness, and not one of them makes the invoice bigger. If you want a customer to pay more because they paid late, Stripe Billing is not where that happens.

QuickBooks does have a late fee, and it lands as a line

QuickBooks Online takes the opposite position. The setting lives in Settings, then Account and settings, then Sales, then Late fees, where you "Turn on the Default charge applied to overdue invoices switch". From there you "Enter the Amount and/or Percent (%) of the fee", pick a Frequency, optionally "select how many days" of grace period to give, and optionally rename the default label from Late fee.

Two details in Intuit's own description of how this works matter more than the setup steps.

The first is where the fee goes. Intuit's wording is that you "let QuickBooks calculate the late fees and automatically apply them to overdue invoices as a line item." Not a separate document. A new line on the invoice that is already open, which means the balance of that existing invoice goes up.

The second is where the money is booked. "QuickBooks automatically creates an 'Other Income' account named 'Late fee income' to track them." That is a sensible default and it is worth knowing it happened, because late fee income landing in Other Income rather than in your revenue accounts is usually what you want and is occasionally a surprise at year end.

A few limits from the same articles are worth carrying:

  • "QuickBooks only calculates and applies late fees to overdue invoices the day after you turn on the late fee setting." Invoices that were already late get nothing retroactively. Intuit's instruction for those is to add the fee manually as a line item.
  • "QuickBooks automatically adds late fees to overdue invoices for up to six months."
  • "You need to turn on invoice reminders or send one manually to tell the customer they've incurred late fees." The fee does not announce itself.
  • "There may be limits on the amount and type of fees you may charge your customers. You should confirm the requirements in your jurisdiction."

Intuit's articles do not address whether the fee line picks up sales tax, so treat that as something to check in your own file on one invoice rather than assume in either direction. If your payment terms are the thing that determines when an invoice becomes overdue in the first place, that is the setting the fee schedule is counting from.

The collision, in one sentence

QuickBooks adds the fee as a line on an invoice that QuickBooks did not create.

When you run Stripe invoicing and sync to QuickBooks, that open overdue invoice in QuickBooks is a mirror. Acodei's Invoice Sync documentation describes it as "a one-way integration that mirrors Stripe invoices and subsequent payments into QuickBooks Online", where a finalized Stripe invoice creates a QuickBooks Invoice "that reproduces every line-item, and tax lines, as allowed by the user's mapping settings". Payment flows the same direction: when the Stripe invoice is paid, Acodei creates a Payment Receipt or Credit Memo in QuickBooks and applies it to that invoice, which requires QuickBooks Automatic Application to be switched on.

One way. Nothing in Acodei's product documentation describes writing anything back to Stripe, and nothing in it describes reading a QuickBooks-side edit. So the fee line you just added exists on the QuickBooks copy only. Stripe will never see it, never bill it, and never collect it.

Which gives you a concrete arithmetic problem the moment the customer pays. Stripe collects the original amount. Acodei records a payment for the amount Stripe reports. The QuickBooks invoice is now larger than the payment applied to it, so it does not close. It sits in accounts receivable with a small open balance equal to the fee, aging quietly, and it looks exactly like the partial payment cases covered in partially paid Stripe invoices in QuickBooks even though nothing failed. That residue is not wrong. It is the true statement that the customer owes you a fee they were never billed for.

What a resync does to that line, and the honest limit

This is the part to get right before you turn anything on.

Acodei's documented resync behaviour is unambiguous about the mechanic: a resync is "Delete and add invoice + payment again". The invoice is rebuilt from the Stripe invoice. A late fee line has no counterpart in Stripe, so a rebuilt invoice cannot carry one. That is not a claim about a special case for hand edits. It follows from what a resync is.

The documentation stops short of describing hand-edited invoices specifically, and there is one documented case where the outcome is not clean: when a resync fails because the invoice is linked to a deposit, the parent invoice cannot be deleted and "Child transactions [are] still dispatched". So the general shape is that a resync discards QuickBooks-side edits, and the specific outcome for one invoice in one file is something to establish by testing on a single invoice rather than by reasoning about it.

Acodei's own best-practice guidance points the same way for a different reason: "Instruct accounting teams to resync from the Data Feed instead of manually altering transactions in QBO." The integration is built on the assumption that Stripe is the source and QuickBooks is the copy. A late fee added by hand is a deliberate exception to that assumption, and exceptions to it survive only until the next resync.

The practical rule: if you add fee lines to synced invoices, keep a record of which invoices you touched, outside of QuickBooks. You will want it the first time someone resyncs a month.

Doing it on the Stripe side instead, and what it costs

There is a way to make the fee real in Stripe, and it is heavier than it sounds.

Stripe lets you revise a finalized invoice, with limits it states plainly: "Stripe lets you revise a finalized invoice in open or uncollectible status. You can't, however, revise an invoice in void or paid status." A revision can "Add, remove, or edit a line item", which is exactly the operation you want.

The cost is in the mechanic. "When you click Update invoice, Stripe finalizes the new invoice and voids the old one." A revision is not an edit. It is a new invoice plus a void of the original, and both halves reach QuickBooks. Acodei's documentation is explicit about the void half: on invoice.voided, Acodei will "Void invoice or create Credit Memo", and if credit notes are attached to that invoice they are deleted first. The new finalized invoice then arrives as its own QuickBooks invoice, with its own number.

So the customer gets a new invoice number, your QuickBooks file gets a void or a credit memo against the original, and the fee is genuinely collectable through Stripe. The full mechanics of that swap, including what it does to a period you have already reported on, are in our post on revising a finalized Stripe invoice.

And there is a hard stop worth checking before you plan around this at all: "You can't revise invoices that are attached to subscriptions after finalization." Editing finalized subscription invoices exists only as a private preview, and only for subscriptions on flexible billing mode. If your revenue is subscription revenue, the revision route is closed to you for most invoices today.

The third option, which is usually the right one

Bill the fee separately.

Raise a new QuickBooks invoice for the fee alone, against the same customer, using a product or service item pointed at your late fee income account. It is a clean, ordinary receivable that no sync will delete, because Acodei never created it and a resync of the Stripe invoice does not touch it. You chase it like any other invoice, and the customer statement shows it beside the Stripe originated invoices in the same list.

Two things to watch. Collection is now yours: Stripe will not attempt this one, so if you want the money you are sending a payment link, taking a card by phone, or waiting on a bank transfer. And if your Stripe invoices sync with the invoice number suffix on, which appends -AC1, -AC2 and so on specifically "to prevent 'duplicate number' errors when users hand-enter invoices in QBO", give your hand-raised fee invoice a numbering convention that will not collide with the synced series.

The honest comparison is short. Adding a line to the synced invoice is the least work and the least durable. A Stripe revision is the most correct and is unavailable on subscription invoices. A separate QuickBooks invoice is slightly more work, survives everything, and puts the collection burden on you.

Where the sync stops

Worth stating in both directions, because the useful part of an integration is knowing its edges.

What is documented. A finalized Stripe invoice becomes a QuickBooks Invoice reproducing every line item and the tax lines as far as your mapping settings allow. A paid Stripe invoice produces a Payment Receipt or Credit Memo applied to that invoice, which requires QuickBooks Automatic Application to be switched on. A voided Stripe invoice voids the QuickBooks invoice or produces a credit memo. An invoice marked uncollectible is handled the same way, and if it is later paid, Acodei reopens it and processes the payment. Invoice Sync is available on paid plans and is toggled per company.

What is not documented, and therefore not claimed. Nothing in Acodei's product documentation describes late fees, finance charges, interest, or reading any QuickBooks-side edit to a synced record. The sync's job runs in one direction, and a fee that originates in QuickBooks is outside it. That is a boundary rather than a gap: the fee is a decision about your commercial relationship with a customer, and it is not information Stripe holds.

For the far end of the same story, when the answer is that the money is not coming at all rather than that it should cost more, void versus uncollectible covers which one to use and what each writes into QuickBooks.

A short decision list

  1. Check the collection method first. If the invoice charges a saved card automatically, it has no due date, and "overdue" is a judgement you are making rather than a state either system recorded.
  2. Decide where the fee has to be collectable. If Stripe must collect it, the fee has to be on a Stripe invoice, which means a revision and a new invoice number, and which is unavailable for subscription invoices.
  3. If the fee is only for the books, expect the residue. A fee line added in QuickBooks will leave the invoice short by the fee amount once Stripe's payment arrives. Decide in advance whether that open balance gets written off or chased.
  4. Prefer a separate invoice for anything you intend to keep. It survives resyncs, it reports cleanly, and it does not disguise itself as a partial payment.
  5. Turn on reminders if you turn on fees. Intuit's own instruction is that the customer is not told otherwise.
  6. Test the resync on one invoice. Add the line, resync from the Data Feed, and look at the result before you adopt the practice across a file.

Frequently asked questions

Can Stripe charge a late fee on an overdue invoice?

Not as a feature. Stripe's documented responses to an unpaid invoice are retrying the payment, sending reminders, marking the invoice uncollectible after 30, 60 or 90 days, or changing the subscription state. Stripe states that "After the final payment attempt, we make no further payment attempts." None of these changes the amount owed. To increase the amount you would revise the invoice, which Stripe describes as finalizing a new invoice and voiding the old one.

Does a QuickBooks late fee sync back to Stripe?

No. Acodei's Invoice Sync is documented as a one-way integration that mirrors Stripe invoices and payments into QuickBooks Online. A fee added on the QuickBooks side is not sent to Stripe, so Stripe will not bill or collect it.

Why is my QuickBooks invoice still open after Stripe says it is paid?

If you added a late fee line to that invoice in QuickBooks, the invoice total is now larger than the amount Stripe collected. Acodei records the payment Stripe reports and applies it to the invoice, leaving an open balance equal to the fee. The invoice is not broken. It reflects a charge Stripe was never told about.

Will a resync remove a late fee I added by hand?

Acodei documents a resync as deleting and adding the invoice and payment again, rebuilding it from the Stripe invoice. A fee line that exists only in QuickBooks has nothing to be rebuilt from. The documentation does not describe hand-edited invoices specifically, and there is a documented case where an invoice linked to a deposit cannot be deleted, so test the behaviour on a single invoice in your own file before relying on it.

Where does a QuickBooks late fee post?

Intuit states that "QuickBooks automatically creates an 'Other Income' account named 'Late fee income' to track them", and that the fee is applied to the overdue invoice as a line item rather than as a separate transaction.

Does turning on late fees apply them to invoices that are already overdue?

No. Intuit is explicit that "QuickBooks only calculates and applies late fees to overdue invoices the day after you turn on the late fee setting", and that older past-due invoices need the fee added manually as a line item.

Can I add a late fee to a Stripe subscription invoice?

Not through a revision. Stripe states that "You can't revise invoices that are attached to subscriptions after finalization", and editing finalized subscription invoices is a private preview limited to flexible billing mode. For subscription revenue, a separate QuickBooks invoice for the fee is usually the workable route.

Should the late fee be a separate invoice or a line on the existing one?

A separate invoice if you want it to last. A line on the synced invoice is the fastest option and the one most likely to disappear at the next resync or to leave the original invoice short once payment arrives. A separate invoice is an ordinary receivable that the sync does not touch.

The short version

Stripe manages collection and never changes the amount. QuickBooks manages the receivable and will happily change the amount, on an invoice it did not create and cannot collect. Every sensible way through that starts with deciding which of those two systems the fee actually has to be true in.

If you want the underlying invoices, payments and credit memos to arrive in QuickBooks accurately in the first place, so the only judgement left is the commercial one, start a free trial of Acodei.

Sources: Stripe's Invoice object reference, automatic collection, payment retries and edit finalized invoices documentation, and Intuit's help articles on turning on automatic late fees and understanding automatic late fees, all fetched at the time of writing. Acodei behaviour is grounded in Acodei's Invoice Sync product documentation.

Share

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

Get more operational finance guides like this one

We will only send high-value product and finance content.