Magento and Business Central integration: the options and the pitfalls.

Magento Open Source or Adobe Commerce can be connected to Microsoft Dynamics 365 Business Central with a connector extension, a middleware platform or a built integration, and whichever you choose, it holds up only if it respects Business Central’s API limits and every field has an agreed owner.

Rowan BurgessFounder, Refined Commerce
  • Published
  • 9 min read
The usual shape of a Magento and Business Central integration. Drawn by Refined Commerce, 31st October 2026; every integration is agreed flow by flow.

When the shop and the finance system do not talk, someone re-keys orders, stock is wrong by the afternoon, and prices drift between the website and the price list. Connecting Magento or Adobe Commerce to Microsoft Dynamics 365 Business Central fixes that, if it is built to cope with what actually happens: busy days, half-shipped orders, refunds, a price change to ten thousand items at once and the occasional outage on either side. This article sets out the options and the pitfalls we see most.

What are the options for connecting Magento to Business Central?

Three: a connector extension, a middleware platform, or an integration built on the two APIs. A connector extension installs into Magento, Business Central or both and maps the common records out of the box; it is the quickest start and fits stores whose processes match its assumptions. A middleware or integration platform sits between the two systems, with its own mapping tools, queues and monitoring; it suits businesses connecting several systems, not just these two. A built integration uses Business Central’s API and Magento’s REST endpoints directly, with a queue and mapping layer designed around your data, on a store that should itself be on a supported Magento release; it costs more to start and fits stores whose pricing, products or posting rules are their own. Microsoft’s documentation describes a Shopify Connector built into Business Central; for Magento the connection always comes from one of these three, which is one reason some merchants weigh a move from Magento to Shopify.

ApproachBest whenWatch forWho supports it
Connector extensionStandard flows, standard Business Central setupAssumptions that do not match your posting rules; upgrades of either side breaking itThe extension vendor
Middleware platformSeveral systems to connect, a team to run itA third system to licence, learn and monitorThe platform and whoever configured it
Built integrationCustom pricing, products or processesNeeds documenting and an owner for its whole lifeThe agency that built it
Refined Commerce’s summary of the three approaches, 31st October 2026. Costs are not given because they depend on scope.

Which records move, and in which direction?

Orders go out of Magento; stock, prices, invoices and shipments come back; customers can go either way. That is the usual shape, shown in the figure. A web order becomes a sales order in Business Central as it is placed. Available stock per item, and per location if you use locations, returns to Magento so the store stops selling what the warehouse no longer has. Prices come from Business Central price lists, including customer and group pricing. Posted invoices, credit notes and despatch details return against the Magento order so customers see them in their account. Customers are the awkward one: if accounts are created on both sides, every field needs an agreed owner, or each system will keep overwriting the other.

What limits does Business Central put on an integration?

Rate limits, page sizes, timeouts and webhook rules, and an integration that ignores them works in testing and fails on Black Friday. For Business Central online, Microsoft publishes operational limits. OData requests are limited per user to 6,000 within a five-minute sliding window; beyond that Business Central answers HTTP 429, Too Many Requests. A single OData request can return at most 20,000 entities, a $batch request can carry at most 100 operations, and a request is cancelled after eight minutes. An environment can hold at most 200 webhook subscriptions. Microsoft’s own advice is that an integration sending everything through one user will reach the per-user limits quickly.

LimitValueWhat happens when exceeded
OData requests per user6,000 per 5-minute sliding windowHTTP 429, Too Many Requests
Entities per OData request20,000HTTP 413, Request Entity Too Large
Operations per $batch request100Not stated; split larger batches
OData operation timeout8 minutesHTTP 408 and the session is cancelled
Webhook subscriptions per environment200Not stated; share subscriptions
From Microsoft’s operational limits page for Business Central online (last updated 8th April 2025), checked 31st October 2026. Source: Microsoft Learn.

How quickly can Business Central tell Magento something changed?

Within about half a minute, by design, and in bulk when a lot changes at once. Business Central’s webhooks do not fire the instant a record changes. Microsoft says the system waits 30 seconds after the first change to an entity so that several quick edits produce one notification; if more than 1,000 records change in that window, it sends a single collection notification and the subscriber must fetch the changed records itself. If the subscriber cannot be reached and answers with a timeout, 429 or server error, Business Central retries over the next 36 hours; any other error deletes the subscription. On the Magento side, Adobe’s asynchronous and bulk REST endpoints accept large updates and write them to a message queue for consumers to process, which on self-hosted stores needs RabbitMQ and running consumers.

Where do Magento and Business Central integrations go wrong?

