Ellipse Gradient for Header

Adyen Integration Guide

Connect Adyen payments, webhooks, reports, refunds, disputes, and payouts with enterprise applications through secure APIs and orchestrated workflows.

Adyen integration options at a glance

Adyen’s primary integration surface is its REST API family, covering payments, payment methods, payment links, modifications, disputes, platforms, management, and reporting-related operations. Adyen also provides webhook-style notifications for selected payment, refund, dispute, recurring, platform, and transfer events. Some operations support asynchronous processing, while reporting APIs and downloadable reports support settlement and reconciliation workflows. Authentication may use API keys, client keys, HMAC webhook signatures, or OAuth for supported scenarios. Martini can consume these APIs, expose secured endpoints for notifications, validate and transform JSON, retrieve reports, schedule reconciliation, and route results to enterprise applications or databases.

Integration pointSupported by Adyen?Common use casesHow Martini supports it
REST APIsYesCreate and manage payments, payment methods, payment links, modifications, disputes, platform operations, management tasks, and reporting-related operations.Martini can consume Adyen REST APIs from workflows, map JSON requests and responses, apply business rules, and expose standardized internal APIs.
Webhooks and outbound callbacksLimitedReceive selected payment-result, capture, refund, dispute, recurring, platform, balance-platform, and transfer notifications.Martini can expose an API endpoint, validate Adyen HMAC signatures, acknowledge accepted events, deduplicate notifications, and route event codes to workflows.
Bulk, asynchronous, and batch processingLimitedSupport selected payment or platform operations whose completion is asynchronous; there is no universal bulk API for every Adyen object.Martini can persist correlation references, wait for webhook results, schedule recovery checks, and process batches where the relevant Adyen API supports them.
Reporting APIs and downloadable reportsYesRetrieve settlement, payment accounting, reconciliation, and operational data through reporting capabilities or downloaded report files.Martini can schedule report retrieval, store files, parse CSV or supported formats, normalize rows, and load results into finance systems or databases.
File and attachment handlingLimitedHandle reports and selected product-specific dispute or account documents; no general attachment model applies uniformly to all Adyen objects.Martini can retrieve or receive supported files, transform their contents, and route documents or evidence through product-specific workflows.
API key, OAuth, and client authenticationYesAuthenticate server-side API calls with API keys, use OAuth for supported platform or management scenarios, and use client keys for selected browser-based integrations.Martini can externalize credentials in protected configuration and apply the authentication model required by each Adyen API.
Webhook HMAC authenticationYesVerify that inbound webhook notifications originate from the configured Adyen integration.Martini can validate the HMAC signature before acknowledging or processing the event and can reject invalid requests.
Database accessNoAdyen does not provide customer-facing direct database access; data is obtained through APIs, webhooks, and reporting capabilities.Martini can store normalized Adyen data in an enterprise database after retrieving it through supported Adyen interfaces.

How Adyen exposes data and business events

Adyen REST APIs

Adyen REST APIs are the principal integration mechanism for payment processing, payment methods, payment links, modifications, disputes, platforms, management, and reporting-related operations. API access and object availability depend on the Adyen product area and credential permissions.

Martini implementation pattern

Martini workflows call the relevant Adyen endpoint using the required API key or supported OAuth configuration. The workflow validates responses, maps Adyen JSON into a canonical model, applies business rules, and writes results to an application, database, or exposed Martini API.

Implementation sequence

Receive a payment, refund, dispute, or reporting request
Authenticate with the required Adyen API credential
Call the product-specific Adyen REST endpoint
Validate the response and correlate the operation
Map the JSON payload to the target model
Apply business rules and idempotency checks

Adyen Webhooks

Adyen provides webhook-style notifications for selected payment-result, capture, refund, dispute, recurring, platform, balance-platform, and transfer event families. Coverage is product- and event-specific, and duplicate delivery should be expected.

Martini implementation pattern

Martini exposes an API endpoint for Adyen notifications, validates the HMAC signature, acknowledges valid events promptly, and routes recognized event codes into workflows. Longer-running ERP, fulfillment, or reconciliation work can continue after acknowledgement.

Implementation sequence

Receive the Adyen webhook notification
Validate the HMAC signature
Acknowledge the accepted notification promptly
Check the event identifier or business key for duplicates
Classify the event code and payment state
Retrieve current Adyen data when required by the workflow

