Level 2 and Level 3 data

Overview

Hyperswitch allows merchants to include Level 2 and Level 3 enhanced data in payment requests to optimize interchange costs on eligible commercial card transactions. This is done using a set of unified fields in the payment_create API, which are internally routed and transformed per connector.

  • Level 2: Adds tax, invoice, and reference-level data

  • Level 3: Adds full line-item details (e.g., item quantity, commodity code, shipping, duty)

Visa and Mastercard support Level 2 and 3 processing. American Express supports Level 2 only

Availability

  • Regions: Most connectors currently support U.S. domestic processing only for Level 2 and Level 3 data

  • Support for level 2/level 3 varies by connector and is not guaranteed

Unified L2/L3 Fields

Hyperswitch exposes a set of generic fields in the payment_create API that can be directly used to pass Level 2 and Level 3 data. These fields cover the most common requirements across card networks and connectors, so merchants can send enhanced transaction data without worrying about connector-specific differences.

The fields are organized into two groups:

1. Top-Level Fields (apply to the entire order/payment)

These fields represent order-wide attributes that are required by most connectors:

  • order_date — when the order was placed

  • customer_reference — unique reference, PO number, or invoice number

  • order_tax_amount — total sales tax for the order

  • shipping_cost — freight/shipping charges

  • duty_amount — duty or customs charges

  • discount_amount — any discount applied at the order level

  • tax_status — whether the order is taxable or exempt

2. Nested Fields (grouped by domain for clarity)

Some data is structured to align with domain-specific groupings, making it easier to map downstream:

  • Shipping

    • shipping.* (general attributes)

    • shipping.address.* (e.g., line1, postal_code, country)

    • shipping.phone.*

    • shipping.email

  • Customer

    • customer.* (general attributes)

    • customer.address.*

    • customer.phone.*

    • customer.email

  • Order Details (Line Items) Each item can include:

    • order_details[].product_name

    • order_details[].commodity_code

    • order_details[].quantity

    • order_details[].unit_of_measure

    • order_details[].unit_price

    • order_details[].item_tax_amount

    • order_details[].item_discount_amount

Supported Connectors

Our unified (generic) L2/L3 fields in payment_create cover the majority of requirements across connectors

If your connector requires fields that aren’t in our unified list, we’ll evaluate and add the minimal set needed

Last updated

Was this helpful?