Skip to Content

Your Odoo invoices, bills and payments mirrored in QuickBooks Online.

Confirm an invoice in Odoo and the connector creates it in your QuickBooks company under the same number. Documents from QuickBooks come back for review before they become Odoo records. Numbers are checked first, so re-running a QuickBooks Odoo sync never duplicates a document.

  • Odoo 17.0 – 19.0
  • Community & Enterprise
  • Odoo.sh · On-premise
  • Not for Odoo Online

Top seller on the Odoo Apps Store

sales on the Odoo Apps Store
3,000+
apps published
100+
countries running them
100+

Accounting entry work before and after the connector

Without the connector by hand

  1. Re-type every posted invoice into QuickBooks by hand
  2. Search QuickBooks lists before adding a customer a second time
  3. Look up state, county and district tax rates yourself
  4. Open each QuickBooks invoice to mark it paid after a payment run
  5. Compare two charts of accounts line by line
  6. Ask around when a document shows up in one system only

With the connector automatic

  1. Confirming the invoice in Odoo creates the QuickBooks record
  2. The connector matches an existing contact or creates it during the export
  3. "Quick Calc Taxes" applies QuickBooks Automated Sales Tax rates in Odoo
  4. Exported payments are linked to the invoice or bill they settle
  5. "Sync Chart of Accounts" lists each QuickBooks account with a suggested Odoo match
  6. Every call is recorded with its error detail and a "Retry" button

Invoices, payments and accounts between Odoo and QuickBooks Online

Every object the connector handles, which way it travels and what triggers it.

DataDirectionWhat happens & when
Customer invoices Both ways

Posting in Odoo with auto-export on, or an import run you start or schedule.

Vendor bills Both ways

Confirming the bill in Odoo, or a fetch from QuickBooks you run or schedule.

Credit notes and vendor refunds Both ways

Posting the credit note, or picking that type in the sync window.

Customer and vendor payments Both ways

Registering and reconciling a payment in Odoo, or an import of settled documents.

Customers and vendors Odoo to QuickBooks

The "Export/Update to QBO" action, or any document export that needs them.

Products Odoo to QuickBooks

The same action on products, or an export of a document using them.

Chart of accounts QuickBooks to Odoo

Clicking "Sync Chart of Accounts" on the connection.

Sales tax rates QuickBooks to Odoo

Clicking "Quick Calc Taxes" on a sale order or draft invoice.

Odoo QuickBooks Online Integration features

Invoices export when you confirm them

Your team posts an invoice in Odoo and the matching QuickBooks Invoice is created at that moment, with the chatter recording the result. Toggles on the connection decide which types behave this way, covering customer invoices and credit notes, vendor bills and vendor refunds. If QuickBooks rejects the document, Odoo rolls the posting back to draft and names the cause, so neither side keeps a record the other lacks.

Posted Odoo customer invoice with a chatter message confirming the export to QuickBooks Online

Same document number, no duplicates

The document keeps its Odoo number in QuickBooks, so anyone can find it in either system with the same reference. Before creating anything, the connector asks QuickBooks whether that number is already there. A match is linked to the Odoo document and flagged as exported rather than copied. That makes a first export against a QuickBooks company you have been using by hand safe to run.

The same invoice open in QuickBooks Online, carrying the document number it has in Odoo

US sales tax rates from QuickBooks

Click "Quick Calc Taxes" on a sale order or draft invoice and Odoo shows the same total QuickBooks will, split into state, county and district tax. The rates come from QuickBooks Automated Sales Tax for the customer's shipping address. Outside the US you set a QuickBooks tax code on each Odoo tax instead, and lines whose taxes have no code are sent as non-taxable with a warning in the log.

Odoo draft invoice after Quick Calc Taxes applied California state, county and district sales tax

Import QuickBooks documents by date or number

The "Sync with QuickBooks" window fetches invoices, bills, credit notes or payments from QuickBooks when you need them. Choose the import direction and a period, or switch the scope to "Specific Order" and type a single QuickBooks document number. The same window works the other way too, which is how you send documents that were posted in Odoo before the connection existed.

Sync with QuickBooks window in Odoo set to import invoices for a date range

Review imports before they post

Nothing fetched from QuickBooks becomes an Odoo record until it is processed, so a surprise import never touches your books. The "Items Queue" list shows how many documents a row holds, how many became Odoo records, what was skipped and the payload received. Imported invoices, bills and credit notes arrive as drafts for review, while payments are posted and reconciled against the document they settle.

Odoo Items Import Queue listing a pending QuickBooks invoice before it becomes a record

Map your chart of accounts once

