Business Central and EDI
Business Central EDI integration
Dynamics 365 Business Central has no X12 or EDIFACT translator. Its E-Documents framework handles Peppol invoices and, in preview, Peppol orders; retail X12 stays outside the product. We build that outside part to your company: 850s into sales orders, and 855, 856 and 810 out of your orders, shipments and invoices, mapped per trading partner, hosted and run for you.
What Business Central does natively
Business Central has no X12 or EDIFACT translator. Microsoft's user documentation for the product, about 1,800 articles in its public repository, contains no occurrence of X12, EDIFACT or EDI as of 3 October 2026. What the product does ship sits in two frameworks.
| Native part | What it is | Where it stops |
|---|---|---|
| E-Document Core app | Sends and receives e-documents through access point connectors; formats per country: Peppol BIS 3, XRechnung, ZUGFeRD, OIOUBL, Factura-E, PINT A-NZ | Invoices and credit memos in Peppol and national formats; no X12 |
| "Exchange EDI documents", update 29.0 | Public preview that extends E-Documents to "order exchange" and "remittance advices" | The named format is Peppol BIS 3; X12 is not listed |
| Data Exchange Framework | Data exchange definitions for XML, variable text, fixed text and JSON files, mapped to tables | No envelope, no control numbers, no 997, no loop hierarchy |
| Standard API v2.0 | salesOrders and salesOrderLines to create orders, salesShipments (read only) and salesInvoices |
The integration that calls it is not part of the product |
The 29.0 preview is aimed at exchanging orders over Peppol, the network used for e-invoicing and procurement in Europe and elsewhere. A supplier that trades with a US retailer still needs the 850, 855, 856 and 810 in X12, with the retailer's version, qualifiers and pack hierarchy. That part runs outside Business Central and talks to it through the API. Microsoft's feature details for update 29.0 describe the preview.
This page is the Business Central side of our EDI integration; the system itself is covered on the Business Central system page.
What sits between Business Central and your trading partner
Each X12 document maps to a Business Central record.
| Document | Direction | Business Central record | Source of the content |
|---|---|---|---|
| 850 | In | Sales order | The partner's file |
| 855 | Out | Sales order | Quantity per line, after availability is checked |
| 856 | Out | Posted sales shipment, plus pack data | Shipped lines, carrier, cartons and SSCCs |
| 810 | Out | Posted sales invoice | Lines, tax, freight, payment terms |
| 846 | Out | Item ledger entries per location | Available quantity per location |
| 997 | Both | None | Kept in the integration per document |
The inbound order carries most of the mapping. The diagram shows one purchase order, PO 4500018236, the example used on our document pages.
BEG03 is at most 22 characters and External Document No. holds 35, which the table reference describes as "the customer's purchase order number". The ship-to is harder. Kroger, for example, identifies its locations by DUNS+4, 13 digits, while the Ship-to Code on a customer holds 10 characters. The Ship-to Address table has a GLN field of 13 characters for partners that send a GLN; for a DUNS+4 the integration keeps a lookup table that resolves the code to the ship-to. An order whose ship-to does not resolve is held, never created with the customer's default address.
The technical reality of this pair
Request limits. Business Central online allows each user 6,000 OData requests in a 5-minute sliding window, processes at most 5 at the same time and returns 429 Too Many Requests above 100 open or queued requests. A queued request that waits longer than 8 minutes gets a 503. A sales order created through the standard API one record at a time is 1 call for the header and 1 per line. A morning file of 400 purchase orders with 8 lines each is 400 times 9, so 3,600 calls, which fits in one window. With 20 lines per order it is 400 times 21, so 8,400 calls: 6,000 go through in the first window and the other 2,400 wait until the window slides. The integration paces the calls and returns the 997 for the file before the orders are written, so a retailer's acknowledgment window does not depend on the ERP.
Shipments. In API v2.0 the salesShipment entity is read only, and the one bound action on a sales order, shipAndInvoice, posts the shipment and the invoice together. A flow where the 856 goes out on the day of shipping and the 810 later, after a 945 or a carrier pickup, needs posting through a custom API page or a codeunit exposed for that purpose. The integration then reads the posted sales shipment to build the 856.
Stock. The item entity has one inventory figure per item. An 846 that reports stock per warehouse or per ship point needs the quantity per location from a custom API page or a query on the item ledger entries. See which stock counts for the rules about what to report.
What Business Central and X12 store differently
- Address lines. An N3 segment carries two lines of up to 55 characters each. Ship-to Address in Business Central holds 100 characters, Ship-to Address 2 holds 50. A second address line of 52 characters loses 2 characters, which is often the dock or door number. City is 30 characters in both.
- Units. The 850 orders 24
EA. Business Central knows the item in its own unit codes, such as PCS, with Qty. per Unit of Measure for cases. A partner that orders in cases of 12 sends 2CA, which has to become 24 PCS, and the 855 and 856 have to convert back to 2 cases. - Item identity. An item reference holds the customer's number or a bar code in Reference No. (50 characters), with its own unit of measure. A 12-digit UPC and the 14-digit case GTIN of the same item are two references with two units.
- Price. The unit price on the line comes from the customer's price list. PO104 is what the buyer will pay. At 12.80 against 12.50 on 24 units, the invoice is short-paid by 24 times 0.30, which is 7.20, unless the difference is caught before the 855 goes out.
- Cartons. A posted sales shipment knows what shipped per line. Which units went into which carton, under which SSCC, is recorded at packing, in a warehouse app or by a 3PL in its 945. The HL loop of the 856 is built from that data.
When it goes wrong
| What happens | What the integration does |
|---|---|
| Business Central returns 429 on the rate or connection limit | The order stays in the queue and is retried with a growing pause |
| A write times out after the order was created | Before a retry, the integration looks up the External Document No. for that customer: one sales order |
| The ship-to or an item in the 850 has no match | The order is held with the segment that failed; the rest of the file is written |
| A field is longer than its Business Central field | The order is held, not truncated, when the field is one the 856 or 810 has to return |
| No 997 from the partner within its window | An alert, with the control number of the document that is waiting |
We build the integration to your Business Central company and your trading partners, host it and run it, for a fixed build price and a monthly fee. A new partner starts as a dry run that creates nothing in Business Central and sends nothing, and you approve the first documents. When a partner publishes a new guide or Microsoft changes the API, we change the integration. The store side is covered under Shopify Business Central integration; the same model on another ERP is under NetSuite EDI integration. Tell us which partners you trade with.
Frequently asked questions
Does Business Central have native EDI?
Not for X12 or EDIFACT. Business Central ships the E-Documents framework for Peppol BIS 3 and national e-invoice formats, and update 29.0 adds "Exchange EDI documents" as a public preview that extends that framework to order exchange and remittance advice, with Peppol BIS 3 as the named format. Retail X12 documents such as the 850, 856 and 810 are not among the documented formats.
Can the Data Exchange Framework read an X12 file?
It reads four file types: XML, variable text (delimited), fixed text and JSON. An X12 file is delimited, but its meaning sits in an envelope with control numbers, qualifiers per element and nested loops such as the HL hierarchy of an 856. Validating counts, answering with a 997 and mapping per partner are not part of the framework, so a translator runs in front of it.
Does Dynamics 365 Supply Chain Management handle EDI differently?
It is a different product with its own architecture. Microsoft's reference architecture for outbound goods in Supply Chain Management also places EDI outside the ERP: orders are created in an online shop and "the data then goes through the platform for electronic data interchange (EDI)" to Dynamics 365, and the ERP informs that platform when the packing slip is posted.
Can EDI orders use our customer prices and item references?
Yes. The order is created for the customer of that trading partner, so its price list and discounts apply as for any sales order. Item references in Business Central link a customer's item number or a bar code to your item, with its own unit of measure, so a UPC or a case code on the 850 resolves to the right item and unit.
How does stock per location reach an 846?
Not through the standard API. The item entity in API v2.0 has one inventory figure per item. Stock per location for an 846 inventory advice comes from a custom API page or a query on the item ledger entries, which is set up as part of the integration.
Tell us what you need
Tell us which systems you use and what needs to work better. We reply personally within one working day. We help you define the work, then agree the price and timing before you commit.
- You know the price and the timeline before you commit to anything
- We work out the connection that takes the work off your hands
- We handle the build, hosting, monitoring and maintenance
- Your team has less information to retype and fewer discrepancies to chase