Ellipse Gradient for Header
Dynamics 365 Finance logo

Dynamics 365 Finance Integration Guide

Integrate Dynamics 365 Finance with enterprise applications through OData REST APIs, data-management packages, selected business events, custom services, and secure Microsoft Entra ID authentication.

Dynamics 365 Finance integration options at a glance

Dynamics 365 Finance provides OData-based REST APIs for public data entities, Data Management Framework APIs for bulk and asynchronous package movement, and business events for selected business and system notifications. Custom services, including SOAP endpoints, support specialized or compatibility-oriented operations. File-based imports and exports are available through data management, while attachment handling requires object-specific validation. Finance APIs normally use Microsoft Entra ID and OAuth 2.0, with application users and Finance security roles controlling access. Martini can consume these endpoints, receive selected event notifications, schedule synchronization workflows, transform data, and expose intermediary APIs for downstream applications.

Integration pointSupported by Dynamics 365 Finance?Common use casesHow Martini supports it
OData REST APIsYesQuery, create, update, and permitted deletion of public data entities such as Customers, Vendors, Released products, and order entities. Filtering, selection, expansion, keys, and supported batch requests help implement transactional and master-data integrations.Martini can consume REST endpoints, configure authentication and environment values, map responses and requests, apply validation, and orchestrate multi-step workflows.
Bulk and asynchronous package APIsYesData Management Framework APIs support package imports, exports, recurring integrations, asynchronous jobs, and larger file-based data movements.Martini can create or transform packages, submit jobs, poll processing status, handle row-level errors, and schedule recurring workflows.
Business events and notificationsLimitedSelected business and system events can be delivered through HTTPS, Azure Service Bus, Azure Event Grid, or Power Automate-related endpoints. Coverage is not universal across Finance objects or operations.Martini can expose an API or consume supported event messages, retrieve additional Finance details, and combine event processing with reconciliation schedules.
SOAP custom servicesLegacyCustom services and SOAP endpoints support specialized business operations, existing contracts, or operations unavailable through standard public data entities.Martini can consume SOAP services, transform XML messages, orchestrate custom operations, and apply service-specific error handling.
File and attachment handlingLimitedFinance supports file-based imports and exports through data management. Attachments require validation of the business object, document representation, endpoint, file size, and content type.Martini can process files, transform structured data, and route object-specific attachment or document-management calls through workflows.
Database and analytics accessLimitedDirect SQL access to the cloud transactional database is not the normal model. BYOD, Synapse-related capabilities, supported exports, and other analytics patterns are used for downstream reporting and data platforms.Martini can orchestrate supported exports and transform data for downstream platforms, but should not write directly to Finance transactional tables.
Microsoft Entra ID and OAuth 2.0YesService-to-service client credentials and delegated access use Entra ID tokens, application registrations, Finance application identities, and configured security roles.Martini can store tenant, client, secret or certificate, token, and environment settings in protected configuration and use them in API workflows.

How Dynamics 365 Finance exposes data and business events

Dynamics 365 Finance REST APIs

Dynamics 365 Finance exposes public data entities through OData-based REST endpoints. Supported operations include querying, creating, updating, and permitted deletion, with filtering, selection, expansion, keys, and supported batch behavior.

Martini implementation pattern

Martini implementation pattern: a workflow authenticates with Microsoft Entra ID, calls the appropriate OData endpoint, follows pagination or continuation links, maps the entity into a canonical model, and writes the result to a target or returns it through a Martini API.

Implementation sequence

Authenticate with Microsoft Entra ID
Call the selected Finance OData entity
Follow continuation links and collect pages
Map and validate the entity
Write the result to the target system
Persist the synchronization checkpoint

Dynamics 365 Finance Data Management APIs

The Data Management Framework supports file-based and package-based imports and exports, including larger, asynchronous, recurring, and high-volume data movements.

Martini implementation pattern

Martini implementation pattern: a workflow prepares or transforms a Finance-compatible package, submits it, records the job identifier, polls for completion, and separates package failures from row-level validation errors.

Implementation sequence

Prepare the Finance-compatible package
Submit the package to Data Management
Store the processing job identifier
Poll for final job status
Process accepted and rejected rows
Publish or route the outcome

Dynamics 365 Finance Business Events

Finance business events provide notifications for selected business and system events through configured HTTPS, Azure Service Bus, Azure Event Grid, or Power Automate-related delivery options. Event coverage is selective.

