Skip to content

Level 2 / Level 3 Processing

Visa Level 2 Deprecation Notice

Starting April 17, 2026, Visa will not accept Level 2 data for lower interchange rates. To keep interchange savings on Visa transactions, create Transfers with Level 3 data and Authorizations with Level 3 data. Mastercard Level 2 processing is unaffected.

In this guide, you'll learn the requirements of L2/L3 processing, which merchant types are ineligible, how to enable L2/L3, and how to create a sale, authorization, and capture using L2/L3.

Credit card processing fits into three levels: Level 1, Level 2, and Level 3 processing.

Each level is defined by the amount of information needed to complete a transaction.

  • Level 1: Normal interchange, no additional fields required.
  • Level 2: Lower interchange, additional fields required. Visa is ending its Level 2 offering in April 2026.
  • Level 3: Lowest interchange, additional fields required.

For Level 2 and Level 3 processing, only business-to-business merchants and the government can receive lower interchange fees. Additionally, a corporate, business, or purchase card is required to obtain the lower interchange rate for Level 2 and 3 processing.

  • This feature is only supported on Visa and Mastercard branded cards.
  • Because only business-to-business and government transactions qualify, the Merchant needs to be enabled for Level 2/3 processing.
  • Level 2 and Level 3 processing is only available in Live environments. This feature isn't available to test in Sandbox environments.
  • Tax-exempt transactions are not eligible for Level 2. They are eligible for Level 3.
  • Merchant must be located in the United States.

Supported APIs

Level 2 / Level 3 Processing is available for:

Ineligible Merchants

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

If a Merchant has one of the following Merchant Category Codes (MCC), they aren't eligible to process Level 2/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

Network Support

NetworkLevel 2Level 3
Visa⚠️ Deprecated April 17, 2026Yes
MastercardYesYes

Quality Data

It’s important that the data that is being passed along is accurate. 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. There will be additional dues and assessments associated with the network's validation of data quality, effective October 17, 2025.

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

Finix Line Item FieldCard Network RecommendationAvoid
item_data#item_descriptionThey must provide meaningful information about purchased items/servicesDo not provide merchant name, single characters, or generic descriptions
item_data#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. Product code can be:

• Merchant's product code
• Manufacturer's product code
• Buyer's product code

This field must provide information about the purchase and not the customer.
Do not use erroneous data, such as the card product or MCC

Update a Merchant to Enable Level 2/3 Processing

Before a Merchant can process Level 2 or 3 transactions, update the Merchant resource and enable level_two_level_three_data_enabled. For more information, see Update a Merchant.

The APIs to update Merchant flags are only available for Finix Core customers. If you have additional questions, please reach out to your Finix point of contact or email the Finix Support team.

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
  }'

Example Response:

Merchant - Level 2/3 Processing Enabled
{
  "id": "MUcDAtijYcoVLamxHhzQc7fZ",
  "created_at": "2024-06-04T15:08:28.57Z",
  "updated_at": "2024-08-16T14:00:33.06Z",
  "application": "APgPDQrLD52TYvqazjHJJchM",
  "card_cvv_required": false,
  "card_expiration_date_required": true,
  "card_network_details": null,
  "convenience_charges_enabled": false,
  "country": null,
  "creating_transfer_from_report_enabled": true,
  "currencies": null,
  "default_partial_authorization_enabled": false,
  "disbursements_ach_pull_enabled": false,
  "disbursements_ach_push_enabled": false,
  "disbursements_card_pull_enabled": false,
  "disbursements_card_push_enabled": false,
  "disbursements_same_day_ach_pull_enabled": false,
  "disbursements_same_day_ach_push_enabled": false,
  "fee_ready_to_settle_upon": "RECONCILIATION",
  "gateway": null,
  "gross_settlement_enabled": false,
  "identity": "IDwq5EgdjhsWvpkJQEdfrs9y",
  "instant_payouts_card_push_enabled": false,
  "level_two_level_three_data_enabled": true,
  "loan_repayment": null,
  "mcc": null,
  "merchant_name": "John Doe",
  "merchant_profile": "MPgivonuyqNTmZ3xsXyFnoYf",
  "mid": "FNX8RFGJ2BWc7CufRXpvbeUVV",
  "onboarding_state": "APPROVED",
  "processing_enabled": true,
  "processor": "DUMMY_V1",
  "processor_details": {
    "mid": "FNX8RFGJ2BWc7CufRXpvbeUVV",
    "api_key": "secretValue"
  },
  "ready_to_settle_upon": "RECONCILIATION",
  "ready_to_settle_upon_delay_alignment": "NONE",
  "rent_surcharges_enabled": false,
  "settlement_enabled": true,
  "settlement_funding_identifier": "UNSET",
  "surcharges_enabled": false,
  "tags": {},
  "unreferenced_refund_manual_entry_enabled": false,
  "verification": "VIjcwzg18pa3u384cGkT1R9L",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/merchants/MUcDAtijYcoVLamxHhzQc7fZ"
    },
    "identity": {
      "href": "https://finix.sandbox-payments-api.com/identities/IDwq5EgdjhsWvpkJQEdfrs9y"
    },
    "verifications": {
      "href": "https://finix.sandbox-payments-api.com/merchants/MUcDAtijYcoVLamxHhzQc7fZ/verifications"
    },
    "merchant_profile": {
      "href": "https://finix.sandbox-payments-api.com/merchant_profiles/MPgivonuyqNTmZ3xsXyFnoYf"
    },
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
    },
    "verification": {
      "href": "https://finix.sandbox-payments-api.com/verifications/VIjcwzg18pa3u384cGkT1R9L"
    }
  }
}

Creating Sales with Level 2 and Level 3 Processing

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

  • Level 2 and Level 3 Processing combines the data that gets requested during creation and captures it into one API call. An Authorization with Level 2 or Level 3 processing only needs to be captured if the data is different or changes from the original Authorization.

When processing Level 2 and Level 3 transactions, it's required to include additional fields when creating a Transfer and Authorization.

  • There are no changes in the post-payments experience (reversals, refunds, settlements, etc.) when processing Level 2 or Level 3 transactions.
  • The request arguments noted as required are the minimum amount of information needed for L2 or L3 interchange rates. There’s no additional benefit in passing every available request argument for a particular level.
  • Sales tax amount entered must be greater than 0.1% of the amount of the transaction.
  • If the transaction is tax exempt pass tax_exempt as true.

