# Corporate purchasing data (level 2 / level 3)

Submit additional order, tax, and line item data in your payment authorization and settlement requests where your customer is using a commercial or purchasing card.

details
summary
b
Benefits
| Benefit | Description |
|  --- | --- |
| **Reduced interchange fees** | If you are a US based merchant, you can qualify for lower interchange fees on transactions by providing additional order-specific data, such as tax reference, product code or sales tax amount. Card networks often offer lower rates for transactions with enhanced data, reducing processing costs. |
| **Enhanced fraud detection** | Detailed transaction data allows card networks to better authenticate purchases, reducing fraud and chargeback rates. |
| **Improved dispute management** | With comprehensive transaction details, card networks can better handle and resolve disputes. This reduces the time and effort you spend managing chargebacks and can lead to faster resolutions. |
| **Increased customer trust and satisfaction** | Providing enhanced data improves transaction transparency, giving customers more confidence in their purchases. It also leads to more accurate transaction records on your customer's statements, minimizing confusion or disputes. |
| **Compliance with industry standards** | Card networks increasingly require detailed transaction data to maintain compliance with industry standards and processing requirements. |


## Pre-requisites

To benefit from sending level 2 and level 3 data, the following must apply to your transaction:

#### Mastercard

* transaction must be taxable
* tax must be between 0.1% and 30% of the transaction amount
* for level 3 the transaction must use a corporate, business or purchasing card
* for level 3 at least one line item must be included


#### Visa

* transaction must be taxable
* tax must be between 0.1% and 22% of the transaction amount
* for level 3 the transaction must use a corporate or purchasing card


## Parameters

You can submit Level 2 and level 3 data within the following root-level objects in the following endpoints:

* `/cardPayments/customerInitiatedTransactions`
* `/cardPayments/merchantInitiatedTransactions`
* `/payments/settlements/full/{linkData}`
* `/payments/settlements/partials/{linkData}`



