Oracle Fusion Cloud ERP and ServiceTitan integration
Oracle Fusion Cloud ERP runs your finance and procurement. ServiceTitan runs your field-service dispatch and customer invoicing. Connecting the two keeps your vendor master and procurement status current in ServiceTitan while pulling completed job invoices from the field back into Fusion's accounts receivable and general ledger. New vendors created in Fusion appear in ServiceTitan for purchasing, purchase order receipts flow back to Fusion for invoice matching, and customer job invoices from ServiceTitan post to Fusion without manual re-entry.
What moves between them
The primary flow runs from Oracle Fusion to ServiceTitan. Supplier master records and purchase order data sync from Fusion to ServiceTitan every 5 to 15 minutes so ServiceTitan's vendor list and purchase order status stay current. The secondary flow runs from ServiceTitan to Fusion. Job invoices and customer payments created in ServiceTitan flow to Fusion's accounts receivable module and general ledger on a daily or twice-daily schedule, matched against Fusion customer records and posted to the appropriate GL accounts for revenue recognition. GL accounts are managed in Fusion; ServiceTitan does not expose GL mapping.
How ml-connector handles it
ml-connector stores both credential sets encrypted and uses OAuth 2.0 client credentials to refresh tokens separately on each side every 13 minutes, well before their 1-hour and 15-minute expiries. On the Fusion side, ml-connector polls the supplier and purchase order REST endpoints with a timestamp filter (LastUpdateDate >= {previous-run-timestamp}) to capture only changed records, then maps Fusion supplier attributes to ServiceTitan vendor fields and purchase order quantities to ServiceTitan purchase order items. On the ServiceTitan side, ml-connector listens for webhook events (job invoices and payment receipts) with signature verification using the HMAC-SHA256 key, falls back to polling if webhooks are not enabled, and maps ServiceTitan customer and job identifiers to Fusion customer accounts so invoices post to the correct AR account and cost center. Fusion's PATCH operations on invoices only update header attributes and do not cascade defaults, so customer and GL dimensions are validated before posting. Every record carries a full audit trail with the source transaction ID, timestamp, and any mapping or transformation applied, allowing a downstream call failure to trigger replay.
A real-world example
A mid-sized HVAC contractor runs Oracle Fusion Cloud ERP for accounting, procurement, and fixed assets, and uses ServiceTitan for dispatch, scheduling, and job invoicing across 15 service locations. Before the integration, procurement staff updated the vendor list in ServiceTitan manually every month by exporting Fusion's supplier master, and the accounts team spent two days at month-end reconciling job invoices created in ServiceTitan with the AR aging report in Fusion. With the integration, new vendors created in Fusion for parts purchasing appear in ServiceTitan within minutes, purchase orders flow back automatically to track invoicing progress, and job invoices created in ServiceTitan post to Fusion's AR module the next morning, so month-end close starts with AR already reconciled and purchase-to-invoice matching ready to verify.
What you can do
- Sync supplier master data and purchase order status from Oracle Fusion to ServiceTitan on a 5 to 15 minute polling schedule.
- Push job invoices and customer payments from ServiceTitan to Oracle Fusion's accounts receivable and general ledger daily.
- Bridge OAuth 2.0 authentication and token refresh on both sides, with automatic retry on 401 responses.
- Validate customer and GL dimensions in Fusion before posting invoices so invalid account combinations do not fail silently.
- Maintain a full audit trail of every record, source transaction ID, timestamp, and mapping decision for downstream replay and reconciliation.
Questions
- Which direction does data move between Oracle Fusion and ServiceTitan?
- Supplier master data and purchase orders flow from Fusion to ServiceTitan every 5 to 15 minutes so your vendor and PO list stays current. Job invoices and customer payments flow from ServiceTitan to Fusion daily so revenue is recognized in the correct AR account and GL. GL accounts remain managed in Fusion only; ServiceTitan does not expose GL mapping.
- How does ml-connector handle OAuth 2.0 on both sides, given their different token lifetimes?
- ml-connector caches OAuth 2.0 credentials separately for each system and refreshes them proactively at 13 minutes, well before Fusion's 1-hour expiry and ServiceTitan's 15-minute expiry. If a call returns 401 (token expired), ml-connector refreshes immediately and retries, so a token renewal never causes an outage.
- Does ServiceTitan's webhook push require special setup, or does ml-connector fall back to polling?
- If ServiceTitan webhooks are enabled for your tenant, ml-connector listens for job invoice and payment events with HMAC-SHA256 signature verification for real-time push. If webhooks are not enabled, ml-connector falls back to polling the ServiceTitan API on a schedule you control, so the integration works either way without additional configuration.
Related integrations
More Oracle Fusion Cloud ERP integrations
Other systems that connect to ServiceTitan
Connect Oracle Fusion Cloud ERP and ServiceTitan
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started