Creating a Sale with Level 2 and Level 3 Processing

Create a Sale with Level 2 Processing

Create a Transfer and include the required request arguments to include Level 2 processing.

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": "321xyz",
      "sales_tax": 200
    },
    "amount": 1000,
    "currency": "USD",
    "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
    "source": "PI6iQcTtJNCS8GZAVKYi5Ueb",
    "tags": {
      "test": "Sale"
    }
  }'

A successful request returns a 201 Created status code and includes a Transfer resource with level 2 processing details in the response.

Transfer - Level 2 Processing
{
  "id": "TR96bu4Szu8dEKUMs1wDUW5z",
  "created_at": "2025-07-25T18:07:41.41Z",
  "updated_at": "2025-07-25T18:07:41.41Z",
  "additional_buyer_charges": null,
  "additional_healthcare_data": null,
  "additional_purchase_data": {
    "customer_reference_number": "321xyz",
    "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": 1000,
  "amount_requested": 1000,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "currency": "USD",
  "destination": null,
  "externally_funded": "UNKNOWN",
  "failure_code": null,
  "failure_message": null,
  "fee": 0,
  "fee_profile": "FPuizPqrhzYLbmJm88u7aqfj",
  "idempotency_id": null,
  "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
  "merchant_identity": "ID6UfSm1d4WPiWgLYmbyeo3H",
  "messages": [],
  "operation_key": "CARD_NOT_PRESENT_SALE",
  "parent_transfer": null,
  "parent_transfer_trace_id": null,
  "raw": null,
  "ready_to_settle_at": "2025-07-26T18:07:41.87Z",
  "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": {
    "test": "Sale"
  },
  "tip_amount": null,
  "trace_id": "b0c469c5-21a4-43a1-915d-df72a297d039",
  "type": "DEBIT",
  "_links": {
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "self": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TR96bu4Szu8dEKUMs1wDUW5z"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/transfers/ID6UfSm1d4WPiWgLYmbyeo3H"
    },
    "payment_instruments": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TR96bu4Szu8dEKUMs1wDUW5z/payment_instruments"
    },
    "reversals": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TR96bu4Szu8dEKUMs1wDUW5z/reversals"
    },
    "fees": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TR96bu4Szu8dEKUMs1wDUW5z/fees"
    },
    "disputes": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TR96bu4Szu8dEKUMs1wDUW5z/disputes"
    },
    "source": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PI6iQcTtJNCS8GZAVKYi5Ueb"
    },
    "fee_profile": {
      "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPuizPqrhzYLbmJm88u7aqfj"
    }
  }
}

Request Arguments

FieldTypeDescription
amountinteger, requiredThe total amount that will be debited in cents (e.g. 100 cents to debit $1.00)
currencystring, required3-letter ISO code designating the currency of the Transfers (e.g. USD)
merchantstring, requiredMerchant ID of the merchant whom you're charging on behalf of
sourcestring, requiredID of the Payment Instrument that will be debited

Additional Purchase Data Request Arguments

FieldTypeDescription
customer_reference_numberstring, requiredThe customer reference for the purchase (max 17 characters)
sales_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.
Visa Level 2 Deprecation Notice

For Visa, these fields no longer qualify for lower interchange after April 17, 2026. To keep interchange savings on Visa transactions, include Level 3 data.

Create a Sale with Level 3 Processing

Create a Transfer with the additional fields to include Level 3 processing.

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": "printing paper",
          "item_discount_amount": 100,
          "merchant_product_code": "1149611",
          "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": "printing ink",
          "item_discount_amount": 0,
          "merchant_product_code": "2149612",
          "quantity": 1,
          "unit_of_measure": "CTN"
        }
      ],
      "customer_reference_number": "321xyz",
      "customs_duty_amount": 10,
      "discount_amount": 100,
      "shipping_amount": 100
    },
    "amount": 1000,
    "currency": "USD",
    "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
    "source": "PI6iQcTtJNCS8GZAVKYi5Ueb",
    "tags": {
      "test": "Sale"
    }
  }'

A successful request returns a 201 Created status code and includes a Transfer resource with level 3 processing details in the response.

Transfer - Level 3 Processing
{
  "id": "TRgnpzmp9nqLiVUfVzLAXkuU",
  "created_at": "2025-07-25T18:09:20.32Z",
  "updated_at": "2025-07-25T18:09:20.32Z",
  "additional_buyer_charges": null,
  "additional_healthcare_data": null,
  "additional_purchase_data": {
    "customer_reference_number": "321xyz",
    "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": "printing paper",
        "item_discount_amount": 100,
        "merchant_product_code": "1149611",
        "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": "printing ink",
        "item_discount_amount": 0,
        "merchant_product_code": "2149612",
        "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": 1000,
  "amount_requested": 1000,
  "application": "APc9vhYcPsRuTSpKD9KpMtPe",
  "currency": "USD",
  "destination": null,
  "externally_funded": "UNKNOWN",
  "failure_code": null,
  "failure_message": null,
  "fee": 0,
  "fee_profile": "FPuizPqrhzYLbmJm88u7aqfj",
  "idempotency_id": null,
  "merchant": "MUmfEGv5bMpSJ9k5TFRUjkmm",
  "merchant_identity": "ID6UfSm1d4WPiWgLYmbyeo3H",
  "messages": [],
  "operation_key": "CARD_NOT_PRESENT_SALE",
  "parent_transfer": null,
  "parent_transfer_trace_id": null,
  "raw": null,
  "ready_to_settle_at": "2025-07-26T18:09:20.74Z",
  "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": {
    "test": "Sale"
  },
  "tip_amount": null,
  "trace_id": "a50cc8db-80f9-4164-95a2-7c1ae97d1de8",
  "type": "DEBIT",
  "_links": {
    "application": {
      "href": "https://finix.sandbox-payments-api.com/applications/APc9vhYcPsRuTSpKD9KpMtPe"
    },
    "self": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRgnpzmp9nqLiVUfVzLAXkuU"
    },
    "merchant_identity": {
      "href": "https://finix.sandbox-payments-api.com/transfers/ID6UfSm1d4WPiWgLYmbyeo3H"
    },
    "payment_instruments": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRgnpzmp9nqLiVUfVzLAXkuU/payment_instruments"
    },
    "reversals": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRgnpzmp9nqLiVUfVzLAXkuU/reversals"
    },
    "fees": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRgnpzmp9nqLiVUfVzLAXkuU/fees"
    },
    "disputes": {
      "href": "https://finix.sandbox-payments-api.com/transfers/TRgnpzmp9nqLiVUfVzLAXkuU/disputes"
    },
    "source": {
      "href": "https://finix.sandbox-payments-api.com/payment_instruments/PI6iQcTtJNCS8GZAVKYi5Ueb"
    },
    "fee_profile": {
      "href": "https://finix.sandbox-payments-api.com/fee_profiles/FPuizPqrhzYLbmJm88u7aqfj"
    }
  }
}

