ml-connector
Oracle E-Business SuiteUPS

Oracle E-Business Suite and UPS integration

Oracle E-Business Suite runs procurement and supply chain for on-premises enterprises. UPS manages shipments and tracking. Connecting them keeps your purchase order fulfillment in sync with UPS shipments without manual entry. When a purchase order moves to receiving in EBS, ml-connector creates a shipment in UPS and writes tracking events back to EBS so finance and procurement have a single source of shipment truth.

How Oracle E-Business Suite works

Oracle E-Business Suite (R12.2) exposes purchase orders, vendors, vendor sites, goods receipts, and invoice data through the Integrated SOA Gateway (ISG), which deploys REST and SOAP web services from the Integration Repository. Authentication uses HTTP Basic Auth with a username and password, or a session token obtained via the login endpoint, and every call requires application context headers such as ctx_orgid, ctx_responsibility, and ctx_securitygroup. The customer hosts the ISG on their own server, so there is no shared public URL; ml-connector accepts the full customer EBS hostname and port. EBS has no modern webhook system, so data is read by polling open interface views filtered by LAST_UPDATE_DATE with limit and offset pagination. Write operations to EBS are asynchronous: ml-connector inserts into an open interface table, and then a concurrent program imports the data to the base tables, a process that can take minutes to hours.

How UPS works

UPS provides shipment creation, rating, tracking, address validation, and pickup scheduling through OAuth 2.0 authenticated REST APIs. Authentication requires a client_id, client_secret, and optional 6-digit UPS account number, and tokens are obtained at https://onlinetools.ups.com/security/v1/oauth/token with a lifetime of approximately 4 hours and a limit of 250 token requests per day. UPS offers two sync patterns: push webhooks via Track Alert API for tracking numbers with 14-day validity, and polling via Quantum View for shipment visibility. However, UPS has no billing or invoice download API, and shipment data is primarily read from UPS while writes flow to UPS only for creating shipments.

What moves between them

The main flow runs from Oracle E-Business Suite into UPS. ml-connector polls purchase orders and receipt headers from EBS on a daily or weekly schedule, creates shipments in UPS with the carrier and destination from the receipt, and receives tracking events from UPS either via webhook subscription or Quantum View polling. Tracking numbers and delivery status are written back to EBS via an open interface table and imported by a concurrent program, so procurement and accounting see shipment milestones alongside the original purchase order.

How ml-connector handles it

ml-connector stores both the EBS Basic Auth credentials and the UPS OAuth client credentials encrypted, and refreshes the UPS token when calls return 401. For EBS, it accepts the full customer hostname and port, includes the required application context headers (ctx_orgid, ctx_responsibility, ctx_securitygroup, ctx_nlslanguage) on every read, and polls the purchase order headers and receipts tables filtered by LAST_UPDATE_DATE with pagination. For UPS shipment creation, it validates addresses against UPS before posting, rates each shipment based on the destination and weight from EBS, and returns the assigned tracking number. When writing tracking data back to EBS, ml-connector inserts into the open interface table and records the concurrent program job ID so the import status can be monitored. If a concurrent program import fails, ml-connector retries the write through the interface table. Track Alert subscriptions in UPS expire after 14 days and are renewed automatically on a cron schedule. Every record carries a timestamp and audit trail so failed shipments or tracking updates can be replayed.

A real-world example

A mid-sized manufacturing company runs Oracle E-Business Suite on-premises for procurement and finance, and uses UPS as its primary carrier for outbound shipments. Before the integration, the warehouse team created shipments in UPS manually after goods were received and inspected in EBS, then procurement manually entered tracking numbers back into EBS for visibility. Reconciliation between EBS purchase orders and UPS shipments was done by hand, and discrepancies between the two systems caused delays in accounting close. With EBS and UPS connected, each received purchase order automatically generates a shipment in UPS, tracking updates flow back to EBS in real time, and procurement and accounting have a single unified view of shipment status tied to the original order.

What you can do

  • Poll Oracle E-Business Suite purchase orders and receipt headers on a daily or weekly schedule filtered by last update date.
  • Create shipments in UPS with address validation and carrier rating based on origin, destination, and weight from EBS.
  • Write tracking numbers and delivery status back to Oracle E-Business Suite via open interface tables and concurrent program import.
  • Handle OAuth token refresh for UPS and HTTP Basic Auth with application context headers for EBS, with encrypted credential storage.
  • Subscribe to UPS Track Alert webhooks with automatic 14-day renewal, or poll Quantum View for shipment visibility when webhooks are unavailable.

Questions

How does ml-connector handle Oracle E-Business Suite's lack of webhooks and asynchronous write operations?
ml-connector polls EBS purchase orders and receipts on a schedule you control, filtering by LAST_UPDATE_DATE. When writing tracking data back to EBS, ml-connector inserts into an open interface table and monitors the concurrent program import job. If the import fails, the record is retried and tracked in the audit trail.
What happens when a UPS Track Alert subscription expires or a tracking number is not found?
UPS Track Alert subscriptions expire after 14 days and must be renewed. ml-connector automatically renews subscriptions on a cron schedule. If a tracking number is not found in UPS, ml-connector logs the error and can replay the subscription request once the shipment is visible in UPS.
Does ml-connector support address validation and shipping rate quotes before creating a shipment?
Yes. ml-connector validates addresses against UPS Address Validation before posting a shipment, and it queries the UPS rating API to quote the shipping cost based on origin, destination, weight, and service level from the EBS purchase order.

Related integrations

Connect Oracle E-Business Suite and UPS

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

Get started