Microsoft Dynamics NAV and Cin7 integration
Microsoft Dynamics NAV is the ERP backbone for finance, procurement, and inventory. Cin7 Core manages inventory and order operations, with integrated accounting. Connecting the two keeps your purchase-to-pay and order-to-cash cycles in agreement and eliminates manual journal entry. New purchase invoices from Cin7 flow into NAV's general ledger, inventory movements align across both systems, and supplier and customer master data stays consistent.
What moves between them
Purchase invoices and sales invoices from Cin7 flow into Microsoft Dynamics NAV as general ledger journal entries, allocated to the appropriate GL accounts and dimensions in NAV. Inventory movements are synced in both directions so stock on hand in NAV reflects physical and received inventory in Cin7. Supplier and customer master records flow bidirectionally so new suppliers added in Cin7 become vendors in NAV, and new customers in NAV are visible in Cin7. Cin7 webhooks trigger real-time updates for sales, purchases, and stock changes, while NAV inventory and GL data is polled to maintain downstream consistency.
How ml-connector handles it
ml-connector stores Cin7's API key headers encrypted and presents them on every API call, refreshing the key if rate limits are approached. On the NAV side, it uses OAuth 2.0 client credentials to authenticate against the customer's Entra ID tenant and accepts the tenant-specific base URL for online instances, or the on-premises server address and port if applicable. For online customers, ml-connector subscribes to NAV webhooks on purchase invoices, sales invoices, vendors, customers, items, and general ledger entries, and renews subscriptions before the 3-day expiry window. For on-premises or customers without webhooks enabled, it polls NAV inventory and GL tables on a schedule. Cin7 webhook events for sales, purchases, and stock changes trigger immediate reconciliation in NAV. Purchase invoices are mapped to NAV journal lines with GL account and dimension references validated before posting, and sales invoices are posted as customer GL documents. Supplier and customer synchronization is bidirectional using name and contact fields as match keys. Every record carries a full audit trail with timestamps and status tracking.
A real-world example
A mid-size product distributor runs Microsoft Dynamics NAV on-premises for finance, procurement, and inventory accounting, and uses Cin7 Core for order management and supply chain visibility across three regional warehouses. Before the integration, the accounting team manually exported invoices from Cin7 each week and re-entered purchase and sales totals into NAV's general ledger, and warehouse staff kept separate inventory counts because NAV and Cin7 diverged. With Cin7 connected to NAV, each purchase invoice posts automatically to the correct GL account, warehouse inventory movements sync in real time so both systems show the same stock levels, and supplier changes in Cin7 automatically create vendors in NAV. Month-end reconciliation is faster, and the warehouse no longer maintains duplicate records.
What you can do
- Post purchase and sales invoices from Cin7 into Microsoft Dynamics NAV's general ledger with GL account and dimension mapping.
- Sync inventory movements bidirectionally so stock on hand, received goods, and available inventory match across both systems.
- Map Cin7 suppliers and customers to NAV vendors and customers, keeping master data consistent in both directions.
- Authenticate Cin7 with custom API key headers and NAV with OAuth 2.0 via Microsoft Entra ID, handling online and on-premises instances.
- Receive Cin7 webhook events for sales, purchases, and stock changes, with polling fallback for NAV data that webhooks do not cover, and full audit trails on every record.
Questions
- How does the integration handle Microsoft Dynamics NAV online versus on-premises?
- For NAV Business Central online, ml-connector uses OAuth 2.0 client credentials via Entra ID and the published base URL for your tenant. For on-premises instances, it uses the customer-provided server address and port (7048 for OData), and requires that the NAV administrator has enabled OData and API services via the NAV Server Administration tool and opened the OData port through the firewall. Both authenticate the same way to Cin7's REST API using custom API key headers.
- Why are NAV GL accounts and GL entries read-only in this integration?
- Microsoft Dynamics NAV's standard OData API exposes GL accounts and posted GL entries as read-only to prevent unintended modifications to the audit trail. ml-connector posts purchase and sales invoices as journal entries, not as direct GL account edits, so they flow through NAV's normal approval and posting workflow. Once a journal entry is posted and becomes a GL entry, it is immutable per accounting standards.
- What happens if a Cin7 webhook fails or a NAV subscription expires?
- ml-connector monitors NAV webhook subscriptions (which expire after 3 days) and renews them automatically before expiry. If a Cin7 webhook event fails to deliver or a NAV subscription lapses, ml-connector falls back to polling both systems on a configurable schedule so no data is lost. Every record carries a timestamp and status flag so failed or delayed records can be replayed once connectivity is restored.
Related integrations
More Microsoft Dynamics NAV integrations
Other systems that connect to Cin7
Connect Microsoft Dynamics NAV and Cin7
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started