Definition of American Express Level 2/3 Request Fields
The Level 2/3 addendum data below pertains to purchasing card data processing. The Level 2/3 data within this section applies to all of the following transactions and is passed as part of the transaction request:
Things to consider:
- Please ensure the addendum data below is complete and accurate.
- Please ensure the math on quantities calculations, amounts, discounts, taxes, etc properly adds up to the overall transaction amount. Incorrect amounts will cause the transaction to be rejected.
Object definition
AxLevel23 level23 = new AxLevel23();
Table 1
Table 1 contains the addendum data heading information. Contains information such as identification elements that uniquely identify an invoice (transaction), the customer name and shipping address.
Object definition
AxTable1 table1 = new AxTable1();
Table 1 - Setting AxRef object
AxRef axRef1 = new AxRef();
String[] ref01 = {"4C", "CR"}; //Reference ID Qualifier
String[] ref02 = {"M5T3A5", "16802309004"}; //Reference ID
axRef1.setRef(ref01[0], ref02[0]);
axRef1.setRef(ref01[1], ref02[1]);
Table 2
Table 2 includes the transaction’s addendum detail. It contains transaction data including reference codes, debit or credit and tax amounts, line item detail descriptions, shipping information and much more. All transaction data in an invoice relate to a single transaction and cardholder account number.
Object definition
AxTable2 table2 = new AxTable2();
Table 2 - Setting AxIt1Loop object
The AxIt1Loop data defines the baseline item data for the invoice. This data is defined for each item/service purchased and included within this invoice. This data set contains basic transaction data, including quantity, unit of measure, unit price and goods/services reference information.
- A minimum of 1 it1Loop required.
- A maximum of 999 it1Loop’s supported.
Object definition
AxIt1Loop it1Loop = new AxIt1Loop();
it1Loop.setIt1Loop(it102[0], it103[0], it104[0], it105[0], it106s[0], txi[0], pam05[0], pid05[0]);
it1Loop.setIt1Loop(it102[1], it103[1], it104[1], it105[1], it106s[1], txi[1], pam05[1], pid05[1]);
Table 2 - Setting AxIt106s object
AxIt106s[] it106s = {new AxIt106s(), new AxIt106s(), new AxIt106s(), new AxIt106s(), new AxIt106s()};
String[] it10618 = {"MG", "MG", "MG", "MG", "MG"}; //Product/Service ID qualifier
String[] it10719 = {"DJFR4", "JFJ49", "FEF33", "FEE43", "DISCOUNT"}; //Product/Service ID (corresponds to it10618)
Table 2 - Setting AxTxi object
//Create Table 2 with details
String[] txi01_GST = {"GS", "GS", "GS", "GS", "GS"}; //Tax type code
String[] txi02_GST = {"0.70", "1.75", "1.00", "0.80","0.00"}; //Monetary amount
String[] txi03_GST = {"5.0", "5.0", "5.0", "5.0","5.0"}; //Percent
String[] txi06_GST = {"", "", "", "",""}; //Tax exempt code
String[] txi01_PST = {"PG", "PG", "PG","PG","PG"}; //Tax type code
String[] txi02_PST = {"0.80", "2.00", "1.00", "0.80","0.00"}; //Monetary amount
String[] txi03_PST = {"7.0", "7.0", "7.0", "7.0","7.0"}; //Percent
String[] txi06_PST = {"", "", "", "",""}; //Tax exempt code
AxTxi[] txi = {new AxTxi(), new AxTxi(), new AxTxi(), new AxTxi(), new AxTxi()};
txi[0].setTxi(txi01_GST[0], txi02_GST[0], txi03_GST[0], txi06_GST[0]);
txi[0].setTxi(txi01_PST[0], txi02_PST[0], txi03_PST[0], txi06_PST[0]);
txi[1].setTxi(txi01_GST[1], txi02_GST[1], txi03_GST[1], txi06_GST[1]);
txi[1].setTxi(txi01_PST[1], txi02_PST[1], txi03_PST[1], txi06_PST[1]);
txi[2].setTxi(txi01_GST[2], txi02_GST[2], txi03_GST[2], txi06_GST[2]);
txi[2].setTxi(txi01_PST[2], txi02_PST[2], txi03_PST[2], txi06_PST[2]);
txi[3].setTxi(txi01_GST[3], txi02_GST[3], txi03_GST[3], txi06_GST[3]);
txi[3].setTxi(txi01_PST[3], txi02_PST[3], txi03_PST[3], txi06_PST[3]);
txi[4].setTxi(txi01_GST[4], txi02_GST[4], txi03_GST[4], txi06_GST[4]);
txi[4].setTxi(txi01_PST[4], txi02_PST[4], txi03_PST[4], txi06_PST[4]);
Table 3
Table 3 includes the transaction addendum summary. It contains the total invoice (transaction) amount, sales tax, freight and/or handling charges and invoice summary information, including total line items, number of segments in the invoice, and the transaction set control number (a.k.a., batch number).
Object definition
AxTable3 table3 = new AxTable3();
Table 3 - Setting AxTxi object
The mandatory tax information data set must contain the total tax amount applicable to the entire invoice (transaction) which includes all line items identified in Table2. If taxes are not applicable for the entire invoice (transaction), then txi02 must be set to 0.00.
Tax totals must be entered in this mandatory tax information segment in Table 3, even if line item detail level tax data is reported in Table 2.
At least one occurrence of txi02, txi03 or txi06 is required.
AxTxi taxTbl3 = new AxTxi();
taxTbl3.setTxi("GS", "4.25","5.0",""); //sum of GST taxes
taxTbl3.setTxi("PG", "4.60","7.0",""); //sum of PST taxes
taxTbl3.setTxi("TX", "8.85","13.0",""); //sum of all taxes