ml-connector
MYOBAdyen

MYOB and Adyen integration

MYOB handles your accounting across AP, AR, and general ledger. Adyen handles payment acceptance across online, mobile, and in-person channels. Connecting the two keeps your cash position and your sales records in agreement without manual journal entry. Each Adyen payment event--authorization, capture, refund, or settlement summary--flows into MYOB's GL with the correct amounts, fees, and tax codes, mapped to the customer invoice or a daily deposit summary. Disputes and chargebacks post their own adjustment entries so your receivables reconcile with your payment processor.

How MYOB works

MYOB AccountRight Live API exposes suppliers, customers, purchase bills, sales invoices, GL accounts, journals, items, and tax codes through REST APIs with OData v3 query filters and pagination. Authentication requires OAuth2 Authorization Code flow plus company file username and password sent with every API call. MYOB enforces a dual authentication requirement: the OAuth2 bearer token plus a base64-encoded pair of company file credentials in request headers. Tokens expire in 20 minutes and refresh tokens last one week. Access is rate-limited to eight requests per second and one million requests per day per API key. MYOB does not support webhooks or push events, so all polling must detect changes by filtering on LastModified timestamps.

How Adyen works

Adyen exposes payment transactions, authorizations, captures, refunds, cancellations, disputes, and settlement reports through REST APIs and webhook notifications. Writes to the Checkout and Management APIs require API Key authentication via an X-API-Key header, scoped to a merchant or company account. Adyen also supports Basic Auth and OAuth 2.0 for ISVs and partners. Payment events publish through webhooks to a registered endpoint with HMAC-SHA256 signature verification required on every request. Adyen is payment-focused, not financial: it has no GL accounts, cost centers, vendor records, or purchase orders. Payment records are write-only after submission, so captures and refunds go through dedicated event endpoints rather than field updates. Settlement data is available through reconciliation reports.

What moves between them

Payment and settlement data moves from Adyen into MYOB. Adyen webhook events--AUTHORISATION, CAPTURE, REFUND, CANCELLATION, CHARGEBACK, and REPORT_AVAILABLE--are received and logged by ml-connector. On a daily or weekly schedule, ml-connector polls Adyen settlement reports and reconciliation data, then writes them into MYOB as either individual customer payment records linked to sales invoices or as a single daily batch journal entry if your MYOB setup uses that pattern. Refunds and chargebacks post as credit memos or adjustment journals. Nothing flows back from MYOB to Adyen, since Adyen is payment-only and the transaction records cannot be changed.

How ml-connector handles it

ml-connector receives Adyen webhook notifications on a registered HTTPS endpoint, validates each notification signature using the HMAC-SHA256 key stored encrypted in your configuration, and stores the event for processing. On the sync schedule you define--daily, weekly, or on-demand--ml-connector authenticates to MYOB using OAuth2 plus the company file credentials, queries the Adyen API for settlement and reconciliation details, and posts the data into MYOB as General Journal entries or Sale/CustomerPayment records. Each transaction is mapped to a GL account (Merchant Fees Expense, Payment Income) and a tax code matching MYOB's chart of accounts. Because MYOB requires OAuth tokens to be refreshed every 20 minutes and the company file credentials must be re-sent on every call, ml-connector caches the OAuth refresh token and tracks the token expiry so authentication does not delay processing. Adyen settlement amounts are reconciled against Adyen's reported fees and chargebacks, and any discrepancies are logged so your finance team can investigate. Every record carries the originating Adyen transaction ID so disputes and reversals can be traced back to the source payment.

A real-world example

A mid-sized Australian e-commerce retailer runs MYOB for accounting and uses Adyen for online payment processing across their website and a mobile app. Previously, the finance team downloaded a settlement file from Adyen each night and manually keyed deposits and fees into MYOB's GL, then spent reconciliation time comparing Adyen's settlement register to the GL balances. With MYOB and Adyen connected, each night's settlement posts automatically into MYOB as a single batch GL entry, merchant fees are split to the correct expense account, and the Adyen settlement is immediately reconcilable against MYOB's cash account. Refunds and chargebacks flow in the same way, so disputes do not require a separate manual entry.

What you can do

  • Receive Adyen payment events via webhooks (AUTHORISATION, CAPTURE, REFUND, CANCELLATION, CHARGEBACK) and validate signatures with HMAC-SHA256.
  • Post Adyen settlement summaries and transaction details into MYOB's general journal with the correct GL accounts and tax codes.
  • Reconcile Adyen settlement amounts against reported fees and chargebacks, logging discrepancies for review.
  • Map transaction types to the correct GL accounts (Merchant Fee Expense, Payment Income, Refund/Chargeback Adjustments).
  • Authenticate MYOB using OAuth2 and company file credentials, with automatic token refresh every 20 minutes, and track Adyen API credentials encrypted.

Questions

How does the integration handle Adyen webhook signatures and MYOB's dual authentication?
ml-connector verifies every Adyen webhook using the HMAC-SHA256 key stored encrypted in the configuration, rejecting any notification with an invalid signature. For MYOB, it presents both the OAuth2 bearer token and the company file credentials in request headers on every call, caches the OAuth refresh token to avoid re-authenticating every 20 minutes, and re-sends the company file credentials to MYOB each time since that is a required header.
Which direction does data move between MYOB and Adyen?
Data moves from Adyen into MYOB only. Payment events, settlement summaries, refunds, and chargebacks post into MYOB as GL entries or customer payment records. Nothing flows back to Adyen, since Adyen is payment-focused and submitted payment records cannot be modified.
How are Adyen transaction amounts and fees mapped into MYOB's chart of accounts?
Each transaction type (payment, fee, refund, chargeback) is mapped to a designated GL account in MYOB (such as Merchant Fee Expense, Payment Income, or Sales Refund). The mapping is configured per customer during setup and validated against MYOB's existing accounts and tax codes. Transactions are grouped into daily or weekly batches depending on your preference and posted as journal entries on the sync schedule.

Related integrations

Connect MYOB and Adyen

Free to use. Add your credentials, ping your real systems, and see if we fit.

Get started