Skip to Content
QuickBooks Online Connector for Odoo

Run the business in Odoo. Keep the books in QuickBooks Online.

Invoices, bills, payments, cost of goods sold and point of sale sessions reach QuickBooks exactly as Odoo posted them, with the PDF attached. Nothing is sent unless it ties to the cent.

Invoices and billsPayments both waysCost of goods soldPoint of saleSales tax, VAT and GSTSync queue

Runs on Odoo Community and Enterprise, on Odoo.sh or your own server.

Sync queue
  • Customer invoiceSent
  • PaymentSent
  • Cost of goods sold journalSent
  • Point of sale sessionWaiting

Odoo runs the business. QuickBooks keeps the ledger.

Your team and your accountant each keep the system they know.

Your team stays in Odoo

Sales, purchasing, stock, manufacturing and the point of sale keep running in Odoo, exactly the way they do today.

Your accountant stays in QuickBooks

Every invoice, bill, credit and payment arrives with the right accounts, tax codes and PDF, plus the journals QuickBooks never sees on its own.

Both show the same numbers

Nothing is sent unless it ties to the cent, and every night the open balances are compared with QuickBooks.

Features

Everything the books need, sent from Odoo

What reaches QuickBooks, and how it lands there

Invoices, bills and credits

Customer invoices, vendor bills, credit memos and vendor credits go to QuickBooks when they are posted, in batches of up to 30 per call, with your accounts and tax codes.

Your income accounts kept

QuickBooks takes the income account of an invoice line from its item. The connector creates one item per Odoo income account, so every line lands on the same account as in Odoo.

Payments and credits

Full and partial payments, one payment across several invoices, bill payments, and credit memos or vendor credits applied to open invoices and bills.

Changes come back

Payments entered in QuickBooks are recorded and reconciled in Odoo. Documents voided or deleted in QuickBooks are flagged for review. Bills entered in QuickBooks can come in as draft bills.

Cost of goods sold and journals

Cost of goods sold from invoices, plus inventory valuation, manufacturing, depreciation or payroll journals, sent as daily or monthly QuickBooks journal entries.

Point of sale sessions

Each closed session becomes one QuickBooks invoice with one payment per payment method, so every payment matches the deposit in the bank.

Classes and locations

Pick one Odoo analytic plan for QuickBooks classes and one for locations. Values missing in QuickBooks are created for you.

PDF attached

The invoice PDF, or the PDF attached to a vendor bill, is uploaded to the QuickBooks document, ready for your accountant and auditor.

Sales tax, VAT and GST

US companies with or without Automated Sales Tax, and per line tax codes for the UK, Canada, Australia, India and France, all in one module.

Closing date respected

When the QuickBooks books are closed, a backdated document either stops with a clear message or moves to the first open day. You choose.

Ties to the cent

A document that would total differently in QuickBooks waits in the queue instead. Every night the open balances of invoices and bills are compared with QuickBooks.

Queue, retry and Mock mode

Every call is logged with the request and the answer. Errors can be retried or skipped. Mock mode works without QuickBooks for training and staging databases.

What syncs

What moves, and when

Every record that travels between Odoo and QuickBooks

From Odoo to QuickBooks
OdooQuickBooksWhen
Customer invoiceInvoiceWhen posted
Customer credit noteCredit memoWhen posted
Vendor billBillWhen posted
Vendor refundVendor creditWhen posted
Customer or vendorCustomer or vendorWith its first document, then whenever it changes
PaymentPayment or bill paymentWhen registered or reconciled
Credit note matched with an invoiceCredit applied to the invoiceWhen reconciled
Cancelled or deleted documentVoided (invoices) or deleted (other documents)When cancelled or deleted in Odoo
Cost of goods sold and chosen journalsJournal entryDaily or monthly
Point of sale sessionInvoice plus one payment per methodWhen the session is closed
Invoice or bill PDFAttachmentRight after the document is sent
From QuickBooks to Odoo
QuickBooksOdooWhen
Payment or bill payment entered in QuickBooksPayment, reconciled with the invoice or billWithin a minute with webhooks, or at the hourly check
Payment deleted or voided in QuickBooksCancelled if it came from QuickBooks, flagged for review if it was sent from OdooWithin a minute, or at the hourly check
Invoice or bill voided or deletedFlagged with an activity for reviewWithin a minute, or at the hourly check
Bill entered in QuickBooksDraft vendor bill (optional)Within a minute, or at the hourly check
Accounts, tax codes, classes, locations, closing dateReference data for mapping and checksDaily, or on demand