Request Arguments

FieldTypeDescription
amountinteger, requiredThe total amount that will be debited in cents (e.g. 100 cents to debit $1.00)
currencystring, required3-letter ISO code designating the currency of the Transfers (e.g. USD)
merchantstring, requiredMerchant ID of the merchant whom you're charging on behalf of
sourcestring, requiredID of the Payment Instrument that will be debited

Additional Purchase Data Request Arguments

FieldTypeDescription
customer_reference_numberstring, requiredThe customer reference for the purchase (max 17 characters)
customs_duty_amountinteger, requiredThe duty in cents on the total purchase amount for the order. This field must have a value of at least 0.
discount_amountinteger, requiredThe amount in cents of the discount for the order. This field must have a value of at least 0.
shipping_amountinteger, requiredThe shipping cost in cents for the order. This field must have a value of at least 0.
tax_exemptboolean, optionalFor tax exempt purchases set to True

Item Data Request Arguments

FieldTypeDescription
amount_excluding_sales_taxinteger, requiredTotal cost in cents of the line item excluding tax (must be greater than $0.00).
amount_including_sales_taxinteger, requiredTotal cost in cents of the line item including tax (must be greater than $0.00).
commodity_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_unitinteger, requiredThe price in cents of one unit of the item purchased
item_descriptionstring, requiredRequired when item_data is supplied (max 25 characters)
item_discount_amountinteger, requiredItem discount amount in cents
merchant_product_codestring, requiredMerchant defined product code (max 12 characters)
quantityinteger, requiredThe number of items purchased. Must be greater than 0.
unit_of_measurestring, requiredThe unit of measure of the purchased item (max 3 characters)

Create an Authorization with Level 2 and Level 3 Processing

Create an Authorization with Level 2 Processing

Create an Authorization with the additional fields to include Level 2 processing.

curl https://finix.sandbox-payments-api.com/authorizations \
  -H "Content-Type: application/json" \
  -H 'Finix-Version: 2022-02-01' \
  -u  USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
  -d '{
    "additional_purchase_data": {
      "customer_reference_number": "321xyz",
      "sales_tax": 200
    },
    "amount": 1000,
    "currency": "USD",
    "merchant": "MUeDVrf2ahuKc9Eg5TeZugvs",
    "processor": "DUMMY_V1",
    "source": "PIe2YvpcjvoVJ6PzoRPBK137",
    "tags": {
      "order_number": "21DFASJSAKAS"
    }
  }'

A successful response returns 201 and the newly created Authorization.

{
    "id": "AUazNfgBGxPoJ9FbVzsdYLWm",
    "created_at": "2022-10-10T06:39:30.18Z",
    "updated_at": "2022-10-10T06:39:30.56Z",
    "3ds_redirect_url": null,
    "additional_buyer_charges": null,
    "additional_healthcare_data": null,
    "address_verification": "POSTAL_CODE_AND_STREET_MATCH",
    "amount": 1000,
    "amount_requested": 1000,
    "application": "APgPDQrLD52TYvqazjHJJchM",
    "currency": "USD",
    "expires_at": "2022-10-17T06:39:30.18Z",
    "failure_code": null,
    "failure_message": null,
    "idempotency_id": null,
    "is_void": false,
    "merchant": "MUeDVrf2ahuKc9Eg5TeZugvs",
    "merchant_identity": "IDuqZpDw28f2KK6YuDk4jNLg",
    "messages": [],
    "raw": null,
    "security_code_verification": "MATCHED",
    "source": "PIe2YvpcjvoVJ6PzoRPBK137",
    "state": "SUCCEEDED",
    "tags": {
        "order_number": "21DFASJSAKAS"
    },
    "trace_id": "85aeb017-f405-4938-a0f9-a91b9b9ef591",
    "transfer": null,
    "void_state": "UNATTEMPTED",
    "_links": {
        "self": {
            "href": "https://finix.sandbox-payments-api.com/authorizations/AUazNfgBGxPoJ9FbVzsdYLWm"
        },
        "application": {
            "href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
        },
        "merchant_identity": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDuqZpDw28f2KK6YuDk4jNLg"
        }
    }
}

Request Arguments

FieldTypeDescription
amountinteger, requiredThe total amount that will be debited in cents (e.g. 100 cents to debit $1.00)
currencystring, required3-letter ISO code designating the currency of the Transfers (e.g. USD)
merchantstring, requiredMerchant ID of the merchant whom you're charging on behalf of
sourcestring, requiredID of the Payment Instrument that will be debited
Additional Purchase Data Request Arguments
FieldTypeDescription
customer_reference_numberstring, requiredThe customer reference for the purchase (max 17 characters)
sales_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.
Visa Level 2 Deprecation Notice

For Visa, these fields no longer qualify for lower interchange after April 17, 2026. To keep interchange savings on Visa transactions, include Level 3 data.

Create an Authorization with Level 3 Processing

Create an Authorization with the additional fields to include Level 3 processing.

curl https://finix.sandbox-payments-api.com/authorizations \
  -H "Content-Type: application/json" \
  -H 'Finix-Version: 2022-02-01' \
  -u  USsRhsHYZGBPnQw8CByJyEQW:8a14c2f9-d94b-4c72-8f5c-a62908e5b30e \
  -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": "printing paper",
          "item_discount_amount": 100,
          "merchant_product_code": "1149611",
          "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": "printing ink",
          "item_discount_amount": 0,
          "merchant_product_code": "2149612",
          "quantity": 1,
          "unit_of_measure": "CTN"
        }
      ],
      "customer_reference_number": "321xyz",
      "customs_duty_amount": 10,
      "discount_amount": 100,
      "shipping_amount": 100
    },
    "amount": 1000,
    "currency": "USD",
    "merchant": "MUeDVrf2ahuKc9Eg5TeZugvs",
    "source": "PIe2YvpcjvoVJ6PzoRPBK137",
    "tags": {
      "test": "sale"
    }
  }'