Asynchronous Adyen processing

Selected Adyen operations return results that complete later, with final outcomes delivered through supported notifications or subsequent retrieval. Adyen does not provide one universal bulk API for all payment objects.

Martini implementation pattern

Martini stores the initial operation reference and correlation data, then consumes the corresponding webhook or performs a bounded recovery check. The workflow updates the internal state only after applying ordering, idempotency, and current-state rules.

Implementation sequence

Submit the supported asynchronous Adyen operation
Store the operation reference and internal correlation key
Wait for the supported notification or recovery window
Receive or retrieve the final operation result
Apply state-transition and duplicate checks
Update the target application and audit status

Adyen Reporting and files

Adyen reporting capabilities provide settlement, payment accounting, reconciliation, and operational data through reporting APIs or downloadable reports. Report availability, format, and retrieval behavior depend on account configuration and report type.

Martini implementation pattern

A scheduled Martini workflow retrieves or receives the applicable report, stores the source file, parses rows or structured data, normalizes currencies and references, and loads results into a finance platform or SQL database. Checkpoints and replay windows support recovery.

Implementation sequence

Start the report workflow on a schedule
Retrieve the configured Adyen report or report data
Store the source file and report metadata
Parse and validate the report contents
Map rows to finance or reconciliation structures
Load results and record the successful checkpoint

Common Adyen integration patterns

Pattern 1: Orchestrate payments and order fulfillment

When to use this pattern

Use this pattern when an order application needs a controlled payment API while the final payment result may arrive asynchronously. It separates the initial authorization response from later webhook-driven fulfillment decisions.

Integration direction
Order application
Martini
Adyen
Fulfillment system
Example Mapping
Adyen FieldCanonical FieldTarget Field
referenceorderReferenceorder.id
amount.valueauthorizedAmountMinorpayment.amount
resultCodepaymentResultpayment.status
eventCodepaymentEventTypefulfillment.releaseStatus
Martini implementation pattern

Martini exposes an API for the order application, validates the request, calls Adyen’s Payments API, and returns a normalized preliminary result. A separate webhook workflow validates HMAC, deduplicates notifications, checks the current payment state, and releases fulfillment only for permitted outcomes. Transient API failures are retried with bounded backoff and unresolved cases are routed for review.

Martini capabilities used
  • APIs
  • workflows
  • API consumption
  • data mapping
  • business rules
  • error handling

Pattern 2: Synchronize payments, refunds, and disputes

When to use this pattern

Use this pattern when commerce, CRM, or finance applications require a consistent view of payment modifications and dispute states. Webhooks provide timely updates, while scheduled retrieval provides recovery for missed events.

Integration direction
Adyen
Martini
Salesforce
NetSuite
Example Mapping
Adyen FieldCanonical FieldTarget Field
pspReferencepaymentProviderReferenceexternalPaymentId
modificationAmountrefundAmountrefund.amount
eventCodefinancialEventTypetransaction.type
disputeStatusdisputeStatecase.status
Martini implementation pattern

Martini consumes selected Adyen notifications and relevant modification or dispute APIs, maps separate payment, refund, chargeback, and dispute states, and updates target systems only when the event is newer or authoritative. A scheduled reconciliation workflow replays an overlap window and identifies missing or conflicting updates.

Martini capabilities used
  • webhook receiving
  • API consumption
  • data mapping
  • scheduled workflows
  • idempotency rules
  • retry handling

Pattern 3: Reconcile Adyen settlements with finance

When to use this pattern

Use this pattern for settlement, fee, refund, payout, and payment-accounting reconciliation where financial correctness cannot depend solely on webhook delivery.

Integration direction
Adyen
Martini
SQL database
SAP S/4HANA
Example Mapping
Adyen FieldCanonical FieldTarget Field
merchantReferenceorderReferencesalesDocumentReference
settlementAmountsettledAmountaccountingAmount
commissionprocessingFeefeeAmount
bookingDatesettlementDatepostingDate
Martini implementation pattern

A scheduled Martini workflow retrieves the appropriate Adyen report or API data, stores the original source, parses and validates rows, normalizes currencies and dates, and compares results with internal orders and invoices. Exceptions such as partial refunds, fee differences, and unmatched references are persisted for review rather than silently discarded.

