Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Level I

Basic transaction data like card number, expiration date, CVV and transaction amount that is required for standard business-to-consumer (B2C) transactions and provides standard interchange rates.

Level II

More detailed transaction data, like a sales tax and order number, is required for B2B transactions and provides can provide lower interchange rates.

Level III

Comprehensive transaction information data like line item details and shipping , is required for high-value (large ticket) B2B transactions and provides can qualify for the lowest interchange rates.

Major card brands Visa & MasterCard each have specific requirements that merchants must adhere to to offer them the best interchange rates. American Express and Discover do not accept direct Level II or Level III data submissions for lower interchange rates at this time.

Info

Referrers and Merchants can receive up to 40-100 basis points of reduced fees on their qualifying business and commercial card transactions.

Tip

Tip: While not a requirement, it is recommended to submit the previous level of interchange data when submitting the following level.

Example: When submitting Level III data, all Level I and Level II data requirements are already met to ensure the most visibility for Level III interchange rates.

...

Customer Zip Code

The billing zip code on file with the customer’s credit card company.

Customer Billing Address

The full billing address on file with the customer’s credit card company.

Credit Card Number

The 15 (AMEX) or 16-digit credit card number shown on the customer’s card.

Card Expiration Date

The 4-digit, MMYY-format expiration date shown on the customer’s card.

Card CVV

The 3 or 4-digit security code shown on the customer’s card.

...

The tax identification number issued to the Merchant by their governmental tax agency
Expand
titleVisa - Level II Data Requirements

Level II data must include all Level I data requirements in addition to the requirements listed below.

Sales Tax and Order Information - Sales tax information for each transaction including:

Customer Code

The unique identifier assigned to customers or entities within the Merchant’s records.

Merchant Zip Code

The zip code where the Merchant’s business is located.

Merchant TIN

Sales Tax Amount

The total amount of sales tax applied to the transaction.

Note

Warning: The tax amount must be between 0.1% - 22% of the payment total to qualify. This is submitted using either a Sale or a Capture transaction type.

Sales Tax Indicator

Specify whether sales tax is included in the transaction amount or not

.

Order Number

A unique identifier used by the merchant to locate the specific transaction information.

Note: “Order Number” and , “Invoice Number”, and “Customer Code” are interchangeable terms for Level II and Level III data submissions.

Merchant Information - Details about the Merchant selling the product or service items including:

Note

Warning: This field cannot be blank, null, or all zeros and must contain a relevant value.

Expand
titleVisa - Level III Data Requirements

Level III data must include all Level II data requirements in addition to the requirements listed below.

Order (Line) Item Details - Must provide detailed information for each item listed in a transaction including:

A detailed

Description

Item

Name or title of the item.

Description

A detailed description of the product or service sold.

Commodity Code

Standardized We recommend using the standardized numerical 7-digit NIGP commodity code used to classify products for customs.

Attached is a partial list of available 7-digit codes.

View file
namenigplist.pdf

Note

Warning: This field cannot be blank, null, or all zeros or spaces and must contain a relevant value.

Product Code

A unique identifier used by the Merchant business to identify the specific product.

Note

Warning: This field cannot be blank, null, or all zeros or spaces and must contain a relevant value.

Item Price

The price per item unit.

Item Discount

Monetary reductions applied to the product or service price for the line item.

Note: This value can be '0' if there is no applicable item discount.

Quantity

The number of units sold.

Unit of Measure

A standardized unit used to quantify the quantity of the product or service.

Info

Examples: each, kilogram, pound, month.

Item Total

Total transaction line item cost, calculated with quantity, unit price, discounts, tax, and shipping.

Discount, Shipping & Duty - Must provide shipping, duty, and tax information (if applicable) including:

In addition to the interchange data requirements above, the Visa card network has specific additional requirements to qualify:

The transaction must be compliant with the Visa Custom Payment

Shipping Amount

The cost associated with transporting products from Merchant to customer.

Note: This value can be '0' if there is no applicable shipping amount.

Duty Amount

The monetary value of customs duties or taxes related to product import and export.

Note: This value can be '0' if there is no applicable duty amount.

Order Discount

Monetary reductions applied to the transaction total.

Expand
titleVisa - Additional Qualification Requirements

Note: This value can be '0' if there is no applicable order discount.

Tax

Note: The tax amount can be zero (or the tax field can be omitted entirely). If the Merchant sends a tax amount greater than $0.00, it needs to be between 0.1% & 22% of the transaction amount.

Expand
titleVisa - Additional Qualification Requirements

