ml-connector
Oracle E-Business SuiteServiceTitan

Oracle E-Business Suite and ServiceTitan integration

Oracle E-Business Suite handles your general ledger, accounts payable, and procurement. ServiceTitan dispatches field technicians, schedules jobs, and issues purchase orders for parts and materials. Connecting them keeps your AP in EBS synchronized with the bills ServiceTitan generates from each service call, so technician costs and field purchases post to the right GL accounts without re-entry. Vendor rates and item costs stay in sync across both systems, and every bill that lands in EBS is audited and can be replayed if a downstream concurrent program fails.

How Oracle E-Business Suite works

Oracle E-Business Suite (R12.2) is an on-premises ERP that exposes AP invoices, purchase orders, GL accounts, vendors, and items through REST web services deployed to the Integrated SOA Gateway (ISG). Authentication uses HTTP Basic Auth (username and password) or a session token obtained via the login endpoint, plus application context headers specifying responsibility, organization, and security group. Writes to AP and PO are async: ml-connector posts to open interface tables via REST, then EBS concurrent programs import the data to base tables, a process that can take minutes to hours. There are no webhooks, so polling on a schedule is the only integration path.

How ServiceTitan works

ServiceTitan is a cloud field-service-management platform for HVAC, plumbing, electrical, and similar trades. It exposes invoices, payments, purchase orders, vendors, items, customers, jobs, and appointments through REST JSON APIs authenticated with OAuth2 client credentials. Inventory bills (AP Bills) are generated automatically when a PO is marked received and are read-only via the API. ServiceTitan also offers webhooks for outbound push on events like job.created, invoice.created, and payment.created, with HMAC-SHA256 signature verification. API calls are rate-limited to 60 per second per application per tenant, and tokens are valid for 15 minutes.

What moves between them

ServiceTitan inventory bills and purchase orders flow into Oracle EBS as AP invoice and PO records via the open interface tables. EBS vendors, GL accounts, and cost center definitions flow back to ServiceTitan so bills are posted to the correct GL accounts and cost centers. Item definitions and rates sync bidirectionally so ServiceTitan technicians see current part costs when they dispatch jobs and EBS procurement sees what materials were consumed in the field. The main cadence is event-driven: ServiceTitan webhooks notify ml-connector when a bill or PO is created or updated, and ml-connector polls EBS periodically to refresh vendor and item reference data.

How ml-connector handles it

ml-connector stores both credential sets encrypted. For Oracle EBS it caches the session token and re-authenticates on 401, managing the token expiry (typically 30-60 minutes). For ServiceTitan it caches the OAuth2 bearer token (15-minute TTL) and includes the required ST-App-Key header on every call. When a ServiceTitan bill is created, ml-connector receives the webhook, maps the bill to an open interface record with the matching EBS vendor and GL account, and posts it via REST to the ISG. Since EBS writes are async, ml-connector polls the concurrent request table to track import success or failure, and surfaces any validation errors (invalid vendor, wrong GL account, unbalanced line items) in the audit trail. Reference data (vendors, GL accounts) is synced on a daily schedule because EBS has no event system. Rate limits are handled with backoff: ServiceTitan 429 responses trigger exponential retry with jitter. Because both systems require detailed application context (EBS needs org ID and security group; ServiceTitan needs tenant ID in the URL path), ml-connector stores these per-customer and validates them on each request.

A real-world example

A mid-sized HVAC and plumbing service company runs Oracle EBS for finance and AP, and uses ServiceTitan to dispatch technicians, schedule service calls, and manage field inventory. Technicians log materials used on each job, and ServiceTitan auto-generates purchase orders for parts consumed and AP bills for labor. Before the integration, the finance team spent hours each week manually re-entering ServiceTitan bills into EBS, cross-checking vendor codes, and allocating bills to the right cost center and GL account per job location. When a vendor code changed in EBS but not in ServiceTitan, bills landed on the wrong account and caused month-end reconciliation delays. With ServiceTitan and EBS connected, each bill flows automatically to EBS, mapped to the correct vendor, GL account, and cost center based on the job location. The finance team now reviews the import log once daily, and the AP reconciliation on month-end close is automated.

What you can do

  • Move ServiceTitan inventory bills and purchase orders into Oracle EBS AP open interface tables, where concurrent programs import them as invoices and POs.
  • Map ServiceTitan bills to EBS vendors and GL accounts so bills post to the correct cost center and profit center.
  • Keep EBS vendors, GL accounts, and cost centers in sync with ServiceTitan so technicians dispatch against current procurement data.
  • Authenticate to Oracle EBS via HTTP Basic Auth or session token with context headers, and to ServiceTitan via OAuth2 with the ST-App-Key header on every call.
  • Track bill import status through EBS concurrent programs and surface validation errors (invalid vendor, wrong GL code, unbalanced lines) in a full audit trail.

Questions

How does ml-connector handle the asynchronous nature of EBS AP writes?
ml-connector posts bills to EBS open interface tables via REST, then polls the concurrent request table to track when the import completes. If the concurrent program fails (invalid vendor, wrong GL account, unbalanced lines), ml-connector surfaces the error in the audit trail so the finance team can correct the source record in ServiceTitan and retry.
Which direction does data flow between ServiceTitan and Oracle EBS?
ServiceTitan bills and purchase orders flow into EBS AP. Vendors, GL accounts, and cost centers flow from EBS back to ServiceTitan so bills are coded correctly. Item definitions and rates sync bidirectionally so technicians see current costs and EBS procurement sees what was consumed in the field.
What happens if ServiceTitan or EBS is temporarily unavailable?
ServiceTitan webhooks are retried by ServiceTitan itself (10s, 30s, 60s, 300s intervals), and ml-connector will process them when it comes online. Bills queued in ml-connector are retried with exponential backoff, and the audit trail shows which bills are pending, in-flight, or completed so you can track exactly where each record landed.

Related integrations

Connect Oracle E-Business Suite and ServiceTitan

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

Get started