If your business accepts corporate, purchasing or business cards through Stripe, or you run a platform on Stripe Connect that processes for B2B sellers, Level 2 and Level 3 data is how a commercial card sale can reach a lower interchange rate at Visa and Mastercard. Stripe supports both levels through its Payment line items feature. This guide explains where the data goes, what Stripe requires, what it checks, what it does not check, and how to see whether a sale qualified.
It covers US domestic commercial card sales. Savings from lower interchange only reach you on Interchange++ (IC+) pricing; on blended pricing, the difference stays with the gateway.
Where Stripe takes Level 2 and Level 3 data
Stripe takes the data on the PaymentIntent, in two objects:
- amount_details carries the order totals (tax, shipping, discount) and the line items;
- payment_details carries the order reference and the customer reference.
You can send them when you create, confirm, update or capture a PaymentIntent, and when you increment an authorization. If you send line items at confirmation, you do not need to send them again at capture. The feature has been generally available since API version 2025-10-29.clover, with up to 200 line items per payment.
If you use Stripe Checkout, Billing, Invoicing or Subscriptions, Stripe fills part of this for you from your Products and Prices: the product name, the product id as product code, the unit label as unit of measure and the tax. That only works as well as your product catalog. A Product named "Service" with no unit label sends exactly that to the network.
The fields Stripe uses
| Data | Stripe field | Needed for |
|---|---|---|
| Order reference | payment_details.order_reference | Level 2 and Level 3 |
| Customer reference | payment_details.customer_reference | Optional |
| Total tax | amount_details.tax.total_tax_amount, or tax on each line | Level 2 and Level 3 |
| Shipping amount and ZIP codes | amount_details.shipping | Optional |
| Discount | amount_details.discount_amount, or discount on each line | Optional |
| Product name | line_items[].product_name | Level 3 |
| Product code | line_items[].product_code | Level 3 |
| Quantity | line_items[].quantity | Level 3 |
| Unit cost | line_items[].unit_cost | Level 3 |
| Unit of measure | line_items[].unit_of_measure | Level 3 |
| Commodity code | line_items[].payment_method_options.card.commodity_code | Optional |
Tax and discount can be sent at the order level or on each line, not both. Amounts are integers in the smallest currency unit, as everywhere in the Stripe API.
Field lengths: what reaches the network
Stripe accepts long values in some fields but shortens them before sending to the card networks:
- Product name: the API accepts up to 1,024 characters, but only the first 26 alphanumeric characters reach the network.
- Order reference and customer reference: only the first 25 alphanumeric characters, excluding spaces, reach the network.
- Product code, unit of measure and commodity code: up to 12 characters.
The truncation is silent. A product name like "Industrial safety gloves, nitrile, size L, box of 100" reaches Visa as its first 26 characters, which can still be specific enough. A name that starts with your company name or a long internal prefix can reach Visa as nothing but that prefix, which is exactly what CEDP treats as generic.
What Stripe checks
Arithmetic. Stripe checks that the line items add up to the payment amount: the sum of unit cost times quantity, plus tax and shipping, minus discount, has to equal the amount. By default, a request that does not add up is rejected with an error. You can turn that rejection off; the payment then goes through, but Stripe reports the mismatch and does not send the line items to the networks, so the sale loses its Level 2 and Level 3 data.
Partial captures and partial authorizations. If the captured amount differs from the authorized amount, update the line items at capture. Capturing without updating leaves them out of what reaches the network.
Required fields. Product name, quantity and unit cost are required by the API on every line you send.
What Stripe does not check
Stripe validates format and arithmetic. It does not decide whether your data qualifies:
- It does not reject line items that miss the networks' merchant category or tax requirements. The sale simply does not qualify.
- It does not judge whether a description or product code is specific enough for Visa CEDP.
- It does not know whether your tax amount is right for the jurisdiction.
Stripe's own guidance for CEDP lines up with what Visa looks for: avoid empty, single character or generic product names; do not repeat your business name; do not put other data, such as the merchant category code or card type, in the product code; send the correct tax for your nexus, with zero only where no tax is charged; and send a meaningful unit of measure such as "item" or "gallon".
Sending line item data also does not guarantee Product 3 on Visa. Visa reviews a merchant's data over time before verifying it, and sales from an unverified account can still qualify one by one.
Which cards and networks benefit
| Network | Level 2 | Level 3 |
|---|---|---|
| Visa | No separate rate since April 2026, except fuel | Product 3 through CEDP, on Corporate, Purchasing and Business cards |
| Mastercard | Data Rate II on Business, Corporate and Purchasing cards | Data Rate III on Corporate and Purchasing cards only |
| American Express | Savings require a direct agreement with Amex | Same agreement; only the first 4 line items are sent |
Level 2 and Level 3 rates apply to commercial cards only. Consumer cards and regulated debit do not change rate with this data, and some merchant categories, such as airlines, lodging, car rental and restaurants, are excluded. Line items also cannot be combined with industry data for car rental, lodging or airlines on the same payment.
The rates at stake on a typical B2B sale taken online:
| Network | Without qualifying data | With Level 3 |
|---|---|---|
| Visa Corporate and Purchasing | Card Not Present, 2.70% + $0.10 | Product 3, 1.75% + $0.10 |
| Mastercard Large Market Credit | Data Rate I, 2.70% + $0.10 | Data 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.
How to see whether a sale qualified
Stripe does not return a "qualified" flag on the payment. The answer is in your reports:
- Transaction-level fees report (IC+): under Reports, Payments fees, Transaction-level. It shows the interchange of each charge and is the report to use for commercial card analysis. It only exists on Interchange++ pricing. The "All fees" report lists Stripe's own fees, not interchange.
- CEDP report: in Network Cost Insights, Stripe reports each account's CEDP verification status and the errors found in its data. It updates around the start of each month with data from two months earlier.
Network costs can be charged or revised up to two months after the sale, so wait a few weeks before judging a change in your data.
A short checklist for Stripe sellers and platforms
- Confirm you are on Interchange++ pricing.
- Use API version 2025-10-29.clover or later and send line items on the PaymentIntent.
- Send an order reference and real tax on every commercial card sale.
- Fill product name, product code, quantity, unit cost and unit of measure from your own catalog, with the specific item first in the name.
- Keep the line items adding up, and update them on partial captures.
- On Checkout and Billing, clean up Product names and unit labels, since they become your Level 3 data.
- Read the transaction-level fees report and the CEDP report every month.
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 Stripe, run a free diagnostic at tierback.com. Upload your transaction-level fees report: the diagnostic finds the commercial card sales that settled above the data rates and estimates what that cost.
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.