Accounting Integrations

Two-way QuickBooks Online sync for invoices, payments, credit notes, customers, items, vendors, bills and purchase orders — with sales tax and currency carried across.

How Solidlio helps

Solidlio connects to QuickBooks Online over OAuth and pushes each document as it happens — invoice, payment, credit note, bill, purchase order — carrying the line amounts you actually stored, the transaction currency, and an explicit sales tax block with a per-line tax code. Every record is linked by a stored mapping between its Solidlio id and its QuickBooks id, so a re-sync updates rather than duplicates, and an invoice that already exists in QuickBooks is refused rather than posted twice. Work runs on a background queue with retries; a configuration problem stops the job immediately with a message naming what to fix, instead of failing quietly five times.


Capabilities

Capabilities — reference table
CapabilityWhat it does
Invoice syncPushes invoices with line items, refusing a second push of an already-synced invoice
Sales taxSends an explicit tax block with a per-line tax code, mapped to your QuickBooks tax code
Multi-currencyStamps the transaction currency on invoices, credit memos, payments, bills and purchase orders
Payment syncPosts payments net of refunds; a refund after the push restates the receipt, a full refund voids it
Credit applicationsMirrors a credit note applied to an invoice as the $0 linking payment; a reversal voids it
Credit notesSyncs credit memos in both directions
Chart-of-accounts mappingMaps income, COGS and per-expense-category slots to your QuickBooks accounts
Entity mappingLinks customers, items and vendors, with name-matched suggestions and one-click confirmation
Client provisioningImports a QuickBooks customer as a managed-client tenant, claiming the id so retries can’t duplicate
Background queueDeduplicates per entity and direction, retries transient failures, discards terminal ones
Connection healthSurfaces a “reconnect required” state instead of reporting Connected while every sync fails

How it works

  1. Connect — complete Intuit’s OAuth consent. Tokens are encrypted at rest, refreshed automatically, and refreshed under a lock so concurrent jobs cannot invalidate each other’s refresh token.
  2. Map your accounts — income, COGS, expense categories, and the sales tax code Solidlio should charge against.
  3. Link existing records — match customers, items and vendors by name from the suggestions list; rename or unlink any mapping later.
  4. Push — invoices, payments (including card payments through Stripe), credit notes, approved bills and purchase orders queue as they happen; a 4-hourly job catches anything the event path missed; or push a specific invoice on demand.
  5. Watch — sync logs record every run with counts and status; the queue view shows what is pending, and failures name what to fix.

Scope and honest limits

Scope and honest limits — reference table
ObjectTo QuickBooksFrom QuickBooks
Customer●● updates the linked record
Invoice + lines●● updates the linked record
Payment●● updates, or creates against a linked invoice
Credit note●● updates or creates
Product / item●●
Vendor●● updates the linked record
Vendor bill●● refreshes a link; bulk import creates
Purchase order●● refreshes a link; bulk import creates
Invoice void●a QuickBooks delete/void unlinks the record
Payment refund●receipt restated to the net amount
Credit applied●$0 payment links memo and invoice; reversible
  • QuickBooks Online is the only accounting system that ships. Xero is on the roadmap and cannot be connected. Sage is not implemented.
  • Inbound bills and purchase orders refresh existing links from a webhook; the bulk importers create new records.
  • Refunds restate the QuickBooks receipt to the net cash retained (no separate refund receipt); a fully refunded payment is voided.
  • A taxed invoice requires a mapped sales tax code and fails with a clear message without one.
  • Accounting is an MSP-portal feature. There is no organization or customer portal surface.

Compliance and audit

  • OAuth tokens are encrypted at rest and never displayed again.
  • Connect, disconnect, sync, mapping and account-mapping changes are written to the audit trail through a redacting writer.
  • Every sync run is recorded with entity, direction, counts and status.
  • Every route requires organization administrator or above; the webhook is authenticated by signature rather than by role.

Plans and access

Availability depends on your plan, role and account permissions. Capacity limits and service terms apply. Compare current plans and integration requirements, or ask us about your setup.

See this working on a real account.

Book a walkthrough and we will run this capability against your own clients, devices and tickets.

Book a demo All features

A walkthrough focused on the IT work you manage.