A successful response returns 201 and the newly created Authorization.

{
    "id": "AU4HM7X5CcrZ3aXseTreMQ4D",
    "created_at": "2022-10-10T06:40:16.66Z",
    "updated_at": "2022-10-10T06:40:16.90Z",
    "3ds_redirect_url": null,
    "additional_buyer_charges": null,
    "additional_healthcare_data": null,
    "address_verification": "POSTAL_CODE_AND_STREET_MATCH",
    "amount": 1000,
    "amount_requested": 1000,
    "application": "APgPDQrLD52TYvqazjHJJchM",
    "currency": "USD",
    "expires_at": "2022-10-17T06:40:16.66Z",
    "failure_code": null,
    "failure_message": null,
    "idempotency_id": null,
    "is_void": false,
    "merchant": "MUeDVrf2ahuKc9Eg5TeZugvs",
    "merchant_identity": "IDuqZpDw28f2KK6YuDk4jNLg",
    "messages": [],
    "raw": null,
    "security_code_verification": "MATCHED",
    "source": "PIe2YvpcjvoVJ6PzoRPBK137",
    "state": "SUCCEEDED",
    "tags": {
        "test": "sale"
    },
    "trace_id": "b2021017-a86a-4bbd-bfa9-9fe047b73067",
    "transfer": null,
    "void_state": "UNATTEMPTED",
    "_links": {
        "self": {
            "href": "https://finix.sandbox-payments-api.com/authorizations/AU4HM7X5CcrZ3aXseTreMQ4D"
        },
        "application": {
            "href": "https://finix.sandbox-payments-api.com/applications/APgPDQrLD52TYvqazjHJJchM"
        },
        "merchant_identity": {
            "href": "https://finix.sandbox-payments-api.com/identities/IDuqZpDw28f2KK6YuDk4jNLg"
        }
    }
}

Request Arguments

FieldTypeDescription
amountinteger, requiredThe total amount that will be debited in cents (e.g. 100 cents to debit $1.00)
currencystring, required3-letter ISO code designating the currency of the Transfers (e.g. USD)
merchantstring, requiredMerchant ID of the merchant whom you're charging on behalf of
sourcestring, requiredID of the Payment Instrument that will be debited

Additional Purchase Data Request Arguments

FieldTypeDescription
customer_reference_numberstring, requiredThe customer reference for the purchase (max 17 characters)
customs_duty_amountinteger, requiredThe duty in cents on the total purchase amount for the order. This field must have a value of at least 0.
discount_amountinteger, requiredThe amount in cents of the discount for the order. This field must have a value of at least 0.
shipping_amountinteger, requiredThe shipping cost in cents for the order. This field must have a value of at least 0.
tax_exemptboolean, optionalFor tax exempt purchases set to True

Item Data Request Arguments

FieldTypeDescription
amount_excluding_sales_taxinteger, requiredTotal cost in cents of the line item excluding tax
amount_including_sales_taxinteger, requiredTotal cost in cents of the line item including tax
commodity_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_unitinteger, requiredThe price in cents of one unit of the item purchased
item_descriptionstring, requiredRequired when item_data is supplied (max 25 characters)
item_discount_amountinteger, requiredItem discount amount in cents
merchant_product_codestring, requiredMerchant defined product code (max 12 characters)
quantityinteger, requiredThe number of items purchased. Must be greater than 0.
unit_of_measurestring, requiredThe unit of measure of the purchased item (max 3 characters)

Capture an Authorization with Level 2/Level 3 Processing

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

Create a Checkout Form with Level 2/Level 3 Processing

Create a Checkout Form with Level 2 Processing

Create a Checkout Form with additional fields for Level 2 processing.

curl -i -X POST \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  https://finix.sandbox-payments-api.com/checkout_forms \
  -H 'Content-Type: application/json' \
  -H 'Finix-Version: 2022-02-01' \
  -d '{
    "merchant_id": "MU7noQ1wdgdAeAfymw2rfBMq",
    "payment_frequency": "ONE_TIME",
    "allowed_payment_methods": [
      "PAYMENT_CARD"
    ],
    "nickname": "Gym Membership Signup Deposit",
    "amount_details": {
      "amount_breakdown": {
        "estimated_tax_amount": 429,
        "subtotal_amount": 4989,
        "tax_exempt": true
      },
      "amount_type": "FIXED",
      "total_amount": 5418,
      "currency": "USD"
    },
    "branding": {
      "brand_color": "#FFFFFF",
      "accent_color": "#000000",
      "logo": "https://s3.amazonaws.com/customer-uploaded-assets-prod/05-29-2024-09_49_37_Sweat.png_ccb91778-39ec-4cb2-8a13-9f0455acc77b",
      "icon": "https://s3.amazonaws.com/customer-uploaded-assets-prod/05-29-2024-09_49_37_Sweat.png_ccb91778-39ec-4cb2-8a13-9f0455acc77b"
    },
    "additional_details": {
      "terms_of_service_url": "https://sweat.com/terms_of_service.html"
    },
    "attempt_level_two_level_three_payment": true,
    "buyer_details": {
      "customer_reference_number": "321xyz"
    }
  }'

A successful request returns a 201 Created status code and the newly created Checkout Form.