Odoo stays the system of record. Apart from payments that came from QuickBooks, nothing in Odoo is cancelled because of a change made in QuickBooks; it is flagged for you to review instead.

How it works

From posted in Odoo to settled in QuickBooks

  1. Connect your QuickBooks company

    Create a free app in the Intuit developer portal, paste its keys into Odoo and sign in to QuickBooks. The connector reads your accounts, tax codes, classes, locations, plan and closing date.

  2. Map once, with suggestions

    Suggest Mappings pairs Odoo accounts with QuickBooks accounts by code or name, taxes with tax codes by rate, and bank journals with bank accounts. You check the result and fill any gaps.

  3. Post in Odoo as usual

    Invoices, bills and credits are checked to the cent and sent in batches as they are posted. Customers and vendors are created or linked with their first document.

  4. Payments move both ways

    Payments registered in Odoo reach QuickBooks, including one payment across several invoices. Payments entered in QuickBooks come back and reconcile the invoice or bill.

  5. Journals and sessions follow

    Cost of goods sold and the journals you choose go to QuickBooks as daily or monthly journal entries. Each closed point of sale session arrives as one invoice with a payment per method.

  6. A balance check every night

    The open balances of invoices and bills are compared with QuickBooks and any difference is listed. The dashboard of each company shows what is waiting, sent or in error.

Built in safeguards

Built in safeguards

What happens when something does not line up

  • A document that would total differently in QuickBooks is not sent. It waits in the queue with both totals, so you can fix the tax or rounding.
  • If QuickBooks totals a sent document differently, the document is marked Totals differ with both amounts instead of being reported as sent.
  • A missing account, tax or bank journal mapping holds the document with a message that names exactly what to map.
  • When a customer or vendor name already exists in QuickBooks, the existing record is linked, or a new one is created with a short suffix.
  • When a linked customer, vendor or item was deleted in QuickBooks, the link is dropped and the record is created again automatically.
  • When the books are closed for that date, the connector stops and reports, or moves the document to the first open day, as you chose.
  • When QuickBooks is busy, the request waits and retries with growing delays, and request IDs make sure nothing is sent twice.
  • When someone edits the same QuickBooks record at the same time, the connector reads the latest version and tries again.
Tax by country

Sales tax, VAT and GST, the way QuickBooks keeps them

One module for the three ways QuickBooks handles tax

Tax by country
US with Automated Sales TaxUS without Automated Sales TaxUK, Canada, Australia, India, France
Each line carriesTaxable or not taxableTaxable or not taxableIts own QuickBooks tax code
How the Odoo tax is keptThe Odoo tax total overrides the QuickBooks calculationThe mapped sales tax code plus the Odoo tax totalEach tax rate line with the exact Odoo amount
Mapping you setNoneOdoo tax to QuickBooks sales tax code, suggested by rateOdoo tax to QuickBooks tax code, suggested by rate
Vendor billsTax added as an expense lineTax added as an expense lineTax code on every line

Tax codes with two rates are split by rate, for example GST and PST in British Columbia.

Screenshots

A closer look

The Odoo side of the connector, then the result inside QuickBooks

