Level 2/3 processing

Send Level 2/3 data on payins

Level 2 and Level 3 data is submitted with a business or commercial card to provide additional benefit to the cardholder through enhanced payment information, and benefits the merchant with lower interchange rates assessed by the card networks (Visa and Mastercard).

Where practical, it is highly recommended that Level 2 and Level 3 data be included in a payin request.

🚧

Visa Commercial Enhances Data Program (CEDP) requirements

Visa is launching a new interchange framework to qualify for commercial card interchange to go into effect October 17, 2025. See the Visa Commercial Enhanced Data Program (CEDP) 2025/2026 transition guide for further details.

Level 2/3 fields


The following fields can be provided in the payin config request.
Note: Only some fields are required for Level 2 qualification.

Field Name

Description

Type

Visa / Mastercard Differences

Level 2

Level 3

tax_amount

The sales tax included in the total payment amount associated with the item(s) being purchased, in minor units.

Should be the sum of sales tax within the line items.

For example, 1000 is 10.00 USD.

Integer

Visa: should be 0 if tax exempt

Mastercard: sum of line item taxes

shipping_amount

The freight or shipping amount included in the total payment amount, in minor units.

For example, 1000 is 10.00 USD.

Integer

$0 allowed if no shipping for both

order_number

The purchase order number.

Cannot be static.

String

Required for both; must be unique.

shipping_country

The 2-digit country code for the delivery address of the item(s) being purchased.

Find country codes here: https://www.iso.org/obp

String

Visa: Only required if shipping present

Mastercard: Required

shipping_postal_code

Postal code or ZIP code for the delivery address of the item(s) being purchased. This field can be identical to the shipping_from_postal_code if the customer is present and takes immediate possession of the item(s).

String

Visa: Only required if shipping present

Mastercard: Required

shipping_from_postal_code

Postal code or ZIP code of the address the item(s) being purchased are shipped from.

String

Visa: Only required if shipping present

Mastercard: Required

commodity_code

The commodity code of the item(s) being purchased. 1st 4 digits of family code.

Full list of options can be found here.

String

Required for Level 3 on both

line_items (array)

The details on the item(s) being purchased.

Array

Line Item Fields

Note: All fields are required for Level 3 qualification.

Field Name

Description

Type

Visa / Mastercard Differences

product_code

The merchant defined product code of the item being purchased.

Cannot be static.

String

Visa: ≤12 chars

Mastercard: ≤12 chars

commodity_code

The commodity code of the item being purchased. 4-12 digit commodity code recommended.

Full list of options can be found here .

String

Required for Level 3 on both

description

The description of the item being purchased.

Cannot be static.

String

Required for Level 3 on both

unit_amount

The amount of the item being purchased, in minor units.

For example, 1000 is 10.00 USD.

Integer

Required for Level 3 on both

quantity

The quantity of the item.

String

Required for Level 3 on both

tax_amount

The sales tax on the item being purchased, in minor units.

If tax exempt, tax amount should be set to 0.

For example, 1000 is 10.00 USD.

Integer

Required for Level 3 on both

tax_rate

The tax rate, in per cent mille.

If tax exempt, tax rate should be set to 0.

For example, 1000 is 1%.

Integer

Required for Level 3 on both

📘

Additional fees not associated with taxes or shipping

For any additional fees not associated with taxes or shipping, please account for this amount by adding an additional line item to the payload.

See Level 2/3 API specs for additional details.


Example


Payment: $1,030.00 total, 4 line items, Georgia sales tax of 4%, shipping $12.00, and other fees $30.00

ItemUnit PriceQuantitySubtotalTax (4%)Line Item Total
Couch$2002$400$16$416
Office Chair$2501$250$10$260
Sofa$3001$300$12$312
Other Fees$301$30$0$30

Arithmetic validation

Subtotal: $400 + $250 + $300 = $950

Tax: $16 + $10 + $12 = $38

Shipping: $12

Convenience Fee: $30

Total: $950 + $38 + $12 + $30 = $1030

Example payload

{
    "tax_amount": 3800,
    "shipping_amount": 1200,
    "order_number": "INV-20250527-001",
    "shipping_country": "US",
    "shipping_postal_code": "30303",
    "shipping_from_postal_code": "30303",
    "commodity_code": "3374",
    "line_items": [
    {
        "product_code": "COUCH001",
        "commodity_code": "33712",
        "description": "Couch",
        "unit_amount": 20000,
        "quantity": 2,
        "tax_amount": 1600,
        "tax_rate": 4000
    },
    {
        "product_code": "CHAIR001",
        "commodity_code": "33721",
        "description": "Office Chair",
        "unit_amount": 25000,
        "quantity": 1,
        "tax_amount": 1000,
        "tax_rate": 4000
    },
    {
        "product_code": "SOFA001",
        "commodity_code": "33712",
        "description": "Sofa",
        "unit_amount": 30000,
        "quantity": 1,
        "tax_amount": 1200,
        "tax_rate": 4000
    },
    {
        "product_code": "FEES001",
        "commodity_code": "33712",
        "description": "Other Fees",
        "unit_amount": 3000,
        "quantity": 1,
        "tax_amount": 0,
        "tax_rate": 0
    }
  ]
}