Oracle JD Edwards and Adyen integration
Oracle JD Edwards runs financials and procurement on-premises. Adyen processes card payments, refunds, and payouts. Connecting the two brings settled payment activity into the general ledger without re-keying. After each Adyen settlement, the captured amounts, refunds, processing fees, and chargebacks post into Oracle JD Edwards as journal entries against the correct accounts and business units. ml-connector handles the very different APIs on each side and reconciles payment activity to the ledger on the cadence you set.
What moves between them
The flow runs from Adyen into Oracle JD Edwards. ml-connector consumes Adyen settlement and reconciliation reports and posts the resulting journals into the JDE account ledger through a configured orchestration: captured payments, refunds, processing fees, and chargebacks, each mapped to the matching JDE account and business unit. Capture, refund, and report-available webhooks trigger the work as soon as activity settles, and a scheduled poll backfills anything a webhook missed. Adyen is treated as a read-only accounting source, so ml-connector never writes payment instructions or journal entries back into Adyen.
How ml-connector handles it
ml-connector stores both credential sets encrypted and sends the Adyen X-API-Key on every request, switching to the merchant-specific live URL prefix when the environment is live. On the JDE side it accepts the full AIS Server base URL per customer, logs in to obtain a session token, sends that token in the jde-AIS-Auth header, and re-authenticates when a call returns HTTP 444 (invalid token), which also happens whenever the AIS Server restarts. Adyen webhooks arrive signed with HMAC-SHA256, so each notification is verified before processing and the pspReference is used as a dedup key, because Adyen can deliver the same notification more than once. On REPORT_AVAILABLE, the settlement report is downloaded from the signed URL, parsed, and its lines mapped to JDE accounts and business units, which are aligned first so every journal line lands on a valid account. Because JDE cannot write through a direct table POST, journals are created through the named orchestration the customer imports into Orchestrator Studio, and the connector accepts that orchestration name as a config field. The customer's CNC admin must add the connector egress IPs to the AIS Server allowed-hosts list, or calls return HTTP 405. Since JDE has no outbound webhooks, anything not covered by an Adyen push is reached by polling.
A real-world example
A mid-sized direct-to-consumer manufacturer sells finished goods through its own online store and runs Oracle JD Edwards EnterpriseOne on-premises for production, inventory, and finance, with Adyen as the payment processor at checkout. Before the integration, the finance team downloaded Adyen settlement reports each day and manually entered the gross sales, refunds, and processing fees into JDE, then spent month-end close reconciling the bank deposit against the orders it was supposed to cover. With Oracle JD Edwards and Adyen connected, each settlement report posts into JDE automatically through the journal-entry orchestration, split into the right accounts and business units, so the payment fees are recognized and the deposits already tie out. The daily re-keying step is gone and close starts from reconciled numbers.
What you can do
- Post Adyen settlement and reconciliation reports into the Oracle JD Edwards general ledger after every payout.
- Record captured payments, refunds, processing fees, and chargebacks against the correct JDE accounts and business units.
- Create JDE journal entries through a configured orchestration, since direct table writes are not supported.
- Authenticate Adyen with its X-API-Key and the live URL prefix, and JDE with a session token that auto-refreshes on expiry.
- Verify each Adyen HMAC webhook and dedup on pspReference, with retries and a full audit trail on every record.
Questions
- Which direction does data move between Oracle JD Edwards and Adyen?
- The flow is Adyen into Oracle JD Edwards. Settlement reports, captured payments, refunds, fees, and chargebacks move from Adyen into the JDE general ledger as journal entries. Adyen is treated as a read-only accounting source, so ml-connector does not write payment instructions or journal entries back into Adyen.
- How does ml-connector write journal entries into JD Edwards if direct table writes are not allowed?
- JDE does not allow direct REST writes to its tables, so all writes go through a named orchestration the customer imports and configures in Orchestrator Studio, or through the F0911Z1 batch table. ml-connector accepts that orchestration name as a config field and posts each settlement journal through it. The connector reads ledger and account data through the data service for verification and mapping.
- How are Adyen webhooks and JDE's lack of webhooks handled?
- Adyen webhooks arrive signed with HMAC-SHA256, so ml-connector verifies each one before processing and uses the pspReference as a dedup key, because Adyen can deliver the same notification more than once. Oracle JD Edwards has no native outbound webhooks, so it is reached by polling its data service tables on a schedule, with a poll also backfilling any Adyen report a webhook missed.
Related integrations
More Oracle JD Edwards integrations
Other systems that connect to Adyen
Connect Oracle JD Edwards and Adyen
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started