In addition to the interchange data requirements above, the Visa card network has specific additional requirements to qualify:

  • The transaction must be compliant with the Visa Custom Payment Service (CPS).

  • A ‘capture’ request must follow the ‘authorization’ request:

    • Within 1 business day (no more than 24 hours between auth and capture) or;

    • Within 7 days (for eligible large ticket transactions using corporate/purchasing cards).

  • Transaction must be authorized online and cannot be a cardholder-activated terminal (CAT) location.The transaction must always include a non-zero tax amount

  • Business Card type transactions must always include an Address Verification System (AVS) reference.

Expand
titleVisa - Large Ticket Requirements
title

Large Ticket transactions refer to transactions with a larger total dollar amount.

Your interchange rate may change based on the transaction amount to offer better pricing from Visa’s large ticket program for high-dollar-value transactions.

In addition to the data requirements above, the Visa card network has specific additional requirements to qualify for Large Ticket interchange pricing:

  • Clearing must follow authorization within 2 business days (no more than 1 day between auth and capture)

Expand
  • The transaction amount must meet ticket thresholds: $6,980+

Expand
titleVisa - Prohibited Merchant Business Types (MCCs)
Note

Warning: Any of the following Merchant Commercial Code (MCC) types are disqualified from Level II or Level III data submission for interchange rate improvements.

Non-Compliant MCCs

Description of Merchant Business Type

3000–39993000–3299

Airlines/

3501-3999

Car Rental Companies/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 Arrangements Services (High Risk)

5966

Direct Marketing – Outbound Telemarketing Merchant (High Risk)

5967

Direct Marketing – Inbound Teleservices Merchant (High Risk)

7011

Lodging – Hotels, Motels, and Resorts

7512

Automobile Rental Agency

7513

Truck & Utility Trailer Rentals

7519

Motor Home and Recreational Vehicle Rentals

...

MasterCard

Read more information about MasterCard requirements below:

...

MasterCard
Expand
titleMasterCard - Level II Data Requirements
title

Level II data must include all Level I data requirements in addition to the requirements listed below.

Sales Tax Information - Sales tax information for each transaction including:

Sales Tax Amount

The total amount of sales tax applied to the transaction.

Note

Warning: The tax amount must be between 0.1% - 30% of the payment total to qualify. This is submitted using either a Sale or a Capture transaction type.

Sales Tax Indicator

Specify whether sales tax is included in the transaction amount or not

.

Order Number

A unique identifier used by the merchant to locate the specific transaction information.

Note: “Order Number” and , “Invoice Number”, and “Customer Code” are interchangeable terms for Level II and Level III data submissions.

Merchant Information - Details about the Merchant selling the product or service items including:

Customer Code

The unique identifier assigned to customers or entities within the Merchant’s records.

Merchant TIN

The tax identification number issued to the Merchant by their governmental tax agency.

Expand

Note

Warning: This field cannot be blank, null, or all zeros and must contain a relevant value.

Monetary reductions applied to the transaction total.

Expand
titleMasterCard - Level III Data Requirements

Level III data must include all Level II data requirements in addition to the requirements listed below.

Line Item Details - Must provide detailed information for each item listed in a transaction including:

Discount Amount

Discount Per Line Item

Monetary reductions applied to the product or service price for the line Name or title of the item.

Item Description

A detailed description of the product or service sold.

Note

Warning: This field cannot be blank, null, or all zeros or spaces and must contain a relevant value.

Line Item Total

Total transaction line item cost, calculated with quantity, unit price, discounts, tax, and shipping.

Product Code

A unique identifier used by the Merchant business to identify the specific product.

Quantity

The number
Note

Warning: This field cannot be blank, null, or all zeros or spaces and must contain a relevant value.

Quantity

The number of units sold.

Unit of Measure

A standardized unit used to quantify the quantity of the product or service.

Note: When submitting a Level III transaction, the tax amount must be a percent between 0.1% & 30% of the transaction; it cannot be zero unless tax exempt status is enabled by the Facilitator.

Note

Warning: The following card types are ineligible for Level III interchange with MasterCard:

  • MBS - Mastercard B2B Product 1

  • MEF - Mastercard Electronic Payment Account

...

Expand
titleMasterCard - Large Ticket Requirements

Large Ticket transactions refer to transactions with a larger total dollar amount. Your interchange rate may change based on the transaction amount to offer better pricing from MasterCard’s large ticket program for high-dollar-value transactions.

