Enhanced Commercial Data (L2/L3)

Enhanced commercial data (L2/L3 data) allows Lithic clients to get a deeper view of end-user purchasing behavior, enabling better support for corporate expense programs, fleet cards, and more.

Level 2 (L2) data includes general purchase data which typically describes the transaction as a whole, for example total tax amount or fuel type for a fuel-only fleet transaction. Level 3 (L3) data includes more granular information which describes individual elements within a transaction. Users can think of L3 data as a digital receipt containing item descriptions, item quantities, and product codes.

Typically merchants only include L2/L3 data for transactions on commercial BINs. They provide this data in an attempt to qualify for cheaper interchange rates. In return for less interchange, issuers get better reconciliation and visibility into program spend.

Types of Enhanced Commercial Data

L2 Tax Data

L2 commercial data enhances transaction details by providing more descriptive information, including tax details, which are essential for businesses to streamline their accounting and tax reporting processes. When a cardholder uses a card which supports L2 data, transactions capture additional information such as sales tax amount, customer code, purchase order number, and tax identification number. This detailed data helps businesses comply with tax regulations, simplify tax preparation, and improve financial transparency.

Industry-Specific Data

Enhanced commercial data can provide more granular transaction information tailored to specific industries, including fleet, lodging, vehicle rental, passenger transport, and shipping. This enhanced data helps businesses manage expenses more efficiently, comply with industry regulations, and improve operational transparency.

For the fleet industry, L2 data includes fuel type, plus the vehicle number, driver number, and odometer reading that the cardholder enters at the terminal, enabling precise tracking of fuel expenses and vehicle usage. In lodging, enhanced commercial data covers room rates, number of nights, check-in/check-out dates, and folio numbers, facilitating accurate expense management and compliance with travel policies.

Vehicle rental transactions benefit from enhanced commercial data by capturing rental duration, vehicle type, and additional charges, while passenger transport data includes passenger details, travel dates, and route information. Shipping industry transactions gain from enhanced commercial data with shipment details, weight, and delivery dates, improving cost allocation and operational efficiency.

L3 Line-item Data

L3 commercial data provides the highest level of transaction detail, including line-item information that is essential for comprehensive expense management. This data is particularly beneficial for industries that require detailed purchase breakdowns, such as government, manufacturing, and retail.

L3 data includes specific details about each item in a transaction, such as item description, product code, quantity, unit price, and total price. This granularity allows businesses to track spending at the item level, facilitating accurate cost allocation and inventory management. For example, in manufacturing, L3 data helps track the purchase of raw materials and components, ensuring precise cost control and efficient production planning.

In government and retail sectors, L3 line-item data aids in compliance with stringent reporting requirements and internal audit processes. Detailed transaction information supports better procurement practices, fraud detection, and improved vendor management. Additionally, it enhances the accuracy of financial reporting and budgeting by providing a clear view of all purchased items.

Data Availability

Lithic receives enhanced commercial data from Mastercard clearing records. The data becomes available after the transaction clears. For cards in a fleet program, driver and vehicle numbers are also available at authorization in the fleet_info object of Auth Stream Access (ASA) requests.

The API returns common data (tax details, reference numbers, and line items) and fleet data. A transaction can have more than one clearing event. Each clearing event that carries enhanced data has its own record.

Enhanced commercial data is not available in sandbox.

Webhooks

Subscribe to these events to receive enhanced commercial data when Lithic processes it. Each payload is the same object that the Get Enhanced Commercial Data endpoint returns.

Event typeDescription
card_transaction.enhanced_data.createdOccurs when L2/L3 enhanced commercial data is processed for a transaction event
card_transaction.enhanced_data.updatedOccurs when L2/L3 enhanced commercial data is reprocessed for a transaction event

For the full list of events, see Types of Events.

Get Enhanced Data for a Specific Transaction

API Reference: List Enhanced Commercial Data

This endpoint returns one record for each clearing event on the transaction that carries enhanced data. If no enhanced data exists for the transaction, it returns 404.

GET https://api.lithic.com/v1/transactions/{transaction_token}/enhanced_commercial_data

Sample Request

curl https://api.lithic.com/v1/transactions/764fa5a3-2371-40f0-8cbb-9a2e1230d955/enhanced_commercial_data \
  -H "Authorization: YOUR_API_KEY"

Sample Response

{
  "data": [
    {
      "token": "fda41769-2a3f-5532-898f-0d2034f2da85",
      "transaction_token": "6b79924e-0f01-4bdf-9485-9f6da44b6be2",
      "event_token": "49bbd49c-dfe1-56db-86ad-98c7c2bd75e4",
      "common": {
        "customer_reference_number": null,
        "merchant_reference_number": null,
        "order_date": null,
        "line_items": [
          {
            "product_code": "400",
            "description": "CAR WASH",
            "quantity": "1",
            "amount": "8.00",
            "unit_amount": "8.00",
            "total_amount": "8.00"
          }
        ],
        "tax": {
          "merchant_tax_id": "521236050",
          "amount": null,
          "exempt": null
        }
      },
      "fleet": [
        {
          "service_type": "SELF_SERVICE",
          "driver_number": null,
          "vehicle_number": "012345",
          "odometer": 12345,
          "amount_totals": {
            "gross_sale": 104,
            "discount": null,
            "net_sale": 104
          },
          "fuel": {
            "quantity": "0.24300",
            "type": "PREMIUM_SUPER",
            "unit_of_measure": "GALLONS",
            "unit_price": 4300
          }
        }
      ]
    }
  ]
}
transaction_token (required, path parameter)The token of the transaction that the enhanced data is associated with.
String. Permitted values: 36-character UUID (including hyphens).