Checkout Form - Level 2 Processing
{
  "id": "checkout_form_cvRSfevDuvZRv3hqt9N9Y",
  "additional_details": {
    "cart_return_url": null,
    "collect_billing_address": false,
    "collect_email": true,
    "collect_name": true,
    "collect_phone": false,
    "collect_shipping_address": false,
    "expiration_in_minutes": 10,
    "expired_session_url": null,
    "receipt_requested_delivery_methods": [],
    "send_receipt": false,
    "success_return_url": null,
    "terms_of_service_url": "https://sweat.com/terms_of_service.html",
    "unsuccessful_return_url": null
  },
  "allowed_payment_methods": [
    "PAYMENT_CARD"
  ],
  "amount_details": {
    "amount_breakdown": {
      "tax_exempt": true, 
      "subtotal_amount": 4989,
      "shipping_amount": null,
      "estimated_tax_amount": 429, 
      "discount_amount": null,
      "tip_amount": null,
      "customs_duty_amount": null,
      "additional_buyer_charges": null
    },
    "amount_type": "FIXED",
    "currency": "USD",
    "max_amount": null,
    "min_amount": null,
    "total_amount": 5418
  },
  "application_id": "APc9vhYcPsRuTSpKD9KpMtPe",
  "attempt_level_two_level_three_payment": true, 
  "branding": {
    "accent_color": "#000000",
    "brand_color": "#FFFFFF",
    "button_font_color": null,
    "icon": "https://s3.amazonaws.com/customer-uploaded-assets-prod/05-29-2024-09_49_37_Sweat.png_ccb91778-39ec-4cb2-8a13-9f0455acc77b",
    "logo": "https://s3.amazonaws.com/customer-uploaded-assets-prod/05-29-2024-09_49_37_Sweat.png_ccb91778-39ec-4cb2-8a13-9f0455acc77b",
    "logo_alternative_text": null
  },
  "buyer_details": {
    "billing_address": null,
    "customer_reference_number": "321xyz", 
    "email": null,
    "first_name": null,
    "identity_id": null,
    "last_name": null,
    "phone": null,
    "shipping_address": null
  },
  "created_at": "2026-01-06T21:53:17.586039Z",
  "is_authorization": false,
  "items": [],
  "link_expires_at": "2026-01-06T22:03:17.556905Z",
  "link_url": "https://link.sandbox-payments-checkout.com/HAWFn3",
  "merchant_id": "MU7noQ1wdgdAeAfymw2rfBMq",
  "nickname": "Gym Membership Signup Deposit",
  "payment_frequency": "ONE_TIME",
  "split_transfers": [],
  "state": "ACTIVE",
  "tags": {},
  "updated_at": "2026-01-06T21:53:17.586039Z",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/checkout_forms/checkout_form_cvRSfevDuvZRv3hqt9N9Y"
    }
  }
}

Level 2 Request Arguments

FieldTypeDescription
amount_details.amount_breakdown.
customs_duty_amount
integer, requiredThe duty in cents on the total payment amount. This field is required for level 3 processing and must have a value of at least 0.
amount_details.amount_breakdown.
discount_amount
integer, optionalThe amount in cents of the discount for the order. This field is optional for Level 3 processing, but its value must be at least 0.
amount_details.amount_breakdown.
estimated_tax_amount
integer, optionalThe estimated amount of tax applied to the order. In order for a transaction to qualify for Level 3 processing, this field must omitted or set to null.
amount_details.amount_breakdown.
shipping_amount
integer, optionalThe shipping cost in cents for the order. This field is optional for Level 3 processing, but its value must be at least 0.
amount_details.amount_breakdown.
tax_exempt
boolean, optionalFor tax exempt payments, set to true.
attempt_level_two_level_three_paymentboolean, requiredSetting this field to true enables Level 2/Level 3 data collection for card payments.
buyer_details.customer_reference_numberstring, requiredThe customer reference for the purchase (max 17 characters). Required for Level 2 / Level 3 processing. For Visa, after April 17, 2026, this field no longer qualifies for lower interchange rates. You must pass level 3 data instead.
items.quantityinteger, requiredThe item quantity.
items.descriptionstring, requiredA item description.
items.item_details.commodity_codestring, requiredCommodity code for the item.
items.item_details.merchant_product_codestring, requiredMerchant's product code for the item.
items.item_details.unit_of_measurestring, requiredUnit of measure for the item.
items.item_details.cost_per_unitinteger, requiredCost per unit in cents.
items.price_details.regular_amountinteger, requiredThe standard price of the item without any adjustments applied (e.g. discounts, taxes, sales).
items.price_details.
amount_excluding_sales_tax
integer, requiredThe amount excluding sales tax.
items.price_details.
item_discount_amount
integer, optionalThe item discount amount in cents. This field is optional for Level 3 processing, but its value must be at least 0.

Create a Checkout Form with Level 3 Processing

Create a Checkout Form with additional fields for Level 3 processing.

curl -i -X POST \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  https://finix.sandbox-payments-api.com/checkout_forms \
  -H 'Content-Type: application/json' \
  -H 'Finix-Version: 2022-02-01' \
  -d '{
    "merchant_id": "MU7noQ1wdgdAeAfymw2rfBMq",
    "payment_frequency": "ONE_TIME",
    "allowed_payment_methods": [
      "PAYMENT_CARD"
    ],
    "nickname": "Gym Membership Signup Deposit",
    "amount_details": {
      "amount_breakdown": {
        "customs_duty_amount": 10,
        "discount_amount": 1000,
        "estimated_tax_amount": null,
        "shipping_amount": 995,
        "subtotal_amount": 3994,
        "tax_exempt": true
      },
      "amount_type": "FIXED",
      "total_amount": 3999,
      "currency": "USD"
    },
    "branding": {
      "brand_color": "#FFFFFF",
      "accent_color": "#000000",
      "logo": "https://s3.amazonaws.com/customer-uploaded-assets-prod/05-29-2024-09_49_37_Sweat.png_ccb91778-39ec-4cb2-8a13-9f0455acc77b",
      "icon": "https://s3.amazonaws.com/customer-uploaded-assets-prod/05-29-2024-09_49_37_Sweat.png_ccb91778-39ec-4cb2-8a13-9f0455acc77b"
    },
    "additional_details": {
      "terms_of_service_url": "https://sweat.com/terms_of_service.html"
    },
    "attempt_level_two_level_three_payment": true,
    "buyer_details": {
      "customer_reference_number": "321xyz"
    },
    "items": [
      {
        "name": "Holiday Dinner Contribution",
        "description": "Your personal contribution to the holiday dinner.",
        "quantity": "1",
        "image_details": {
          "primary_image_url": "https://images.unsplash.com/photo-1608835149345-b4d77bc490ae?q=80&w=3272&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
        },
        "item_details": {
          "commodity_code": "175-62-20",
          "merchant_product_code": "1149611",
          "unit_of_measure": "BX",
          "cost_per_unit": 500
        },
        "price_details": {
          "amount_excluding_sales_tax": 4500,
          "currency": "USD",
          "item_discount_amount": 1000,
          "price_type": "PROMOTIONAL",
          "regular_amount": 4500,
          "sale_amount": 3994
        }
      }
    ]
  }'

A successful request returns a 201 Created status code and the newly created Checkout Form.

