Level 2 and 3 Optimized Payments

Level 2 and 3 optimized payments capture and transmit additional data for eligible cards to achieve lower processing fees.

What are Level 2 and Level 3 optimized payments?

Level 2 and Level 3 payments capture and transmit additional data to card brands and issuing banks for business-to-business (B2B) and business-to-government (B2G) credit card transactions. Providing this extra information to the card networks (like Visa and Mastercard) allows you to qualify for lower interchange rates. This applies to eligible payments that you process through the Helcim system.

  • Level 2 processing includes all the basic data of a standard transaction (Level 1) plus additional fields such as sales tax amount, customer code, and merchant postal code.
  • Level 3 processing includes all Level 1 and Level 2 data, along with detailed line-item information such as product codes, item descriptions, quantities, and freight/shipping amounts. This is the highest level of data processing and qualifies for the lowest interchange rates.

The goal of providing this data is to reduce the perceived risk of the transaction. When a credit card network has more information about a B2B or B2G transaction, they view it as less likely to be fraudulent, resulting in reduced fees for the transaction.

How does Helcim optimize payments?

Helcim's system is designed to automatically gather and submit the necessary Level 2 and Level 3 data to card networks whenever possible. When you process a transaction on a card eligible for L2 / L3 rates, we’ll optimize the data using a range of available sources. For example, we'll use data that you have provided during your registration to automatically fill in the merchant tax ID and postal code.

By automating this process, Helcim aims to save you time and resources otherwise spent manually gathering this information when processing these transactions. The system automatically identifies transactions from eligible corporate, purchasing, or government cards and sends the required data to qualify them for lower interchange rates.

📘

Helcim's fee for this service is a percentage of the savings generated by the lower interchange rates, which will show on your monthly merchant statement.

What APIs can be used to pass the required data?

Helcim supports sending enhanced data via existing endpoints, such as the Purchase and Capture endpoints in the Payment API, the Invoice API, and HelcimPay.js.

Helcim will always fill certain information like the merchant tax ID and postal code based on information that you provided during registration. We will also automatically create and pass the invoice number and customer code for a payment if you do not provide one in the request.

Outside of that, the specific tax and line-item data required to qualify for optimized rates generally includes the following:

Level 2 data requirementsLevel 3 data requirements
Invoice numberInvoice number
Customer codeCustomer code
Merchant tax IDMerchant tax ID
Merchant postal codeMerchant postal code
Sales tax amountSales tax amount
Line item sku
Line item description
Line item quantity and unit price
Invoice shipping details (if applicable)

Payment API

The Payment API is at the core of processing a credit card transaction. To achieve Level 2 or 3 optimization, a developer would use this API to submit not just the cardData and transaction amount, but also the required additional data fields.

For Level 2 and Level 3 optimization, the request body should include an invoice object that contains parameters for the tax amount and an array of lineItem objects. Each line item object should include its own set of parameters such as sku, description, quantity, and price.

// Example Payment API request body containing valid tax and line item detail that corresponds to the transaction amount
{
  "invoice": {
    "tax": {
      "amount": 5,
      "details": "GST 5%"
    },
    "lineItems": [
      {
        "description": "Red Hat",
        "quantity": 1,
        "price": 95,
        "sku": "ITM1434"
      }
    ]
  },
  "ipAddress": "192.168.1.1",
  "currency": "CAD",
  "amount": 100
}

Invoice API

The Invoice API is a powerful tool for generating invoices that can be used to capture and pass Level 2 and 3 data during processing. By creating a detailed invoice through the Invoice API, a developer can associate a transaction with that detailed invoice to qualify for lower rates when the customer pays.

For Level 2 and 3 optimization, the invoice object should contain an array of lineItem objects, with each line item containing a sku, description, quantity, and price. The invoice should also contain a tax amount. By using this API, the system automatically collects and stores this information, which is then submitted with the payment transaction for optimization.

// Example Invoice API request body containing valid tax and line item detail
{
  "currency": "CAD",
  "lineItems": [
    {
      "description": "Red Hat",
      "quantity": 1,
      "price": 95,
      "sku": "ITM1434"
    }
  ],
  "customerId": 0,
  "tax": {
    "amount": 5,
    "details": "GST 5%"
  },
  "type": "INVOICE",
  "status": "DUE"
}

HelcimPay.js

HelcimPay.js is a front-end library used to process secure payments. When initializing a checkout session, a developer would pass an initialization request that contains an invoiceRequest object and a payment amount.

To achieve Level 2 and 3 optimization, this invoiceRequest object should include tax and an array of lineItem object detail to be created during processing (or an invoiceNumber for an invoice created previously). Each line-item should contain a sku, description, quantity, and price.

// Example HelcimPay initialize request body containing valid invoiceRequest with tax and line item detail
{
  "invoiceRequest": {
    "tax": {
      "amount": 5,
      "details": "GST"
    },
    "lineItems": [
      {
        "sku": "IT1425",
        "description": "Red Hat",
        "quantity": 1,
        "price": 95,
        "total": 95
      }
    ]
  },
  "paymentType": "purchase",
  "amount": 100,
  "currency": "CAD"
}