Accounting

Your books stay in lockstep. Without the re-keying.

Connect QuickBooks Online or Xero once. Every customer-order shipment posts as an invoice. Every supplier bill records as a bill. Every payment reconciles. The MRP runs the shop. The accounting tool runs the ledger. Neither asks you to type the same number twice.

TuringDock
Invoice OC-2026-00081
Lakeshore IndustriesNet 30
50 × PCB-100 @ $48$2,400.00
Total$2,712.00
Shipped 14:32 · Tax HST_ON 13%
QuickBooks
Invoice 1142
✓ Pushed
Lakeshore IndustriesNet 30
PCB-100 (50)2,400.00
HST_ON312.00
Balance due2,712.00
Sync token 0 · Created via TuringDock

What we push to your books

A full per-event list of what TuringDock posts to QuickBooks Online or Xero. Built to the depth a NetSuite, SAP Business One, or Acumatica clears, so the inventory account balance in your books matches what TuringDock says you have, in real time, with a full audit trail per event.

AR & AP layer (live with the integration)

The records most QBO/Xero integrations stop at. Customers, vendors, invoices, bills, payments, sales tax.

TuringDock eventPosts to QBO/XeroAccounts touched
Customer created/editedCustomer record
Supplier created/editedVendor record
Inventory item created/editedInventory item with unit costInventory Asset
Customer-order shipment recordedInvoice with line items + sales taxDR Accounts Receivable / CR Revenue + Sales Tax Payable
Customer payment recordedReceive Payment applied to invoiceDR Undeposited Funds (or Bank) / CR Accounts Receivable
Supplier invoice recordedBill with line items + taxDR Expense or Inventory / CR Accounts Payable
Supplier payment recordedPay Bill applied to billDR Accounts Payable / CR Bank

Perpetual inventory ledger (the industry-standard MRP bar)

Every inventory-affecting event posts a journal entry, in real time. This is what makes your inventory value in QBO/Xero match what TuringDock says you have. Same depth a NetSuite, SAP Business One, or Acumatica posts.

TuringDock eventPosts to QBO/XeroAccounts touched
PO physically received at the dockJournal entry, immediateDR Inventory / CR Goods Received Not Invoiced (GRNI)
Supplier bill arrives + matches the receiptBill + clearing JE (3-way match)DR GRNI / CR Accounts Payable (variance to Purchase Price Variance)
Customer shipment leavesJournal entry paired with the invoice pushDR COGS / CR Inventory
Production task marked completeJournal entry, build cost roll-upDR Finished Goods / CR Raw Materials + (post-MVP) CR Labor Accrual
Cycle count variance appliedAdjustment journal entryDR/CR Inventory Adjustment Expense or Income
Landed cost (freight/duty/customs) booked to a receiptAllocation journal entry, pro-rata by line valueDR Inventory / CR Landed Cost Clearing
Standard unit cost changed on an item with on-handRevaluation journal entryDR/CR Inventory ↔ Inventory Revaluation Gain/Loss

Account mapping: one-time setup, transparent forever

After OAuth, Alan walks you through mapping each role above to the right account in your QuickBooks or Xero chart of accounts. Inventory Asset, GRNI accrual, COGS, Purchase Price Variance, Inventory Adjustment, Landed Cost Clearing, the lot. Pick from your real accounts in a dropdown; for any account you don't have yet, Alan offers to create it. The mapping persists; you never re-do it.

Every push is idempotent. Re-running a sync never double-posts. Failed pushes retry automatically and surface in the in-product activity log with the provider's error verbatim and a one-tap Retry.

Sync log + last-sync visibility, in-product

Settings → Integrations shows the last successful sync timestamp, a failed-event count if any need attention, and the last 50 sync events as an activity feed: timestamp, status icon, what was posted, the external reference in QBO/Xero, and the provider's error message if it failed. Auditable.

How it works

Connect in 10 seconds

Open Settings → Integrations, tap Connect QuickBooks (or Xero), authorize on the provider's OAuth screen, you're back in TuringDock. Total hands-on time is the one click. The connection stores an encrypted refresh token; access tokens roll automatically.

Right after you land back in TuringDock, Alan asks one question: which tax code in QuickBooks does your default 13% HST map to? Pick it from a dropdown of your real QBO tax codes. That mapping persists; every future invoice uses it without prompting you again.

Shipments → invoices, automatically

The instant you mark a customer-order shipment in TuringDock, Alan pushes an invoice to your accounting tool. Customer matched (or created if new), line items with HST applied, your branding, the same invoice number TuringDock printed on the PDF. Your accountant sees the same record you do.

The push happens inline with the shipment write, so by the time the packing-slip PDF is on screen, the invoice is in QuickBooks. A reconcile cron catches anything that failed (typically tax-code mismatches) and retries with one-tap fix.