Checkout Form - Level 3 Processing
{
  "id": "checkout_form_cvRSX6vjN2MCDuTQZaEmk",
  "additional_details": {
    "cart_return_url": null,
    "collect_billing_address": false,
    "collect_email": true,
    "collect_name": true,
    "collect_phone": false,
    "collect_shipping_address": false,
    "expiration_in_minutes": 10,
    "expired_session_url": null,
    "receipt_requested_delivery_methods": [],
    "send_receipt": false,
    "success_return_url": null,
    "terms_of_service_url": "https://sweat.com/terms_of_service.html",
    "unsuccessful_return_url": null
  },
  "allowed_payment_methods": [
    "PAYMENT_CARD"
  ],
  "amount_details": {
    "amount_breakdown": {
      "tax_exempt": true, 
      "subtotal_amount": 3994,
      "shipping_amount": 995, 
      "estimated_tax_amount": null, 
      "discount_amount": 1000, 
      "tip_amount": null,
      "customs_duty_amount": 10, 
      "additional_buyer_charges": null
    },
    "amount_type": "FIXED",
    "currency": "USD",
    "max_amount": null,
    "min_amount": null,
    "total_amount": 3999
  },
  "application_id": "APc9vhYcPsRuTSpKD9KpMtPe",
  "attempt_level_two_level_three_payment": true, 
  "branding": {
    "accent_color": "#000000",
    "brand_color": "#FFFFFF",
    "button_font_color": null,
    "icon": "https://s3.amazonaws.com/customer-uploaded-assets-prod/05-29-2024-09_49_37_Sweat.png_ccb91778-39ec-4cb2-8a13-9f0455acc77b",
    "logo": "https://s3.amazonaws.com/customer-uploaded-assets-prod/05-29-2024-09_49_37_Sweat.png_ccb91778-39ec-4cb2-8a13-9f0455acc77b",
    "logo_alternative_text": null
  },
  "buyer_details": {
    "billing_address": null,
    "customer_reference_number": "321xyz", 
    "email": null,
    "first_name": null,
    "identity_id": null,
    "last_name": null,
    "phone": null,
    "shipping_address": null
  },
  "created_at": "2026-01-06T22:02:31.912332Z",
  "is_authorization": false,
  "items": [
    {
      "description": "Your personal contribution to the holiday dinner.", 
      "image_details": {
        "primary_image_url": "https://images.unsplash.com/photo-1608835149345-b4d77bc490ae?q=80&w=3272&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
        "alternative_image_urls": []
      },
      "item_details": {
        "commodity_code": "175-62-20", 
        "merchant_product_code": "1149611", 
        "unit_of_measure": "BX", 
        "cost_per_unit": 500
      },
      "name": "Holiday Dinner Contribution",
      "price_details": {
        "sale_amount": 3994,
        "currency": "USD",
        "price_type": "PROMOTIONAL",
        "regular_amount": 4500, 
        "amount_excluding_sales_tax": 4500, 
        "item_discount_amount": 1000
      },
      "quantity": 1
    }
  ],
  "link_expires_at": "2026-01-06T22:12:31.875786Z",
  "link_url": "https://link.sandbox-payments-checkout.com/7c0kT9",
  "merchant_id": "MU7noQ1wdgdAeAfymw2rfBMq",
  "nickname": "Gym Membership Signup Deposit",
  "payment_frequency": "ONE_TIME",
  "split_transfers": [],
  "state": "ACTIVE",
  "tags": {},
  "updated_at": "2026-01-06T22:02:31.912332Z",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/checkout_forms/checkout_form_cvRSX6vjN2MCDuTQZaEmk"
    }
  }
}

Level 3 Request Arguments

FieldTypeDescription
amount_details.amount_breakdown.
customs_duty_amount
integer, requiredThe duty in cents on the total payment amount. This field is required for level 3 processing and must have a value of at least 0.
amount_details.amount_breakdown.
discount_amount
integer, optionalThe amount in cents of the discount for the order. This field is optional for Level 3 processing, but its value must be at least 0.
amount_details.amount_breakdown.
estimated_tax_amount
integer, optionalThe estimated amount of tax applied to the order. In order for a transaction to qualify for Level 3 processing, this field must omitted or set to null.
amount_details.amount_breakdown.
shipping_amount
integer, optionalThe shipping cost in cents for the order. This field is optional for Level 3 processing, but its value must be at least 0.
amount_details.amount_breakdown.
tax_exempt
boolean, optionalFor tax exempt payments, set to true.
attempt_level_two_level_three_paymentboolean, requiredSetting this field to true enables Level 2/Level 3 data collection for card payments.
buyer_details.customer_reference_numberstring, requiredThe customer reference for the purchase (max 17 characters). Required for Level 2 / Level 3 processing. For Visa, after April 17, 2026, this field no longer qualifies for lower interchange rates. You must pass level 3 data instead.
items.quantityinteger, requiredThe item quantity.
items.descriptionstring, requiredA item description.
items.item_details.commodity_codestring, requiredCommodity code for the item.
items.item_details.merchant_product_codestring, requiredMerchant's product code for the item.
items.item_details.unit_of_measurestring, requiredUnit of measure for the item.
items.item_details.cost_per_unitinteger, requiredCost per unit in cents.
items.price_details.regular_amountinteger, requiredThe standard price of the item without any adjustments applied (e.g. discounts, taxes, sales).
items.price_details.
amount_excluding_sales_tax
integer, requiredThe amount excluding sales tax.
items.price_details.
item_discount_amount
integer, optionalThe item discount amount in cents. This field is optional for Level 3 processing, but its value must be at least 0.

Create a Payment Link with additional fields for Level 2 processing.

curl -i -X POST \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  https://finix.sandbox-payments-api.com/payment_links \
  -H 'Content-Type: application/json' \
  -H 'Finix-Version: 2022-02-01' \
  -d '{
    "merchant_id": "MU7noQ1wdgdAeAfymw2rfBMq",
    "application_id": "APc9vhYcPsRuTSpKD9KpMtPe",
    "payment_frequency": "ONE_TIME",
    "is_multiple_use": false,
    "allowed_payment_methods": [
      "PAYMENT_CARD",
      "BANK_ACCOUNT"
    ],
    "amount_details": {
      "amount_breakdown": {
        "estimated_tax_amount": 429,
        "tax_exempt": true
      },
      "amount_type": "FIXED",
      "total_amount": 429,
      "currency": "USD"
    },
    "additional_details": {
      "terms_of_service_url": "https://mybasketball-leaguexyz.com/terms"
    },
    "attempt_level_two_level_three_payment": true,
    "branding": {
      "brand_color": "#111823",
      "accent_color": "#f3eeee",
      "logo": "https://s3.amazonaws.com/customer-uploaded-assets-prod/11-16-2023-04_16_27_2022-04-28-22_56_33-finix-logo-v2.png_0feefc6d-06fe-4c50-a5e4-91dfeb183482",
      "icon": "https://s3.amazonaws.com/customer-uploaded-assets-prod/11-16-2023-04_16_27_2022-04-28-22_56_33-finix-icon-v2.png_0feefc6d-06fe-4c50-a5e4-91dfeb183482",
      "button_font_color": "#111823"
    },
    "buyer_details": {
      "customer_reference_number": "321xyz"
    }
  }'

