Microsoft Dynamics NAV and BILL integration
Microsoft Dynamics NAV runs accounting and procurement for your business. BILL automates your accounts payable and bill payments. Connecting the two keeps vendor master records aligned and moves purchase invoices into BILL where your team approves and pays them, with the paid invoices posting back into NAV's GL. ml-connector handles the different authentication models on each side and manages the subscription and signature requirements that each platform requires.
What moves between them
The main flow is bi-directional vendor synchronization. Vendor records created or updated in NAV flow into BILL, and vendors created in BILL sync back into NAV as vendor master records. Purchase invoices in NAV can be pushed to BILL as bills for approval and payment, and when BILL generates paid invoices, ml-connector posts them back into NAV's general ledger as purchase invoice records. Chart of account dimensions in BILL are matched against NAV GL account master data to ensure expense lines land on valid accounts. The sync runs on a schedule you define, typically daily, with webhook push when events occur on either side.
How ml-connector handles it
ml-connector stores both credential sets encrypted: the OAuth 2.0 client ID and secret for NAV (with tenant URL for online or server instance for on-premises) and the session token and API token for BILL. For NAV webhooks, ml-connector monitors the 3-day subscription expiry window and renews subscriptions before they lapse, preventing gaps in push notifications. For BILL incoming webhooks, ml-connector verifies the HMAC-SHA256 signature on every payload using the webhook secret key, rejecting any unsigned or incorrectly signed webhook. Before posting a NAV invoice into BILL, ml-connector reads NAV's dimension and GL account master data and BILL's chart of accounts to map dimensions to valid account combinations, ensuring a purchase invoice posted to BILL matches GL account structures in both systems. NAV GL entries are immutable once posted, so ml-connector routes paid invoices from BILL as new journal lines into NAV rather than modifying original entries. On-premises NAV deployments require the OData port (default 7048) to be opened through the firewall for ml-connector to reach the API.
A real-world example
A small manufacturing company runs Microsoft Dynamics NAV on-premises for accounting and procurement and uses BILL for hands-on accounts payable and invoice approval. Before integration, the accounts payable team received purchase invoices from NAV, typed vendor names into BILL, and manually created bills, then waited for approval and payment before recording the paid amount in NAV, creating a two-week lag and frequent mismatches between vendor names. With NAV and BILL connected, vendor master records sync automatically whenever a new vendor is added in NAV, eliminating re-entry, and purchase invoices flow directly into BILL as bills ready for approval. Once BILL records a payment, the amount and GL coding flow back into NAV the next day, keeping the accounts payable register and the GL in sync without manual steps.
What you can do
- Synchronize vendor records bi-directionally between NAV and BILL, keeping master data consistent on both sides.
- Push purchase invoices from NAV into BILL as bills ready for approval and payment.
- Post BILL paid invoices back into NAV's general ledger as new journal entries, mapped to the correct GL accounts and dimensions.
- Renew NAV webhook subscriptions before expiry and verify BILL webhook signatures on every incoming notification.
- Poll NAV GL accounts and BILL chart of accounts to match expense dimensions before posting invoices.
Questions
- Which direction does data move between NAV and BILL?
- Vendors and dimensions sync bi-directionally so both systems have current master data. Purchase invoices flow from NAV into BILL for approval and payment, and once BILL records a payment, the paid invoice posts back into NAV's general ledger as a new journal entry. This keeps the AP process in BILL while maintaining GL accuracy in NAV.
- How does ml-connector handle NAV's 3-day webhook subscription expiry?
- ml-connector monitors each NAV webhook subscription's expiry window and automatically renews subscriptions before they expire, preventing gaps in push notifications. This is checked on a schedule and renewed proactively so you do not lose data.
- What happens with NAV purchase orders when syncing to BILL?
- NAV purchase orders are not pushed to BILL directly. Instead, when a NAV purchase order becomes a purchase invoice (the invoice is received and posted), ml-connector syncs that invoice into BILL as a bill. BILL does not support purchase orders in its AP API, only bills, so the workflow aligns NAV invoices with BILL's bill-centric model.
Related integrations
More Microsoft Dynamics NAV integrations
Other systems that connect to BILL
Connect Microsoft Dynamics NAV and BILL
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started