ml-connector
Oracle E-Business SuiteStedi

Oracle E-Business Suite and Stedi integration

Oracle E-Business Suite runs your procurement and finance. Stedi translates your business documents into the X12 EDI format your trading partners expect. Connecting them means your purchase orders and invoices leave EBS, convert to standard EDI 850 and 810 documents, and deliver to supplier portals and EDI networks without re-entry. Inbound acknowledgments from partners flow back to EBS as open interface records, ready for import validation. ml-connector handles the two very different APIs and keeps every transaction audited.

How Oracle E-Business Suite works

Oracle E-Business Suite exposes procurement, accounts payable, and general ledger data through the Integrated SOA Gateway (ISG), a database-level REST or SOAP API layer deployed per customer instance. There is no shared API hostname; each customer provides their own ISG URL and port. Authentication uses HTTP Basic Auth (username and password) or a session token obtained via the login endpoint, which returns an access token valid for 30 to 60 minutes. Outbound writes to purchase orders or invoices require posting to open interface tables via REST, followed by execution of a concurrent program to import records into base tables, which may take several minutes. EBS has no webhook system, so polling filtered by LAST_UPDATE_DATE is the standard approach. The EBS user must have Invoke permissions on each ISG service, granted via the Integration Repository UI.

How Stedi works

Stedi is a cloud-based EDI platform that translates JSON to X12 EDI standards and vice versa. Its REST API at https://core.us.stedi.com/2023-08-01 accepts JSON request bodies and returns JSON responses. Authentication uses a static API key in the Authorization header; keys do not expire and must be manually revoked. Stedi routes translated EDI files to trading partners via SFTP, FTPS, or AS2, not HTTP. Inbound EDI from partners is parsed to JSON and pushed as webhooks (event type transaction.processed.v2) to a registered webhook endpoint; the endpoint must respond within 5 seconds and the certificate must be publicly trusted. Outbound API writes require an Idempotency-Key header for 24-hour deduplication. Stedi is a translation layer, not a system of record; it does not store vendors, invoices, or GL accounts.

What moves between them

The primary flow moves purchase orders and invoices from Oracle EBS to Stedi. On a schedule you control, ml-connector polls EBS for new or updated PO_HEADERS_ALL and AP_INVOICES_ALL records, transforms them into Stedi's JSON format, and posts them to Stedi for conversion to X12 850 Purchase Orders and 810 Invoices. Stedi routes the EDI files to your trading partners via SFTP or AS2. Inbound 855 Purchase Order Acknowledgments from partners arrive at Stedi as parsed JSON webhooks; ml-connector receives them, transforms them back to EBS-compatible format, and writes them to the EBS open interface table AP_INVOICES_INTERFACE for import. Cost center and vendor validation occurs at both ends.

How ml-connector handles it

ml-connector stores the EBS ISG URL and Basic Auth credentials encrypted. On each poll cycle, it authenticates to EBS, obtains a session token, and queries PO and invoice records filtered by LAST_UPDATE_DATE to catch only changes since the last run. It then transforms PO and invoice line items into Stedi's JSON transaction format, adds a unique Idempotency-Key header to prevent duplicate posts, and submits them to Stedi. Stedi translates the JSON to X12 EDI and routes to trading partners. For inbound acknowledgments, ml-connector registers a webhook endpoint with Stedi; when partner 855s arrive, Stedi parses the EDI and POSTs the JSON to that endpoint. ml-connector validates the eventId for deduplication, transforms the 855 back to EBS format, posts it to AP_INVOICES_INTERFACE, and waits for the EBS import concurrent program to complete. EBS session tokens expire in 30 to 60 minutes, so ml-connector re-authenticates and obtains a new token when a call returns 401. Stedi API key credentials never expire but are revoked manually. Every record carries a full audit trail with timestamps, error messages, and retry state.

A real-world example

A mid-sized industrial distributor runs Oracle EBS for procurement and accounts payable, with dozens of suppliers across multiple regions. Before the integration, the procurement team exported POs from EBS, manually converted them to X12 EDI in a legacy EDI tool, and sent them to supplier portals; inbound 855 acknowledgments were received as EDI files, manually parsed, and re-entered into EBS by hand. Month-end AP reconciliation required chasing discrepancies between EBS and supplier confirmations. With Oracle EBS and Stedi connected, each PO in EBS automatically converts to X12 850 and routes to the supplier's EDI network; inbound 855 acknowledgments flow back as JSON, auto-populate the EBS open interface, and are validated during import. The procurement team now spends no time on manual EDI conversion, and AP reconciliation is faster because EBS and supplier confirmations stay in sync throughout the month.

What you can do

  • Poll Oracle EBS on a schedule you control and push purchase orders and invoices to Stedi for X12 EDI conversion.
  • Receive 855 Purchase Order Acknowledgments from Stedi webhooks and load them into EBS open interface tables for import.
  • Manage EBS session token refresh on expiry and Stedi API key credential rotation without service interruption.
  • Map EBS cost centers, vendors, and GL accounts to Stedi transaction metadata so EDI documents carry valid context.
  • Track every PO, invoice, and acknowledgment through the full EDI exchange with complete audit trail and error replay.

Questions

How does ml-connector handle the different hostnames and authentication between EBS and Stedi?
Oracle EBS requires an ISG URL specific to your customer instance (https://<hostname>:<port>/webservices/rest/...) and HTTP Basic Auth credentials. ml-connector stores both encrypted. Stedi uses a single base URL (https://core.us.stedi.com/2023-08-01) and a static API key. ml-connector retrieves the EBS session token once per cycle, re-authenticates if it expires (401 response), and uses the Stedi API key on every outbound request.
What happens when an EBS import concurrent program takes time to complete?
EBS writes to open interface tables are asynchronous: ml-connector posts the record to AP_INVOICES_INTERFACE via REST, but the concurrent program that imports it to base tables may run later. ml-connector tracks the posted record with a unique source ID so it can poll the base tables periodically to confirm the import completed, and it surfaces any import errors to the audit trail.
Can Stedi push inbound EDI (855 acknowledgments) back to EBS automatically?
Yes. ml-connector registers a webhook endpoint with Stedi; when inbound 855 Purchase Order Acknowledgments arrive from trading partners, Stedi parses the EDI to JSON and POSTs to that endpoint within 5 seconds. ml-connector receives the JSON, validates it, transforms it to EBS format, and writes it to the EBS open interface for import via the same concurrent program flow.

Related integrations

Connect Oracle E-Business Suite and Stedi

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

Get started