In addition to the data requirements above, the MasterCard network has specific additional requirements to qualify for Large Ticket interchange pricing:

  • Clearing must follow authorization within 2 business days (no more than 1 day between auth and capture).

  • The transaction amount must meet ticket thresholds: $7,255+

Note

Warning: The following card types are ineligible for MasterCard’s large ticket program:

  • MAP - Mastercard Commercial Payments Account

  • MAQ - Mastercard Prepaid Commercial Payments Account

  • MEF - Mastercard Electronic Payment Account

Marinas, Marine Service and Supplies
Expand
titleMasterCard - Prohibited Merchant Business Types (MCCs)
Note

Warning: Any of the following Merchant Commercial Code (MCC) types are disqualified from Level II or Level III data submission for interchange rate improvements.

MasterCard Non-Compliant MCCs List:

Non-Compliant MCCs

Description of Merchant Business Type

3000–3999

3000–3299

Airlines

/

3501-3999

Car Rental Companies/Hotels

4112

Passenger Railways

4411

Steamship and Cruise Lines

4468

4511

Airlines and Air Carriers

4722

Travel Agencies and Tour Operators

5499

Misc Food Stores - Speciality Markets and Convenience

5541

Gas/Service Stations with/without Ancillary Services

5542

Automated Fuel Dispensers

5812

5812

Eating Places and Restaurants

5814

Fast Food Restaurants

5962

Direct Marketing – Travel Related Arrangements Services (High Risk)

5966

Direct Marketing – Outbound Telemarketing Merchant (High Risk)

5967

Direct Marketing – Inbound Teleservices Merchant (High Risk)

5983

Fuel Dealers - Fuel, Oil, Wood, Coal, Lique

7011

Lodging – Hotels, Motels, and Resorts

7512

Automobile Rental Agency

7513

Truck & Utility Trailer Rentals

7519

Motor Home and Recreational Vehicle Rentals

...

American Express & Discover

...

Expand
titleSubmit Level II data using the Payrix API.

To submit Level II transaction data using the /txns Payrix API endpoint, send the following request:

Code Block
POST https://test-api.payrix.com/txns
Code Block
languagejson
{
   "merchant":"{yourMerchantID}",
   "payment":{
      "number":"{customerCardNumber}",
      "cvv":"{customerCardCVV}"
   }
   "expiration":"MMYY",
   "type":2,
   "order":"INVOICE#1",
   "total":7799,
   "tax":100,
}
Note

Warning: Tax rate must be set according to status and regulation:

  • If you are a tax-exempt entity, you may enter 0 in the tax field. See the steps below to enable tax-exempt status.

  • If you are not a tax-exempt entity, you must adhere to Visa, Mastercard, and local government sales tax rates and regulations to receive lower Level II interchange rates.

Required Parameters

Type

Description

Valid Values / Format

merchant

string

The identifier of the Merchant associated with this Transaction.

payment

object

The payment method associated with this Transaction, including the card details.

number

number

For credit payment method, the card number of the credit card associated with this Transaction.
For the eCheck payment method, the bank account number is associated with this Transaction.

cvv

integer

The Card Verification Value (CVV) number of the credit card associated with this Transaction.

This field is expressed as a 3-digit integer.

expiration

number

The expiration date of the credit card associated with this Transaction.

This field is stored as a text string in 'MMYY' format, where 'MM' is the number of a month and 'YY' is the last two digits of a year. For example, '0623' for June 2023.

type

integer

The type of Transaction.

1 - Credit Card Only: Sale Transaction. Processes a sale and charges the customer.

2 - Credit Card Only: Auth Transaction. Authorizes and holds the requested total on the credit card.

3 - Credit Card Only: Capture Transaction. Finalizes a prior Auth Transaction and charges the customer.

4 - Credit Card Only: Reverse Authorization. Reverses a prior Auth or Sale Transaction and releases the credit hold.

5 - Credit Card Only: Refund Transaction. Refunds a prior Capture or Sale Transaction (total may be specified for a partial refund).

7 - eCheck Only: eCheck Sale Transaction. Sale Transaction for eCheck payment.

8 - eCheck Only: eCheck Refund Transaction. Refund Transaction for prior eCheck Sale Transaction.

11 - eCheck Only: eCheck Redeposit Transaction. Attempt to redeposit a prior failed eCheck Sale Transaction.

12 - eCheck Only: eCheck Account Verification Transaction. Attempt to verify eCheck payment details.

total

number

The total amount of this Transaction.

This field is specified as an integer in cents.

tax

integer

The total sum of this Transaction’s tax amount.

This field is specified as an integer in cents.

...

Expand
titleSubmit Level III data using the Payrix API.