Martini implementation pattern

Martini implementation pattern: Martini exposes an API or consumes a supported message, validates the event and correlation identifier, retrieves complete Finance details when needed, and combines event handling with reconciliation for coverage gaps.

Implementation sequence

Receive the selected Finance event
Validate the event type and correlation identifier
Retrieve complete Finance details when required
Map the event to a canonical message
Deliver the message downstream
Record delivery and reconciliation state

Dynamics 365 Finance Custom SOAP Services

Finance custom services can expose SOAP-based operations for specialized business processes, existing contracts, or operations not available through public data entities. SOAP is generally a legacy or compatibility-oriented choice for new designs.

Martini implementation pattern

Martini implementation pattern: a workflow sends an authenticated XML request, maps the service response, applies business validation, and routes SOAP faults or transport failures according to retry policy.

Implementation sequence

Authenticate to the custom service
Build the XML service request
Invoke the SOAP operation
Parse the service response
Apply business validation
Handle faults and record the outcome

Dynamics 365 Finance File and Attachment Processing

Finance supports file imports and exports through data management. Document attachments require object-specific verification because files may be represented as documents, notes, URLs, or binary content.

Martini implementation pattern

Martini implementation pattern: Martini receives or creates a file, validates its object association, name, type, and size, transforms structured content where needed, and invokes the supported Finance data-management or document endpoint.

Implementation sequence

Receive or create the source file
Validate object association and file metadata
Transform structured file content
Submit the supported Finance operation
Capture the processing result
Route rejected files to exception handling

Common Dynamics 365 Finance integration patterns

Pattern 1: Synchronize customers and vendors

When to use this pattern

Use this pattern when Finance owns customer or supplier master data that must remain aligned with CRM, procurement, service, or another finance platform. Scheduled incremental synchronization is appropriate when event coverage is not available for the required objects.

Integration direction
Dynamics 365 Finance
Martini
Salesforce
Example Mapping
Dynamics 365 Finance FieldCanonical FieldTarget Field
CustomerAccountparty.accountIdAccount.externalFinanceId
Nameparty.nameAccount.name
CustomerGroupparty.customerGroupAccount.financeSegment
VendorAccountsupplier.accountIdSupplier.externalFinanceId
Martini implementation pattern

A scheduled Martini workflow queries Customers and Vendors with selective fields and an incremental filter, follows pagination, validates legal-entity context, maps the result, and creates or updates the target. It persists watermarks and correlation keys, retries transient failures with bounded backoff, and routes validation failures to an exception process.

Martini capabilities used
  • workflows
  • scheduled triggers
  • API consumption
  • data mapping
  • business rules
  • error handling

Pattern 2: Orchestrate sales orders into Finance

When to use this pattern

Use this pattern when Commerce, CRM, or another order source must create sales orders in Finance and receive the Finance order number and processing status.

Integration direction
Dynamics 365 Commerce
Martini
Dynamics 365 Finance
Example Mapping
Dynamics 365 Finance FieldCanonical FieldTarget Field
ExternalOrderIdorder.sourceIdSales order external reference
CustomerAccountorder.customerIdSales order customer account
ItemNumberorder.lines[].productIdSales line released product
OrderedSalesQuantityorder.lines[].quantitySales line quantity
Martini implementation pattern

Martini receives an API request, resolves the Finance customer and Released products, validates currency, legal entity, tax, delivery, and line information, then creates the header and lines through OData or a suitable service. An idempotency key and correlation table prevent duplicate orders; ambiguous outcomes are held for reconciliation rather than blindly retried.

Martini capabilities used
  • API exposure
  • workflows
  • API consumption
  • data mapping
  • validation
  • business rules
  • retry handling

Pattern 3: Load high-volume finance data

When to use this pattern

Use this pattern for initial migration, recurring exports, or large master-data and financial loads where individual OData calls would be inefficient or difficult to control.

Integration direction
Martini
Dynamics 365 Finance
Microsoft Power BI
Example Mapping
Dynamics 365 Finance FieldCanonical FieldTarget Field
AccountNumcustomer.accountIdCustomer account key
InvoiceAccountorder.billingAccountIdBilling account
MainAccountjournal.mainAccountAnalytics main account
AmountMSTjournal.amountBaseBase currency amount
Martini implementation pattern

