Skip to content

Level 2 / Level 3 Processing

Card payment processing has three levels: Level 1, Level 2, and Level 3. Level 2 and Level 3 processing allows eligible business-to-business (B2B) merchants to qualify for lower interchange rates by submitting additional purchase data alongside Visa and Mastercard transactions.

Level 2 / Level 3 Processing is available for:

Availability

  • Available for merchants located in the United States processing USD transactions.
  • Only available in Live environments. Not available in Sandbox.

Eligibility

Card networks that support Level 2 / Level 3 Processing

  • Mastercard: Supports Level 2 and Level 3 processing.
  • Visa: Supports Level 3 processing only.
NetworkLevel 2Level 3
Visa⚠️ Deprecated April 17, 2026Yes
MastercardYesYes

Eligible Merchant types

Only business-to-business (B2B) merchants and government entities qualify for lower interchange rates. The merchant must be enabled for Level 2 / Level 3 processing.

Corporate and purchase credit cards are eligible for Level 2 and Level 3 processing. Consumer cards are only eligible for Level 1 processing.

Ineligible Merchants

Some businesses are not eligible for Level 2 and Level 3 transaction processing. For details, see our list of ineligible Merchant Category Codes (MCC).

Data Quality

An eligible Merchant Category Code (MCC) alone does not guarantee interchange qualification. Card networks also evaluate the accuracy of submitted data. See Finix's Data Quality best practices for Level 2 / Level 3 processing.

Tax Exemption

Tax-exempt transactions are not eligible for Level 2. Tax-exempt transactions are eligible for Level 3 when you pass tax_exempt: true and omit sales_tax.

Minimum Field Requirements

The table below summarizes the minimum fields required to qualify for Level 2 and Level 3 interchange rates. The card network and cardholder issuing bank ultimately determine whether a transaction qualifies.

L2 or L3 Rates EligibilityLevel 2Level 3
Minimum Field Requirements
  • customer_reference_number
  • sales_tax
  • Everything in Level 2:
    • shipping_amount
    • customs_duty_amount
    • discount_amount
  • Plus item_data for each line item:
    • item_description
    • cost_per_unit
    • quantity
    • commodity_code
    • merchant_product_code
    • unit_of_measure
    • amount_excluding_sales_tax
    • amount_including_sales_tax
    • item_discount_amount

Level 2 fields

FieldAPI FieldRequiredDescription
Customer Reference Numbercustomer_reference_numberRequiredA unique reference ID for the order such as a purchase order (PO) number or invoice number. A purchase order number (PO number) is a unique code assigned to a specific order of goods or services. The buyer creates this number when they make a purchase order. It helps both the buyer and the seller track the order, match invoices, and keep accurate financial records. (max 17 characters)
Sales Taxsales_taxRequiredThe total tax amount for the transaction in cents. Must be greater than 0.1% of the transaction amount. For non-taxable transactions, set to 0 and set tax_exempt to true.

Level 3 fields

Everything in Level 2, plus:

FieldAPI FieldRequiredDescription
Shipping Amountshipping_amountRequiredThe costs related to shipping and handling in cents. Must be at least 0.
Customs Duty Amountcustoms_duty_amountRequiredThe costs related to import or export duties in cents. Must be at least 0.
Discount Amountdiscount_amountRequiredThe order-level discount amount in cents. Must be at least 0.
Tax Exempttax_exemptOptionalSet to true for tax-exempt purchases.

Plus item_data fields for each line item:

FieldAPI FieldRequiredDescription
Item Descriptionitem_descriptionRequiredA short, human-readable description of the line item (max 25 characters).
Cost per Itemcost_per_unitRequiredThe price per unit of the item purchased, in cents.
Item Discountitem_discount_amountRequiredThe discount amount in cents applied to this individual line item. For an order-level discount, use discount_amount.
QuantityquantityRequiredThe number of units purchased. Must be greater than 0.
Unit of Measureunit_of_measureRequiredThe unit of measure for the item (max 3 characters).
Commodity Codecommodity_codeRequiredA numeric code identifying the product or service (3, 5, 7, or 11 digits; max 12 characters).
Merchant Product Codemerchant_product_codeRequiredYour product/SKU code for the line item (max 12 characters).
Amount Excluding Sales Taxamount_excluding_sales_taxRequiredTotal cost of the line item excluding tax in cents (must be greater than 0).
Amount Including Sales Taxamount_including_sales_taxRequiredTotal cost of the line item including tax in cents (must be greater than 0).

