Exact Online and Expensify integration
Exact Online is your accounting and ERP backbone. Expensify is your employee expense management tool. Connecting them keeps employee spend synchronized with your general ledger without manual re-entry. Approved expense reports and corporate card transactions flow automatically into Exact Online's journal entries, mapped to the correct GL accounts and cost centers. Monthly reconciliation becomes verification rather than reconstruction.
What moves between them
Expense reports move one direction: from Expensify into Exact Online. After an expense report is approved in Expensify, ml-connector polls for the report and its line items, then creates a journal entry in Exact Online's general ledger. Each expense line is mapped to an Exact Online GL account based on the Expensify category and cost center tags. The integration polls Expensify on a daily schedule by default and posts all approved reports from the prior day into Exact Online.
How ml-connector handles it
ml-connector stores the Expensify API key pair and the Exact Online OAuth credentials encrypted. On the Expensify side, it polls the integration endpoint for approved reports and filters by date range and status. It maps Expensify expense categories to Exact Online GL account IDs by a configuration table you provide, and it reads the cost center or project tag from each expense to populate Exact Online's cost center dimension on the journal line. On the Exact Online side, it determines the correct regional endpoint (Netherlands, Belgium, UK, Germany, France, Spain, or USA) from the division ID, refreshes the OAuth token when it is within 2 minutes of expiry, and validates that each GL account and cost center exist before posting. Expensify has no test environment, so ml-connector includes a dry-run mode that constructs the journal entry but does not post it. If a GL account or cost center does not exist in Exact Online, the journal entry is quarantined and flagged in the audit log for manual review. Every transaction carries the original Expensify report ID and transaction ID for traceability.
A real-world example
A mid-sized professional services firm uses Exact Online for accounting and cost center tracking across three regional offices, and Expensify for employee expense reports and corporate card reconciliation. Before the integration, the accounting team exported approved Expensify reports twice a week and spent 4 to 6 hours manually re-keying expense lines into Exact Online's journal entry screen, mapping categories to GL accounts and assigning cost centers by office. Reconciliation at month-end meant chasing discrepancies between the expense system and the ledger. With Expensify and Exact Online connected, each approved report posts automatically to the correct GL account and cost center, the audit trail preserves the original Expensify report and line-item IDs, and the accounting team spends the freed time on analysis instead of data entry.
What you can do
- Post approved Expensify expense reports into Exact Online's general ledger as journal entries, mapped to GL accounts and cost centers.
- Map Expensify expense categories to Exact Online GL account codes via a configuration table.
- Track expense tags (project, cost center, class) and map them to Exact Online cost center and cost unit dimensions.
- Authenticate Expensify with API key pairs and Exact Online with OAuth 2.0 across any region and division.
- Poll Expensify on a schedule, validate GL accounts and cost centers in Exact Online before posting, and quarantine entries that reference missing dimensions.
Questions
- Which direction does data move between Expensify and Exact Online?
- Expense reports and transactions move one way: from Expensify into Exact Online. ml-connector reads approved Expensify reports and posts them as journal entries in Exact Online's general ledger, mapped to the correct GL accounts and cost centers. Exact Online does not write data back into Expensify because Expensify is expense-management only and does not expose a write endpoint for GL account or cost center master data.
- What happens if an Expensify expense references a GL account or cost center that does not exist in Exact Online?
- ml-connector validates each GL account and cost center against Exact Online before posting the journal entry. If a reference is missing, the entry is quarantined and flagged in the audit log with the Expensify report ID and the missing dimension name, so your accounting team can review and either add the dimension to Exact Online or correct the category mapping in Expensify. Once the dimension exists, the entry can be replayed.
- How does the integration handle Exact Online's regional endpoints and division IDs?
- ml-connector accepts the division ID and region (Netherlands, Belgium, UK, Germany, France, Spain, or USA) as configuration per customer. It constructs the correct base URL for that region, fetches a current OAuth token, and refreshes it before expiry. Because Expensify has no test environment, ml-connector includes a dry-run mode so you can validate category-to-GL mappings before posting live entries.
Related integrations
More Exact Online integrations
Other systems that connect to Expensify
Connect Exact Online and Expensify
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started