A Martini workflow transforms source data into a Finance-compatible package or processes a supported export, submits it through Data Management, stores the job identifier, polls for completion, and separates package-level failures from row-level errors. Results are mapped to an analytics or downstream data model and retained for reconciliation.

Martini capabilities used
  • workflows
  • scheduling
  • file processing
  • data mapping
  • API consumption
  • error handling

Pattern 4: Process business events with reconciliation

When to use this pattern

Use this pattern when a supported Finance business event can provide near-real-time notification but event coverage or delivery guarantees are insufficient for complete synchronization.

Integration direction
Dynamics 365 Finance
Martini
Azure Service Bus
Example Mapping
Dynamics 365 Finance FieldCanonical FieldTarget Field
BusinessEventIdevent.idMessage.correlationId
EventTypeevent.typeMessage.eventType
LegalEntityorganization.legalEntityMessage.company
EntityKeyresource.keyMessage.resourceKey
Martini implementation pattern

Martini receives the selected event, validates and stores the original payload, retrieves authoritative Finance details, transforms the message, and publishes it downstream. A scheduled reconciliation workflow checks modified records or supported exports for missed events, while retries and dead-letter handling isolate transient and permanent failures.

Martini capabilities used
  • API exposure
  • webhook consumption
  • workflow orchestration
  • scheduled triggers
  • data mapping
  • monitoring
  • error handling

Applications commonly integrated with Dynamics 365 Finance

Dynamics 365 Finance can be integrated with Microsoft products and other enterprise applications when finance, operational, customer, procurement, or analytics data must cross system boundaries. Martini can orchestrate these exchanges through documented APIs, events, files, and workflows; exact object ownership and direction should be defined for each deployment.

Application Scenario Direction Martini Pattern
Dynamics 365 Sales Synchronize customers, products, orders, and financial status between customer-facing sales processes and finance operations. Dynamics 365 Sales → Martini → Dynamics 365 Finance Use REST APIs or configured Dataverse-related endpoints, map customer and order models, validate Finance legal-entity and product context, and persist correlation identifiers for status updates.
Dynamics 365 Supply Chain Management Coordinate procurement, inventory, product, warehouse, and fulfillment information with financial processing. Dynamics 365 Supply Chain Management → Martini → Dynamics 365 Finance Orchestrate entity synchronization and business rules in workflows, use OData for supported operations, and use bulk packages for larger product or procurement loads.
Dynamics 365 Commerce Exchange commerce orders, customers, payments, products, prices, inventory, and fulfillment information with Finance. Dynamics 365 Commerce → Martini → Dynamics 365 Finance Receive transaction payloads, resolve Finance customers and released products, create validated sales orders, and return Finance identifiers and status to Commerce.
Microsoft Power BI Provide financial and operational reporting from Finance data through supported export or analytics patterns. Dynamics 365 Finance → Martini → Microsoft Power BI Schedule supported Finance exports, transform fields into an analytics-ready model, and deliver data to the configured reporting pipeline without direct transactional database access.
Salesforce Synchronize customer, account, opportunity, order, or invoice information when Salesforce is the customer-facing system and Finance is the financial system of record. Salesforce → Martini → Dynamics 365 Finance Expose or consume APIs, apply ownership and duplicate rules, map account and order identifiers, and route validation failures to an exception workflow.
SAP S/4HANA Coordinate financial, procurement, product, or supply-chain data across Microsoft and SAP landscapes. SAP S/4HANA → Martini → Dynamics 365 Finance Use Martini workflows to mediate APIs or files, normalize canonical finance objects, apply legal-entity rules, and monitor acknowledgements and retries.
ServiceNow Exchange approved procurement requests, supplier information, financial approvals, or asset-related financial data. ServiceNow → Martini → Dynamics 365 Finance Receive approved requests through an API, validate vendor and financial dimensions, submit Finance operations, and return processing status to ServiceNow.
Azure Service Bus Distribute selected Finance business events through asynchronous enterprise workflows. Dynamics 365 Finance → Azure Service Bus Receive or relay event notifications through a Martini workflow, retrieve complete Finance details when necessary, transform the message, and preserve event correlation and failure state.

How to build a Dynamics 365 Finance integration in Martini

Objective

Establish the Finance and target-system connections with environment-specific configuration and least-privilege identities.

