QuickBooks Online and Cin7 integration
QuickBooks Online runs your accounting. Cin7 runs your inventory and procurement. Connecting the two keeps your bills and purchase orders synchronized without manual re-entry. Vendor bills created in Cin7 flow into QuickBooks Online's accounts payable, tied to the right supplier and GL account. Purchase order changes in either system stay in sync, so your committed spend is always accurate in your financial close. ml-connector handles the different authentication schemes on each side and moves the data on a schedule you control.
What moves between them
The main flow runs from Cin7 into QuickBooks Online. When a purchase is invoiced in Cin7, ml-connector reads the purchase record and creates or updates a bill in QuickBooks Online, mapped to the matching vendor and GL account. Supplier changes in Cin7 sync to vendor records in QuickBooks Online so that new suppliers are registered before their first bill arrives. Purchase orders in Cin7 that reach the INVOICE approach trigger a bill create in QuickBooks Online with line items mapped to the purchase order details. Changes in either system are polled on a schedule you define, typically aligned with your procurement workflow.
How ml-connector handles it
ml-connector stores the QuickBooks Online refresh token encrypted and refreshes the OAuth 2.0 access token before each request, capturing the new refresh token when the OAuth server rotates it every 24-26 hours. For Cin7, it stores the two API keys encrypted and presents them as headers on every request. Because both systems have no single shared event source, ml-connector polls both systems on your schedule: QuickBooks Online via the CDC endpoint for account and bill changes, and Cin7 via list endpoints for suppliers and purchases. When a new Cin7 supplier arrives, it creates or updates the matching QuickBooks Online vendor before any bill references that vendor. Purchase invoices are fetched from Cin7 with the Approach field set to INVOICE, mapped to QuickBooks Online bill line items with SyncToken concurrency control, and posted. Because QuickBooks Online webhook payloads are best-effort and may arrive out-of-order or duplicated, and Cin7 webhooks are unsigned, ml-connector uses polling as the source of truth and treats webhooks as a cache-invalidation signal. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A small-to-mid-market e-commerce and wholesale distributor runs Cin7 for inventory management and purchase orders and QuickBooks Online for accounting and tax reporting. Before the integration, the procurement team entered purchase invoices in Cin7 and the finance team manually keyed those invoices into QuickBooks Online, and supplier data had to be maintained in both systems. With Cin7 and QuickBooks Online connected, each invoice created in Cin7 flows into QuickBooks Online as a bill on the next sync, and new suppliers are automatically registered so that vendor names and account assignments stay consistent. The finance team no longer re-keys invoices, and the procurement team can be confident that their committed spend in Cin7 matches what the accountant sees in QuickBooks Online.
What you can do
- Sync Cin7 purchase invoices into QuickBooks Online as bills, mapped to the correct vendors and GL accounts.
- Keep QuickBooks Online vendors aligned with Cin7 suppliers so new suppliers are registered before their first bill.
- Map Cin7 purchase line items to QuickBooks Online bill line items with proper account and department allocation.
- Handle QuickBooks Online OAuth 2.0 token refresh and expiry, and Cin7 custom API key authentication.
- Poll on a schedule you control with retries, audit trails, and the ability to replay failed records.
Questions
- Which direction does data move between QuickBooks Online and Cin7?
- The main flow is from Cin7 into QuickBooks Online. Purchase invoices and supplier data move from Cin7 into QuickBooks Online, so bills and vendors stay synchronized. QuickBooks Online chart of accounts is read-only, and vendors created in QuickBooks Online do not push back to Cin7.
- How does the integration handle QuickBooks Online OAuth refresh tokens and Cin7 API keys?
- ml-connector stores both credential sets encrypted and refreshes the QuickBooks Online OAuth 2.0 access token before each request, capturing the new refresh token when Intuit rotates it every 24-26 hours. For Cin7, it presents the API key headers on every request and maintains the account ID and application key in encrypted storage.
- Why does ml-connector poll both systems if they both support webhooks?
- QuickBooks Online webhooks are best-effort and may arrive out-of-order or duplicated, and Cin7 webhooks are unsigned with no documented signing scheme. ml-connector uses polling as the source of truth to ensure every record is fetched exactly once, and treats webhooks as a cache-invalidation signal to accelerate syncs when events arrive.
Related integrations
More QuickBooks Online integrations
Other systems that connect to Cin7
Connect QuickBooks Online and Cin7
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started