```json
{
  "type": "object",
  "title": "level",
  "properties": {
    "shipping": {
      "$ref": "#/components/schemas/shipping"
    },
    "merchant": {
      "type": "object",
      "properties": {
        "taxReference": {
          "$ref": "#/components/schemas/taxReference"
        }
      }
    },
    "order": {
      "$ref": "#/components/schemas/order"
    },
    "customer": {
      "type": "object",
      "description": "Additional customer data.",
      "properties": {
        "reference": {
          "type": "string",
          "description": "Merchant-generated customer reference."
        }
      }
    }
  },
  "components": {
    "schemas": {
      "shipping": {
        "type": "object",
        "description": "An object containing shipping details.",
        "properties": {
          "sender": {
            "type": "object",
            "properties": {
              "address": {
                "type": "object",
                "description": "An object containing sender's (shipped from) address.",
                "properties": {
                  "postalCode": {
                    "maxLength": 10,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string"
                  }
                }
              }
            }
          },
          "recipient": {
            "type": "object",
            "properties": {
              "address": {
                "type": "object",
                "description": "An object containing recipient's shipping address.",
                "properties": {
                  "countryCode": {
                    "maxLength": 2,
                    "minLength": 2,
                    "pattern": "^[A-Z]*$",
                    "type": "string"
                  },
                  "postalCode": {
                    "maxLength": 10,
                    "minLength": 1,
                    "pattern": "^[a-zA-Z0-9 ]*$",
                    "type": "string"
                  }
                }
              }
            }
          }
        }
      },
      "taxReference": {
        "maxLength": 20,
        "minLength": 1,
        "pattern": "^(?!\\s*$)[a-zA-Z0-9\\s-]*$",
        "type": "string",
        "description": "Merchant's tax reference."
      },
      "order": {
        "type": "object",
        "description": "An object containing details about the order.",
        "properties": {
          "taxExempt": {
            "type": "boolean",
            "description": "A flag to indicate whether the purchase is exempt from tax. Must be set to `true` if `order.salesTax` is 0."
          },
          "orderDate": {
            "type": "object",
            "description": "Date of the order.",
            "properties": {
              "day": {
                "type": "integer"
              },
              "month": {
                "type": "integer"
              },
              "year": {
                "type": "integer"
              }
            },
            "required": [
              "day",
              "month",
              "year"
            ]
          },
          "items": {
            "description": "Array of order items. You can send up to 99 individual order objects within this array.",
            "items": {
              "type": "object",
              "required": [
                "name"
              ],
              "properties": {
                "commodityCode": {
                  "maxLength": 12,
                  "minLength": 1,
                  "type": "string",
                  "description": "Commodity code as defined by the National Institute of Governmental Purchasing.",
                  "pattern": "^[A-Za-z0-9@!£*#$)(-+_=.,/;:'\"]{1,12}$",
                  "example": "ABC123@#"
                },
                "totalTaxAmount": {
                  "type": "integer",
                  "description": "Total tax amount for the item(s)."
                },
                "unitCost": {
                  "type": "integer",
                  "description": "The price of one unit of the item purchased."
                },
                "totalAmount": {
                  "type": "integer",
                  "description": "Total cost of the item(s) including tax."
                },
                "totalAmountNoTax": {
                  "type": "integer",
                  "description": "Total cost of the item(s) excluding tax."
                },
                "unitOfMeasure": {
                  "maxLength": 8,
                  "minLength": 1,
                  "type": "string",
                  "description": "The unit of measure of the purchased item. Explains how to interpret `items.quantity` field, e.g. quantity = 15, unitOfMeasure = kg.",
                  "pattern": "^[A-Za-z0-9@!£*#$)(+_=.,/;:'\"-]{1,8}$"
                },
                "name": {
                  "maxLength": 26,
                  "minLength": 1,
                  "type": "string",
                  "description": "Name of the item(s).",
                  "pattern": "^[A-Za-z0-9 @!£*#$)(+_=.,/;:'\"-]{1,26}$"
                },
                "quantity": {
                  "type": "integer",
                  "description": "Number of items purchased."
                },
                "productCode": {
                  "maxLength": 12,
                  "minLength": 1,
                  "type": "string",
                  "description": "Merchant defined product code.",
                  "pattern": "^[A-Za-z0-9@!£*#\\$)(+_=.,/;:'\"-]{1,12}$"
                },
                "totalDiscountAmount": {
                  "type": "integer",
                  "description": "Total discount amount for the item(s)."
                }
              }
            },
            "type": "array"
          },
          "dutyAmount": {
            "type": "integer",
            "description": "Total amount of duty costs for the order."
          },
          "salesTax": {
            "type": "integer",
            "description": "Total amount of sales tax for the order. Must be provided if `merchant.taxReference` is supplied."
          },
          "shippingAmount": {
            "type": "integer",
            "description": "Total amount of shipping costs for the order."
          },
          "invoiceReference": {
            "maxLength": 15,
            "minLength": 1,
            "type": "string",
            "description": "Invoice reference for the order.",
            "pattern": "^[A-Za-z0-9 @!£*#\\$)\\(+_=.,/;:'\"-]{1,15}$"
          },
          "discountAmount": {
            "type": "integer",
            "description": "Total amount of discounts for the order."
          }
        }
      }
    }
  }
}
```

### Level 2 data

To qualify for level 2, you must send at a minimum:

* `merchant.taxReference`
* `customer.reference`
* `order.salesTax` or `order.taxExempt` if `order.salesTax` is 0.


### Level 3 data

To qualify for level 3, you must send level 2 data and at a minimum:

* `order.discountAmount`
* `order.shippingAmount`
* `order.dutyAmount`
* `order.items`


## Code example


```json
{
    "merchant": {
        "taxReference": "VAT1999292",
    },
    "shipping": {
        "recipient": {
            "address": {
                "postalCode": "NW1 6XE",
                "countryCode": "GB"
            }
        },
        "sender": {
            "address": {
                "postalCode": "NW1 6XE"
            }
        }
    },
    "customer": {
        "reference": "CUST00000001"
    },
    "order": {
        "invoiceReference": "INV000123451",
        "salesTax": 3500,
        "discountAmount": 400,
        "shippingAmount": 150,
        "dutyAmount": 325,
        "orderDate": {
            "day": 1,
            "month": 3,
            "year": 2024
        },
        "taxExempt": false,
        "items": [
            {
                "productCode": "fff-1223",
                "commodityCode": "ABC123",
                "name": "Red Hat",
                "quantity": 4,
                "unitCost": 3500,
                "unitOfMeasure": "kg",
                "totalAmountNoTax": 2000,
                "totalTaxAmount": 2000,
                "totalAmount": 2000,
                "totalDiscountAmount": 2000
            }
        ]
    }
}
```