Bills and payments flow both ways

Record a supplier invoice in TuringDock, it lands as a bill in QuickBooks with the supplier matched. Record a customer payment in TuringDock, the matching invoice flips to paid in QuickBooks. And if your bookkeeper marks an invoice paid inside QuickBooks first, a daily reconcile pass pulls that back and marks the customer order paid in TuringDock.

One ledger. Two ways to update it. No spreadsheet of "things to re-key on Friday."

What we never touch

Bank feeds, payroll, GST/HST remittance, year-end filings, journal entries, chart-of-accounts edits, the trial balance. Your accountant's tools stay their tools; TuringDock pushes the transactions that originate in the shop floor and steps out of the way.

We're not trying to replace QuickBooks. We're trying to make sure you never have to copy a number from your MRP into your accounting tool by hand again.

Why this is the new age of MRP

Legacy MRPs treat accounting as a separate world. You issue an invoice in the MRP, you re-key it in QuickBooks. You record a supplier bill in QuickBooks, you re-key it in the MRP. The two systems drift until Friday afternoon and then someone reconciles by hand.

TuringDock pushes the shop-floor transactions into your accounting tool the moment they happen. The MRP owns workflow state. The accounting tool owns the ledger. Both stay current with no human in the loop.

Build what's next. Leave the MRPing, and the re-keying, to our AI.

Build what's next.

Leave the MRPing to our AI. Sign up free, set your shop up in an afternoon.

Get started for free

Common questions

Which accounting tools does TuringDock integrate with?
QuickBooks Online and Xero. Both connect via standard OAuth, store encrypted refresh tokens, and roll access tokens automatically. One or the other per workspace; not both at once. If your accountant uses something else (Sage, FreshBooks, Wave) we'd like to hear from you at hello@turingdock.com so we can prioritize the next provider.
What gets pushed, and when?
Customer-order shipments push as invoices the moment you record the shipment. Supplier bills you record in TuringDock push as bills. Customer payments you record push back to the matching invoice. Bookkeeper-side payments recorded in QuickBooks (or Xero) flow back into TuringDock on a daily reconcile pass and mark the customer order paid. Inventory adjustments and stock movements stay inside TuringDock; the accounting tool only sees the financial transactions.
How does tax mapping work?
When you finish OAuth, Alan asks one question: which QuickBooks tax code does your TuringDock default tax rate map to? You pick from a dropdown populated from your real QBO/Xero tax codes (HST_ON, HST_BC, GST_AB, Out of scope, etc.). That mapping persists per connection; every future invoice uses it without re-prompting. Tax-exempt customers in TuringDock can map to a separate code (typically Out of scope) so the push knows to use it for them.
What happens if a push fails?
The provider's error message is captured verbatim and surfaced in Settings → Integrations with a one-tap Retry. Most failures are tax-code or new-entity mismatches that fix themselves once you've created the missing record in QuickBooks/Xero. A nightly reconcile cron also retries failed events automatically. Nothing is lost; the customer-order or shipment record in TuringDock holds the source of truth, the push is just a copy.
Is the connection secure?
OAuth tokens are encrypted at rest with AES-256-GCM using a server-side key separate from the database password. Access tokens are short-lived (60 minutes for QBO, 30 for Xero); refresh tokens rotate on every use. Disconnect drops the tokens immediately and flips the connection to inactive; reconnect re-runs OAuth and resumes pushing on the same connection record. We follow the same security pattern as our Slack integration.
When is this live?
In beta with the first cohort of customers as of May 2026; full general availability lands in the next release. If you want early access while we're tuning the tax-mapping UX, reach out at hello@turingdock.com.
Does this meet the industry-standard MRP bar for inventory ledger accuracy?
Yes. TuringDock posts a journal entry to QuickBooks or Xero for every inventory-affecting event: PO receipts (DR Inventory / CR GRNI), supplier bill 3-way match, COGS recognition at customer shipment (DR COGS / CR Inventory), production completions (DR Finished Goods / CR Raw Materials + Labor), cycle count adjustments, landed cost allocations (freight, duty, customs), and inventory revaluations on standard-cost changes. Your inventory account balance in QBO/Xero matches what TuringDock says you have, in real time, with a full audit log per event. Same depth NetSuite, SAP Business One, or Acumatica post. The complete list is in the table above; the in-product sync log shows every push with timestamp + status + provider reference.
What if a customer or accountant wants to review what we sync before signing?
Send them this page. The 'What we push to your books' table above is the authoritative list of every entity and journal entry. Every accounting integration we ship goes on the public marketing site for review; no hidden behaviour, no surprise postings. The in-product activity log is the same list, scoped to your workspace.

Last updated 2026-05-26 (beta with the first cohort of customers; full QBO + Xero push lands in the next release)