.png)

Dynamics 365 Business Central Integration Guide
Connect Business Central with enterprise applications through OData 4 REST APIs, supported webhook notifications, legacy SOAP services, and Martini workflows.
Dynamics 365 Business Central integration options at a glance
Dynamics 365 Business Central provides versioned REST APIs based on OData 4, including standard API v2.0 resources for Companies, Customers, Vendors, Items, orders, invoices, and other business objects. Supported API entities can publish webhook notifications, while SOAP web services remain available for legacy pages and codeunits. OAuth 2.0 through Microsoft Entra ID secures online API access, with Business Central permission sets applied separately. Martini can consume these APIs, receive supported webhook notifications, orchestrate scheduled and event-driven workflows, transform JSON payloads, and expose controlled APIs for downstream applications. Batch requests, pagination, checkpoints, and bounded retries support larger synchronizations.
Common Dynamics 365 Business Central integration patterns
Common Dynamics 365 Business Central data objects used in integrations
Authentication and security considerations
Microsoft Entra ID and OAuth 2.0
Business Central Online uses Microsoft Entra ID for API authentication. OAuth 2.0 client credentials are generally suitable for unattended Martini workflows, while delegated authorization is appropriate when an integration must act on behalf of a signed-in user.
Layered authorization
Microsoft Entra application permissions do not replace Business Central authorization. The associated application or service identity also requires suitable Business Central permission sets for the companies and operations it accesses.
Protected configuration
- Store client secrets, certificates, scopes, tenant values, and environment URLs in protected Martini environment configuration.
- Use least-privilege permissions and separate sandbox and production credentials.
- Do not place access tokens or secrets in workflow logs or mapped payloads.
Operational considerations for Dynamics 365 Business Central integrations
Pagination and throttling
Business Central REST results are paged. Follow continuation links, use efficient filters, limit concurrency, and apply bounded backoff for HTTP 429 and transient server errors.
Company scope and idempotency
Most resources are company-scoped. Preserve company context in keys and checkpoints, search for existing documents before creating them, and use deterministic source identifiers to prevent duplicate writes.
Concurrency and schema changes
Use ETags or a fresh read when concurrent edits are possible, and handle 412 conflicts with an explicit policy. Validate API metadata when extensions change standard entities or publish custom APIs.
Files and event coverage
Attachments and media require entity-specific confirmation. Webhooks cover selected API entities rather than every table or process, so scheduled reconciliation may be required.
Testing and monitoring
Test sandbox and production environment settings separately. Monitor pagination, totals, failed writes, retries, permissions, validation errors, and reconciliation results without exposing credentials.
Why use Martini instead of scripts or point-to-point integrations?
Orchestration beyond a script
Martini coordinates Business Central API calls, webhook intake, dependent lookups, target writes, validation, retries, and routing in maintainable workflows instead of scattering logic across scripts.
Reusable API and mapping assets
Martini can expose a controlled API façade that shields downstream applications from Business Central details. Reusable mappings and services can normalize Customers, Items, orders, and financial data across multiple consumers.
Operational control
- Use schedules, triggers, checkpoints, and bounded concurrency for reliable synchronization.
- Separate transient, authorization, conflict, and business validation failures.
- Keep environment configuration and secrets outside workflow logic.
- Support REST-first implementations while retaining SOAP workflows for legacy contracts.