Payment-method icon

Level 2/3 ESD

Level 2/3 ESD is for US domestic payments with Mastercard and Visa, and lets companies track how much is spent on their corporate cards and the amount of sales tax:

  • Level 2 ESD is purchase and tax details for the payment.
  • Level 3 ESD is level 2 ESD plus line item details such as product quantity and product description.

To learn more about sending level 2/3 ESD data for American Express payments, see ESD for American Express.

Requirements to send level 2/3 ESD

MCC requirements

You can send level 2/3 ESD if you do not process under any of the airline, car rental, lodging or temporary services MCCs. See ESD types and industries to learn about which MCCs cannot send level 2/3 data.

Card requirements

You can send level 2/3 ESD for business cards, purchasing cards, and corporate cards. For most business cards, you can only send level 2 ESD.

To check which level of ESD you can send for a card, you can use the cardSchemeEnhancedDataLevel parameter from the /payments response. Contact our Support Team to enable this. The cardSchemeEnhancedDataLevel response only confirms the level of ESD that a card is eligible for, and does not guarantee a lower interchange rate. You can still send level 2/3 ESD without enabling this parameter.

Tax requirements

The tax requirements to qualify for the level 2 interchange rates are different for Visa and Mastercard:

  • Visa: The total state or provincial tax amount must be between 0.1% and 22%.
  • Mastercard: The total state or provincial tax amount must be between 0.1% and 30%.

For level 3 ESD, the minimum requirements do not apply, you can send it for transactions with a total tax amount of less than 0.1%. The maximums apply to both level 2 and level 3 transactions.

Make sure that the tax amount you send is in line with the total transaction amount and the purchase. For example, you must not specify a tax rate of 20% for an item where it should be 2%.

Amount requirements

As of October 10, 2025, you will be required to make sure that the amount values you provide in your request are in line with discount amounts, shipping amounts, and local tax amounts. For example:

  • Line item total = (Quantity x Unit cost) - Discount amount
  • Total amount = Line item total amount - Discount amount + Shipping amount + Local tax amount

Data validation requirements

The level 2/3 data you send in your requests are validated, and you are required to provide accurate and valid data. See the formatting requirements for level 2/3 ESD fields in our API explorer.

If your request contains errors for level 3 ESD, Adyen drops the level 3 ESD, and only submits the level 2 ESD. If the request contains errors for both levels, Adyen processes the payment without level 2/3 ESD, and you do not qualify for the lower interchange rates until you fix and resend the request. Dropping level 2/3 data does not affect authorization rates.

We are working on informing you about the details of the issue when Adyen drops the data you sent in your request due to a validation error with a CAPTURE webhook.

Include level 2/3 ESD in your request

Send the following fields in your /payments or /capture request:

Level Field Format Required
2 and 3 enhancedSchemeData.customerReference ASCII -white_check_mark-
2 and 3 enhancedSchemeData.totalTaxAmount Numeric -white_check_mark-
3 enhancedSchemeData.itemDetailLine[itemNr].productCode ASCII -white_check_mark-
3 enhancedSchemeData.itemDetailLine[itemNr].description ASCII -white_check_mark-
3 enhancedSchemeData.itemDetailLine[itemNr].quantity Numeric -white_check_mark-
3 enhancedSchemeData.itemDetailLine[itemNr].unitOfMeasure ASCII -white_check_mark-
3 enhancedSchemeData.itemDetailLine[itemNr].commodityCode ASCII -white_check_mark-
3 enhancedSchemeData.itemDetailLine[itemNr].totalAmount Numeric -white_check_mark-
3 enhancedSchemeData.itemDetailLine[itemNr].unitPrice Numeric -white_check_mark-
3 enhancedSchemeData.destinationCountryCode ASCII
3 enhancedSchemeData.destinationPostalCode ASCII
3 enhancedSchemeData.destinationStateProvinceCode ASCII
3 enhancedSchemeData.dutyAmount Numeric
3 enhancedSchemeData.freightAmount Numeric
3 enhancedSchemeData.orderDate ASCII
3 enhancedSchemeData.shipFromPostalCode ASCII
3 enhancedSchemeData.itemDetailLine[itemNr].discountAmount Numeric

Below is an example of a /payments request with level 3 ESD.

