My Profile_


Transaction Flow for American Express Level 2/3

Transaction Examples

The following transaction set includes a suite of corporate card financial transactions as well as a transaction that allows for the passing of Level 2/3 data.  Please ensure American Express Level 2/3 processing support is enabled on your merchant account. Batch Close, Open Totals and Pre-authorization are identical to the non-American Express transactions outlined in Transaction Examples for Non-Level 2/3 Card Types 

  • When the Pre-authorization response contains CorporateCard equal to true then you can submit the AX transactions.
  • If CorporateCard is false then the card does not support Level 2/3 data and non Level 2/3 transaction are to be used. If the card is not a corporate card, please refer to Transaction Examples for Non-Level 2/3 Card Types for the appropriate non-corporate card transactions.

Note: This transaction set is intended for transactions where Corporate Card is true and Level 2/3 data will be submitted.

  • If the credit card is found to be a corporate card but you do not wish to send any Level 2/3 data then you may submit AX transactions using the transaction set outlined in Transaction Examples for Non-Level 2/3 Card Types
  • Pre-authorization

    The pre-authorization verifies and locks funds on the customer’s credit card.  The funds are locked for a specified amount of time, based on the card issuer.  To retrieve the funds from a pre-authorization so that they may be settled in the merchant account a pre-authorization completion must be performed. CorporateCard will return as true if the card supports Level 2/3.

    Note: Refer to CorporateCard being returned within the response to determine the next transaction. If the value is”true” proceed with AXCompletion. If false, return to Transaction Examples for Non-Level 2/3 Card Types.

    Canada Code Sample
    
    namespace Moneris
    {
        using System;
        
    	public class TestPreAuth 	
    {
    	  public static void Main(string[] args) 	  
    {
    		string host = "esqa.moneris.com";
    		string order_id = "Need_Unique_Order_ID";
    		string store_id = "moneris";
    		string api_token = "hurgle";
    		string amount = "304.00";
    		string card = "373269005095005";
    		string exp_date = "1010";
    		string crypt = "7";
    		
    	        HttpsPostRequest mpgReq = new HttpsPostRequest(host, store_id, api_token, new PreAuth(order_id, amount, card, 
    							exp_date, crypt));
    	        try       
                            {
    		            Receipt receipt = mpgReq.GetReceipt();
    	    		Console.WriteLine("CardType = " + receipt.GetCardType());
    	    		Console.WriteLine("TransAmount = " + receipt.GetTransAmount());
    	    		Console.WriteLine("TxnNumber = " + receipt.GetTxnNumber());
    	    		Console.WriteLine("ReceiptId = " + receipt.GetReceiptId());
    	    		Console.WriteLine("TransType = " + receipt.GetTransType());
    	    		Console.WriteLine("ReferenceNum = " + receipt.GetReferenceNum());
    	    		Console.WriteLine("ResponseCode = " + receipt.GetResponseCode());
    	    		Console.WriteLine("ISO = " + receipt.GetISO());
    	    		Console.WriteLine("BankTotals = " + receipt.GetBankTotals());
    	    		Console.WriteLine("Message = " + receipt.GetMessage());
    	    		Console.WriteLine("AuthCode = " + receipt.GetAuthCode());
    	    		Console.WriteLine("Complete = " + receipt.GetComplete());
    	    		Console.WriteLine("TransDate = " + receipt.GetTransDate());
    	    		Console.WriteLine("TransTime = " + receipt.GetTransTime());
    	    		Console.WriteLine("Ticket = " + receipt.GetTicket());
    	    		Console.WriteLine("TimedOut = " + receipt.GetTimedOut());
    			Console.WriteLine("CorporateCard = " + receipt.GetCorporateCard());
    			Console.WriteLine("MessageId = " + receipt.GetMessageId());
    	        }
    	        catch (Exception e)        
            {
    	            Console.WriteLine(e);
    	        }
    	  }
    	} 
    }
    
                    

    Pre-Authorization- Transaction Values

    HttpsPostRequest mpgReq = new HttpsPostRequest(host, store_id, api_token, new Preauth(order_id, amount, card, exp, crypt));

     

    Pre-Authorization object mandatory values

    Value

    Type

    Limits

    Variable

    Description

    Order ID

    String

    50-character alphanumeric

    order_id

    Merchant-defined transaction identifier that must be unique for every Purchase, Pre-Authorization and Independent Refund transaction. No two transactions of these types may have the same order ID.

    For Refund, Completion and Purchase Correction transactions, the order ID must be the same as that of the original transaction.

    The last 10 characters of the order ID are displayed in the “Invoice Number” field on the Merchant Direct Reports. However only letters, numbers and spaces are sent to Merchant Direct.

    A minimum of 3 and a maximum of 10 valid characters are sent to Merchant Direct. Only the last characters beginning after any invalid characters are sent. For example, if the order ID is 1234-567890, only 567890 is sent to Merchant Direct.

    If the order ID has fewer than 3 characters, it may display a blank or 0000000000 in the Invoice Number field.

    Amount

    String

    9-character decimal

    amount

    Transaction amount This must contain at least 3 digits, two of which are penny values.
    The minimum allowable value is $0.01, and the maximum allowable value is $999999.99. Transaction amounts of $0.00 are not allowed.

    Credit card number

    String

    20-character numeric

    card

    Most credit card numbers today are 16 digits, but some 13-digit numbers are still accepted by some issuers. This field has been intentionally expanded to 20 digits in consideration for future expansion and potential support of private label card ranges.

    Expiry date

    String

    4-character numeric
    YYMM format.

    exp

    Submit in YYMM format.
    Note: This is the reverse of the date displayed on the physical card, which is MMYY.

    E-Commerce indicator

    String

    1-character alphanumeric

    crypt

    Supported values are:

    1 - Mail Order / Telephone Order—Single

    2 - Mail Order / Telephone Order—Recurring

    3 - Mail Order / Telephone Order—Instalment

    4 - Mail Order / Telephone Order—Unknown classification

    5 - Authenticated e-commerce transaction (VBV)

    6 - Non-authenticated e-commerce transaction (VBV)

    7 - SSL-enabled merchant

    8 - Non-secure transaction (web- or email-based)

    9 - SET non-authenticated transaction

    Predecessors:
    • None
    Successors:
  • AXCompletion

  • AXCompletion

    AXCompletion

    Once a Pre-authorization is obtained the funds that are locked need to be retrieved from the customer’s credit card. The American Express Completion transaction is used to secure the funds locked by a pre-authorization transaction. The pre-authorization completion retrieves the locked funds and readies them for settlement in to the merchant account.

    Canada Code Sample
    
    using System;
    using System.Collections;
    
    namespace Moneris
    {
    	public class TestAXCompletion
    	{
    		public static void Main(string[] args)
    		{
    			string host = "esqa.moneris.com";
    			string store_id = "moneris";
    			string api_token = "hurgle";
    			string order_id = "Need_Unique_Order_ID";
    			string txn_number = "8916-30-0";
    			string amount = "62.37";			
    
    			/******************** Table 1 - HEADING *********************/
    			
    			string n101 = "R6";	//Entity ID Code
    			string n102 = "Retailing Inc. International";	//Name
    			string n301 = "919 Oriole Rd.";		//Address Line 1
    			string n401 = "Toronto";		//City 
    			string n402 = "On";			//State or Province
    			string n403 = "H1T6W3";			//Postal Code
    	
    			string big04 = "PO7758545";	//Purchase Order Number
    			string big05 = "RN0049858";	//Release Number
    			string big10 = “INV998123”;	//Invoice Number
    			
    			string[] ref01 = new string[]{"4C", "CR"};	//Reference ID Qualifier
    			string[] ref02 = new string[]{"M5T3A5", "16802309004"}; //Reference ID 
    
    			RefAx[] refID = new RefAx[2]; 
    			refID[0] = new RefAx (ref01[0], ref02[0]); 	
    			refID[1] = new RefAx (ref01[1], ref02[1]); 
    			
    			N1_loop[] n1 = new N1_loop[1];
    			n1[0] = new N1_loop (n101, n102, n301, "",
    					     n401, n402, n403, refID);	
    						  
    			Table1 tbl1 = new Table1 (big04, big05, big10, n1);  			
    			
    			
    			/********************* Table 2 - DETAIL *********************/
    			//the sum of the extended amount field (i.e. paramater #7 of It1_Loop
    			//must equal the level 1 amount field)	
    			
    			string[] it102 = new string[]{"1", "1", "1", "1"};	//Line item quantity invoiced
    			string[] it103 = new string[]{"EA", "EA", "EA", "EA"};  //Line item unit or basis of measurement code
    			string[] it104 = new string[]{"10.00", "25.00", "8.62", "10.00"};   //Line item unit price
    			string[] it105 = new string[]{"", "", "", ""};	//Line item basis of unit price code	
    			
    			string[] it10618 = new string[]{"MG", "MG", "MG", "MG"};   //Product/Service ID qualifier
    		string[] it10719 = new string[]{"DJFR4", "JFJ49","FEF33","FEE43"}; 
    //Product/Service ID (corresponds to it10618)
    			
    			string[] txi01_GST = new string[]{"GS", "GS", "GS", "GS"};	//Tax type code
    			string[] txi02_GST = new string[]{"0.70", "1.75", "1.00", "0.80"};	//Monetary amount
    			string[] txi03_GST = new string[]{"", "", "", ""};		//Percent
    			string[] txi06_GST = new string[]{"", "", "", ""};		//Tax exempt code
    			
    			string[] txi01_PST = new string[]{"PG", "PG", "PG", "PG"};	//Tax type code
    			string[] txi02_PST = new string[]{"0.80", "2.00", "1.00", "0.80"};	//Monetary amount
    			string[] txi03_PST = new string[]{"", "", "", ""};		//Percent
    			string[] txi06_PST = new string[]{"", "", "", ""};		//Tax exempt code
    			
    Txi[] taxGST = new Txi[4]{new Txi(txi01_GST[0], txi02_GST[0], txi03_GST[0], txi06_GST[0]), 
    						  new Txi(txi01_GST[1], txi02_GST[1], txi03_GST[1], txi06_GST[1]),
    				      		  new Txi(txi01_GST[2], txi02_GST[2], txi03_GST[2], txi06_GST[2]), 
    				      		  new Txi(txi01_GST[3], txi02_GST[3], txi03_GST[3], txi06_GST[3])};
    			
    			Txi[] taxPST = new Txi[4]{new Txi(txi01_PST[0], txi02_PST[0], txi03_PST[0], txi06_PST[0]), 
    						  new Txi(txi01_PST[1], txi02_PST[1], txi03_PST[1], txi06_PST[1]),
    				      		  new Txi(txi01_PST[2], txi02_PST[2], txi03_PST[2], txi06_PST[2]),
    				      		  new Txi(txi01_PST[3], txi02_PST[3], txi03_PST[3], txi06_PST[3])};
    						  
    			string[] pam05 = new string[]{"10.00", "25.00", "8.62", "10.00"};	//Extended line-item amount
    			string[] pid05 = new string[]{"Stapler", "Lamp", "Bottled Water", "Fountain Pen"};	//Line item desc
    
    			ArrayList itQual = new ArrayList();	//array list to hold product IDs and Descriptions
    			ArrayList level3Taxes = new ArrayList();    //list to hold GST and PST objects for each item
    					
    			int numOfItems = pid05.Length;
    						
    			It1_loop[] itemLoop = new It1_loop[numOfItems]; //instantiate array of items object 
    			
    			for (int item = 0; item < pid05.Length; item++)
    			{
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});	
    
    				level3Taxes.Add(new Txi[]{taxGST[0], taxPST[0]}); //create tax object for item 1 
    				level3Taxes.Add(new Txi[]{taxGST[1], taxPST[1]}); //create tax object for item 2 
    				level3Taxes.Add(new Txi[]{taxGST[2], taxPST[2]}); //create tax object for item 3 
    				level3Taxes.Add(new Txi[]{taxGST[3], taxPST[3]}); //create tax object for item 4 
    			
    				itemLoop[item] = new It1_loop(it102[item], it103[item], it104[item], 
    							      it105[item], (It106s[])(itQual[item]), 
    							      (Txi[])(level3Taxes[item]), pam05[item], pid05[item]);
    			}		
    
    			Table2 tbl2 = new Table2 (itemLoop); //element of AXLevel23
    			
    			
    			/********************* Table 3 - SUMMARY ********************/		
    			
    			Txi[] taxTbl3 = new Txi[3];	
    			taxTbl3[0] = new Txi("GS", "4.25","","");	//sum of GST taxes
    			taxTbl3[1] = new Txi("PG", "4.60","","");	//sum of PST taxes
    			taxTbl3[2] = new Txi("TX", "8.85","","");
    			
    			Table3 tbl3 = new Table3(taxTbl3);
    			
    			/**********************   REQUEST  ************************/
    			
    			AXLevel23 level23 = new AXLevel23(tbl1, tbl2, tbl3);		
    			
    			try
    			{
    				L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, 
    					new AXCompletion(order_id, amount, txn_number, level23));
    					
    				Receipt myReceipt=request.GetReceipt();
    				Console.WriteLine("CardType = " + myReceipt.GetCardType());
    				Console.WriteLine("TransAmount = " + myReceipt.GetTransAmount());
    				Console.WriteLine("TxnNumber = " + myReceipt.GetTxnNumber());
    				Console.WriteLine("ReceiptId = " + myReceipt.GetReceiptId());
    				Console.WriteLine("TransType = " + myReceipt.GetTransType());
    				Console.WriteLine("ReferenceNum = " + myReceipt.GetReferenceNum());
    				Console.WriteLine("ResponseCode = " + myReceipt.GetResponseCode());
    				Console.WriteLine("ISO = " + myReceipt.GetISO());
    				Console.WriteLine("BankTotals = " + myReceipt.GetBankTotals());
    				Console.WriteLine("Message = " + myReceipt.GetMessage());
    				Console.WriteLine("AuthCode = " + myReceipt.GetAuthCode());
    				Console.WriteLine("Complete = " + myReceipt.GetComplete());
    				Console.WriteLine("TransDate = " + myReceipt.GetTransDate());
    				Console.WriteLine("TransTime = " + myReceipt.GetTransTime());
    				Console.WriteLine("Ticket = " + myReceipt.GetTicket());
    				Console.WriteLine("TimedOut = " + myReceipt.GetTimedOut());
    				Console.WriteLine("CorporateCard = " + myReceipt.GetCorporateCard());
    				Console.WriteLine("MessageId = " + myReceipt.GetMessageId());
    			}
    				
    			catch ( Exception e )
    			{
    				Console.WriteLine(e);
    			}
    			
    		}
    	}
    	
    }
    
                    

    AXCompletion - Transaction Values
    AXLevel23 level23 = new AXLevel23();
    L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, new AXIndependentRefund(order_id, amount, pan, exp_date, level23));

    AXCompletion object mandatory values

    Value

    Type

    Limits

    Variable

    Description

    Order ID

    String

    50-character alphanumeric

    order_id

    Merchant-defined transaction identifier that must be unique for every Purchase, Pre-Authorization and Independent Refund transaction. No two transactions of these types may have the same order ID.

    For Refund, Completion and Purchase Correction transactions, the order ID must be the same as that of the original transaction.

    The last 10 characters of the order ID are displayed in the “Invoice Number” field on the Merchant Direct Reports. However only letters, numbers and spaces are sent to Merchant Direct.

    A minimum of 3 and a maximum of 10 valid characters are sent to Merchant Direct. Only the last characters beginning after any invalid characters are sent. For example, if the order ID is 1234-567890, only 567890 is sent to Merchant Direct.

    If the order ID has fewer than 3 characters, it may display a blank or 0000000000 in the Invoice Number field.

    Amount

    String

    9-character decimal

    amount

    Transaction amount This must contain at least 3 digits, two of which are penny values.
    The minimum allowable value is $0.01, and the maximum allowable value is $999999.99. Transaction amounts of $0.00 are not allowed.

    Credit card number

    String

    20-character numeric

    card

    Most credit card numbers today are 16 digits, but some 13-digit numbers are still accepted by some issuers. This field has been intentionally expanded to 20 digits in consideration for future expansion and potential support of private label card ranges.

    Expiry date

    String

    4-character numeric
    YYMM format.

    exp

    Submit in YYMM format.
    Note: This is the reverse of the date displayed on the physical card, which is MMYY.

    E-Commerce indicator

    String

    1-character alphanumeric

    crypt

    Supported values are:

    1 - Mail Order / Telephone Order—Single

    2 - Mail Order / Telephone Order—Recurring

    3 - Mail Order / Telephone Order—Instalment

    4 - Mail Order / Telephone Order—Unknown classification

    5 - Authenticated e-commerce transaction (VBV)

    6 - Non-authenticated e-commerce transaction (VBV)

    7 - SSL-enabled merchant

    8 - Non-secure transaction (web- or email-based)

    9 - SET non-authenticated transaction




    American Express Level 2/3 Request Fields – Table 1 / Heading Fields

    Reg

    Variable

    Value

    Limits

    Description

    N

    big04

    Purchase Order Number

    22 alphanumeric

    N

    big05

    Release Number

    30 alphanumeric

    N

    big10

    Invoice Number

    10 alphanumeric

    Y

    n101

    Entity Identifier Code

    2 alphanumeric

    • ‘R6’ - Requester (required)
    • ‘BG’ - Buying Group (optional)
    • ‘SF’ - Ship From (optional)
    • ‘ST’ - Ship To (optional)
    • 40’ - Receiver (optional)

    Y

    n102

    Name

    40 alphanumeric

    n101

    n102 denotation

    - ‘R6’

    Requester Name

    - ‘BG’

    Buying Group Name

    - ‘SF’

    Ship From Name

    - ‘ST’

    Ship To Name

    - ‘40’

    Receiver Name

    N

    n301

    Address

    40 alphanumeric

    Address

    N

    n401

    City

    30 alphanumeric

    City

    N

    n402

    State or Province

    2 alphanumeric

    State or Province

    N

    n403

    Postal Code

    15 alphanumeric

    Postal Code

    Y

    ref01

    Reference
    Identification
    Qualifier

    2 alphanumeric

    • ‘VR’ – Vendor ID Number
    • ‘14’ – Master Account Number
    • ‘12’ – Billing Account
    • ‘4C’ – Shipment Destination Code (required)
    • ‘CR’ – Customer Reference Number

    Y

    ref02

    Reference
    Identification

    ref01

    ref02 size/type

    -‘VR’

    10 alphanumeric

    -‘14’

    10 alphanumeric

    -‘12’

    30 alphanumeric

    -‘4C’

    6 alphanumeric

    -‘CR’

    17 alphanumeric

    ref01

    ref02 denotation

    - ‘14’

    Amex CAP Number (optional)

    - ‘12’

    Billing Account (optional)

    - ‘4C’

    Ship-to-Zip or Canadian Postal Code (required)

    - ‘CR’

    Cardmember Reference Number (optional)




    American Express Level 2/3 Request Fields – Table 2/ Detail Fields

    Reg

    Variable

    Value

    Limits

    Description

    Y

    it102

    Line Item Quantity
    Invoiced

    10 decimal

    Y

    it103

    Unit or Basis for
    Measurement
    Code

    2 alphanumeric

    Y

    it104

    Unit Price

    15 decimal

    N

    it105

    Basis or Unit Price
    Code

    2 alphanumeric

    N

    it10618

    Product/Service ID
    Qualifier

    2 alphanumeric

    • ‘MG’ - Manufacturer’s Part Number
    • ‘VC’ - Supplier Catalog Number
    • ‘SK’ - Supplier Stock Keeping Unit Number
    • ‘UP’ - Universal Product Code
    • ‘VP’ – Vendor Part Number
    • ‘PO’ – Purchase Order Number
    • ‘AN’ – Client Defined Asset Code

    N

    it10719

    Product/Service ID

    it10618

    it10719 - size/type

    - VC

    20 alphanumeric

    - PO

    22 alphanumeric

    - Other

    30 alphanumeric

    Y

    txi01

    Tax Type code

    2 alphanumeric

  • ‘CT’ – County/Tax (optional)
  • ‘EV’ – Environmental Tax (optional)
  • ‘GS’ – Good and Services Tax (GST) (optional)
  • ‘LS’ – State and Local Sales Tax (optional)
  • ‘LT’ – Local Sales Tax (optional)
  • ‘PG’ – Provincial Sales Tax (PST) (optional)
  • ‘SP’ – State/Provincial Tax a.k.a. Quebec Sales Tax (QST) (optional)
  • ‘ST’ – State Sales Tax (optional)
  • ‘TX’ – All Taxes (required)
  • ‘VA’ – Value-Added Tax a.k.a. Canadian Harmonized Sales
    Tax (HST) (optional)
  • ‘ST’ – State Sales Tax (optional)
  • ‘TX’ – All Taxes (required)
  • ‘VA’ – Value-Added Tax a.k.a. Canadian
    Harmonized Sales Tax (HST) (optional)
  • N

    txi02

    Monetary Amount

    6 decimal

    N

    txi03

    Percent

    10 decimal

    N

    txi06

    Tax Exempt Code

    1 alphanumeric

    • ‘1’ – Yes (Tax Exempt)
    • ‘2’ – No (Not Tax Exempt)
    • ‘A’ – Labor Taxable, Material Exempt
    • ‘B’ – Material Taxable, Labor Exempt
    • ‘C’ – Not Taxable
    • ‘F’ – Exempt (Good / Services Tax)
    • ‘G’ – Exempt (Provincial Sales Tax)
    • ‘L’ – Exempt Local Service
    • ‘R’ – Recurring Exempt
    • ‘U’ – Usage Exempt

    Y

    pam05

    Line Item
    Extended Amount

    8 decimal

    Y

    pid06

    Line Item
    Description

    80 alphanumeric




    American Express Level 2/3 Request Fields – Table 3/ Summary Fields

    Reg

    Variable

    Value

    Limits

    Description

    Y

    txi01

    Tax Type code

    2 alphanumeric

    • ‘CA’ – City Tax
    • ‘CP’ – County/Parish Sales Tax
    • ‘CT’ – County/Tax
    • ‘EV’ – Environmental Tax
    • ‘GS’ – Good and Services Tax (GST)
    • ‘LS’ – State and Local Sales Tax
    • ‘LT’ – Local Sales Tax
    • ‘PG’ – Provincial Sales Tax (PST)
    • ‘SP’ – State/Provincial Tax a.k.a. Quebec Sales Tax
      (QST)
    • ‘ST’ – State Sales Tax
    • ‘TX’ – All Taxes
    • ‘VA’ – Value-Added Tax a.k.a. Canadian Harmonized
      Sales Tax (HST)

    Y

    txi02

    Monetary Amount

    6 decimal

    N

    txi03

    Percent

    10 decimal

    N

    txi06

    Tax Exempt Code

    1 alphanumeric

    • ‘1’ – Yes (Tax Exempt)
    • ‘2’ – No (Not Tax Exempt)
    • ‘A’ – Labor Taxable, Material Exempt
    • ‘B’ – Material Taxable, Labor Exempt
    • ‘C’ – Not Taxable
    • ‘F’ – Exempt (Good / Services Tax)
    • ‘G’ – Exempt (Provincial Sales Tax)
    • ‘L’ – Exempt Local Service
    • ‘R’ – Recurring Exempt
    • ‘U’ – Usage Exempt
    Predecessors:
    • Pre-Authorization
    Successors:
  • AXPurchase Correction
  • AXRefund

  • AXForcepost

    AXForcePost

    Amex Forcepost transaction is an alternative to AXCompletion to obtain the funds locked on Pre-authorization obtained from IVR or equivalent terminal. The pre-authorization completion retrieves the locked funds and readies them for settlement in to the merchant account.

    Canada Code Sample
    
    using System;
    using System.Collections;
    
    namespace Moneris
    {
    	public class TestAXForcePost
    	{
    		public static void Main(string[] args)
    		{
    			string host = "esqa.moneris.com";
    			string store_id = "moneris";
    			string api_token = "hurgle";
    			string order_id;	//will prompt user for input
    			string cust_id = "Griese407";
    			string amount = "62.37";
    			string pan = "373269005095005";
    			string exp_date = "1111";
    			string auth_code; 	//will prompt user for input
    			
    			Console.Write ("Please enter an order ID: ");
    			order_id = Console.ReadLine();
    			
    			Console.Write ("Please enter an authorization number: ");
    			auth_code = Console.ReadLine();			
    			
    			/******************** Table 1 - HEADING *********************/
    			
    			string n101 = "R6";	//Entity ID Code
    			string n102 = "Retailing Inc. International";	//Name
    			string n301 = "919 Oriole Rd.";		//Address Line 1
    			string n401 = "Toronto";		//City 
    			string n402 = "On";			//State or Province
    			string n403 = "H1T6W3";			//Postal Code
    			
    			string big04 = "PO7758545";	//Purchase Order Number
    			string big05 = "RN0049858";	//Release Number
    			string big10 = "INV99870E";	//Invoice Number
    			
    			string[] ref01 = new string[]{"4C", "CR"};	//Reference ID Qualifier
    			string[] ref02 = new string[]{"M5T3A5", "16802309004"}; //Reference ID 
    
    			RefAx[] refID = new RefAx[2]; 
    			refID[0] = new RefAx (ref01[0], ref02[0]); 	
    			refID[1] = new RefAx (ref01[1], ref02[1]); 
    			
    			N1_loop[] n1 = new N1_loop[1];
    			n1[0] = new N1_loop (n101, n102, n301, "",
    					     n401, n402, n403, refID);	
    						  
    			Table1 tbl1 = new Table1 (big04, big05, big10, n1);  			
    			
    			
    			/********************* Table 2 - DETAIL *********************/
    			//the sum of the extended amount field (i.e. paramater #7 of It1_Loop
    			//must equal the level 1 amount field)	
    			
    			string[] it102 = new string[]{"1", "1", "1", "1"};	//Line item quantity invoiced
    			string[] it103 = new string[]{"EA", "EA", "EA", "EA"};  //Line item unit or basis of measurement code
    			string[] it104 = new string[]{"10.00", "25.00", "8.62", "10.00"};   //Line item unit price
    			string[] it105 = new string[]{"", "", "", ""};	//Line item basis of unit price code	
    			
    			string[] it10618 = new string[]{"MG", "MG", "MG", "MG"};   //Product/Service ID qualifier
    			string[] it10719 = new string[]{"DJFR4", "JFJ49", "FEF33", "FEE43"};   //Product/Service ID 
    										//(corresponds to it10618)
    			
    			string[] txi01_GST = new string[]{"GS", "GS", "GS", "GS"};	//Tax type code
    			string[] txi02_GST = new string[]{"0.70", "1.75", "1.00", "0.80"};	//Monetary amount
    			string[] txi03_GST = new string[]{"", "", "", ""};		//Percent
    			string[] txi06_GST = new string[]{"", "", "", ""};		//Tax exempt code
    			
    			string[] txi01_PST = new string[]{"PG", "PG", "PG", "PG"};	//Tax type code
    			string[] txi02_PST = new string[]{"0.80", "2.00", "1.00", "0.80"};	//Monetary amount
    			string[] txi03_PST = new string[]{"", "", "", ""};		//Percent
    			string[] txi06_PST = new string[]{"", "", "", ""};		//Tax exempt code
    						
    			Txi[] taxGST = new Txi[4]{new Txi(txi01_GST[0], txi02_GST[0], txi03_GST[0], txi06_GST[0]), 
    						  new Txi(txi01_GST[1], txi02_GST[1], txi03_GST[1], txi06_GST[1]),
    				      		  new Txi(txi01_GST[2], txi02_GST[2], txi03_GST[2], txi06_GST[2]), 
    				      		  new Txi(txi01_GST[3], txi02_GST[3], txi03_GST[3], txi06_GST[3])};
    			
    			Txi[] taxPST = new Txi[4]{new Txi(txi01_PST[0], txi02_PST[0], txi03_PST[0], txi06_PST[0]), 
    						  new Txi(txi01_PST[1], txi02_PST[1], txi03_PST[1], txi06_PST[1]),
    				      		  new Txi(txi01_PST[2], txi02_PST[2], txi03_PST[2], txi06_PST[2]),
    				      		  new Txi(txi01_PST[3], txi02_PST[3], txi03_PST[3], txi06_PST[3])};
    						  
    			string[] pam05 = new string[]{"11.50", "28.75", "10.62", "11.50"};	//Extended line-item amount
    string[] pid05 = new string[]{"Stapler", "Lamp", "Bottled Water", "Fountain Pen"};	//Line item description
    
    			ArrayList itQual = new ArrayList();	//array list to hold product IDs and Descriptions
    			ArrayList level3Taxes = new ArrayList();    //list to hold GST and PST objects for each item
    					
    			int numOfItems = pid05.Length;
    						
    			It1_loop[] itemLoop = new It1_loop[numOfItems]; //instantiate array of items object 
    			
    			for (int item = 0; item < pid05.Length; item++)
    			{
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});	
    
    				level3Taxes.Add(new Txi[]{taxGST[0], taxPST[0]}); //create tax object for item 1 
    				level3Taxes.Add(new Txi[]{taxGST[1], taxPST[1]}); //create tax object for item 2 
    				level3Taxes.Add(new Txi[]{taxGST[2], taxPST[2]}); //create tax object for item 3 
    				level3Taxes.Add(new Txi[]{taxGST[3], taxPST[3]}); //create tax object for item 4 
    			
    				itemLoop[item] = new It1_loop(it102[item], it103[item], it104[item], 
    							      it105[item], (It106s[])(itQual[item]), 
    							      (Txi[])(level3Taxes[item]), pam05[item], pid05[item]);
    			}		
    
    			Table2 tbl2 = new Table2 (itemLoop); //element of AXLevel23
    			
    			
    			/********************* Table 3 - SUMMARY ********************/		
    			
    			Txi[] taxTbl3 = new Txi[3];	
    			taxTbl3[0] = new Txi("GS", "4.25","","");	//sum of GST taxes
    			taxTbl3[1] = new Txi("PG", "4.60","","");	//sum of PST taxes
    			taxTbl3[2] = new Txi("TX", "8.85","","");
    			
    			Table3 tbl3 = new Table3(taxTbl3);
    			
    			/**********************   REQUEST  ************************/
    			
    			AXLevel23 level23 = new AXLevel23(tbl1, tbl2, tbl3);	
    		
    			try
    			{
    				L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, 
    				new AXForcePost(order_id, cust_id, amount, pan, exp_date, auth_code, level23));
    					
    				Receipt myReceipt=request.GetReceipt();
    				Console.WriteLine("CardType = " + myReceipt.GetCardType());
    				Console.WriteLine("TransAmount = " + myReceipt.GetTransAmount());
    				Console.WriteLine("TxnNumber = " + myReceipt.GetTxnNumber());
    				Console.WriteLine("ReceiptId = " + myReceipt.GetReceiptId());
    				Console.WriteLine("TransType = " + myReceipt.GetTransType());
    				Console.WriteLine("ReferenceNum = " + myReceipt.GetReferenceNum());
    				Console.WriteLine("ResponseCode = " + myReceipt.GetResponseCode());
    				Console.WriteLine("ISO = " + myReceipt.GetISO());
    				Console.WriteLine("BankTotals = " + myReceipt.GetBankTotals());
    				Console.WriteLine("Message = " + myReceipt.GetMessage());
    				Console.WriteLine("AuthCode = " + myReceipt.GetAuthCode());
    				Console.WriteLine("Complete = " + myReceipt.GetComplete());
    				Console.WriteLine("TransDate = " + myReceipt.GetTransDate());
    				Console.WriteLine("TransTime = " + myReceipt.GetTransTime());
    				Console.WriteLine("Ticket = " + myReceipt.GetTicket());
    				Console.WriteLine("TimedOut = " + myReceipt.GetTimedOut());
    				Console.WriteLine("CorporateCard = " + myReceipt.GetCorporateCard());
    				Console.WriteLine("MessageId = " + myReceipt.GetMessageId());
    			}
    			catch ( Exception e )
    			{
    				Console.WriteLine(e);
    			}
    			
    		}
    	}
    	
    }
     
    
                    

    AXForcePost - Transaction Values

    L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, new AXForcePost(order_id, cust_id, amount, pan, exp_date, auth_code, level23));

    AXForcePost object mandatory values

    Value

    Type

    Limits

    Variable

    Description

    Order ID

    String

    50-character alphanumeric

    order_id

    Merchant-defined transaction identifier that must be unique for every Purchase, Pre-Authorization and Independent Refund transaction. No two transactions of these types may have the same order ID.

    For Refund, Completion and Purchase Correction transactions, the order ID must be the same as that of the original transaction.

    The last 10 characters of the order ID are displayed in the “Invoice Number” field on the Merchant Direct Reports. However only letters, numbers and spaces are sent to Merchant Direct.

    A minimum of 3 and a maximum of 10 valid characters are sent to Merchant Direct. Only the last characters beginning after any invalid characters are sent. For example, if the order ID is 1234-567890, only 567890 is sent to Merchant Direct.

    If the order ID has fewer than 3 characters, it may display a blank or 0000000000 in the Invoice Number field.

    Amount

    String

    9-character decimal

    amount

    Transaction amount This must contain at least 3 digits, two of which are penny values.
    The minimum allowable value is $0.01, and the maximum allowable value is $999999.99. Transaction amounts of $0.00 are not allowed.

    Credit card number

    String

    20-character numeric

    card

    Most credit card numbers today are 16 digits, but some 13-digit numbers are still accepted by some issuers. This field has been intentionally expanded to 20 digits in consideration for future expansion and potential support of private label card ranges.

    Expiry date

    String

    4-character numeric
    YYMM format.

    exp_date

    Submit in YYMM format.
    Note: This is the reverse of the date displayed on the physical card, which is MMYY.

    E-Commerce indicator

    String

    1-character alphanumeric

    crypt

    Supported values are:

    1 - Mail Order / Telephone Order—Single

    2 - Mail Order / Telephone Order—Recurring

    3 - Mail Order / Telephone Order—Instalment

    4 - Mail Order / Telephone Order—Unknown classification

    5 - Authenticated e-commerce transaction (VBV)

    6 - Non-authenticated e-commerce transaction (VBV)

    7 - SSL-enabled merchant

    8 - Non-secure transaction (web- or email-based)

    9 - SET non-authenticated transaction



    Predecessors:
    • None
    Successors:
  • AXCompletion

  • AXPurchaseCorrection

    AXPurchaseCorrection

    The American Express Purchase Correction (Void) transaction is used to cancel a transaction that was performed in the current batch. No amount is required because a purchase correction is always for 100% of the original transaction.

    * An AXPurchaseCorrection can be performed against a transaction as long as the batch that contains the original transaction remains open. When using the automated closing feature batch close occurs daily between 10 – 11 pm EST.

    Canada Code Sample
    
    using System;
    
    namespace Moneris
    {
    	public class TestAXPurchaseCorrection
    	{
    		public static void Main(string[] args)
    		{
    			string host = "esqa.moneris.com";
    			string store_id = "moneris";
    			string api_token = "hurgle";
    			string order_id = "Need_Unique_Order_ID";
    			string txn_number = "8871-48-1";
    			string crypt = "7";
    			
    			/**********************   REQUEST  ************************/
    		
    			try
    			{
    				L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, 
    					new AXPurchaseCorrection(order_id, txn_number, crypt));
    					
    				Receipt myReceipt=request.GetReceipt();
    				Console.WriteLine("CardType = " + myReceipt.GetCardType());
    				Console.WriteLine("TransAmount = " + myReceipt.GetTransAmount());
    				Console.WriteLine("TxnNumber = " + myReceipt.GetTxnNumber());
    				Console.WriteLine("ReceiptId = " + myReceipt.GetReceiptId());
    				Console.WriteLine("TransType = " + myReceipt.GetTransType());
    				Console.WriteLine("ReferenceNum = " + myReceipt.GetReferenceNum());
    				Console.WriteLine("ResponseCode = " + myReceipt.GetResponseCode());
    				Console.WriteLine("ISO = " + myReceipt.GetISO());
    				Console.WriteLine("BankTotals = " + myReceipt.GetBankTotals());
    				Console.WriteLine("Message = " + myReceipt.GetMessage());
    				Console.WriteLine("AuthCode = " + myReceipt.GetAuthCode());
    				Console.WriteLine("Complete = " + myReceipt.GetComplete());
    				Console.WriteLine("TransDate = " + myReceipt.GetTransDate());
    				Console.WriteLine("TransTime = " + myReceipt.GetTransTime());
    				Console.WriteLine("Ticket = " + myReceipt.GetTicket());
    				Console.WriteLine("TimedOut = " + myReceipt.GetTimedOut());
    				Console.WriteLine("CorporateCard = " + myReceipt.GetCorporateCard());
    				Console.WriteLine("MessageId = " + myReceipt.GetMessageId());
    			}
    			catch ( Exception e )
    			{
    				Console.WriteLine(e);
    			}
    			
    		}
    	}
    	
    }
    
                    

    AXPurchaseCorrection - Transaction Values

    L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, new AXPurchaseCorrection(order_id, txn_number, crypt));

    AXPurchaseCorrection object mandatory values

    Value

    Type

    Limits

    Variable

    Description

    Order ID

    String

    50-character alphanumeric

    order_id

    Merchant-defined transaction identifier that must be unique for every Purchase, Pre-Authorization and Independent Refund transaction. No two transactions of these types may have the same order ID.

    For Refund, Completion and Purchase Correction transactions, the order ID must be the same as that of the original transaction.

    The last 10 characters of the order ID are displayed in the “Invoice Number” field on the Merchant Direct Reports. However only letters, numbers and spaces are sent to Merchant Direct.

    A minimum of 3 and a maximum of 10 valid characters are sent to Merchant Direct. Only the last characters beginning after any invalid characters are sent. For example, if the order ID is 1234-567890, only 567890 is sent to Merchant Direct.

    If the order ID has fewer than 3 characters, it may display a blank or 0000000000 in the Invoice Number field.

    Transactoin
    Number

    String

    255-character

    txn_number

    Used when performing follow-on transactions. (That is, Completion, Purchase Correction or Refund.) This must be the value that was returned as the transaction number in the response of the original transaction.

    When performing a Completion, this value must reference the Pre-Authorization. When performing a Refund or a Purchase Correction, this value must reference the Completion or the Purchase.

    E-Commerce indicator

    String

    1-character alphanumeric

    crypt

    Supported values are:

    1 - Mail Order / Telephone Order—Single

    2 - Mail Order / Telephone Order—Recurring

    3 - Mail Order / Telephone Order—Instalment

    4 - Mail Order / Telephone Order—Unknown classification

    5 - Authenticated e-commerce transaction (VBV)

    6 - Non-authenticated e-commerce transaction (VBV)

    7 - SSL-enabled merchant

    8 - Non-secure transaction (web- or email-based)

    9 - SET non-authenticated transaction



    Predecessors:
    • AXCompletion
    • AXForcepost
    Successors:
  • None

  • AXRefund

    AXRefund

    The American Express Refund will credit a specified amount to the cardholder’s credit card. A refund can be sent up to the full value of the original AXCompletion or AXForcepost.

    Canada Code Sample
    
    using System;
    using System.Collections;
    
    namespace Moneris
    {
    	public class TestAXRefund
    	{
    		public static void Main(string[] args)
    		{
    			string host = "esqa.moneris.com";
    			string store_id = "moneris";
    			string api_token = "hurgle";
    			string order_id = "Need_Unique_Order_ID";
    			string txn_number = "8916-30-1";
    			string amount = "62.37";
    
    			/******************** Table 1 - HEADING *********************/
    			
    			string n101 = "R6";	//Entity ID Code
    			string n102 = "Retailing Inc. International";	//Name
    			string n301 = "919 Oriole Rd.";		//Address Line 1
    			string n401 = "Toronto";		//City 
    			string n402 = "On";			//State or Province
    			string n403 = "H1T6W3";			//Postal Code
    
    			string big04 = "PO7758545";	//Purchase Order Number
    			string big05 = "RN0049858";	//Release Number
    			string big10 = “INV1002300”;  //Invoice Number
    			
    			string[] ref01 = new string[]{"4C", "CR"};	//Reference ID Qualifier
    			string[] ref02 = new string[]{"M5T3A5", "16802309004"}; //Reference ID 
    
    			RefAx[] refID = new RefAx[2]; 
    			refID[0] = new RefAx (ref01[0], ref02[0]); 	
    			refID[1] = new RefAx (ref01[1], ref02[1]); 
    			
    			N1_loop[] n1 = new N1_loop[1];
    			n1[0] = new N1_loop (n101, n102, n301, "",
    					     n401, n402, n403, refID);	
    						  
    			Table1 tbl1 = new Table1 (big04, big05, big10, n1);  			
    			
    			
    			/********************* Table 2 - DETAIL *********************/
    			//the sum of the extended amount field (i.e. paramater #7 of It1_Loop
    			//must equal the level 1 amount field)	
    			
    			string[] it102 = new string[]{"1", "1", "1", "1"};	//Line item quantity invoiced
    			string[] it103 = new string[]{"EA", "EA", "EA", "EA"};  //Line item unit or basis of measurement code
    			string[] it104 = new string[]{"10.00", "25.00", "8.62", "10.00"};   //Line item unit price
    			string[] it105 = new string[]{"", "", "", ""};	//Line item basis of unit price code	
    			
    			string[] it10618 = new string[]{"MG", "MG", "MG", "MG"};   //Product/Service ID qualifier
    			string[] it10719 = new string[]{"DJFR4", "JFJ49", "FEF33", "FEE43"};   //Product/Service ID 
    									//(corresponds to it10618)
    
    			string[] txi01_GST = new string[]{"GS", "GS", "GS", "GS"};	//Tax type code
    			string[] txi02_GST = new string[]{"0.70", "1.75", "1.00", "0.80"};	//Monetary amount
    			string[] txi03_GST = new string[]{"", "", "", ""};		//Percent
    			string[] txi06_GST = new string[]{"", "", "", ""};		//Tax exempt code
    			
    			string[] txi01_PST = new string[]{"PG", "PG", "PG", "PG"};	//Tax type code
    			string[] txi02_PST = new string[]{"0.80", "2.00", "1.00", "0.80"};	//Monetary amount
    			string[] txi03_PST = new string[]{"", "", "", ""};		//Percent
    			string[] txi06_PST = new string[]{"", "", "", ""};		//Tax exempt code
    
    						
    			Txi[] taxGST = new Txi[4]{new Txi(txi01_GST[0], txi02_GST[0], txi03_GST[0], txi06_GST[0]), 
    						  new Txi(txi01_GST[1], txi02_GST[1], txi03_GST[1], txi06_GST[1]),
    				      		  new Txi(txi01_GST[2], txi02_GST[2], txi03_GST[2], txi06_GST[2]), 
    				      		  new Txi(txi01_GST[3], txi02_GST[3], txi03_GST[3], txi06_GST[3])};
    			
    			
    
    Txi[] taxPST = new Txi[4]{new Txi(txi01_PST[0], txi02_PST[0], txi03_PST[0], txi06_PST[0]), 
    						  new Txi(txi01_PST[1], txi02_PST[1], txi03_PST[1], txi06_PST[1]),
    				      		  new Txi(txi01_PST[2], txi02_PST[2], txi03_PST[2], txi06_PST[2]),
    				      		  new Txi(txi01_PST[3], txi02_PST[3], txi03_PST[3], txi06_PST[3])};
    						  
    			string[] pam05 = new string[]{"10.00", "25.00", "8.62", "10.00"};	//Extended line-item amount
    			string[] pid05 = new string[]{"Stapler", "Lamp", "Bottled Water", "Fountain Pen"};	//Line item desc
    
    			ArrayList itQual = new ArrayList();	//array list to hold product IDs and Descriptions
    			ArrayList level3Taxes = new ArrayList();    //list to hold GST and PST objects for each item
    					
    			int numOfItems = pid05.Length;
    						
    			It1_loop[] itemLoop = new It1_loop[numOfItems]; //instantiate array of items object 
    			
    			for (int item = 0; item < pid05.Length; item++)
    			{
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});	
    
    				level3Taxes.Add(new Txi[]{taxGST[0], taxPST[0]}); //create tax object for item 1 
    				level3Taxes.Add(new Txi[]{taxGST[1], taxPST[1]}); //create tax object for item 2 
    				level3Taxes.Add(new Txi[]{taxGST[2], taxPST[2]}); //create tax object for item 3 
    				level3Taxes.Add(new Txi[]{taxGST[3], taxPST[3]}); //create tax object for item 4 
    			
    				itemLoop[item] = new It1_loop(it102[item], it103[item], it104[item], 
    							      it105[item], (It106s[])(itQual[item]), 
    							      (Txi[])(level3Taxes[item]), pam05[item], pid05[item]);
    			}		
    
    			Table2 tbl2 = new Table2 (itemLoop); //element of AXLevel23
    			
    			
    			/********************* Table 3 - SUMMARY ********************/		
    			
    			Txi[] taxTbl3 = new Txi[3];	
    			taxTbl3[0] = new Txi("GS", "4.25","","");	//sum of GST taxes
    			taxTbl3[1] = new Txi("PG", "4.60","","");	//sum of PST taxes
    			taxTbl3[2] = new Txi("TX", "8.85","","");
    			
    			Table3 tbl3 = new Table3(taxTbl3);
    			
    			/**********************   REQUEST  ************************/
    			
    			AXLevel23 level23 = new AXLevel23(tbl1, tbl2, tbl3);		
    			
    			try
    			{			
    				L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, 
    					new AXRefund(order_id, amount, txn_number, level23));
    					
    				Receipt myReceipt=request.GetReceipt();
    				Console.WriteLine("CardType = " + myReceipt.GetCardType());
    				Console.WriteLine("TransAmount = " + myReceipt.GetTransAmount());
    				Console.WriteLine("TxnNumber = " + myReceipt.GetTxnNumber());
    				Console.WriteLine("ReceiptId = " + myReceipt.GetReceiptId());
    				Console.WriteLine("TransType = " + myReceipt.GetTransType());
    				Console.WriteLine("ReferenceNum = " + myReceipt.GetReferenceNum());
    				Console.WriteLine("ResponseCode = " + myReceipt.GetResponseCode());
    				Console.WriteLine("ISO = " + myReceipt.GetISO());
    				Console.WriteLine("BankTotals = " + myReceipt.GetBankTotals());
    				Console.WriteLine("Message = " + myReceipt.GetMessage());
    				Console.WriteLine("AuthCode = " + myReceipt.GetAuthCode());
    				Console.WriteLine("Complete = " + myReceipt.GetComplete());
    				Console.WriteLine("TransDate = " + myReceipt.GetTransDate());
    				Console.WriteLine("TransTime = " + myReceipt.GetTransTime());
    				Console.WriteLine("Ticket = " + myReceipt.GetTicket());
    				Console.WriteLine("TimedOut = " + myReceipt.GetTimedOut());
    				Console.WriteLine("CorporateCard = " + myReceipt.GetCorporateCard());
    				Console.WriteLine("MessageId = " + myReceipt.GetMessageId());
    			}
    				
    			catch ( Exception e )
    			{
    				Console.WriteLine(e);
    			}
    			
    		}
    	}
    	
    }
    
                    

    AXRefund - Transaction Values

    AXLevel23 level23 = new AXLevel23();

    L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, new AXRefund(order_id, amount, txn_number, level23));

    AXRefund object mandatory values

    Value

    Type

    Limits

    Variable

    Description

    Order ID

    String

    50-character alphanumeric

    order_id

    Merchant-defined transaction identifier that must be unique for every Purchase, Pre-Authorization and Independent Refund transaction. No two transactions of these types may have the same order ID.

    For Refund, Completion and Purchase Correction transactions, the order ID must be the same as that of the original transaction.

    The last 10 characters of the order ID are displayed in the “Invoice Number” field on the Merchant Direct Reports. However only letters, numbers and spaces are sent to Merchant Direct.

    A minimum of 3 and a maximum of 10 valid characters are sent to Merchant Direct. Only the last characters beginning after any invalid characters are sent. For example, if the order ID is 1234-567890, only 567890 is sent to Merchant Direct.

    If the order ID has fewer than 3 characters, it may display a blank or 0000000000 in the Invoice Number field.

    Amount

    String

    9-character
    decimal

    amount

    Transaction amount This must contain at least 3 digits, two of which are penny values.

    The minimum allowable value is $0.01, and the maximum allowable value is $999999.99. Transaction amounts of $0.00 are not allowed.

    Transactoin
    Number

    String

    255-character

    txn_number

    Used when performing follow-on transactions. (That is, Completion, Purchase Correction or Refund.) This must be the value that was returned as the transaction number in the response of the original transaction.

    When performing a Completion, this value must reference the Pre-Authorization. When performing a Refund or a Purchase Correction, this value must reference the Completion or the Purchase.

    Level 2/3

    level2/3

    American Express Level 2/3 Request Fields




    American Express Level 2/3 Request Fields – Table 1 / Heading Fields

    Reg

    Variable

    Value

    Limits

    Description

    N

    big04

    Purchase Order Number

    22 alphanumeric

    N

    big05

    Release Number

    30 alphanumeric

    N

    big10

    Invoice Number

    10 alphanumeric

    Y

    n101

    Entity Identifier Code

    2 alphanumeric

    • ‘R6’ - Requester (required)
    • ‘BG’ - Buying Group (optional)
    • ‘SF’ - Ship From (optional)
    • ‘ST’ - Ship To (optional)
    • 40’ - Receiver (optional)

    Y

    n102

    Name

    40 alphanumeric

    n101

    n102 denotation

    - ‘R6’

    Requester Name

    - ‘BG’

    Buying Group Name

    - ‘SF’

    Ship From Name

    - ‘ST’

    Ship To Name

    - ‘40’

    Receiver Name

    N

    n301

    Address

    40 alphanumeric

    Address

    N

    n401

    City

    30 alphanumeric

    City

    N

    n402

    State or Province

    2 alphanumeric

    State or Province

    N

    n403

    Postal Code

    15 alphanumeric

    Postal Code

    Y

    ref01

    Reference
    Identification
    Qualifier

    2 alphanumeric

    • ‘VR’ – Vendor ID Number
    • ‘14’ – Master Account Number
    • ‘12’ – Billing Account
    • ‘4C’ – Shipment Destination Code (required)
    • ‘CR’ – Customer Reference Number

    Y

    ref02

    Reference
    Identification

    ref01

    ref02 size/type

    -‘VR’

    10 alphanumeric

    -‘14’

    10 alphanumeric

    -‘12’

    30 alphanumeric

    -‘4C’

    6 alphanumeric

    -‘CR’

    17 alphanumeric

    ref01

    ref02 denotation

    - ‘14’

    Amex CAP Number (optional)

    - ‘12’

    Billing Account (optional)

    - ‘4C’

    Ship-to-Zip or Canadian Postal Code (required)

    - ‘CR’

    Cardmember Reference Number (optional)




    American Express Level 2/3 Request Fields – Table 2 / Detail Fields

    Reg

    Variable

    Value

    Limits

    Description

    Y

    it102

    Line Item Quantity
    Invoiced

    10 decimal

    Y

    it103

    Unit or Basis for
    Measurement
    Code

    2 alphanumeric

    Y

    it104

    Unit Price

    15 decimal

    N

    it105

    Basis or Unit Price
    Code

    2 alphanumeric

    N

    it10618

    Product/Service ID
    Qualifier

    2 alphanumeric

    • ‘MG’ - Manufacturer’s Part Number
    • ‘VC’ - Supplier Catalog Number
    • ‘SK’ - Supplier Stock Keeping Unit Number
    • ‘UP’ - Universal Product Code
    • ‘VP’ – Vendor Part Number
    • ‘PO’ – Purchase Order Number
    • ‘AN’ – Client Defined Asset Code

    N

    it10719

    Product/Service ID

    it10618

    it10719 - size/type

    - VC

    20 alphanumeric

    - PO

    22 alphanumeric

    - Other

    30 alphanumeric

    Y

    txi01

    Tax Type code

    2 alphanumeric

  • ‘CT’ – County/Tax (optional)
  • ‘EV’ – Environmental Tax (optional)
  • ‘GS’ – Good and Services Tax (GST) (optional)
  • ‘LS’ – State and Local Sales Tax (optional)
  • ‘LT’ – Local Sales Tax (optional)
  • ‘PG’ – Provincial Sales Tax (PST) (optional)
  • ‘SP’ – State/Provincial Tax a.k.a. Quebec Sales Tax (QST) (optional)
  • ‘ST’ – State Sales Tax (optional)
  • ‘TX’ – All Taxes (required)
  • ‘VA’ – Value-Added Tax a.k.a. Canadian Harmonized Sales
    Tax (HST) (optional)
  • ‘ST’ – State Sales Tax (optional)
  • ‘TX’ – All Taxes (required)
  • ‘VA’ – Value-Added Tax a.k.a. Canadian
    Harmonized Sales Tax (HST) (optional)
  • N

    txi02

    Monetary Amount

    6 decimal

    N

    txi03

    Percent

    10 decimal

    N

    txi06

    Tax Exempt Code

    1 alphanumeric

    • ‘1’ – Yes (Tax Exempt)
    • ‘2’ – No (Not Tax Exempt)
    • ‘A’ – Labor Taxable, Material Exempt
    • ‘B’ – Material Taxable, Labor Exempt
    • ‘C’ – Not Taxable
    • ‘F’ – Exempt (Good / Services Tax)
    • ‘G’ – Exempt (Provincial Sales Tax)
    • ‘L’ – Exempt Local Service
    • ‘R’ – Recurring Exempt
    • ‘U’ – Usage Exempt

    Y

    pam05

    Line Item
    Extended Amount

    8 decimal

    Y

    pid06

    Line Item
    Description

    80 alphanumeric




    American Express Level 2/3 Request Fields – Table 3/ Summary Fields

    Reg

    Variable

    Value

    Limits

    Description

    Y

    txi01

    Tax Type code

    2 alphanumeric

    • ‘CA’ – City Tax
    • ‘CP’ – County/Parish Sales Tax
    • ‘CT’ – County/Tax
    • ‘EV’ – Environmental Tax
    • ‘GS’ – Good and Services Tax (GST)
    • ‘LS’ – State and Local Sales Tax
    • ‘LT’ – Local Sales Tax
    • ‘PG’ – Provincial Sales Tax (PST)
    • ‘SP’ – State/Provincial Tax a.k.a. Quebec Sales Tax
      (QST)
    • ‘ST’ – State Sales Tax
    • ‘TX’ – All Taxes
    • ‘VA’ – Value-Added Tax a.k.a. Canadian Harmonized
      Sales Tax (HST)

    Y

    txi02

    Monetary Amount

    6 decimal

    N

    txi03

    Percent

    10 decimal

    N

    txi06

    Tax Exempt Code

    1 alphanumeric

    • ‘1’ – Yes (Tax Exempt)
    • ‘2’ – No (Not Tax Exempt)
    • ‘A’ – Labor Taxable, Material Exempt
    • ‘B’ – Material Taxable, Labor Exempt
    • ‘C’ – Not Taxable
    • ‘F’ – Exempt (Good / Services Tax)
    • ‘G’ – Exempt (Provincial Sales Tax)
    • ‘L’ – Exempt Local Service
    • ‘R’ – Recurring Exempt
    • ‘U’ – Usage Exempt


    Predecessors:
    • AXCompletion
    • AXForcepost
    Successors:
  • None

  • AXIndependentRefund

    AXIndependentRefund

    The American Express Independent Refund will credit a specified amount to the cardholder’s credit card. The American Express Independent Refund is used when the originating transaction was not performed through Moneris Gateway. Please note, the Independent Refund transaction may or may not be supported on your account. If you receive a transaction not allowed error when attempting an independent refund, it may mean the transaction is not supported on your account. If you wish to have the Independent Refund transaction type temporarily enabled (or re-enabled), please contact the Service Centre at 1-866-319-7450.

    Canada Code Sample
    
    using System;
    using System.Collections;
    
    namespace Moneris
    {
    	public class TestAXIndependentRefund
    	{
    		public static void Main(string[] args)
    		{
    			string host = "esqa.moneris.com";
    			string store_id = "moneris";
    			string api_token = "hurgle";
    			string order_id = "Need_Unique_Order_ID";
    			string amount = "62.37";
    			string pan = "373269005095005";
    			string exp_date = "1111";
    					
    			/******************** Table 1 - HEADING *********************/
    			
    			string n101 = "R6";	//Entity ID Code
    			string n102 = "Retailing Inc. International";	//Name
    			string n301 = "919 Oriole Rd.";		//Address Line 1
    			string n401 = "Toronto";		//City 
    			string n402 = "On";			//State or Province
    			string n403 = "H1T6W3";			//Postal Code
    
    			string big04 = "PO7758545";	//Purchase Order Number
    			string big05 = "RN0049858";	//Release Number
    			string big10 = “INVO11230”;	//Invoice Number
    			
    			string[] ref01 = new string[]{"4C", "CR"};	//Reference ID Qualifier
    			string[] ref02 = new string[]{"M5T3A5", "16802309004"}; //Reference ID 
    
    			RefAx[] refID = new RefAx[2]; 
    			refID[0] = new RefAx (ref01[0], ref02[0]); 	
    			refID[1] = new RefAx (ref01[1], ref02[1]); 
    			
    			N1_loop[] n1 = new N1_loop[1];
    			n1[0] = new N1_loop (n101, n102, n301, "",
    					     n401, n402, n403, refID);	
    						  
    			Table1 tbl1 = new Table1 (big04, big05, big10, n1);  			
    			
    			
    			/********************* Table 2 - DETAIL *********************/
    			//the sum of the extended amount field (i.e. paramater #7 of It1_Loop
    			//must equal the level 1 amount field)	
    			
    			string[] it102 = new string[]{"1", "1", "1", "1"};	//Line item quantity invoiced
    			string[] it103 = new string[]{"EA", "EA", "EA", "EA"};  //Line item unit or basis of measurement code
    			string[] it104 = new string[]{"10.00", "25.00", "8.62", "10.00"};   //Line item unit price
    			string[] it105 = new string[]{"", "", "", ""};	//Line item basis of unit price code	
    			
    			string[] it10618 = new string[]{"MG", "MG", "MG", "MG"};   //Product/Service ID qualifier
    			string[] it10719 = new string[]{"DJFR4", "JFJ49", "FEF33", "FEE43"};   //Product/Service ID 
    //(corresponds to it10618)
    			
    			string[] txi01_GST = new string[]{"GS", "GS", "GS", "GS"};	//Tax type code
    			string[] txi02_GST = new string[]{"0.70", "1.75", "1.00", "0.80"};	//Monetary amount
    			string[] txi03_GST = new string[]{"", "", "", ""};		//Percent
    			string[] txi06_GST = new string[]{"", "", "", ""};		//Tax exempt code
    			
    			string[] txi01_PST = new string[]{"PG", "PG", "PG", "PG"};	//Tax type code
    			string[] txi02_PST = new string[]{"0.80", "2.00", "1.00", "0.80"};	//Monetary amount
    			string[] txi03_PST = new string[]{"", "", "", ""};		//Percent
    			string[] txi06_PST = new string[]{"", "", "", ""};		//Tax exempt code
    						
    			Txi[] taxGST = new Txi[4]{new Txi(txi01_GST[0], txi02_GST[0], txi03_GST[0], txi06_GST[0]), 
    						  new Txi(txi01_GST[1], txi02_GST[1], txi03_GST[1], txi06_GST[1]),
    				      		  new Txi(txi01_GST[2], txi02_GST[2], txi03_GST[2], txi06_GST[2]), 
    				      		  new Txi(txi01_GST[3], txi02_GST[3], txi03_GST[3], txi06_GST[3])};
    
    			
    			Txi[] taxPST = new Txi[4]{new Txi(txi01_PST[0], txi02_PST[0], txi03_PST[0], txi06_PST[0]), 
    						  new Txi(txi01_PST[1], txi02_PST[1], txi03_PST[1], txi06_PST[1]),
    				      		  new Txi(txi01_PST[2], txi02_PST[2], txi03_PST[2], txi06_PST[2]),
    				      		  new Txi(txi01_PST[3], txi02_PST[3], txi03_PST[3], txi06_PST[3])};
    						  
    			string[] pam05 = new string[]{"10.00", "25.00", "8.62", "10.00"};	//Extended line-item amount
    			string[] pid05 = new string[]{"Stapler", "Lamp", "Bottled Water", "Fountain Pen"};//Line item description
    
    			ArrayList itQual = new ArrayList();	//array list to hold product IDs and Descriptions
    			ArrayList level3Taxes = new ArrayList();    //list to hold GST and PST objects for each item
    					
    			int numOfItems = pid05.Length;
    						
    			It1_loop[] itemLoop = new It1_loop[numOfItems]; //instantiate array of items object 
    			
    			for (int item = 0; item < pid05.Length; item++)
    			{
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});
    				itQual.Add(new It106s[]{new It106s(it10618[item], it10719[item])});	
    
    				level3Taxes.Add(new Txi[]{taxGST[0], taxPST[0]}); //create tax object for item 1 
    				level3Taxes.Add(new Txi[]{taxGST[1], taxPST[1]}); //create tax object for item 2 
    				level3Taxes.Add(new Txi[]{taxGST[2], taxPST[2]}); //create tax object for item 3 
    				level3Taxes.Add(new Txi[]{taxGST[3], taxPST[3]}); //create tax object for item 4 
    			
    				itemLoop[item] = new It1_loop(it102[item], it103[item], it104[item], 
    							      it105[item], (It106s[])(itQual[item]), 
    							      (Txi[])(level3Taxes[item]), pam05[item], pid05[item]);
    			}		
    
    			Table2 tbl2 = new Table2 (itemLoop); //element of AXLevel23
    			
    			
    			/********************* Table 3 - SUMMARY ********************/		
    			
    			Txi[] taxTbl3 = new Txi[3];	
    			taxTbl3[0] = new Txi("GS", "4.25","","");	//sum of GST taxes
    			taxTbl3[1] = new Txi("PG", "4.60","","");	//sum of PST taxes
    			taxTbl3[2] = new Txi("TX", "8.85","","");
    			
    			Table3 tbl3 = new Table3(taxTbl3);
    			
    			/**********************   REQUEST  ************************/
    			
    			AXLevel23 level23 = new AXLevel23(tbl1, tbl2, tbl3);	
    			
    			try
    			{
    				L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, 
    					new AXIndependentRefund(order_id, amount, pan, exp_date, level23));
    					
    				Receipt myReceipt=request.GetReceipt();
    				Console.WriteLine("CardType = " + myReceipt.GetCardType());
    				Console.WriteLine("TransAmount = " + myReceipt.GetTransAmount());
    				Console.WriteLine("TxnNumber = " + myReceipt.GetTxnNumber());
    				Console.WriteLine("ReceiptId = " + myReceipt.GetReceiptId());
    				Console.WriteLine("TransType = " + myReceipt.GetTransType());
    				Console.WriteLine("ReferenceNum = " + myReceipt.GetReferenceNum());
    				Console.WriteLine("ResponseCode = " + myReceipt.GetResponseCode());
    				Console.WriteLine("ISO = " + myReceipt.GetISO());
    				Console.WriteLine("BankTotals = " + myReceipt.GetBankTotals());
    				Console.WriteLine("Message = " + myReceipt.GetMessage());
    				Console.WriteLine("AuthCode = " + myReceipt.GetAuthCode());
    				Console.WriteLine("Complete = " + myReceipt.GetComplete());
    				Console.WriteLine("TransDate = " + myReceipt.GetTransDate());
    				Console.WriteLine("TransTime = " + myReceipt.GetTransTime());
    				Console.WriteLine("Ticket = " + myReceipt.GetTicket());
    				Console.WriteLine("TimedOut = " + myReceipt.GetTimedOut());
    				Console.WriteLine("CorporateCard = " + myReceipt.GetCorporateCard());
    				Console.WriteLine("MessageId = " + myReceipt.GetMessageId());
    			}
    				
    				catch ( Exception e )
    			{
    					Console.WriteLine(e);
    			}
    			
    		}
    	}
    	
    }
    
                    

    AXIndependentRefund- Transaction Values

    AXLevel23 level23 = new AXLevel23();

    L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, new AXIndependentRefund(order_id, amount, pan, exp_date, level23));

    AXIndependentRefund object mandatory values

    Value

    Type

    Limits

    Variable

    Description

    Order ID

    String

    50-character alphanumeric

    order_id

    Merchant-defined transaction identifier that must be unique for every Purchase, Pre-Authorization and Independent Refund transaction. No two transactions of these types may have the same order ID.

    For Refund, Completion and Purchase Correction transactions, the order ID must be the same as that of the original transaction.

    The last 10 characters of the order ID are displayed in the “Invoice Number” field on the Merchant Direct Reports. However only letters, numbers and spaces are sent to Merchant Direct.

    A minimum of 3 and a maximum of 10 valid characters are sent to Merchant Direct. Only the last characters beginning after any invalid characters are sent. For example, if the order ID is 1234-567890, only 567890 is sent to Merchant Direct.

    If the order ID has fewer than 3 characters, it may display a blank or 0000000000 in the Invoice Number field.

    Amount

    String

    9-character decimal

    amount

    Transaction amount This must contain at least 3 digits, two of which are penny values.
    The minimum allowable value is $0.01, and the maximum allowable value is $999999.99. Transaction amounts of $0.00 are not allowed.

    Credit card number

    String

    20-character numeric

    card

    Most credit card numbers today are 16 digits, but some 13-digit numbers are still accepted by some issuers. This field has been intentionally expanded to 20 digits in consideration for future expansion and potential support of private label card ranges.

    Expiry date

    String

    4-character numeric
    YYMM format.

    exp

    Submit in YYMM format.
    Note: This is the reverse of the date displayed on the physical card, which is MMYY.

    Level 2/3

    level2/3

    American Express Level 2/3 Request Fields




    American Express Level 2/3 Request Fields – Table 1 / Heading Fields

    Reg

    Variable

    Value

    Limits

    Description

    N

    big04

    Purchase Order Number

    22 alphanumeric

    N

    big05

    Release Number

    30 alphanumeric

    N

    big10

    Invoice Number

    10 alphanumeric

    Y

    n101

    Entity Identifier Code

    2 alphanumeric

    • ‘R6’ - Requester (required)
    • ‘BG’ - Buying Group (optional)
    • ‘SF’ - Ship From (optional)
    • ‘ST’ - Ship To (optional)
    • 40’ - Receiver (optional)

    Y

    n102

    Name

    40 alphanumeric

    n101

    n102 denotation

    - ‘R6’

    Requester Name

    - ‘BG’

    Buying Group Name

    - ‘SF’

    Ship From Name

    - ‘ST’

    Ship To Name

    - ‘40’

    Receiver Name

    N

    n301

    Address

    40 alphanumeric

    Address

    N

    n401

    City

    30 alphanumeric

    City

    N

    n402

    State or Province

    2 alphanumeric

    State or Province

    N

    n403

    Postal Code

    15 alphanumeric

    Postal Code

    Y

    ref01

    Reference
    Identification
    Qualifier

    2 alphanumeric

    • ‘VR’ – Vendor ID Number
    • ‘14’ – Master Account Number
    • ‘12’ – Billing Account
    • ‘4C’ – Shipment Destination Code (required)
    • ‘CR’ – Customer Reference Number

    Y

    ref02

    Reference
    Identification

    ref01

    ref02 size/type

    -‘VR’

    10 alphanumeric

    -‘14’

    10 alphanumeric

    -‘12’

    30 alphanumeric

    -‘4C’

    6 alphanumeric

    -‘CR’

    17 alphanumeric

    ref01

    ref02 denotation

    - ‘14’

    Amex CAP Number (optional)

    - ‘12’

    Billing Account (optional)

    - ‘4C’

    Ship-to-Zip or Canadian Postal Code (required)

    - ‘CR’

    Cardmember Reference Number (optional)




    American Express Level 2/3 Request Fields – Table 2 / Detail Fields

    Reg

    Variable

    Value

    Limits

    Description

    Y

    it102

    Line Item Quantity
    Invoiced

    10 decimal

    Y

    it103

    Unit or Basis for
    Measurement
    Code

    2 alphanumeric

    Y

    it104

    Unit Price

    15 decimal

    N

    it105

    Basis or Unit Price
    Code

    2 alphanumeric

    N

    it10618

    Product/Service ID
    Qualifier

    2 alphanumeric

    • ‘MG’ - Manufacturer’s Part Number
    • ‘VC’ - Supplier Catalog Number
    • ‘SK’ - Supplier Stock Keeping Unit Number
    • ‘UP’ - Universal Product Code
    • ‘VP’ – Vendor Part Number
    • ‘PO’ – Purchase Order Number
    • ‘AN’ – Client Defined Asset Code

    N

    it10719

    Product/Service ID

    it10618

    it10719 - size/type

    - VC

    20 alphanumeric

    - PO

    22 alphanumeric

    - Other

    30 alphanumeric

    Y

    txi01

    Tax Type code

    2 alphanumeric

  • ‘CT’ – County/Tax (optional)
  • ‘EV’ – Environmental Tax (optional)
  • ‘GS’ – Good and Services Tax (GST) (optional)
  • ‘LS’ – State and Local Sales Tax (optional)
  • ‘LT’ – Local Sales Tax (optional)
  • ‘PG’ – Provincial Sales Tax (PST) (optional)
  • ‘SP’ – State/Provincial Tax a.k.a. Quebec Sales Tax (QST) (optional)
  • ‘ST’ – State Sales Tax (optional)
  • ‘TX’ – All Taxes (required)
  • ‘VA’ – Value-Added Tax a.k.a. Canadian Harmonized Sales
    Tax (HST) (optional)
  • ‘ST’ – State Sales Tax (optional)
  • ‘TX’ – All Taxes (required)
  • ‘VA’ – Value-Added Tax a.k.a. Canadian
    Harmonized Sales Tax (HST) (optional)
  • N

    txi02

    Monetary Amount

    6 decimal

    N

    txi03

    Percent

    10 decimal

    N

    txi06

    Tax Exempt Code

    1 alphanumeric

    • ‘1’ – Yes (Tax Exempt)
    • ‘2’ – No (Not Tax Exempt)
    • ‘A’ – Labor Taxable, Material Exempt
    • ‘B’ – Material Taxable, Labor Exempt
    • ‘C’ – Not Taxable
    • ‘F’ – Exempt (Good / Services Tax)
    • ‘G’ – Exempt (Provincial Sales Tax)
    • ‘L’ – Exempt Local Service
    • ‘R’ – Recurring Exempt
    • ‘U’ – Usage Exempt

    Y

    pam05

    Line Item
    Extended Amount

    8 decimal

    Y

    pid06

    Line Item
    Description

    80 alphanumeric




    American Express Level 2/3 Request Fields – Table 3 / Summary Fields

    Reg

    Variable

    Value

    Limits

    Description

    Y

    txi01

    Tax Type code

    2 alphanumeric

    • ‘CA’ – City Tax
    • ‘CP’ – County/Parish Sales Tax
    • ‘CT’ – County/Tax
    • ‘EV’ – Environmental Tax
    • ‘GS’ – Good and Services Tax (GST)
    • ‘LS’ – State and Local Sales Tax
    • ‘LT’ – Local Sales Tax
    • ‘PG’ – Provincial Sales Tax (PST)
    • ‘SP’ – State/Provincial Tax a.k.a. Quebec Sales Tax
      (QST)
    • ‘ST’ – State Sales Tax
    • ‘TX’ – All Taxes
    • ‘VA’ – Value-Added Tax a.k.a. Canadian Harmonized
      Sales Tax (HST)

    Y

    txi02

    Monetary Amount

    6 decimal

    N

    txi03

    Percent

    10 decimal

    N

    txi06

    Tax Exempt Code

    1 alphanumeric

    • ‘1’ – Yes (Tax Exempt)
    • ‘2’ – No (Not Tax Exempt)
    • ‘A’ – Labor Taxable, Material Exempt
    • ‘B’ – Material Taxable, Labor Exempt
    • ‘C’ – Not Taxable
    • ‘F’ – Exempt (Good / Services Tax)
    • ‘G’ – Exempt (Provincial Sales Tax)
    • ‘L’ – Exempt Local Service
    • ‘R’ – Recurring Exempt
    • ‘U’ – Usage Exempt
    Predecessors:
    • Transaction that was completed on an independent system
    Successors:
  • None

  • Definition of American Express Level 2/3 Request Fields

    Reg

    Variable

    Value

    Limits

    Description

    N

    big04

    Purchase Order Number

    22 alphanumeric

    N

    big05

    Release Number

    30 alphanumeric

    N

    big10

    Invoice Number

    10 alphanumeric

    Y

    n101

    Entity Identifier Code

    2 alphanumeric

    • ‘R6’ - Requester (required)
    • ‘BG’ - Buying Group (optional)
    • ‘SF’ - Ship From (optional)
    • ‘ST’ - Ship To (optional)
    • 40’ - Receiver (optional)

    Y

    n102

    Name

    40 alphanumeric

    n101

    n102 denotation

    - ‘R6’

    Requester Name

    - ‘BG’

    Buying Group Name

    - ‘SF’

    Ship From Name

    - ‘ST’

    Ship To Name

    - ‘40’

    Receiver Name

    N

    n301

    Address

    40 alphanumeric

    Address

    N

    n401

    City

    30 alphanumeric

    City

    N

    n402

    State or Province

    2 alphanumeric

    State or Province

    N

    n403

    Postal Code

    15 alphanumeric

    Postal Code

    Y

    ref01

    Reference
    Identification
    Qualifier

    2 alphanumeric

    • ‘VR’ – Vendor ID Number
    • ‘14’ – Master Account Number
    • ‘12’ – Billing Account
    • ‘4C’ – Shipment Destination Code (required)
    • ‘CR’ – Customer Reference Number

    Y

    ref02

    Reference
    Identification

    ref01

    ref02 size/type

    -‘VR’

    10 alphanumeric

    -‘14’

    10 alphanumeric

    -‘12’

    30 alphanumeric

    -‘4C’

    6 alphanumeric

    -‘CR’

    17 alphanumeric

    ref01

    ref02 denotation

    - ‘14’

    Amex CAP Number (optional)

    - ‘12’

    Billing Account (optional)

    - ‘4C’

    Ship-to-Zip or Canadian Postal Code (required)

    - ‘CR’

    Cardmember Reference Number (optional)



    Reg

    Variable

    Value

    Limits

    Description

    Y

    it102

    Line Item Quantity
    Invoiced

    10 decimal

    Y

    it103

    Unit or Basis for
    Measurement
    Code

    2 alphanumeric

    Y

    it104

    Unit Price

    15 decimal

    N

    it105

    Basis or Unit Price
    Code

    2 alphanumeric

    N

    it10618

    Product/Service ID
    Qualifier

    2 alphanumeric

    • ‘MG’ - Manufacturer’s Part Number
    • ‘VC’ - Supplier Catalog Number
    • ‘SK’ - Supplier Stock Keeping Unit Number
    • ‘UP’ - Universal Product Code
    • ‘VP’ – Vendor Part Number
    • ‘PO’ – Purchase Order Number
    • ‘AN’ – Client Defined Asset Code

    N

    it10719

    Product/Service ID

    it10618

    it10719 - size/type

    - VC

    20 alphanumeric

    - PO

    22 alphanumeric

    - Other

    30 alphanumeric

    Y

    txi01

    Tax Type code

    2 alphanumeric

  • ‘CT’ – County/Tax (optional)
  • ‘EV’ – Environmental Tax (optional)
  • ‘GS’ – Good and Services Tax (GST) (optional)
  • ‘LS’ – State and Local Sales Tax (optional)
  • ‘LT’ – Local Sales Tax (optional)
  • ‘PG’ – Provincial Sales Tax (PST) (optional)
  • ‘SP’ – State/Provincial Tax a.k.a. Quebec Sales Tax (QST) (optional)
  • ‘ST’ – State Sales Tax (optional)
  • ‘TX’ – All Taxes (required)
  • ‘VA’ – Value-Added Tax a.k.a. Canadian Harmonized Sales
    Tax (HST) (optional)
  • ‘ST’ – State Sales Tax (optional)
  • ‘TX’ – All Taxes (required)
  • ‘VA’ – Value-Added Tax a.k.a. Canadian
    Harmonized Sales Tax (HST) (optional)
  • N

    txi02

    Monetary Amount

    6 decimal

    N

    txi03

    Percent

    10 decimal

    N

    txi06

    Tax Exempt Code

    1 alphanumeric

    • ‘1’ – Yes (Tax Exempt)
    • ‘2’ – No (Not Tax Exempt)
    • ‘A’ – Labor Taxable, Material Exempt
    • ‘B’ – Material Taxable, Labor Exempt
    • ‘C’ – Not Taxable
    • ‘F’ – Exempt (Good / Services Tax)
    • ‘G’ – Exempt (Provincial Sales Tax)
    • ‘L’ – Exempt Local Service
    • ‘R’ – Recurring Exempt
    • ‘U’ – Usage Exempt

    Y

    pam05

    Line Item
    Extended Amount

    8 decimal

    Y

    pid06

    Line Item
    Description

    80 alphanumeric



    Reg

    Variable

    Value

    Limits

    Description

    Y

    txi01

    Tax Type code

    2 alphanumeric

    • ‘CA’ – City Tax
    • ‘CP’ – County/Parish Sales Tax
    • ‘CT’ – County/Tax
    • ‘EV’ – Environmental Tax
    • ‘GS’ – Good and Services Tax (GST)
    • ‘LS’ – State and Local Sales Tax
    • ‘LT’ – Local Sales Tax
    • ‘PG’ – Provincial Sales Tax (PST)
    • ‘SP’ – State/Provincial Tax a.k.a. Quebec Sales Tax
      (QST)
    • ‘ST’ – State Sales Tax
    • ‘TX’ – All Taxes
    • ‘VA’ – Value-Added Tax a.k.a. Canadian Harmonized
      Sales Tax (HST)

    Y

    txi02

    Monetary Amount

    6 decimal

    N

    txi03

    Percent

    10 decimal

    N

    txi06

    Tax Exempt Code

    1 alphanumeric

    • ‘1’ – Yes (Tax Exempt)
    • ‘2’ – No (Not Tax Exempt)
    • ‘A’ – Labor Taxable, Material Exempt
    • ‘B’ – Material Taxable, Labor Exempt
    • ‘C’ – Not Taxable
    • ‘F’ – Exempt (Good / Services Tax)
    • ‘G’ – Exempt (Provincial Sales Tax)
    • ‘L’ – Exempt Local Service
    • ‘R’ – Recurring Exempt
    • ‘U’ – Usage Exempt