Workday Financial Management and Expensify integration
Workday Financial Management handles your general ledger, AP, and cash. Expensify handles employee and corporate card expenses. When you connect the two, approved expense reports from Expensify post into Workday's general ledger as journal entries, allocated to the cost centers and GL accounts your team has set up. Employee reimbursements and corporate card reconciliation move from spreadsheet to automaton.
What moves between them
The main flow runs from Expensify into Workday Financial Management. When an expense report reaches Approved status in Expensify, ml-connector reads it and the underlying expenses, maps each expense category and tag set to a Workday GL account and cost center, then submits a journal entry into Workday's general ledger. The journal entry groups expenses by GL account and cost center, with the corporate card bank account as the offsetting entry. Employee reimbursement reports (paid via check or ACH) post to an A/P liability account instead. Reads happen on a schedule you set, typically daily or after payroll cycles, since Expensify does not push events. No data flows back to Expensify.
How ml-connector handles it
ml-connector stores both credential sets encrypted and bridges the two API styles: it authenticates to Workday using either SOAP WS-Security (Integration System User) or REST OAuth2 depending on the operation, and to Expensify using the API key pair. Because Workday Financial Management exposes no webhooks, ml-connector polls the Expensify API on a schedule you set, typically daily or post-payroll, and filters by report status and date range. For each Approved report, it reads the underlying expenses and applies the expense category to GL account mapping and the tag set to cost center mapping. Complex journal entry submission goes through Workday's SOAP endpoint, which fully supports journal creation with GL accounts, amounts, and dimensions in a single operation, while the REST endpoint has narrower breadth. Tags on the Expensify policy must match cost center IDs in Workday; a missing cost center tag causes that expense to route to a suspense GL account pending manual review. Expense reports in Expensify are read-only, so ml-connector never modifies them, and failed Workday submissions are tracked in the audit log so they can be retried or inspected. Rate limits on both sides are respected, and the integration handles temporary outages by backing off and retrying.
A real-world example
A mid-sized professional services firm runs Workday for finance and Expensify for employee expense management across three offices. Before the integration, the accountant downloaded approved expense reports from Expensify each week, manually coded them to the correct GL accounts and cost center codes for each office, then batch-posted them to Workday's general ledger. With Workday and Expensify connected, each week's approved reports post automatically to the GL, allocated by the office tag and expense category, and the manual coding step is gone. Month-end close starts with expense accruals already recorded.
What you can do
- Post Expensify approved expense reports to Workday Financial Management's general ledger as journal entries grouped by GL account and cost center.
- Map Expensify expense categories to Workday GL accounts and tags to cost center (Worktag) dimensions, with fallback to a suspense account for unmapped expenses.
- Authenticate Workday via SOAP WS-Security (Integration System User) or REST OAuth2 depending on the operation, and Expensify via API key pair.
- Poll Expensify on a daily or post-payroll schedule without webhooks, filtering by report status and date range, and respect rate limits on both sides.
- Track submitted journal entries and failed submissions in the audit log so reports can be replayed or investigated if a Workday submission fails.
Questions
- Which direction does data move between Workday Financial Management and Expensify?
- The main flow is Expensify into Workday Financial Management. Approved expense reports and their underlying expenses move from Expensify into Workday as journal entries allocated to the correct GL accounts and cost centers. No data flows back to Expensify, which remains the source of truth for expense reports.
- How does the integration map Expensify categories and tags to Workday GL accounts and cost centers?
- Each Expensify expense category is configured with a GL account code in the expense policy. Each Expensify tag (project, class, cost center) is matched to a Workday Worktag cost center ID. When a report is submitted, ml-connector groups expenses by category and tag, looks up the GL account and cost center, and posts a single journal entry per group to Workday's general ledger with both dimensions.
- What happens if an Expensify expense has a tag that does not match a Workday cost center?
- The expense routes to a suspense GL account and the transaction is recorded in the audit log. The finance team can then manually assign the correct cost center in Workday, or adjust the tag in Expensify and request a replay of that report through ml-connector.
Related integrations
More Workday Financial Management integrations
Other systems that connect to Expensify
Connect Workday Financial Management and Expensify
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started