Enhanced Scheme Data (ESD)
What is ESD?
Enhanced Scheme Data (ESD) refers to industry-specific metadata sent to card schemes (like Visa or Mastercard) to improve:
Interchange rates (reduced processing fees),
Fraud detection through better context,
Authorization performance.
ESD is especially beneficial for US-based card transactions in sectors like car rental, travel, or digital goods.
Official documentation: Adyen – Enhanced Scheme Data
Prerequisites
ESD data is only collected and included in the payment request when all of the following conditions are met:
ESD is enabled in the Adyen payment method configuration.
The currency of the order is supported (
USD
by default).The billing country is supported (
US
by default).The card brand is supported (
visa
andmc
by default).The payment method type is
scheme
(i.e., credit/debit card).
These conditions help prevent ESD from being sent where it is not applicable or supported.
Beware that ESD support is only available when using the automatic
capture mode within a payment method.
For more information about capture modes, check the Payment Capture Modes page.
Configuration Options
You can configure where and when ESD is applied by setting:
# config/packages/sylius_adyen.yaml
sylius_adyen:
esd:
supported_currencies:
- 'USD'
supported_countries:
- 'US'
supported_card_brands:
- 'visa'
- 'mc'
supported_currencies
Currency codes eligible for ESD (e.g., USD)
['USD']
supported_countries
ISO 3166-1 alpha-2 country codes (e.g., US)
['US']
supported_card_brands
Lowercase card brand keys (e.g., visa
, mc
, amex
)
['visa', 'mc']
How ESD level is determined?
The plugin automatically determines which ESD type (also referred to as “level”) should be used for a given payment request:
Manual override: If an ESD type is explicitly selected in the admin panel, it takes precedence.
MCC analysis: If no type is selected, the plugin checks the Merchant Category Code and matches it to the correct collector.
Default fallback: If nothing matches, Level 3 ESD is applied as the most comprehensive fallback.
Admin Panel Configuration
In Sylius Admin Panel, you can configure ESD per Adyen payment method:

Enable Enhanced Scheme Data (esdEnabled
)
Checkbox to toggle ESD support.
ESD Type (esdType
)
Dropdown with available ESD types (e.g., Level 2, Level 3). 💡 "Select the appropriate Enhanced Scheme Data type for your business." Options come from registered ESD collectors.
Merchant Category Code (merchantCategoryCode
)
4-digit MCC used for automatic ESD detection when no type is selected. 💡 "Your 4-digit MCC code to automatically determine ESD type."
These settings give merchants control over when and how ESD is applied.
Commodity Codes for Product Variants
To further improve interchange rates, commodity codes can be configured for each product variant.
How to configure?
Go to Products → Manage variants -> List variants -> Edit.
Locate the "Commodity Code" field.
Enter a valid 12-digit code.
Now the code will be included in the payload and the product will be categorized more precisely.

Adding New ESD Types
The plugin supports creating custom ESD types using a tag-based, auto-discovered collector system.
Implement
EsdCollectorInterface
Tag the service using
sylius_adyen.esd.collector
Optionally define priority and a friendly name (for admin UI)
Last updated
Was this helpful?