ml-connector
Sage IntacctWalmart Marketplace

Sage Intacct and Walmart Marketplace integration

Sage Intacct runs your finance and accounting. Walmart Marketplace lets you sell to tens of millions of shoppers. Connecting the two keeps order revenue and inventory in sync without re-keying. Orders placed on Walmart flow into Intacct as sales documents, and inventory counts from Intacct update your Marketplace listings so overstock does not happen. ml-connector bridges the two APIs and moves data on a schedule you set.

How Sage Intacct works

Sage Intacct is a cloud-based ERP and accounting platform accessed via a single XML gateway endpoint at https://api.intacct.com/ia/xml/xmlgw.phtml. It uses session-based authentication: a one-time call with senderId, senderPassword, companyId, userId, and userPassword exchanges credentials for a sessionid valid for 50 minutes. All data operations serialize through the same POST endpoint using XML request and response bodies. Intacct has no webhook system, so all reads are polling-driven. HTTP 200 responses may contain application-level errors inside the XML body, requiring parsing of error tags rather than relying on HTTP status codes alone.

How Walmart Marketplace works

Walmart Marketplace exposes seller operations via a REST API at https://marketplace.walmartapis.com with OAuth 2.0 client credentials. Client ID and secret are exchanged for a bearer token valid 15 minutes, and the token is passed in a non-standard header WM_SEC.ACCESS_TOKEN rather than the Authorization header. Key entities include items (SKU, price, images), inventory across multiple ship nodes, orders with line-level statuses, returns and refunds, pricing, and financial reconciliation reports. Walmart supports both webhooks for order and inventory events and REST polling for historical reads. Single-item price updates are heavily throttled at 100 per hour; bulk price feeds are the intended path.

What moves between them

Orders placed on Walmart Marketplace flow into Sage Intacct as sales or receivable documents tied to a Marketplace customer, with order lines mapped to Intacct GL accounts and dimensions. Inventory levels read from Intacct on a schedule are pushed to Walmart to update available quantity across ship nodes, preventing oversell. Pricing updates from Walmart can be synced back into Intacct at configurable intervals. Financial reconciliation reports from Walmart are optionally ingested to track seller payouts and fees.

How ml-connector handles it

ml-connector stores Intacct senderId and password encrypted, and maintains a cached session for 45 minutes so repeated reads within a window do not force a new login. On every Intacct read, it inspects the XML response body for error tags and surfaces them as actionable alerts rather than silently accepting HTTP 200. Walmart tokens are refreshed on 401 responses and stored encrypted. Order writes to Intacct are idempotent using Intacct's uniqueid flag in control blocks, so a retry of a failed order does not create duplicates. Inventory syncs poll on a configurable cadence tied to your fulfillment cycle, not on a fixed hourly beat. Walmart price updates respect the 100-per-hour single-item throttle by batching updates into bulk feed operations, which complete asynchronously. Every order, inventory adjustment, and pricing change carries a full audit trail with source timestamp, direction, and final state in Intacct.

A real-world example

A mid-sized home goods seller operates a small warehouse and runs Sage Intacct for accounting and inventory valuation. Before integrating with Walmart Marketplace, the seller exported orders daily from Walmart, manually entered them into Intacct as sales invoices, and texted inventory counts to the warehouse manager to update system quantities. Stock was overstated in Intacct and undersold on Marketplace because sync was manual and infrequent. With Sage Intacct and Walmart Marketplace connected, each order creates a sales document in Intacct automatically, pulling from a pre-mapped Marketplace customer, and daily inventory counts from Intacct flow to Walmart so listings reflect real stock. The accounting close process gains clean revenue records, and the warehouse operates without inventory guesswork.

What you can do

  • Sync Walmart orders into Sage Intacct as sales or receivable documents with automatic customer and GL mapping.
  • Push inventory counts from Intacct to Walmart Marketplace across all ship nodes to prevent overselling.
  • Refresh Intacct sessions before expiry and parse XML response bodies for application-level errors.
  • Use Intacct uniqueid flags to make order writes idempotent, so retries do not create duplicates.
  • Batch price updates into bulk feeds to respect Walmart's 100-per-hour single-item throttle.

Questions

How does ml-connector handle Intacct's XML gateway and session expiry?
ml-connector caches the Intacct session for 45 minutes and automatically refreshes it before it expires at 50 minutes, so rapid successive reads do not force a new login. It also parses every XML response body for error tags, since Intacct returns HTTP 200 even when an operation fails at the application level.
In which direction do orders and inventory move between Intacct and Walmart?
Orders flow from Walmart into Intacct as sales documents. Inventory counts flow from Intacct to Walmart to keep listings current. Pricing can be synced from Walmart into Intacct if configured, and financial reconciliation reports can be ingested for payout tracking. This minimizes manual data entry and keeps both systems aligned.
How does the integration handle Walmart's token expiry and price update throttling?
ml-connector refreshes the Walmart OAuth token on any 401 response, so expired tokens do not block a flow run. For price updates, it batches single-item changes into bulk feed operations, which complete asynchronously and respect Walmart's 100-per-hour throttle without requiring the integration to wait.

Related integrations

Connect Sage Intacct and Walmart Marketplace

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

Get started