QuickBooks Desktop and Cin7 integration
QuickBooks Desktop is the most widely deployed on-premise accounting platform, but integrating it with modern cloud inventory systems requires bridging SOAP with REST. Cin7 Core manages inventory, orders, and accounting in the cloud. ml-connector acts as the SOAP endpoint that your QBWC agent polls, translating requests into REST calls against Cin7, so your QuickBooks file stays synchronized with your cloud inventory and accounting without manual re-entry. Since QuickBooks Desktop runs on Windows at your site and must be open for QBWC to work, ml-connector eliminates the manual step of exporting from Cin7 and re-keying into QuickBooks.
What moves between them
The integration pulls suppliers, purchases in all states (orders, invoices, receipts), and sales from Cin7 Core and writes them into QuickBooks Desktop as vendors, bills, purchase orders, and invoices. The direction is primarily Cin7 to QuickBooks to keep your locally-installed accounting current with cloud inventory. Accounts and line items map from Cin7 chart of accounts and products to QuickBooks accounts and items. The sync runs on the schedule you set in QBWC (typically every 5-15 minutes); ml-connector polls Cin7 on each QBWC call and translates the results into QBXML format. If Cin7 Omni webhooks are configured, ml-connector can also receive push events from Cin7 and trigger immediate QBWC polls rather than waiting for the next scheduled interval.
How ml-connector handles it
ml-connector listens for QBWC SOAP calls and responds with a session token on successful authentication. It then reads the ModifiedDateRangeFilter from the QBWC request to determine what to query from Cin7, polls Cin7 using the stored API key headers, and translates the REST responses (suppliers, purchases, invoices, sales) into QBXML envelopes that QuickBooks can import. Each API key is encrypted at rest. Because QuickBooks requires EditSequence (version counters) on update operations and has a roughly 60-second QBXML request timeout, ml-connector batches large result sets and paginates queries to Cin7. Purchase line items are mapped to QuickBooks items, supplier names to QuickBooks vendors, and Cin7 chart of accounts to QuickBooks accounts. If a Cin7 supplier or product does not exist in QuickBooks, the record is queued for manual review (creating new list items requires EditSequence and approval flow). QBWC operates sequentially, so ml-connector respects that and does not send parallel requests. If Cin7 is unreachable, ml-connector returns an error envelope to QBWC, triggering a retry on the next poll interval.
A real-world example
A wholesale distributor runs QuickBooks Desktop at the head office for accounting and payroll, and uses Cin7 Core for inventory management across three regional warehouses. Before the integration, the inventory team exported daily purchase orders and receipts from Cin7, emailed them to accounting, and the accountant manually entered them into QuickBooks. Month-end reconciliation meant re-checking purchase order quantities, receipt dates, and supplier allocations against Cin7 records. With QBWC and ml-connector, purchases and receipts from Cin7 flow into QuickBooks every 10 minutes without re-keying. The distributor can now close their books faster because supplier payables and inventory accounts are already synchronized.
What you can do
- Sync suppliers, purchase orders, invoices, and receipts from Cin7 Core into QuickBooks Desktop vendors, bills, and purchase orders, mapped to the correct accounts.
- Bridge SOAP-QBXML (QuickBooks Desktop) and REST-JSON (Cin7 Core) transparently, handling the session token handshake and API key encryption.
- Detect changes in Cin7 using ModifiedDateRangeFilter queries and push only new and changed records to QuickBooks on each QBWC poll interval.
- Respect QuickBooks QBXML request timeouts and EditSequence requirements by batching results and retrying failed record writes on the next cycle.
- Support both scheduled polling (5-15 minute QBWC intervals) and event-driven syncs via Cin7 Omni webhooks if configured.
Questions
- Why does QuickBooks Desktop need QBWC to integrate with Cin7 Core?
- QuickBooks Desktop is on-premise software running on Windows and has no direct REST API. Intuit provides QBWC, a local Windows agent that polls a remote SOAP endpoint you specify on a schedule. ml-connector runs that endpoint, translates QBWC requests into Cin7 REST calls, and returns QBXML envelopes that QuickBooks can import. The agent must run on a Windows machine where QuickBooks is installed and open.
- Does ml-connector create new vendors and items in QuickBooks automatically?
- No. Creating new vendors, items, and accounts in QuickBooks requires EditSequence negotiation and manual approval to avoid accidental duplicates. ml-connector maps existing Cin7 suppliers to existing QuickBooks vendors and products to existing items. If a supplier or item in Cin7 does not exist in QuickBooks, ml-connector queues it for review. You must create the corresponding list entry in QuickBooks first, or approve it through a manual workflow.
- How often does ml-connector pull data from Cin7 and push it to QuickBooks?
- ml-connector pulls from Cin7 each time QBWC calls, on the interval you set in the QBWC settings (minimum 1 minute, typical 5-15 minutes). If you use Cin7 Omni with webhooks enabled, ml-connector can also receive push events from Cin7 and trigger an immediate QBWC poll, so critical records like high-value invoices can sync faster than the regular schedule.
Related integrations
More QuickBooks Desktop integrations
Other systems that connect to Cin7
Connect QuickBooks Desktop and Cin7
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started