Martini capabilities used
  • scheduler triggers
  • file processing
  • JSON handling
  • data mapping
  • database workflows
  • business rules
  • monitoring

Pattern 4: Coordinate platform payouts and transfers

When to use this pattern

Use this pattern for Adyen for Platforms implementations where marketplace account, balance-platform, transfer, or payout information must be coordinated with internal marketplace and compliance processes.

Integration direction
Marketplace platform
Martini
Adyen
Finance system
Example Mapping
Adyen FieldCanonical FieldTarget Field
accountHolderCodemarketplaceAccountIdseller.accountId
transferReferencetransferIdpayout.externalReference
amount.valuepayoutAmountMinorpayout.amount
eventCodepayoutEventTypepayout.status
Martini implementation pattern

Martini orchestrates calls to the applicable Adyen platform APIs, validates account and transfer references, processes supported notifications, and applies product-specific permissions and state rules. Failed transfers are retried only when safe, with correlation identifiers and manual-review routing for ambiguous outcomes.

Martini capabilities used
  • workflow orchestration
  • REST API consumption
  • data transformation
  • conditional routing
  • secure configuration
  • error handling

Applications commonly integrated with Adyen

Adyen payment, reporting, dispute, and payout data can be coordinated with commerce, finance, billing, analytics, and service-management applications. The exact API products, permissions, and payment configuration should be confirmed for each implementation.

Application Scenario Direction Martini Pattern
Shopify Process payments associated with commerce orders and synchronize payment results, refunds, and settlement information. Shopify → Martini → Adyen Martini receives order or payment requests, maps them to Adyen payment operations, then processes webhook notifications and reconciliation data back into commerce and finance workflows.
Adobe Commerce Use Adyen for online-store payment processing while keeping order, refund, and payment status synchronized. Adobe Commerce → Martini → Adyen A Martini API accepts payment actions from Adobe Commerce, invokes Adyen REST APIs, validates asynchronous results, and routes webhook updates back to the commerce process.
Salesforce Synchronize payment status, refunds, customer payment activity, and order-related financial information with CRM or commerce processes. Adyen → Martini → Salesforce Martini consumes Adyen responses and selected webhook events, maps payment and refund states to Salesforce objects, and applies duplicate and status-transition rules before updates.
SAP S/4HANA Reconcile Adyen settlements, refunds, fees, payouts, and payment activity with accounting and order data. Adyen → Martini → SAP S/4HANA Scheduled Martini workflows retrieve reports or API data, normalize currencies and settlement periods, apply reconciliation rules, and write accounting-ready results to SAP.
NetSuite Post settlement, payment, refund, fee, and payout information into ERP and financial reconciliation processes. Adyen → Martini → NetSuite Martini retrieves Adyen reports, transforms rows into NetSuite-compatible financial structures, tracks checkpoints, and routes exceptions for review.
Zuora Coordinate subscription billing events with payment collection and payment-result updates. Zuora → Martini → Adyen Martini translates billing payment actions into Adyen requests, receives supported payment notifications, and synchronizes authorization, capture, refund, and failure states with billing.
Snowflake Centralize Adyen transaction, settlement, dispute, payout, and reporting data for analytics and reconciliation. Adyen → Martini → Snowflake Martini retrieves reports or API data, parses and standardizes files or JSON, enriches records with internal references, and loads controlled batches into Snowflake.
ServiceNow Route failed transactions, disputes, payment incidents, and reconciliation exceptions into service-management workflows. Adyen → Martini → ServiceNow Martini evaluates Adyen events and reconciliation exceptions, creates or updates ServiceNow cases through its API, and correlates subsequent remediation status.

How to build a Adyen integration in Martini

Objective

Establish the Adyen API and webhook security model for the required product areas and environments.

Instructions in Martini

  • Use Adyen API credentials with the minimum required roles and account scope.
  • Store API keys, HMAC keys, OAuth secrets, and endpoint configuration in protected Martini secrets or environment configuration.
  • Keep test and live credentials and URLs separate.

Objective

Select the trigger that matches the business process and Adyen capability.

Instructions in Martini

  • Use a Martini API for payment, refund, or payout requests from another application.
  • Use an inbound API endpoint for supported Adyen webhook notifications.
  • Use a scheduler for reporting, polling, reconciliation, and recovery workflows.

