Skip to content

Adyen Plugin — Documentation

WooCommerce Adyen is a payment gateway plugin that integrates the Adyen payment platform with WooCommerce. It handles checkout payments (credit card, iDEAL), subscription renewals, and Adyen webhook notifications.

Contents

Overview

The plugin is structured around the Adyen PHP namespace (inc/) with JavaScript assets in src/.

Key modules

Module / Class Responsibility
Gateway\CreditCard WooCommerce payment gateway for credit card payments
Gateway\IDEAL WooCommerce payment gateway for iDEAL
Modules\SubscriptionsManager Handles WooCommerce Subscriptions renewal payments
Modules\NotificationScheduler Schedules processing of incoming Adyen notifications
Backend\OrderNotifications Processes and stores Adyen webhook events on orders
API\Populator Builds Adyen API request payloads
Modules\SettingsPage Admin settings page for API credentials and options

Payment flow

sequenceDiagram
    participant Customer
    participant WooCommerce
    participant Plugin
    participant Adyen

    Customer->>WooCommerce: Place order
    WooCommerce->>Plugin: process_payment()
    Plugin->>Adyen: POST /payments
    Adyen-->>Plugin: Payment result
    Plugin-->>WooCommerce: Return success/failure
    Adyen->>Plugin: Webhook notification (async)
    Plugin->>WooCommerce: Update order status

Subscription renewals

When WooCommerce Subscriptions triggers a renewal, SubscriptionsManager calls the Adyen API using the stored recurring payment token (recurringDetailReference) for the customer.

Webhook notifications

Adyen sends signed webhook events to the plugin's REST endpoint. Each notification is:

  1. Validated using the HMAC signature.
  2. Stored via Data\NotificationStore.
  3. Processed asynchronously by NotificationScheduler via WP-Cron.

Stack

  • PHP 7.4+ — PSR-4 autoloading via Composer (Adyen\ namespace → inc/)
  • WordPress / WooCommerce — hooks, CRUD API, HPOS-compatible
  • JavaScript — Laravel Mix (webpack), Vue.js for order notification UI
  • Adyen PHP API Library (adyen/php-api-library ^8.0)