ml-connector
Wave AccountingWorkday HCM

Wave Accounting and Workday HCM integration

Wave Accounting keeps your small business invoicing and expenses organized. Workday HCM manages your workforce, payroll, and general ledger. Connecting the two syncs your Wave invoices and transactions into Workday's accounting journals, mapped to the right GL accounts and cost centers. Your finance team gets a single source of truth for what Wave invoiced or expensed and where it landed in the ledger.

How Wave Accounting works

Wave Accounting provides a cloud GraphQL API at https://gql.waveapps.com/graphql/public secured by OAuth2 (2-hour access token expiry with refresh tokens, requires offline_access scope). The platform exposes businesses, customers, invoices, transactions, vendors, products, and sales taxes. Wave sends webhooks for invoice.created, invoice.updated, invoice.paid, payment.created, customer.created, customer.updated, transaction.created, product.created, and product.updated events, with HMAC-SHA256 signature verification (x-wave-signature header, 5-minute replay window). Failed deliveries are retried; ml-connector returns 200 on success and 500 to request a retry. Wave Pro subscription is required for API access.

How Workday HCM works

Workday HCM is a single-tenant cloud platform accessed via customer-specific URLs. It exposes three API surfaces: REST (https://{host}.workday.com/ccx/api/{service}/{version}/{tenant}/{resource}) for HCM and staffing data only, SOAP (https://{host}.workday.com/ccx/service/{tenant}/{ServiceName}/{version}) for full CRUD including accounting and procurement, and RaaS for custom report extraction. REST API uses OAuth2 with 60-minute access token expiry and long-lived refresh tokens; SOAP uses WS-Security with Integration System User credentials. Workday does not support webhooks, so integrations poll on schedule with minimum 5-minute intervals. HTTP 429 with Retry-After header indicates rate limits. GL accounts, accounting journals, cost centers, and suppliers are accessible only via SOAP.

What moves between them

Wave invoices and transactions flow into Workday as accounting journal entries. When ml-connector receives a Wave webhook for invoice.created, invoice.paid, or transaction.created, it extracts the amount, date, description, and vendor, maps the vendor to a Workday supplier record, and posts the entry to the appropriate GL account in Workday's accounting journal. Customers from Wave map to suppliers in Workday for reconciliation. The flow is one-way: Wave to Workday. Reference data such as GL accounts and suppliers are aligned upfront so every posting references valid Workday dimensions.

How ml-connector handles it

ml-connector stores Wave and Workday credentials encrypted and manages OAuth token refresh for both systems independently: Wave tokens (2-hour expiry) are refreshed proactively, and Workday REST tokens (60-minute expiry) are refreshed on 401 errors. Wave webhooks arrive synchronously at the registered endpoint; ml-connector validates the HMAC-SHA256 signature, acknowledges with 200, and queues the transaction for posting. Posting to Workday requires SOAP (REST HCM API does not expose GL accounts), so ml-connector translates the GL account and supplier mappings into SOAP Accounting_Journals calls. If a Wave customer or vendor does not match a Workday supplier, the posting is queued for review rather than dropped. Rate limits from Workday (HTTP 429) trigger exponential backoff with jitter. Every invoice, transaction, and posting carries a full audit trail and can be replayed if a network error or validation failure occurs.

A real-world example

A small professional services firm uses Wave Accounting to manage client invoices and track operating expenses. The firm also uses Workday HCM for payroll and financial accounting. Each month, the accountant was manually exporting invoices from Wave and re-entering them into Workday's GL so the financial statements matched. With Wave and Workday HCM connected, invoices and expense transactions from Wave flow automatically into Workday's accounting journal, posted to the correct GL accounts and mapped to the clients (vendors) who generated them. Month-end close becomes a reconciliation task instead of a data entry task, and the GL is always current.

What you can do

  • Post Wave invoices and transactions into Workday accounting journals, mapped to the correct GL accounts and cost centers.
  • Map Wave customers and vendors to Workday suppliers for reconciliation and audit trails.
  • Validate GL accounts and suppliers in Workday before posting to prevent posting to invalid dimensions.
  • Handle OAuth2 token refresh for Wave (2-hour expiry) and Workday REST (60-minute expiry) automatically.
  • Receive Wave invoices and transactions via webhook, validate HMAC-SHA256 signatures, and queue postings with a full audit trail.

Questions

Which direction does data move between Wave Accounting and Workday HCM?
Data flows from Wave into Workday. Wave invoices, payments, and transactions are posted as accounting journal entries in Workday, mapped to GL accounts and suppliers. Workday GL accounts and supplier records are not written back to Wave. The sync keeps Wave source transactions tied to Workday journal postings for reconciliation.
How does ml-connector handle Wave's webhook delivery and Workday's lack of webhooks?
ml-connector receives Wave invoices and transactions via webhook with HMAC-SHA256 signature verification, acknowledges with HTTP 200, and queues the posting for delivery to Workday. Since Workday does not support webhooks, ml-connector polls Workday on a schedule to validate GL accounts and suppliers, ensuring every posting lands on valid dimensions before it is processed.
What happens if a Wave customer or vendor does not exist as a Workday supplier?
ml-connector flags the transaction for review rather than dropping it. The record is queued with a note indicating the missing supplier, and the finance team can map the Wave vendor to an existing Workday supplier or create a new supplier record. Once the mapping is resolved, the posting is retried automatically.

Related integrations

Connect Wave Accounting and Workday HCM

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

Get started