Instructions in Martini

  • Configure the Finance environment URL, tenant, client identifier, and secret or certificate as protected configuration.
  • Use Microsoft Entra ID and OAuth 2.0 for service-to-service access where appropriate.
  • Configure Finance application users, security roles, duties, privileges, and legal-entity access.
  • Keep development, test, and production identities and secrets separate.

Objective

Select an event-driven, API-led, scheduled, or package-based trigger that matches the required latency and completeness.

Instructions in Martini

  • Use a Martini API for inbound orders or controlled façade operations.
  • Receive selected Finance business events when the required event and endpoint are available.
  • Use a scheduler for polling, incremental synchronization, reconciliation, or recurring packages.
  • Use Data Management APIs for high-volume asynchronous movement.

Objective

Retrieve the required Finance objects efficiently and preserve enough context for reliable processing.

Instructions in Martini

  • Call the relevant public OData entity or supported service.
  • Use $select and $filter where available and follow server-provided continuation links.
  • Capture legal entity, business keys, correlation identifiers, and source timestamps.
  • Poll package jobs until their final status is known.

Objective

Coordinate calls, lookups, transformations, business rules, and outcomes in a maintainable Martini workflow.

Instructions in Martini

  • Resolve Customers, Vendors, Released products, and organizational context before dependent writes.
  • Separate transport retries from business validation failures.
  • Use correlation identifiers across every request, event, package, and target response.
  • Persist checkpoints and package identifiers outside transient workflow state when restarts must resume safely.

Objective

Convert Finance entities, packages, XML, or event payloads into the target system's contract.

Instructions in Martini

  • Map Finance entity fields to a canonical model before applying target-specific mappings.
  • Transform JSON, XML, CSV, or package content as required by the selected mechanism.
  • Validate required keys, currencies, dimensions, quantities, dates, and legal-entity values.
  • Preserve source identifiers and Finance keys for reconciliation.

Objective

Apply ownership, duplicate prevention, authorization, and organizational rules before committing sensitive finance operations.

Instructions in Martini

  • Check external references or alternate keys before creating orders, vendors, or journals.
  • Confirm that customer, vendor, product, account, currency, site, warehouse, and dimension values are valid.
  • Reject incomplete records as business errors instead of repeatedly retrying them.
  • Use idempotent or controlled processing for sales orders, purchase orders, journals, and payments.

Common Dynamics 365 Finance data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
CustomersSynchronize customer master data, addresses, contact details, customer groups, and account references.Dynamics 365 Sales, Dynamics 365 Commerce, Salesforce, ServiceNowMartini queries or receives customer data, applies legal-entity and identity rules, maps fields, and stores source-to-Finance correlation identifiers.
VendorsExchange supplier master data, payment information, addresses, and vendor groups.Dynamics 365 Supply Chain Management, SAP S/4HANA, ServiceNowMartini validates vendor keys and payment-related fields, transforms the supplier model, and routes rejected records for review.
Released productsSynchronize product identifiers, units, dimensions, procurement settings, and sales settings by legal entity.Dynamics 365 Commerce, Dynamics 365 Supply Chain Management, SalesforceMartini maps product and organization context, validates required dimensions, and uses OData or bulk packages according to volume.
Sales order headers and linesCreate and synchronize customer orders, quantities, prices, delivery information, statuses, and sales lines.Dynamics 365 Commerce, Dynamics 365 Sales, SalesforceMartini validates customers and released products, maps header-line relationships, prevents duplicate creation, and returns Finance order numbers.
Purchase order headers and linesExchange procurement orders, vendor references, quantities, prices, delivery dates, and purchase lines.Dynamics 365 Supply Chain Management, SAP S/4HANA, ServiceNowMartini applies vendor, legal-entity, currency, and delivery rules, then submits individual operations or packages with retry and exception handling.
General journal entriesMove accounting journal headers and lines, dimensions, vouchers, and posting-related information.SAP S/4HANA, Microsoft Power BI, downstream finance platformsMartini validates dimensions and organizational context, transforms journal structures, and treats posting and duplicate prevention as controlled business operations.

Authentication and security considerations

Microsoft Entra ID and OAuth 2.0

Dynamics 365 Finance service access normally uses Microsoft Entra ID and OAuth 2.0. Client credentials support service-to-service workflows, while delegated access can support operations performed on behalf of a user.

Authorization and secrets