Clicking "Sync Chart of Accounts" reads your active QuickBooks accounts and creates one row per account for linking to an Odoo account. Matches are proposed by code and name and marked as auto-mapped, so you only fill the gaps. The mapping decides where discount lines post and which QuickBooks bank account a payment is deposited to or drawn from. Running it again adds new accounts and keeps the links you set.

Confirmed QuickBooks connection in Odoo showing the Sync Chart of Accounts button

Choose which documents sync

You can send customer invoices to QuickBooks and leave vendor bills untouched. The "Sync Operations" tab holds the auto-export toggles plus the default QuickBooks income and expense accounts used for any product the connector has to create there. On the "Automation" tab you tick the types allowed for import and for export, and that choice applies to the sync window and to the export on confirmation.

Sync Operations tab in Odoo with auto-export toggles and default QuickBooks income and expense accounts

Supported Odoo versions

Odoo versionEditionsHosting PriceLatest release
19.0 Community & Enterprise Odoo.sh · On-premise €199 19.0.1.0.0
18.0 Community & Enterprise Odoo.sh · On-premise €199 No release notes
17.0 Community & Enterprise Odoo.sh · On-premise €199 No release notes

Support for Odoo QuickBooks Online Integration

The developers who build the app answer your tickets.

Free app support from purchase
60 days
First response in working hours, typical
4–6 hours
Support hours, 10:00–18:00 IST
Mon–Fri

How to connect QuickBooks Online to Odoo

  1. Step 1

    Create your Intuit app

    A free Intuit Developer account supplies the two keys the connection needs. Create an app there with the accounting scope and copy its Client ID and Client Secret. Development keys suit a Sandbox company, production keys your live one.

  2. Step 2

    Register the redirect link

    Odoo builds a redirect address from your own domain and shows it read-only on the connection form. Paste that value into the "Redirect URIs" of your Intuit app, under the tab matching your keys. It has to match exactly, and production requires HTTPS.

  3. Step 3

    Authorize and confirm

    Enter the two keys on the connection, pick Sandbox or Production, and click "Authorize". You sign in to QuickBooks once and pick the company. Back in Odoo, confirming the connection records your QuickBooks company ID, and access is renewed in the background.

  4. Step 4

    Map accounts and defaults

    Run "Sync Chart of Accounts", then work through the rows the connector could not match. Set the default income and expense accounts used for products it creates in QuickBooks, plus a default payment journal, before you export anything.

  5. Step 5

    Pick what syncs and when

    On the "Automation" tab, tick the document types to import and export. For heavy volume, switch on background processing so records are handled in small batches on a schedule you set. Then confirm an invoice and check the logs.

Questions before you buy

Not answered here? Talk to the team.

It runs on Odoo Enterprise, either on-premise or on Odoo.sh, and on Odoo Community installed on your own server. Odoo Online does not allow third-party apps to be installed, so the connector cannot be used there. We ship it for Odoo 17.0, 18.0 and 19.0.

Odoo allows a single QuickBooks configuration per company, and a second one for the same company is refused. In a multi-company database you create one connection per Odoo company, each pointing at its own QuickBooks company. Import rows and logs belong to the company that fetched them, and only that company's users see them.

The connector deletes the matching QuickBooks Invoice, Bill, Credit Memo or Vendor Credit, clears the link and returns the Odoo document to draft, after asking you to confirm. Confirming again sends a fresh record. If QuickBooks refuses the deletion, for instance in a closed period, the reset is stopped and the document stays posted.

The product has no SKU, the internal reference the connector uses to find or create the QuickBooks item. Set one and export again. A product can also be held back when a different QuickBooks item already uses its name, and the log asks you to rename one of the two instead of guessing.

Yes to both. The connector reads the reconciliation and builds one QuickBooks line per document the payment settles, each with the amount applied to it. A partial payment carries only the paid portion and the balance stays open. A payment that settles nothing identifiable is skipped, so reconcile it first.

That record is skipped and recorded with its message, error detail and the request sent, while the rest continue. Failed invoice, bill and credit note exports carry a "Retry" button. You can also have failures raise an Odoo activity for the people you name. A failed payment export leaves the Odoo payment posted.

A QuickBooks Online company, an Intuit Developer app for the keys, and an Odoo address reachable over HTTPS, since Intuit sends the browser back to it. The module builds on Odoo's Accounting, Sales and product modules, and needs the intuit-oauth Python library on the server. Configuring it requires the Billing Administrator access right.

No. QuickBooks keeps customers and vendors in separate lists, so the Odoo contact holds two read-only links, one for each role. When QuickBooks refuses a repeated display name, the connector links the existing record if the email matches, or retries with a suffixed name such as Acme Corp (Vendor).

Talk to the team that built it

Contact us
100%