Enable Level 2 / Level 3 Processing

Before a Merchant can process Level 2 or Level 3 transactions, send a PUT /merchants/{merchant_id} request to enable Level 2 / Level 3 processing.

Request

curl -i -X PUT \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  https://finix.sandbox-payments-api.com/merchants/MUwfZPNW3r4EqLMzwgr6txw4 \
  -H 'Content-Type: application/json' \
  -d '{
    "level_two_level_three_data_enabled": true
  }'

Response

A successful request returns a 200 OK status code and includes a Merchant resource with level_two_level_three_data_enabled: true.

Merchant - Level 2/3 Processing Enabled
{
  "id": "MUiV7ntxfY4eyJxp6E7cZvym",
  "created_at": "2026-04-03T22:05:19.34Z",
  "updated_at": "2026-09-25T20:05:19.51Z",
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "card_cvv_required": false,
  "card_expiration_date_required": true,
  "card_network_details": null,
  "convenience_charges_enabled": true,
  "country": "USA",
  "creating_transfer_from_report_enabled": false,
  "currencies": [
    "USD"
  ],
  "default_partial_authorization_enabled": false,
  "disbursements_ach_pull_enabled": true,
  "disbursements_ach_push_enabled": true,
  "disbursements_card_pull_enabled": true,
  "disbursements_card_push_enabled": true,
  "disbursements_same_day_ach_pull_enabled": false,
  "disbursements_same_day_ach_push_enabled": false,
  "fee_ready_to_settle_upon": "PROCESSOR_WINDOW",
  "first_approved_at": "2026-04-03T22:06:04.00Z",
  "gateway": null,
  "gross_settlement_enabled": false,
  "identity": "IDa4fdEuy57uLT95prqoBDxx",
  "instant_payouts_card_push_enabled": false,
  "is_terminated": false,
  "level_two_level_three_data_enabled": true, 
  "loan_repayment": null,
  "mcc": "4900",
  "merchant_name": "Finix Flowers",
  "merchant_profile": "MP6pzw61XykboCKVbMhCgYuk",
  "microdeposit_verification_required_buyer": false,
  "microdeposit_verification_required_sender": false,
  "mid": "FNXwXimxKRxzJ34EX4bAcv6q3",
  "onboarding_state": "APPROVED",
  "pending_refunds_strategy": "NONE",
  "processing_enabled": true,
  "processor": "DUMMY_V1",
  "processor_details": {
    "mid": "FNXwXimxKRxzJ34EX4bAcv6q3",
    "api_key": "secretValue"
  },
  "ready_to_settle_upon": "PROCESSOR_WINDOW",
  "ready_to_settle_upon_delay_alignment": "NONE",
  "refunds_disabled": false,
  "rent_surcharges_enabled": false,
  "settlement_enabled": true,
  "settlement_funding_identifier": "UNSET",
  "settlement_queue_mode": "MANUAL",
  "surcharges_enabled": false,
  "tags": {
    "key_2": "value_2"
  },
  "termination_details": null,
  "unreferenced_refund_card_present_enabled": false,
  "unreferenced_refund_manual_entry_enabled": false,
  "verification": "VIeDkhAdS91Cw4Hu324YR6Te",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/merchants/MUiV7ntxfY4eyJxp6E7cZvym"
    },
    "identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDa4fdEuy57uLT95prqoBDxx"
    },
    "verifications": {
      "href": "https://finix.sandbox-payments-api.com/merchants/MUiV7ntxfY4eyJxp6E7cZvym/verifications"
    },
    "merchant_profile": {
      "href": "https://finix.sandbox-payments-api.com/merchant_profiles/MP6pzw61XykboCKVbMhCgYuk"
    },
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "verification": {
      "href": "https://finix.sandbox-payments-api.com/verifications/VIeDkhAdS91Cw4Hu324YR6Te"
    }
  }
}