A successful request returns a 201 Created status code and the newly created Payment Link.

Payment Link - Level 2 Processing
{
  "id": "payment_link_cvcCVsW6VWVhhZ13DWCLk",
  "additional_details": {
    "collect_billing_address": false,
    "collect_email": true,
    "collect_name": true,
    "collect_phone": false,
    "collect_shipping_address": false,
    "expiration_in_minutes": 10080,
    "expired_session_url": null,
    "receipt_requested_delivery_methods": [],
    "send_receipt": false,
    "success_return_url": null,
    "terms_of_service_url": "https://mybasketball-leaguexyz.com/terms",
    "unsuccessful_return_url": null
  },
  "allowed_payment_methods": [
    "BANK_ACCOUNT",
    "PAYMENT_CARD"
  ],
  "amount_details": {
    "amount_breakdown": {
      "tax_exempt": true, 
      "subtotal_amount": null,
      "shipping_amount": null,
      "estimated_tax_amount": 429, 
      "discount_amount": null,
      "tip_amount": null,
      "customs_duty_amount": null,
      "additional_buyer_charges": null
    },
    "amount_type": "FIXED",
    "currency": "USD",
    "max_amount": null,
    "min_amount": null,
    "total_amount": 429
  },
  "application_id": "APc9vhYcPsRuTSpKD9KpMtPe",
  "attempt_level_two_level_three_payment": true, 
  "branding": {
    "accent_color": "#f3eeee",
    "brand_color": "#111823",
    "button_font_color": "#111823",
    "icon": "https://s3.amazonaws.com/customer-uploaded-assets-prod/11-16-2023-04_16_27_2022-04-28-22_56_33-finix-icon-v2.png_0feefc6d-06fe-4c50-a5e4-91dfeb183482",
    "logo": "https://s3.amazonaws.com/customer-uploaded-assets-prod/11-16-2023-04_16_27_2022-04-28-22_56_33-finix-logo-v2.png_0feefc6d-06fe-4c50-a5e4-91dfeb183482",
    "logo_alternative_text": null
  },
  "buyer_details": {
    "customer_reference_number": "321xyz", 
    "first_name": null,
    "identity_id": null,
    "last_name": null
  },
  "created_at": "2025-12-17T17:15:59.631583Z",
  "is_authorization": false,
  "is_multiple_use": false,
  "items": [],
  "link_expires_at": "2025-12-24T17:15:59.599071Z",
  "link_url": "https://link.sandbox-payments-checkout.com/XmXvyY",
  "merchant_id": "MU7noQ1wdgdAeAfymw2rfBMq",
  "nickname": null,
  "payment_frequency": "ONE_TIME",
  "split_transfers": [],
  "state": "ACTIVE",
  "tags": {},
  "updated_at": "2025-12-17T17:15:59.631583Z",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/payment_links/payment_link_cvcCVsW6VWVhhZ13DWCLk"
    }
  }
}

Level 2 Request Arguments

FieldTypeDescription
amount_details.amount_breakdown.
estimated_tax_amount
integer, optionalThe estimated amount of tax applied to the order.
amount_details.amount_breakdown.
tax_exempt
boolean, optionalFor tax exempt payments, set to true.
attempt_level_two_level_three_paymentboolean, requiredSetting this field to true enables Level 2/Level 3 data collection for card payments.
buyer_details.customer_reference_numberstring, requiredThe customer reference for the purchase (max 17 characters). Required for Level 2 / Level 3 processing. For Visa, after April 17, 2026, this field no longer qualifies for lower interchange rates. You must pass level 3 data instead.

Create a Payment Link with additional fields for Level 3 processing.

curl -i -X POST \
  -u USfdccsr1Z5iVbXDyYt7hjZZ:313636f3-fac2-45a7-bff7-a334b93e7bda \
  https://finix.sandbox-payments-api.com/payment_links \
  -H 'Content-Type: application/json' \
  -H 'Finix-Version: 2022-02-01' \
  -d '{
    "merchant_id": "MU7noQ1wdgdAeAfymw2rfBMq",
    "application_id": "APc9vhYcPsRuTSpKD9KpMtPe",
    "payment_frequency": "ONE_TIME",
    "is_multiple_use": false,
    "allowed_payment_methods": [
      "PAYMENT_CARD",
      "BANK_ACCOUNT"
    ],
    "amount_details": {
      "amount_breakdown": {
        "subtotal_amount": 3994,
        "estimated_tax_amount": null,
        "discount_amount": 1000,
        "shipping_amount": 995,
        "customs_duty_amount": 10,
        "tax_exempt": true
      },
      "amount_type": "FIXED",
      "total_amount": 3999,
      "currency": "USD"
    },
    "additional_details": {
      "terms_of_service_url": "https://mybasketball-leaguexyz.com/terms"
    },
    "attempt_level_two_level_three_payment": true,
    "branding": {
      "brand_color": "#111823",
      "accent_color": "#f3eeee",
      "logo": "https://s3.amazonaws.com/customer-uploaded-assets-prod/11-16-2023-04_16_27_2022-04-28-22_56_33-finix-logo-v2.png_0feefc6d-06fe-4c50-a5e4-91dfeb183482",
      "icon": "https://s3.amazonaws.com/customer-uploaded-assets-prod/11-16-2023-04_16_27_2022-04-28-22_56_33-finix-icon-v2.png_0feefc6d-06fe-4c50-a5e4-91dfeb183482",
      "button_font_color": "#111823"
    },
    "buyer_details": {
      "customer_reference_number": "321xyz"
    },
    "items": [
      {
        "name": "Holiday Dinner Contribution",
        "description": "Your personal contribution to the holiday dinner.",
        "quantity": "1",
        "image_details": {
          "primary_image_url": "https://images.unsplash.com/photo-1608835149345-b4d77bc490ae?q=80&w=3272&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D"
        },
        "item_details": {
          "commodity_code": "175-62-20",
          "merchant_product_code": "1149611",
          "unit_of_measure": "BX",
          "cost_per_unit": 500
        },
        "price_details": {
          "amount_excluding_sales_tax": 5000,
          "currency": "USD",
          "item_discount_amount": 1000,
          "price_type": "PROMOTIONAL",
          "regular_amount": 5000,
          "sale_amount": 7500
        }
      }
    ]
  }'

