Skip to content

Accounting sync

QuickBooks Online, properly.

Push invoices, pull payments, reconcile nightly. UK VAT computed server-side from per-line tax codes — no hand-typed tax lines, no rounding drift. The accounting platform stays the source of truth for receivables; OpsMerge stays the source of truth for the work.

  • OAuth, no scraping

    Native OAuth with Intuit and FreeAgent (Xero coming soon). Per-realm token storage. Reconnect adopts orphans by name and rate so a re-link is not a reset.

  • UK VAT done right

    Per-line tax codes drive server-side VAT calculation in QuickBooks Online. We never send hand-typed tax lines — the accounting platform owns the maths.

  • Webhook payment pull

    HMAC-verified inbound webhooks materialise payments back into the OpsMerge ledger. A daily reconciliation worker catches anything the webhook missed.

QuickBooks Online connection, per-realm throttling, daily reconciliation status, payment ledger.

How it flows

Invoices out, payments in, reconciliation overnight.

  • Invoice issued in OpsMerge — pushes to QuickBooks Online with line items, tax codes, customer reference.
  • Customer pays you the way they always have. The payment lands in QuickBooks Online.
  • QuickBooks Online fires a payment webhook — OpsMerge verifies the HMAC, materialises the payment row in the local ledger, marks the invoice paid.
  • Daily reconciliation worker pulls the previous 24 hours of payments to catch any webhook drops.

UK VAT

Tax computation lives in the accounting platform.

  • Each invoice line carries a tax_code_id that maps to a QuickBooks tax code.
  • We never send TxnTaxDetail.TaxLine — UK QBO computes VAT server-side from the per-line code.
  • Tax codes are different from tax rates in the QBO data model; OpsMerge models both correctly.
  • Default tax codes load via helper so every code path inserting an invoice line carries the right code.

Reliability under throttling

Token-bucket per-realm governor. Semaphore caps concurrent calls per QuickBooks tenant. Retry-After honoured on 429s. Exponential backoff with jitter on 5xx. 4xx surfaces immediately so the operator can fix bad data rather than waiting on a silent retry loop.

Disconnect & reconnect

Disconnect cleanly wipes the QuickBooks breadcrumb fields. Reconnect adopts existing items by name and rate, with a deduplication migration cleaning up legacy duplicates — so a re-link is not a reset.

FreeAgent, same pattern

MSPs who run their books in FreeAgent get the same flow: native OAuth, invoice push with VAT-aware tax codes, payment pull back into the OpsMerge ledger, and a watermark-based sync that keeps the two sides reconciled. Push per-invoice on demand or as part of the billing run.

What we deliberately do not do

OpsMerge does not become your accountant. We do not produce statutory accounts, run year-end, or replace the accounting platform. We push invoices and reconcile payments because the day-to-day handoff is broken in most MSP stacks; everything else stays in QuickBooks Online where your accountant already works.

Stop re-keying invoices into your accountant's tool

OpsMerge is a product of Brindleford Technologies Ltd, company number 16871436, registered in England and Wales.