Once level_two_level_three_data_enabled is updated to true, the Merchant resource can process Level 2 and Level 3 Transfers and Authorizations.

  • There are no changes in the post-payment experience (reversals, refunds, settlements, etc.) when processing Level 2 or Level 3 transactions.
  • The fields noted as required are the minimum needed for Level 2 or Level 3 interchange rates. There's no additional benefit in passing every available field for a given level.
  • The sales tax amount must be greater than 0.1% of the transaction amount.
  • For tax-exempt transactions, pass tax_exempt as true and omit sales_tax.

Create a Sale with Level 2 processing

Send a POST /transfers request and include the required fields for Level 2 processing.

Level 2 Fields

Include the following fields within the additional_purchase_data object:

FieldAPI FieldTypeDescription
Customer Reference Numbercustomer_reference_numberstring, requiredA unique reference ID for the order such as a purchase order (PO) number or invoice number. A purchase order number (PO number) is a unique code assigned to a specific order of goods or services. The buyer creates this number when they make a purchase order. It helps both the buyer and the seller track the order, match invoices, and keep accurate financial records. (max 17 characters)
Sales Taxsales_taxinteger, requiredTotal aggregate tax amount in cents for the entire purchase. Field is automatically calculated if you pass in the itemized tax amounts. For non-taxable transactions either set sales_tax to 0 or omit from payload and also set tax_exempt to true.`

Request

curl -i -X POST \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  https://finix.sandbox-payments-api.com/transfers \
  -H 'Content-Type: application/json' \
  -H 'Finix-Version: 2022-02-01' \
  -d '{
    "additional_purchase_data": {
      "customer_reference_number": "PO-2024-3842",
      "sales_tax": 200
    },
    "amount": 10000,
    "currency": "USD",
    "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
    "source": "PIs3rzrjP9orEjBwtJjhxEjL",
    "tags": {
      "order_id": "ORD-123"
    }
  }'

Response

A successful request returns a 201 Created status code and includes a Transfer resource with Level 2 processing details:

Transfer - Level 2 Processing
{
  "id": "TRhxcLi5xeLc6S6cw15RFFFe",
  "created_at": "2026-09-25T20:05:58.23Z",
  "updated_at": "2026-09-25T20:05:58.23Z",
  "3d_secure_session": null,
  "additional_buyer_charges": null,
  "additional_healthcare_data": null,
  "additional_lodging_data": null,
  "additional_motor_vehicle_rental_data": null,
  "additional_purchase_data": {
    "customer_reference_number": "PO-2024-3842", 
    "customs_duty_amount": null,
    "destination_country_code": null,
    "destination_postal_code": null,
    "discount_amount": null,
    "invoice_reference_number": null,
    "order_date": null,
    "sales_tax": 200, 
    "sales_tax_finix_generated": null,
    "ship_from_postal_code": null,
    "shipping_amount": null,
    "tax_exempt": false,
    "item_data": []
  },
  "address_verification": "POSTAL_CODE_AND_STREET_MATCH",
  "amount": 10000,
  "amount_requested": 10000,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "created_via": "UNKNOWN",
  "currency": "USD",
  "destination": null,
  "externally_funded": "UNKNOWN",
  "failure_code": null,
  "failure_message": null,
  "fee": 0,
  "fee_profile": "FPuizPqrhzYLbmJm88u7aqfj",
  "idempotency_id": null,
  "ip_address_details": null,
  "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
  "merchant_identity": "ID6UfSm1d4WPiWgLYmbyeo3H",
  "messages": [],
  "network_details": {
    "brand": "MASTERCARD",
    "authorization_code": "179463",
    "acquirer_reference_number": "79996936117050932176855"
  },
  "operation_key": "CARD_NOT_PRESENT_SALE",
  "parent_transfer": null,
  "parent_transfer_trace_id": null,
  "processed_at": "2026-09-25T20:05:58.57Z",
  "raw": null,
  "ready_to_settle_at": "2026-09-26T20:05:58.23Z",
  "receipt_last_printed_at": null,
  "security_code_verification": "MATCHED",
  "source": "PIs3rzrjP9orEjBwtJjhxEjL",
  "split_transfers": [],
  "state": "SUCCEEDED",
  "statement_descriptor": "FLX*FINIX FLOWERS",
  "subtype": "API",
  "supplemental_fee": null,
  "tags": {
    "order_id": "ORD-123"
  },
  "third_party_details": null,
  "tip_amount": null,
  "trace_id": "4c050b39-9589-4253-b3b6-f71428629e22",
  "type": "DEBIT",
  "_links": {
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "self": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRhxcLi5xeLc6S6cw15RFFFe"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/ID6UfSm1d4WPiWgLYmbyeo3H"
    },
    "payment_instruments": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRhxcLi5xeLc6S6cw15RFFFe/payment_instruments"
    },
    "reversals": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRhxcLi5xeLc6S6cw15RFFFe/reversals"
    },
    "fees": {
      "href": "https://finix.sandbox-payments-api.com/fees?linked_to=TRhxcLi5xeLc6S6cw15RFFFe"
    },
    "disputes": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRhxcLi5xeLc6S6cw15RFFFe/disputes"
    },
    "source": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PIs3rzrjP9orEjBwtJjhxEjL"
    },
    "fee_profile": {
      "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPuizPqrhzYLbmJm88u7aqfj"
    }
  }
}

Create a Sale with Level 3 processing

Send a POST /transfers request and include the required fields for Level 3 processing.

Level 3 Fields

Include the following additional_purchase_data fields:

FieldAPI FieldTypeDescription
Customer Reference Numbercustomer_reference_numberstring, requiredA unique reference ID for the order such as a purchase order (PO) number or invoice number. A purchase order number (PO number) is a unique code assigned to a specific order of goods or services. The buyer creates this number when they make a purchase order. It helps both the buyer and the seller track the order, match invoices, and keep accurate financial records. (max 17 characters)
Customs Duty Amountcustoms_duty_amountinteger, requiredThe costs related to import or export duties in cents. This field must have a value of at least 0.
Discount Amountdiscount_amountinteger, requiredThe amount in cents of the discount for the order. This field must have a value of at least 0.
Shipping Amountshipping_amountinteger, requiredThe costs related to shipping and handling in cents. This field must have a value of at least 0.
Tax Exempttax_exemptboolean, optionalFor tax exempt purchases set to true.

Include the following item_data fields for each line item:

FieldAPI FieldTypeDescription
Amount Excluding Sales Taxamount_excluding_sales_taxinteger, requiredTotal cost in cents of the line item excluding tax (must be greater than 0).
Amount Including Sales Taxamount_including_sales_taxinteger, requiredTotal cost in cents of the line item including tax (must be greater than 0).
Commodity Codecommodity_codestring, requiredA commodity code is a numeric code representing a particular product or service as defined by the National Institute of Governmental Purchasing. The code can be 3, 5, 7, or 11 digits in length. The longer the code the more granular the description of the product/service. (max 12 characters)
Cost per Itemcost_per_unitinteger, requiredThe price in cents of one unit of the item purchased.
Item Descriptionitem_descriptionstring, requiredA short, human-readable description of the line item (max 25 characters).
Item Discountitem_discount_amountinteger, requiredThe discount amount in cents applied to this individual line item. For an order-level discount, use discount_amount.
Merchant Product Codemerchant_product_codestring, requiredMerchant defined product code (max 12 characters).
Quantityquantityinteger, requiredThe number of items purchased. Must be greater than 0.
Unit of Measureunit_of_measurestring, requiredThe unit of measure of the purchased item (max 3 characters).

Request

curl -i -X POST \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  https://finix.sandbox-payments-api.com/transfers \
  -H 'Content-Type: application/json' \
  -H 'Finix-Version: 2022-02-01' \
  -d '{
    "additional_purchase_data": {
      "item_data": [
        {
          "amount_excluding_sales_tax": 400,
          "amount_including_sales_tax": 500,
          "commodity_code": "175-62-20",
          "cost_per_unit": 500,
          "item_description": "Consulting Services",
          "item_discount_amount": 100,
          "merchant_product_code": "SKU 12312",
          "quantity": 1,
          "unit_of_measure": "BX"
        },
        {
          "amount_excluding_sales_tax": 500,
          "amount_including_sales_tax": 550,
          "commodity_code": "73110000",
          "cost_per_unit": 250,
          "item_description": "Technical Support",
          "item_discount_amount": 0,
          "merchant_product_code": "SUP-2024-001",
          "quantity": 2,
          "unit_of_measure": "HR"
        }
      ],
      "customer_reference_number": "PO-2024-3842",
      "customs_duty_amount": 10,
      "discount_amount": 100,
      "shipping_amount": 100
    },
    "amount": 10000,
    "currency": "USD",
    "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
    "source": "PI6iQcTtJNCS8GZAVKYi5Ueb",
    "tags": {
      "order_id": "ORD-123"
    }
  }'

Response

A successful request returns a 201 Created status code and includes a Transfer resource with Level 3 processing details:

Transfer - Level 3 Processing
{
  "id": "TRhBy3GHgWeygjQbZ4pSgvMs",
  "created_at": "2026-09-25T20:05:59.25Z",
  "updated_at": "2026-09-25T20:05:59.25Z",
  "3d_secure_session": null,
  "additional_buyer_charges": null,
  "additional_healthcare_data": null,
  "additional_lodging_data": null,
  "additional_motor_vehicle_rental_data": null,
  "additional_purchase_data": { 
    "customer_reference_number": "PO-2024-3842", 
    "customs_duty_amount": 10, 
    "destination_country_code": null, 
    "destination_postal_code": null, 
    "discount_amount": 100, 
    "invoice_reference_number": null, 
    "order_date": null, 
    "sales_tax": null, 
    "sales_tax_finix_generated": 150, 
    "ship_from_postal_code": null, 
    "shipping_amount": 100, 
    "tax_exempt": false, 
    "item_data": [ 
      { 
        "cost_per_unit": 500, 
        "item_description": "Consulting Services", 
        "item_discount_amount": 100, 
        "merchant_product_code": "SKU 12312", 
        "quantity": 1, 
        "amount_excluding_sales_tax": 400, 
        "amount_including_sales_tax": 500, 
        "unit_of_measure": "BX", 
        "commodity_code": "175-62-20", 
        "sales_tax_amount": 100, 
        "sales_tax_rate": 0.25
      }, 
      { 
        "cost_per_unit": 250, 
        "item_description": "Technical Support", 
        "item_discount_amount": 0, 
        "merchant_product_code": "SUP-2024-001", 
        "quantity": 2, 
        "amount_excluding_sales_tax": 500, 
        "amount_including_sales_tax": 550, 
        "unit_of_measure": "HR", 
        "commodity_code": "175-62-21", 
        "sales_tax_amount": 50, 
        "sales_tax_rate": 0.1
      } 
    ] 
  }, 
  "address_verification": "POSTAL_CODE_AND_STREET_MATCH",
  "amount": 10000,
  "amount_requested": 10000,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "created_via": "UNKNOWN",
  "currency": "USD",
  "destination": null,
  "externally_funded": "UNKNOWN",
  "failure_code": null,
  "failure_message": null,
  "fee": 0,
  "fee_profile": "FPuizPqrhzYLbmJm88u7aqfj",
  "idempotency_id": null,
  "ip_address_details": null,
  "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
  "merchant_identity": "ID6UfSm1d4WPiWgLYmbyeo3H",
  "messages": [],
  "network_details": {
    "brand": "VISA",
    "authorization_code": "070533",
    "acquirer_reference_number": null
  },
  "operation_key": "CARD_NOT_PRESENT_SALE",
  "parent_transfer": null,
  "parent_transfer_trace_id": null,
  "processed_at": "2026-09-25T20:05:59.65Z",
  "raw": null,
  "ready_to_settle_at": "2026-09-26T20:05:59.25Z",
  "receipt_last_printed_at": null,
  "security_code_verification": "MATCHED",
  "source": "PI6iQcTtJNCS8GZAVKYi5Ueb",
  "split_transfers": [],
  "state": "SUCCEEDED",
  "statement_descriptor": "FLX*FINIX FLOWERS",
  "subtype": "API",
  "supplemental_fee": null,
  "tags": {
    "order_id": "ORD-123"
  },
  "third_party_details": null,
  "tip_amount": null,
  "trace_id": "46e06cc2-7138-496e-8d78-41fe17e329c7",
  "type": "DEBIT",
  "_links": {
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "self": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRhBy3GHgWeygjQbZ4pSgvMs"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/ID6UfSm1d4WPiWgLYmbyeo3H"
    },
    "payment_instruments": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRhBy3GHgWeygjQbZ4pSgvMs/payment_instruments"
    },
    "reversals": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRhBy3GHgWeygjQbZ4pSgvMs/reversals"
    },
    "fees": {
      "href": "https://finix.sandbox-payments-api.com/fees?linked_to=TRhBy3GHgWeygjQbZ4pSgvMs"
    },
    "disputes": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRhBy3GHgWeygjQbZ4pSgvMs/disputes"
    },
    "source": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PI6iQcTtJNCS8GZAVKYi5Ueb"
    },
    "fee_profile": {
      "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPuizPqrhzYLbmJm88u7aqfj"
    }
  }
}

Create an Authorization with Level 2 processing

Send a POST /authorizations request and include the required fields for Level 2 processing.

Level 2 Fields

Include the following additional_purchase_data fields:

FieldAPI FieldTypeDescription
Customer Reference Numbercustomer_reference_numberstring, requiredA unique reference ID for the order such as a purchase order (PO) number or invoice number. A purchase order number (PO number) is a unique code assigned to a specific order of goods or services. The buyer creates this number when they make a purchase order. It helps both the buyer and the seller track the order, match invoices, and keep accurate financial records. (max 17 characters)
Sales Taxsales_taxinteger, requiredTotal aggregate tax amount in cents for the entire purchase. Field is automatically calculated if you pass in the itemized tax amounts. For non-taxable transactions either set sales_tax to 0 or omit from payload and also set tax_exempt to true.`

