Oracle JD Edwards and Basware integration
Oracle JD Edwards EnterpriseOne runs your financials and procurement, while Basware captures, codes, matches, and approves supplier invoices. Connecting the two means an invoice approved in Basware becomes an AP voucher in JD Edwards without anyone re-keying it. In the other direction, the vendor master, GL accounts, and cost centers that live in JD Edwards are pushed into Basware so coders only see valid options. ml-connector handles the very different authentication on each side and moves the data on the cadence you set.
What moves between them
The main flow runs from Basware into Oracle JD Edwards. When Basware finishes coding, matching, and approving an invoice, it fires an AccountingDocuments transfer webhook, and ml-connector reads that document and posts it as an AP voucher into JD Edwards through the Add Supplier Invoice orchestration, carrying the vendor, amount, currency, GL date, and coding lines. In the other direction, master data moves from JD Edwards into Basware on a schedule: the supplier master, GL accounts, and cost center dimensions are imported so Basware coders reference accounts that already exist in the ERP. After JD Edwards records a payment, ml-connector posts a payment confirmation back into Basware so its status reflects the ledger. JD Edwards is never written to directly except through the configured orchestration.
How ml-connector handles it
ml-connector stores both credential sets encrypted and bridges two unlike auth models: it exchanges the Basware client ID and secret for an OAuth2 bearer token, refreshing it before the roughly one-hour expiry, and it logs in to the JDE AIS Server for a session token, re-authenticating automatically when JD Edwards returns HTTP 444 for an invalid token after a server restart. Because JD Edwards is on-premises, the connector accepts the full AIS base URL, environment, and role per customer and never assumes a shared hostname; the customer's CNC admin must add the connector egress IP to the AIS allowedHosts list or calls return HTTP 405. Basware transfer webhooks are verified against the X-BWAPI-Signature-256 header by computing HMAC-SHA256 over the raw UTF-8 body, with the timestamp checked to block replays. Each approved invoice maps to the Add Supplier Invoice orchestration, with Basware coding lines aligned to JD Edwards object accounts and business units that are imported first. Writes through the orchestration carry no native idempotency key, so ml-connector tracks the Basware document ID and checks before re-posting to avoid duplicate vouchers. On the master-data side, Basware silently skips unchanged records, so only real changes trigger an import, and it backs off and retries on rate-limit or 500 responses from either side.
A real-world example
A mid-sized food manufacturer with about 600 employees runs Oracle JD Edwards EnterpriseOne on-premises for finance and procurement and adopts Basware to clean up a paper-heavy AP process across three plants. Before the integration, approved invoices were printed from Basware and a clerk keyed each one into JD Edwards by hand, which meant slow voucher entry, transposed amounts, and coding to accounts that no longer existed because the chart of accounts in Basware was a stale copy. With Oracle JD Edwards and Basware connected, an approval in Basware posts the voucher into JD Edwards within minutes, the GL accounts and cost centers are refreshed from the ERP nightly, and payment status flows back so the AP team can see in Basware which invoices the ledger has paid. The re-keying step and the bad-coding errors are gone.
What you can do
- Post invoices approved in Basware into Oracle JD Edwards as AP vouchers through the Add Supplier Invoice orchestration.
- Import the JD Edwards supplier master, GL accounts, and cost center dimensions into Basware so coders use valid ERP values.
- Verify Basware transfer webhooks with HMAC-SHA256 and act on each invoice as soon as it is ready for ERP transfer.
- Bridge Basware OAuth2 client credentials and the JD Edwards AIS session token, re-authenticating on token expiry or server restart.
- Send payment confirmations from JD Edwards back into Basware so invoice status matches the ledger.
Questions
- Which direction does data move between Oracle JD Edwards and Basware?
- The main flow is Basware into JD Edwards: approved, coded invoices become AP vouchers in the ERP. Master data moves the other way, with the supplier master, GL accounts, and cost centers imported from JD Edwards into Basware on a schedule. Payment confirmations also flow from JD Edwards back into Basware, because Basware does not initiate payments itself.
- How does the integration write invoices into JD Edwards if direct table writes are blocked?
- JD Edwards allows direct table reads but no direct table writes, so ml-connector posts each approved Basware invoice through the named Add Supplier Invoice orchestration, which must be imported into the customer's Orchestrator Studio first. The orchestration carries no native idempotency key, so ml-connector tracks the Basware document ID and checks before re-posting to prevent duplicate vouchers.
- How are the two authentication models and JD Edwards on-premises setup handled?
- ml-connector exchanges the Basware client ID and secret for an OAuth2 bearer token and logs in to the JDE AIS Server for a session token, refreshing each one as it expires. Because JD Edwards runs on the customer's own infrastructure, the connector takes the full AIS base URL and environment per customer, and the customer's admin must add the connector egress IP to the AIS allowedHosts list so calls are not rejected.
Related integrations
More Oracle JD Edwards integrations
Other systems that connect to Basware
Connect Oracle JD Edwards and Basware
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started