A successful request returns a 201 Created status code and the newly created Payment Link.

Payment Link - Level 3 Processing
{
  "id": "payment_link_cvcCyRyxTyURbGLwwxnGh",
  "additional_details": {
    "collect_billing_address": false,
    "collect_email": true,
    "collect_name": true,
    "collect_phone": false,
    "collect_shipping_address": false,
    "expiration_in_minutes": 10080,
    "expired_session_url": null,
    "receipt_requested_delivery_methods": [],
    "send_receipt": false,
    "success_return_url": null,
    "terms_of_service_url": "https://mybasketball-leaguexyz.com/terms",
    "unsuccessful_return_url": null
  },
  "allowed_payment_methods": [
    "BANK_ACCOUNT",
    "PAYMENT_CARD"
  ],
  "amount_details": {
    "amount_breakdown": {
      "tax_exempt": true, 
      "subtotal_amount": 3994,
      "shipping_amount": 995, 
      "estimated_tax_amount": null, 
      "discount_amount": 1000, 
      "tip_amount": null,
      "customs_duty_amount": 10, 
      "additional_buyer_charges": null
    },
    "amount_type": "FIXED",
    "currency": "USD",
    "max_amount": null,
    "min_amount": null,
    "total_amount": 3999
  },
  "application_id": "APc9vhYcPsRuTSpKD9KpMtPe",
  "attempt_level_two_level_three_payment": true, 
  "branding": {
    "accent_color": "#f3eeee",
    "brand_color": "#111823",
    "button_font_color": "#111823",
    "icon": "https://s3.amazonaws.com/customer-uploaded-assets-prod/11-16-2023-04_16_27_2022-04-28-22_56_33-finix-icon-v2.png_0feefc6d-06fe-4c50-a5e4-91dfeb183482",
    "logo": "https://s3.amazonaws.com/customer-uploaded-assets-prod/11-16-2023-04_16_27_2022-04-28-22_56_33-finix-logo-v2.png_0feefc6d-06fe-4c50-a5e4-91dfeb183482",
    "logo_alternative_text": null
  },
  "buyer_details": {
    "customer_reference_number": "321xyz", 
    "first_name": null,
    "identity_id": null,
    "last_name": null
  },
  "created_at": "2025-12-17T17:11:20.034555Z",
  "is_authorization": false,
  "is_multiple_use": false,
  "items": [
    {
      "description": "Your personal contribution to the holiday dinner.", 
      "image_details": {
        "primary_image_url": "https://images.unsplash.com/photo-1608835149345-b4d77bc490ae?q=80&w=3272&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D",
        "alternative_image_urls": []
      },
      "item_details": {
        "commodity_code": "175-62-20", 
        "merchant_product_code": "1149611", 
        "unit_of_measure": "BX", 
        "cost_per_unit": 500
      },
      "name": "Holiday Dinner Contribution",
      "price_details": {
        "sale_amount": 7500,
        "currency": "USD",
        "price_type": "PROMOTIONAL",
        "regular_amount": 5000, 
        "amount_excluding_sales_tax": 5000, 
        "item_discount_amount": 1000
      },
      "quantity": 1
    }
  ],
  "link_expires_at": "2025-12-24T17:11:20.002213Z",
  "link_url": "https://link.sandbox-payments-checkout.com/mxgK6U",
  "merchant_id": "MU7noQ1wdgdAeAfymw2rfBMq",
  "nickname": null,
  "payment_frequency": "ONE_TIME",
  "split_transfers": [],
  "state": "ACTIVE",
  "tags": {},
  "updated_at": "2025-12-17T17:11:20.034555Z",
  "_links": {
    "self": {
      "href": "https://finix.sandbox-payments-api.com/payment_links/payment_link_cvcCyRyxTyURbGLwwxnGh"
    }
  }
}

Level 3 Request Arguments

FieldTypeDescription
amount_details.amount_breakdown.
customs_duty_amount
integer, requiredThe duty in cents on the total payment amount. This field is required for level 3 processing and must have a value of at least 0.
amount_details.amount_breakdown.
discount_amount
integer, optionalThe amount in cents of the discount for the order. This field is optional for Level 3 processing, but its value must be at least 0.
amount_details.amount_breakdown.
estimated_tax_amount
integer, optionalThe estimated amount of tax applied to the order. In order for a transaction to qualify for Level 3 processing, this field must omitted or set to null.
amount_details.amount_breakdown.
shipping_amount
integer, optionalThe shipping cost in cents for the order. This field is optional for Level 3 processing, but its value must be at least 0.
amount_details.amount_breakdown.
tax_exempt
boolean, optionalFor tax exempt payments, set to true.
attempt_level_two_level_three_paymentboolean, requiredSetting this field to true enables Level 2/Level 3 data collection for card payments.
buyer_details.customer_reference_numberstring, requiredThe customer reference for the purchase (max 17 characters). Required for Level 2 / Level 3 processing. For Visa, after April 17, 2026, this field no longer qualifies for lower interchange rates. You must pass level 3 data instead.
items.quantityinteger, requiredThe item quantity.
items.descriptionstring, requiredA item description.
items.item_details.commodity_codestring, requiredCommodity code for the item.
items.item_details.merchant_product_codestring, requiredMerchant's product code for the item.
items.item_details.unit_of_measurestring, requiredUnit of measure for the item.
items.item_details.cost_per_unitinteger, requiredCost per unit in cents.
items.price_details.regular_amountinteger, requiredThe standard price of the item without any adjustments applied (e.g. discounts, taxes, sales).
items.price_details.
amount_excluding_sales_tax
integer, requiredThe amount excluding sales tax.
items.price_details.
item_discount_amount
integer, optionalThe item discount amount in cents. This field is optional for Level 3 processing, but its value must be at least 0.