Dynamics 365 Business Central integration
ModernMES reads items and customers from Microsoft Dynamics 365 Business Central through the standard API v2.0, and sends finished work and scrap as item journal lines. One condition: the standard API has no item journal, so output is booked through a small API page your Business Central partner publishes.
Last updated: 20 October 2026
Why an extra API page is needed
Business Central's standard API v2.0 exposes items, customers and sales documents, but not the Item Journal Line table (table 83) that output and adjustments are posted through. The usual way to open it is a custom API page published by your partner, a small piece of AL development.
ModernMES sends these fields to that page, and your partner writes the page against this contract:
| Field | Content |
|---|---|
| itemNumber | Item no. (the ModernMES part code, or the mapped BC code) |
| postingDate | The day the job was finished |
| entryType | Output for good quantity (Positive Adjmt. if you do not use production orders); Negative Adjmt. for scrap |
| quantity | Quantity |
| locationCode | The location chosen in the settings |
| documentNumber | The ModernMES work order number |
| description, externalReference | The project and the record's unique ModernMES reference |
Whether a line is posted at once or left in the journal for review is up to the page your partner writes. Without the page the connection still works for pulling items and customers.
What comes from Business Central
- Items: number, display name and base unit of measure; blocked items are skipped. They become parts in ModernMES.
- Customers: number, name, tax registration number, email, phone and city.
Records are pulled with a button in the settings screen, nothing is deleted, and differing codes are mapped per part.
Authentication and requirements
- An app registered in Microsoft Entra ID (client ID and secret), entered on Business Central's Microsoft Entra Applications page with suitable permission sets. The connection uses service-to-service OAuth, not a user's password.
- The Entra tenant ID, the environment name (production by default), the company name and a location code.
- The path of the item journal API page your partner published.
Business Central runs in Microsoft's cloud, so the cloud version of ModernMES connects to it directly; no network changes are needed. The client secret is stored encrypted.
Setting it up
- We send your partner the field contract above and they publish the API page.
- We set up the connection together and send trial lines to a sandbox environment, then check them with your partner.
- Once they are right we switch to production. You choose when to send: when the part's last operation finishes (the default), after every operation, or only manually.
Lines are sent in the background. If Business Central does not answer, ModernMES tries 8 times at intervals growing from 1 minute to 12 hours, and the transfer log shows the outcome of each record.
What it does not do
- It does not bring Business Central production orders or sales orders into ModernMES.
- It does not post component consumption against a bill of materials.
- It does not read inventory levels back into ModernMES.
Frequently asked questions
Can we use it without the custom API page?
Partly. Items and customers are pulled through the standard API; sending output and scrap needs the item journal API page.
Who writes the API page?
It is written in AL and published in your Business Central, usually by your Business Central partner. We supply the field contract and work with them during testing.
How is scrap booked?
With "Send scrap" on, the scrap quantity is sent as a Negative Adjmt. item journal line for the same location.
Does it work with Business Central on-premises?
The connection is written for Business Central online's API endpoints and Entra ID. If you run Business Central on your own servers, talk to us before setting it up.
Related pages
- SAP Business One Integration for Shop Floor OutputModernMES books finished work in SAP Business One as a Goods Receipt and scrap as a Goods Issue through the Service Layer, and pulls items and customers.
- Odoo MRP Integration: Shop Floor Output to OdooModernMES turns each finished job into a completed Odoo manufacturing order, consuming the BoM, and books scrap. Odoo 16 to 18 with MRP and Inventory.
- Webhooks and JSON Integration for Work Order EventsReceive signed work order webhooks and send production and scrap records to your own endpoint with the generic JSON connection. Headers, signatures, retries.
- Project-Based Production Tracking for Machine BuildersEngineer-to-order tracking for machine builders: projects, parts and operations, deadline feasibility per department, and the actual hours behind each quote.