Integrations cookbook: accounting

Recipes for wiring Zoho Books, QuickBooks, and Xero to the platform.

2 min readLast updated 13 Apr 2026

Most tenants keep their book of record in Zoho Books, QuickBooks, or Xero. The platform pushes invoices, bills, payments, and journals; fetches payment confirmations back.

Before you start

  • Decide which system is book-of-record. Usually the accounting tool (Zoho / QB / Xero). The platform becomes the operational source.
  • Sync the CoA: platform accounts map to accounting tool accounts. See chart of accounts.
  • Map tax codes: platform tax codes map to accounting tool tax rates.
  • Map customers / vendors: match on tax ID or name. Unmatched entities create new on first sync.

Zoho Books

  • OAuth from /app/admin/integrations → Zoho.
  • Scopes: invoices, bills, contacts, items, chart of accounts, taxes, payments.
  • Organisation id picker if you have multi-org.
  • Sync cadence: real-time for new invoices / bills; 5-min for status changes; nightly reconciliation.

Known pitfalls

  • Zoho rate limits: the platform throttles to their documented limit. Heavy backfills run overnight.
  • Item-level vs line-level tax: keep line-level in sync with Zoho setting.
  • Round-off differences: Zoho and the platform round slightly differently on multi-line invoices — the platform posts a round-off line automatically if the diff is ≤ 0.05.

QuickBooks Online

  • OAuth from Intuit.
  • Scopes: accounting.
  • Company id picker for multi-company.
  • Sync cadence: real-time via Intuit webhooks + nightly reconciliation.

Known pitfalls

  • US edition differs from global: tax handling and 1099 tracking are US-specific.
  • "Class" dimension: if you use classes, map the platform's cost centres to QB classes.
  • Multi-currency requires QBO Plus or above.

Xero

  • OAuth from Xero.
  • Scopes: accounting transactions, contacts, accounting settings.
  • Organisation picker for multi-org partnerships.
  • Sync cadence: real-time via Xero webhooks + nightly reconciliation.

Known pitfalls

  • Xero's bank-rec flow is opinionated: always reconcile inside Xero, not the platform.
  • Tracking categories: similar to QB classes; map cost centres here.
  • BAS / GST return runs in Xero; the platform provides input but doesn't file.

Common patterns

Avoid double-posting

Each platform document posts to accounting with a unique external reference. Attempts to resync an already-posted document are no-ops. Audit each resync event.

Handle failures

Sync failures appear in /app/admin/integrations/health. Common causes: expired OAuth (reauth), rate limit (will retry), validation error (data mismatch — fix source).

Backfills

On new setup, use the backfill wizard: select date range, dry-run first, then commit. Backfills respect rate limits and usually run 4–24 hours for a year of data.

Divergence handling

If someone edits in the accounting tool directly, the next sync pulls the change back. Conflict policy: last-writer-wins for most fields; payments are additive (never overwritten).

Was this article helpful?