ml-connector
Oracle JD EdwardsFedEx

Oracle JD Edwards and FedEx integration

Oracle JD Edwards EnterpriseOne manages your procurement and general ledger. FedEx moves your packages worldwide. Connecting them keeps your order-to-delivery pipeline synchronized without manual entry. Purchase orders and shipment tracking flow automatically, and the finance team sees real-time fulfillment status in your GL without re-entering carrier data. ml-connector handles the different authentication methods on each side and moves the data on a schedule you control.

How Oracle JD Edwards works

Oracle JD Edwards EnterpriseOne is an on-premises ERP suite covering financials, procurement, manufacturing, HR, and distribution. It exposes purchase orders, supplier invoices, GL accounts, item masters, and shipment references through REST APIs hosted on a customer-supplied AIS Server at a customer-specific URL. Authentication uses a session token obtained via username and password, or HTTP Basic Auth per-request. JD Edwards has no native outbound webhooks, so records are read by polling with a date-updated filter and tracking the last-polled timestamp.

How FedEx works

FedEx exposes shipment creation, tracking events, rate quotes, freight management, and customs documents through REST APIs at apis.fedex.com (sandbox at apis-sandbox.fedex.com). Every call requires OAuth 2.0 client credentials using an API Key and API Secret from the FedEx Developer Portal. FedEx offers Advanced Integrated Visibility webhooks for tracking push events (paid subscription per tracking number), or data can be pulled via the Track API (free) by polling tracking numbers up to 30 per request. Shipments are created through the Ship API with a required FedEx account number.

What moves between them

The main flow runs from JD Edwards into FedEx and back. ml-connector polls JD Edwards for new purchase orders and supplier invoices, then creates shipments in FedEx with item quantities, destinations, and weights mapped from JD Edwards item masters and address books. Tracking events flow back from FedEx into JD Edwards by polling the Track API or receiving webhooks, updating shipment status on purchase order lines so the procurement team sees real-time carrier progress. Shipment costs and tracking milestones are recorded in the GL for month-end close.

How ml-connector handles it

ml-connector stores both credential sets encrypted: the JD Edwards AIS Server URL, username, and token endpoint; and the FedEx API Key and Secret. It obtains a JD Edwards session token and caches it for the 30-60 minute default lifetime, refreshing silently on HTTP 444 token-invalid signals. For FedEx, it requests an OAuth 2.0 bearer token and caches it for one hour, staying well under FedEx's auth rate limit of 3 tokens per second. It polls JD Edwards purchase orders (F4301/F4311) and invoices (F0411) using the UPMJ date-updated field with continuation pagination, then enriches each order with item details and ship-to address from the address book (F0101) and item master (F4101). Each shipment created in FedEx includes a reference to the JD Edwards PO number for later matching. Tracking numbers returned from FedEx are stored in JD Edwards, and the Track API is polled every hour to update delivery status. FedEx's transaction deduplication via transactionId prevents accidental duplicate shipments if a PO is polled twice. AIS Server IP allowlists must include the ml-connector egress address; the JD Edwards service account must hold a valid license, and the AIS Server must be restarted-resilient through reconnect logic.

A real-world example

A mid-sized wholesale distributor runs Oracle JD Edwards for procurement and accounting, and ships orders daily through FedEx. Before the integration, the supply chain team created shipments manually in FedEx by re-entering PO quantities and addresses from JD Edwards, then logged delivery confirmations by hand back into JD Edwards so the finance team could close the GL. With JD Edwards and FedEx connected, each PO automatically flows to FedEx; ml-connector creates shipments with the correct quantities, weights, and destinations; and tracking updates flow back into JD Edwards daily, so the GL reflects fulfillment status without re-keying and the finance team reconciles without chasing carrier emails.

What you can do

  • Automatically create FedEx shipments from Oracle JD Edwards purchase orders, mapped from item masters and address books.
  • Poll FedEx tracking data hourly and sync shipment status back into JD Edwards for procurement and GL visibility.
  • Authenticate JD Edwards with session tokens to a customer-hosted AIS Server and FedEx with OAuth 2.0 client credentials.
  • Handle JD Edwards' 30-60 minute token lifecycle and FedEx auth rate limits, with automatic renewal and reconnect on failure.
  • Maintain a full audit trail of every shipment, tracking event, and GL posting, with error replay if a downstream sync fails.

Questions

Which direction does data move between Oracle JD Edwards and FedEx?
The main flow is JD Edwards into FedEx. Purchase orders and supplier invoices are read from JD Edwards and used to create shipments in FedEx. Tracking events and delivery status flow back from FedEx into JD Edwards hourly so procurement and finance see real-time carrier progress without manual entry.
How does the integration handle JD Edwards' customer-specific AIS Server URL and lack of webhooks?
ml-connector accepts the full AIS Server URL and port as a credential per customer, since JD Edwards publishes no shared base hostname. Because JD Edwards has no outbound webhooks, ml-connector polls purchase orders and invoices on a schedule tied to your fulfillment cycle, tracking the last-polled date so it never re-processes the same record twice.
What happens if a FedEx API call fails or a shipment cannot be created from a JD Edwards order?
ml-connector tracks every shipment attempt with a full audit trail, including the JD Edwards PO number, shipment contents, FedEx response, and any error. If FedEx returns a rate limit (HTTP 429) or temporary error, ml-connector backs off and retries automatically. If a shipment fails permanently, the error is logged in the audit and can be replayed once the root cause is fixed, so no manual re-entry is needed.

Related integrations

Connect Oracle JD Edwards and FedEx

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

Get started