Oracle E-Business Suite and Zuora integration
Oracle E-Business Suite runs your core financials and procurement. Zuora handles subscription billing and order-to-cash for recurring revenue. Connecting the two keeps your subscription orders, invoices, and payments flowing into Oracle without manual re-entry. Subscriptions created in Zuora become accounts in Oracle, Zuora invoices post to Oracle's general ledger with the correct GL dimensions, and payment receipts from Zuora automatically match to Oracle invoices so month-end close is faster and more accurate.
What moves between them
The primary flow runs from Zuora into Oracle E-Business Suite. After a subscription is created or an invoice is posted in Zuora, ml-connector polls the subscription and invoice records, maps the Zuora account to an Oracle customer account (HZ_CUST_ACCOUNTS), translates the subscription items to Oracle line items, and posts the invoice to Oracle's AR_INTERFACE_LINES_ALL open interface table. Oracle's concurrent programs then import the interface records into the accounts receivable base tables and the general ledger. Payment receipts from Zuora (electronic payments only) are polled and matched to Oracle invoices so the AR aging is kept current. Cost centers, product mappings, and GL account assignments are configured once and reused across all invoices so no manual mapping is needed for each transaction.
How ml-connector handles it
ml-connector stores the Oracle ISG hostname, port, and Basic Auth credentials encrypted, plus the customer's Oracle organization context headers (responsibility, organization ID, security group). At runtime it obtains a session token via the ISG login endpoint, includes it in every Oracle API call, and re-authenticates on a 401 response when the session expires (typically 30-60 minutes). For Zuora, it caches the OAuth bearer token (which lasts 1 hour) and refreshes it before expiry. The connector polls Zuora subscriptions and invoices on a schedule and uses Zuora's webhook notifications where configured to receive real-time alerts on key events (invoice posted, payment processed); webhook payloads trigger a callback fetch of the full record. On the Oracle side, ml-connector inserts records into open interface tables (AR_INTERFACE_LINES_ALL, AP_INVOICES_INTERFACE) and then monitors for the concurrent program to complete the import into the base tables. If the import fails (invalid GL account, incorrect organization context, or blocked AR workflow), the full error is captured and the record is held for manual review or replay. Zuora rate limits (50,000 RPM) are respected with exponential backoff on 429 responses. All records carry a complete audit trail showing the source ID from Zuora, the target ID from Oracle, the mapping applied, and the result of the import.
A real-world example
A B2B SaaS company with a large on-premises Oracle EBS instance for core accounting runs Zuora for subscription management and billing. Before the integration, the accounting team exported subscription and invoice data from Zuora weekly, manually created customer accounts in Oracle, keyed in line items from Zuora invoices, and posted the AR and GL entries by hand. The process took 2-3 days per week and errors in mapping subscriptions to the correct GL account or cost center were found late in the month-end close. With Oracle E-Business Suite and Zuora connected, each new subscription creates a customer record in Oracle instantly, invoices post automatically to the correct GL accounts matched by product, and payment receipts reconcile against Oracle invoices without manual lookup. The accounting team reclaimed the 2-3 days and month-end close now starts with AR and GL already aligned.
What you can do
- Sync subscription and invoice data from Zuora into Oracle E-Business Suite on a schedule or via webhook notifications.
- Map Zuora subscriptions to Oracle customer accounts and line items with configurable GL account and cost center assignment.
- Authenticate to the Oracle ISG with session token refresh and handle multi-hour concurrent program import delays.
- Poll Zuora on a schedule with exponential backoff on rate limits, respecting the 50,000 RPM production threshold.
- Maintain a full audit trail of every invoice and payment from Zuora to Oracle with source IDs, mappings applied, and import results.
Questions
- How does the connector handle Oracle ISG authentication and session timeouts?
- ml-connector obtains a session token from the ISG login endpoint using the stored Basic Auth credentials and application context headers, then includes the token in every call to the ISG. When a call returns 401 (token expired), the connector re-authenticates immediately and retries the request. Since session timeouts in EBS are typically 30-60 minutes, the connector handles re-auth as a routine part of polling.
- What happens when a Zuora invoice is posted and Oracle's concurrent program is still importing it?
- ml-connector posts the invoice to Oracle's open interface table (AR_INTERFACE_LINES_ALL) and then polls the base table (RA_INTERFACE_LINES_ALL) to check when the import is complete. If the import fails (for example, an invalid GL account or incorrect organization context), the error is captured and the record is held for review or replay.
- Which Zuora payment events trigger a sync to Oracle, and why only electronic payments?
- ml-connector syncs payments when Zuora fires the Payment Processed notification, but only for electronic payments. External payments (checks, bank transfers recorded offline) and manual payments (entered directly in Zuora) do not send notifications in Zuora, so the connector must poll to detect them. Electronic payments are synced to Oracle AR to match the invoice receipt and keep the aging current.
Related integrations
More Oracle E-Business Suite integrations
Other systems that connect to Zuora
Connect Oracle E-Business Suite and Zuora
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started