ml-connector
Workday Financial ManagementAvalara

Workday Financial Management and Avalara integration

Workday Financial Management tracks spend and obligations across procurement and payable. Avalara calculates tax exposure across jurisdictions in real time. Connecting the two keeps your tax calculations in sync with your spend, surfaces tax obligations as they are incurred, and automates tax compliance during month-end close. When a purchase order or invoice is recorded in Workday, ml-connector sends it to Avalara for tax validation, retrieves the calculated tax, and records the tax liability back into Workday's general ledger.

How Workday Financial Management works

Workday Financial Management exposes suppliers, supplier invoices, purchase orders, GL accounts, payments, worktags, customers, and journal entries through two API surfaces. The SOAP/WWS endpoint at https://{hostname}.myworkday.com/ccx/service/{tenant}/Financial_Management/v46.1 supports full create, read, update, delete operations. The REST/JSON endpoint at https://{hostname}.workday.com/ccx/api/v1/{tenant}/ provides lighter read access. Authentication uses either an Integration System User with WS-Security UsernameToken credentials included on every request, or OAuth2 refresh tokens issued manually in the tenant and exchanged for one-hour access tokens. Workday exposes no native webhooks or change-data-capture stream, so polling with date-range filters is the only way to detect new or modified records. Recommended polling intervals are 15 to 60 minutes for transactional entities and daily for reference data. The platform enforces a minimum safe polling interval of 5 minutes to avoid tenant-level rate throttling.

How Avalara works

Avalara is a REST/JSON platform accessed at https://rest.avatax.com/api/v2 in production and https://sandbox-rest.avatax.com/api/v2 in the sandbox environment. It accepts HTTP Basic Authentication using either an Account ID and License Key (recommended for connectors because it does not expire on password change) or a Username and Password (which breaks if the user resets their password). The platform exposes transactions, companies, customers, items, tax codes, certificates, and addresses. API calls use OData-style filtering with $filter, $top, $skip, and $orderBy parameters. The service is pull-only, with no outbound webhooks or callbacks. Transactions are created via the CreateTransaction endpoint, which returns the full calculated tax response synchronously. Document codes act as idempotency keys, so reusing a committed transaction code returns a DocumentCodeConflict error. Committed transactions are irreversible and must be voided and recreated if corrections are needed. Rate limits are enforced with HTTP 429 responses; numeric thresholds are not publicly disclosed. List endpoints support a maximum page size of 1000 records. Addresses that fail validation will cause tax calculation to fail, so pre-validation is required.

What moves between them

Purchase orders, invoices, and journal entries flow from Workday to Avalara. When a new or updated transaction appears in Workday within the polling window, ml-connector extracts the supplier address, line items, and amount, constructs a CreateTransaction request to Avalara, and applies the returned tax rate and obligation flag back to the corresponding journal entry or AP holding account in Workday's general ledger. Addresses are pre-validated against Avalara's address resolution service before tax calculation to avoid silent failures. The flow runs in one direction: Workday to Avalara to Workday. Reference data such as tax codes and jurisdictions are also synchronized from Avalara to Workday at a slower cadence, typically daily, to keep the GL mapping current.

How ml-connector handles it

ml-connector stores Workday's Integration System User credentials (or OAuth2 refresh token) and Avalara's Account ID and License Key encrypted in the database. For Workday it polls the supplier invoice or journal entry list on your configured schedule, filtering by created or modified date. For each transaction in the window, it extracts the supplier address and line items. It first calls Avalara's address resolution endpoint to validate and standardize the address; if validation fails it marks the record as needing manual review rather than sending an invalid request. Once the address is confirmed, it constructs a CreateTransaction call with the vendor name, address, item codes, amounts, and customer exemption certificates if any are on file. Avalara calculates and returns the applicable tax, nexus status, and filing obligation in a single synchronous response. ml-connector then upserts a tax holding account or tax line item in Workday's GL using the SOAP API, referencing the original PO or invoice and the Avalara transaction ID for audit trail. The Workday OAuth2 token expires after one hour, so ml-connector refreshes it proactively. Avalara's rate limit errors return HTTP 429 without a Retry-After header, so ml-connector backs off with exponential jitter and retries up to three times before flagging the record. Every transaction is logged with the Workday GL posting status, Avalara transaction ID, and the tax amount applied, so failures can be replayed.

A real-world example

A mid-market technology distributor runs Workday Financial Management for procurement and AR/AP across three geographic regions. The business sells into multiple US states and has sales offices in Canada and the UK. Before integrating with Avalara, the finance team manually checked tax rates for each purchase and sale at month-end, often finding mismatches between what was invoiced and what was calculated. Sales orders would be recorded at an assumed tax rate, then recalculated at close, creating accrual adjustments. With Workday and Avalara connected, every purchase order and sales invoice is validated for tax liability as it is recorded. The tax amount flows into Workday's GL automatically, eliminating the month-end recalculation and the risk of filing penalties due to incorrect tax exposure.

What you can do

  • Read purchase orders and invoices from Workday and validate them against Avalara's real-time tax rates and jurisdiction rules.
  • Automatically record tax liability and nexus obligations into Workday's general ledger as transactions are created, eliminating manual month-end tax adjustments.
  • Pre-validate supplier and customer addresses against Avalara's address resolution service before sending transactions for tax calculation.
  • Handle Workday's OAuth2 token refresh and Avalara's Account ID and License Key credentials, with encrypted storage and automatic re-authentication.
  • Poll Workday on a configurable schedule aligned to your financial close and reconcile tax exposure in both systems with a full audit trail.

Questions

What records move between Workday and Avalara?
Purchase orders, supplier invoices, and journal entries flow from Workday to Avalara for tax calculation. The calculated tax rates, liability amounts, and jurisdiction-specific filing obligations flow back to Workday's general ledger. Avalara has no payment, vendor, or GL account objects, so the integration is read-from-Workday, calculate-in-Avalara, write-back-to-Workday.
Why does the integration validate addresses before sending transactions to Avalara?
Avalara's tax calculation fails silently if an address is invalid or incomplete. ml-connector calls Avalara's /addresses/resolve endpoint first, which standardizes and validates the address. If validation fails, the record is flagged for manual review rather than sending a bad request and losing the tax calculation.
How does ml-connector handle the fact that neither Workday nor Avalara have webhooks?
Both systems are pull-only, so ml-connector polls Workday's journal entry and invoice lists on a schedule you configure, typically every 15 to 60 minutes. It filters by created or modified date to pick up only new and updated records. Once the tax is calculated in Avalara, ml-connector writes the result directly back to Workday's GL, so you see the tax accrual within minutes of the initial posting.

Related integrations

Connect Workday Financial Management and Avalara

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started