ml-connector
Microsoft Dynamics 365 Business CentralWalmart Marketplace

Microsoft Dynamics 365 Business Central and Walmart Marketplace integration

Microsoft Dynamics 365 Business Central runs finance, inventory, and order management. Walmart Marketplace runs the third-party seller storefront on Walmart.com. Connecting the two keeps the product catalog, stock levels, and prices in Business Central pushed out to Walmart, and brings Walmart orders back in as sales orders and invoices so finance and fulfillment work from one record. Walmart reconciliation reports flow in so settled payouts and marketplace fees post against the right GL accounts. ml-connector handles the very different APIs on each side and moves the data on a schedule you control.

How Microsoft Dynamics 365 Business Central works

Microsoft Dynamics 365 Business Central exposes vendors, customers, items, sales orders, sales invoices, GL accounts, general ledger entries, and dimensions through the Business Central API v2.0, a REST service built on OData v4. It authenticates with an OAuth 2.0 client credentials token from Microsoft Entra ID, scoped to a tenant and a named environment such as production, so the base URL is specific to each customer. It supports push subscriptions: you register a webhook against a resource and Business Central sends a change signal, but the notification carries no data, so the changed record must be fetched after each notification. Subscriptions expire every 3 days and must be renewed, and incremental reads use an OData filter on lastModifiedDateTime.

How Walmart Marketplace works

Walmart Marketplace exposes items, inventory, orders, returns and refunds, pricing, and reconciliation reports through its v3 REST APIs on a fixed base URL. Every call authenticates with an OAuth 2.0 client credentials token, requested with Basic auth and valid for only 15 minutes, then passed in the non-standard WM_SEC.ACCESS_TOKEN header alongside a mandatory WM_SVC.NAME header and a correlation id. Bulk catalog, inventory, and price changes go through an asynchronous feed model rather than single record writes, which Walmart reserves for emergency use. Walmart has no GL accounts, vendors, or general employee records; it can also push order, return, and report events to a registered endpoint with up to three retries.

What moves between them

The catalog flow runs from Business Central into Walmart Marketplace. ml-connector reads items, inventory levels, and prices from Business Central and submits them to Walmart through the item, inventory, and price feeds, so listings and stock track the ERP. The order flow runs the other way: Walmart purchase orders are pulled in and created as Business Central sales orders, then posted as sales invoices once acknowledged and shipped, with Walmart SKUs mapped to Business Central item numbers. Returns and refunds from Walmart flow in to adjust the matching documents. Walmart reconciliation reports are read on a schedule and posted as journal lines so settled payouts and marketplace fees land on the correct Business Central GL accounts and dimensions. Walmart reconciliation reports and the chart of accounts are read-only, so ml-connector never writes financial setup back to either system.

How ml-connector handles it

ml-connector stores both credential sets encrypted and obtains a Microsoft Entra token for Business Central using the tenant id, client id, and secret, refreshing it when a call returns 401, while building the base URL from the stored environment name since Business Central publishes no shared host. For Walmart it requests a fresh token before the 15 minute expiry rather than waiting for a 401, and sends the WM_SEC.ACCESS_TOKEN, WM_SVC.NAME, and correlation id headers on every request. Item, inventory, and price writes use Walmart feeds because the single record sync APIs are aggressively throttled; the connector submits a feed, then polls the feed id for status and per-item results. Inbound work is driven by Walmart order, return, and report notifications where enabled, with a scheduled poll over the orders endpoint as a backstop, since Walmart only serves orders from the last 180 days. Business Central subscriptions are renewed before the 3 day expiry, and because a notification carries no payload the changed record is fetched before processing. Walmart SKUs are mapped to Business Central item numbers and reconciliation lines to GL accounts and dimensions first, so every posting lands on a valid record. Walmart returns HTTP 429 under its token-bucket limits and Business Central throttles at 600 requests per minute, so ml-connector backs off and retries, keeps a full audit trail on every record, and can replay a failed posting.

A real-world example

A mid-sized consumer products company with roughly 150 staff sells home goods both wholesale and direct, and runs Microsoft Dynamics 365 Business Central for inventory, finance, and order management. After opening a Walmart Marketplace storefront, staff exported a spreadsheet of stock and prices and uploaded it to Walmart by hand, then re-keyed each Walmart order into Business Central to invoice it, and at month-end tried to reconcile Walmart's payout against the orders and fees it covered. With Microsoft Dynamics 365 Business Central and Walmart Marketplace connected, inventory and price changes feed to Walmart automatically, new Walmart orders arrive as Business Central sales orders, and reconciliation reports post the payout and fee lines so close starts with the marketplace already reconciled.

What you can do

  • Push item, inventory, and price updates from Microsoft Dynamics 365 Business Central to Walmart Marketplace through Walmart's bulk feed APIs.
  • Pull Walmart Marketplace orders into Business Central as sales orders and posted sales invoices, with SKUs mapped to item numbers.
  • Bring Walmart returns and refunds into Business Central to adjust the matching documents.
  • Post Walmart reconciliation payouts and marketplace fees against the correct Business Central GL accounts and dimensions.
  • Bridge the Microsoft Entra token for Business Central and Walmart's 15 minute token, with retries and a full audit trail on every record.

Questions

Which direction does data move between Microsoft Dynamics 365 Business Central and Walmart Marketplace?
Items, inventory, and prices move from Business Central out to Walmart Marketplace through Walmart's feed APIs. Walmart orders, returns, and reconciliation reports move the other way into Business Central as sales orders, invoices, and journal lines. The Walmart chart of fees and the Business Central chart of accounts are read references, so ml-connector does not write financial setup back to either side.
How does the integration handle Walmart's 15 minute token and Business Central's tenant URL?
ml-connector requests a new Walmart token before the 15 minute window expires rather than waiting for a 401, and sends Walmart's required WM_SEC.ACCESS_TOKEN and WM_SVC.NAME headers on every call. For Business Central it obtains a Microsoft Entra OAuth token and builds the base URL from the stored environment name, since Business Central has no shared host. Both credential sets are stored encrypted.
Why does the connector use Walmart feeds instead of single-item updates?
Walmart's single-record sync APIs for items, inventory, and pricing are aggressively throttled and meant for emergency use, with single price updates capped near 100 per hour. ml-connector submits item, inventory, and price changes as asynchronous feeds instead, then polls the feed id for status and per-item results. This keeps catalog and stock sync reliable at volume without tripping Walmart's token-bucket limits.

Related integrations

Connect Microsoft Dynamics 365 Business Central and Walmart Marketplace

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

Get started