ml-connector
SYSPROUPS

SYSPRO and UPS integration

SYSPRO runs your manufacturing and distribution operations. UPS moves your shipments. Connecting them keeps fulfillment in sync with your orders. When a sales order ships in SYSPRO, ml-connector creates the shipment in UPS, pulls the tracking number back into SYSPRO, and syncs tracking events and delivery status. Your warehouse team sees UPS tracking inside SYSPRO without manual lookups, and your finance team has shipment cost visibility in one place.

How SYSPRO works

SYSPRO Adaptive ERP exposes purchase orders, sales orders, inventory records, and suppliers through e.net Business Objects (REST and SOAP) and OData (REST read-only). The cloud and on-premise product uses session token authentication (obtained by login, then passed on every call) or HTTP Basic Auth with auto-generated SQL credentials for OData access. Customer provides their own server URL and operator credentials. SYSPRO publishes no webhooks, so shipment and order records are read by polling OData tables with timestamp-based filters.

How UPS works

UPS exposes shipment creation, rating, tracking, address validation, and pickup scheduling through a JSON REST API. Authentication uses OAuth 2.0 Client Credentials (client_id, client_secret, and optional 6-digit account number), with tokens valid approximately 4 hours. UPS supports Track Alert webhooks for shipment status updates (up to 100 tracking numbers per subscription, 14-day validity) and Quantum View polling for broader shipment visibility. No billing or invoice API exists; tracking and shipment data flows in one direction from UPS outbound.

What moves between them

Sales orders and shipping notifications flow from SYSPRO to UPS. When a SYSPRO sales order reaches ready-to-ship status, ml-connector polls for the order, extracts the ship-to address and line items, validates the address against UPS's address validation service, and creates the shipment in UPS. UPS responds with the shipment ID and tracking number. Tracking events and delivery status flow back from UPS to SYSPRO via Track Alert webhooks (if enabled) or Quantum View polling, and ml-connector writes the tracking number and status back into SYSPRO shipment records. The cycle runs on your shipping schedule, typically once per business day or more frequently during peak volume.

How ml-connector handles it

ml-connector stores both SYSPRO and UPS credentials encrypted in its database. On the SYSPRO side, it obtains and refreshes a session token via the Logon endpoint or uses HTTP Basic Auth for OData polling. For UPS, it requests an OAuth 2.0 access token at startup and refreshes it before expiry (every 3.5 hours) to avoid mid-request token failures. When reading sales orders from SYSPRO, ml-connector filters OData on ArInvoice and PorMasterHdr tables by PostDate or InvoiceDate to find new shipments ready to hand off. Each SYSPRO address is validated against UPS's AddressValidation endpoint before shipment creation to avoid rejection. UPS Track Alert subscriptions are renewed every 10 days to stay within the 14-day window. If a shipment create fails (invalid address or UPS API error), ml-connector retries with exponential backoff and logs the failure with the original order details so your team can investigate. Tracking updates are stored with a full audit trail per shipment.

A real-world example

A mid-market consumer goods distributor operates SYSPRO for order management and inventory, and uses UPS for last-mile delivery across North America. Before the integration, the warehouse team manually logged into UPS, created shipments by hand, and copied tracking numbers back into SYSPRO. The sales team had no visibility into delivery status without calling the warehouse. With SYSPRO and UPS connected, each sales order ready to ship triggers automatic shipment creation and tracking number sync. The sales team sees delivery status in SYSPRO in real time. Warehouse staff reclaim four hours per week that had been spent on manual shipment entry and tracking lookups.

What you can do

  • Auto-create UPS shipments from SYSPRO sales orders, with address validation and error handling.
  • Sync UPS tracking numbers and delivery status back into SYSPRO shipment records.
  • Manage OAuth 2.0 credential refresh for UPS, and SYSPRO session token expiry, without manual intervention.
  • Validate ship-to addresses against UPS address standards before shipment creation to prevent rejections.
  • Poll SYSPRO orders on a schedule you set, with retries and a full audit trail on every shipment movement.

Questions

Which direction does data move between SYSPRO and UPS?
Sales orders and shipping data flow from SYSPRO to UPS for shipment creation. Tracking numbers, status updates, and delivery notifications flow back from UPS into SYSPRO. Reference data such as addresses is validated in both directions to ensure SYSPRO shipments land on valid UPS locations.
How does ml-connector handle SYSPRO session tokens and UPS OAuth expiry?
ml-connector obtains a SYSPRO session token at the start of each polling cycle (or uses HTTP Basic Auth for OData) and refreshes it if it expires. For UPS, it requests an OAuth 2.0 access token at startup and automatically refreshes it every 3.5 hours before expiry, so token failures never interrupt shipment creation or tracking sync.
Does the integration support UPS Track Alert webhooks or only polling?
ml-connector supports both. If your UPS account is configured with Track Alert subscriptions, ml-connector listens for webhook notifications and syncs tracking events in near real-time. If webhooks are not available or enabled, it falls back to Quantum View polling on your schedule.

Related integrations

Connect SYSPRO and UPS

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

Get started