Objective

Obtain the Adyen payload or report while preserving correlation and replay information.

Instructions in Martini

  • Call the product-specific REST API or receive the configured webhook event.
  • Persist payment references, event identifiers, report periods, and workflow checkpoints.
  • Retrieve current state when a notification is incomplete or event ordering is uncertain.

Objective

Coordinate API calls, asynchronous results, validation, and downstream processing in a maintainable workflow.

Instructions in Martini

  • Separate fast webhook acknowledgement from longer-running ERP, fulfillment, or reporting work.
  • Route payment, refund, dispute, payout, and report flows according to their distinct business states.
  • Use conditional paths for accepted, rejected, pending, duplicate, and exception outcomes.

Objective

Convert Adyen JSON, webhook payloads, or report rows into canonical and target-specific structures.

Instructions in Martini

  • Map provider references, amounts, currencies, dates, event codes, and statuses explicitly.
  • Normalize report files and payment data before loading finance or analytics systems.
  • Avoid passing sensitive payment details to systems that do not require them.

Objective

Protect financial correctness and prevent duplicate or invalid state transitions.

Instructions in Martini

  • Validate webhook signatures and required fields before processing.
  • Use idempotency keys and event identifiers for payment, capture, refund, and modification operations.
  • Apply ordering and current-state checks before updating downstream systems.

Common Adyen data objects used in integrations

ObjectTypical UseCommon target systemsMartini handling
PaymentsRepresent payment authorization requests and their results, including payment-state progression.Shopify, Adobe Commerce, Salesforce, SAP S/4HANA, NetSuite, internal order databasesMartini maps payment requests and responses, correlates webhook results, applies state-transition rules, and preserves idempotency references.
PaymentMethodsRepresent payment instruments and payment-method configuration data used during payment processing.Commerce applications, order services, billing platforms, internal payment configuration storesMartini can retrieve or pass through supported payment-method data while minimizing sensitive data exposure and applying environment-specific configuration.
PaymentLinksRepresent hosted payment links created and managed for collecting payments.Commerce applications, CRM systems, customer communications, order platformsMartini can create or retrieve payment links through REST workflows and return normalized links or statuses to consuming applications.
RefundsRepresent full or partial reversals of captured payments.Commerce applications, Salesforce, SAP S/4HANA, NetSuite, finance databasesMartini invokes modification APIs, correlates asynchronous outcomes, prevents duplicate actions, and synchronizes refund states.
DisputesRepresent chargebacks, dispute cases, evidence, and defense-management information.ServiceNow, Salesforce, finance platforms, compliance systems, internal case storesMartini consumes dispute APIs or supported notifications, routes exceptions, handles product-specific documents, and maintains case status.
PayoutsRepresent transfers of funds to users or other payout recipients in applicable Adyen product areas.SAP S/4HANA, NetSuite, marketplace platforms, finance databasesMartini calls the relevant platform or payout APIs, processes supported transfer events, and reconciles payout data with internal balances.

Authentication and security considerations

Credential isolation

Adyen API keys, HMAC keys, OAuth client secrets, and related configuration should be stored in Martini secrets or protected environment configuration rather than embedded in workflows or source code. Separate test and live credentials should be maintained.

Least privilege

Adyen access is controlled through API credential roles, account permissions, and, where applicable, OAuth scopes. Grant only the permissions required for the relevant payment, reporting, platform, dispute, or payout workflows.

Webhook verification

Inbound Adyen notifications should be verified with HMAC before they are accepted. Martini can expose the receiving API, validate the signature, reject invalid requests, and route verified events into workflows.

Sensitive payment data

Workflows should minimize payment data movement and avoid logging full payment details or credentials. Where appropriate, use Adyen-hosted or tokenized payment approaches and pass only the data required by each target system.

Operational considerations for Adyen integrations

Rate limits and transient failures

Adyen limits vary by API and account configuration. Handle HTTP 429 responses, temporary 5xx responses, network failures, and maintenance periods with bounded retries and backoff.

Idempotency and duplicates

Payment, capture, refund, and modification operations should use Adyen idempotency support where available and an internal business key. Webhook duplicates should be expected and suppressed before applying state changes.

