Bramvia — Business Central Experts
Business Central API and integrations: the practical guide (REST, OData, webhooks, and what replaced SQL)
How to integrate with Business Central online in 2026: the standard REST API v2.0, custom APIs in AL, OData for reporting, webhooks for events, Power Automate, and MCP for AI. What you can't do (direct SQL) and the patterns that survive updates.
Short answer: Business Central online exposes everything through APIs, not the database. The main entry points: the standard REST API (v2.0) for the common entities (customers, items, sales orders, invoices, journals), custom API pages written in AL for anything the standard doesn't cover, OData for reporting and Power BI, webhooks to be notified of changes instead of polling, Power Automate for low-code flows, and — new since 2026 — an MCP server that lets AI agents and tools query and act on Business Central data. What you cannot do is connect to SQL: there is no direct database access in the cloud, and every integration built on it in NAV has to be rebuilt. The good news: integrations built on APIs and events survive the two annual updates — the ones built on table structures never did.
The integration surface, in one table
| Layer | Use it for | Notes |
|---|---|---|
| Standard REST API v2.0 | CRUD on ~60 standard entities: customers, vendors, items, sales/purchase documents, journals, GL | OAuth 2.0 (Microsoft Entra), JSON, $filter/$expand, batch requests |
| Custom APIs (AL API pages) | Anything not in the standard: your fields, your tables, your business logic | Versioned, published from your extension; the right answer for real integrations |
| OData v4 | Reporting, Power BI, read-heavy extracts | Exposes queries and pages; supports $select, $top; use API queries for volume |
| Webhooks / subscriptions | Get notified on create/update/delete instead of polling | Standard for API entities; custom via API pages |
| Power Automate | Low-code flows: approvals, notifications, Teams, SharePoint, email | Business Central connector; good for orchestration, not for heavy data |
| Business Events | Event-driven integration on business actions (order posted, invoice created) | Publish to Dataverse/Power Platform |
| MCP server | AI agents and tools reading and acting on BC data with permissions | Agent Designer; BC29 adds custom data queries via MCP |
| Report inbox APIs (BC29) | Automate report output: collect, distribute, archive | Combine with Power Automate or MCP |
What replaced SQL — and why it's better
In NAV on-premises, half of all integrations read tables directly: Power BI on SQL, a middleware polling Sales Header, an e-commerce sync writing rows. In Business Central online that door is closed by design. The replacements:
- Reporting: API queries and OData with incremental refresh; the four Power BI apps included cover most of what custom SQL reports did.
- Polling: webhooks and business events — you get told when something changes.
- Writes: through API pages that run your validation logic — no more rows inserted behind the business rules.
The practical effect: integrations stop breaking at every update. The migration effort is real, but you do it once.
Patterns that work (and the ones that don't)
Do
- Use the standard API first; write a custom API page only for what's missing.
- Version custom APIs (
APIVersion) so consumers don't break when you extend them. - Use
$selectand$filter— pulling full entities at scale is the #1 performance mistake. - Authenticate with an Entra app registration and application permissions; never a user's credentials in a config file.
- Handle 429/throttling with backoff; batch where you can.
- Put integration logic in an extension with events, not in the standard.
Don't
- Don't screen-scrape pages or use deprecated SOAP web services over UI pages — they are being removed; OData/API is the path.
- Don't build on undocumented table IDs or internal structures — BC29's new table-extension data model is exactly the kind of change that punishes it.
- Don't sync everything every five minutes. Subscribe to changes.
Typical integrations we build
| System | Pattern |
|---|---|
| Shopify / e-commerce | Standard Shopify connector where it fits; custom API pages for pricing, B2B catalogues, returns |
| EDI | E-Documents framework (BC29 adds Peppol BIS 3 orders/payments) or a custom API for legacy EDI providers |
| WMS / 3PL | Custom API pages for picks, receipts and stock; webhooks for order release |
| Banks | Bank feeds where available; custom file formats as extensions |
| CRM (Dynamics 365 Sales, others) | Dataverse integration for D365 Sales; APIs for others |
| Tax engines (Avalara, Vertex) | Certified connectors; extension hooks for edge cases |
| Power BI | Included apps plus consolidated multi-company OData views |
For US partners short of AL capacity
Most of the above is AL work — API pages, event subscribers, extensions. If your team is booked, we take integration and development backlog white-label: code in your repository, written documentation, delivered overnight from Europe. Small first part, paid after acceptance.
FAQ
Can I still access the database in Business Central online? No. Not read-only either. Everything goes through APIs, OData or events.
Are the standard APIs enough? For basic CRUD, often yes. For anything involving your custom fields or logic, you'll want a custom API page — a few hours of AL, not a project.
What about performance for large extracts? Use API queries (not pages), filter server-side, paginate, and schedule off-peak. For Power BI, incremental refresh over OData.
Is MCP production-ready? The MCP server shipped in 2026 wave 1 and BC29 extends it with custom data queries. It's how AI agents will talk to Business Central; worth designing for now.
Need an integration built, or a NAV-era SQL integration rebuilt for the cloud? Free assessment, no commitment — first reply within one working day.