Exact Online and Gusto integration
Exact Online runs your accounting, purchasing, and inventory. Gusto handles payroll and employee data across multiple locations. When the two are connected, each payroll cycle updates your general ledger in Exact Online without manual re-entry. Employee records, pay amounts, and tax withholdings flow from Gusto into Exact Online, and labor costs post to the correct cost centers and GL accounts in your chart of accounts.
What moves between them
The main flow runs from Gusto into Exact Online. After each payroll run, ml-connector receives a webhook notification from Gusto that payroll has been processed, reads the employee compensation and payroll data, and posts labor cost journal entries into Exact Online's general ledger. Employee records including names, job titles, and location also flow from Gusto into Exact Online so your employee roster reflects payroll changes. Cost centers and departments are mapped first so every payroll journal line references a GL account and cost center that exists in Exact Online. Reference data such as earning types and deduction categories flow from Gusto to keep your payroll dimension reference tables current.
How ml-connector handles it
ml-connector stores both credential sets encrypted, handles the OAuth 2.0 refresh cycle for both systems independently since Exact Online tokens expire in 10 minutes and Gusto tokens expire in 2 hours, and tracks the division ID for each Exact Online customer from the /current/Me endpoint. On the Gusto side, it receives payroll webhooks at a registered HTTPS endpoint, verifies the HMAC-SHA256 signature using the subscription verification token, and reads the full payroll and employee data via REST. On the Exact Online side, it maps Gusto cost centers and employee locations to Exact Online cost centers and cost units, then constructs journal entries with matching GL account and cost center references. Because Exact Online webhooks for GL transactions may have a delay, ml-connector can also poll Exact Online's GL Accounts and Journal Entries endpoints on a schedule to detect any manual entries or corrections. Gusto's 200-request-per-minute rate limit is respected, and retries use exponential backoff. Every record carries a transaction ID for tracing and can be replayed if the GL posting fails.
A real-world example
A growing professional services firm with offices in the UK and Spain runs Exact Online for accounting and project management, and uses Gusto for payroll and employee benefits across both locations. Before integration, the accounting team manually exported payroll totals from Gusto every pay period, looked up the cost center for each location, and created journal entries in Exact Online to record labor expense. Reconciliation at month-end required cross-checking employee counts and payroll amounts by location against two systems. With Exact Online and Gusto connected, each payroll run automatically creates labor cost journal entries in the UK division and Spain division of Exact Online, allocated to the correct cost center for each office, and employee changes flow automatically so headcount is always in sync.
What you can do
- Post Gusto payroll labor costs into Exact Online's general ledger after each pay run, allocated to the correct cost center and location.
- Keep Exact Online employee records in sync with Gusto hires, terminations, compensation changes, and location transfers.
- Map Gusto employees and cost centers to Exact Online cost units and cost centers so payroll lands on the right GL accounts.
- Handle region-specific Exact Online URLs for Netherlands, Belgium, UK, Germany, France, Spain, and USA, with per-customer division ID management.
- Verify Gusto payroll webhooks with HMAC-SHA256, refresh both systems' OAuth tokens on schedule, and replay failed GL postings.
Questions
- Which direction does data move between Exact Online and Gusto?
- The main flow is Gusto into Exact Online. Payroll labor costs, employee records, and earnings data move from Gusto into Exact Online after each payroll run. Reference data such as cost centers and earning types are aligned in both directions so payroll allocations map to valid Exact Online GL accounts and cost centers. Exact Online's GL accounts and chart of accounts are read-only for payroll purposes.
- How does ml-connector handle the different OAuth token lifetimes for Exact Online and Gusto?
- ml-connector stores both OAuth credential sets encrypted and refreshes them independently. Exact Online tokens expire in 10 minutes, so the refresh cycle is checked on every API call to that system. Gusto tokens expire in 2 hours with a never-expiring single-use refresh token, so the refresh is performed when a call returns 401 or on a fixed schedule. Both refresh tokens are rotated on each refresh and must be stored securely.
- How does ml-connector map Gusto payroll data to the correct Exact Online cost centers and GL accounts?
- ml-connector first fetches the full chart of GL accounts and cost centers from the correct Exact Online division using the division ID. It maps Gusto employee locations to Exact Online cost centers and cost units, and maps Gusto earning types to pre-configured GL accounts so payroll lines land on the right accounts. The mapping is configurable per customer and validated on every payroll run to ensure no transactions post to invalid accounts.
Related integrations
More Exact Online integrations
Other systems that connect to Gusto
Connect Exact Online and Gusto
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started