ml-connector
Microsoft Dynamics NAVTipalti

Microsoft Dynamics NAV and Tipalti integration

Microsoft Dynamics NAV runs your general ledger and accounts payable. Tipalti manages supplier onboarding, invoice collection, and payment processing. Connecting them keeps your vendor master and invoice data in agreement across both systems without re-entry. New suppliers onboarded in Tipalti flow into Dynamics NAV as vendors, invoices received in Tipalti post into Dynamics NAV as purchase invoices ready to match and pay, and payments made through Tipalti are reconciled against your Dynamics NAV GL.

How Microsoft Dynamics NAV works

Tipalti is an accounts payable and global mass payments platform that exposes payees (suppliers), invoices, purchase orders, payments, GL accounts, and GRNs through SOAP/XML and REST/JSON APIs. Authentication is HMAC-SHA256 signature (payer_name plus api_key) for SOAP, and OAuth2 client credentials or static x-api-key header for REST. Tipalti pushes invoice and payment events to a single IPN webhook endpoint registered in the Tipalti Hub, with HMAC-SHA256 verification per event.

How Tipalti works

Microsoft Dynamics NAV exposes vendors, purchase invoices, sales invoices, sales orders, general ledger entries, dimensions, and items through OData v4 REST (primary) or SOAP (legacy). The cloud product (Dynamics 365 Business Central online) authenticates with OAuth 2.0 client credentials via Microsoft Entra ID against a tenant-specific URL, while on-premises variants accept either OAuth 2.0 or Basic auth with web service access keys. Dynamics NAV supports webhooks on most entities (vendors, purchase invoices, GL entries, dimensions) with a 3-day subscription expiry and ~30 second batching, or polling via REST.

What moves between them

The main flow moves from Tipalti into Microsoft Dynamics NAV. Payees (suppliers) created or updated in Tipalti flow into Dynamics NAV as vendors, while invoices posted in Tipalti flow as purchase invoices matched to the synced vendor records. Payments made through Tipalti are recorded in Dynamics NAV for reconciliation against AP aging and GL balances. Invoice and payment events are pushed from Tipalti via IPN webhooks on a real-time basis, while vendor master data can be polled on a daily or ad-hoc schedule. GL accounts and dimensions are aligned so invoices land on valid cost centers and expense codes.

How ml-connector handles it

ml-connector authenticates to Tipalti using the payer name and API key (HMAC-SHA256), and to Dynamics NAV using OAuth2 client credentials obtained from Microsoft Entra ID. It registers a single IPN webhook endpoint in Tipalti to receive real-time notifications of invoice updates, payment approvals, and payee changes, then verifies each notification's HMAC-SHA256 signature before processing. On the Dynamics NAV side, it accepts the tenant ID and company ID from your Business Central configuration (online or on-premises), then maps Tipalti payee fields to Dynamics NAV vendor codes and bank details. Invoice amounts are mapped to Dynamics NAV purchase invoice line items and allocated to GL accounts and dimensions based on invoice line coding from Tipalti. Since Dynamics NAV webhooks expire after 3 days, ml-connector maintains renewal logic to keep the subscription active. Tipalti invoices are read-only after posting, so ml-connector does not modify invoices in Tipalti; all changes flow into Dynamics NAV as new or updated records. Rate limiting and temporary outages are handled with exponential backoff retries, and every record carries a full audit trail with event timestamps and transaction IDs.

A real-world example

A mid-market business uses Tipalti to manage suppliers and invoices across multiple countries and currencies, and Dynamics NAV for GL, AP, and month-end close. Before the integration, suppliers created in Tipalti were manually entered into Dynamics NAV, and invoice data was keyed twice - once in Tipalti for approval and payment, and again in Dynamics NAV for reconciliation and accrual. With Tipalti and Dynamics NAV connected, new suppliers flow automatically into Dynamics NAV as vendors, invoices are posted into AP the moment Tipalti approves them, and month-end closes start with invoice records already aligned and AP reconciliation nearly complete.

What you can do

  • Sync Tipalti payees into Microsoft Dynamics NAV as vendor records with full contact and bank account details.
  • Post approved Tipalti invoices into Dynamics NAV as purchase invoices matched to the correct vendor and GL account.
  • Authenticate Tipalti with HMAC-SHA256 signature and Dynamics NAV with OAuth2 via Microsoft Entra ID.
  • Ingest real-time invoice, payment, and supplier events from Tipalti via IPN webhooks with signature verification.
  • Map invoice line codes to Dynamics NAV GL accounts and dimensions for proper cost allocation and ledger posting.

Questions

Which direction does data move between Tipalti and Microsoft Dynamics NAV?
The main flow is Tipalti into Dynamics NAV. Payees and approved invoices from Tipalti post into Dynamics NAV as vendors and purchase invoices. Payments made through Tipalti are recorded in Dynamics NAV for AP reconciliation. Dynamics NAV GL accounts and dimensions are used to code invoices when they arrive, but invoice changes originate in Tipalti and are not written back.
How does ml-connector handle Tipalti's HMAC-SHA256 authentication and webhook verification?
ml-connector stores your Tipalti payer name and API key encrypted in the cell, then constructs each SOAP request with the correct HMAC-SHA256 signature. For webhooks, it receives each IPN notification, verifies the HMAC-SHA256 signature to confirm it came from Tipalti, and only processes notifications that pass verification. This prevents spoofed or tampered messages from posting false invoices.
How does the integration handle Dynamics NAV webhook subscriptions and Microsoft Entra ID authentication?
ml-connector obtains an OAuth2 bearer token from Microsoft Entra ID using your client credentials, then includes that token on each REST call to Dynamics NAV. Because Dynamics NAV webhooks expire after 3 days, ml-connector tracks subscription creation and renews subscriptions before they expire to keep the real-time pipeline open. For on-premises Dynamics NAV, it uses the instance URL you provide and Basic auth with a web service key as an alternative.

Related integrations

Connect Microsoft Dynamics NAV and Tipalti

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

Get started