# Submit Level 2 or Level 3 data Card processing transactions are categorized into different levels, depending on how much information is captured from the cardholder for the transaction. By providing Level 2 or Level 3 data with your transactions, you may be able to qualify for reduced interchange rates. Cardholders also benefit from the additional data, as they receive more detailed transaction information in their card statements. > **Note** > > From April 18, 2026: > > - Visa supports CEDP only. > - Mastercard supports both Level 2 and Level 3 data. --- ## Interchange reduction (US only) Each card scheme has different requirements for Level 2 and Level 3 data to qualify for interchange reduction. The following tabs list the minimum requirements for each card brand, and the data levels needed to for you to get maximum interchange reduction. > **Information** > > For a listing of all fields and field definitions, see [Visa and Mastercard data fields](#Visa_and_Mastercard_data_fields) and [American Express data fields](#American_Express_data_fields). **Visa** | Requirement | CEDP | | --- | --- | | Region | US domestic payments only | | Card type | Business, Corporate, Purchasing, or Fleet | | Eligible source of funds | Only cards funded by Credit (C) or Prepaid (P) sources are eligible for CEDP interchange rates | | Tax | 0 USD or a value between 0.1% to 22% of `amount`. | | Reference | Must be less than or equal to 12 characters. | | Excluded merchant category codes (MCCs) | - 3000-3350, 4511 (Airlines)
- 3351–3500, 7512, 7513 (Automobile/Vehicle Rental)
- 3501–3999, 7011 (Hotel/Motel)
- 4112 (Passenger Railways)
- 4411 (Cruise Lines)
- 4722 (Travel Agencies & Operators)
- 5812 (Eating Places & Restaurants)
- 5814 (Fast Food Restaurants) | | Minimum fields | - `items[].commodity_code`
- `items[].discount_amount`
- `items[].name`
- `items[].quantity`
- `items[].reference`
- `items[].tax_amount`
- `items[].total_amount`
- `items[].unit_of_measure`
- `items[].unit_price`
- `processing.duty_amount`
- `processing.shipping_amount` | > **Note** > > Transactions may qualify for large ticket interchange reduction if the `amount` is equal to or greater than 8000 USD and the card type is Corporate, Purchasing, or Fleet. **Mastercard** | Requirement | Level 2 | Level 3 | | --- | --- | --- | | Region | US domestic payments only | | | Card type | Business, Corporate, Purchasing, or Fleet | Corporate, Purchasing, or Fleet | | Tax | 0 USD or a value between 0.1% to 22% of `amount`.