Pagination and checkpoints

API and reporting pagination, date filters, cursors, and report periods are endpoint-specific. Store the last successful checkpoint and use an overlap window to recover missed or delayed data.

Ordering and state modeling

Notifications may arrive after an API response or out of expected order. Use current Adyen state, available timestamps, payment references, and modification references. Model authorization, capture, refund, cancellation, chargeback, dispute, and payout states separately.

Versioning and testing

Adyen has multiple product-specific API contracts and versions. Pin versions where applicable, tolerate optional fields, avoid undocumented properties, and test workflows against separate test and live configurations before deployment.

Reconciliation

Webhook processing should not be the only financial control. Periodically reconcile Adyen reports or API data with orders, invoices, refunds, fees, currencies, settlements, and payouts.

Why use Martini instead of scripts or point-to-point integrations?

Centralized orchestration

Martini coordinates Adyen API calls, inbound notifications, reporting, downstream updates, and recovery logic in workflows rather than scattering behavior across scripts or point-to-point interfaces.

Reusable contracts

Martini can expose stable internal APIs that shield applications from Adyen product-specific endpoints, credentials, and payload structures while preserving controlled access to payment capabilities.

Consistent transformation

Mappings and reusable workflow logic provide a consistent way to normalize payment, refund, dispute, payout, and report data for commerce, finance, CRM, analytics, and service-management systems.

Operational control

Validation, idempotency, retries, checkpointing, conditional routing, and monitoring can be applied consistently across real-time webhook flows and scheduled reconciliation processes.

Maintainable integration assets

Martini keeps authentication, business rules, transformations, and error handling in managed integration assets that can evolve as Adyen API products, versions, and enterprise requirements change.

Frequently asked questions

How can Adyen be integrated with enterprise systems?

Adyen can be integrated through its REST APIs for payments, payment methods, payment links, modifications, disputes, platforms, management, and reporting. Selected product areas also provide webhook-style notifications, while reporting APIs and downloadable reports support reconciliation and financial processing. Authentication may use API keys, supported OAuth scenarios, client keys for selected client-side use cases, and HMAC signatures for webhooks.

Can Martini integrate with Adyen?

Yes. Martini can consume Adyen REST APIs, expose an API endpoint for supported Adyen webhook notifications, validate HMAC signatures, orchestrate asynchronous payment processes, retrieve reports, and map results into enterprise applications or databases.

Do I need a connector to integrate Adyen with Martini?

No. A dedicated Adyen connector is not required. Martini can integrate using Adyen’s native REST APIs, selected webhook notifications, reporting capabilities, files, and confirmed authentication methods.

Is there any extra Lonti cost to integrate Adyen with Martini?

Lonti does not charge an additional per-connector or per-vendor fee to integrate Adyen. The integration is subject to the provisioned capacity of the Martini environment. Separate costs may apply from Adyen, cloud infrastructure, or other third-party systems based on subscription, transaction volume, deployment, or usage.

Which Adyen integration methods should an enterprise use?

REST APIs are Adyen’s primary integration method for payment and product operations. Use webhook-style notifications for supported event families, and use reporting APIs or downloadable reports for settlement and reconciliation. Asynchronous processing is available for selected operations, while GraphQL and SOAP were not confirmed for the reviewed scenarios.

Are Adyen events and webhooks available?

Yes, but coverage is product- and event-specific rather than universal. Adyen supports selected payment-result, capture, refund, dispute, recurring, platform, balance-platform, and transfer notifications. Martini can receive these notifications, validate HMAC signatures, acknowledge them promptly, deduplicate them, and route them to workflows.

How should Adyen synchronization and reconciliation work?

Webhooks can provide timely updates for supported events, while scheduled Martini workflows can poll relevant APIs or retrieve reports for recovery and reconciliation. A robust design stores checkpoints, uses overlap windows, distinguishes payment, capture, refund, chargeback, dispute, and payout states, and handles partial refunds, fees, currencies, and settlement timing.

Can Martini expose an API façade for Adyen?

Yes. Martini can expose a controlled API that standardizes payment, refund, reporting, or platform operations for internal applications. The workflow can validate and transform requests, call the appropriate Adyen REST API, enforce business rules, and return a stable internal contract without exposing Adyen credentials or product-specific details directly.