ml-connector
IFS CloudUPS

IFS Cloud and UPS integration

IFS Cloud runs manufacturing, procurement, and supply chain. UPS provides shipment creation and tracking. Connecting the two keeps your order fulfillment and your shipment costs in sync. When a sales order ships in IFS, the shipment is automatically created in UPS with accurate weight and dimensions from the order, and tracking updates flow back into IFS without manual data entry. ml-connector handles the very different authentication models on each side and moves the shipment and tracking data on a schedule you control.

How IFS Cloud works

IFS Cloud exposes customers, sales orders, shipments, GL accounts, and cost dimensions through a tenant-specific OData v4 REST API at https://<tenant>.ifs.cloud. Authentication uses OAuth2 Client Credentials with approximately 60-minute token lifetime. IFS has no standard webhook subscription, so data is retrieved by polling the OData API with filters on modified timestamps. Mutations require reading the record first to capture its ETag header, then updating with that ETag to enforce optimistic concurrency. Each customer must provide their company code as part of the configuration.

How UPS works

UPS exposes shipments, rating, tracking, address validation, and pickup endpoints through a REST API at https://onlinetools.ups.com/api. Authentication is OAuth2 Client Credentials with a 4-hour token lifetime and a limit of approximately 250 token requests per day. UPS provides push webhooks via Track Alert API to receive tracking events for up to 100 shipments with 14-day subscription validity, and also supports Quantum View polling for shipment visibility. UPS has no billing or invoice API, so cost retrieval is limited to rate quotes.

What moves between them

The main flow runs from IFS into UPS. When a sales order is ready to ship, ml-connector reads the shipment details from IFS, calls the UPS rating API to calculate freight cost, and then creates the shipment in UPS with the order's weight, dimensions, and destination address. UPS tracking events are either pushed to ml-connector via Track Alert subscription or polled via Quantum View, and the tracking status is written back to the IFS shipment record. Reference data such as shipping methods and address validation is aligned so UPS shipments use valid addresses before creation.

How ml-connector handles it

ml-connector stores OAuth2 client credentials for both IFS and UPS encrypted and refreshes the IFS token every 60 minutes and the UPS token every 3.5 hours before expiry. On the IFS side, it accepts the customer's tenant subdomain and queries the OData API with $filter on modified timestamp to find new shipments. When creating or updating records in IFS, ml-connector reads the target first to capture its ETag, then sends the ETag header on the PATCH to ensure the record has not been edited by another user. For UPS, it refreshes the token before the daily limit of 250 requests can be exhausted, monitors the 14-day Track Alert subscription window and renews tracking subscriptions before they expire, and handles UPS rate-limit responses with exponential backoff. Every shipment and tracking update carries a full audit trail and can be replayed if a downstream call fails.

A real-world example

A mid-sized apparel manufacturer runs IFS Cloud for production and supply chain planning, and ships to 500+ retailers worldwide via UPS. Before the integration, the logistics team printed shipment details from IFS orders, re-keyed address and package weight into the UPS portal to rate and book shipments, and then manually copied UPS tracking numbers back into IFS order records. With IFS and UPS connected, each order-to-ship transition automatically creates the UPS shipment with address and weight from IFS, the freight cost from UPS is captured and allocated to the order's cost center in IFS for accurate margin tracking, and tracking updates flow back into IFS automatically so the customer service team can see real-time shipment status without leaving their ERP.

What you can do

  • Create shipments in UPS from IFS sales orders with accurate weight, dimensions, and destination address.
  • Retrieve UPS shipping rates and allocate freight cost back to IFS orders for margin and GL costing.
  • Sync UPS tracking events back to IFS shipment records via Track Alert webhooks or Quantum View polling.
  • Authenticate both IFS OAuth2 Client Credentials with tenant-specific token endpoints and manage UPS token refresh within its daily request limit.
  • Poll IFS sales orders on a schedule with ETag-based concurrency enforcement and maintain a full audit trail on every shipment and tracking update.

Questions

Which direction does data move between IFS Cloud and UPS?
The main flow is IFS into UPS: shipment creation and rate quotes. UPS tracking events flow back into IFS via webhooks or polling. IFS does not write tracking data back to UPS, and UPS does not send shipment changes back into IFS.
How does ml-connector handle IFS ETag concurrency and UPS token renewal?
ml-connector reads the IFS record first to capture its ETag header, then includes that ETag in the PATCH request to ensure optimistic concurrency. For UPS, it proactively refreshes the OAuth2 token every 3.5 hours to stay well within the 250-request-per-day limit and avoid token expiry during a shipment creation.
What happens if a UPS Track Alert subscription expires or shipments go untracked?
Track Alert subscriptions expire after 14 days and must be renewed. ml-connector monitors the subscription window and renews tracking subscriptions automatically before expiry. If tracking is disrupted, shipments can be re-queried via Quantum View polling as a fallback.

Related integrations

Connect IFS Cloud and UPS

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

Get started