{"title":"Level 2\/3 data","category":"default","creationDate":1664364660,"content":"<p>Level 2\/3 enhanced scheme data (ESD) helps you track the amount spent on corporate cards and the amount of sales tax. If you are <a href=\"\/pt\/payment-methods\/cards\/enhanced-scheme-data#types-and-industries\">eligible to send level 2\/3 data<\/a>, you can send it in your requests to Adyen to benefit from lower interchange rates for Mastercard and Visa transactions.<\/p>\n<p>For American Express, you receive no financial incentive, but you can include the data for fraud prevention and reporting purposes.<\/p>\n<ul>\n<li>Level 2 data is purchase and tax details for the payment.<\/li>\n<li>Level 3 data is the combination of level 2 data and line item details such as product quantities and descriptions.<\/li>\n<\/ul>\n<h2>Requirements<\/h2>\n<p>In addition to the <a href=\"\/pt\/payment-methods\/cards\/enhanced-scheme-data#requirements\">requirements that apply to sending ESD<\/a>, take into account the following additional limitations for sending level 2\/3 data.<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: left;\">Requirement<\/th>\n<th style=\"text-align: left;\">Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: left;\"><strong>Limitations<\/strong><\/td>\n<td style=\"text-align: left;\"><ul><li markdown=\"1\"><strong>Starting on April 1, 2026<\/strong>:<ul><li markdown=\"1\">Visa supports level 3 data only.<\/li><li markdown=\"1\">Mastercard supports both level 2 and level 3 data.<\/li><\/ul><\/li><li markdown=\"1\">You can only send level 2\/3 data for business cards, purchasing cards, and corporate cards. For most business cards, you can only send level 2 data.<\/li><li markdown=\"1\">The minimum total tax amount for a transaction that you send level 2 data for must be <span translate=\"no\"><strong>0.1%<\/strong><\/span>. This does not apply to level 3 data.<\/li> <li markdown=\"1\">The maximum total tax amount for a transaction that you send level 2\/3 data for can be: <ul><li markdown=\"1\"><span translate=\"no\"><strong>30%<\/strong><\/span> for Mastercard<\/li> <li markdown=\"1\"><span translate=\"no\"><strong>22%<\/strong><\/span> for Visa<\/li> <\/ul> <\/li><\/ul><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>How it works<\/h2>\n<p>If you are <a href=\"\/pt\/payment-methods\/cards\/enhanced-scheme-data#types-and-industries\">eligible to send level 2\/3 data<\/a>, you include the data in your payment or capture requests to Adyen. Optionally, you can receive information in your standard webhooks about the status of the level 2\/3 data you submitted in your payment requests. You receive this information as <code>additionalData<\/code> included in the <a href=\"\/pt\/development-resources\/webhooks\">webhook message<\/a>.<\/p>\n<ol>\n<li>Review the <a href=\"#data-validation\">data validation<\/a> guidelines before building your implementation to send level 2\/3 data.<\/li>\n<li>If you want to receive information about the data you submitted, <a href=\"#enable-receiving-level-23-data-in-webhooks\">enable receiving level 2\/3 data insights<\/a> in webhook messages.<\/li>\n<li><a href=\"#send-level23-data\">Send level 2\/3 data<\/a> in your payment or capture request for a transaction. The request you send it in depends on your <a href=\"\/pt\/online-payments\/capture#types-of-capture\">capture setting<\/a>:\n<ul>\n<li><strong>Automatic capture<\/strong> and <strong>Delayed automatic capture<\/strong>: in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request, include level 2\/3 data in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#requestenhancedSchemeData-levelTwoThree\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">enhancedSchemeData.levelTwoThree<\/a> object.<\/li>\n<li><strong>Manual capture<\/strong> (<strong>Single partial capture<\/strong> and <strong>Multiple partial capture<\/strong>): in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/{paymentPspReference}\/captures<\/a> request, include level 2\/3 data in the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures#request-enhancedSchemeData-levelTwoThree\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">enhancedSchemeData<\/a> object.<\/li>\n<\/ul><\/li>\n<li>After the payment has been captured, <a href=\"#monitor-the-status-of-your-level-23-data\">monitor the status of your level 2\/3 data<\/a> using the information in the webhook message that you receive.\n<ul>\n<li>If you use <a href=\"\/pt\/online-payments\/capture\/#automatic-capture\">automatic capture<\/a> you receive the information in a webhook message with <code>eventCode<\/code>:  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Webhooks\/latest\/post\/AUTHORISATION\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AUTHORISATION<\/a>.<\/li>\n<li>If you use <a href=\"\/pt\/online-payments\/capture\/#manual-capture?target=_blank\">manual capture<\/a>, or <a href=\"\/pt\/online-payments\/capture\/#capture-delay?target=_blank\">delayed automatic capture<\/a> you receive the information in a webhook message with <code>eventCode<\/code>:  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Webhooks\/latest\/post\/CAPTURE\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CAPTURE<\/a>.<\/li>\n<\/ul><\/li>\n<li>If the level 2\/3 data you submitted does not meet the data requirements, the webhook message includes the reason. Use this information to change the data you send in following requests, so that it correctly meets requirements.<\/li>\n<\/ol>\n<h2 id=\"data-validation\">Level 2\/3 data validation<\/h2>\n<p>The level 2\/3 data you send in your requests must meet the following requirements:<\/p>\n<ul>\n<li>Format requirements for the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-additionalData-AdditionalDataLevel23\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> or  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Payment\/latest\/post\/capture#request-additionalData-AdditionalDataLevel23\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/capture<\/a> requests.<\/li>\n<li>Accurate and valid data.<\/li>\n<li>For Visa: the amount values you send must adhere to specific <a href=\"#amount-calculations\">calculation guidelines<\/a>.<\/li>\n<\/ul>\n<p>If the data that you send does not meet requirements, Adyen does the following:<\/p>\n<ul>\n<li>If a required field is missing or incorrectly formatted for both levels, we drop all level 2\/3 data. You do not qualify for the lower interchange rates until you fix and resend the request.<\/li>\n<li>If your request contains errors only for level 3 data, or the card used in the transaction is only eligible for type 2 data, we drop the level 3 data and only submit the level 2 data.<\/li>\n<li>If an optional field is incorrectly formatted, we drop the optional fields and submit only the required data fields.<\/li>\n<\/ul>\n<h3>Amount calculations<\/h3>\n<p>For Visa, the amount values that you provide in your request must reflect discount amounts, shipping amounts, and local tax amounts:<\/p>\n<ul>\n<li>Line item total must accurately reflect the quantity, unit price, and the discount(s) applied.\n<ul>\n<li>Calculation example: <code>enhancedSchemeData.itemDetailLine1.totalAmount<\/code> = (<code>enhancedSchemeData.itemDetailLine1.quantity<\/code> x <code>enhancedSchemeData.itemDetailLine1.unitPrice<\/code>) - <code>enhancedSchemeData.itemDetailLine1.discountAmount<\/code><\/li>\n<\/ul><\/li>\n<li>The total amount in the capture request must accurately reflect all costs related to a purchase, such as the sum of line item totals, any shipping costs, and local taxes.\n<ul>\n<li>Always send level 2\/3 data in the capture request if the total amount in payment and capture request are different.<\/li>\n<li>Calculation example: <code>modificationAmount {amount}<\/code> = <code>enhancedSchemeData.itemDetailLine1.totalAmount<\/code> + <code>enhancedSchemeData.itemDetailLine2.totalAmount<\/code> + <code>enhancedSchemeData.freightAmount<\/code> + <code>enhancedSchemeData.totalTaxAmount<\/code><\/li>\n<\/ul><\/li>\n<\/ul>\n<h2 id=\"enable-receiving-level-23-data-in-webhooks\">Enable receiving level 2\/3 data insights in webhook messages<\/h2>\n<p>Update your webhook configuration to start receiving the information in webhook messages with <code>eventcode<\/code>:  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Webhooks\/latest\/post\/AUTHORISATION\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AUTHORISATION<\/a> and <code>eventCode<\/code>:  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Webhooks\/latest\/post\/CAPTURE\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">CAPTURE<\/a>.<\/p>\n<ol>\n<li>In your <a href=\"https:\/\/ca-test.adyen.com\/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Customer Area<\/a>, go to <strong>Developers<\/strong>\u00a0&gt;\u00a0 <strong>Webhooks<\/strong>.<\/li>\n<li>From the list of webhooks, select the one to configure.<\/li>\n<li>Select the edit <i class=\"adl-icon-edit\"><\/i> icon.<\/li>\n<li>Under <strong>Additional Settings<\/strong>, select <strong>Include ESD Validation Result<\/strong>.<\/li>\n<li>Select <strong>Save configuration<\/strong>.<\/li>\n<li>If you use <a href=\"\/pt\/online-payments\/capture\/#automatic-capture\">automatic capture<\/a> or send the L2\/3 data in the payment request, ask our <a href=\"https:\/\/ca-test.adyen.com\/ca\/ca\/contactUs\/support.shtml?form=other\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Support Team<\/a> to enable receiving information about level 2\/3 data in webhook messages with <code>eventCode<\/code>:  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Webhooks\/latest\/post\/AUTHORISATION\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">AUTHORISATION<\/a>.<\/li>\n<\/ol>\n<p>After you enable the feature, the <code>additionalData<\/code> field in your webhook messages contains the following information about the data validation:<\/p>\n<table>\n<thead>\n<tr>\n<th>Field<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>enhancedSchemeDataReceived<\/code><\/td>\n<td>Indicates the type of data that we received from you. <strong>Possible values<\/strong>: <ul><li markdown=\"1\"><span translate=\"no\"><strong>L2<\/strong><\/span><\/li><li markdown=\"1\"><span translate=\"no\"><strong>L3<\/strong><\/span><\/li><li markdown=\"1\"><span translate=\"no\"><strong>null<\/strong><\/span><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td><code>enhancedSchemeDataSubmitted<\/code><\/td>\n<td>Indicates the type of data that we submitted to Mastercard and Visa after data validation. <strong>Possible values<\/strong>: <ul><li markdown=\"1\"><span translate=\"no\"><strong>L2<\/strong><\/span><\/li><li markdown=\"1\"><span translate=\"no\"><strong>L3<\/strong><\/span><\/li><li markdown=\"1\"><span translate=\"no\"><strong>null<\/strong><\/span><\/li><\/ul><\/td>\n<\/tr>\n<tr>\n<td><code>enhancedSchemeDataRefusalReasons<\/code><\/td>\n<td>If a required field is invalid or missing, and we drop all level 2\/3 data, this informs you about the invalid or wrong data that caused the error.<\/td>\n<\/tr>\n<tr>\n<td><code>enhancedSchemeDataWarningReasons<\/code><\/td>\n<td>If we drop optional level 2\/3 data fields you submitted or we only submit the level 2 data, this informs you about the reason.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"send-level23-data\">Send level 2\/3 data<\/h2>\n<ol>\n<li>\n<p>Include level 2\/3 data in the payment or capture request.<\/p>\n<ul>\n<li>For the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> request: include the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments#request-additionalData-AdditionalDataLevel23-enhancedSchemeData-customerReference\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">additionalData.enhancedSchemeData<\/a> object.<\/li>\n<li>For the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments\/{paymentPspReference}\/captures<\/a> request: include the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\/(paymentPspReference)\/captures#request-enhancedSchemeData-levelTwoThree\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">enhancedSchemeData.levelTwoThree<\/a> object.<br \/>\nThe following table shows which level 2\/3 data fields are required and optional, depending on the type of request.<\/li>\n<\/ul>\n<table>\n<thead>\n<tr>\n<th>Level<\/th>\n<th>Payment request fields<\/th>\n<th>Capture request fields<\/th>\n<th>Required<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>2 and 3<\/td>\n<td><code>customerReference<\/code><\/td>\n<td><code>customerReferenceNumber<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>2 and 3<\/td>\n<td><code>totalTaxAmount<\/code><\/td>\n<td><code>totalTaxAmount<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>itemDetailLine[itemNr].productCode<\/code><\/td>\n<td><code>itemDetailLines.productCode<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>itemDetailLine[itemNr].description<\/code><\/td>\n<td><code>itemDetailLines.description<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>itemDetailLine[itemNr].quantity<\/code><\/td>\n<td><code>itemDetailLines.quantity<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>itemDetailLine[itemNr].unitOfMeasure<\/code><\/td>\n<td><code>itemDetailLines.unitOfMeasure<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>itemDetailLine[itemNr].commodityCode<\/code><\/td>\n<td><code>itemDetailLines.commodityCode<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>itemDetailLine[itemNr].totalAmount<\/code><\/td>\n<td><code>itemDetailLines.totalAmount<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>itemDetailLine[itemNr].unitPrice<\/code><\/td>\n<td><code>itemDetailLines.unitPrice<\/code><\/td>\n<td><img title=\"-white_check_mark-\" alt=\"-white_check_mark-\" class=\"smileys\" src=\"\/user\/data\/smileys\/emoji\/white_check_mark.png\" \/><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>destinationCountryCode<\/code><\/td>\n<td><code>destination.countryCode<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>destinationPostalCode<\/code><\/td>\n<td><code>destination.postalCode<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>destinationStateProvinceCode<\/code><\/td>\n<td><code>destination.stateOrProvince<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>dutyAmount<\/code><\/td>\n<td><code>dutyAmount<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>freightAmount<\/code><\/td>\n<td><code>freightAmount<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>orderDate<\/code><\/td>\n<td><code>orderDate<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>shipFromPostalCode<\/code><\/td>\n<td><code>shipFromPostalCode<\/code><\/td>\n<td><\/td>\n<\/tr>\n<tr>\n<td>3<\/td>\n<td><code>itemDetailLine[itemNr].discountAmount<\/code><\/td>\n<td><code>itemDetailLines.discountAmount<\/code><\/td>\n<td><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Select the endpoint for the corresponding request example:<\/p>\n\n<div id=\"tabz5FVS\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;&lt;code&gt;\\\/payments&lt;\\\/code&gt; endpoint&quot;,&quot;content&quot;:&quot;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Example payment request with level 2\\\/3 data&#039;\\&quot; :id=\\&quot;&#039;payment-request-l2-l3&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v72\\\\\\\/payments \\\\\\\\\\\\n-H &#039;x-API-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;idempotency-key: YOUR_IDEMPOTENCY_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-X POST\\\\n-d &#039;{\\\\n  \\\\&amp;quot;amount\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;currency\\\\&amp;quot;: \\\\&amp;quot;USD\\\\&amp;quot;,\\\\n    \\\\&amp;quot;value\\\\&amp;quot;: 200000\\\\n  },\\\\n  \\\\&amp;quot;reference\\\\&amp;quot;: \\\\&amp;quot;YOUR_ORDER_NUMBER\\\\&amp;quot;,\\\\n  \\\\&amp;quot;paymentMethod\\\\&amp;quot;:{\\\\n    \\\\&amp;quot;type\\\\&amp;quot;:\\\\&amp;quot;scheme\\\\&amp;quot;,\\\\n    \\\\&amp;quot;cvc\\\\&amp;quot;: \\\\&amp;quot;737\\\\&amp;quot;,\\\\n    \\\\&amp;quot;expiryMonth\\\\&amp;quot;: \\\\&amp;quot;03\\\\&amp;quot;,\\\\n    \\\\&amp;quot;expiryYear\\\\&amp;quot;: \\\\&amp;quot;2030\\\\&amp;quot;,\\\\n    \\\\&amp;quot;holderName\\\\&amp;quot;: \\\\&amp;quot;John Smith\\\\&amp;quot;,\\\\n    \\\\&amp;quot;number\\\\&amp;quot;: \\\\&amp;quot;5555555555554444\\\\&amp;quot;\\\\n  },\\\\n  \\\\&amp;quot;returnUrl\\\\&amp;quot;: \\\\&amp;quot;https:\\\\\\\/\\\\\\\/your-company.example.com\\\\\\\/...\\\\&amp;quot;,\\\\n  \\\\&amp;quot;merchantAccount\\\\&amp;quot;: \\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n  \\\\&amp;quot;additionalData\\\\&amp;quot;: {\\\\n     \\\\&amp;quot;enhancedSchemeData.totalTaxAmount\\\\&amp;quot;: \\\\&amp;quot;20000\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.customerReference\\\\&amp;quot;: \\\\&amp;quot;101\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.freightAmount\\\\&amp;quot;: \\\\&amp;quot;10000\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.dutyAmount\\\\&amp;quot;: \\\\&amp;quot;5000\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.shipFromPostalCode\\\\&amp;quot;: \\\\&amp;quot;1011DJ\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.orderDate\\\\&amp;quot;: \\\\&amp;quot;010123\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.destinationPostalCode\\\\&amp;quot;: \\\\&amp;quot;10003\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.destinationStateProvinceCode\\\\&amp;quot;: \\\\&amp;quot;NYC\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.destinationCountryCode\\\\&amp;quot;: \\\\&amp;quot;USA\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine1.description\\\\&amp;quot;: \\\\&amp;quot;T15 Test products 1\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine1.productCode\\\\&amp;quot;: \\\\&amp;quot;TEST120\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine1.commodityCode\\\\&amp;quot;: \\\\&amp;quot;COMMCODE1\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine1.quantity\\\\&amp;quot;: \\\\&amp;quot;9\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine1.unitOfMeasure\\\\&amp;quot;: \\\\&amp;quot;m\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine1.unitPrice\\\\&amp;quot;: \\\\&amp;quot;10000\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine1.discountAmount\\\\&amp;quot;: \\\\&amp;quot;5000\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine1.totalAmount\\\\&amp;quot;: \\\\&amp;quot;85000\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine2.description\\\\&amp;quot;: \\\\&amp;quot;T15 Test products 2\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine2.productCode\\\\&amp;quot;: \\\\&amp;quot;TEST120\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine2.commodityCode\\\\&amp;quot;: \\\\&amp;quot;COMMCODE2\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine2.quantity\\\\&amp;quot;: \\\\&amp;quot;9\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine2.unitOfMeasure\\\\&amp;quot;: \\\\&amp;quot;m\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine2.unitPrice\\\\&amp;quot;: \\\\&amp;quot;10000\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine2.discountAmount\\\\&amp;quot;: \\\\&amp;quot;5000\\\\&amp;quot;,\\\\n     \\\\&amp;quot;enhancedSchemeData.itemDetailLine2.totalAmount\\\\&amp;quot;: \\\\&amp;quot;85000\\\\&amp;quot;\\\\n  }\\\\n}&#039;&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Example response to a payment request with level 2\\\/3 data&#039;\\&quot; :id=\\&quot;&#039;&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n   \\\\\\&quot;pspReference\\\\\\&quot;:\\\\\\&quot;8915844059375211\\\\\\&quot;,\\\\n   \\\\\\&quot;resultCode\\\\\\&quot;:\\\\\\&quot;Authorised\\\\\\&quot;,\\\\n   \\\\\\&quot;authCode\\\\\\&quot;:\\\\\\&quot;506847\\\\\\&quot;,\\\\n   \\\\\\&quot;additionalData\\\\\\&quot;:{\\\\n      \\\\\\&quot;cardSchemeEnhancedDataLevel\\\\\\&quot;:\\\\\\&quot;L2\\\\\\&quot;,\\\\n      \\\\\\&quot;cardPaymentMethod\\\\\\&quot;:\\\\\\&quot;visa\\\\\\&quot;,\\\\n      \\\\\\&quot;cardIssuingBank\\\\\\&quot;:\\\\\\&quot;Bank of America\\\\\\&quot;,\\\\n      \\\\\\&quot;cardIssuingCountry\\\\\\&quot;:\\\\\\&quot;US\\\\\\&quot;,\\\\n      \\\\\\&quot;cardIssuingCurrency\\\\\\&quot;:\\\\\\&quot;USD\\\\\\&quot;,\\\\n      \\\\\\&quot;cardBin\\\\\\&quot;:\\\\\\&quot;411111\\\\\\&quot;,\\\\n      \\\\\\&quot;fundingSource\\\\\\&quot;:\\\\\\&quot;CREDIT\\\\\\&quot;\\\\n   }\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;payments_endpoint_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;&lt;code&gt;\\\/captures&lt;\\\/code&gt; endpoint&quot;,&quot;content&quot;:&quot;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n&lt;code-sample :title=\\&quot;&#039;Example capture request with level 2\\\/3 data&#039;\\&quot; :id=\\&quot;&#039;capture-request-l2-l3&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/checkout-test.adyen.com\\\\\\\/v72\\\\\\\/payments\\\\\\\/WNS7WQ756L2GWR82\\\\\\\/captures \\\\\\\\\\\\n-H &#039;x-API-key: ADYEN_API_KEY&#039; \\\\\\\\\\\\n-H &#039;idempotency-key: YOUR_IDEMPOTENCY_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-X POST\\\\n-d &#039;{\\\\n   \\\\&amp;quot;merchantAccount\\\\&amp;quot;:\\\\&amp;quot;ADYEN_MERCHANT_ACCOUNT\\\\&amp;quot;,\\\\n   \\\\&amp;quot;amount\\\\&amp;quot;:{\\\\n      \\\\&amp;quot;currency\\\\&amp;quot;:\\\\&amp;quot;USD\\\\&amp;quot;,\\\\n      \\\\&amp;quot;value\\\\&amp;quot;:200000\\\\n   },\\\\n   \\\\&amp;quot;originalReference\\\\&amp;quot;:\\\\&amp;quot;NC6HT9CRT65ZGN82\\\\&amp;quot;,\\\\n   \\\\&amp;quot;enhancedSchemeData.levelTwoThree\\\\&amp;quot;:{\\\\n      \\\\&amp;quot;totalTaxAmount\\\\&amp;quot;: \\\\&amp;quot;20000\\\\&amp;quot;,\\\\n      \\\\&amp;quot;customerReferenceNumber\\\\&amp;quot;: \\\\&amp;quot;101\\\\&amp;quot;,\\\\n      \\\\&amp;quot;freightAmount\\\\&amp;quot;: \\\\&amp;quot;10000\\\\&amp;quot;,\\\\n      \\\\&amp;quot;dutyAmount\\\\&amp;quot;: \\\\&amp;quot;5000\\\\&amp;quot;,\\\\n      \\\\&amp;quot;shipFromPostalCode\\\\&amp;quot;: \\\\&amp;quot;1011DJ\\\\&amp;quot;,\\\\n      \\\\&amp;quot;orderDate\\\\&amp;quot;: \\\\&amp;quot;010123\\\\&amp;quot;,\\\\n      \\\\&amp;quot;destination\\\\&amp;quot;: {\\\\n          \\\\&amp;quot;postalCode\\\\&amp;quot;: \\\\&amp;quot;10003\\\\&amp;quot;,\\\\n          \\\\&amp;quot;stateOrProvince\\\\&amp;quot;: \\\\&amp;quot;NYC\\\\&amp;quot;,\\\\n          \\\\&amp;quot;countryCode\\\\&amp;quot;: \\\\&amp;quot;USA\\\\&amp;quot;\\\\n      },\\\\n      \\\\&amp;quot;itemDetailLine\\\\&amp;quot;: [\\\\n         {\\\\n            \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;T15 Test products 1\\\\&amp;quot;,\\\\n            \\\\&amp;quot;productCode\\\\&amp;quot;: \\\\&amp;quot;TEST120\\\\&amp;quot;,\\\\n            \\\\&amp;quot;commodityCode\\\\&amp;quot;: \\\\&amp;quot;COMMCODE1\\\\&amp;quot;,\\\\n            \\\\&amp;quot;quantity\\\\&amp;quot;: \\\\&amp;quot;9\\\\&amp;quot;,\\\\n            \\\\&amp;quot;unitOfMeasure\\\\&amp;quot;: \\\\&amp;quot;m\\\\&amp;quot;,\\\\n            \\\\&amp;quot;unitPrice\\\\&amp;quot;: \\\\&amp;quot;10000\\\\&amp;quot;,\\\\n            \\\\&amp;quot;discountAmount\\\\&amp;quot;: \\\\&amp;quot;5000\\\\&amp;quot;,\\\\n            \\\\&amp;quot;totalAmount\\\\&amp;quot;: \\\\&amp;quot;85000\\\\&amp;quot;\\\\n         },\\\\n         {\\\\n            \\\\&amp;quot;description\\\\&amp;quot;: \\\\&amp;quot;T15 Test products 2\\\\&amp;quot;,\\\\n            \\\\&amp;quot;productCode\\\\&amp;quot;: \\\\&amp;quot;TEST120\\\\&amp;quot;,\\\\n            \\\\&amp;quot;commodityCode\\\\&amp;quot;: \\\\&amp;quot;COMMCODE2\\\\&amp;quot;,\\\\n            \\\\&amp;quot;quantity\\\\&amp;quot;: \\\\&amp;quot;9\\\\&amp;quot;,\\\\n            \\\\&amp;quot;unitOfMeasure\\\\&amp;quot;: \\\\&amp;quot;m\\\\&amp;quot;,\\\\n            \\\\&amp;quot;unitPrice\\\\&amp;quot;: \\\\&amp;quot;10000\\\\&amp;quot;,\\\\n            \\\\&amp;quot;discountAmount\\\\&amp;quot;: \\\\&amp;quot;100\\\\&amp;quot;,\\\\n            \\\\&amp;quot;totalAmount\\\\&amp;quot;: \\\\&amp;quot;85000\\\\&amp;quot;\\\\n         }\\\\n      ]\\\\n   }\\\\n}&#039;&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;captures_endpoint_1_2&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<\/li>\n<li>\n<p>Use the information from webhook messages to <a href=\"#monitor-the-status-of-your-level-23-data\">monitor the status of the data you submitted<\/a>.<\/p>\n<\/li>\n<\/ol>\n<h2 id=\"monitor-the-status-of-your-level-23-data\">Monitor the status of your level 2\/3 data in webhooks<\/h2>\n<p>After you enable receiving data validation results in your webhook messages, use the information you receive in the webhook message to learn about the type of data Adyen submitted to Visa or Mastercard, or any errors.<\/p>\n<ol>\n<li>Use the <code>enhancedSchemeDataSubmitted<\/code> field to see which level of data (L2 or L3) Adyen successfully submitted to the schemes.<\/li>\n<li>If Adyen did not submit the data you sent, use the <code>enhancedSchemeDataRefusalReason<\/code> to learn the reason.<\/li>\n<li>Use the <code>enhancedSchemeDataWarningReason<\/code> to learn if Adyen dropped any of the optional the fields you sent.<\/li>\n<li>Use the feedback to fix the issues in your integration that caused the invalid data.<\/li>\n<\/ol>\n<p>The following examples show different scenarios and the information you receive in the webhook messages.<\/p>\n<div class=\"accordion-shortcode adl-accordion adl-accordion--max-height-transition\" data-expand=\"true\" data-ignore=\"anchorjs-link\">\n    \n    <div class=\"adl-accordion__item\" style=\"\">\n        <div tabindex=\"0\" role=\"item\" aria-expanded=\"false\" class=\"adl-accordion__header\">\n            <i class=\"adl-accordion__toggle adl-icon-chevron-down\"><\/i>\n            <div class=\"adl-accordion__title-wrapper\" data-accordion=\"#valid-level-3-data\">\n                                    <h3 class=\"adl-accordion__title\">Valid level 3 data<\/h3>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>If the level 3 data you sent was valid, and Adyen submitted it to Visa or Mastercard, you receive the following information in the webhook message.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Example object for valid level 3 data'\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"\\\"additionalData\\\": {\\n   \\\"enhancedSchemeDataReceived\\\": \\\"L3\\\",\\n   \\\"enhancedSchemeDataRefusalReasons\\\": \\\"\\\",\\n   \\\"enhancedSchemeDataWarningReasons\\\": \\\"\\\",\\n   \\\"enhancedSchemeDataSubmitted\\\": \\\"L3\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"accordion-shortcode adl-accordion adl-accordion--max-height-transition\" data-expand=\"true\" data-ignore=\"anchorjs-link\">\n    \n    <div class=\"adl-accordion__item\" style=\"\">\n        <div tabindex=\"0\" role=\"item\" aria-expanded=\"false\" class=\"adl-accordion__header\">\n            <i class=\"adl-accordion__toggle adl-icon-chevron-down\"><\/i>\n            <div class=\"adl-accordion__title-wrapper\" data-accordion=\"#valid-level-2-data\">\n                                    <h3 class=\"adl-accordion__title\">Valid level 2 data<\/h3>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>If the level 2 data you sent was valid, and Adyen submitted it to Visa or Mastercard, you receive the following information in the webhook message.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"\\\"additionalData\\\": {\\n   \\\"enhancedSchemeDataReceived\\\": \\\"L2\\\",\\n   \\\"enhancedSchemeDataRefusalReasons\\\": \\\"\\\",\\n   \\\"enhancedSchemeDataWarningReasons\\\": \\\"\\\",\\n   \\\"enhancedSchemeDataSubmitted\\\": \\\"L2\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"accordion-shortcode adl-accordion adl-accordion--max-height-transition\" data-expand=\"true\" data-ignore=\"anchorjs-link\">\n    \n    <div class=\"adl-accordion__item\" style=\"\">\n        <div tabindex=\"0\" role=\"item\" aria-expanded=\"false\" class=\"adl-accordion__header\">\n            <i class=\"adl-accordion__toggle adl-icon-chevron-down\"><\/i>\n            <div class=\"adl-accordion__title-wrapper\" data-accordion=\"#level-3-data-contained-errors\">\n                                    <h3 class=\"adl-accordion__title\">Level 3 data contained errors<\/h3>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>If the level 3 data you sent contained errors, and Adyen only submits the level 2 data, you receive the following information in the webhook message.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"\\\"additionalData\\\": {\\n   \\\"enhancedSchemeDataReceived\\\": \\\"L3\\\",\\n   \\\"enhancedSchemeDataRefusalReasons\\\": \\\"\\\",\\n   \\\"enhancedSchemeDataWarningReasons\\\": \\\"L3 downgraded to L2 due to invalid data\\\",\\n   \\\"enhancedSchemeDataSubmitted\\\": \\\"L2\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"accordion-shortcode adl-accordion adl-accordion--max-height-transition\" data-expand=\"true\" data-ignore=\"anchorjs-link\">\n    \n    <div class=\"adl-accordion__item\" style=\"\">\n        <div tabindex=\"0\" role=\"item\" aria-expanded=\"false\" class=\"adl-accordion__header\">\n            <i class=\"adl-accordion__toggle adl-icon-chevron-down\"><\/i>\n            <div class=\"adl-accordion__title-wrapper\" data-accordion=\"#not-eligible-for-level-2-3-data\">\n                                    <h3 class=\"adl-accordion__title\">Not eligible for level 2\/3 data<\/h3>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>If the card used to make the payment does not support level 2\/3 data, you receive the following information in the webhook message.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"''\" :code-data=\"[{&quot;language&quot;:&quot;json&quot;,&quot;tabTitle&quot;:&quot;&quot;,&quot;content&quot;:&quot;\\&quot;additionalData\\&quot;: {\\n   \\&quot;enhancedSchemeDataReceived\\&quot;: \\&quot;L3\\&quot;,\\n   \\&quot;enhancedSchemeDataRefusalReasons\\&quot;: \\&quot;Card type doesn't support ESD\\&quot;,\\n   \\&quot;enhancedSchemeDataWarningReasons\\&quot;: \\&quot;\\&quot;,\\n   \\&quot;enhancedSchemeDataSubmitted\\&quot;: \\&quot;\\&quot;\\n}&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"accordion-shortcode adl-accordion adl-accordion--max-height-transition\" data-expand=\"true\" data-ignore=\"anchorjs-link\">\n    \n    <div class=\"adl-accordion__item\" style=\"\">\n        <div tabindex=\"0\" role=\"item\" aria-expanded=\"false\" class=\"adl-accordion__header\">\n            <i class=\"adl-accordion__toggle adl-icon-chevron-down\"><\/i>\n            <div class=\"adl-accordion__title-wrapper\" data-accordion=\"#invalid-level-2-3-data\">\n                                    <h3 class=\"adl-accordion__title\">Invalid level 2\/3 data<\/h3>\n                            <\/div>\n        <\/div>\n        <div role=\"region\" class=\"adl-accordion__content\">\n            \n<p>If the data you sent included missing or incorrectly formatted fields for both level 2 and 3, and Adyen drops the full level 2\/3 data, you receive the following information in the webhook message.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"''\" :id=\"''\" :code-data='[{\"language\":\"json\",\"tabTitle\":\"\",\"content\":\"\\\"additionalData\\\": {\\n   \\\"enhancedSchemeDataReceived\\\": \\\"L3\\\",\\n   \\\"enhancedSchemeDataRefusalReasons\\\": \\\"Line item total amount must be (quantity * unit cost) - discount per line item\\\",\\n   \\\"enhancedSchemeDataWarningReasons\\\": \\\"L3 downgraded to L2 due to invalid data\\\",\\n   \\\"enhancedSchemeDataSubmitted\\\": \\\"\\\"\\n}\"}]' :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n\n        <\/div>\n    <\/div>\n<\/div>\n\n<h2>Test sending level 2\/3 data<\/h2>\n<p>Use the following test card to make test payments with level 2\/3 data:<\/p>\n<table>\n<thead>\n<tr>\n<th>Card Number<\/th>\n<th style=\"text-align: left;\">Card scheme<\/th>\n<th>Expiry date<\/th>\n<th>Card security code<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>5555 5555 5555 4444<\/td>\n<td style=\"text-align: left;\">Mastercard<\/td>\n<td>03\/2030<\/td>\n<td>737<\/td>\n<\/tr>\n<tr>\n<td>4444 3333 2222 1111<\/td>\n<td style=\"text-align: left;\">Visa<\/td>\n<td>03\/2030<\/td>\n<td>737<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>See also<\/h2>\n<ul>\n<li><a href=\"\/pt\/payment-methods\/cards\">Cards<\/a><\/li>\n<li><a href=\"\/pt\/payment-methods\/cards\/enhanced-scheme-data\">Enhanced scheme data<\/a><\/li>\n<li><a href=\"\/pt\/development-resources\/webhooks\">Webhooks<\/a><\/li>\n<\/ul>","url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards\/enhanced-scheme-data\/l2-l3","articleFields":{"description":"Include level 2\/3 data in your requests for US payments with Mastercard and Visa.","feedback_component":true,"last_edit_on":"09-03-2023 17:11","page_id":"cecb9d37-54be-461a-a63c-c94593cebc24","filters_component":false,"decision_tree":"[]"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards\/enhanced-scheme-data\/l2-l3","title":"Level 2\/3 data","content":"Level 2\/3 enhanced scheme data (ESD) helps you track the amount spent on corporate cards and the amount of sales tax. If you are eligible to send level 2\/3 data, you can send it in your requests to Adyen to benefit from lower interchange rates for Mastercard and Visa transactions.\nFor American Express, you receive no financial incentive, but you can include the data for fraud prevention and reporting purposes.\n\nLevel 2 data is purchase and tax details for the payment.\nLevel 3 data is the combination of level 2 data and line item details such as product quantities and descriptions.\n\nRequirements\nIn addition to the requirements that apply to sending ESD, take into account the following additional limitations for sending level 2\/3 data.\n\n\n\nRequirement\nDescription\n\n\n\n\nLimitations\nStarting on April 1, 2026:Visa supports level 3 data only.Mastercard supports both level 2 and level 3 data.You can only send level 2\/3 data for business cards, purchasing cards, and corporate cards. For most business cards, you can only send level 2 data.The minimum total tax amount for a transaction that you send level 2 data for must be 0.1%. This does not apply to level 3 data. The maximum total tax amount for a transaction that you send level 2\/3 data for can be: 30% for Mastercard 22% for Visa  \n\n\n\nHow it works\nIf you are eligible to send level 2\/3 data, you include the data in your payment or capture requests to Adyen. Optionally, you can receive information in your standard webhooks about the status of the level 2\/3 data you submitted in your payment requests. You receive this information as additionalData included in the webhook message.\n\nReview the data validation guidelines before building your implementation to send level 2\/3 data.\nIf you want to receive information about the data you submitted, enable receiving level 2\/3 data insights in webhook messages.\nSend level 2\/3 data in your payment or capture request for a transaction. The request you send it in depends on your capture setting:\n\nAutomatic capture and Delayed automatic capture: in the  \/payments request, include level 2\/3 data in the  enhancedSchemeData.levelTwoThree object.\nManual capture (Single partial capture and Multiple partial capture): in the  \/payments\/{paymentPspReference}\/captures request, include level 2\/3 data in the  enhancedSchemeData object.\n\nAfter the payment has been captured, monitor the status of your level 2\/3 data using the information in the webhook message that you receive.\n\nIf you use automatic capture you receive the information in a webhook message with eventCode:  AUTHORISATION.\nIf you use manual capture, or delayed automatic capture you receive the information in a webhook message with eventCode:  CAPTURE.\n\nIf the level 2\/3 data you submitted does not meet the data requirements, the webhook message includes the reason. Use this information to change the data you send in following requests, so that it correctly meets requirements.\n\nLevel 2\/3 data validation\nThe level 2\/3 data you send in your requests must meet the following requirements:\n\nFormat requirements for the  \/payments or  \/capture requests.\nAccurate and valid data.\nFor Visa: the amount values you send must adhere to specific calculation guidelines.\n\nIf the data that you send does not meet requirements, Adyen does the following:\n\nIf a required field is missing or incorrectly formatted for both levels, we drop all level 2\/3 data. You do not qualify for the lower interchange rates until you fix and resend the request.\nIf your request contains errors only for level 3 data, or the card used in the transaction is only eligible for type 2 data, we drop the level 3 data and only submit the level 2 data.\nIf an optional field is incorrectly formatted, we drop the optional fields and submit only the required data fields.\n\nAmount calculations\nFor Visa, the amount values that you provide in your request must reflect discount amounts, shipping amounts, and local tax amounts:\n\nLine item total must accurately reflect the quantity, unit price, and the discount(s) applied.\n\nCalculation example: enhancedSchemeData.itemDetailLine1.totalAmount = (enhancedSchemeData.itemDetailLine1.quantity x enhancedSchemeData.itemDetailLine1.unitPrice) - enhancedSchemeData.itemDetailLine1.discountAmount\n\nThe total amount in the capture request must accurately reflect all costs related to a purchase, such as the sum of line item totals, any shipping costs, and local taxes.\n\nAlways send level 2\/3 data in the capture request if the total amount in payment and capture request are different.\nCalculation example: modificationAmount {amount} = enhancedSchemeData.itemDetailLine1.totalAmount + enhancedSchemeData.itemDetailLine2.totalAmount + enhancedSchemeData.freightAmount + enhancedSchemeData.totalTaxAmount\n\n\nEnable receiving level 2\/3 data insights in webhook messages\nUpdate your webhook configuration to start receiving the information in webhook messages with eventcode:  AUTHORISATION and eventCode:  CAPTURE.\n\nIn your Customer Area, go to Developers\u00a0&gt;\u00a0 Webhooks.\nFrom the list of webhooks, select the one to configure.\nSelect the edit  icon.\nUnder Additional Settings, select Include ESD Validation Result.\nSelect Save configuration.\nIf you use automatic capture or send the L2\/3 data in the payment request, ask our Support Team to enable receiving information about level 2\/3 data in webhook messages with eventCode:  AUTHORISATION.\n\nAfter you enable the feature, the additionalData field in your webhook messages contains the following information about the data validation:\n\n\n\nField\nDescription\n\n\n\n\nenhancedSchemeDataReceived\nIndicates the type of data that we received from you. Possible values: L2L3null\n\n\nenhancedSchemeDataSubmitted\nIndicates the type of data that we submitted to Mastercard and Visa after data validation. Possible values: L2L3null\n\n\nenhancedSchemeDataRefusalReasons\nIf a required field is invalid or missing, and we drop all level 2\/3 data, this informs you about the invalid or wrong data that caused the error.\n\n\nenhancedSchemeDataWarningReasons\nIf we drop optional level 2\/3 data fields you submitted or we only submit the level 2 data, this informs you about the reason.\n\n\n\nSend level 2\/3 data\n\n\nInclude level 2\/3 data in the payment or capture request.\n\nFor the  \/payments request: include the  additionalData.enhancedSchemeData object.\nFor the  \/payments\/{paymentPspReference}\/captures request: include the  enhancedSchemeData.levelTwoThree object.\nThe following table shows which level 2\/3 data fields are required and optional, depending on the type of request.\n\n\n\n\nLevel\nPayment request fields\nCapture request fields\nRequired\n\n\n\n\n2 and 3\ncustomerReference\ncustomerReferenceNumber\n\n\n\n2 and 3\ntotalTaxAmount\ntotalTaxAmount\n\n\n\n3\nitemDetailLine[itemNr].productCode\nitemDetailLines.productCode\n\n\n\n3\nitemDetailLine[itemNr].description\nitemDetailLines.description\n\n\n\n3\nitemDetailLine[itemNr].quantity\nitemDetailLines.quantity\n\n\n\n3\nitemDetailLine[itemNr].unitOfMeasure\nitemDetailLines.unitOfMeasure\n\n\n\n3\nitemDetailLine[itemNr].commodityCode\nitemDetailLines.commodityCode\n\n\n\n3\nitemDetailLine[itemNr].totalAmount\nitemDetailLines.totalAmount\n\n\n\n3\nitemDetailLine[itemNr].unitPrice\nitemDetailLines.unitPrice\n\n\n\n3\ndestinationCountryCode\ndestination.countryCode\n\n\n\n3\ndestinationPostalCode\ndestination.postalCode\n\n\n\n3\ndestinationStateProvinceCode\ndestination.stateOrProvince\n\n\n\n3\ndutyAmount\ndutyAmount\n\n\n\n3\nfreightAmount\nfreightAmount\n\n\n\n3\norderDate\norderDate\n\n\n\n3\nshipFromPostalCode\nshipFromPostalCode\n\n\n\n3\nitemDetailLine[itemNr].discountAmount\nitemDetailLines.discountAmount\n\n\n\n\nSelect the endpoint for the corresponding request example:\n\n\n    \n        \n        \n    \n\n\n\n\nUse the information from webhook messages to monitor the status of the data you submitted.\n\n\nMonitor the status of your level 2\/3 data in webhooks\nAfter you enable receiving data validation results in your webhook messages, use the information you receive in the webhook message to learn about the type of data Adyen submitted to Visa or Mastercard, or any errors.\n\nUse the enhancedSchemeDataSubmitted field to see which level of data (L2 or L3) Adyen successfully submitted to the schemes.\nIf Adyen did not submit the data you sent, use the enhancedSchemeDataRefusalReason to learn the reason.\nUse the enhancedSchemeDataWarningReason to learn if Adyen dropped any of the optional the fields you sent.\nUse the feedback to fix the issues in your integration that caused the invalid data.\n\nThe following examples show different scenarios and the information you receive in the webhook messages.\n\n    \n    \n        \n            \n            \n                                    Valid level 3 data\n                            \n        \n        \n            \nIf the level 3 data you sent was valid, and Adyen submitted it to Visa or Mastercard, you receive the following information in the webhook message.\n\n    \n\n\n        \n    \n\n\n\n    \n    \n        \n            \n            \n                                    Valid level 2 data\n                            \n        \n        \n            \nIf the level 2 data you sent was valid, and Adyen submitted it to Visa or Mastercard, you receive the following information in the webhook message.\n\n    \n\n\n        \n    \n\n\n\n    \n    \n        \n            \n            \n                                    Level 3 data contained errors\n                            \n        \n        \n            \nIf the level 3 data you sent contained errors, and Adyen only submits the level 2 data, you receive the following information in the webhook message.\n\n    \n\n\n        \n    \n\n\n\n    \n    \n        \n            \n            \n                                    Not eligible for level 2\/3 data\n                            \n        \n        \n            \nIf the card used to make the payment does not support level 2\/3 data, you receive the following information in the webhook message.\n\n    \n\n\n        \n    \n\n\n\n    \n    \n        \n            \n            \n                                    Invalid level 2\/3 data\n                            \n        \n        \n            \nIf the data you sent included missing or incorrectly formatted fields for both level 2 and 3, and Adyen drops the full level 2\/3 data, you receive the following information in the webhook message.\n\n    \n\n\n        \n    \n\n\nTest sending level 2\/3 data\nUse the following test card to make test payments with level 2\/3 data:\n\n\n\nCard Number\nCard scheme\nExpiry date\nCard security code\n\n\n\n\n5555 5555 5555 4444\nMastercard\n03\/2030\n737\n\n\n4444 3333 2222 1111\nVisa\n03\/2030\n737\n\n\n\nSee also\n\nCards\nEnhanced scheme data\nWebhooks\n","type":"page","locale":"pt","boost":16,"hierarchy":{"lvl0":"Home","lvl1":"Payment methods","lvl2":"Cards","lvl3":"Enhanced scheme data","lvl4":"Level 2\/3 data"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/payment-methods","lvl2":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards","lvl3":"https:\/\/docs.adyen.com\/pt\/payment-methods\/cards\/enhanced-scheme-data","lvl4":"\/pt\/payment-methods\/cards\/enhanced-scheme-data\/l2-l3"},"levels":5,"category":"Payment method","category_color":"green","tags":["Level"]}}