Request

curl https://finix.sandbox-payments-api.com/authorizations \
  -H "Content-Type: application/json" \
  -H 'Finix-Version: 2022-02-01' \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  -d '{
    "additional_purchase_data": {
      "customer_reference_number": "PO-2024-3842",
      "sales_tax": 200
    },
    "amount": 10000,
    "currency": "USD",
    "merchant": "MU7noQ1wdgdAeAfymw2rfBMq",
    "source": "PIs3rzrjP9orEjBwtJjhxEjL"
  }'

Response

A successful request returns a 201 Created status code and includes an Authorization resource with Level 2 processing details:

Authorization - Level 2 Processing
{
  "id": "AUpkHPontypnra6ixQ6nKaCD",
  "created_at": "2026-09-25T20:05:02.19Z",
  "updated_at": "2026-09-25T20:05:02.19Z",
  "3d_secure_session": null,
  "3ds_redirect_url": null,
  "additional_buyer_charges": null,
  "additional_healthcare_data": null,
  "additional_lodging_data": null,
  "additional_motor_vehicle_rental_data": null,
  "additional_purchase_data": {
    "customer_reference_number": "PO-2024-3842", 
    "customs_duty_amount": null,
    "destination_country_code": null,
    "destination_postal_code": null,
    "discount_amount": null,
    "invoice_reference_number": null,
    "order_date": null,
    "sales_tax": 200, 
    "sales_tax_finix_generated": null,
    "ship_from_postal_code": null,
    "shipping_amount": null,
    "tax_exempt": false,
    "item_data": []
  },
  "address_verification": "POSTAL_CODE_AND_STREET_MATCH",
  "amount": 10000,
  "amount_requested": 10000,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "created_via": "UNKNOWN",
  "currency": "USD",
  "expires_at": "2026-10-02T20:05:02.19Z",
  "failure_code": null,
  "failure_message": null,
  "idempotency_id": null,
  "ip_address_details": null,
  "is_void": false,
  "merchant": "MU7noQ1wdgdAeAfymw2rfBMq",
  "merchant_identity": "IDjvxGeXBLKH1V9YnWm1CS4n",
  "messages": [],
  "network_details": {
    "brand": "MASTERCARD",
    "authorization_code": "899854"
  },
  "raw": null,
  "receipt_last_printed_at": null,
  "security_code_verification": "MATCHED",
  "source": "PIs3rzrjP9orEjBwtJjhxEjL",
  "state": "SUCCEEDED",
  "supplemental_fee": null,
  "tags": {},
  "trace_id": "0e189372-9f27-4475-80f0-9e755be33d3b",
  "transfer": null,
  "void_state": "UNATTEMPTED",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/authorizations/AUpkHPontypnra6ixQ6nKaCD"
    },
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDjvxGeXBLKH1V9YnWm1CS4n"
    }
  }
}

