Skip to content
Gateways

Adyen Enhanced Scheme Data (ESD) for Level 2 and Level 3

How Adyen Enhanced Scheme Data carries Level 2 and Level 3 fields to Visa and Mastercard, what Adyen validates and what happens when it drops them.

Last reviewed Nov 2, 2026
On this page

Adyen calls Level 2 and Level 3 card data Enhanced Scheme Data, or ESD. If your business accepts corporate, purchasing or business cards through Adyen, or you run a platform on Adyen that processes for B2B sellers, ESD is how a US commercial card sale can reach a lower interchange rate at Visa and Mastercard. This guide covers where ESD goes in the Checkout API, which fields matter, what Adyen validates, what it does with invalid data and how to see the result.

Savings from lower interchange only reach you on Interchange++ pricing. On blended pricing, the gateway keeps the difference.

What ESD covers

ESD is Adyen's umbrella for extra transaction data sent to the card schemes. For commercial cards, the relevant type is Level 2 and Level 3. Other ESD types exist for airlines, car rental, lodging and temporary services, and a request can carry only one type.

NetworkWhat Adyen sendsRate effect
VisaLevel 3 only, since April 1, 2026Product 3 through Visa CEDP
MastercardLevel 2 and Level 3Data Rate II and Data Rate III
American ExpressLevel 2 and Level 3No interchange incentive; used for reporting and fraud prevention

Level 2 and Level 3 apply to US business, purchasing and corporate cards. On most business cards, only Level 2 is accepted. Some merchant categories are not eligible for any ESD, among them restaurants, passenger railways, fuel and some food stores; Adyen processes those payments without the data.

Where ESD goes in the Checkout API

Current format. Since Checkout API v70, ESD goes in a structured object, enhancedSchemeData.levelTwoThree, with item lines in an array. Amounts and quantities are integers in minor units.

  • With automatic capture, send it in the payment request.
  • With manual, partial or multiple captures, send it in the capture request.
  • If the captured amount differs from the payment amount, always send ESD with the capture.

Legacy format. Older integrations sent ESD as flat string keys inside additionalData. Checkout API v72, released on April 15, 2026, removed that path: a v72 request with ESD in additionalData fails validation. If you upgrade to v72, move ESD to the structured object first. The Classic Payments API still accepts only the legacy format.

The fields that matter

DataLevelNotes
Customer reference numberLevel 2 and Level 3Up to 25 characters; not blank, not only zeros
Total tax amountLevel 2 and Level 3Cannot be zero for Level 2; can be zero for Level 3 when no tax applies
Freight, duty, order date, ship from and destinationLevel 3Header data; some fields are required under conditions
Item descriptionLevel 3Up to 26 characters; not generic, not your merchant name
Product codeLevel 3Up to 12 characters; your own or the manufacturer's code
Commodity codeLevel 3Up to 12 characters; UNSPSC, HS, NAICS or NAPCS
QuantityLevel 3Integer above zero
Unit of measureLevel 3Up to 3 characters, such as EA
Unit price and line totalLevel 3Integers in minor units

For Level 2, tax has a range: at least 0.1% of the amount, and at most 22% on Visa or 30% on Mastercard. That floor does not apply to Level 3.

The arithmetic Adyen expects on Visa

  • Each line: line total equals quantity times unit price, minus the line discount.
  • The payment: the amount equals the sum of line totals plus freight plus total tax. Duty is not part of this sum in Adyen's own example.

On Visa, Adyen also rejects descriptions that are blank, a single character, only special characters, the same as or similar to the merchant name, or only generic words such as "product" or "service". These are the same patterns Visa CEDP penalizes.

What Adyen does with invalid ESD

This is the part that costs money without anyone noticing. Invalid ESD does not decline the payment. Adyen keeps the payment and drops data:

What is wrongWhat Adyen doesResult
A required field is missing or malformedDrops all Level 2 and Level 3 dataNo reduced rate
An error only in Level 3, or a card eligible only for Level 2Drops Level 3 and sends Level 2On Visa, no reduced rate, since Visa no longer has a Level 2 rate
An optional field is malformedDrops the optional fields and sends the required onesSale can still qualify
Merchant category not eligibleProcesses the payment without ESDNo reduced rate

ESD cannot be corrected after the payment is processed, and Adyen does not use it on refunds or reversals. If your data fails, the only fix is for future payments.

Because the payment succeeds either way, the gap only shows up later, as a higher interchange program on the fee report.

How to see what Adyen sent

Adyen reports the result of ESD validation in webhooks, if you turn it on:

  1. In Customer Area, go to Developers, Webhooks, edit your webhook and enable Include ESD Validation Result under Additional Settings.
  2. To get the result on the AUTHORISATION webhook, used with automatic capture, ask Adyen Support to enable it. With manual or delayed capture, it arrives on the CAPTURE webhook.

The webhook then tells you four things for each payment:

FieldWhat it tells you
enhancedSchemeDataReceivedWhat Adyen received: L2, L3 or nothing
enhancedSchemeDataSubmittedWhat Adyen sent to Visa or Mastercard after validation
enhancedSchemeDataRefusalReasonsWhy all Level 2 and Level 3 data was dropped
enhancedSchemeDataWarningReasonsWhy optional fields were dropped or the sale fell back to Level 2

A payment where "received" is L3 and "submitted" is L2 or empty is the pattern to look for: your system sent Level 3 data, and it never reached the network.

For the cost side, use the Payment accounting report in Customer Area, under Reports. Add the optional ICSF details column in the report settings: it shows the exact interchange program of each payment, which is how you see whether a sale reached Product 3 or Data Rate III.

Other requirements on Adyen

  • Integration type: Adyen documents Level 2 and Level 3 for online payments on its Advanced flow, listening to AUTHORISATION and CAPTURE webhooks.
  • AVS on Visa: Adyen asks for AVS to be configured and AVS data sent on each Visa transaction to get the interchange reduction.
  • Visa CEDP: Adyen's pages do not use the term CEDP, but Visa's rules apply to every Visa commercial card sale. Data that passes Adyen's format checks can still fail CEDP's content checks.

The rates at stake on a typical online B2B sale:

NetworkWithout qualifying dataWith Level 3
Visa Corporate and PurchasingCard Not Present, 2.70% + $0.10Product 3, 1.75% + $0.10
Mastercard Large Market CreditData Rate I, 2.70% + $0.10Data Rate III, 1.90% + $0.10

Sources: Visa USA Interchange Reimbursement Fees, effective October 24, 2026; Mastercard 2026-2027 U.S. Region Interchange Programs and Rates, effective April 17, 2026.

A short checklist for Adyen sellers and platforms

  1. Confirm you are on Interchange++ pricing.
  2. Send ESD in enhancedSchemeData.levelTwoThree, not in additionalData, before moving to v72.
  3. Send ESD with the capture whenever the captured amount differs from the payment amount.
  4. Take descriptions, product codes and commodity codes from your catalog.
  5. Calculate tax per sale; keep line totals and the payment total consistent.
  6. Turn on the ESD validation result in webhooks and track received against submitted.
  7. Add ICSF details to the Payment accounting report and read it monthly.

For the network rules behind these fields, see Visa CEDP explained and Level 3 credit card processing: requirements for B2B sellers.

Check your own sales

If you accept corporate cards on Adyen, run a free diagnostic at tierback.com. Upload your Payment accounting report: the diagnostic finds the commercial card sales that settled above the data rates and estimates what that cost.

Free diagnostic

See what last month cost you.

Upload an Adyen or Stripe fee report. The diagnostic shows the rate each commercial card sale paid and the best rate its card and MCC allow.