Microsoft Dynamics NAV and Avalara integration
Microsoft Dynamics NAV runs the books for small and mid-market businesses. Avalara calculates the exact sales and use tax owed in every U.S. state and Canadian province, and in international jurisdictions too. Connecting NAV to Avalara ensures every sales order and invoice you post gets the right tax applied before it hits the ledger, and keeps your nexus reporting audit-ready. ml-connector bridges the very different authentication models and syncs transactions on a schedule you control.
What moves between them
Sales invoices and orders move from Microsoft Dynamics NAV to Avalara. Before posting a sales invoice to NAV's general ledger, ml-connector extracts the transaction details and customer address, sends them to Avalara for tax calculation, and records the Avalara transaction ID and calculated tax amount in the NAV invoice as an attached audit entry. If a transaction is voided in NAV, ml-connector voids it in Avalara using the void operation. Customer and address changes in NAV trigger re-validation with Avalara so nexus and exemption status stay in sync. Tax calculations flow one direction only; Avalara is read-only.
How ml-connector handles it
ml-connector stores Avalara credentials (Account ID and License Key) encrypted and uses HTTP Basic Authentication on every REST call. It triggers on NAV invoice posts via webhook if subscriptions are enabled and actively renewed, or polls the salesInvoices endpoint on a configurable schedule if webhooks are not available (on-premises often requires polling). Before sending a transaction to Avalara, ml-connector validates the customer address with the /addresses/resolve endpoint; if validation fails, it flags the record for manual review rather than posting an invalid calculation. Document codes in Avalara transactions are formed from the NAV invoice number plus a sequence number to prevent accidental duplicates. When Avalara returns HTTP 429, ml-connector backs off with exponential jitter and retries. NAV webhook subscriptions expire after 3 days and must be renewed; ml-connector tracks expiry and re-subscribes before the deadline. Every tax calculation is audited, so a transaction can be re-sent to Avalara if the downstream GL post fails.
A real-world example
A mid-sized consumer goods distributor uses Microsoft Dynamics NAV to manage orders, fulfillment, and billing across 12 states and two Canadian provinces. Before the integration, the finance team ran an end-of-month reconciliation comparing NAV invoice totals against Avalara's tax reports, often finding mismatches caused by address mistakes or jurisdictional rule changes that the ERP had not reflected. With NAV and Avalara connected, every invoice automatically gets the correct tax calculation before it posts to the ledger, and the audit trail ties each NAV transaction to its Avalara decision. Month-end close now starts with tax and revenue already reconciled, and the manual Avalara report review is cut to a spot-check.
What you can do
- Calculate the correct sales and use tax in all jurisdictions for every NAV sales invoice before posting to the general ledger.
- Validate customer addresses against Avalara nexus rules so tax is applied in the correct jurisdiction.
- Capture the Avalara tax transaction ID and calculated tax amount in the NAV audit trail so every decision is traced and auditable.
- Handle NAV webhooks where available with automatic 3-day renewal, and fall back to polling for on-premises instances.
- Retry failed tax calculations on rate-limit and network errors without losing the invoice in NAV.
Questions
- Does the integration push tax calculations back into NAV or just calculate and audit?
- The integration calculates tax in Avalara and captures the decision (transaction ID and calculated amount) in the NAV audit trail so every invoice has a permanent record of its tax logic. It does not overwrite NAV invoice amounts; the calculated tax is stored separately. If you want the calculated amount to flow into NAV, that is a separate step-through-NAV posting flow.
- What happens if a customer address fails Avalara validation?
- ml-connector validates addresses with Avalara's /addresses/resolve endpoint before calculating tax. If validation fails, ml-connector flags the record for manual review and does not post it, preventing an invalid tax calculation from hitting the ledger. The NAV user can correct the address and re-trigger.
- How does the integration handle NAV's 3-day webhook subscription expiry?
- ml-connector tracks NAV webhook subscription expiry and automatically renews subscriptions before the 3-day deadline. If webhooks are not available (common on on-premises), ml-connector switches to polling the NAV salesInvoices endpoint on your configured schedule instead.
Related integrations
More Microsoft Dynamics NAV integrations
Other systems that connect to Avalara
Connect Microsoft Dynamics NAV and Avalara
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started