Use case
Invoice in Stripe, Track Receivables in QuickBooks
For businesses that raise every customer invoice in Stripe but need real Accounts Receivable, aging, and collections reporting inside QuickBooks Online rather than a pile of sales receipts.
Who this is for
- +You send customer-facing invoices from Stripe Billing or Stripe Invoicing.
- +Your accountant wants A/R aging and open-invoice reporting in QuickBooks.
- +You need Stripe flexible billing (subscriptions, usage, credit notes) but QuickBooks for accrual or cash-basis reporting.
- +You reconcile credit memos, partial payments, or multiple currencies and refuse to key them in by hand.
The problem
A default Stripe to QuickBooks sync writes sales receipts. A sales receipt says money already arrived, which is true and which is also the end of the story. There is no open invoice, no due date, and nothing on an aging report.
That is fine for a business that charges cards at checkout. It is wrong for a business that invoices customers and waits to be paid, because the entire question your bookkeeper is asked is "who owes us money and for how long". Accounts Receivable is where that question is answered, and a sales receipt never touches A/R.
So you end up in one of two bad places. Either you raise the invoice again by hand in QuickBooks and reconcile two systems that both think they own the invoice, or you accept that your QuickBooks file cannot answer a receivables question and you run collections out of Stripe while your accountant runs the books somewhere else.
What changes when invoices sync instead of receipts
The workflow shifts from one record to two. When a Stripe invoice is finalized, a matching QuickBooks Invoice is created that reproduces the line items and the tax lines, subject to your mapping settings. The invoice is open. It sits in A/R. It shows on an aging report the way any other invoice does.
When that Stripe invoice is paid, a second record settles it. Payment by a successful charge, by a manual payment recorded in Stripe, or by a customer credit balance offset each produce a QuickBooks Payment Receipt or Credit Memo, applied against the invoice that was already created.
That is the whole shape of it: Stripe stays the billing system and the place customers pay, QuickBooks becomes the receivables ledger, and the two stay tied together per invoice rather than reconciled in aggregate at month end.
The lifecycle events that matter
Invoice created or finalized in Stripe produces the QuickBooks Invoice. Stripe invoice IDs are stored against the QuickBooks invoice ID, and suffix rules exist to stop duplicate invoice numbers colliding with anything you raise by hand in QuickBooks.
Invoice paid, or the underlying charge succeeding, produces the Payment. It auto-applies to the invoice, which depends on QuickBooks Automatic Application being turned on, and it lands in whichever holding account your connection is configured for.
An invoice voided in Stripe either voids the QuickBooks invoice or produces a Credit Memo instead, depending on your settings. If credit notes are attached, they are removed first. An invoice marked uncollectible is treated the same way as a void, and if it is later paid after all, the invoice is reopened and the payment processed. A Stripe credit note produces a QuickBooks Credit Memo, linked to the invoice where that is possible and otherwise posted against the customer.
The useful property here is that none of those are special cases you have to watch for. They are the ordinary paths, which is what makes an invoice-based workflow survivable at volume.
The decisions to make before you turn it on
Invoice Sync is a mode, not a preference. Acodei's own documentation describes switching the connection to the invoice and payment workflow as a significant mode change and advises doing it at onboarding rather than mid-life, and that is worth reading as written rather than as boilerplate caution.
The holding account decision comes with it. Both Undeposited Funds and a regular asset clearing account are supported, but they do different things to your fees. On a non-Undeposited-Funds account with Invoice Sync on, recording fees as an expense is the only available option. On Undeposited Funds with Invoice Sync on, fees can appear as expenses or on the bank deposit.
Currency decides it outright in one case. If you want invoices to keep their own currency, that requires Invoice Multicurrency, and Undeposited Funds is not offered as a holding account once that is on. Asset clearing accounts are the documented recommendation for advanced multicurrency work.
One validation detail is worth stating precisely, because a looser version of it circulates: Acodei compares the finished QuickBooks invoice against the Stripe invoice amount to confirm an exact match, and that particular check applies only when tax is enabled. The other validations, on duplicate invoice numbers and on payments being applied to the right invoice in the right amount, are not conditional in that way.
What it does not do
Acodei syncs the invoices and charges that Stripe Billing produces. It does not run dunning, retries, or proration on your behalf. Those are Stripe features, configured in Stripe, and what reaches QuickBooks is the resulting invoice or charge.
Zero-decimal currencies such as Japanese yen are not supported today. If part of your invoicing is denominated in one, that portion needs handling separately rather than assuming it will flow through.
Invoice number suffixing protects against a collision at creation time. It does not protect against someone renaming an invoice inside QuickBooks afterwards.
And two-way sync is not on the table. This is a one-way mirror from Stripe into QuickBooks, so an invoice edited in QuickBooks does not travel back.
How Acodei implements it
Invoice Sync is a one-way integration that mirrors Stripe invoices and the payments against them into QuickBooks Online. It is available on paid plans and is toggled per company, so one Stripe account can run it while another on the same login does not.
Enabling it happens in the Acodei dashboard under Account Mapping, in the Premium Features block: show Invoice Sync, choose Yes in the Stripe Invoices block, configure the sub-options, and submit. Turning the connection itself over to the invoice and payment workflow is the "Process Sales as Receive Payment-only" mode change, which the documentation flags for onboarding rather than mid-life.
The features you already configured keep working. Customer Sync, Product Sync, Tax, Multicurrency and Fee Management all continue to function with Invoice Sync active, with internal adjustments applied automatically. Each invoice line uses the product returned by Multiple Product Mapping when that is enabled, and the default product otherwise. Tax lines attach according to your chosen tax approach, and inclusive tax triggers a manual inclusive tax calculation.
Stripe fees are never added to the invoice itself, because that would make the invoice total disagree with Stripe. They are handled through sales receipts, deposits, or expenses according to your fee rules instead.
Several sub-options are worth knowing. Invoice number suffixes are on by default, appending a marker so hand-entered QuickBooks invoices do not collide. Invoices with a zero balance but at least one non-zero line can be allowed to sync, while a genuinely empty invoice is still skipped. An invoice you mark paid manually in Stripe can generate a QuickBooks payment, and that one can be routed to Undeposited Funds regardless of your normal holding account. Quantity tracking pushes real Stripe quantities rather than a hard-coded 1, and is not available alongside inclusive tax. Service and supply date handling is a set of mutually exclusive toggles that decide which date the QuickBooks record carries.
By default the customer credit balance Stripe applied to an invoice is included as a line item, so the QuickBooks invoice reflects exactly what Stripe charged. A setting reverses that and posts the invoice at the full gross amount instead, so that A/R shows the whole value of the sale.
On multicurrency, if a Stripe customer's currency differs from the existing QuickBooks customer, a per-currency customer record is created before the invoice is posted. That per-currency record is how QuickBooks requires multicurrency to work rather than a quirk of the integration. Multicurrency Support and the Invoice Multicurrency sub-toggle are both enabled by the Acodei team rather than being self-serve, so that part is a conversation rather than a checkbox.
One operational note from the documented best practices: keep Automatic Application on in QuickBooks, or payments and credit memos will not settle their invoices by themselves.
Want to see this on your own Stripe data?
Start a free trialWhat you need in place
- +A connected QuickBooks Online company with an authenticated token in Acodei.
- +Invoice Sync enabled under Account Mapping, Premium Features. It is a paid-plan feature, set per company.
- +A holding account chosen: Undeposited Funds or a regular asset clearing account are both supported, and asset accounts are recommended for advanced multicurrency.
- +QuickBooks Multicurrency turned on if any invoice currency differs from your QuickBooks home currency.
- +QuickBooks Automatic Application left on, so payments and credit memos settle their invoices automatically.
- +Fee treatment decided: with a non-Undeposited-Funds account, fees as expense is the only option under Invoice Sync.
Frequently asked questions
Will my Stripe invoices show up in QuickBooks Accounts Receivable?
Yes. With Invoice Sync on, a finalized Stripe invoice creates a QuickBooks Invoice that reproduces the line items and tax lines, so it is an open invoice sitting in A/R rather than a sales receipt. When Stripe records payment, a Payment Receipt or Credit Memo is created and applied against that invoice.
What is the difference between Invoice Sync and the default sales receipt workflow?
The default workflow writes one record per charge, a sales receipt, which says money arrived and never touches Accounts Receivable. Invoice Sync writes two: an invoice when Stripe finalizes it, and a payment when Stripe collects it. If you need aging, open balances, or collections reporting in QuickBooks, you need the invoice.
Can I turn Invoice Sync on after I have been syncing for a while?
It is possible but it is not a casual settings change. Acodei documents switching the connection to the invoice and payment workflow as a significant mode change and recommends doing it at onboarding. Your existing history stays in the shape it was synced in, so you would have records recorded two different ways either side of the switch.
Does Acodei handle failed payments and dunning for my Stripe invoices?
No. Dunning, retries, and proration are Stripe Billing features that you configure in Stripe. Acodei syncs the invoices and charges that Stripe produces as a result. What reaches QuickBooks is the resulting record, not a separate collections workflow.
What happens if I void a Stripe invoice that already synced?
Depending on your settings the QuickBooks invoice is either voided or replaced with a Credit Memo, and any attached credit notes are removed first. An invoice marked uncollectible follows the same path, and if it is later paid, the invoice is reopened and the payment is processed against it.
Does Invoice Sync work with multiple currencies?
Yes, with conditions. QuickBooks Multicurrency has to be on if any invoice currency differs from your home currency. If you want invoices to hold their own currency, that needs Invoice Multicurrency, which is not offered alongside Undeposited Funds, so you would use an asset clearing account. Multicurrency Support and Invoice Multicurrency are both switched on by the Acodei team rather than by you. Zero-decimal currencies such as yen are not supported.
Will Acodei create duplicate invoice numbers in QuickBooks?
Invoice number suffixing is on by default specifically to prevent that, appending a marker so a synced invoice does not collide with one you raised by hand in QuickBooks. It protects the number at creation time, so it will not stop someone renaming an invoice in QuickBooks afterwards.
What customers say about running Stripe through Acodei

“If you're testing out all the different Stripe/QuickBooks integration apps right now, let me save you some time. This one is the best one by far.”
“Works well and is really helpful for massive transactions. The support is really fast and helpful. 100% recommended.”
Ready to try Acodei?
Connect Stripe to QuickBooks Online in minutes and let the fees, refunds, and payouts land where your accountant expects them.