ml-connector
Oracle JD EdwardsUPS

Oracle JD Edwards and UPS integration

Oracle JD Edwards manages your procurement, orders, and inventory. UPS manages shipment execution and delivery. Connecting the two keeps order fulfillment in sync with procurement records. Purchase orders created in JD Edwards flow to UPS for rating and shipment, and tracking events update back into JD Edwards so your procurement team sees delivery progress without leaving the ERP. ml-connector bridges the very different authentication schemes and maps shipment dimensions to order detail rows.

How Oracle JD Edwards works

Oracle JD Edwards EnterpriseOne exposes purchase orders, order detail, items, supplier masters, and item master data through REST APIs via an Application Interface Services (AIS) Server running at customer infrastructure. Authentication uses a session token obtained via POST to /jderest/v2/tokenrequest with username and password, returning an opaque token passed in the jde-AIS-Auth header on all subsequent requests. Alternatively, HTTP Basic Auth can be used per-request in stateless mode on Tools 9.2.5.2 and later. JD Edwards has no native outbound webhooks, so data is polled by querying data service tables with a date filter on UPMJ (date updated) or DGJ (GL date). The base URL pattern is https://<customer-ais-server-host>:<port>/jderest/v2/, since JD Edwards is on-premises with no fixed public hostname. Pagination uses the maxPageSize parameter with a moreRecords flag for continuation.

How UPS works

UPS exposes shipment creation, rating, tracking, address validation, and pickup scheduling through REST JSON APIs with OAuth 2.0 client credentials. The token endpoint is https://onlinetools.ups.com/security/v1/oauth/token, and a 6-digit UPS account number can optionally be passed in the x-merchant-id header. Token lifetime is approximately 4 hours, with a limit of approximately 250 token requests per day. UPS provides push webhooks via the Track Alert API for tracking number subscriptions (valid for 14 days and renewed per subscription), and also supports polling via Quantum View shipment visibility feeds. No billing or invoice API is available. UPS decommissioned its XML/SOAP legacy auth on June 3, 2024, making OAuth 2.0 mandatory.

What moves between them

Purchase orders and order detail flow from Oracle JD Edwards into UPS for shipment creation and rating. Shipment requests include item master data, quantities, and destination addresses from JD Edwards F4301 (purchase order header) and F4311 (purchase order detail). After shipment creation in UPS, tracking numbers are written back into JD Edwards as linked audit records tied to the original purchase order. Tracking events from UPS update the shipment status in JD Edwards, and address validation results are stored alongside the purchase order for audit and compliance. Delivery confirmations close out the shipment record in JD Edwards.

How ml-connector handles it

ml-connector stores both the JD Edwards AIS Server URL and UPS OAuth credentials encrypted, and obtains a JD Edwards session token on first request, monitoring the 30-60 minute default lifetime and re-authenticating before expiry. For UPS, it refreshes the OAuth 2.0 bearer token before the 4-hour mark and respects the daily token request limit of approximately 250 requests, pooling requests where possible. When a purchase order is created in JD Edwards, ml-connector polls the F4301 and F4311 tables for new records, extracts item detail and delivery address, calls the UPS shipment creation endpoint with the rating service first to get cost estimates, and stores the returned tracking number in JD Edwards as an audit record linked to the purchase order. UPS Track Alert subscriptions are renewed every 14 days automatically. Delivery events from Track Alert webhooks or Quantum View polling update the shipment status in JD Edwards. If a UPS call fails with a 429 (rate limit), ml-connector backs off and retries with exponential jitter. All shipment records carry a full audit trail and can be replayed if a downstream write fails.

A real-world example

A mid-sized wholesale distributor runs Oracle JD Edwards for procurement and inventory, with multiple regional warehouses. Before the integration, procurement staff created purchase orders in JD Edwards and then manually entered UPS shipment details, tracked packages through the UPS website separately, and spent time updating JD Edwards with delivery confirmations. With JD Edwards and UPS connected, purchase orders automatically flow to UPS for rating and shipment creation; tracking numbers appear in JD Edwards within minutes; and delivery events update the order status so the procurement team sees the full shipment lifecycle in the ERP without switching tools. The manual re-keying and status-hunting steps are eliminated.

What you can do

  • Create UPS shipments automatically when purchase orders are created in Oracle JD Edwards, with ratings and cost estimates.
  • Write UPS tracking numbers back into JD Edwards purchase order records for audit and compliance.
  • Validate delivery addresses against UPS address validation before shipment creation.
  • Refresh UPS OAuth 2.0 credentials and JD Edwards session tokens before expiry, and manage Track Alert subscriptions with automatic 14-day renewal.
  • Update JD Edwards shipment status and delivery confirmations from UPS tracking events, with retries and a full audit trail.

Questions

How does ml-connector authenticate to both Oracle JD Edwards and UPS?
ml-connector obtains a JD Edwards session token via POST /jderest/v2/tokenrequest with username and password, then passes it in the jde-AIS-Auth header on all subsequent requests. For UPS, it uses OAuth 2.0 client credentials to obtain a bearer token from https://onlinetools.ups.com/security/v1/oauth/token. Both credentials are stored encrypted, and tokens are refreshed before expiry to prevent authentication timeouts.
Does the integration work with on-premises JD Edwards?
Yes. Because Oracle JD Edwards is on-premises, ml-connector accepts the full AIS Server URL per customer instance, including the host, port, and protocol. The connector also validates firewall allowlists and IP whitelisting rules commonly configured on JD Edwards instances. Confirm the customer's Tools release version before using v2 or v3 API endpoints.
What happens when UPS Track Alert subscriptions expire?
UPS Track Alert subscriptions are valid for 14 days and must be renewed. ml-connector automatically renews subscriptions before expiry so tracking events continue to flow into JD Edwards without interruption. If a subscription renewal request fails, ml-connector alerts via the audit trail so the issue can be addressed before tracking data stops.

Related integrations

Connect Oracle JD Edwards and UPS

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

Get started