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:
- Available for merchants located in the United States processing USD transactions.
- Only available in Live environments. Not available in Sandbox.
- Mastercard: Supports Level 2 and Level 3 processing.
- Visa: Supports Level 3 processing only.
| Network | Level 2 | Level 3 |
|---|---|---|
| Visa | ⚠️ Deprecated April 17, 2026 | Yes |
| Mastercard | Yes | Yes |
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.
Some businesses are not eligible for Level 2 and Level 3 transaction processing. For details, see our list of ineligible Merchant Category Codes (MCC).
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-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.
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 Eligibility | Level 2 | Level 3 |
|---|---|---|
| Minimum Field Requirements |
|
|
| Field | API Field | Required | Description |
|---|---|---|---|
| Customer Reference Number | customer_reference_number | Required | A 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 Tax | sales_tax | Required | The 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. |
Everything in Level 2, plus:
| Field | API Field | Required | Description |
|---|---|---|---|
| Shipping Amount | shipping_amount | Required | The costs related to shipping and handling in cents. Must be at least 0. |
| Customs Duty Amount | customs_duty_amount | Required | The costs related to import or export duties in cents. Must be at least 0. |
| Discount Amount | discount_amount | Required | The order-level discount amount in cents. Must be at least 0. |
| Tax Exempt | tax_exempt | Optional | Set to true for tax-exempt purchases. |
Plus item_data fields for each line item:
| Field | API Field | Required | Description |
|---|---|---|---|
| Item Description | item_description | Required | A short, human-readable description of the line item (max 25 characters). |
| Cost per Item | cost_per_unit | Required | The price per unit of the item purchased, in cents. |
| Item Discount | item_discount_amount | Required | The discount amount in cents applied to this individual line item. For an order-level discount, use discount_amount. |
| Quantity | quantity | Required | The number of units purchased. Must be greater than 0. |
| Unit of Measure | unit_of_measure | Required | The unit of measure for the item (max 3 characters). |
| Commodity Code | commodity_code | Required | A numeric code identifying the product or service (3, 5, 7, or 11 digits; max 12 characters). |
| Merchant Product Code | merchant_product_code | Required | Your product/SKU code for the line item (max 12 characters). |
| Amount Excluding Sales Tax | amount_excluding_sales_tax | Required | Total cost of the line item excluding tax in cents (must be greater than 0). |
| Amount Including Sales Tax | amount_including_sales_tax | Required | Total cost of the line item including tax in cents (must be greater than 0). |
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.
- Sandbox serverhttps://finix.sandbox-payments-api.com/merchants/{merchant_id}
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
}'A successful request returns a 200 OK status code and includes a Merchant resource with level_two_level_three_data_enabled: true.
{
"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_exemptastrueand omitsales_tax.
Send a POST /transfers request and include the required fields for Level 2 processing.
Include the following fields within the additional_purchase_data object:
| Field | API Field | Type | Description |
|---|---|---|---|
| Customer Reference Number | customer_reference_number | string, required | A 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 Tax | sales_tax | integer, required | Total 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.` |
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"
}
}'A successful request returns a 201 Created status code and includes a Transfer resource with Level 2 processing details:
{
"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"
}
}
}Send a POST /transfers request and include the required fields for Level 3 processing.
Include the following additional_purchase_data fields:
| Field | API Field | Type | Description |
|---|---|---|---|
| Customer Reference Number | customer_reference_number | string, required | A 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 Amount | customs_duty_amount | integer, required | The costs related to import or export duties in cents. This field must have a value of at least 0. |
| Discount Amount | discount_amount | integer, required | The amount in cents of the discount for the order. This field must have a value of at least 0. |
| Shipping Amount | shipping_amount | integer, required | The costs related to shipping and handling in cents. This field must have a value of at least 0. |
| Tax Exempt | tax_exempt | boolean, optional | For tax exempt purchases set to true. |
Include the following item_data fields for each line item:
| Field | API Field | Type | Description |
|---|---|---|---|
| Amount Excluding Sales Tax | amount_excluding_sales_tax | integer, required | Total cost in cents of the line item excluding tax (must be greater than 0). |
| Amount Including Sales Tax | amount_including_sales_tax | integer, required | Total cost in cents of the line item including tax (must be greater than 0). |
| Commodity Code | commodity_code | string, required | A 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 Item | cost_per_unit | integer, required | The price in cents of one unit of the item purchased. |
| Item Description | item_description | string, required | A short, human-readable description of the line item (max 25 characters). |
| Item Discount | item_discount_amount | integer, required | The discount amount in cents applied to this individual line item. For an order-level discount, use discount_amount. |
| Merchant Product Code | merchant_product_code | string, required | Merchant defined product code (max 12 characters). |
| Quantity | quantity | integer, required | The number of items purchased. Must be greater than 0. |
| Unit of Measure | unit_of_measure | string, required | The unit of measure of the purchased item (max 3 characters). |
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"
}
}'A successful request returns a 201 Created status code and includes a Transfer resource with Level 3 processing details:
{
"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"
}
}
}Send a POST /authorizations request and include the required fields for Level 2 processing.
Include the following additional_purchase_data fields:
| Field | API Field | Type | Description |
|---|---|---|---|
| Customer Reference Number | customer_reference_number | string, required | A 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 Tax | sales_tax | integer, required | Total 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.` |
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"
}'A successful request returns a 201 Created status code and includes an Authorization resource with Level 2 processing details:
{
"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"
}
}
}Send a POST /authorizations request and include the required fields for Level 3 processing.
Include the following additional_purchase_data fields:
| Field | API Field | Type | Description |
|---|---|---|---|
| Customer Reference Number | customer_reference_number | string, required | A 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 Amount | customs_duty_amount | integer, required | The costs related to import or export duties in cents. This field must have a value of at least 0. |
| Discount Amount | discount_amount | integer, required | The amount in cents of the discount for the order. This field must have a value of at least 0. |
| Shipping Amount | shipping_amount | integer, required | The costs related to shipping and handling in cents. This field must have a value of at least 0. |
| Tax Exempt | tax_exempt | boolean, optional | For tax exempt purchases set to true. |
Include the following item_data fields for each line item:
| Field | API Field | Type | Description |
|---|---|---|---|
| Amount Excluding Sales Tax | amount_excluding_sales_tax | integer, required | Total cost in cents of the line item excluding tax (must be greater than 0). |
| Amount Including Sales Tax | amount_including_sales_tax | integer, required | Total cost in cents of the line item including tax (must be greater than 0). |
| Commodity Code | commodity_code | string, required | A 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 Item | cost_per_unit | integer, required | The price in cents of one unit of the item purchased. |
| Item Description | item_description | string, required | A short, human-readable description of the line item (max 25 characters). |
| Item Discount | item_discount_amount | integer, required | The discount amount in cents applied to this individual line item. For an order-level discount, use discount_amount. |
| Merchant Product Code | merchant_product_code | string, required | Merchant defined product code (max 12 characters). |
| Quantity | quantity | integer, required | The number of items purchased. Must be greater than 0. |
| Unit of Measure | unit_of_measure | string, required | The unit of measure of the purchased item (max 3 characters). |
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"
}'A successful request returns a 201 Created status code and includes an Authorization resource with Level 3 processing details:
{
"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"
}
}
}Finix will automatically include the Level 2 / Level 3 data with the capture request.
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 Code | Merchant Description |
|---|---|
| 3000-3299, 4511 | Airlines/Passenger Transport |
| 3351-3500, 7512 | Car Rentals/Auto Rental |
| 4411 | Cruise Lines |
| 5962, 5966, 5967 | High Risk Direct Marketing |
| 3501-4010, 7011 | Hotels/Lodging |
| 4112 | Passenger Railways |
| 5812, 5814 | Restaurants |
| 4722 | Travel Agents |
| 7513 | Truck and Utility Trailer Rentals |
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 Field | Card Network Recommendation | Avoid |
|---|---|---|
item_description | Must provide meaningful information about purchased items/services. | Do not provide merchant name, single characters, or generic descriptions. |
merchant_product_code | Typically 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. |