Tokens do not grant unrestricted Finance access. Application users, security roles, duties, privileges, data-entity permissions, legal-entity access, and custom-service operations must be configured in Finance. Store tenant identifiers, client credentials, certificates, tokens, and environment URLs in protected Martini configuration rather than workflow logic.

  • Use separate identities and permissions for development, test, and production.
  • Apply least privilege to Finance application users and Martini APIs.
  • Protect financial and personal data in logs and exception payloads.

Operational considerations for Dynamics 365 Finance integrations

Reliability and service protection

Use bounded concurrency, pagination, selective OData queries, exponential backoff for throttling and transient HTTP failures, and separate handling for transport and business errors.

Consistency and idempotency

Persist watermarks, external references, package identifiers, and correlation keys. Do not blindly retry creates when the original result is unknown, particularly for sales orders, purchase orders, journals, and payments.

Finance context

Validate legal entities, currencies, financial dimensions, sites, warehouses, customer accounts, vendor accounts, and released products. Entity availability and fields vary by version, enabled features, localization, and extensions.

Events, files, and testing

Business events cover selected processes rather than every change. Confirm event activation, payloads, delivery behavior, and reconciliation requirements. Validate attachment representation, file size, content type, and retention rules. Test contracts against the target Finance environment and monitor identifiers, result counts, rejected rows, and failed events.

Why use Martini instead of scripts or point-to-point integrations?

Reusable integration workflows

Martini centralizes authentication, API calls, package processing, mapping, validation, business rules, retries, and exception handling in maintainable workflows instead of distributing logic across isolated scripts.

Flexible integration patterns

Martini can combine REST APIs, selected event notifications, SOAP services, files, schedules, and exposed APIs. This allows a Finance integration to use OData for transactions, Data Management for volume, and reconciliation when event coverage is incomplete.

Operational control

Shared workflows provide durable checkpoints, correlation identifiers, controlled concurrency, observability, and consistent handling of transient failures and rejected business data. Developers can extend transformations and rules when configuration alone is insufficient.

Frequently asked questions

How can Dynamics 365 Finance be integrated with enterprise systems?

Dynamics 365 Finance can integrate through OData-based REST APIs for public data entities, Data Management Framework APIs for bulk and asynchronous packages, selected business events, custom services including SOAP endpoints, and file-based imports and exports. Microsoft Entra ID and OAuth 2.0 secure service access, while supported Microsoft services can provide event and analytics integration patterns.

Can Martini integrate with Dynamics 365 Finance?

Yes. Martini can consume Dynamics 365 Finance OData REST APIs, submit and monitor supported data-management packages, receive selected business-event notifications, consume custom SOAP services, transform files, expose intermediary REST APIs, and orchestrate these mechanisms in workflows. A native Martini connector is not documented in the supplied materials.

Do I need a connector to integrate Dynamics 365 Finance with Martini?

No. A dedicated Dynamics 365 Finance connector is not required. Martini can use Finance's native OData APIs, Data Management APIs, selected business events, custom services, file mechanisms, and Microsoft Entra ID authentication.

Is there any extra Lonti cost to integrate Dynamics 365 Finance with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Dynamics 365 Finance. The integration is subject to the provisioned capacity of the Martini environment. Separate Microsoft, Azure, infrastructure, or other third-party costs may apply based on licensing, usage, and deployment architecture.

Which Dynamics 365 Finance integration method should be used?

Use OData REST APIs for supported transactional and master-data entity operations, Data Management Framework APIs for large, recurring, file-based, or asynchronous movement, and custom services when a required business operation is not available through public data entities. SOAP is generally a specialized or legacy compatibility option.

Can Martini receive Dynamics 365 Finance events?

Martini can receive webhook-style HTTP notifications or consume supported messages when Finance is configured to deliver a selected business event through HTTPS, Azure Service Bus, Azure Event Grid, or a related endpoint. Event coverage is selective, so event-only designs should be supplemented with polling or reconciliation when complete coverage is required.

How are synchronization, mapping, and duplicate prevention handled?

Martini workflows can use scheduled or event-driven synchronization, pagination, modified-date or supported change-tracking patterns, durable watermarks, canonical mappings, validation, and correlation tables. External references, alternate keys, and pre-create checks help prevent duplicate Customers, orders, vendors, and journals.

Can Martini expose an API façade for Dynamics 365 Finance?

Yes. Martini can expose a controlled REST API that validates and normalizes requests from commerce, CRM, or other applications, orchestrates Finance API or package calls, applies business rules, and returns a stable contract without exposing Finance-specific details directly.