If 0 USD tax, all line items must have `items[].tax_exempt` set to `true`. | | | Reference | Must be less than or equal to 12 characters. | | | Excluded merchant category codes (MCCs) | - 3000-3350, 4511 (Airlines)
- 3351–3500, 7512, 7513 (Automobile/Vehicle Rental)
- 3501–3999, 7011 (Hotel/Motel)
- 4112 (Passenger Railways)
- 5812 (Eating Places & Restaurants)
- 7519 (Motor Home & Recreational Vehicle Rental) | | | Minimum fields | - `processing.order_id`
- `processing.tax_amount` | - `items[].commodity_code`
- `items[].discount_amount`
- `items[].name`
- `items[].quantity`
- `items[].reference`
- `items[].tax_amount`
- `items[].total_amount`
- `items[].unit_of_measure`
- `items[].unit_price`
- `processing.duty_amount`
- `processing.shipping_amount` | Transactions may qualify for large ticket interchange reduction if the `amount` is equal to or greater than 10000 USD and the card type is Corporate, Purchasing, or Fleet. > **Information** > > If you do not meet all of the requirements, you may still qualify for interchange reduction, but not for the maximum reduction across all card brands. --- ## CEDP interchange rates Visa's Commercial Enhanced Data Program (CEDP) is replacing its Level 2, Level 3, and Large Ticket interchange programs for US commercial card transactions. This change only affects Visa. Mastercard's Level 2 and Level 3 programs are unaffected. For the full CEDP timeline and verified merchant requirements, see [Changes to commercial interchange in the US](https://support.checkout.com/hc/en-us/articles/30007033714194). The payment request returns the card's product ID in the `source.product_id` field. | Product Group | Product ID | Card Not Present | CEDP | Large Ticket | | --- | --- | --- | --- | --- | | Business Credit | `G` | 2.65% + USD 0.10 | 2.40% + USD 0.10 | \- | | Business Credit | `G3` | 2.80% + USD 0.10 | 2.55% + USD 0.10 | \- | | Business Credit | `G1` | 2.85% + USD 0.10 | 2.60% + USD 0.10 | \- | | Business Credit | `G4` | 2.95% + USD 0.10 | 2.70% + USD 0.10 | \- | | Business Credit | `G5` | 3.00% + USD 0.10 | 2.75% + USD 0.10 | \- | | Purchasing | `S`, `S1`, `S2`, `S3` | 2.70% + USD 0.10 | 1.75% + USD 0.10 | 1.30% + USD 35 | | Corporate | `K`, `K1` | 2.70% + USD 0.10 | 1.75% + USD 0.10 | 1.30% + USD 35 | --- ## When to submit Level 2 or Level 3 data Level 2 and Level 3 fields can be submitted in either the [payment](https://www.checkout.com/docs/payments/accept-payments/authorize-a-payment.md) or the [capture](https://www.checkout.com/docs/payments/manage-payments/capture-a-payment.md) request. Values submitted in the capture request will override values submitted in the payment request on a field-by-field basis. For partial captures, the Level 2 or Level 3 data must be submitted in the capture request. If the data is sent in the payment request and a partial capture follows without the additional data, no data will be submitted to the card scheme. > **Note** > > If you submit Level 2 or Level 3 data in a payment or capture request for a transaction that is not eligible for Level 2 or Level 3 categorization, the additional data is automatically dropped from the request when forwarded to the scheme. --- ## Total amount calculation When line item amounts are sent, they must correspond to the total tax, discount, line item, and overall amounts in the request message. With Visa and Mastercard, you may incur additional fees for payments with amounts that do not reconcile. > **Note** > > You must provide all monetary values in the payment request in the [minor currency unit](https://www.checkout.com/docs/payments/accept-payments/format-the-amount-value.md). For example, 1000 for USD 10.00. > > Using decimal points is not supported. ### Line item total amounts Each `items[n].total_amount` value should be equal to `(items[n].quantity * items[n].unit_price) - items[n].discount`. You can find these values on the customer invoice. > **Note** > > Do not include the value of `items[n].tax_amount` in the `items[n].total_amount` field. ### Order amounts The `amount` value should be equal to the following formula: `amount = Σ(items[].total_amount) - processing.discount_amount + processing.tax_amount + processing.shipping_amount` For installment payments, the total authorized amount does not have to be equal to the sum of `items[].total_amount`. In this case, the `items[].unit_price` and `items[].quantity` should reflect the overall purchase. For example, if a single 1000 USD item is purchased with an installment plan, the `items[]` values should be: - `items.unit_price` – `100000` - `items.quantity` – `1` The total authorized amount can be less than `100000`. > **Note** > > For a Level 3 Visa or Mastercard request, you can send a maximum of 50 `item` objects. For an American Express request, you can send a maximum of four `item` objects. Any additional items will be ignored. --- ## Visa and Mastercard data fields | Field | Description | | --- | --- | | `customer.tax_number`

`string` | The customer's tax registration number.

Up to 13 characters. | | `items[].commodity_code`

`string` | The commodity code for an item in this transaction.

Up to 12 characters. | | `items[].discount_amount`

`number` | The discount applied to each invoice line item. | | `items[].name`

`string` | The description of the item purchased. The value must not be a substring of or identical to the merchant name.

Up to 26 characters. | | `items[].quantity`

`integer` | The number of units purchased. | | `items[].reference`

`string` | The merchant product identifier or Stock Keeping Unit (SKU). The value must not be blank, null, or contain only zeros.

Up to 12 characters. | | `items[].tax_exempt`

`boolean` | Indicates whether the products or services are tax-exempt.

Mastercard only. | | `items[].tax_amount`

`number` | The total amount of sales tax for the line item. | | `items[].total_amount`

`number` | The total amount for the line item, excluding tax. | | `items[].unit_of_measure`

`string` | The unit of measure code used for the item in the transaction.