To submit Level III transaction data using the /txns Payrix API endpoint, send the following request:

Code Block
POST https://test-api.payrix.com/txns
Code Block
languagejson
{
   "merchant":"{yourMerchantID}",
   "payment":{
      "number":"{customerCardNumber}",
      "cvv":"{customerCardCVV}"
   }
   "expiration":"MMYY",
   "type":2,
   "order":"INVOICE#1",
   "total":7799,
   "tax":100,
   "items":[
      {
         "item":"Line Item #1",
         "description":"Line Item Description"
         "quantity":1,
         "price":7799,
         "um":"EACH",
         "commodityCode":"1111999",
         "total":5799,
         "discount":-2000,
         "productCode":"UPC12345"
      },
   ]
}

Note: Descriptions for Level II data shown here are available in the Submit Level II data using the Payrix API section above.

Required Parameters

Type

Description

Valid Values / Format

items

array of objects

The item or list of items associated with the transaction/order.

item

string

The line item name.

description

string

The line item description.

Max length: 500 characters

quantity

integer

The total number of units for the line item.

price

number

The individual line item price.

um

string

The line item units of measure.

Example: “pounds”, “days”, “hours”.

Max length: 100 characters

commodityCode

string

The commodity code for this Item.

Max length:12 characters

total

integer

The total price for the line item.

This field is specified as an integer in cents

discount

integer

The discount for the line item.

This field is specified as an integer in cents.

productCode

string

The product code for this Item such as UPC, catalog number, or inventory number.

...

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script type="text/javascript" src="https://test-api.payrix.com/payFieldsScript"></script> <title>PayFields Test</title> </head> <body> <input type="button" id="submit" value="Pay"></input>

Step 4: Add each new applicable field to your HTML file using the following <div> format:

Expand
titleSubmit Level II data using PayFields.

Step 1: Under your <script> tag containing PayFields.fields add the following to add new Tax and Order fields to the PayFields

Code Block
<script>
  PayFields.fields = [
    {type: "number", element: "#number"},
    {type: "cvv", element: "#cvv"},
    {type: "name", element: "#name"},
    {type: "address", element: "#address"},
    {type: "expiration", element: "#expiration"}
    {type: "tax", element: "#tax"}
    {type: "order", element: "#order"}
  ];
</script>

Step 2: Under a new <script> tag, add the API Key, Merchant ID, and Transaction Amount:

Code Block
languagehtml
<script>
  PayFields.config.apiKey = "ab123c4def5g6hijkl7890m12345no6p";
  PayFields.config.merchant = "t1_mer_123ab4c567defg8h90123i45";
  PayFields.config.amount = {Transaction Amount};
  <!---- continued by Step 3 ----> 

Step 343: Under the same <script> tag as Step 2, add the Order Field, Tax Field, and Billing Address:

Code Block
languagejs
<!---- preceeded by Step 2 ---->
  PayFields.config.order = {order number};
  PayFields.config.tax = {tax number};
  PayFields.config.billingAddress = {
    address: '123 Madison Street',
    city: 'New York',
    state: 'NY',
    zip: '12345',
    email: '',
    phone: '5555555555',
    address2: 'Suite 555',
    company: 'Essential Co',
    country: 'USA'
  };
  PayFields.config.invoiceResult = {Invoice Object}
</script>

Result: Example HTML File

Code Block
languagehtml
Code Block
<div>     
  <label for="tax">Tax:</label>     
    <!-- Div for Buttontax neededfield foriframe PayFrame -->   <script>  
  PayFields.button = {element:<div id="#submittax", value: "Pay"};