Payments request
Expand view
Copy link to code block
Copy code
Copy code
{
"amount": {
"currency": "USD",
"value": 200000
},
"reference": "YOUR_ORDER_NUMBER",
"paymentMethod":{
"type":"scheme",
"cvc": "737",
"expiryMonth": "03",
"expiryYear": "2030",
"holderName": "John Smith",
"number": "5555555555554444"
},
"returnUrl": "https://your-company.com/...",
"merchantAccount": "YOUR_MERCHANT_ACCOUNT",
"additionalData": {
"enhancedSchemeData.totalTaxAmount": "200000",
"enhancedSchemeData.customerReference": "101",
"enhancedSchemeData.freightAmount": "5000",
"enhancedSchemeData.dutyAmount": "5000",
"enhancedSchemeData.shipFromPostalCode": "1011DJ",
"enhancedSchemeData.orderDate": "010123",
"enhancedSchemeData.destinationPostalCode": "10003",
"enhancedSchemeData.destinationStateProvinceCode": "NYC",
"enhancedSchemeData.destinationCountryCode": "USA",
"enhancedSchemeData.itemDetailLine1.description": "T15 Test products 1",
"enhancedSchemeData.itemDetailLine1.productCode": "TEST120",
"enhancedSchemeData.itemDetailLine1.commodityCode": "COMMCODE1",
"enhancedSchemeData.itemDetailLine1.quantity": "9",
"enhancedSchemeData.itemDetailLine1.unitOfMeasure": "m",
"enhancedSchemeData.itemDetailLine1.unitPrice": "10000",
"enhancedSchemeData.itemDetailLine1.discountAmount": "5000",
"enhancedSchemeData.itemDetailLine1.totalAmount": "85000",
"enhancedSchemeData.itemDetailLine2.description": "T15 Test products 2",
"enhancedSchemeData.itemDetailLine2.productCode": "TEST120",
"enhancedSchemeData.itemDetailLine2.commodityCode": "COMMCODE2",
"enhancedSchemeData.itemDetailLine2.quantity": "5",
"enhancedSchemeData.itemDetailLine2.unitOfMeasure": "m",
"enhancedSchemeData.itemDetailLine2.unitPrice": "10000",
"enhancedSchemeData.itemDetailLine2.discountAmount": "5000",
"enhancedSchemeData.itemDetailLine2.totalAmount": "8500"
}
}
Payments response
Expand view
Copy link to code block
Copy code
Copy code
{
"pspReference":"8915844059375211",
"resultCode":"Authorised",
"authCode":"506847",
"additionalData":{
"cardSchemeEnhancedDataLevel":"L2",
"cardPaymentMethod":"visa",
"cardIssuingBank":"Bank of America",
"cardIssuingCountry":"US",
"cardIssuingCurrency":"USD",
"cardBin":"411111",
"fundingSource":"CREDIT"
}
}

Below is an example of a /capture request with level 3 ESD.

Capture request
Expand view
Copy link to code block
Copy code
Copy code
{
"merchantAccount":"YOUR_MERCHANT_ACCOUNT",
"modificationAmount":{
"currency":"USD",
"value":200000
},
"originalReference":"NC6HT9CRT65ZGN82",
"additionalData":{
"enhancedSchemeData.totalTaxAmount": "200000",
"enhancedSchemeData.customerReference": "101",
"enhancedSchemeData.freightAmount": "5000",
"enhancedSchemeData.dutyAmount": "5000",
"enhancedSchemeData.shipFromPostalCode": "1011DJ",
"enhancedSchemeData.orderDate": "010123",
"enhancedSchemeData.destinationPostalCode": "10003",
"enhancedSchemeData.destinationStateProvinceCode": "NYC",
"enhancedSchemeData.destinationCountryCode": "USA",
"enhancedSchemeData.itemDetailLine1.description": "T15 Test products 1",
"enhancedSchemeData.itemDetailLine1.productCode": "TEST120",
"enhancedSchemeData.itemDetailLine1.commodityCode": "COMMCODE1",
"enhancedSchemeData.itemDetailLine1.quantity": "9",
"enhancedSchemeData.itemDetailLine1.unitOfMeasure": "m",
"enhancedSchemeData.itemDetailLine1.unitPrice": "10000",
"enhancedSchemeData.itemDetailLine1.discountAmount": "5000",
"enhancedSchemeData.itemDetailLine1.totalAmount": "85000",
"enhancedSchemeData.itemDetailLine2.description": "T15 Test products 2",
"enhancedSchemeData.itemDetailLine2.productCode": "TEST120",
"enhancedSchemeData.itemDetailLine2.commodityCode": "COMMCODE2",
"enhancedSchemeData.itemDetailLine2.quantity": "9",
"enhancedSchemeData.itemDetailLine2.unitOfMeasure": "m",
"enhancedSchemeData.itemDetailLine2.unitPrice": "10000",
"enhancedSchemeData.itemDetailLine2.discountAmount": "100",
"enhancedSchemeData.itemDetailLine2.totalAmount": "85000"
}
}

Testing

Use the following test card to test payments with level 2/3 ESD:

Card Number Card Type Expiry Date CVV
5555 5555 5555 4444 Mastercard 03/2030 737