Create an Authorization with Level 3 processing

Send a POST /authorizations request and include the required fields for Level 3 processing.

Level 3 Fields

Include the following additional_purchase_data fields:

FieldAPI FieldTypeDescription
Customer Reference Numbercustomer_reference_numberstring, requiredA unique reference ID for the order such as a purchase order (PO) number or invoice number. A purchase order number (PO number) is a unique code assigned to a specific order of goods or services. The buyer creates this number when they make a purchase order. It helps both the buyer and the seller track the order, match invoices, and keep accurate financial records. (max 17 characters)
Customs Duty Amountcustoms_duty_amountinteger, requiredThe costs related to import or export duties in cents. This field must have a value of at least 0.
Discount Amountdiscount_amountinteger, requiredThe amount in cents of the discount for the order. This field must have a value of at least 0.
Shipping Amountshipping_amountinteger, requiredThe costs related to shipping and handling in cents. This field must have a value of at least 0.
Tax Exempttax_exemptboolean, optionalFor tax exempt purchases set to true.

Include the following item_data fields for each line item:

FieldAPI FieldTypeDescription
Amount Excluding Sales Taxamount_excluding_sales_taxinteger, requiredTotal cost in cents of the line item excluding tax (must be greater than 0).
Amount Including Sales Taxamount_including_sales_taxinteger, requiredTotal cost in cents of the line item including tax (must be greater than 0).
Commodity Codecommodity_codestring, requiredA commodity code is a numeric code representing a particular product or service as defined by the National Institute of Governmental Purchasing. The code can be 3, 5, 7, or 11 digits in length. The longer the code the more granular the description of the product/service. (max 12 characters)
Cost per Itemcost_per_unitinteger, requiredThe price in cents of one unit of the item purchased.
Item Descriptionitem_descriptionstring, requiredA short, human-readable description of the line item (max 25 characters).
Item Discountitem_discount_amountinteger, requiredThe discount amount in cents applied to this individual line item. For an order-level discount, use discount_amount.
Merchant Product Codemerchant_product_codestring, requiredMerchant defined product code (max 12 characters).
Quantityquantityinteger, requiredThe number of items purchased. Must be greater than 0.
Unit of Measureunit_of_measurestring, requiredThe unit of measure of the purchased item (max 3 characters).