See the [Measure codes](#Measure_codes) section for accepted values.

Up to 12 characters. | | `items[].unit_price`

`number` | The unit cost of the item purchased. | | `processing.discount_amount`

`number` | The discount amount applied to the transaction by the merchant. | | `processing.duty_amount`

`number` | The total charges for any import or export duty included in the transaction. | | `processing.order_id`

`string` | The invoice or purchase order number provided by the cardholder.

Up to 15 characters. | | `processing.shipping_amount`

`number` | The total amount of freight, shipping, and handling charges for the transaction. | | `processing.shipping_tax_amount`

`number` | The total amount of tax for the freight, shipping, and handling charges for the transaction. | | `processing.tax_amount`

`number` | The total amount of sales tax on the total purchase amount. | | `shipping.address.country`

`string` | The two-letter ISO country code of the destination address.

Up to 2 characters. | | `shipping.address.zip`

`string` | The destination ZIP code or post code.

Up to 10 characters. | | `shipping.from_address_zip`

`string` | The original ZIP code or post code. The value must match the ISO standard for the destination country.

- USA: Must be ZIP or ZIP+4. For example, 12345 or 12345-6789.
- Canada: Must be in uppercase, with a space in the middle. For example, A1B 2C3.

Up to 10 characters. | ### Measure codes | Measure code | Definition | | --- | --- | | `ACRE` | A unit of area equal to 4840 square yards. | | `ARES` | A unit of area equal to 100 square meters. | | `CELI` | A unit of volume equal to one hundredth of a liter. | | `CMET` | A unit of length equal to one hundredth of a meter. | | `EACH` | One of two or more distinct items. | | `FOOT` | A unit of length equal to 1/3 yard. | | `GBGA` | A unit of volume equal to 8 pints. | | `GBOU` | A unit of weight equal to one sixteenth of a pound. | | `GBPI` | A unit of volume equal to 568 cubic centimeters. | | `GBQA` | A unit of volume equal to 2 pints. | | `GRAM` | A unit of weight equal to one 1,000th of a kilo. | | `HECT` | A unit of area equal to 10,000 square meters. | | `INCH` | A unit of length equal to 2.54 cm. | | `KILO` | A unit of weight equal to 1000 grams. | | `KMET` | A unit of measure equal to 1000 meters. | | `LITR` | A unit of volume equal to 1000 cubic centimeters. | | `METR` | A unit of length in the metric system equal to 39.37 inches. | | `MILE` | A unit of length equal to 1760 yards. | | `MILI` | A unit of volume equal to one thousandth of a liter. | | `MMET` | A unit of length equal to one thousandth of one meter. | | `PIEC` | A standard length of cloth or wallpaper, or amount of a substance sold as a single item. | | `PUND` | A unit of weight equal to 0.454 kilograms. | | `SCMT` | A unit of area equal to a square measuring one centimeter by one centimeter. | | `SMET` | A unit of area equal to a square measuring one meter by one meter. | | `SMIL` | A unit of area equal to a square measuring one millimeter by one millimeter. | | `SQFO` | A unit of area equal to a square measuring one foot by one foot. | | `SQIN` | A unit of area equal to a square measuring one inch by one inch. | | `SQKI` | A unit of area equal to a square measuring one kilometer by one kilometer. | | `SQMI` | A unit of area equal to a square measuring one mile by one mile. | | `SQYA` | A unit of area equal to a square measuring one yard by one yard. | | `TONS` | A unit of weight equal to 2240 pounds in Britain (long ton) and 2000 pounds in the US (short ton). | | `USGA` | A unit of volume equal to eight pints. | | `USOU` | A unit of weight equal to one sixteenth of a pound. | | `USPI` | A unit of volume equal to 473 cubic centimeters. | | `USQA` | A unit of volume equal to two pints. | | `YARD` | A unit of length equal to 3 feet or 0.9144 meters. | ### Request example - Level 2 **Payment request** ```json { "source": { "type": "card", "number": "4242424242424242", "expiry_month": "12", "expiry_year": "2025", "cvv": "100" }, "amount": 1500, "currency": "USD", "customer": { "tax_number": "000123456" }, "processing": { "order_id": "01234", "tax_amount": 30 }, "processing_channel_id": "pc_123xyz" } ``` **Capture request** ```json { "amount": 1500, "capture_type": "Final", "reference": "ORD-5023-4E89", "customer": { "tax_number": "000123456" }, "processing": { "order_id": "01234", "tax_amount": 30 }, "processing_channel_id": "pc_123xyz" } ``` ### Request example - Level 3 **Payment request** ```json { "source": { "type": "card", "number": "4242424242424242", "expiry_month": "12", "expiry_year": "2025", "cvv": "100" }, "amount": 1500, "currency": "USD", "customer": { "tax_number": "000123456" }, "processing": { "order_id": "01234", "tax_amount": 30, "discount_amount": 0, "duty_amount": 0, "shipping_amount": 200, "shipping_tax_amount": 0 }, "shipping": { "address": { "zip": "94111", "country": "US" }, "from_address_zip": "10014" }, "items": [ { "name": "Paint", "quantity": 1, "unit_price": 1270, "reference": "Paint123", "commodity_code": "123", "unit_of_measure": "Liters", "total_amount": 1270, "tax_amount": 30, "discount_amount": 0 } ], "processing_channel_id": "pc_123xyz" } ``` **Capture request** ```json { "amount": 1500, "capture_type": "Final", "reference": "ORD-5023-4E89", "customer": { "tax_number": "000123456" }, "processing": { "order_id": "01234", "tax_amount": 30, "discount_amount": 0, "duty_amount": 0, "shipping_amount": 200, "shipping_tax_amount": 0 }, "shipping": { "address": { "zip": "94111", "country": "US" }, "from_address_zip": "10014" }, "items": [ { "name": "Paint", "quantity": 1, "unit_price": 1270, "reference": "Paint123", "commodity_code": "123", "unit_of_measure": "Liters", "total_amount": 1270, "tax_amount": 30, "discount_amount": 0 } ], "processing_channel_id": "pc_123xyz" } ``` --- ## American Express data fields American Express only supports Level 2 data. | Field | Description | | --- | --- | | `customer.name`

`string` | The customer's name. | | `items[].name`

`string` | The description of the item purchased.

Up to 12 characters. | | `items[].quantity`

`number` | The number of units purchased. | | `items[].unit_price`

`number` | The unit cost of the item purchased. | | `processing.order_id`

`string` | The purchase order or invoice number provided by the cardholder.

Up to 17 characters. | | `processing.tax_amount`

`number` | The total amount of sales tax on the total purchase amount. | | `shipping.address.zip`

`string` | The destination postal or ZIP code or post code.

Up to 50 characters. | ### Request example **Payment request** ```json { "source": { "type": "card", "number": "345678901234564", "expiry_month": 12, "expiry_year": 2025, "cvv": "1000" }, "amount": 1500, "currency": "USD", "customer": { "name": "John Smith" }, "processing": { "order_id": "01234", "tax_amount": 130 }, "shipping": { "address": { "zip": "94111" } }, "items": [ { "name": "Paint", "quantity": 1, "unit_price": 1270 } ], "processing_channel_id": "pc_123xyz" } ``` **Capture request** ```json { "amount": 1500, "capture_type": "Final", "reference": "ORD-5023-4E89", "customer": { "name": "John Smith" }, "processing": { "order_id": "01234", "tax_amount": 130 }, "shipping": { "address": { "zip": "94111" } }, "items": [ { "name": "Paint", "quantity": 1, "unit_price": 1270 } ], "processing_channel_id": "pc_123xyz" } ``` --- ## Confirm reduced interchange rates `Beta` You can confirm that you received reduced Level 2 or Level 3 interchange fees using the free Predictive Interchange feature and the following reports: - [Fee Summary Report](https://www.checkout.com/docs/funds-management/retrieve-financial-reports/fee-summary-report.md) - [Financial Actions by Payout ID Report](https://www.checkout.com/docs/funds-management/retrieve-financial-reports/settlement-reports/financial-actions-by-payout-id-report.md) > **Information** > > To enable Predictive Interchange (beta, subject to approval), contact your account manager or [request support](https://dashboard.checkout.com/support/new?topic=case_account_management_and_access&issue=issue_account_changes). From when Predictive Interchange is enabled, the value in the `Fee Detail` field in both reports has a specific suffix per card scheme: | Card scheme | Fee Detail field suffix | Example | | --- | --- | --- | | Mastercard | Data II | `MC US DOMESTIC COMMERCIAL CREDIT - WORLD ELITE - DATA II` | | Mastercard | Data III | `MC US DOMESTIC COMMERCIAL CREDIT - LARGE MARKET - DATA III` | | Visa | Level 2 | `VISA US DOMESTIC COMMERCIAL CREDIT - CORPORATE - LEVEL 2` | | Visa | Level 3 | `VISA US DOMESTIC COMMERCIAL CREDIT - PURCHASING - LEVEL 3` | > **Information** > > Mastercard uses "data" range terminology for its enhanced interchange programs because the term "Level" has a different meaning in its fee structure.