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.
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
More Oracle JD Edwards integrations
Other systems that connect to UPS
Connect Oracle JD Edwards and UPS
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started