Request

curl https://finix.sandbox-payments-api.com/authorizations \
  -H "Content-Type: application/json" \
  -H 'Finix-Version: 2022-02-01' \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  -d '{
    "additional_purchase_data": {
      "item_data": [
        {
          "amount_excluding_sales_tax": 400,
          "amount_including_sales_tax": 500,
          "commodity_code": "175-62-20",
          "cost_per_unit": 500,
          "item_description": "Consulting Services",
          "item_discount_amount": 100,
          "merchant_product_code": "SKU 12312",
          "quantity": 1,
          "unit_of_measure": "BX"
        },
        {
          "amount_excluding_sales_tax": 400,
          "amount_including_sales_tax": 500,
          "commodity_code": "207-72-54",
          "cost_per_unit": 500,
          "item_description": "GPT-5.6",
          "item_discount_amount": 0,
          "merchant_product_code": "SKU 2222",
          "quantity": 1,
          "unit_of_measure": "CTN"
        }
      ],
      "customer_reference_number": "PO-2024-3842",
      "customs_duty_amount": 10,
      "discount_amount": 100,
      "shipping_amount": 100
    },
    "amount": 10000,
    "currency": "USD",
    "merchant": "MU7noQ1wdgdAeAfymw2rfBMq",
    "source": "PIkxmtueemLD6dN9ZoWGHT44"
  }'

