EPX platform supports Enhanced Level II and Level III processing, a feature engineered to help merchants target lower interchange fees on B2B, corporate, and purchasing card transactions. By including tax indicators and itemized line-item details formatted in Tag-Length-Value (TLV) alongside sales, authorizations, or captures, you provide the enhanced data intended to position your transactions for discounted processing rates, subject to individual card brand qualification rules.
How Level II & Level III Data Works
Level II
Level II processing is achieved by supplying tax amounts ( TAX_AMT ), tax exemption status ( TAX_EXEMPT ), and a tracking reference directly in standard API fields. EPX requires one of the following reference tags to be populated:
INVOICE_NBRORDER_NBRREFERENCE_NBR
EPX uses the first item populated in the list above. If none of these three reference tags are supplied, EPX automatically populates REFERENCE_NBR with the transaction's BRIC (GUID) token. Although the ENHANCED_TLV tag is not mandatory to meet Level II requirements, it can still be supplied with transaction requests for summary and line item data to be displayed on the cardholder statement.
Level III
Level III processing builds upon Level II by adding granular itemization using the ENHANCED_TLV field. The ENHANCED_TLV tag encodes summary-level details (such as customer reference numbers, shipping costs, or order dates) and item-level details (such as commodity codes, product descriptions, unit costs, and quantities) into a structured single string using Tag-Length-Value formatting.
Card Brand Requirements Notice
Summary and line item sub-tags indicated as optional or required are based on card brand requirements. Card networks may update these requirements in the future based on program changes such as Visa Commercial Enhanced Data Program (CEDP) or Mastercard Enhanced Data Rate.
Critical Processing Rules
- Data Validation: All TLV tags must contain valid (real) data. Tags populated with placeholder values such as all zeroes or all spaces are invalid and will not be included in network transmissions.
- Amount Calculation: All counts and sub-amounts within summary data, line-item data, and the
TAX_AMTtag must be accurately calculated so that line item totals plus taxes reflect the exact total in theAMOUNTAPI tag. - Card Brand Level III Programs: Visa and MasterCard offer official Level III qualification programs. While Discover and American Express do not currently offer formal Level III interchange programs, enhanced summary and line-item TLV data can still be submitted with transactions to be displayed on cardholder statements.
- Summary Set Constraint: Only one summary data TLV set tag (
002) is permitted perENHANCED_TLVstring. If multiple summary sets are submitted, EPX evaluates only the first set found and ignores subsequent002sets. All summary sub-tags must be valid and meet minimum requirements. Multiple line-item sets (003) are supported.
Adding Level II and III processing to your application is accomplished by submitting requests via the Server Post API with Sale (CCx1), Authorization Only (CCx2), or Capture Only (CCx4) transaction types.
Integration Guide
| Environment | Base URL |
|---|---|
| Sandbox | https://secure.epxuap.com |
How To Test
Get Sandbox Credentials by clicking the "Get Sandbox Creds" button on the product page to send Server Post requests in a test environment. Ensure all numeric counts, totals, and tax amounts match the sum of line item totals in the ENHANCED_TLV payload to prevent network rejection.
Supported Character Set Formats
The following variable types define character set rules and formatting requirements for ENHANCED_TLV data elements:
| Variable Type | Definition | Supported Characters |
|---|---|---|
| AU | Alpha upper case | A-Z |
| DO | Decimal Optional | Numeric values with optional decimal point (e.g., n, n.n, n.nn, n.nnn, n.nnnn) |
| DR | Decimal Required | Numeric values requiring explicit decimal point (e.g., n.nn or n.nnnn) |
| N | Numeric | 0-9 |
| S1 | Special 1 | Space , - |
| S5 | Special 5 | Space |
| S6 | Special 6 | Space, - |
| S7 | Special 7 | Standard character string |
| YN | Yes / No | Y or N |
TLV Format and Structure Overview
Level III data transmitted via the ENHANCED_TLV API field uses Tag-Length-Value formatting:
- Tag: Fixed 3-digit numeric string [000-999] identifying the data element or set.
- Length: Fixed 4-digit numeric string [0001-9999] representing the exact character count of the following value.
- Value: Variable alphanumeric content up to 9,999 characters.
Main TLV Sets
The ENHANCED_TLV payload is built by concatenating up to three main TLV Sets:
- Set 001 (TLV Set Type): Required first tag in the TLV string. Defines the card brand format (
VISA_G,MC_G,DISC_G,AMEX_A20). - Set 002 (Summary Data): Contains transaction-level summary sub-tags (e.g., customer codes, shipping/freight charges, order dates). Length header is 4-digit numeric (
N4). - Set 003 (Line Item Data): Contains item-level sub-tags. Length header is 4-digit numeric (
N4). Multiple003sets can be concatenated for multi-item purchases.
Example TLV String Breakdown (Visa General)
Full Raw String:
Parsed Elements Breakdown Table:
| TLV Tag | Plaintext Value | TLV Representation |
|---|---|---|
| 001 (Set 001 Type - Mandatory) | VISA G | 0010006VISA_G |
| 002 (Summary Data Set) | Summary Set Header (Length 47 bytes) | 0020047 |
| 001 (Sub-Tag) | CUSTOMER REF NUM | 0010016CUSTOMER REF NUM |
| 005 (Sub-Tag) | 0.00 | 00500040.00 |
| 011 (Sub-Tag) | 030722 | 0110006030722 |
| 003 (Line Item Data Set) | Line Item Set Header (Length 110 bytes) | 0030110 |
| 001 (Sub-Tag) | ITEM QUANT | 0010010ITEM QUANT |
| 002 (Sub-Tag) | ITEM DESCRIPTION | 0020016ITEM DESCRIPTION |
| 003 (Sub-Tag) | PRODUCT CODE | 0030012PRODUCT CODE |
| 004 (Sub-Tag) | 2 | 00400012 |
| 005 (Sub-Tag) | UNIT MEASURE | 0050012UNIT MEASURE |
| 006 (Sub-Tag) | 12.25 | 006000512.25 |
| 010 (Sub-Tag) | 24.50 | 010000524.50 |
Visa Business & Corporate Cards - General (VISA_G)
Visa Level III transactions require fixed set type VISA_G as the first tag. TAX_AMT and TAX_EXEMPT are supplied via standard API calls and are not included inside ENHANCED_TLV.
Set 001 Type
| TLV Set Tag | TLV Data | Variable Type | Max Length | Requirement |
|---|---|---|---|---|
| 001 | Always use fixed value "VISA_G" | Alpha upper case with underscore | 6 | Mandatory |
Set 002 Summary Data Header & Sub-Tags
Conditional: Mandatory only if summary data sub-tags are included in the string; otherwise optional and can be omitted. Set tag 002 length indicator is a 4-digit numeric value (N4). Only one Set 002 is allowed per string.
| Sub-Tag | Data Element | Variable Type | Format Requirement | Max Length | Requirement |
|---|---|---|---|---|---|
| 001 | Customer Code | AU, N, S1 | Alphanumeric | 17 | Optional |
| 004 | Discount Amount | N, DR | n.nn | 13 | Optional |
| 005 | Freight/Shipping Amount | N, DR | n.nn | 13 | Optional |
| 006 | Duty Amount | N, DR | n.nn | 13 | Optional |
| 007 | Destination Postal/Zip Code | AU, N, S5, S7 | Alphanumeric | 10 | Optional |
| 008 | Ship From Postal/Zip Code | AU, N, S5, S7 | Alphanumeric | 10 | Optional |
| 009 | Destination Country Code | AU, N | Alpha/Numeric | 3 | Optional |
| 010 | VAT Invoice Reference Number | AU, N, S6 | Alphanumeric | 15 | Optional |
| 011 | Order Date | N6 | MMDDYY | 6 | Optional |
| 012 | VAT/Tax Amount (Freight/Shipping) | N, DR | n.nn | 13 | Optional |
| 013 | VAT/Tax Rate (Freight/Shipping) | N, DR | n.nn | 5 | Optional |
Set 003 Line Item Header & Sub-Tags
Mandatory: Set tag 003 must be present in the TLV string. Set tag 003 length indicator is a 4-digit numeric value (N4). Multiple line item sets are allowed. Only valid line item data set tags will be used if all line item sub-tags are valid and meet minimum requirements.
| Sub-Tag | Data Element | Variable Type | Format Requirement | Max Length | Requirement |
|---|---|---|---|---|---|
| 001 | Item Commodity Code | AU, N, S1 | Alphanumeric | 12 | Mandatory |
| 002 | Item Description | AU, N, S1 | Alphanumeric | 26 | Mandatory |
| 003 | Product Code | AU, N, S1 | Alphanumeric | 12 | Mandatory |
| 004 | Quantity | N, DO | n (decimal not required), n.n, n.nn, n.nnn, n.nnnn | 12 | Mandatory |
| 005 | Unit Of Measure | AU, N | Alpha/Numeric | 13 | Mandatory |
| 006 | Unit Cost | N, DR | n.nn, n.nnnn | 13 | Mandatory |
| 007 | VAT/Tax Amount | N, DR | n.nn | 13 | Optional |
| 008 | VAT/Tax Rate | N, DR | n.nn | 13 | Optional |
| 009 | Discount per line Item | N, DR | n.nn | 13 | Optional |
| 010 | Line Item Total | N, DR | n.nn | 13 | Mandatory |
MasterCard Business & Corporate Cards - General (MC_G)
MasterCard Level III processing requires fixed set type MC_G as the first tag. TAX_AMT and TAX_EXEMPT are supplied via API calls and are not part of ENHANCED_TLV.
Set 001 Type
| TLV Set Tag | TLV Data | Variable Type | Max Length | Requirement |
|---|---|---|---|---|
| 001 | Always use fixed value "MC_G" | Alpha upper case with underscore | 4 | Mandatory |
Set 002 Summary Data Header & Sub-Tags
Mandatory: Set tag 002 must be present in the string. Set tag 002 length indicator is a 4-digit numeric value (N4). Only one summary set is allowed; additional summary sets are ignored.
| Sub-Tag | Data Element | Variable Type | Format Requirement | Max Length | Requirement |
|---|---|---|---|---|---|
| 001 | Customer Code | AU, N, S1 | Alphanumeric | 25 | Mandatory |
Set 003 Line Item Header & Sub-Tags
Mandatory: Set tag 003 must be present. Set tag 003 length indicator is a 4-digit numeric value (N4). Multiple line item sets are allowed. Only valid line item data set tags will be used if all line item sub-tags are valid and meet minimum requirements.
| Sub-Tag | Data Element | Variable Type | Format Requirement | Max Length | Requirement |
|---|---|---|---|---|---|
| 001 | Product Code | AU, N, S6 | Alphanumeric | 15 | Mandatory |
| 002 | Item Description | AU, N, S1 | Alphanumeric | 35 | Mandatory |
| 003 | Item Quantity | N, DO | n (decimal not required), n.n, n.nn, n.nnn, n.nnnn | 12 | Mandatory |
| 004 | Item Unit Of Measure | AU, N | Alpha/Numeric | 3 | Mandatory |
| 005 | Extended Item Amount | N, DR | n.nn | 13 | Mandatory |
| 007 | Purchase Order | AU, N, S1 | Alphanumeric | 17 | Optional |
Discover Enhanced Data - General (DISC_G)
Discover Enhanced Data uses set type DISC_G. While Discover does not currently offer a formal Level III interchange program, enhanced data can be supplied to be displayed on cardholder statements. TAX_AMT and TAX_EXEMPT are supplied via API calls and are not part of ENHANCED_TLV.
Set 001 Type
| TLV Set Tag | TLV Data | Variable Type | Max Length | Requirement |
|---|---|---|---|---|
| 001 | Always use fixed value "DISC_G" | Alpha upper case with underscore | 6 | Mandatory |
Set 002 Summary Data Header & Sub-Tags
Conditional: Mandatory only if summary sub-tags are included; otherwise optional and can be omitted. Set tag 002 length indicator is a 4-digit numeric value (N4). Only one summary set is allowed.
| Sub-Tag | Data Element | Variable Type | Format Requirement | Max Length | Requirement |
|---|---|---|---|---|---|
| 004 | Sales Tax Indicator | YN | Y or N | 1 | Optional |
| 005 | Alternate Tax Amount | N, DR | n.nn | 12 | Optional |
| 006 | Tax Rate Applied | N, DR | n.nn | 6 | Optional |
| 007 | Ship to Postal Code | AU, N, S5, S7 | Alphanumeric | 10 | Optional |
| 008 | Ship From Postal Code | AU, N, S5, S7 | Alphanumeric | 10 | Optional |
Set 003 Line Item Header & Sub-Tags
Conditional: Mandatory only if line item sub-tags are included; otherwise optional and can be omitted. Set tag 003 length indicator is a 4-digit numeric value (N4). Multiple line item sets are allowed.
| Sub-Tag | Data Element | Variable Type | Format Requirement | Max Length | Requirement |
|---|---|---|---|---|---|
| 001 | Dept/Category Code | AU, N, S1 | Alphanumeric | 8 | Optional |
| 002 | Item Description | AU, N, S1 | Alphanumeric | 35 | Optional |
| 003 | Product Code | AU, N, S1 | Alphanumeric | 20 | Optional |
| 004 | Item Quantity | N | Numeric | 5 | Optional |
| 005 | Item Unit of Measure | AU, N | Alpha/Numeric | 3 | Optional |
| 006 | Item Amount | N, DR | n.nn | 12 | Optional |
| 009 | Discount Amount | N, DR | n.nn | 12 | Optional |
| 011 | Promotional Code | AU, N, S1 | Alphanumeric | 6 | Optional |
| 012 | Promotional Start Date | N8 | MMDDYYYY | 8 | Optional |
| 013 | Promotional End Date | N8 | MMDDYYYY | 8 | Optional |
American Express Enhanced Data (AMEX_A20)
American Express Enhanced Data uses set type AMEX_A20. While American Express does not currently offer a formal Level III interchange program, enhanced data can be supplied to be displayed on cardholder statements. TAX_AMT and TAX_EXEMPT are supplied via API calls and are not part of ENHANCED_TLV.
Set 001 Type
| TLV Set Tag | TLV Data | Variable Type | Max Length | Requirement |
|---|---|---|---|---|
| 001 | Always use fixed value "AMEX_A20" | Alpha upper case with underscore | 8 | Mandatory |
Set 002 Summary Data Header & Sub-Tags
Conditional: Mandatory only if summary sub-tags are included; otherwise optional and can be omitted. Set tag 002 length indicator is a 4-digit numeric value (N4). Only one summary set is allowed.
| Sub-Tag | Data Element | Variable Type | Format Requirement | Max Length | Requirement |
|---|---|---|---|---|---|
| 001 | Department Name | AU, N, S1 | Alphanumeric | 40 | Optional |
Set 003 Line Item Header & Sub-Tags
Conditional: Mandatory only if line item sub-tags are included; otherwise optional and can be omitted. Set tag 003 length indicator is a 4-digit numeric value (N4). Multiple line item sets are allowed.
| Sub-Tag | Data Element | Variable Type | Format Requirement | Max Length | Requirement |
|---|---|---|---|---|---|
| 001 | Item Description | AU, N, S1 | Alphanumeric | 19 | Optional |
| 002 | Item Quantity | N | Numeric | 3 | Optional |
| 003 | Item Amount | N, DR | n.nn | 13 | Optional |
HTTPS POST Request Samples
Data is formatted using key-value pair (x-www-form-urlencoded) encoding and sent via POST to the Server Post API over port 443.
Level II Request (CCx1 - Sale with Tax)
Level III Request (CCx1 - Visa Sale with TLV Data)
Request Fields
| Field Name | Description |
|---|---|
| CUST_NBR / MERCH_NBR / DBA_NBR / TERMINAL_NBR | Merchant credentials forming the 4-part authentication key. |
| TRAN_TYPE | Transaction type code (`CCX1` for Sale, `CCX2` for Auth Only, `CCX4` for Capture Only). |
| AMOUNT | Total dollar amount of the transaction. Must reflect taxes, discounts, and item grand totals. |
| TAX_AMT | The tax portion included in the transaction amount. Set to 0.00 if tax-exempt. |
| TAX_EXEMPT | Indicates tax exemption status (Y or N). |
| INVOICE_NBR / ORDER_NBR / REFERENCE_NBR | Transaction reference identifiers used to fulfill Level II requirements. EPX populates REFERENCE_NBR with BRIC if all three are omitted. |
| ENHANCED_TLV | Formatted string containing Level III TLV set tags and sub-tags. |
Response Validation
To verify execution, evaluate the AUTH_RESP field in the XML response. Code 00 or 85 represents approval; other values denote decline or rejection. For further assistance, refer to the EPX Data Dictionary.