Skip to main content
The QuickBooks integration pushes your Monigo billing data to QuickBooks Online for accounting and reconciliation. Sync is asynchronous and automatic — no manual exports required.

What syncs

Monigo objectQuickBooks objectTrigger
CustomerCustomerOn first invoice sync (matched by email, created if not found)
Finalized invoiceInvoiceWhen an invoice is finalized
Finalized payout billPurchase (expense)When a payout bill is finalized
VAT is included as a summary line on QB invoices when VAT is enabled on the invoice. Withholding tax (WHT) is recorded as a negative deduction line on QB expenses when WHT is enabled on the payout bill.

Connecting QuickBooks

  1. Go to Settings → Integrations → QuickBooks
  2. Click Connect
  3. Authorise Monigo in the QuickBooks OAuth flow
  4. Select your QuickBooks company
Once connected, the page shows your Company ID and connection date.

Enabling sync

After connecting, open the Sync Settings card on the integration page and toggle the document types you want to push:
  • Sync invoices — pushes finalized collection invoices to QuickBooks as QB Invoices
  • Sync payout bills — pushes finalized payout bills to QuickBooks as QB Purchases (expenses)
Click Save Settings to apply. Toggles can be changed at any time without affecting data already synced.

How sync works

When a document is finalized in Monigo:
  1. An outbox job is inserted into the database.
  2. The outbox publisher picks it up within 500 ms and enqueues an Asynq background task.
  3. The worker resolves the QuickBooks customer (by email lookup, or creates a new one), builds the QB document, and pushes it via the QuickBooks Online API.
  4. If the push fails, the task is retried up to 5 times with exponential backoff.
  5. On permanent failure (all retries exhausted), the organisation owner receives an email notification with the error details.
Sync only runs for document types that have their toggle enabled at the time the task executes.

Customer resolution

Monigo resolves the QuickBooks customer for each invoice automatically:
  1. Checks the internal customer mapping cache.
  2. If not cached, searches QuickBooks by the customer’s email address.
  3. If no match is found, creates a new QuickBooks customer.
The resolved mapping is cached so subsequent invoices for the same customer skip the lookup.

Disconnecting

Go to Settings → Integrations → QuickBooks → Disconnect. This removes the OAuth tokens and stops all future syncs. Existing data already pushed to QuickBooks is not deleted or modified. To reconnect, click Connect again and complete the OAuth flow.