Response

A successful request returns a 201 Created status code and includes an Authorization resource with Level 3 processing details:

Authorization - Level 3 Processing
{
  "id": "AU3ZaskMift3Nmfo7DQMhCAj",
  "created_at": "2026-09-25T20:05:02.88Z",
  "updated_at": "2026-09-25T20:05:02.88Z",
  "3d_secure_session": null,
  "3ds_redirect_url": null,
  "additional_buyer_charges": null,
  "additional_healthcare_data": null,
  "additional_lodging_data": null,
  "additional_motor_vehicle_rental_data": null,
  "additional_purchase_data": { 
    "customer_reference_number": "PO-2024-3842", 
    "customs_duty_amount": 10, 
    "destination_country_code": null, 
    "destination_postal_code": null, 
    "discount_amount": 100, 
    "invoice_reference_number": null, 
    "order_date": null, 
    "sales_tax": null, 
    "sales_tax_finix_generated": 200, 
    "ship_from_postal_code": null, 
    "shipping_amount": 100, 
    "tax_exempt": false, 
    "item_data": [ 
      { 
        "cost_per_unit": 500, 
        "item_description": "Consulting Services", 
        "item_discount_amount": 100, 
        "merchant_product_code": "SKU 12312", 
        "quantity": 1, 
        "amount_excluding_sales_tax": 400, 
        "amount_including_sales_tax": 500, 
        "unit_of_measure": "BX", 
        "commodity_code": "175-62-20", 
        "sales_tax_amount": 100, 
        "sales_tax_rate": 0.25
      }, 
      { 
        "cost_per_unit": 500, 
        "item_description": "GPT-5.6", 
        "item_discount_amount": 0, 
        "merchant_product_code": "SKU 2222", 
        "quantity": 1, 
        "amount_excluding_sales_tax": 400, 
        "amount_including_sales_tax": 500, 
        "unit_of_measure": "CTN", 
        "commodity_code": "207-72-54", 
        "sales_tax_amount": 100, 
        "sales_tax_rate": 0.25
      } 
    ] 
  }, 
  "address_verification": "POSTAL_CODE_AND_STREET_MATCH",
  "amount": 10000,
  "amount_requested": 10000,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "created_via": "UNKNOWN",
  "currency": "USD",
  "expires_at": "2026-10-05T20:05:02.88Z",
  "failure_code": null,
  "failure_message": null,
  "idempotency_id": null,
  "ip_address_details": null,
  "is_void": false,
  "merchant": "MU7noQ1wdgdAeAfymw2rfBMq",
  "merchant_identity": "IDjvxGeXBLKH1V9YnWm1CS4n",
  "messages": [],
  "network_details": {
    "brand": "VISA",
    "authorization_code": "812085"
  },
  "raw": null,
  "receipt_last_printed_at": null,
  "security_code_verification": "MATCHED",
  "source": "PIkxmtueemLD6dN9ZoWGHT44",
  "state": "SUCCEEDED",
  "supplemental_fee": null,
  "tags": {},
  "trace_id": "83409ff1-e7d1-4b87-bd3f-3f8090d52d0b",
  "transfer": null,
  "void_state": "UNATTEMPTED",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/authorizations/AU3ZaskMift3Nmfo7DQMhCAj"
    },
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDjvxGeXBLKH1V9YnWm1CS4n"
    }
  }
}

