Oracle E-Business Suite and Basware integration
Oracle E-Business Suite runs financials, procurement, and the general ledger on-premises. Basware runs invoice capture, coding, matching, and approval in the cloud. Connecting the two means invoices that Basware has coded and approved post into the Oracle Payables open interface without re-keying, and the supplier, GL account, and cost center masters that govern coding stay in agreement with the ledger. ml-connector handles the different APIs and auth on each side and moves the data on a schedule you control. Because Oracle EBS imports invoices through a two-step interface table and concurrent program, ml-connector inserts the record and then confirms it actually posted.
What moves between them
The main flow runs from Basware into Oracle E-Business Suite. After an invoice is coded and approved, ml-connector reads it from Basware accountingDocuments and inserts it into the Oracle EBS AP_INVOICES_INTERFACE and line interface, mapped to the matching EBS supplier, code combination, and operating unit, then lets the Payables Open Interface Import create the bill. Supplier, GL account, and cost center master data flows the other direction, from Oracle EBS into Basware import endpoints, so the coding panel only offers accounts and dimensions that exist in the ledger. Once Payables confirms the import, ml-connector calls Basware transferResponses to mark the document transferred. Payment confirmations posted in EBS can also be sent back to Basware paymentResponses.
How ml-connector handles it
ml-connector stores both credential sets encrypted. On the Basware side it exchanges the client id and secret for an OAuth2 bearer token and refreshes it before the roughly one-hour expiry, scoping the call to the customer region. On the Oracle EBS side it accepts the full instance URL per customer, logs in for a session token, and re-authenticates on a 401 because EBS sessions time out in 30 to 60 minutes; it sends the required ctx_orgid and responsibility context on every call. Supplier, GL account, and cost center masters are synced first so every Basware coding line resolves to a real EBS code combination before any invoice is posted. Where Basware webhooks are enabled, ml-connector verifies the X-BWAPI-Signature-256 HMAC over the raw UTF-8 body and takes the push as a trigger; otherwise it polls accountingDocuments on a schedule, paging with the continuation header. Because the EBS invoice write is a two-step asynchronous import, a 200 on the interface insert does not mean the bill exists, so ml-connector polls AP_INVOICES_ALL to confirm the import before sending transferResponses to Basware. EBS has no idempotency key, so each invoice is inserted with a unique SOURCE plus invoice number and a BullMQ jobId to prevent double-booking, and Basware silently skips records identical to the last import. Every record carries a full audit trail and can be replayed if a downstream call fails.
A real-world example
A mid-sized manufacturer with about 900 staff runs Oracle E-Business Suite R12.2 for procurement, payables, and the general ledger, and rolled out Basware to capture and approve supplier invoices across three operating units. Before the integration, an AP clerk opened each approved invoice in Basware and keyed the header, lines, and GL coding into Oracle Payables by hand, which meant invoices waited days, coding was sometimes mistyped against the wrong cost center, and the accrual never matched what had been approved. With Oracle E-Business Suite and Basware connected, each approved invoice lands in the Payables open interface within the polling window, allocated to the correct supplier, account, and operating unit, and ml-connector confirms the import posted before marking it transferred in Basware. Invoices post the same day, the coding errors are gone, and the AP team stops re-keying.
What you can do
- Post coded and approved Basware invoices into the Oracle E-Business Suite Payables open interface, then confirm the import.
- Sync Oracle EBS suppliers, GL accounts, and cost centers into Basware so the coding panel stays valid.
- Map each Basware coding line to a real Oracle EBS code combination and operating unit before posting.
- Bridge Basware OAuth2 bearer tokens and the Oracle EBS Basic or session-token login, refreshing each before expiry.
- Poll on a schedule or take a signed Basware webhook, with SOURCE plus jobId dedup and a full audit trail on every record.
Questions
- Which direction does data move between Oracle E-Business Suite and Basware?
- The main flow is Basware into Oracle E-Business Suite. Coded and approved invoices move from Basware into the Oracle Payables open interface so the import program can create the bill. Supplier, GL account, and cost center master data flows the other way, from Oracle EBS into Basware, so the coding panel only offers accounts that exist in the ledger.
- How does the integration handle Oracle EBS importing invoices through interface tables?
- Oracle E-Business Suite writes invoices in two steps: ml-connector inserts the record into AP_INVOICES_INTERFACE, then the Payables Open Interface Import concurrent program validates and creates the bill. A 200 on the insert does not mean the invoice posted, so ml-connector polls AP_INVOICES_ALL to confirm the import before it calls Basware transferResponses to mark the document transferred.
- Does Basware push invoices, or does ml-connector poll for them?
- Both are supported. Where Basware webhooks are enabled, ml-connector verifies the X-BWAPI-Signature-256 HMAC over the raw UTF-8 body and uses the push as a trigger. Otherwise it polls Basware accountingDocuments on a schedule, paging with the continuation token in the request header, because Oracle EBS itself exposes no webhook for external callbacks.
Related integrations
More Oracle E-Business Suite integrations
Other systems that connect to Basware
Connect Oracle E-Business Suite and Basware
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started