VISA Commercial Card Data Requirements: Level 1, Level 2, and CEDP Product 3
Overview
This document provides the complete field requirements for VISA commercial card processing across three tiers:
- Level 1: Basic transaction data (all transactions)
- Level 2: Enhanced data for B2B transactions (being phased out April 18, 2026)
- CEDP Product 3: New standard replacing Level 3 (enforced October 17, 2025)
Note: Level 3 was the previous enhanced data standard that required line-item details. CEDP Product 3 replaces Level 3 with stricter validation requirements and better interchange rates. Level 2, which required enhanced transaction data but not line-item details, is being discontinued in April 2026.
Critical Timeline
- October 17, 2025: CEDP Product 3 enforcement begins, replaces Level 3
- April 18, 2026: Level 2 program completely discontinued
- 0.05% CEDP fee: Charged on all Level 2/Product 3 transactions (started April 2025)
Complete Field Requirements Table
| Data Element | Level 1 | CEDP Product 3 | Data Type/Format | Notes | field |
|---|---|---|---|---|---|
| TRANSACTION BASICS | |||||
| Merchant Identifier | ✓ | ✓ | String | Merchant ID | * |
| Order Amount (Total) | ✓ | ✓ | Decimal | Must match: line items + tax + shipping + duty - discount | amount |
| Currency Code | ✓ | ✓ | String (3) | ISO 4217 3-letter code (e.g., USD, EUR, GBP) | * |
| CARDHOLDER INFORMATION | |||||
| Card Number | ✓ | ✓ | String (15-16) | Full card number | * |
| Card Expiration Date | ✓ | ✓ | String (MMYY) | 4-digit expiration | * |
| CVV/Security Code | ✓ | ✓ | String (3-4) | Card security code | cvv2 (provided by payment elements if applicable) |
| Billing ZIP Code | ✓ | ✓ | String (5-9) | For AVS verification | billing_details.address.postal_code |
| Billing Address | ✓ | ✓ | String | Full billing address | billing_details.address.address_line1 |
| MERCHANT INFORMATION | |||||
| Merchant Name | ✓ | ✓ | String | Business name | * |
| Merchant Postal Code | ✓ | String (5-9) | Merchant ZIP code | * | |
| Merchant Tax ID (TIN) | ✓ | String | Tax identification number | * | |
| Merchant State Code | ✓ | String (2) | 2-letter state code | * | |
| TAX INFORMATION | |||||
| Sales Tax Amount | ✓ | Decimal | Product 3: Can be $0 if tax exempt (Note: Level 2 required 0.1%-22% of total, but Level 2 is being phased out) | order_details.tax_amount | |
| Tax Exempt Indicator | ✓ | Boolean | Set to true if tax exempt | order_details.tax_exempt | |
| ORDER INFORMATION | |||||
| Customer Code / PO Number | ✓ | String | Cannot be blank, null, or all zeros Must be meaningful value | order_details.po_number | |
| Order Date | ✓ | Date | Date order was placed | order_details.order_date | |
| SHIPPING INFORMATION | |||||
| Ship To ZIP | ✓ | String (5-9) | Destination ZIP code | order_details.ship_to_zip | |
| Ship From ZIP | ✓ | String (5-9) | Origin ZIP code | order_details.ship_from_zip | |
| Ship To Country | ✓ | String (2) | 2-letter country code | order_details.ship_to_country | |
| TRANSACTION-LEVEL AMOUNTS | |||||
| Freight/Shipping Amount | ✓ | Decimal | Total shipping cost. Can be $0 | order_details.freight_amount | |
| Duty Amount | ✓ | Decimal | Import tax/customs. Can be $0 | order_details.duty_amount | |
| Order Discount Amount | ✓ | Decimal | Transaction-level discount. Can be $0 | order_details.discount_amount | |
| LINE ITEM DETAILS (Required for EACH item in Product 3) | |||||
| Item Description | ✓ | String | Cannot be blank, null, or all zeros/spaces Must be descriptive, not generic | order_details.items[].description | |
| Item Name/Title | ✓ | String | Product name | order_details.items[].name | |
| Commodity Code | ✓ | String (7+) | Cannot be blank, null, or all zeros 7-digit NIGP recommended | order_details.items[].material | |
| Product Code / SKU | ✓ | String (≤12) | Cannot be blank, null, or all zeros Merchant's unique identifier | order_details.items[].upc subject to change pending validation with processor | |
| Item Quantity | ✓ | Decimal | Number of units | order_details.items[].quantity | |
| Unit of Measure | ✓ | String | e.g., EA, BX, CTN, DZ, LB | order_details.items[].uom | |
| Unit Price / Unit Cost | ✓ | Decimal | Cannot be all zeros Price per unit | order_details.items[].unit_cost | |
| Item Discount Amount | ✓ | Decimal | Line-item discount. Can be $0 | order_details.items[].discount_amount | |
| Item Tax Amount | ✓ | Decimal | Tax for this line item | order_details.items[].tax_amount | |
| Item Total Amount | ✓ | Decimal | (Quantity × Unit Price) - Item Discount | order_details.items[].net_amount |
Field Column Legend:
*- Field is automatically provided by the system for all transactions (no action required)- Field path (e.g.,
order_details.tax_amount) - Field must be provided in your API request using the specified path - For line items, use array notation:
order_details.items[]indicates each item in the items array requires these fields
Field Notes and Validation Rules
Level 1 (All Transactions)
- Purpose: Basic transaction authorization
- Interchange: Standard rates (highest)
- Requirements: Minimal cardholder and transaction data
- Validation: Basic card verification and AVS
CEDP Product 3 (October 17, 2025+)
- Purpose: Validated line-item transaction data (replaces Level 3)
- Interchange: 7-10% better than old Level 3 rates
- Key Differences from Level 2 (which is being phased out):
- Requires ALL line-item details for each product (Level 2 did not require line items)
- Tax CAN be $0 if transaction is tax-exempt (Level 2 required tax to be 0.1%-22% of total)
- VISA validates accuracy and completeness, not just presence
- No placeholder or generic data allowed
- Eligible Cards: Corporate, Purchasing, Fleet, Business Credit (NEW)
Critical Data Quality Rules for CEDP
VISA's machine learning validates:
❌ REJECTED Data
- Generic descriptions: "Product", "Item", "Service", "Merchandise"
- Placeholder text: "N/A", "TBD", "XXX", "000", "None"
- Static/repeated values across different transactions
- Blank, null, or all-zero fields where data is required
- Invalid calculations that don't match line-item math
- Commodity codes that don't exist or are inappropriate
✓ ACCEPTED Data
- Specific, unique descriptions: "HP LaserJet Pro M404dn Printer"
- Valid commodity codes: 7-digit NIGP or UNSPSC codes
- Accurate calculations: Item total = (Qty × Price) - Discount
- Transaction total = Line items + Tax + Shipping + Duty - Discount
- Meaningful customer codes/PO numbers from actual orders
Calculation Requirements
Line Item Total Calculation
Item Total = (Quantity × Unit Price) - Item Discount
Example:
- Quantity: 5 boxes
- Unit Price: $12.50 per box
- Item Discount: $2.50
- Item Total: (5 × $12.50) - $2.50 = $60.00
Transaction Total Calculation
Transaction Total = Sum of All Line Item Totals + Transaction Tax + Shipping + Duty - Order Discount
Example:
- Line Item 1: $60.00
- Line Item 2: $45.00
- Transaction Tax: $8.40
- Shipping: $10.00
- Duty: $0.00
- Order Discount: $3.40
- Transaction Total: $60.00 + $45.00 + $8.40 + $10.00 + $0.00 - $3.40 = $120.00
Note: Fleet fuel-only transactions have separate qualification rules and requirements.
Disqualified Merchant Categories (MCCs)
The following MCCs cannot qualify for Level 2 (until April 2026) or CEDP Product 3:
| MCC Range | Category |
|---|---|
| 3000-3299 | Airlines |
| 3501-3999 | Car Rental / Hotels |
| 4112 | Passenger Railways |
| 4411 | Steamship and Cruise Lines |
| 4511 | Airlines and Air Carriers |
| 4722 | Travel Agencies and Tour Operators |
| 5812 | Eating Places and Restaurants |
| 5814 | Fast Food Restaurants |
| 5962 | Direct Marketing - Travel Related (High Risk) |
| 5966 | Direct Marketing - Outbound Telemarketing (High Risk) |
| 5967 | Direct Marketing - Inbound Teleservices (High Risk) |
| 7011 | Lodging - Hotels, Motels, Resorts |
| 7512 | Automobile Rental Agency |
| 7513 | Truck & Utility Trailer Rentals |
| 7519 | Motor Home and RV Rentals |
Additional Qualification Requirements
CEDP Product 3 (and Level 2 until April 2026)
- Transaction must be CPS (Custom Payment Service) compliant
- Capture must follow authorization within 1 business day
- Transaction must be authorized online (not CAT terminal)
Large Ticket (>$6,980)
- Clearing within 2 business days (≤1 day between auth and capture)
- Corporate or Purchasing cards only
Common Unit of Measure Codes
| Code | Description |
|---|---|
| EA | Each (individual units) |
| BX | Box |
| CTN | Carton |
| DZ | Dozen |
| LB | Pound |
| KG | Kilogram |
| FT | Foot |
| YD | Yard |
| HR | Hour |
| MO | Month |
| CS | Case |
| PK | Package |
| PR | Pair |
| RL | Roll |
| ST | Set |