QuickBooks dashboard
Dashboard per QuickBooks company: waiting, errors, sent, documents, payments and journals
QuickBooks connection form
Connection with company details, plan, currency and closing date
Account mapping
Account mapping from Odoo to QuickBooks accounts
Journal rules
Cost of goods sold settings and journal rules
Invoice list with QuickBooks column
Invoices with their QuickBooks status at a glance
Invoice QuickBooks tab
An invoice in QuickBooks, with the number and time it was sent
Closing date message
A backdated invoice stopped by the QuickBooks closing date, with a plain message
Sync queue
Sync queue with every document, payment, journal and change
Queue item with request
Each queue item keeps the exact request and answer
Journal batches
Cost of goods sold journal batches sent to QuickBooks
Point of sale summary
Point of sale session sent as one invoice with a payment per method
Voided in QuickBooks
An invoice voided in QuickBooks, flagged in Odoo with an activity
Imported bill
A bill entered in QuickBooks, imported as a draft vendor bill
Send existing documents wizard
Send existing documents for any period

Inside a real QuickBooks Online sandbox company, after the sync

QuickBooks invoice lines
An Odoo invoice with one item per Odoo income account and taxable lines
QuickBooks invoice totals and payments
Sales tax to the cent, a payment sent from Odoo and one entered in QuickBooks
QuickBooks point of sale invoice
A point of sale session with its tax and one payment per payment method
Who it is for

Built for teams whose accountant works in QuickBooks

Distributors and wholesalers

Stock and sales run in Odoo. Cost of goods sold reaches QuickBooks as journal entries, so the gross margin in the books matches Odoo.

Shops with Odoo Point of Sale

Each closed session arrives as one invoice with a payment per method, so every payment matches the bank deposit.

Manufacturers

Manufacturing and inventory valuation journals go to QuickBooks daily or monthly, grouped by account and class.

Bookkeepers and accounting firms

Your client runs Odoo and you keep working in QuickBooks, with the PDF on every document and your closing date respected.

Groups with several companies

Each Odoo company connects to its own QuickBooks company, with multicurrency where QuickBooks has it turned on.

Teams moving to Odoo step by step

Move operations to Odoo first and keep QuickBooks as the ledger. Older Odoo documents can be sent for any period you choose.

This connector extends standard Odoo Invoicing and Accounting, and Point of Sale when it is installed. It does not replace or debrand any native feature. It works with the standard, unmodified editions of Odoo Community and Enterprise. If your accounting has been changed by another developer, for example a custom invoice flow, a custom tax setup or another accounting connector, please contact us before purchasing.

You need a QuickBooks Online subscription and a free Intuit developer app. QuickBooks and Intuit are trademarks of Intuit Inc. This connector is made by The Stella Technolabs and is not made or endorsed by Intuit.

Ready to connect Odoo and QuickBooks Online?

Get the connector on the Odoo Apps Store, or talk to us first about mapping your accounts and taxes.

Good to know

Questions, answered

What do I need on the QuickBooks side?

A QuickBooks Online subscription and a free app in the Intuit developer portal, which gives you the keys to paste into Odoo. To try it first, use a free Intuit sandbox company, or Mock mode, which needs no QuickBooks at all.

Does it work with QuickBooks Desktop?

No. It connects to QuickBooks Online only.

Which QuickBooks plans are supported?

Simple Start, Essentials, Plus and Advanced. Classes, locations and inventory items need Plus or Advanced, and the connector reads your plan and only uses what it allows.

Does it bring my QuickBooks history into Odoo?

No. It sends Odoo activity to QuickBooks from the start date you choose. Older Odoo documents can be sent with Send Existing Documents, and bills entered in QuickBooks can be imported going forward.

What about US sales tax?

Both setups work. With Automated Sales Tax, Odoo marks lines taxable and sends its tax total. Without it, map each Odoo tax to your QuickBooks sales tax code once and the tax arrives to the cent.

Can I use another currency?

Yes, when multicurrency is on in QuickBooks. A customer is created per currency, as QuickBooks requires, and the Odoo exchange rate is sent.

Do I need webhooks?

No. They make changes arrive within a minute. Without them, the hourly check picks up payments, voids and bills made in QuickBooks.

Does it work on Odoo Online?

No. Odoo Online does not allow custom modules. The connector runs on Odoo.sh and on your own server, with Odoo Community or Enterprise.

Is my data safe?

It uses Intuit OAuth with the accounting scope only. Only QuickBooks managers in Odoo can see the client secret, and tokens are stored where only administrators can read them.