Capture an Authorization with Level 2 / Level 3 processing

Finix will automatically include the Level 2 / Level 3 data with the capture request.

Ineligible Merchants

Specific businesses are excluded from processing Level 2 and Level 3 transactions.

If a merchant has one of the following Merchant Category Codes (MCC), they are not eligible to process Level 2 / Level 3 transactions:

MCC CodeMerchant Description
3000-3299, 4511Airlines/Passenger Transport
3351-3500, 7512Car Rentals/Auto Rental
4411Cruise Lines
5962, 5966, 5967High Risk Direct Marketing
3501-4010, 7011Hotels/Lodging
4112Passenger Railways
5812, 5814Restaurants
4722Travel Agents
7513Truck and Utility Trailer Rentals

Data Quality Best Practices

The Level 2 / Level 3 processing data you submit should be accurate and of high quality. The card network's validation technology will identify generic descriptions, placeholder data, and artificially generated content. The data must be real, accurate, and descriptive of the actual products or services being sold.

The examples below are meant to help point you in the right direction, but they are not exhaustive. Ultimately, the card network decides whether the data a merchant submits qualifies.

Finix Line Item FieldCard Network RecommendationAvoid
item_descriptionMust provide meaningful information about purchased items/services.Do not provide merchant name, single characters, or generic descriptions.
merchant_product_codeTypically the SKU or identifier by which the merchant tracks and prices the item or service. Must always be provided for every line item. The product code can be the merchant's, manufacturer's, or buyer's product code. This field must provide information about the purchase, not the customer.Do not use erroneous data, such as the card product or MCC.