In the mapping, far more often than in the code. The API calls are the easy part. The decisions that cause months of small errors are these:

  • Items and variants. A configurable product in Magento and an item with variants in Business Central are different shapes. Decide which Magento SKU maps to which item and variant code before anything is built.
  • VAT and rounding. Line-level and order-level rounding differ between systems; a penny difference on every tenth order adds up to a reconciliation problem.
  • Discounts, shipping and gift cards. Each needs a place in the sales order, usually a G/L account or charge item, agreed with your finance team.
  • Edits after export. Orders changed or cancelled in Magento after they reach Business Central need a rule, or the two quietly diverge.
  • Part shipments and refunds. Credit notes and partial deliveries have to flow back against the right order lines.
  • Posting groups, dimensions and number series. A customised Business Central decides how orders must arrive; read it as carefully as the store.
  • One user for everything. Under per-user limits, a single integration account becomes the bottleneck on the busiest day.

What should you test before go-live?

Every awkward case your business actually has, on a Business Central sandbox and a staging store, with real data. A test that only places a single full-price order with standard delivery proves very little. Before switching off the old process, run at least these:

  • An order with a discount code, a free-delivery threshold and a gift card, and check every line posts to the agreed account.
  • An order that ships in two parts, and one that is partly refunded, with the credit note flowing back.
  • A price change to thousands of items at once, timed against the webhook delay and the per-user request limit.
  • A stock change at one location when the store sells from several.
  • A new trade customer created in Business Central and a new account created on the store, to prove field ownership both ways.
  • Business Central or the store deliberately unavailable for an hour, to prove the queue holds and retries without duplicating orders.
  • A webhook subscription left to expire, to prove someone is alerted.

Then run the integration alongside the existing process for long enough to cover a busy week, and compare totals daily before trusting it alone.

How should you choose?

Start from your data and processes, then pick the approach that fits them, not the other way round. Write down every flow: the records, the fields, the direction, which system owns each field and how often it must move. If a connector covers that list with configuration alone, it is probably the right answer. If you are connecting more than two systems and have someone to run a platform, middleware earns its place. If the list is full of exceptions, trade pricing, bundles, custom posting, a built integration will cost less over its life than bending a connector. Whichever you choose, insist on three things: a queue so nothing is lost, an alert for every failure, and a period running alongside the old process before you switch it off.

Sources

Every date, version and bulletin number in this article was checked against the publisher’s own page on . Where a page changes after that date, the publisher’s page is the authority.

  1. Operational limits for Business Central online (OData and webhooks) Microsoft Learn
  2. Working with webhooks in Business Central Microsoft Learn
  3. Business Central API (v2.0) Microsoft Learn
  4. Get started with the Shopify Connector Microsoft Learn
  5. Asynchronous web endpoints Adobe Developer
  6. Bulk endpoints Adobe Developer

Questions merchants ask.

Does Microsoft make a Magento connector for Business Central?

Microsoft’s documentation describes a Shopify Connector that is preinstalled in Business Central for new sign-ups and trials. For Magento Open Source and Adobe Commerce, the connection comes from a third-party extension, a middleware platform or an integration built for the store.

Can Business Central push changes to Magento straight away?

Nearly. Business Central’s API webhooks notify a subscriber when records change, but by default they wait 30 seconds after the first change so that one notification covers several edits. If more than 1,000 records change in that window, Business Central sends a single collection notification and the subscriber must read the changes itself.

What happens if Magento is down when Business Central sends a notification?

Microsoft says Business Central retries over the next 36 hours if the subscriber answers with a timeout, a 429 or a 5xx error. Any other error code deletes the subscription. A well-built integration therefore answers quickly, queues the work and lets its own queue do the processing.

Does the Magento edition matter?

Not for the connection. Magento Open Source, Adobe Commerce and Mage-OS share the same REST and GraphQL APIs. Adobe documents asynchronous and bulk endpoints that write requests to a message queue, which needs RabbitMQ and running consumers on self-hosted stores, and which suit large stock and price updates.

How long does an integration take to build?

It depends on the number of flows, the customisation on each side and the volumes, which is why we give a written plan and estimate after examining both the store and the Business Central setup. Running the new integration alongside the old process before go-live is part of the plan, not an extra.

Before connecting the books, make sure the store itself is on solid ground.

Give us the address and we will read what the store already shows the world: release, support status, PHP, headers, hosting and any sign of a hijack. One page, by email, within two working days. Nothing is accessed or tested.

  • Magento Open Source, Adobe Commerce and Mage-OS stores
  • No login, no access, no obligation
  • Written by a person, not a scanner
Free store health checkOne page, by email

5.0 from 23 Google reviews

Free, with no obligation. We read only what your store serves publicly; nothing is accessed or tested, and it is not a security guarantee. Privacy notice.
What you receive
Example report
Magento Security and Upgrade Health Check
example-store.co.ukNeeds attention
Platform
Magento Open Source 2.4.4-p3
Adobe support
ended 12th April 2025
PHP
8.1, end of life 31st Dec 2025
Frontend
Luma
Security headers
2 of 6 present
Hijack indicators
none found

What we would do first. Apply the outstanding security fixes, then plan the upgrade to a supported release.

Free health check