ml-connector
Microsoft Dynamics NAVUPS

Microsoft Dynamics NAV and UPS integration

Microsoft Dynamics NAV handles your procurement, inventory, and vendor relationships. UPS handles your shipment execution and tracking. Connecting the two moves purchase order data into UPS shipments automatically, validates vendor addresses before sending them to the carrier, and brings tracking numbers back into NAV so your receiving team sees where shipments are. The address validation step prevents failed pickups and delivery exceptions before they happen.

How Microsoft Dynamics NAV works

Microsoft Dynamics NAV is available as cloud-hosted Dynamics 365 Business Central or on-premises. It exposes purchase orders, purchase invoice headers, vendors, items, and general ledger through OData v4 REST endpoints authenticated with OAuth 2.0 client credentials via Microsoft Entra ID. The cloud version base URL is https://api.businesscentral.dynamics.com/v2.0/{tenantId}/api/v2.0/companies({companyId})/. NAV supports both webhooks (3-day subscription window) and polling. Purchase orders are available via polling; general ledger entries and purchase invoices are available via both webhooks and polling.

How UPS works

UPS exposes shipment creation, address validation, rating, and tracking through REST API authenticated with OAuth 2.0 client credentials plus an optional merchant account number in the x-merchant-id header. OAuth tokens expire in approximately four hours with a limit of approximately 250 token requests per day. UPS supports Track Alert webhooks for shipment events (14-day subscription window) and the Quantum View API for polling shipment visibility. UPS has no billing or invoice API; all operations are shipment and tracking focused.

What moves between them

Purchase orders flow from Microsoft Dynamics NAV into UPS. For each order, ml-connector extracts the vendor address, item quantities, and destination, validates the address in UPS, creates a shipment, and writes the tracking number back to the NAV purchase order. Shipment tracking events flow back to NAV on a poll schedule set by you, updating the order status as UPS reports pickup, in-transit, and delivery milestones. The mapping is one NAV purchase order to one UPS shipment.

How ml-connector handles it

ml-connector stores both OAuth credential sets encrypted and refreshes tokens when they expire or a 401 response arrives. On the NAV side it accepts the cloud tenant ID and company ID or the on-premises base URL and polls the purchase orders endpoint. On the UPS side it passes the account number in the x-merchant-id header on every request. Address validation happens before shipment creation; if UPS rejects an address, ml-connector logs the error and does not create a shipment, returning a correctable error to NAV. Purchase order lines become individual UPS package line items. ml-connector polls UPS Quantum View on your schedule to fetch tracking events, which it maps back to the NAV shipment record. Failed shipment creates are retried with exponential backoff up to a configured limit. Every shipment and tracking event carries a full audit trail.

A real-world example

A mid-sized distributor runs Microsoft Dynamics NAV for purchasing and inventory. The operations team receives purchase orders in NAV from their receiving staff, but has been manually logging into UPS, creating shipments one by one, and copying tracking numbers back into NAV by hand. With NAV and UPS connected, when a purchase order is approved in NAV, a shipment is created in UPS automatically with the vendor address validated and the tracking number returned to the order. The receiving team opens NAV and sees the tracking status update throughout the day without extra logins or spreadsheets.

What you can do

  • Create UPS shipments from Microsoft Dynamics NAV purchase orders, with package details extracted from order lines.
  • Validate vendor addresses in UPS before creating shipments, catching address errors before pickup.
  • Write UPS tracking numbers back to NAV purchase orders for visibility in your ERP.
  • Poll UPS Quantum View for shipment status updates and sync them to NAV on a schedule you control.
  • Authenticate both NAV and UPS with OAuth 2.0 credentials, with automatic token refresh on expiry.

Questions

Which records move between Microsoft Dynamics NAV and UPS?
Purchase orders move from NAV to UPS as shipments. Item quantities and vendor addresses are extracted and validated. Tracking numbers and shipment status events flow back from UPS to NAV to update the purchase order with pickup, in-transit, and delivery milestones.
What happens if UPS rejects a vendor address?
ml-connector validates every vendor address in UPS before creating a shipment. If validation fails, ml-connector logs the error with the rejection reason and does not create the shipment. The operator corrects the address in NAV and ml-connector retries on the next sync cycle.
How often does ml-connector sync tracking updates from UPS to NAV?
Tracking syncs run on a schedule you configure, typically daily or every few hours. ml-connector polls the Quantum View API for shipment status and maps tracking events back to the NAV purchase order. UPS Track Alert webhooks expire every 14 days and must be renewed; polling is the more reliable long-term approach.

Related integrations

Connect Microsoft Dynamics NAV and UPS

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

Get started