Get Enhanced Data for a Specific Event

API Reference: Get Enhanced Commercial Data

This endpoint returns the single record for one transaction event. If no enhanced data exists for the event, it returns 404.

GET https://api.lithic.com/v1/transactions/events/{event_token}/enhanced_commercial_data

Sample Request

curl https://api.lithic.com/v1/transactions/events/49bbd49c-dfe1-56db-86ad-98c7c2bd75e4/enhanced_commercial_data \
  -H "Authorization: YOUR_API_KEY"

Sample Response

{
  "token": "fda41769-2a3f-5532-898f-0d2034f2da85",
  "transaction_token": "6b79924e-0f01-4bdf-9485-9f6da44b6be2",
  "event_token": "49bbd49c-dfe1-56db-86ad-98c7c2bd75e4",
  "common": {
    "customer_reference_number": null,
    "merchant_reference_number": null,
    "order_date": null,
    "line_items": [
      {
        "product_code": "400",
        "description": "CAR WASH",
        "quantity": "1",
        "amount": "8.00",
        "unit_amount": "8.00",
        "total_amount": "8.00"
      }
    ],
    "tax": {
      "merchant_tax_id": "521236050",
      "amount": null,
      "exempt": null
    }
  },
  "fleet": [
    {
      "service_type": "SELF_SERVICE",
      "driver_number": null,
      "vehicle_number": "012345",
      "odometer": 12345,
      "amount_totals": {
        "gross_sale": 104,
        "discount": null,
        "net_sale": 104
      },
      "fuel": {
        "quantity": "0.24300",
        "type": "PREMIUM_SUPER",
        "unit_of_measure": "GALLONS",
        "unit_price": 4300
      }
    }
  ]
}
event_token (required, path parameter)The token of the transaction event that the enhanced data is associated with.
String. Permitted values: 36-character UUID (including hyphens).

Enhanced Data Schema

FieldDescription
tokenUnique identifier for the enhanced commercial data record
transaction_tokenThe token of the transaction that the enhanced data is associated with
event_tokenThe token of the transaction event that the enhanced data is associated with
commonTax details, reference numbers, and line items. See Common Data Schema
fleetArray of fleet records. Empty when the clearing record carries no fleet data. See Fleet Schema

Common Data Schema

FieldDescription
customer_reference_numberA customer identifier. May be null
merchant_reference_numberA merchant identifier. May be null
order_dateThe date of the order, in YYYY-MM-DD format. May be null
tax- tax.amount: Integer. The amount of tax collected. May be null
- tax.exempt: Whether the transaction is tax exempt. One of TAX_INCLUDED, TAX_NOT_INCLUDED, or NOT_SUPPORTED. May be null
- tax.merchant_tax_id: The tax ID of the merchant. May be null
line_itemsArray of line items. Empty when the clearing record carries no line items. See Line Item Schema

Line Item Schema

{
    "product_code": String,
    "description": String,
    "quantity": String,
    "amount": String,
    "unit_amount": String,
    "total_amount": String
}
product_codeProduct code for the goods or services purchased.
descriptionDescription of the goods or services purchased.
quantityDecimal number in string format of units of the goods or services purchased.
amountDeprecated: use unit_amount instead. Same value as unit_amount, kept for backwards compatibility.
unit_amountDecimal number in string format of unit cost for the goods or services purchased, in merchant currency.
total_amountDecimal number in string format of total cost for the line item in merchant currency, covering all units purchased.

Fleet Schema

{
    "service_type": FuelServiceType,
    "vehicle_number": String,
    "driver_number": String,
    "odometer": Integer,
    "amount_totals": {
        "discount": Integer,
        "gross_sale": Integer,
        "net_sale": Integer
    },
    "fuel": {
        "quantity": String,
        "type": FuelType,
        "unit_of_measure": FuelUnitOfMeasure,
        "unit_price": Integer
    }
}
FieldDescription
amount_totalsFuel sale totals, in the smallest unit of the currency (for example, cents). Each value may be null.

- discount: Amount of discount applied to the gross sale amount
- gross_sale: Total fuel sale amount before discounts
- net_sale: Total fuel sale amount after discounts
driver_numberThe driver number entered at the terminal at the time of sale, with leading zeros removed. May be null
fuelInformation about the fuel product purchased by the cardholder. Each value may be null.

- fuel.quantity: Decimal number in string format of the quantity of fuel purchased, measured in fuel.unit_of_measure
- fuel.type: Type of fuel purchased. See Enumerations
- fuel.unit_of_measure: Unit of measure of the fuel purchased. See Enumerations
- fuel.unit_price: Price for a single unit of fuel, in thousandths of the currency unit. For example, 4300 is $4.300 per unit
odometerThe odometer reading entered at the terminal at the time of sale. May be null
service_typeType of fuel service, such as SELF_SERVICE. See Enumerations
vehicle_numberThe vehicle number entered at the terminal at the time of sale, with leading zeros removed. May be null

Enumerations

TypeValues
FuelTypeMore than 100 values, such as REGULAR, PREMIUM_SUPER, REGULAR_DIESEL_2, E_85, DIESEL_EXHAUST_FLUID, and EVC_2_LEVEL_2_CHARGE_240V_15_40_AMP. For the full list, see the API reference
FuelUnitOfMeasureGALLONS
LITERS
POUNDS
KILOGRAMS
IMPERIAL_GALLONS
NOT_APPLICABLE
UNKNOWN
FuelServiceTypeUNKNOWN
UNDEFINED
SELF_SERVICE
FULL_SERVICE
NON_FUEL_ONLY

Did this page help you?