ml-connector
Microsoft Dynamics NAVStampli

Microsoft Dynamics NAV and Stampli integration

Microsoft Dynamics NAV handles your general ledger and vendor master. Stampli automates your accounts payable process with invoice capture and approval workflows. Connecting the two keeps your invoice records and vendor information synchronized without manual re-entry. Invoices approved in Stampli flow into NAV's general ledger, and vendor changes in either system stay aligned across both platforms.

How Microsoft Dynamics NAV works

Microsoft Dynamics NAV exposes vendors, purchase orders, purchase invoices, GL accounts, dimensions, and general ledger entries through OData v4 REST APIs (primary) or SOAP web services (legacy). The cloud product (Dynamics 365 Business Central online) authenticates via OAuth 2.0 through Microsoft Entra ID, while on-premises instances use OAuth 2.0 or basic auth with a web service access key. NAV publishes a base URL with tenant and company identifiers, and supports webhook subscriptions that expire every 3 days and must be renewed before expiry. GL accounts are read-only, but general ledger entries can be posted through journal APIs. On-premises deployments require OData services to be enabled via the NAV Server Administration tool and the OData port (7048) must be opened through the firewall.

How Stampli works

Stampli does not publish a public REST API; all third-party integration is file-based via SFTP. Customers export invoice, vendor, GL account, and payment data as CSV or XML files to an outbound SFTP directory that third-party connectors can poll. Stampli handles no public OAuth2 or API key authentication; SFTP integration uses standard username and password credentials. There are no documented public webhooks, rate limits, or sandbox environments accessible to third parties. Internal refresh rates run at approximately 5 minutes for invoices and vendors, and 2 hours for purchase orders. Stampli recommends implementing duplicate detection logic on the connector side since file-based exports may repeat across polling intervals.

What moves between them

The main flow runs from Stampli into Microsoft Dynamics NAV. Approved invoices exported by Stampli are retrieved via SFTP polling and posted into NAV's general ledger as purchase journals, mapped to the matching NAV vendors and GL dimensions. Vendor and GL account reference data flow in both directions to keep NAV's vendor master and chart of accounts aligned with Stampli's configuration. Invoices are read-only in Stampli's file-based interface, so ml-connector never writes financial entries back; payment execution remains in Stampli's hands while NAV maintains the accounting record.

How ml-connector handles it

ml-connector stores SFTP credentials encrypted and polls Stampli's outbound directory on a schedule you define (typically every 15 to 30 minutes) to detect new invoice and vendor exports. On the NAV side, it authenticates via OAuth 2.0 to the cloud product or basic auth to on-premises instances, validates the tenant and company identifiers, and accepts the configured base URL for either deployment model. Because Stampli's file-based interface has no push notifications, polling is the only viable sync mechanism. ml-connector implements duplicate detection across polling cycles, since Stampli CSV exports may repeat the same records. Vendors and GL dimensions are mapped and validated before invoices are posted, so each journal entry references valid NAV accounts and dimensions. NAV webhook subscriptions expire every 3 days, so ml-connector implements a subscription renewal loop to maintain the sync even if pull-based polling is the primary flow. For on-premises NAV, firewall rules and OData service configuration must be in place before the first connection. Every record carries a full audit trail and can be replayed if a downstream NAV posting fails.

A real-world example

A mid-sized distribution company runs Microsoft Dynamics NAV for finance and vendor management, and uses Stampli to automate accounts payable processing with invoice capture and approval workflows across two locations. Before the integration, the finance team exported approved invoices from Stampli weekly as CSV files and manually coded each to the correct NAV GL accounts and cost centers, a task that consumed 8 to 12 hours per week and introduced coding errors that surfaced during month-end close. With Stampli and NAV connected, each weekly export from Stampli flows automatically into NAV's general ledger with dimensions and accounts already mapped, eliminating the manual re-entry step. Vendor master changes in Stampli sync back to NAV, keeping the two systems aligned, and the finance team reclaims those hours for higher-value close activities.

What you can do

  • Post approved Stampli invoices into Microsoft Dynamics NAV's general ledger on a polling schedule you control, mapped to the correct GL accounts and dimensions.
  • Keep NAV vendor records synchronized with Stampli vendor updates by bidirectional vendor and GL dimension sync.
  • Handle OAuth 2.0 authentication to NAV cloud instances and basic auth to on-premises NAV deployments, including NAV on-premises OData service validation.
  • Implement duplicate detection across SFTP polling cycles to prevent duplicate journal postings in NAV when Stampli exports repeat records.
  • Maintain a full audit trail on every invoice, vendor, and dimension record, with replay capability if a NAV posting fails or needs reversal.

Questions

Which direction does data move between Microsoft Dynamics NAV and Stampli?
The primary flow is Stampli into NAV. Approved invoices and vendor exports from Stampli are posted into NAV's general ledger and vendor master. Vendor and GL dimension reference data sync bidirectionally so that Stampli's configuration stays aligned with NAV's chart of accounts and vendor master. NAV general ledger entries are immutable once posted, so ml-connector never writes financial entries back to Stampli; payment execution remains in Stampli's hands.
Does Stampli's SFTP-only integration require special setup compared to rest API connectors?
Yes. Stampli publishes no public REST API, so ml-connector retrieves data by polling the SFTP outbound directory on a schedule (typically every 15 to 30 minutes). This means no webhook push, no API endpoints to validate, and no rate limits to manage. ml-connector implements duplicate detection to handle the fact that SFTP polls may retrieve the same records across multiple cycles.
How does ml-connector handle the differences between NAV cloud and on-premises deployment models?
ml-connector accepts either deployment type: for NAV cloud (Dynamics 365 Business Central online) it uses OAuth 2.0 to Microsoft Entra ID with the cloud base URL; for on-premises it uses basic auth or OAuth 2.0 with the customer's on-premises server hostname and port. On-premises deployments require the OData service to be enabled via NAV Server Administration and the OData port (7048) to be open through the firewall. NAV webhook subscriptions expire every 3 days, so ml-connector renews them to maintain sync even when pull-based polling is the primary flow.

Related integrations

Connect Microsoft Dynamics NAV and Stampli

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started