Exact Online and Adyen integration
Exact Online handles accounting and finance. Adyen processes payments. Connecting the two keeps your payment records and bank entries aligned. Adyen captures, refunds, and dispute reversals flow into Exact Online as bank entries and payment records without re-keying. ml-connector manages OAuth token refresh, webhook signature verification, and the structural mismatch between a payment processor and an ERP.
What moves between them
Adyen payment captures and refunds flow into Exact Online via webhook notifications. ml-connector receives the CAPTURE or REFUND event, verifies the HMAC signature, looks up the payment reference in Exact Online, and creates or updates a bank entry in the receiving bank account. Settlement reports from Adyen are retrieved on a daily schedule and reconciled against Exact Online's bank entries for that day. Dispute events such as CHARGEBACK are recorded in a separate dispute record linked to the original payment. Data flows one way: Adyen into Exact Online. Exact Online is the source of truth for GL accounts, cost centers, and invoice reconciliation.
How ml-connector handles it
ml-connector stores the Adyen API key and Exact Online OAuth credentials encrypted. On receiving an Adyen webhook, it verifies the HMAC-SHA256 signature using the webhook secret retrieved from Adyen's Customer Area. For Exact Online, ml-connector refreshes the OAuth access token 30 seconds before expiry (at the 9.5-minute mark) to ensure calls do not hit the 10-minute window. When a CAPTURE event arrives, ml-connector looks up the merchant reference in Exact Online's Payments table to find the related invoice or customer, then posts a bank entry in the receiving bank account with the capture amount. Refunds reverse the bank entry. Disputes are tracked separately so the finance team can investigate chargebacks without affecting the main reconciliation. Settlement reports are fetched on a schedule aligned with your clearing window and matched against bank entries by transaction ID and amount. Every record carries a job ID for dedup and a full audit trail.
A real-world example
A mid-sized e-commerce company uses Exact Online for invoicing, AP, and GL, and processes credit card and bank transfer payments through Adyen for card schemes and alternative payment methods. Before the integration, the finance team exported Adyen settlement reports daily, looked up each transaction in Exact Online's payment log, and manually keyed the settlement deposits into bank reconciliation. Refunds and chargebacks required separate tracking. With Adyen and Exact Online connected, each Adyen capture triggers a bank entry in the correct account, refunds are reversed automatically, disputes are flagged for investigation, and daily settlement reconciliation happens without manual intervention.
What you can do
- Receive Adyen payment captures and refunds via webhook, verify HMAC-SHA256 signatures, and create corresponding bank entries in Exact Online.
- Refresh Exact Online OAuth 2.0 access tokens before expiry to prevent re-authorization requests and keep the flow uninterrupted.
- Map Adyen merchant references and transaction IDs to Exact Online payment records and bank accounts.
- Track Adyen disputes and chargebacks separately so the finance team can investigate without disrupting normal reconciliation.
- Retrieve daily settlement reports from Adyen and reconcile them against Exact Online bank entries by transaction ID and amount.
Questions
- What records actually move between Adyen and Exact Online?
- Adyen payment captures, refunds, and dispute events flow into Exact Online as bank entries in the receiving bank account. Settlement reports from Adyen are fetched daily and reconciled against Exact Online's bank entries. There is no reverse flow; Exact Online is the source of truth for invoices, customers, and GL account structure.
- How does ml-connector handle Exact Online's OAuth token expiry and division requirements?
- ml-connector refreshes the OAuth access token at the 9.5-minute mark, before the 10-minute window closes, so calls always use a fresh token. At startup, it fetches the division ID from the /current/Me endpoint and includes it in all subsequent API calls. If the refresh token expires after 30 days without use, the user must re-authorize through the app registration flow in Exact Online's App Center.
- What happens when a refund or chargeback occurs in Adyen?
- When Adyen sends a REFUND event, ml-connector reverses the bank entry posted for the original capture. For chargebacks, ml-connector creates a linked dispute record in Exact Online's audit trail so the finance team can investigate and decide whether to dispute the chargeback or accept the loss. Neither action modifies the original invoice or payment record.
Related integrations
More Exact Online integrations
Other systems that connect to Adyen
Connect Exact Online and Adyen
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started