What syncs
| Monigo object | QuickBooks object | Trigger |
|---|---|---|
| Customer | Customer | On first invoice sync (matched by email, created if not found) |
| Finalized invoice | Invoice | When an invoice is finalized |
| Finalized payout bill | Purchase (expense) | When a payout bill is finalized |
Connecting QuickBooks
- Go to Settings → Integrations → QuickBooks
- Click Connect
- Authorise Monigo in the QuickBooks OAuth flow
- Select your QuickBooks company
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)
How sync works
When a document is finalized in Monigo:- An outbox job is inserted into the database.
- The outbox publisher picks it up within 500 ms and enqueues an Asynq background task.
- 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.
- If the push fails, the task is retried up to 5 times with exponential backoff.
- On permanent failure (all retries exhausted), the organisation owner receives an email notification with the error details.
Customer resolution
Monigo resolves the QuickBooks customer for each invoice automatically:- Checks the internal customer mapping cache.
- If not cached, searches QuickBooks by the customer’s email address.
- If no match is found, creates a new QuickBooks customer.

