ml-connector
Workday Financial ManagementShipStation

Workday Financial Management and ShipStation integration

Workday Financial Management handles your general ledger, accounts receivable, and procurement. ShipStation manages orders and shipments across your e-commerce channels. Connecting them closes the gap between order fulfillment and financial recognition. When an order ships in ShipStation, ml-connector can post the corresponding revenue entry into Workday's GL, keyed to the customer and sales territory. Shipment tracking details flow back into Workday's order management for reconciliation, and your month-end close starts with AR already aligned to fulfilled orders.

How Workday Financial Management works

Workday Financial Management exposes GL accounts, customers, journal entries, and accounts receivable through both SOAP/WWS and REST/JSON APIs. The SOAP interface at https://{hostname}.myworkday.com/ccx/service/{tenant}/Financial_Management/v46.1 handles full CRUD operations with an Integration System User (ISU) account secured by WS-Security UsernameToken. The REST interface at https://{hostname}.workday.com/ccx/api/v1/{tenant}/ uses OAuth2 refresh-token flow and is lighter-weight but narrower in scope. Workday has no native webhooks, so ml-connector polls for new GL records and customer changes on configurable intervals, typically 15 to 60 minutes for transactional data.

How ShipStation works

ShipStation exposes orders, shipments, customers, and fulfillment status through a REST API at https://api.shipstation.com/v2 (V2) and https://ssapi.shipstation.com (V1). Authentication uses API Key headers for V2 or HTTP Basic Auth for V1, both generated and shown only once in account settings. ShipStation publishes webhooks for ORDER_NOTIFY, SHIP_NOTIFY, and fulfillment events that fire on shipment state changes, though webhook payloads contain only resource pointers and require a follow-up authenticated GET to retrieve the full order or shipment. ORDER_NOTIFY fires only on new orders, so detecting order changes requires polling the /orders endpoint with a modifyDate filter. Once orders are marked shipped or cancelled, they become immutable.

What moves between them

Orders and shipments flow primarily from ShipStation into Workday. ml-connector polls ShipStation daily for orders marked as shipped, extracts the order total and customer, maps the customer to a Workday AR account and GL dimension (sales territory or cost center), and writes a journal entry into Workday's general ledger to recognize revenue and update AR. Shipment tracking and fulfillment status are also polled and written to Workday order records for AR reconciliation and month-end audit. Reverse flow is minimal: GL account and customer master data is read from Workday at integration setup time to build mapping tables, but day-to-day traffic is unidirectional.

How ml-connector handles it

ml-connector uses ShipStation API Key authentication directly per customer, and authenticates to Workday using the customer's Integration System User (ISU) credential and OAuth2 refresh token, both stored encrypted. It polls ShipStation's /orders endpoint with modifyDate filters to detect shipped orders since the last poll, then reads the full order payload from each webhook pointer using authenticated GET calls. Each ShipStation order is matched to a Workday customer by email or external ID, and the order total is allocated to a Workday GL revenue account and AR sub-ledger account per the customer's sales territory. Journal entries are created in Workday via SOAP with the ISU token, carrying job IDs for deduplication so a retry does not double-post. The poll interval is set daily to align with your fulfillment cycle, and ml-connector tracks ShipStation rate limits (200 req/min for V2, 40 req/min for V1) and backs off on 429 errors. Every posted journal entry carries the ShipStation order number for audit and traceability.

A real-world example

An e-commerce merchant selling through their own website and Amazon uses ShipStation to centralize order management and shipping across both channels. Workday Financial Management handles their AR, GL, and month-end close. Before the integration, the accounting team pulled shipped orders from ShipStation manually each week, looked up the customer in Workday to find the right GL account, and posted accrual entries by hand. Month-end close often revealed shipped orders that had not yet been recognized in revenue, forcing restatement. With Workday and ShipStation connected, every shipped order posts to the GL automatically the next day, assigned to the correct customer and territory. AR reconciliation is complete by day two of month-end, and the team no longer re-enters order data.

What you can do

  • Post ShipStation shipments to Workday's general ledger and accounts receivable daily, with GL dimension mapping per customer and sales territory.
  • Match ShipStation orders to Workday customers by email or external ID, and allocate order totals to the correct GL revenue and AR accounts.
  • Track shipment and fulfillment status from ShipStation and write status updates to Workday order records for AR audit and reconciliation.
  • Authenticate ShipStation via API Key and Workday via ISU + OAuth2 with refresh-token flow, storing credentials encrypted.
  • Poll ShipStation on a daily schedule with rate-limit backoff, use job IDs to prevent duplicate journal postings, and maintain a full audit trail of every GL entry.

Questions

Does ml-connector write orders into Workday, or just financial entries?
ml-connector writes financial journal entries (revenue recognition and AR entries) into Workday's general ledger based on ShipStation orders. It does not create orders in Workday; orders live in ShipStation. It does read Workday's customer and GL account master data at setup time to build mapping tables, so revenue posts to the correct GL account and customer.
Which API version does ml-connector use for ShipStation, V1 or V2?
ml-connector uses V2 for its modern rate limits (200 req/min) and simpler authentication, but falls back to V1 for order listing and customer/product management if your ShipStation plan includes it. The integration detects which endpoints are available and routes accordingly. V1 API Key + Secret pairs support 40 req/min, so high-volume merchants may see tighter constraints.
What happens if a ShipStation order is edited after it ships, or if an order is cancelled?
Once an order ships, ShipStation marks it immutable and ml-connector treats it the same way: the GL entry posted for that order is not reversed on a re-poll. If an order is cancelled before shipping, it never generates a GL entry. If you need to reverse a posted entry (e.g., returned shipment), that must be handled in Workday as a manual reversal journal entry or via a separate return-order flow integrated later.

Related integrations

Connect Workday Financial Management and ShipStation

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

Get started