ml-connector
Microsoft Dynamics GPUPS

Microsoft Dynamics GP and UPS integration

Microsoft Dynamics GP manages procurement and inventory. UPS handles shipment creation, rating, and tracking. Connecting the two keeps your purchase orders and your shipment visibility in sync. New purchase orders in Microsoft Dynamics GP can be converted to UPS shipments automatically, and tracking updates flow back into GP so your inventory team sees real-time shipment status without manual lookups. ml-connector handles the very different authentication models and bridges the on-premises Windows security requirement to a cloud REST API.

How Microsoft Dynamics GP works

Microsoft Dynamics GP is an on-premises Windows-based ERP installed on customer's SQL Server backend, exposing vendors, purchase orders, shipments, GL accounts, and inventory items through Service Based Architecture REST endpoints at https://<server>:<port>/GPService/Tenants(<TenantName>)/Companies(<CompanyName>)/<Module>/<Resource>, or through SOAP/WCF Web Services at http://<server>:<port>/Dynamics/GPService/GPService?singleWsdl. Authentication is Windows domain authentication only, using Negotiate/Kerberos or NTLM against Active Directory, with no OAuth2 or API key options available. Microsoft Dynamics GP does not support webhooks or push notifications, so all data is retrieved by polling with ModifiedDate filters at intervals you define, respecting the constraint that write operations only work on unposted transactions and that fiscal periods must be open in the calendar.

How UPS works

UPS exposes shipment creation, rating, tracking events, address validation, and pickup scheduling through REST JSON APIs at https://onlinetools.ups.com/api in production. Every call requires OAuth2 client credentials with client_id, client_secret, and an optional UPS account number header, with tokens refreshing every four hours and limited to approximately 250 requests per day. UPS can push tracking updates via Track Alert subscriptions that expire after 14 days and must be renewed, and can also be polled via the Quantum View feed for shipment visibility. UPS does not expose billing or invoice data, and legacy SOAP authentication was decommissioned in June 2024.

What moves between them

The main flow is from Microsoft Dynamics GP into UPS. Purchase orders tagged for shipment in Dynamics GP are polled at your shipping cadence, mapped to UPS shipment creation requests with vendor addresses, and submitted to UPS with the correct account credentials. UPS returns tracking numbers, which ml-connector writes back into Microsoft Dynamics GP as unposted shipment records for audit and visibility. Tracking events can be received via UPS Track Alert webhooks or polled via Quantum View, and address validation results are logged for compliance. The return flow is read-only; ml-connector does not update UPS shipments or billing after creation.

How ml-connector handles it

ml-connector stores both the Windows domain account for Microsoft Dynamics GP and the UPS OAuth2 credentials encrypted and refreshes the UPS bearer token before expiry on each request. On the Dynamics GP side it accepts the customer's server hostname, port, and SQL database name (CompanyName), and respects the constraint that only unposted purchase orders can be converted to shipments; it validates that fiscal periods are open before posting tracking records back into GP. Vendor addresses in Microsoft Dynamics GP are mapped to UPS shipment recipient addresses with validation calls to ensure deliverability, and the UPS account number is included as an x-merchant-id header on every rating and shipment request. Because UPS Track Alert subscriptions expire after 14 days, ml-connector automatically renews them when webhook events arrive, and it backs off on 429 rate-limit responses from UPS. Every shipment creation, tracking update, and address validation carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized wholesale distributor runs Microsoft Dynamics GP on-premises for procurement, inventory, and vendor management, and ships orders through UPS to regional customers. Before the integration, the warehouse team printed purchase orders from Dynamics GP, manually created shipments in the UPS portal, and checked tracking numbers in UPS to update Dynamics GP inventory by hand, often causing discrepancies between when UPS marked shipments as delivered and when Dynamics GP inventory was received. With Microsoft Dynamics GP and UPS connected, purchase orders flagged for shipment flow into UPS automatically, tracking numbers populate back into Dynamics GP as soon as UPS accepts the shipment, and the warehouse team can see real-time tracking status without leaving the ERP. Inventory receiving aligns with UPS delivery events, and month-end variance analysis between system records and actual shipments is nearly eliminated.

What you can do

  • Create UPS shipments from Microsoft Dynamics GP purchase orders with vendor and shipping addresses mapped and validated.
  • Post UPS tracking numbers back into Dynamics GP as shipment records for full visibility without re-keying.
  • Validate vendor addresses against UPS address quality standards before shipment creation to prevent failed deliveries.
  • Authenticate Microsoft Dynamics GP with Windows domain credentials and UPS with OAuth2, renewing UPS Track Alert subscriptions automatically every 14 days.
  • Poll Microsoft Dynamics GP on a schedule you define, handle unposted vs posted transaction constraints, and maintain a full audit trail on every shipment and tracking event.

Questions

Which direction does data move between Microsoft Dynamics GP and UPS?
The main flow is from Dynamics GP into UPS. Purchase orders are polled from Dynamics GP, converted to UPS shipments, and tracking numbers are posted back into Dynamics GP as unposted records for visibility. Address validation and tracking events are logged but not written back to Dynamics GP, so UPS remains the read-only source for shipment status.
How does the integration handle Windows domain authentication on Dynamics GP?
ml-connector stores a Windows domain account credential encrypted and uses it to authenticate every REST or SOAP call to Dynamics GP. The account must be created by the customer in Active Directory and granted the appropriate Dynamics GP user role. Because Windows auth is on-premises only, ml-connector requires the customer to expose the Dynamics GP endpoint through the firewall or via a local agent with a valid SSL certificate.
What constraints do I need to know about unposted transactions and fiscal periods?
Microsoft Dynamics GP only allows write operations on unposted (Work) transactions, so tracking numbers posted back from UPS will arrive as unposted shipment records. The fiscal period for the posting date must be open in the Dynamics GP calendar; if it is closed, the post will fail and ml-connector will surface the error for retry. Once you post the tracking record in Dynamics GP, it becomes historical and read-only.

Related integrations

Connect Microsoft Dynamics GP and UPS

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

Get started