ml-connector
Microsoft Dynamics NAVSAP Ariba

Microsoft Dynamics NAV and SAP Ariba integration

Microsoft Dynamics NAV is your ERP for vendors, customers, and general ledger. SAP Ariba is your procurement and supplier management platform. Connecting the two keeps your vendor master synchronized and pulls invoice data from Ariba back into Dynamics NAV so procurement and accounting stay aligned. New vendors created in Dynamics NAV can flow into Ariba's supplier network, and invoices created in Ariba flow back to Dynamics NAV as accounts payable records without re-keying.

How Microsoft Dynamics NAV works

Microsoft Dynamics NAV exposes vendors, customers, purchase orders, purchase invoices, general ledger entries, accounts, dimensions, and employees through OData v4 REST APIs (primary) or SOAP web services (legacy). Authentication is via OAuth 2.0 client credentials against Microsoft Entra ID (required for cloud, recommended for on-premises) or basic auth with a web service access key. Dynamics NAV supports both webhook push notifications (which expire after 3 days and require renewal) and polling. Webhook subscriptions are subject to a 200-subscription limit per environment and carry no HMAC signature verification. GL accounts and posted GL entries are read-only; vendors and invoices are writable.

How SAP Ariba works

SAP Ariba exposes purchase orders, invoices, suppliers, requisitions, contracts, and sourcing events through REST Open APIs at api.ariba.com. Every request requires OAuth 2.0 client credentials plus a static API key header, and the realm must be passed as a query parameter. Ariba supports polling only; no outbound webhooks are available via the REST APIs. Data retrieval uses async reporting jobs filtered by date range, with results paginated at 50,000 records per call and a daily limit of 2,000,000 records. Most write operations (invoice creation, PO write-back) use SOAP and cXML, not REST, making the REST APIs primarily read-oriented for procurement documents.

What moves between them

The main flow is bidirectional but asymmetric. Vendors and purchase orders flow from Dynamics NAV into Ariba when new suppliers are registered or RFQs are issued. Invoice data flows from Ariba back into Dynamics NAV on a scheduled polling cycle; ml-connector retrieves invoices from Ariba's async reporting API and creates accounts payable invoice records in Dynamics NAV's purchase invoice journal, mapped to the matching vendor and purchase order in Dynamics NAV. Invoice creation in Ariba is handled via SOAP/cXML outside this integration.

How ml-connector handles it

ml-connector manages the Dynamics NAV webhook subscription renewal cycle, automatically refreshing each subscription before its 3-day expiry so push notifications do not lapse. On the Ariba side, it holds both the OAuth client credentials and the static API key, submitting async reporting jobs on your schedule, polling for job completion by jobId, and handling Ariba's rate limits (which vary by endpoint) with exponential backoff. Vendor records are mapped between Dynamics NAV's vendor master and Ariba's supplier entities by a configurable key (such as external supplier ID or vendor code). Purchase orders flow as Ariba requisitions or contracts depending on your procurement process. Invoices are retrieved from Ariba's InvoiceReportingFact table and posted to Dynamics NAV's purchase invoice journal, with GL account and vendor mappings validated in Dynamics NAV before posting. Because Dynamics NAV GL accounts are read-only, financial reconciliation is one-way; Ariba invoice data enriches Dynamics NAV's accounts payable without writing financial entries back to Ariba. Every job carries a full audit trail and can be replayed if a downstream posting fails.

A real-world example

A mid-market manufacturing company runs Dynamics NAV for purchasing and accounting and uses SAP Ariba for vendor collaboration, RFQs, and invoice receipt. Before the integration, the procurement team created purchase orders in Dynamics NAV, manually uploaded them to Ariba, then downloaded invoice receipts from Ariba at month-end and re-entered them into Dynamics NAV's accounts payable journal by hand, creating reconciliation delays and duplicate-entry risk. With Dynamics NAV and Ariba connected, purchase orders sync automatically from Dynamics NAV into Ariba when issued, and invoices flow from Ariba back into Dynamics NAV on a daily schedule, creating accounts payable records ready for approval and payment. The accounts payable team now receives invoices with vendor and PO context already populated, eliminating manual re-keying and reducing month-end close time.

What you can do

  • Sync vendors from Dynamics NAV into Ariba's supplier network, mapped by vendor code or external ID.
  • Automatically renew Dynamics NAV webhook subscriptions every 3 days so push notifications stay active and do not lapse.
  • Poll Ariba's invoice reporting API on a daily or weekly schedule and create accounts payable invoice records in Dynamics NAV, matched to the correct vendor and purchase order.
  • Authenticate Ariba using both OAuth 2.0 client credentials and the required static API key header, and Dynamics NAV using OAuth 2.0 via Microsoft Entra ID.
  • Carry a full audit trail on every record synced, with the ability to replay failed invoice posts if a downstream Dynamics NAV write fails.

Questions

Which direction does data move between Dynamics NAV and SAP Ariba?
The flow is bidirectional but asymmetric. Vendors and purchase orders flow from Dynamics NAV into Ariba for supplier management and sourcing. Invoices flow from Ariba back into Dynamics NAV as accounts payable records on a scheduled polling cycle. Ariba invoice creation uses SOAP/cXML outside this integration and is handled separately.
Why does Dynamics NAV webhook subscription renewal matter for this integration?
Dynamics NAV webhook subscriptions expire every 3 days if not renewed. ml-connector tracks each subscription's expiry and renews it before the deadline, so vendor and purchase order changes continue to push from Dynamics NAV to Ariba without lapse. If subscriptions are allowed to expire, push notifications stop until they are manually resubscribed.
How does ml-connector handle the authentication differences between Dynamics NAV and SAP Ariba?
Dynamics NAV requires OAuth 2.0 client credentials via Microsoft Entra ID (or basic auth for legacy on-premises); ml-connector stores the tenant ID and client credentials securely. SAP Ariba requires both OAuth 2.0 credentials and a static API key header on every request, plus the realm as a query parameter; ml-connector handles the two-credential requirement and includes both on each call.

Related integrations

Connect Microsoft Dynamics NAV and SAP Ariba

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

Get started