</script>
<script>class="form-row">     PayFields.fields
= [   </div>  {type: "number", element: "#number"},
    {type: "cvv", element: "#cvv"},
    {type: "name", element: "#name"},
    {type: "address", element: "#address"},
    {type: "expiration", element: "#expiration"},
    {type: "tax", element: "#tax"},
    {type: "order
</div>

Result: Example HTML File

Code Block
languagehtml
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <script type="text/javascript" src="https://test-api.payrix.com/payFieldsScript"></script>
  <title>PayFields Test</title>
</head>
<body>
<input type="button" id="submit" value="Pay"></input>
  <!-- Button needed for PayFrame -->
<script>
    PayFields.button = {element: "#submit", value: "Pay"};
</script>
<script>
  PayFields.fields = [
    {type: "number", element: "#order#number"},
  ]; </script>
<script>
  PayFields.config.apiKey = "ab123c4def5g6hijkl7890m12345no6p";
  PayFields.config.merchant = "t1_mer_123ab4c567defg8h90123i45";
  PayFields.config.amount = 500;
  PayFields.config.order = {orderNumber};
  PayFields.config.tax = {taxNumber};
  PayFields.config.billingAddress = {
    address: '123 Madison Street' {type: "cvv", element: "#cvv"},
    {type: "name", element: "#name"},
    {type: "address", element: "#address"},
    {type: "expiration", element: "#expiration"},
    {type: "tax", element: "#tax"},
    city{type: 'New York'"order",     stateelement: 'NY'"#order"},
  ];
</script>
zip: '12345',<script>
  PayFields.config.apiKey =  email: '',
    phone: '5555555555',
    address2: 'Suite 555',"ab123c4def5g6hijkl7890m12345no6p";
  PayFields.config.merchant = "t1_mer_123ab4c567defg8h90123i45";
  PayFields.config.amount = 500;
  PayFields.config.order = {orderNumber};
  PayFields.config.tax = {taxNumber};
  PayFields.config.billingAddress = {
    companyaddress: 'Essential123 Madison CoStreet',
    countrycity: 'USANew York',
    state: 'NY',
    zip: '12345',
    email: '',
    phone: '5555555555',
    address2: 'Suite 555',
    company: 'Essential Co',
    country: 'USA'
  };
  PayFields.config.invoiceResult = {invoiceObject}
</script>
</body>
</html>
Expand
titleSubmit Level III data using PayFields.

Step 1: Complete Steps 1-3 above.

Step 2: Under your <script> tag containing PayFields.fields add the following to include Discount, Shipping, Duty, and Item [details] Objects fields in your PayField:

Code Block
languagehtml
<script>
  PayFields.fields = [
    {type: "discount", element: "#discount"},
    {type: "shipping", element: "#shipping"},
    {type: "duty", element: "#duty"},
    {type: "items", element: "#items"}    
  ];
</script>

Step 3: Under your <script> tag containing PayFields.config add the following:

Code Block
<script>
  PayFields.config.discount = {discount number};
  PayFields.config.shipping = {shipping number};
  PayFields.config.duty = {duty number};
  PayFields.config.items = {items Object}
</script>}    
  ];
</script>

Step 3: Under your <script> tag containing PayFields.config add the following:

Code Block
<script>
  PayFields.config.discount = {discount number};
  PayFields.config.shipping = {shipping number};
  PayFields.config.duty = {duty number};
  PayFields.config.items = {items Object}
</script>

Step 4: Add each new applicable field to your HTML file using the following <div> format:

Code Block
<div>     
  <label for="tax">Tax:</label>     
    <!-- Div for tax field iframe  -->     
    <div id="tax" class="form-row">     
    </div>   
</div>

Result: Example HTML File

Code Block
languagehtml
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <script type="text/javascript" src="https://test-api.payrix.com/payFieldsScript"></script>
  <title>PayFields Test</title>
</head>
<body>
<input type="button" id="submit" value="Pay"></input>
  <!-- Button needed for PayFrame -->
<script>
    PayFields.button = {element: "#submit", value: "Pay"};
</script>
<script>
  PayFields.fields = [
    {type: "number", element: "#number"},
    {type: "cvv", element: "#cvv"},
    {type: "name", element: "#name"},
    {type: "address", element: "#address"},
    {type: "expiration", element: "#expiration"},
    {type: "tax", element: "#tax"},
    {type: "order", element: "#order"},
    {type: "discount", element: "#discount"},
    {type: "shipping", element: "#shipping"},
    {type: "duty", element: "#duty"},
    {type: "items", element: "#items"}
  ];
</script>
<script>
  PayFields.config.apiKey = "ab123c4def5g6hijkl7890m12345no6p";
  PayFields.config.merchant = "t1_mer_123ab4c567defg8h90123i45";
  PayFields.config.amount = 500;
  PayFields.config.order = {orderNumber};
  PayFields.config.tax = {taxRatePercent};
  PayFields.config.dicountdiscount = {discountNumber};
  PayFields.config.shipping = {shippingNumber};
  PayFields.config.duty = {duty number};
  PayFields.config.items = {items Object};
  PayFields.config.billingAddress = {
    address: '123 Madison Street',
    city: 'New York',
    state: 'NY',
    zip: '12345',
    email: '',
    phone: '5555555555',
    address2: 'Suite 555',
    company: 'Essential Co',
    country: 'USA'
  };
  PayFields.config.invoiceResult = {invoiceObject}
</script>
</body>
</html>

...