ml-connector
Exact OnlineWalmart Marketplace

Exact Online and Walmart Marketplace integration

Exact Online runs your finance and accounting. Walmart Marketplace sells your items to Walmart.com customers. Connecting the two keeps your sales data and your inventory in agreement. Every Walmart order flows into Exact Online as a sales transaction, mapped to the right GL account and cost center, and returns are captured the same way. Inventory levels sync between Walmart and Exact Online so you can see actual stock across both systems without manual re-counting.

How Exact Online works

Exact Online exposes accounts (suppliers and customers), sales invoices, purchase invoices, orders, GL accounts, cost centers, items, payments, and receipts through a REST API with OData v3 query syntax, documented in the Exact Online API Center. Authentication uses OAuth2 Authorization Code Grant with short-lived access tokens (10 minute expiry) and rotating refresh tokens (30 day lifetime). Exact Online supports webhooks for create, update, and delete events on most resources, delivering notifications to a registered callback URL via HTTP POST with HMAC-SHA256 signature verification. Webhook payloads contain only the entity key and action; full entity data must be fetched separately via REST.

How Walmart Marketplace works

Walmart Marketplace exposes items (SKU, product name, price, images), inventory (quantity per ship node), orders (purchase order ID, order date, order lines with status), returns and refunds (non-WFS sellers only), pricing, and performance reports through a REST API. Authentication uses OAuth2 Client Credentials grant, exchanging a Client ID and Secret for a Bearer token with a 15-minute expiry, and API calls must include a non-standard WM_SEC.ACCESS_TOKEN header along with request metadata headers. Walmart Marketplace also supports webhooks for order, inventory, item, return, and report events, with retries at 5 minute, 15 minute, and 45 minute intervals, up to 3 attempts before the event is dropped. Polling is also available via GET operations for items, orders, and returns.

What moves between them

The main flow runs from Walmart Marketplace into Exact Online. After each Walmart order is placed, ml-connector reads the order data and posts it into Exact Online as a sales transaction (sales order and sales invoice), mapped to the correct GL account and cost center in Exact. When a customer returns an item through Walmart, the return is captured and written back into Exact as a sales credit memo. Inventory movements sync from Walmart to Exact at regular intervals so actual stock quantities match across both systems. Because Walmart orders can be read via webhook or polling, ml-connector can operate on either trigger based on your configuration.

How ml-connector handles it

ml-connector stores the Walmart Client ID and Secret encrypted, exchanges them for a Bearer token on each use, and refreshes every 15 minutes to stay ahead of expiry. For Exact Online, it accepts the OAuth2 authorization code from your Exact instance, exchanges it for an access token, and refreshes every 10 minutes. Both APIs require custom request headers: Walmart needs WM_SEC.ACCESS_TOKEN and request metadata (correlation ID, service name); Exact requires standard OAuth2 Authorization header. ml-connector maps Walmart SKU to Exact Item, Walmart order line to Exact sales invoice line, and Walmart order total to the GL account and cost center you specify per SKU. Returns are mapped to sales credit memos. Because Walmart rate limits single-item price updates (100 per hour), ml-connector batches price changes into bulk feeds. Every order and return carries a full audit trail, and ml-connector tracks which records have already posted to Exact so duplicate delivery does not re-post the same transaction.

A real-world example

A mid-sized home goods seller uses Exact Online for accounting and inventory management across their warehouse and retail locations, and sells through Walmart Marketplace as a growing channel. Before the integration, the order entry team received daily order reports from Walmart, manually created sales orders and invoices in Exact, and updated inventory quantities by hand as items shipped. Inventory counts constantly drifted because the Walmart picks and the Exact quantities were updated at different times. With Exact and Walmart connected, every Walmart order flows automatically into Exact as a sales invoice on the day it ships, allocated to the correct warehouse location and GL revenue account, and inventory decrements immediately so Exact always shows the current stock. Month-end close is faster because all Walmart revenue is already posted and reconciled.

What you can do

  • Capture every Walmart order and post it into Exact Online as a sales invoice, allocated to the correct GL account and cost center.
  • Handle Walmart returns and refunds by writing them back into Exact as sales credit memos.
  • Sync inventory quantities from Walmart ship nodes into Exact Online item stock balances, keeping both systems current.
  • Authenticate Walmart with OAuth2 Client Credentials and Exact Online with OAuth2 Authorization Code Grant, managing token refresh on both sides.
  • Trigger order capture on a schedule or via Walmart webhooks, with automatic retry and a full audit trail on every transaction.

Questions

Which direction does data move between Exact Online and Walmart Marketplace?
The main flow is Walmart into Exact Online. Orders, returns, and refunds flow from Walmart into Exact as sales transactions (invoices and credit memos), while inventory quantities sync from Walmart to Exact at regular intervals. Pricing can flow both directions if you choose, but single-item price updates on Walmart are rate-limited, so ml-connector uses bulk feeds for efficient syncing.
How does ml-connector handle the different OAuth2 flows?
Walmart uses OAuth2 Client Credentials (Client ID and Secret for machine-to-machine auth), while Exact Online uses Authorization Code Grant (requiring user login to authorize). ml-connector stores both credential sets encrypted, manages the 15-minute Walmart token refresh and the 10-minute Exact token refresh separately, and adds the custom headers each API requires (WM_SEC.ACCESS_TOKEN for Walmart, Authorization for Exact).
What happens if an order fails to post into Exact Online?
ml-connector logs the failure with the order ID and Walmart order details, retries the posting on your schedule with exponential backoff, and tracks which orders have successfully posted so a retry does not duplicate the transaction in Exact. Every attempt is logged in the audit trail so you can trace the issue to the root cause (mapping error, missing GL account, API outage, etc).

Related integrations

Connect Exact Online and Walmart Marketplace

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

Get started