ml-connector
Workday Financial ManagementCoupa

Workday Financial Management and Coupa integration

Workday Financial Management handles your general ledger and accounts payable. Coupa handles procurement and supplier management. Connecting the two closes the gap between what you ordered, what arrived, and what you owe. Supplier records stay in sync in both directions, Coupa invoices flow into Workday as AP documents aligned to the correct GL accounts and cost centers, and Workday Financial Management and Coupa can be reconciled in a single source of truth. ml-connector handles the two different API styles and the fact that Workday requires polling rather than webhooks.

How Workday Financial Management works

Workday Financial Management exposes suppliers, purchase orders, supplier invoices, payments, GL accounts, journal entries, and worktags through two API surfaces. SOAP/XML at the primary endpoint supports full CRUD operations on financial entities and requires an Integration System User account and WS-Security UsernameToken authentication sent with each request. REST/JSON at the secondary endpoint offers lighter reads with OAuth2 refresh-token flow. Workday has no native webhooks for transactional events, so all reads are pull-based. Recommended polling intervals are 15-60 minutes for transactional data such as invoices, and daily for slower-moving reference data like suppliers and GL accounts.

How Coupa works

Coupa exposes suppliers, purchase orders, invoices, payments, and related lookup values through a REST API with OAuth2 client-credentials authentication and an X-Coupa-API-Version header. Coupa supports webhooks for six event types including invoice-events, purchase-order-events, and supplier-events, with signature verification via HMAC-SHA256. Webhook bodies are capped at 256KB, and calls respect a 30-second default request timeout. Rate limits on 429 and 5xx responses trigger exponential backoff with a 30-second cap.

What moves between them

The primary flow runs from Coupa into Workday Financial Management. Invoice and payment events from Coupa are delivered via webhook where enabled, with fallback to polling on a 15-60 minute cycle. Each Coupa invoice is mapped to a Workday supplier invoice and posted to the GL account and cost center specified in the mapping. Supplier records are synchronized bidirectionally so both systems see the same vendor master, and purchase order references ensure invoices land on the correct POs. Workday Financial Management is read-only on GL posting to prevent out-of-sequence journal entries, so ml-connector does not write back to Workday GL once an entry is posted.

How ml-connector handles it

ml-connector stores both credential sets encrypted, using the Workday OAuth2 refresh token to obtain access tokens for REST calls and presenting the Integration System User credentials for SOAP operations. On the Coupa side it registers for webhook events on invoice, supplier, and payment streams, validates signatures via HMAC-SHA256, and caches the mapping between Coupa line items and Workday GL accounts and cost centers. If Coupa webhooks are not available on a customer instance, ml-connector polls the Coupa REST API on a schedule to catch invoices and supplier changes. Coupa invoice status and payment state drive whether an entry is posted to Workday Financial Management, and retries follow exponential backoff when Coupa returns 429 rate limits. Every invoice carries a unique external identifier so duplicate posts do not occur if a webhook is replayed or a poll detects the same record twice.

A real-world example

A mid-sized services company runs Workday Financial Management for AP and GL close, and uses Coupa for procurement and vendor management across 50+ suppliers. Before the integration, the AP team downloaded Coupa invoices weekly, matched them to POs in Workday by hand, and entered them into Workday Financial Management as journal entries, frequently delaying the GL close by days when invoices arrived out of sequence. With Coupa connected to Workday Financial Management, each approved Coupa invoice flows directly into Workday as an AP entry, allocated to the correct cost center for the customer that the PO specifies. Supplier master changes in Coupa propagate to Workday automatically, and reconciliation between the two systems is instant.

What you can do

  • Sync Coupa supplier records into Workday Financial Management as supplier master data, maintaining bidirectional alignment.
  • Post Coupa invoices into Workday Financial Management as accounts payable journal entries, mapped to the GL account and cost center for each PO.
  • Use Coupa webhooks for real-time invoice notifications where enabled, with fallback to polling on a regular cycle for full reconciliation.
  • Authenticate Workday Financial Management via OAuth2 refresh token or SOAP Integration System User, and Coupa via OAuth2 client-credentials.
  • Track Coupa invoice status and prevent duplicate GL postings via unique external identifier deduplication.

Questions

Which direction does procurement data flow between Coupa and Workday Financial Management?
The primary flow is Coupa into Workday Financial Management. Invoices, payments, and supplier records flow from Coupa into Workday, where they are posted to the GL as AP entries and supplier master data. Supplier records are aligned bidirectionally so both systems share the same vendor master, but GL postings are read-only in Workday to protect the integrity of the general ledger.
Does ml-connector use Coupa webhooks or polling to catch invoices?
ml-connector prefers Coupa's webhook events for invoices, suppliers, and payments, where webhooks are enabled on the Coupa instance. If webhooks are not available, ml-connector falls back to polling the Coupa REST API on a 15-60 minute cycle to catch new invoices and supplier changes. Both methods include deduplication so invoices are never posted twice.
How does the integration handle the fact that Workday has no native webhooks?
Workday Financial Management requires polling since it does not expose webhooks for financial transactions. ml-connector uses Coupa webhooks on the source side to trigger reads of the associated Workday GL account and cost center mapping, then polls Workday Financial Management on a daily cycle to validate supplier master and GL account state. This hybrid approach balances real-time invoice delivery with the polling constraint Workday imposes.

Related integrations

Connect Workday Financial Management and Coupa

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

Get started