enhancedData

The enhancedData element allows you to specify extra information concerning a transaction in order to qualify for certain purchasing interchange rates. The following tables provide information about required elements you must submit to achieve Level 2 or Level 3 Interchange rates for Visa and Mastercard. You also use various child elements to supply information required for the Guaranteed Payments service.

For Mastercard:

  • The transaction must be taxable.

  • The tax charged must be between 0.1% and 30% of the transaction amount, except as noted below.

  • For Level 3, the transaction must use a corporate or purchasing card.

  • For Level 3, you must include at least one line item with amount, description, and quantity defined.

You can qualify for Mastercard Level 2 rates without submitting the total tax amount (submit 0) if your MCC is one of the following: 4111, 4131, 4215, 4784, 5499, 8211, 8220, 8398, 8661, 9211, 9222, 9311, 9399, 9402. This also applies to Level 3, regardless of your MCC (i.e., submission of 0 allowed). Also, Mastercard no longer supports Level 3 rates for Business cards.

TABLE 4-1 Mastercard Level 2/Level 3 Data Requirements

Mastercard Level 2 Data

Mastercard Level 3 Data

cnpAPI Element (child of enhancedData unless noted)

Customer Code (if supplied by customer)

Customer Code (if supplied by customer)

customerReference

Card Acceptor Tax ID

Card Acceptor Tax ID

cardAcceptorTaxId (child of detailTax)

Total Tax Amount

Total Tax Amount

salesTax

 

Product Code

productCode (child of lineItemData)

 

Item Description

itemDescription (child of lineItemData)

 

Item Quantity

quantity (child of lineItemData)

 

Item Unit of Measure

unitOfMeasure (child of lineItemData)

 

Extended Item Amount

 

 

lineItemTotal (child of lineItemData)

or

lineItemTotalWithTax (child of lineItemData)

In addition to the requirements below, please be aware of the following:

For Visa:

  • The transaction must be taxable.

  • The tax charged must be between 0.1% and 22% of the transaction amount, except as noted.

  • For Level 3, the transaction must use a corporate or purchasing card.

Sales Tax is no longer required for Level 3. In this case omit the <salesTax > element entirely.

TABLE 4-2 Visa Level 2/Level 3 Data Requirements

Visa Level 2 Data

Visa Level 3 Data

cnpAPI Element (child of enhancedData unless noted)

Sales Tax

 

salesTax

 

Discount Amount

discountAmount

 

Freight/Shipping Amount

shippingAmount

 

Duty Amount

dutyAmount

 

Item Sequence Number

itemSequenceNumber (child of lineItemData)

 

Item Commodity Code

commodityCode (child of lineItemData)

 

Item Description

itemDescription (child of lineItemData)

 

Product Code

productCode (child of lineItemData)

 

Quantity

quantity (child of lineItemData)

 

Unit of Measure

unitOfMeasure (child of lineItemData)

 

unit Cost

unitCost (child of lineItemData)

 

Discount per Line Item

itemDiscountAmount (child of lineItemData)

 

Line Item Total

lineItemTotal (child of lineItemData)

 

For Discover transactions, the interchange rate is not impacted by the presence of Level 2 or Level 3 data.

Parent Elements:

authorization, BNPLAuthorizationRequest, capture, captureGivenAuth, credit, forceCapture, sale

Child Elements: (all Optional)

customerReference, salesTax, deliveryType, taxExempt, discountAmount, shippingAmount, dutyAmount, shipFromPostalCode, destinationPostalCode, destinationCountryCode, invoiceReferenceNumber, orderDate, detailTax, lineItemData, discountCode, discountPercent, fulfilmentMethodType,

Example: enhancedData Structure

<enhancedData>

  <customerReference>Customer Reference</customerReference>

  <salesTax>Amount of Sales Tax Included in Transaction</salesTax>

  <deliveryType>TBD</deliveryType>

  <taxExempt>true or false</taxExempt>

  <discountAmount>Discount Amount Applied to Order</discountAmount>

  <shippingAmount>Amount to Transport Order</shippingAmount>

  <dutyAmount>Duty on Total Purchase Amount</dutyAmount>

  <shipFromPostalCode>Ship From Postal Code</shipFromPostalCode>

  <destinationPostalCode>Ship To Postal Code</destinationPostalCode>

  <destinationCountryCode>Ship To ISO Country Code</destinationCountryCode>

  <invoiceReferenceNumber>Merchant Invoice Number</invoiceReferenceNumber>

  <orderDate>Date Order Placed</orderDate>

  <detailTax>

    <taxIncludedInTotal>true or false</taxIncludedInTotal>

    <taxAmount>Additional Tax Amount</taxAmount>

    <taxRate>Tax Rate of This Tax Amount</taxRate>

    <taxTypeIdentifier>Tax Type Enum</taxTypeIdentifier>

    <cardAcceptorTaxId>Tax ID of Card Acceptor</cardAcceptorTaxId>

  </detailTax>

  <lineItemData>

    <itemSequenceNumber>Line Item Number within Order</itemSequenceNumber>

    <itemDescription>Description of Item</itemDescription>

    <productCode>Product Code of Item</productCode>

    <quantity>Quantity of Item</quantity>

    <unitOfMeasure>Unit of Measurement Code</unitOfMeasure>

    <taxAmount>Sales Tax or VAT of Item</taxAmount>

    <lineItemTotal>Total Amount of Line Item</lineItemTotal>

    <lineItemTotalWithTax>taxAmount + lineItemTotal</lineItemTotalWithTax>

    <itemDiscountAmount>Discount Amount</itemDiscountAmount>

    <commodityCode>Card Acceptor Commodity Code for Item</commodityCode>

    <unitCost>Price for One Unit of Item</unitCost>

    <detailTax>

     <taxIncludedInTotal>true or false</taxIncludedInTotal>

     <taxAmount>Additional Tax Amount</taxAmount>

     <taxRate>Tax Rate of This Tax Amount</taxRate>

     <taxTypeIdentifier>Tax Type Enum</taxTypeIdentifier>

     <cardAcceptorTaxId>Tax ID of Card Acceptor</cardAcceptorTaxId>

    </detailTax>

   <itemCategory>Category of Item</itemCategory>

   <itemSubCategory>Subcategory of Item</itemSubCategory>

   <productId>Product Identifier</productId>

   <productName>Name of Product</productName>

  </lineItemData>

  <discountCode>Code used for discount at checkout</discountCode>

  <discountPercent>Percent discount off original price in decimal</discountPercent>

  <fulfilmentMethodType>Method of delivery</fulfilmentMethodType>

</enhancedData>