Sage Intacct and Adyen integration
Sage Intacct tracks your financial records. Adyen processes your payments and settlements. Connecting the two keeps your cash ledger in agreement with what actually settled. Payment captures, refunds, and disputes flow from Adyen into Sage Intacct's general ledger, allocated to the GL accounts you specify, with no manual reconciliation. ml-connector handles the very different APIs on each side and posts the records on a schedule you control.
What moves between them
Payment and settlement data flows from Adyen into Sage Intacct. Adyen payment events (captures, refunds, disputes, and chargebacks) are received via webhook, aggregated into settlement batches by date and account, and posted as GL entries into Sage Intacct's general ledger. Each entry maps the settlement amount to a GL account you specify; disputes and chargebacks are posted to a designated dispute GL account. Reference data such as merchant accounts and GL dimensions are mapped once to lock in the routing. Sage Intacct is read for GL chart validation; no data flows back to Adyen.
How ml-connector handles it
ml-connector stores both API credential sets encrypted and subscribes to Adyen webhook events for payments, refunds, cancellations, and disputes. On receipt, it deduplicates using Adyen's event notification reference, aggregates settlement batches by posting date and merchant account, and builds GL journal entries. For Sage Intacct, it maintains a cached session obtained via the initial getAPISession handshake and refreshes before the 50-minute expiry to avoid breaks mid-batch. Because Sage Intacct publishes a single XML gateway endpoint, all GL postings serialize through one connection; ml-connector parses the HTTP 200 response body for XML error tags and retries transient failures. Every record carries a uniqueid control flag for idempotent replay if a retry is needed. Disputes are flagged separately so finance can triage them without mixing settled payments. Adyen's test and live environments require separate API keys and are routed by a configuration switch per customer.
A real-world example
A mid-sized e-commerce retailer processes 5,000+ daily payments across multiple channels using Adyen: web, mobile, and POS. Before the integration, the finance team downloaded Adyen settlement reports daily and manually posted them to Sage Intacct by hand, allocating refunds and disputes to separate GL accounts. Month-end close required chasing discrepancies between Adyen's settling balance and Sage Intacct's recorded cash. With Adyen and Sage Intacct connected, each payment capture and refund flows into the ledger automatically on the day it settles, allocated to the correct GL account. Chargebacks and disputes post to a separate account for investigation. The daily reconciliation step is gone, and month-end close starts with the cash accounts already balanced.
What you can do
- Post Adyen payment captures, refunds, and cancellations into Sage Intacct's general ledger, allocated to the correct GL accounts.
- Route disputes and chargebacks to a separate GL account so finance can triage them independently from settled payments.
- Map Adyen merchant accounts and settlement currencies to Sage Intacct GL dimensions and GL accounts, ensuring all postings land on valid accounts.
- Authenticate Adyen with API key or basic auth and validate webhook signatures with HMAC-SHA256, and Sage Intacct with session-based XML gateway credentials.
- Receive payments via Adyen webhook, aggregate into settlement batches by date and account, and post with idempotent deduplication and a full audit trail.
Questions
- Which direction does data move between Sage Intacct and Adyen?
- The flow is Adyen into Sage Intacct. Payment events, refunds, cancellations, and disputes from Adyen are received via webhook and posted as GL entries into Sage Intacct's general ledger. Sage Intacct is read for GL account validation to ensure postings land on valid accounts. No data flows back to Adyen.
- How does the integration handle Sage Intacct's XML gateway and 50-minute session expiry?
- ml-connector maintains a cached session obtained via Sage Intacct's initial getAPISession call and monitors the 50-minute expiry window. It refreshes the session before expiry is due, so posting batches never hit an expired session. All operations post through the single XML gateway endpoint, and ml-connector parses HTTP 200 responses for XML error tags to handle application-level errors correctly.
- How are Adyen disputes and chargebacks handled?
- Disputes and chargebacks are flagged during processing and posted to a separate GL account designated for chargebacks, keeping them distinct from settled payments. This allows finance to review and investigate disputed transactions independently without mixing them into the daily reconciliation.
Related integrations
More Sage Intacct integrations
Other systems that connect to Adyen
Connect Sage Intacct and Adyen
Free to use. Add your credentials, ping your real systems, and see if we fit.
Get started