My Profile_


Transaction Flow for MasterCard Level 2/3

Transaction Examples for MasterCard Level 2/3

This 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 MC Level 2/3 processing support is enabled on your merchant account. Batch Close, Open Totals and Pre-authorization are identical to the non-MasterCard transactions outlined in Transactions Examples for Non-Level 2/3 Card Types

 

  • When the Pre-authorization response contains CorporateCard equal to true then you can submit the MC 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 MC transactions using the transaction set outlined in Transaction Examples for Non-Level 2/3 Card Types .

MCPre-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.  Level 2/3 data submission is not supported as part of a pre-authorization as a pre-authorization is not settled.  When CorporateCard is returned true then Level 2/3 data may be submitted.

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

Canada Code Sample

namespace Moneris
{
    using System;
	public class MCTestPreauth
	{
	  public static void Main(string[] args)
	  {
	        string host = ‘esqa.moneris.com’;
	        string order_id = ‘order_id_1234’;
	        string amount = ‘4.00’;
	        string card = ‘5454545442424242’;
	        string exp = ‘1111’;
	        string crypt = ‘7’;
	
	        HttpsPostRequest mpgReq =
	            new HttpsPostRequest(host, ‘moneris’, ‘hurgle’,
	                       new Preauth(order_id, amount, card, exp, 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());
	
	        }
	        catch (Exception e)
	        {
	            Console.WriteLine(e);
	        }
	  }
				
	} // end TestDrive Item
}
                

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


MCCompletion

The MasterCard 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

namespace Moneris
{

	public class TestMCCompletion
	{
		public static void Main(string[] args)
		{
			string host = "esqa.moneris.com";
			string store_id = "moneris";
			string api_token = "hurgle";
			string order_id;
			Console.Write ("Please enter an order ID: ");
			order_id = Console.ReadLine();
			
		  string amount = "0.01";
			Console.Write ("Please enter amount: ");
			amount = Console.ReadLine();
			
		  string txn_number;
			Console.Write ("Please enter a txn number: ");
			txn_number = Console.ReadLine();				
			
		  string merRefNo;
			Console.Write ("Please enter a merchant reference number: ");
			merRefNo = Console.ReadLine();				
			
		  string crypt = "7";
			
		  try
			{
				L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, 
					new MCCompletion(order_id, amount, txn_number, merRefNo, 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);
			}
		}
	}
}
                

MCCompletion - Transaction Values

L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, new MCCompletion(order_id, amount, txn_number, merRefNo, crypt));

MCCompletion 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.

Transaction 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.

 

 

 

merRefNo

 

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:
MC Pre-Authorization

Successors:
MCPurchaseCorrection,   MCRefund


MCForcepost

This transaction is an alternative to MCCompletion to obtain the funds locked on Pre-authorization obtained from IVR or equivalent terminal. The force post requires that the original Pre-authorization’s auth code is provided and it retrieves the locked funds and readies them for settlement in to the merchant account.

Canada Code Sample

using System;
namespace Moneris
{
	public class TestMCForcePost
	{
		public static void Main(string[] args)
		{
			string host = "esqa.moneris.com";
			string cust_id= "Chuck_Liddell_07";
			string store_id = "moneris";
			string api_token = "hurgle";
			string order_id;
			Console.Write ("Please enter an order ID: ");
			order_id = Console.ReadLine();
			string amount = "59.00";
			Console.Write ("Please enter amount: ");
			amount = Console.ReadLine();
			string pan = "5454545442424242";
			string expDate = "1512";
			Console.Write ("Please enter expiry date: ");
			expDate = Console.ReadLine();
			string authCode = "88864";
			string merRefNo;
			Console.Write ("Please enter a merchant reference number: ");
			merRefNo = Console.ReadLine();				
			string crypt = "7";
			try
			{
				L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, 
					new MCForcePost(order_id, cust_id, amount, pan, expDate, authCode, 
							merRefNo, 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);
			}
		}
	}
}
                

MC Forcepost - Transaction Values

L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, new MCForcePost(order_id, cust_id, amount, pan, expDate, authCode, merRefNo, crypt));

MCForcepost 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 alphanumeric (YYMM format)

expDate

Note: this is the reverse of the date displayed on the physical card, which is MMYY.

Authorization Code

String

8-character alphanumeric

authCode

Authroziation code provided in the transaction response from the issuing bank.  This is required for Force Post transactions.

 

 

 

merRefNo

 

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


MC Forcepost object optional values

Customrer ID

String

50-character alphanumeric

cust_id

This can be used for policy number, membership number, student ID, invoice number and so on.

 

This field is searchable from the Moneris Merchant Resource Centre.

 


Predecessors:
Pre-Authorization completed on an independent terminal

Successors:
MC Purchase Correction,  MCRefund


MCPurchaseCorrection

MCCompletions can be corrected the same day* that they occur. The MasterCard 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 MCPurchaseCorrection 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

namespace Moneris

{

    using System;

                public class TestPurchaseCorrection

                {

                  public static void Main(string[] args)

                  {

                                string host =’esqa.moneris.com’;

                                string store_id = ‘store1’;

                                string api_token = ‘yesguy’;

                                string order_id = ‘order_id_123’;

                                string txn_number = ‘123456-01-0’;

                                string crypt = ‘7’;

               

                                HttpsPostRequest mpgReq = new HttpsPostRequest(host, store_id, api_token,

                                                                new PurchaseCorrection(order_id, txn_number, 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());

               

                                }

                                catch (Exception e)

                                {

                                                Console.WriteLine(e);

                                 }

                  }

                                                               

                } // end TestDrive Item

}
                

MCPurchaseCorrection - Transaction Values

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

MCPurchaseCorrection 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.

Transaction 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:
MCCompletion

Successors:
None


MCRefund

The MasterCard 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 pre-authorization completion.

Canada Code Sample

namespace Moneris
{
	public class TestMCRefund
	{
		public static void Main(string[] args)
		{
			string host = args[0];
			string store_id = args[1];
			string api_token = args[2];
			string order_id = args[3];
			string amount = args[4];
			string txn_number = args[5];
			string merRefNo = args[6];
			string crypt = args[7];
			try
			{
				L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, 
					new MCRefund(order_id, amount, txn_number, merRefNo, 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);
			}
		}
	}
}
                

MCRefund - Transaction Values

L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, new MCRefund(order_id, amount, txn_number, merRefNo, crypt));

MCRefund 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.

Transaction 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.

 

 

 

merRefNo

 

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:
MC Completion

Successors:
None

MCIndependentRefund

Independent refund is used when the originating transaction was not performed through Moneris Gateway and does not require an existing order to be logged in the Moneris Gateway; however, the credit card number and the expiry date will need to be passed. The transaction format is almost indentical to a purchse or a pre-authorization.

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

namespace Moneris
{
	public class TestMCIndependentRefund
	{
		public static void Main(string[] args)
		{
			string host = args[0];
			string store_id = args[1];
			string api_token = args[2];
			string order_id = args[3];
			string amount = args[4];
		    string pan=args[5];
		    string expDate=args[6];
			string merRefNo = args[7];
			string crypt = args[8];
			try
			{
				L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, 
					new MCIndependentRefund(order_id, "custid", amount, pan,expDate, merRefNo,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);
			}
		}
	}
}
                

MCIndependent Refund - Transaction Values

L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, new MCIndependentRefund(order_id, "custid", amount, pan,expDate, merRefNo,crypt));

MCIndependent Refund 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.

 

 

 

merRefNo

 

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


MCIndependentRefund object optional values

Customrer ID

String

50-character alphanumeric

cust_id

This can be used for policy number, membership number, student ID, invoice number and so on.

 

This field is searchable from the Moneris Merchant Resource Centre.

 


Predecessors:
Transaction that was completed on an independent system

Successors:
None


MC Level 2/3 MCCorpais

MCCorpais – (Level 2/3 Air Travel Data) MCCorpais will contain the entire required and optional data field for Level 2/3 Airline data. MCorpais data can be sent when the card has been identified in the transaction request as being a corporate card.

 

  • MCLevel2/3 MCCorpais( Corporate card common data with Line Item Details)
  • MCLevel2/3 MCCorpais (Passenger General Ticket Information with Trip Leg Data-Air)
  • MCLevel2/3 MCCorpais (Passenger General Ticket Information with Passenger Rail-Rail)
  • MCLevel2/3 MCCorpais (Corporate card common data with Passenger General Ticket Information, Trip Leg Data & Passenger Rail)

 

This transaction example includes the following elements for Level 2 and 3 purchasing card corporate card data processing:

  • Corporate Card Common Data (MCCorpac)
    • only 1 set of MCCorpac fields can be submitted
    • this data set includes data elements that apply to the overall order, for example the total overall taxes
  • Line Item Details (MCCorpal)
    • 1-998 counts of MCCorpal line items can be submitted
    • This data set includes the details about each individual item or service purchased

MC Level 2/3 MCCorpais - Corporate Card Common Data with Line Item Details

MCCorpais request must be preceded by a financial transaction (MCCompletion, MCForcepost, MCRefund, MCIndependentRefund) and the Corporate Card flag must be set to “true” in the Pre-authorization response.

Canada Code Sample

using System;

namespace Moneris
{

   public class TestMCCorpaisCommonLineItem
   {
	public static void Main(string[] args)
	{
	   string host = "esqa.moneris.com";
	   string store_id = "moneris";
	   string api_token = "hurgle";
	   string order_id;
	   string txn_number;

	   Console.Write ("Please enter an order ID: ");
	   order_id = Console.ReadLine();		

	   Console.Write ("Please enter a txn number: ");
	   txn_number = Console.ReadLine();	
	   
	   try
	   {
/**************Passenger Transport Detail - General Ticket Information *****************/
	   	
	   	//you can only set values to fields which you have valid value
	   	//common data first

	   	MCCorpac corpac=new MCCorpac();
	   	corpac.CustomerCode="CustomerCode123";
		corpac.CardAcceptorTaxId="UrTaxId";//Merchant tax id which is mandatory
	   	corpac.CorporationVatNumber="cvn123";
	   	corpac.FreightAmount="1.23";
	   	corpac.DutyAmount="2.34";
	   	corpac.ShipToPosCode="M1R 1W5";
	   	corpac.OrderDate="141211";
	   	corpac.CustomerVatNumber="customervn231";
	   	corpac.UniqueInvoiceNumber="uin567";
	   	corpac.AuthorizedContactName="John Walker";
		Tax[] taxc = new Tax[2];
		taxc[0] = new Tax("1.19", "6.0", "GST", "gst1298", "Y");
		taxc[1] = new Tax("1.29", "7.0", "PST", "pst1298", "N");
	   	corpac.Tax=taxc;

		//line item detail
		MCCorpal[] corpal = new MCCorpal[2];
		corpal[0] = new MCCorpal();
		corpal[0].CustomerCode="customer code";
		corpal[0].LineItemDate="150114";
		corpal[0].ShipDate="150120";
		corpal[0].OrderDate="150114";
		corpal[0].ProductCode="pc11";
		corpal[0].ItemDescription="Good item";
		corpal[0].ItemQuantity="4";
		corpal[0].UnitCost="1.25";
		corpal[0].ItemUnitMeasure="EA";
		corpal[0].ExtItemAmount="5.00";
		corpal[0].DiscountAmount="1.00";
		corpal[0].CommodityCode="cCode11";
		Tax[] taxl = new Tax[1];
		taxl[0] = new Tax("0.52", "13.0", "HST", "hst1298", "Y");
	   	corpal[0].Tax=taxl;
		corpal[1] = new MCCorpal();
		corpal[1].CustomerCode="customer code2";
		corpal[1].LineItemDate="150114";
		corpal[1].ShipDate="150122";
		corpal[1].OrderDate="150114";
		corpal[1].ProductCode="pc12";
		corpal[1].ItemDescription="Better item";
		corpal[1].ItemQuantity="5";
		corpal[1].UnitCost="10.00";
		corpal[1].ItemUnitMeasure="EA";
		corpal[1].ExtItemAmount="50.00";
		corpal[1].CommodityCode="cCode12";
	   
/****************************** Request ***************************************/
	
		MCCorpais data = new MCCorpais();
		data.OrderId=order_id;
		data.TxnNumber=txn_number;
		data.Corpac=corpac;
		data.Corpal=corpal;
		
		L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, data);
				
/****************************** Response *************************************/
		
		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.StackTrace:"+e.StackTrace+",e.Message:"+e.Message);
	   }
	}
   }
}
                

MC Level 2/3 Corpais – Corporate card Common Data with Line Item Details - Transaction Values

MCCorpac corpac=new MCCorpac(); MCCorpal[] corpal = new MCCorpal[2]; MCCorpais data = new MCCorpais(); L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, data);

MC level 2/3 Corpais – Corporate Card Common Data with Line Item Details 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.

Transaction 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.

MCCorpac

n/a

n/a

n/a

Corporate Card Common Data

MCCorpal

n/a

n/a

n/a

Line Item Details

MCCorpais

n/a

n/a

n/a

Corporate Card Common Data and Line Item Details



MC level 2/3 Corpais – Corporate Card Common Data with Line Item Details mandatory values


MasterCard - Corporate Card Common Data (MCCorpac) - Level 2 Request Fields

Req

Variable Name

Value

Limits

Description                        

N

AustinTetraNumber

Austin-Tetra Number

15 A/N

Merchant’s Austin-Tetra Number.

N

NaicsCode

NAICS Code

15 A/N

North American Industry Classification

System (NAICS) code assigned to the merchant.

N

CustomerCode

Customer Code

25 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

N

UniqueInvoiceNumber

Unique Invoice Number

17 A/N

Unique number associated with the individual transaction provided by the merchant.

N

CommodityCode

Commodity Code

15 A/N

Code assigned by the merchant that best categorizes the item(s) being purchased.

N

OrderDate

Order Date

6 N

The date the item was ordered. If present, must contain a valid date in the format YYMMDD.

N

CorporationVatNumber

Corporation VAT Number

20 A/N

Contains a corporation’s value added tax (VAT) number.

N

CustomerVatNumber

Customer VAT Number

20 A/N

Contains the VAT number for the customer/cardholder used to identify the customer when purchasing goods and services from the merchant.

N

FreightAmount

Freight Amount

9 A/N

The freight on the total purchase Must have 2 decimals.

N

DutyAmount

Duty Amount

9 A/N

The duty on the total purchase, Must have 2 decimals

N

DestinationProvinceCode

Destination State / Province Code

3 A/N

State or Province of the country where the goods will be delivered. Left justified with trailing spaces. ie. ONT - Ontario

N

DestinationCountryCode

Destination Country Code

3 A/N

The country code where goods will be delivered. Left justified with trailing spaces. ie. CAN (Canada).

N

ShipFromPosCode

Ship From Postal Code

10 A/N

The postal code or zip code from which items were shipped

N

ShipToPosCode

Destination Postal Code

10 A/N

The postal code or zip code where goods will be delivered

N

AuthorizedContactName

Authorized Contact Name

36 A/N

Name of an individual or company contacted for company authorized purchases.

N

AuthorizedContactPhone

Authorized Contact Phone

17 A/N

Phone number of an individual or company contacted for company authorized purchases.

N

AdditionalCardAcceptordata

Additional Card Acceptor Data

40 A/N

Information pertaining to the card acceptor

N

CardAcceptorType

Card Acceptor Type

8 A/N

Various classifications of business ownership chracteristics.

 

First character represents ‘Business Type’.

The second represents 'Business Owner Type'.

The third represents 'Business Certification Type'.

The fourth represents 'Business Racial/Ethnic Type'.

The fifth represents 'Business Type Provided Code'. The sixth represents 'Business Owner Type Provided Code'.

The seventh represents 'Business Certification Type Provided Code'.

The eighth represents 'Business Racial/Ethnic Type

N

CardAcceptorTaxId

Card Acceptor Tax ID

20 A/N

It is a US Federal tax ID number of value added tax (VAT) ID.

N

CardAcceptorReferenceNumber

Card Acceptor Reference Number

25 A/N

Code that facilitates card acceptor/corporation communication and record keeping,

N

CardAcceptorVatNumber

Card Acceptor VAT Number

20 A/N

Value added tax (VAT) number for the card acceptor location used to identify the card acceptor when collecting and reporting taxes.

CM

Tax

Tax*

6 Array

Can have up to 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.


MasterCard - Line Item Details (MCCorpal) - Level 3 Request fields

Req

Variable

Value

Limits

Description

 

CustomerCode

Customer Code

25 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

N

LineItemDate

Line Item Date

6 N

The purchase date of the line item referenced in the associated Corporate Card Line Item Detail.  YYMMDD format

N

ShipDate

Ship Date

6 N

The date the merchandise was shipped to the destination. YYMMDD format

N

OrderDate

Order Date

6 N

The date the item was ordered.fixed length 6 Numeric, in YYMMDD format

N

ProductCode

Product Code

12 A/N

Line item Product Code (if this field is not sent, then itemComCode)

If the order has a Freight/Shipping line item, the productCode value has to be “Freight/Shipping”.  If the order has a Discount line item, the productCode value has to be “Discount”.

N

ItemDescription

Item Description

35 A

Line Item description

N

ItemQuantity

Item Quantity

5 A/N

Quantity of line item

N

UnitCost

Unit Cost

9 decimal

Line item cost per unit. Must contain 2 decimal places.

N

ItemUnitMeasure

Item Unit Measure

12 A/N

The line item unit of measurement code

N

ExtItemAmount

Ext Item Amount

9 decimal

Monetary amount

N

DiscountAmount

Discount Amount

9 decimal

The discount amount can only be set when the product code is set to “Discount”.  When the product code is set to “Discount” then discount amount cannot be blank.  Must contain 2 decimal places.

N

CommodityCode

Commodity Code

15A/N

Code assigned to the merchant that best categorizes the item(s) being purchased.

CM

Tax

Tax*

6 Array

Can have upto 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.




Tax* Array Request Fields

Req

Variable

Value

Limits

Description

M

tax_amount

Tax Amount

9 decimal

Contains detail tax amount for purchase of goods or services. Must be 2 decimal places. Maximum 999999.99

M

tax_rate

Tax Rate

5 N

Contains the detailed tax rate applied in relationship to a specific tax amount. Like 5% GST should be ‘5.0’. May contain upto 2 decimals with maximum upto to 999.99.

M

tax_type

Tax Type

4 A/N

Contains tax type such as GST,QST,PST,HST

M

tax_id

Tax ID

20 A/N

Provides an identification number used by the card acceptor with the tax authority in relationship to a specific tax amount such as GST/HST number.

M

tax_included_in_sales

Tax included in sales indicator

1 A

This is the indicator used to reflect additional tax capture and reporting. Valid values are:

Y=Tax included in total purchase amount

N=Tax not included in total purchase amount


Predecessors:
MCCompletion, MCForcepost, MCRefund, MCIndependentRefund

Successors:
MCRefund


MC Level 2/3 MCCorpais – Passenger General Ticket Information & Passenger Rail

This transaction example includes the following elements for Level 2 and 3 passenger transport rail data processing:

  • Passenger General Ticket Information (MCCorpai)
    • only 1 set of MCCorpai fields can be submitted
    • this data set includes data elements that apply to the overall order, for example the total overall taxes
  • Passenger Rail (MCCorpar)
    • 1-998 counts of MCCorpar line items can be submitted
    • This data set includes the details about each individual rail ticket purchased

 

Additional optional data sets that can be added to this example:

  • Corporate Card Common Data (MCCorpac)
    • only 1 set of MCCorpac fields can be submitted
    • this data set includes data elements that apply to the overall order, for example the total overall taxes

 

MCCorpais request must be preceded by a financial transaction (MCCompletion, MCForcepost, MCRefund, MCIndependentRefund) and the Corporate Card flag must be set to “true” in the Pre-authorization response.  MCCorpais request will need to contain the order_id of the financial transaction as well as the txn_number. 

Canada Code Sample

using System;

namespace Moneris
{

   public class TestMCCorpaisCommonLineItemRail
   {
	public static void Main(string[] args)
	{
	   string host = "esqa.moneris.com";
	   string store_id = "moneris";
	   string api_token = "hurgle";
	   string order_id="hinalgohilmc";
	   string txn_number="60736-1_10";

       Console.Write("Please enter an Order Id:");
       order_id = Console.ReadLine();

       Console.Write("Please enter an txn number:");
       txn_number = Console.ReadLine();


	   try
	   {
	   
/***********Passenger Transport Detail - General Ticket Information **************/
 //you can put "" or null for the optional fields if you do not have the value for that field

           string passengerName = "Master Tester";
           string ticketNumber = "ticket4564";
           string issuingCarrier = "2R";
           string customerCode = "customerCode123";
           string travelAgencyCode = "MC322";
           string totalFee = "4.12";
           string exchangeTicketAmount = "2.21";
           Tax[] tax = new Tax[2];
           tax[0] = new Tax("1.19", "6.0", "GST", "gst1298", "Y");
           tax[1] = new Tax("1.29", "7.0", "PST", "pst1298", "N");

           MCCorpai data2 =
               new MCCorpai(passengerName, ticketNumber, issuingCarrier, customerCode, travelAgencyCode, totalFee, exchangeTicketAmount, tax);
	  
/******************Passenger - rail data********************************/

		MCCorpar[] corpar = new MCCorpar[2];
		corpar[0] = new MCCorpar();
		corpar[0].PassengerName="Passenger Namer";
		corpar[0].TicketNumber="1234567890002";
		corpar[0].TravelAgencyCode="TAC1";
		corpar[0].TravelAgencyName="Daily Travel";
		corpar[0].TravelDate="141223";
		corpar[0].SequenceNumber="001";
		corpar[0].ServiceType="01";
		corpar[0].ServiceNature="01";
		corpar[0].ServiceAmount="788.34";
		corpar[0].FullVatGrossAmount="68.12";
		corpar[0].StartStation="Vanco";
		corpar[0].DestinationStation="Calgr";
		corpar[0].NumberOfAdults="2";
		corpar[0].NumberOfChildren="3";
		corpar[0].ClassOfTicket="E";
		corpar[0].ProcedureId="RS-23IVTY";
		corpar[0].FullVatTaxAmount="4.49";
		corpar[0].HalfVatGrossAmount="1.08";
		corpar[0].HalfVatTaxAmount="0.87";
		corpar[0].TrafficCode="665";
		corpar[0].SampleNumber="125";
		corpar[0].GenericCode="66";
		corpar[0].GenericNumber="gn2";
		corpar[0].GenericOtherCode="13";
		corpar[0].GenericOtherNumber="gon2";
		corpar[0].ReductionCode="14";
		corpar[0].ReductionNumber="rn2";
		corpar[0].ReductionOtherCode="17";
		corpar[0].ReductionOtherNumber="ron2";
		corpar[0].TransportationOtherCode="115";
		corpar[0].TransportationServiceProvider="tsp2";
		corpar[0].TransportationServiceOffered="tso2";
		corpar[1] = new MCCorpar();
		corpar[1].PassengerName="Passenger Namer1";
		corpar[1].TicketNumber="1234567890003";
		corpar[1].TravelAgencyCode="TAC2";
		corpar[1].TravelAgencyName="Good Travel";
		corpar[1].TravelDate="141222";
		corpar[1].SequenceNumber="002";
		corpar[1].ServiceType="02";
		corpar[1].ServiceNature="02";
		corpar[1].ServiceAmount="56.34";
		corpar[1].StartStation="Calgr";
		corpar[1].DestinationStation="Winpg";
		corpar[1].NumberOfAdults="4";
		corpar[1].NumberOfChildren="6";
		corpar[1].ClassOfTicket="B";
	   
		/****************************** Request ***************************************/
	
		MCCorpais data = new MCCorpais();
		data.OrderId=order_id;
		data.TxnNumber=txn_number;
        		data.Corpai = data2;
		data.Corpar=corpar;
		
L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, data);
				
		/****************************** Response *************************************/
		
		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.StackTrace:"+e.StackTrace+",e.Message:"+e.Message);
	   }
		
	}
   }
}
                

MC Level 2/3 Corpais – Passenger General Ticket Information & Passenger Rail - Transaction Values

MCCorpai data2 = new MCCorpai(passengerName, ticketNumber, issuingCarrier, customerCode, travelAgencyCode, totalFee, exchangeTicketAmount, tax); MCCorpar[] corpar = new MCCorpar[2]; MCCorpais data = new MCCorpais(); L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token, data);

MC level 2/3 Corpais – Passenger General Ticket Information & Passenger Rail 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.

Transaction 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.

       

 

MCCorpar

n/a

n/a

n/a

Passenger Rail

MCCorpais

n/a

n/a

n/a

Passenger General Ticket Information & Passenger Rail



Mastercard - Passenger/Itinerary – General Ticket Information (MCCorpai) - Level 2 Request Fields

Variable

Value

Limits

Description

PassengerName

Passenger Name

20 A/N

Field for the name of the passenger.

TicketNumber

Ticket Number

13 A/N

Field for the ticket number for Air/Rail Travel

IssuingCarrier

Issuing Carrier

4 A/N

Contains the standard abbreviation for the airline or railway carrier issuing the ticket.

CustomerCode

Customer Code

25 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

IssueDate

Issue Date

6 N

Date the ticket was issued to the customer. If present, must contain a valid date in the format YYMMDD.

TravelAgencyCode

Travel Ageny Code

8 A/N

Code identifying travel agency if the ticket was issued by a travel agency

TravelAgencyName

Travel Agency Name

25 A/N

Name of the travel agency issuing the ticket.

TotalFare

Total Fare

9 decimal

Total amount of the ticket and should equal the amount of the transaction.  Maximum 999999.99

TotalFee

Total Fee

9 decimal

Fee Amount. Must be 2 decimals. Maximum 999999.99

TotalTaxes

Total Taxes

9 decimal

Total taxes is the amount of all the taxes associated with the ticket.  Maximum 999999.99

RestrictedTicketIndicator

Restricted Ticket Indicator

1 A/N

Provides identifier noting that the ticket purchased has some restrictions associated with its use.

If present, possible values are:

0 – no restrictions

1 – restricted ticket (non-refundable)

ExchangeTicketAmount

Exchange Ticket Amount

9 decimal

Price of new ticket purchase on an exchanged ticket. Must be 2 decimals. Maximum 999999.99

ExchangeFeeAmount

Exchange Fee Amount

9 decimal

Fee paid to exchange the ticket.  Maximum 999999.99

TravelAuthorizationCode

Travel Authorization Code

64 N

Code provided by the company to a travel agent authorizing ticket issuance. This code is identified as Customer File Reference Number in Airline Reporting

Corporation (ARC) specifications.

IataClientCode

IATA Client Code

17 A/N

International Air Transport

Association (IATA) code identifying the company that purchased the ticket.

Tax

Tax*

6 Array

Can have upto 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.



 

Mastercard - Passenger/Itinerary – Rail Data (MCCorpar) - Level 3 Request Fields

 

Req

Variable

Value

Limits

Description

Y

PassengerName

Passenger name

29 A/N

Name of the passenger to whom the ticket was issued.

Mandatory field if merchant has airline, railway or travel agency MCC.

Y

TicketNumber

Ticket Number

15 A/N

Contains the number on the ticket. Mandatory field if merchant has railway or travel agency MCC.

N

TravelAgencyCode

Travel Agency Code

8 A/N

Code assigned to travel agency.

N

TravelAgencyName

Travel Agency Name

25 A/N

Name of the travel agency issuing the ticket.

N

TravelDate

Travel Date

6 N

The effective ticket date, previously referred to as departure date. Customers must use the ticket purchase date for “open tickets”. The format for this field is YYMMDD

N

SequenceNumber

Sequence Number

3 A/N

Sequence number indicating the sequence that this rail segment falls within the trip.

N

ServiceType

Service Type

2 A/N

Indicates the type of service provided.

Example of possible values:

01 – Ticket

02 – Baggage

N

ServiceNature

Service Nature

2 A/N

Indicates the nature of the service provided.

Example of possible values:

01 – Seat

02 – Couchette

N

ServiceAmount

Service Amount

9 decimal

Amount charged for the service. 

Maximum 999999.99

N

FullVatGrossAmount

Full VAT Gross Amount

9 decimal

Gross amount from which the VAT was calculated at the full tax rate.  Maximum 999999.99

N

FullVatTaxAmount

Full VAT Tax Amount

9 decimal

The value added tax at the full tax rate.  Maximum 999999.99

N

StartStation

Start Station

3-30 A/N

Contains name of the railway start station. Used if serviceType contains a value that indicates Ticket or Reservation.

N

DestinationStation

Destination Station

3-30 A/N

Contains name of the railway destination station. Used if serviceType contains a value that indicates Ticket or Reservation.

N

NumberOfAdults

Number of Adults

2 N

Number of Adults.

Used only when:

·          serviceType equates to Ticket, and serviceNature equates to Domestic Tickets, Ne/See Ticket, Foreign Ticket, or TCV Series, or

·          serviceType equates to Reservation and serviceNature equates to Seat, Couchette, or Bed

N

NumberOfChildren

Number of Children

2 N

Number of Children.

Used only when:

·          serviceType equates to Ticket, and serviceNature equates to Domestic Tickets, Ne/See Ticket, Foreign Ticket, or TCV Series, or

·          serviceType equates to Reservation and serviceNature equates to Seat, Couchette, or Bed

N

ClassOfTicket

Class of Ticket

1 A/N

Indicates the class of the ticket.

Used only when:

·          serviceType equates to Ticket, and serviceNature equates to Domestic Tickets, Ne/See Ticket, Foreign Ticket, or TCV Series, or

·          serviceType equates to Reservation and serviceNature equates to Seat, Couchette, or Bed



Tax* Array Request Fields

Req

Variable

Value

Limits

Description

M

tax_amount

Tax Amount

9 decimal

Contains detail tax amount for purchase of goods or services. Must be 2 decimal places. Maximum 999999.99

M

tax_rate

Tax Rate

5 N

Contains the detailed tax rate applied in relationship to a specific tax amount. Like 5% GST should be ‘5.0’. May contain upto 2 decimals with maximum upto to 999.99.

M

tax_type

Tax Type

4 A/N

Contains tax type such as GST,QST,PST,HST

M

tax_id

Tax ID

20 A/N

Provides an identification number used by the card acceptor with the tax authority in relationship to a specific tax amount such as GST/HST number.

M

tax_included_in_sales

Tax included in sales indicator

1 A

This is the indicator used to reflect additional tax capture and reporting. Valid values are:

Y=Tax included in total purchase amount

N=Tax not included in total purchase amount


Predecessors:
MCCompletion, MCForcepost, MCRefund, MCIndependentRefund

Successors:
MCRefund


MC Level 2/3 MCCorpais – Passenger General Ticket Information & Passenger Trip Leg Data - Air

This transaction example includes the following elements for Level 2 and 3 passenger transport airline data processing:

  • Passenger General Ticket Information (MCCorpai)
    • only 1 set of MCCorpai fields can be submitted
    • this data set includes data elements that apply to the overall order, for example the total overall taxes
  • Passenger Trip Leg Data - Air (MCCorpas)
    • 1-998 counts of MCCorpas line items can be submitted
    • This data set includes the details about each individual airline ticket purchased

 

Additional optional data sets that can be added to this example:

  • Corporate Card Common Data (MCCorpac)
    • only 1 set of MCCorpac fields can be submitted
    • this data set includes data elements that apply to the overall order, for example the total overall taxes

 

MCCorpais request must be preceded by a financial transaction (MCCompletion, MCForcepost, MCRefund, MCIndependentRefund) and the Corporate Card flag must be set to “true” in the Pre-authorization response.  MCCorpais request will need to contain the order_id of the financial transaction as well as the txn_number. 

Canada Code Sample

using System;

namespace Moneris
{

   public class TestMCCorpaisCommonPassenger
   {
	public static void Main(string[] args)
	{
	   string host = "esqa.moneris.com";
	   string store_id = "moneris";
	   string api_token = "hurgle";
	   string order_id;
	   string txn_number;

	   Console.Write ("Please enter an order ID: ");
	   order_id = Console.ReadLine();		

	   Console.Write ("Please enter a txn number: ");
	   txn_number = Console.ReadLine();	
	   
	   try
	   {
//Passenger - general ticket information
MCCorpai corpai=new MCCorpai();
	   	corpai.PassengerName="MCC Tester";
	   	corpai.TicketNumber="1234567890001";
	   	corpai.TravelAgencyName="Moneris Travel";
	   	corpai.TravelAgencyCode="MC322";
	   	corpai.IssuingCarrier="2R";
	   	corpai.CustomerCode="passengerabc";
	   	corpai.IssueDate="141210";
	   	corpai.TotalFare="129.45";
	   	corpai.TravelAuthorizationCode="sde-erdsz-452112";
	   	corpai.TotalFee="10.34";
	   	corpai.TotalTaxes="11.56";
	   	corpai.RestrictedTicketIndicator="1";
	   	corpai.ExchangeTicketAmount="13.98";
	   	corpai.ExchangeFeeAmount="1.78";
	   	corpai.IataClientCode="icc2";
		Tax[] taxi = new Tax[1];
		taxi[0] = new Tax("3.28", "13.00", "HST", "hst1298", "Y");
	   	corpai.Tax=taxi;

	   	//Passenger - trip leg data

		MCCorpas[] corpas = new MCCorpas[2];
		corpas[0] = new MCCorpas();
		corpas[0].TravelDate="150101";
		corpas[0].CarrierCode1="3R";
		corpas[0].ServiceClass="E";
		corpas[0].OrigCityAirportCode="Toron";
		corpas[0].DestCityAirportCode="Montr";
		corpas[0].StopOverCode=" ";
		corpas[0].CouponNumber="1";
		corpas[0].FareBasisCode="FClass";
		corpas[0].FlightNumber="56786";
		corpas[0].DepartureTime="1920";
		corpas[0].ArrivalTime="0620";
		corpas[0].ConjunctionTicketNumber = "123456789054367";
		corpas[0].ExchangeTicketNumber = "123456789067892";
		corpas[0].Fare = "1.69";
		corpas[0].Fee = "1.48";
		corpas[0].Taxes = "3.91";
		corpas[0].EndorsementRestrictions = "er6";
		Tax[] taxs = new Tax[2];
		taxs[0] = new Tax("4.67", "5.0", "GST", "gst1298", "Y");
		taxs[1] = new Tax("7.43", "9.975", "QST", "qst1298", "Y");
	   	corpas[0].Tax=taxs;
		corpas[1] = new MCCorpas();
		corpas[1].TravelDate="150102";
		corpas[1].CarrierCode1="4R";
		corpas[1].ServiceClass="B";
		corpas[1].OrigCityAirportCode="Montr";
		corpas[1].DestCityAirportCode="Halif";
		corpas[1].StopOverCode="X";
		corpas[1].CouponNumber="2";
		corpas[1].FareBasisCode="SClass";
		corpas[1].FlightNumber="54386";
		corpas[1].DepartureTime="1120";
		corpas[1].ArrivalTime="1620";

		 
/****************************** Request ***************************************/
	
		MCCorpais data = new MCCorpais();
		data.OrderId=order_id;
		data.TxnNumber=txn_number;
		data.Corpai=corpai;
		data.Corpas=corpas;
				
		L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token,data);
				
/****************************** Response *************************************/
		
		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.StackTrace:"+e.StackTrace+",e.Message:"+e.Message);
	   }
		
	}
   }
}
                

MC Level 2/3 Corpais – Passenger General Ticket Information & Passenger Trip Leg Data - Air - Transaction Values

MCCorpai corpai=new MCCorpai(); MCCorpas[] corpas = new MCCorpas[2]; MCCorpais data = new MCCorpais(); L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token,data);

MC level 2/3 Corpais – Passenger General Ticket Information & Passenger Trip Leg Data - Air 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.

Transaction 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.

       

 

MCCorpas

n/a

n/a

n/a

Passenger Trip Leg Data - Air

MCCorpais

n/a

n/a

n/a

Passenger General Ticket Information & Passenger Tril Leg Data - Air

 

 


Mastercard - Passenger/Itinerary – General Ticket Information (MCCorpai) - Level 2 Request Fields

Req

Variable

Value

Limits

Description

N

PassengerName

Passenger Name

20 A/N

Field for the name of the passenger.

N

TicketNumber

Ticket Number

13 A/N

Field for the ticket number for Air/Rail Travel

N

IssuingCarrier

Issuing Carrier

4 A/N

Contains the standard abbreviation for the airline or railway carrier issuing the ticket.

N

CustomerCode

Customer Code

25 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

N

IssueDate

Issue Date

6 N

Date the ticket was issued to the customer. If present, must contain a valid date in the format YYMMDD.

N

TravelAgencyCode

Travel Ageny Code

8 A/N

Code identifying travel agency if the ticket was issued by a travel agency

N

TravelAgencyName

Travel Agency Name

25 A/N

Name of the travel agency issuing the ticket.

Y

TotalFare

Total Fare

9 decimal

Total amount of the ticket and should equal the amount of the transaction.  Maximum 999999.99

N

TotalFee

Total Fee

9 decimal

Fee Amount. Must be 2 decimals. Maximum 999999.99

N

TotalTaxes

Total Taxes

9 decimal

Total taxes is the amount of all the taxes associated with the ticket.  Maximum 999999.99

N

RestrictedTicketIndicator

Restricted Ticket Indicator

1 A/N

Provides identifier noting that the ticket purchased has some restrictions associated with its use.

If present, possible values are:

0 – no restrictions

1 – restricted ticket (non-refundable)

N

ExchangeTicketAmount

Exchange Ticket Amount

9 decimal

Price of new ticket purchase on an exchanged ticket. Must be 2 decimals. Maximum 999999.99

N

ExchangeFeeAmount

Exchange Fee Amount

9 decimal

Fee paid to exchange the ticket.  Maximum 999999.99

N

TravelAuthorizationCode

Travel Authorization Code

64 N

Code provided by the company to a travel agent authorizing ticket issuance. This code is identified as Customer File Reference Number in Airline Reporting

Corporation (ARC) specifications.

N

IataClientCode

IATA Client Code

17 A/N

International Air Transport

Association (IATA) code identifying the company that purchased the ticket.

CM

Tax

Tax*

6 Array

Can have upto 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.


Mastercard Passenger/Itinerary – Trip Leg Data – Air (MCCorpas) - Level 3 Request Fields

Req

Variable

Value

Limits

Description

N

TravelDate

Travel Date

6 N

The effective ticket date, previously referred to as departure date. The format for this field is YYMMDD

N

CarrierCode1

Carrier Code

2 A/N

Carrier identification

N

ServiceClass

Service Class

2 A/N

Class of service (first class, business class etc.)

N

OrigCityAirportCode

Origin City Airport Code

5 A/N

Indicates origination city’s airport code

N

DestCityAirportCode

Destination City Airport Code

5 A/N

Indicates destination city's airport code

N

StopOverCode

Stop Over indicator

1 A/N

Indicates whether a stop-over is allowed on this ticket. Valid values are:

O = Stop-Over allowed

X = Stop-Over not allowed

N

ConjunctionTicketNumber

Primary Ticket Number

13 A/N

Primary ticket number for the trip

N

ExchangeTicketNumber

Exchange Ticket Number

13 A/N

Exchange ticket Number for the trip

N

CouponNumber

Coupon Number

1 N

Number of coupons in the ticket. Valid values are 1, 2, 3 or 4

N

FareBasisCode

Fare Ticket Class Code

8 A/N

Indicates the class of airline ticket (first class, business class etc.)

N

FlightNumber

Flight Number

5 A/N

Airlines Flight or Train Number

N

DepartureTime

Departure Time

4 N

The time the flight or train is scheduled to depart. The format for this field is HHMM

N

ArrivalTime

Arrival Time

4 N

The time the flight is scheduled to arrive. The format for this field is HHMM

N

Fare

Fare

9 decimal

The total amount of the ticket. Maximum 999999.99

N

Fee

Fee

9 decimal

The total fee associated with the ticket.  Maximum 999999.99

N

Taxes

Taxes

9 decimal

The amount of taxes associated with the ticket.  Maximum 999999.99

N

EndorsementRestrictions

Endorsement Restrictions

20 A/N

The limitation set on a ticket based on the type of fare. E.g. nonrefundable or three-day min stay.

CM

Tax

Tax*

6 Array

Can have upto 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.




Tax* Array Request Fields

Req

Variable

Value

Limits

Description

M

tax_amount

Tax Amount

9 decimal

Contains detail tax amount for purchase of goods or services. Must be 2 decimal places. Maximum 999999.99

M

tax_rate

Tax Rate

5 N

Contains the detailed tax rate applied in relationship to a specific tax amount. Like 5% GST should be ‘5.0’. May contain upto 2 decimals with maximum upto to 999.99.

M

tax_type

Tax Type

4 A/N

Contains tax type such as GST,QST,PST,HST

M

tax_id

Tax ID

20 A/N

Provides an identification number used by the card acceptor with the tax authority in relationship to a specific tax amount such as GST/HST number.

M

tax_included_in_sales

Tax included in sales indicator

1 A

This is the indicator used to reflect additional tax capture and reporting. Valid values are:

Y=Tax included in total purchase amount

N=Tax not included in total purchase amount


Predecessors:
MCCompletion, MCForcepost, MCRefund, MCIndependentRefund

Successors:
MCRefund


MC Level 2/3 MCCorpais – Corporate Card Common Data, Passenger General Ticket Information, Trip Leg Data & Passenger Rail

This transaction example includes the following elements for Level 2 and 3 passenger transport air and rail data processing:

  • Corporate Card Common Data (MCCorpac)
    • only 1 set of MCCorpac fields can be submitted
    • this data set includes data elements that apply to the overall order, for example the total overall taxes
  • Passenger General Ticket Information (MCCorpai)
    • only 1 set of MCCorpai fields can be submitted
    • this data set includes data elements that apply to the overall order, for example the total overall taxes
  • Passenger Trip Leg Data - Air (MCCorpas)
    • Combined total number of MCCorpar + MCCorpas line items can total 1-998 counts individual tickets
    • This data set includes the details about each individual airline ticket purchased
  • Passenger Rail (MCCorpar)
    • Combined total number of MCCorpar + MCCorpas line items can total 1-998 counts individual tickets
    • This data set includes the details about each individual rail ticket purchased

 

MCCorpais request must be preceded by a financial transaction (MCCompletion, MCForcepost, MCRefund, MCIndependentRefund) and the Corporate Card flag must be set to “true” in the response.  MCCorpais request will need to contain the order_id of the financial transaction as well as the txn_number. 


Canada Code Sample

using System;

namespace Moneris
{

   public class TestMCCorpaisCommonPassengerRail
   {
	public static void Main(string[] args)
	{
	   string host = "esqa.moneris.com";
	   string store_id = "moneris";
	   string api_token = "hurgle";
	   string order_id;
	   string txn_number;

	   Console.Write ("Please enter an order ID: ");
	   order_id = Console.ReadLine();		

	   Console.Write ("Please enter a txn number: ");
	   txn_number = Console.ReadLine();	
	   
	   try
	   {
	   
/*************Passenger Transport Detail - General Ticket Information ********************/
	   	
	   	//you can only set values to fields which you have valid value
	   	//common data first

	   	MCCorpac corpac=new MCCorpac();
	   	corpac.CustomerCode="CustomerCode123";
	   	corpac.AdditionalCardAcceptordata="acad1";
	   	corpac.AustinTetraNumber="atn1";
	   	corpac.NaicsCode="nc1";
	   	corpac.CardAcceptorType="0000NNNN";
	   	corpac.CardAcceptorTaxId="MonerisTAXID1";
	   	corpac.CorporationVatNumber="cvn123";
	   	corpac.CardAcceptorReferenceNumber="carn1";
	   	corpac.FreightAmount="1.23";
	   	corpac.DutyAmount="2.34";
	   	corpac.DestinationProvinceCode="ONT";
	   	corpac.DestinationCountryCode="CAN";
	   	corpac.ShipFromPosCode="M8X 2W8";
	   	corpac.ShipToPosCode="M1R 1W5";
	   	corpac.OrderDate="141211";
	   	corpac.CardAcceptorVatNumber="cavn1";
	   	corpac.CustomerVatNumber="customervn231";
	   	corpac.UniqueInvoiceNumber="uin567";
	   	corpac.CommodityCode="pacCC1";
	   	corpac.AuthorizedContactName="John Walker";
	   	corpac.AuthorizedContactPhone="416-734-1800";
		Tax[] taxc = new Tax[2];
		taxc[0] = new Tax("1.19", "6.0", "GST", "gst1298", "Y");
		taxc[1] = new Tax("1.29", "7.0", "PST", "pst1298", "N");
	   	corpac.Tax=taxc;

	   	


//Passenger - general ticket information
MCCorpai corpai=new MCCorpai();
	   	corpai.PassengerName="MCC Tester";
	   	corpai.TicketNumber="1234567890001";
	   	corpai.TravelAgencyName="Moneris Travel";
	   	corpai.TravelAgencyCode="MC322";
	   	corpai.IssuingCarrier="2R";
	   	corpai.CustomerCode="passengerabc";
	   	corpai.IssueDate="141210";
	   	corpai.TotalFare="129.45";
	   	corpai.TravelAuthorizationCode="sde-erdsz-452112";
	   	corpai.TotalFee="10.34";
	   	corpai.TotalTaxes="11.56";
	   	corpai.RestrictedTicketIndicator="1";
	   	corpai.ExchangeTicketAmount="13.98";
	   	corpai.ExchangeFeeAmount="1.78";
	   	corpai.IataClientCode="icc2";
		Tax[] taxi = new Tax[1];
		taxi[0] = new Tax("3.28", "13.00", "HST", "hst1298", "Y");
	   	corpai.Tax=taxi;

	   	//Passenger - trip leg data

		MCCorpas[] corpas = new MCCorpas[2];
		corpas[0] = new MCCorpas();
		corpas[0].TravelDate="150101";
		corpas[0].CarrierCode1="3R";
		corpas[0].ServiceClass="E";
		corpas[0].OrigCityAirportCode="Toron";
		corpas[0].DestCityAirportCode="Montr";
		corpas[0].StopOverCode=" ";
		corpas[0].CouponNumber="1";
		corpas[0].FareBasisCode="FClass";
		corpas[0].FlightNumber="56786";
		corpas[0].DepartureTime="1920";
		corpas[0].ArrivalTime="0620";
		corpas[0].ConjunctionTicketNumber = "123456789054367";
		corpas[0].ExchangeTicketNumber = "123456789067892";
		corpas[0].Fare = "1.69";
		corpas[0].Fee = "1.48";
		corpas[0].Taxes = "3.91";
		corpas[0].EndorsementRestrictions = "er6";
		Tax[] taxs = new Tax[2];
		taxs[0] = new Tax("4.67", "5.0", "GST", "gst1298", "Y");
		taxs[1] = new Tax("7.43", "9.975", "QST", "qst1298", "Y");
	   	corpas[0].Tax=taxs;
		corpas[1] = new MCCorpas();
		corpas[1].TravelDate="150102";
		corpas[1].CarrierCode1="4R";
		corpas[1].ServiceClass="B";
		corpas[1].OrigCityAirportCode="Montr";
		corpas[1].DestCityAirportCode="Halif";
		corpas[1].StopOverCode="X";
		corpas[1].CouponNumber="2";
		corpas[1].FareBasisCode="SClass";
		corpas[1].FlightNumber="54386";
		corpas[1].DepartureTime="1120";
		corpas[1].ArrivalTime="1620";

		//Passenger - rail data

		MCCorpar[] corpar = new MCCorpar[2];
		corpar[0] = new MCCorpar();
		corpar[0].PassengerName="Passenger Namer";
		corpar[0].TicketNumber="1234567890002";
		corpar[0].TravelAgencyCode="TAC1";
		corpar[0].TravelAgencyName="Daily Travel";
		corpar[0].TravelDate="141223";
		corpar[0].SequenceNumber="001";
		corpar[0].ServiceType="01";
		corpar[0].ServiceNature="01";
		corpar[0].ServiceAmount="788.34";
		corpar[0].FullVatGrossAmount="68.12";
		corpar[0].FullVatTaxAmount="3.59";
		corpar[0].StartStation="Vanco";
		corpar[0].DestinationStation="Calgr";
		corpar[0].NumberOfAdults="2";
		corpar[0].NumberOfChildren="3";
		corpar[0].ClassOfTicket="E";
		corpar[1] = new MCCorpar();
		corpar[1].PassengerName="Passenger Namer1";
		corpar[1].TicketNumber="1234567890003";
		corpar[1].TravelAgencyCode="TAC2";
		corpar[1].TravelAgencyName="Good Travel";
		corpar[1].TravelDate="141222";
		corpar[1].SequenceNumber="002";
		corpar[1].ServiceType="02";
		corpar[1].ServiceNature="02";
		corpar[1].ServiceAmount="56.34";
		corpar[1].StartStation="Calgr";
		corpar[1].DestinationStation="Winpg";
		corpar[1].NumberOfAdults="4";
		corpar[1].NumberOfChildren="6";
		corpar[1].ClassOfTicket="B";
	   
/****************************** Request ***************************************/
	
		MCCorpais data = new MCCorpais();
		data.OrderId=order_id;
		data.TxnNumber=txn_number;
		data.Corpac=corpac;
		data.Corpai=corpai;
		data.Corpas=corpas;
		data.Corpar=corpar;
		
		L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token,data);
				
/****************************** Response *************************************/
		
		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.StackTrace:"+e.StackTrace+",e.Message:"+e.Message);
	   }
		
	}
   }
}
                

MC Level 2/3 Corpais – Corporate Card Common Data, Passenger General Ticket Information, Trip Leg Data & Passenger Rail Transaction Values

MCCorpac corpac=new MCCorpac(); MCCorpai corpai=new MCCorpai(); MCCorpas[] corpas = new MCCorpas[2]; MCCorpar[] corpar = new MCCorpar[2]; MCCorpais data = new MCCorpais(); L23HttpsPostRequest request=new L23HttpsPostRequest(host, store_id, api_token,data);

MC level 2/3 Corpais – Corporate Card Common Data, Passenger General Ticket Information, Trip Leg Data & Passenger Rail 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.

Transaction 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.

MCCorpac

n/a

n/a

n/a

Corporate Card Common Data

MCCorpai

n/a

n/a

n/a

Passenger General Ticket Information

MCCorpas

n/a

n/a

n/a

Passenger Trip Leg Data – Air

MCCorpar

n/a

n/a

n/a

Passenger Rail

MCCorpais

n/a

n/a

n/a

Corporate Card Common Data, Passenger General Ticket Information, Trip Leg Data & Passenger Rail 



MasterCard - Corporate Card Common Data (MCCorpac) - Level 2 Request Fields

Req

Variable Name

Value

Limits

Description                        

N

AustinTetraNumber

Austin-Tetra Number

15 A/N

Merchant’s Austin-Tetra Number.

N

NaicsCode

NAICS Code

15 A/N

North American Industry Classification

System (NAICS) code assigned to the merchant.

N

CustomerCode

Customer Code

25 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

N

UniqueInvoiceNumber

Unique Invoice Number

17 A/N

Unique number associated with the individual transaction provided by the merchant.

N

CommodityCode

Commodity Code

15 A/N

Code assigned by the merchant that best categorizes the item(s) being purchased.

N

OrderDate

Order Date

6 N

The date the item was ordered. If present, must contain a valid date in the format YYMMDD.

N

CorporationVatNumber

Corporation VAT Number

20 A/N

Contains a corporation’s value added tax (VAT) number.

N

CustomerVatNumber

Customer VAT Number

20 A/N

Contains the VAT number for the customer/cardholder used to identify the customer when purchasing goods and services from the merchant.

N

FreightAmount

Freight Amount

9 A/N

The freight on the total purchase Must have 2 decimals.

N

DutyAmount

Duty Amount

9 A/N

The duty on the total purchase, Must have 2 decimals

N

DestinationProvinceCode

Destination State / Province Code

3 A/N

State or Province of the country where the goods will be delivered. Left justified with trailing spaces. ie. ONT - Ontario

N

DestinationCountryCode

Destination Country Code

3 A/N

The country code where goods will be delivered. Left justified with trailing spaces. ie. CAN (Canada).

N

ShipFromPosCode

Ship From Postal Code

10 A/N

The postal code or zip code from which items were shipped

N

ShipToPosCode

Destination Postal Code

10 A/N

The postal code or zip code where goods will be delivered

N

AuthorizedContactName

Authorized Contact Name

36 A/N

Name of an individual or company contacted for company authorized purchases.

N

AuthorizedContactPhone

Authorized Contact Phone

17 A/N

Phone number of an individual or company contacted for company authorized purchases.

N

AdditionalCardAcceptordata

Additional Card Acceptor Data

40 A/N

Information pertaining to the card acceptor

N

CardAcceptorType

Card Acceptor Type

8 A/N

Various classifications of business ownership chracteristics.

 

First character represents ‘Business Type’.

The second represents 'Business Owner Type'.

The third represents 'Business Certification Type'.

The fourth represents 'Business Racial/Ethnic Type'.

The fifth represents 'Business Type Provided Code'. The sixth represents 'Business Owner Type Provided Code'.

The seventh represents 'Business Certification Type Provided Code'.

The eighth represents 'Business Racial/Ethnic Type

N

CardAcceptorTaxId

Card Acceptor Tax ID

20 A/N

It is a US Federal tax ID number of value added tax (VAT) ID.

N

CardAcceptorReferenceNumber

Card Acceptor Reference Number

25 A/N

Code that facilitates card acceptor/corporation communication and record keeping,

N

CardAcceptorVatNumber

Card Acceptor VAT Number

20 A/N

Value added tax (VAT) number for the card acceptor location used to identify the card acceptor when collecting and reporting taxes.

CM

Tax

Tax*

6 Array

Can have up to 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.


Mastercard - Passenger/Itinerary – General Ticket Information (MCCorpai) - Level 2 Request Fields

Req

Variable

Value

Limits

Description

N

PassengerName

Passenger Name

20 A/N

Field for the name of the passenger.

N

TicketNumber

Ticket Number

13 A/N

Field for the ticket number for Air/Rail Travel

N

IssuingCarrier

Issuing Carrier

4 A/N

Contains the standard abbreviation for the airline or railway carrier issuing the ticket.

N

CustomerCode

Customer Code

25 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

N

IssueDate

Issue Date

6 N

Date the ticket was issued to the customer. If present, must contain a valid date in the format YYMMDD.

N

TravelAgencyCode

Travel Ageny Code

8 A/N

Code identifying travel agency if the ticket was issued by a travel agency

N

TravelAgencyName

Travel Agency Name

25 A/N

Name of the travel agency issuing the ticket.

Y

TotalFare

Total Fare

9 decimal

Total amount of the ticket and should equal the amount of the transaction.  Maximum 999999.99

N

TotalFee

Total Fee

9 decimal

Fee Amount. Must be 2 decimals. Maximum 999999.99

N

TotalTaxes

Total Taxes

9 decimal

Total taxes is the amount of all the taxes associated with the ticket.  Maximum 999999.99

N

RestrictedTicketIndicator

Restricted Ticket Indicator

1 A/N

Provides identifier noting that the ticket purchased has some restrictions associated with its use.

If present, possible values are:

0 – no restrictions

1 – restricted ticket (non-refundable)

N

ExchangeTicketAmount

Exchange Ticket Amount

9 decimal

Price of new ticket purchase on an exchanged ticket. Must be 2 decimals. Maximum 999999.99

N

ExchangeFeeAmount

Exchange Fee Amount

9 decimal

Fee paid to exchange the ticket.  Maximum 999999.99

N

TravelAuthorizationCode

Travel Authorization Code

64 N

Code provided by the company to a travel agent authorizing ticket issuance. This code is identified as Customer File Reference Number in Airline Reporting

Corporation (ARC) specifications.

N

IataClientCode

IATA Client Code

17 A/N

International Air Transport

Association (IATA) code identifying the company that purchased the ticket.

CM

Tax

Tax*

6 Array

Can have upto 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.


 

Mastercard - Passenger/Itinerary – Rail Data (MCCorpar) - Level 3 Request Fields

 

Variable

Value

Limits

Description

PassengerName

Passenger name

29 A/N

Name of the passenger to whom the ticket was issued.

Mandatory field if merchant has airline, railway or travel agency MCC.

TicketNumber

Ticket Number

15 A/N

Contains the number on the ticket. Mandatory field if merchant has railway or travel agency MCC.

TravelAgencyCode

Travel Agency Code

8 A/N

Code assigned to travel agency.

TravelAgencyName

Travel Agency Name

25 A/N

Name of the travel agency issuing the ticket.

TravelDate

Travel Date

6 N

The effective ticket date, previously referred to as departure date. Customers must use the ticket purchase date for “open tickets”. The format for this field is YYMMDD

SequenceNumber

Sequence Number

3 A/N

Sequence number indicating the sequence that this rail segment falls within the trip.

ServiceType

Service Type

2 A/N

Indicates the type of service provided.

Example of possible values:

01 – Ticket

02 – Baggage

ServiceNature

Service Nature

2 A/N

Indicates the nature of the service provided.

Example of possible values:

01 – Seat

02 – Couchette

ServiceAmount

Service Amount

9 decimal

Amount charged for the service. 

Maximum 999999.99

FullVatGrossAmount

Full VAT Gross Amount

9 decimal

Gross amount from which the VAT was calculated at the full tax rate.  Maximum 999999.99

FullVatTaxAmount

Full VAT Tax Amount

9 decimal

The value added tax at the full tax rate.  Maximum 999999.99

StartStation

Start Station

3-30 A/N

Contains name of the railway start station. Used if serviceType contains a value that indicates Ticket or Reservation.

DestinationStation

Destination Station

3-30 A/N

Contains name of the railway destination station. Used if serviceType contains a value that indicates Ticket or Reservation.

NumberOfAdults

Number of Adults

2 N

Number of Adults.

Used only when:

·          serviceType equates to Ticket, and serviceNature equates to Domestic Tickets, Ne/See Ticket, Foreign Ticket, or TCV Series, or

·          serviceType equates to Reservation and serviceNature equates to Seat, Couchette, or Bed

NumberOfChildren

Number of Children

2 N

Number of Children.

Used only when:

·          serviceType equates to Ticket, and serviceNature equates to Domestic Tickets, Ne/See Ticket, Foreign Ticket, or TCV Series, or

·          serviceType equates to Reservation and serviceNature equates to Seat, Couchette, or Bed

ClassOfTicket

Class of Ticket

1 A/N

Indicates the class of the ticket.

Used only when:

·          serviceType equates to Ticket, and serviceNature equates to Domestic Tickets, Ne/See Ticket, Foreign Ticket, or TCV Series, or

·          serviceType equates to Reservation and serviceNature equates to Seat, Couchette, or Bed


Mastercard Passenger/Itinerary – Trip Leg Data – Air (MCCorpas) - Level 3 Request Fields

Req

Variable

Value

Limits

Description

N

TravelDate

Travel Date

6 N

The effective ticket date, previously referred to as departure date. The format for this field is YYMMDD

N

CarrierCode1

Carrier Code

2 A/N

Carrier identification

N

ServiceClass

Service Class

2 A/N

Class of service (first class, business class etc.)

N

OrigCityAirportCode

Origin City Airport Code

5 A/N

Indicates origination city’s airport code

N

DestCityAirportCode

Destination City Airport Code

5 A/N

Indicates destination city's airport code

N

StopOverCode

Stop Over indicator

1 A/N

Indicates whether a stop-over is allowed on this ticket. Valid values are:

O = Stop-Over allowed

X = Stop-Over not allowed

N

ConjunctionTicketNumber

Primary Ticket Number

13 A/N

Primary ticket number for the trip

N

ExchangeTicketNumber

Exchange Ticket Number

13 A/N

Exchange ticket Number for the trip

N

CouponNumber

Coupon Number

1 N

Number of coupons in the ticket. Valid values are 1, 2, 3 or 4

N

FareBasisCode

Fare Ticket Class Code

8 A/N

Indicates the class of airline ticket (first class, business class etc.)

N

FlightNumber

Flight Number

5 A/N

Airlines Flight or Train Number

N

DepartureTime

Departure Time

4 N

The time the flight or train is scheduled to depart. The format for this field is HHMM

N

ArrivalTime

Arrival Time

4 N

The time the flight is scheduled to arrive. The format for this field is HHMM

N

Fare

Fare

9 decimal

The total amount of the ticket. Maximum 999999.99

N

Fee

Fee

9 decimal

The total fee associated with the ticket.  Maximum 999999.99

N

Taxes

Taxes

9 decimal

The amount of taxes associated with the ticket.  Maximum 999999.99

N

EndorsementRestrictions

Endorsement Restrictions

20 A/N

The limitation set on a ticket based on the type of fare. E.g. nonrefundable or three-day min stay.

CM

Tax

Tax*

6 Array

Can have upto 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.


Tax* Array Request Fields

Req

Variable

Value

Limits

Description

M

tax_amount

Tax Amount

9 decimal

Contains detail tax amount for purchase of goods or services. Must be 2 decimal places. Maximum 999999.99

M

tax_rate

Tax Rate

5 N

Contains the detailed tax rate applied in relationship to a specific tax amount. Like 5% GST should be ‘5.0’. May contain upto 2 decimals with maximum upto to 999.99.

M

tax_type

Tax Type

4 A/N

Contains tax type such as GST,QST,PST,HST

M

tax_id

Tax ID

20 A/N

Provides an identification number used by the card acceptor with the tax authority in relationship to a specific tax amount such as GST/HST number.

M

tax_included_in_sales

Tax included in sales indicator

1 A

This is the indicator used to reflect additional tax capture and reporting. Valid values are:

Y=Tax included in total purchase amount

N=Tax not included in total purchase amount


Predecessors:
MCCompletion, MCForcepost, MCRefund, MCIndependentRefund

Successors:
MCRefund


MC Level 2/3 DEPERECATED

MCLevel23 will contain all the required and optional data fields for Level 2/3 data. MCLevel23 data can be sent when the card has been identified in the transaction request as being a corporate card. Please use MCCorpais instead of MCLevel23 tosubmit any Level 2/3 Addendum data.

MCLevel23 transaction request passes the Level 2 and 3 data for processing. MCLevel23 request must be preceded by a financial transaction (MCCompletion, MCRefund) and the Corporate Card flag must be set to “true” in the response.

NOTE: This transaction has been deprecated. Please use MCCorpais for processing Level 2/3 data.

Canada Code Sample

namespace Moneris
{
   public class TestMCLevel23
   {
	public static void Main()
	{
	string host = "esqa.moneris.com";
	string store_id = "moneris";
	string api_token = "hurgle";
	string order_id;
	Console.Write ("Please enter an order ID: ");
	order_id = Console.ReadLine();
	string txn_number;
	Console.Write ("Please enter a txn number: ");
	txn_number = Console.ReadLine();				
		    
	   string customerCode = "ACCOUNTING OPERAT";
	   double taxAmount0 = 0.98;
	   double freightAmount = 0.0;
	   string shipToPosCode = "V6Z 2V8";
	   string shipFromPosCode = "V5C 3W9";
	   double dutyAmount = 0.0;
	   string altTaxAmtInd = "Y";
	   double altTaxAmt = 0.0;
  	   string desCouCode = "CAN";
           string supData = "MASTERCARD";
           string salTaxColInd = "Y";
           
           /***************************** Level 2 Addendum **********************************/
				
	   MCLevel2Transaction level2=
	   	new MCLevel2Transaction(customerCode, taxAmount0, freightAmount, shipToPosCode, 
	   				shipFromPosCode, dutyAmount, altTaxAmtInd, 
					altTaxAmt, desCouCode, supData,salTaxColInd);
					
           /***************************** Level 3 Addendum **********************************/
					
	   MCLevel3Transaction[] level3 = new MCLevel3Transaction[2];
			
	   string[] productCode = new string[] {"OPTIBELT 4L1","OPTIBELT 4L2"};
	   string[] itemDescription=new string[] {"OPTIBELT 4L250 FHP BELT", "OPTIBELT"};
	   int[] itemQuantity = new int[] {2,2};
          string[] itemUom = new string[] {"EA","EA"};
 	   double[] extItemAmount = new double[] {0.01, 0.01};
	   string[] discountInd = new string[] {"N","N"};
	   double[] discountAmount = new double[] {0.0,0.0};
	   string[] netGroIndForExtItemAmt = new string[] {"N","N"};
	   double[] taxRateApp = new double[] {0.06,0.11};
	   string[] taxTypeApp = new string[] {"",""};
	   double[] taxAmount=new double[] {0.0,0.0};
          string[] debitCreditInd=new string[] {"D","D"};
          double[] altTaxIdeAmt=new double[] {0.0,0.0};
	   
	  level3[0]=new MCLevel3Transaction(productCode[0], itemDescription[0], itemQuantity[0], 
	   				     itemUom[0], extItemAmount[0], discountInd[0], 
					     discountAmount[0],netGroIndForExtItemAmt[0], 
					     taxRateApp[0], taxTypeApp[0], taxAmount[0],
					     
	    //the other way to create a MCLevel3Transaction object
	    debitCreditInd[0], altTaxIdeAmt[0]);
	    level3[1]=new MCLevel3Transaction();
	    level3[1].ProductCode=productCode[1];
	    level3[1].ItemDescription=itemDescription[1];
	    level3[1].ItemQuantity=itemQuantity[1];
	    level3[1].ItemUom=itemUom[1];
	    level3[1].ExtItemAmount=extItemAmount[1];
	    level3[1].DiscountInd=discountInd[1];
	    level3[1].DiscountAmount=discountAmount[1];
	    level3[1].NetGroIndForExtItemAmt=netGroIndForExtItemAmt[1];
	    level3[1].TaxRateApp=taxRateApp[1];
	    level3[1].TaxTypeApp=taxTypeApp[1];
	    level3[1].TaxAmount=taxAmount[1];
	    level3[1].DebitCreditInd=debitCreditInd[1];
	    level3[1].AltTaxIdeAmt=altTaxIdeAmt[1];
	    
	    try
	    {
	    
	    /******************************** Request **********************************/
	    
		L23HttpsPostRequest request=
			new L23HttpsPostRequest(host, store_id, api_token, 
				new MCLevel23(order_id,txn_number, level2, level3));
				
	    /******************************** Response **********************************/
		
		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);
	     }
	  }
  }
}}
                

MC Level 2/3 (Deprecated) Transaction Values

MCLevel2Transaction level2= new MCLevel2Transaction(customerCode, taxAmount0, freightAmount, shipToPosCode, shipFromPosCode, dutyAmount, altTaxAmtInd, altTaxAmt, desCouCode, supData,salTaxColInd); MCLevel3Transaction[] level3 = new MCLevel3Transaction[2]; level3[0]=new MCLevel3Transaction(productCode[0], itemDescription[0], itemQuantity[0], itemUom[0], extItemAmount[0], discountInd[0], discountAmount[0],netGroIndForExtItemAmt[0], taxRateApp[0], taxTypeApp[0], taxAmount[0], L23HttpsPostRequest request= new L23HttpsPostRequest(host, store_id, api_token, new MCLevel23(order_id,txn_number, level2, level3));

MC Level 2/3 (Deprecated) 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.

Transaction 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

 

 

 

MasterCard Level 2 Request Fields

Level 3

 

 

 

MasterCard Level 3 Request Fields



MasterCard Level 2 Request Fields

Req

Variable Name

Field Name

Size/Type

Description

N

customerCode

Customer Code

17 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

Y

taxAmount

Tax Amount

9 A/N

Mandatory. The GST/HST on the total purchase with 2 decimals.

ie. 34567.89

N

freightAmount

Freight Amount

9 A/N

The freight on the total purchase Must have 2 decimals.

N

shipToPosCode

Ship To Postal Code

10 A/N

The postal code or zip code where goods will be delivered

N

shipFromPosCode

Ship From Postal Code

10 A/N

The postal code or zip code from which items were shipped

N

dutyAmount

Duty Amount

9 A/N

The duty on the total purchase, Must have 2 decimals

N

altTaxAmtInd

Alternate Tax Amount Indicator

1 A/N

An indicator used to reflect alternate tax/or Provincial Sales Tax (PST) capture and reporting. Values are:

Y=alternate tax included in total purchase amount

N=alternate tax not included in total purchase amount

Space=not supported

N

altTaxAmt

Alternat Tax Amount

9 A/N

The amount of the Provincial Sales Tax (PST) with 2 decimals

N

desCouCode

Destination Country Code

3 A/N

The country code where goods will be delivered. Left justified with trailing spaces. ie. CAN-Canada.

N

supData

Supplemental Data

17 A/N

This field may be used to provide additional data to the corporate customer

N

salTaxColInd

Sales Tax Collected Indicator

1 A/N

An indicator used to reflect GST/HST captured and reported.

Values are:

Y = GST/HST included in total purchase amount. 

N = GST/HST exempt not included in total purchase amount

Space = Information is unknown



Mastercard Level 3 Request Fields

Req

Variable

Value

Limits

Description

Y

productCode

Product Code

12 A/N

The product code of the individual item purchased Mandatory, cannot contain all spaces or all zeroes.

Y

itemDescription

Item Description

35 A/N

The description of the individual item purchased. Mandatory, cannot contain all spaces or all zeroes.

Y

itemQuantity

Item Quantity

5 A/N

The quantity of the individual item purchased.  Mandatory, cannot contain all spaces or all zeroes.

Y

itemUom

Item unit of measure

3 A/N

A three-position unit of measurement code.  Mandatory, cannot contain all spaces or all zeroes.

Y

extItemAmount

Extended item amount

9 A/N

The amount of the item that is normally calculated as price x quantity. Mandatory, cannot contain all spaces or all zeroes.  Must contain 2 decimals.

N

discountInd

Discount indicator

1 A/N

Values are:

Y = amount is discounted

N = amount is not discounted Space = not supported

N

discountAmt

Discount amount

9 A/N

Leading zeros with 2 decimals.

N

netGroIndForExtItemAmt

Net/gross indicator for extended item amount

1 A/N

Values are:

Y =Item amount includes tax amount

N = Item amount does not include tax amount

Space = not supported

N

taxRateApp

Tax rate applied

A/N

This is a numeric decimal rate for GST/HST.  May contain

2 decimals.

N

taxTypeApp

Tax type applied

A/N

Description of tax applied as per tax type and tax amount. Use (GST) or (HST)

N

taxAmount

Tax  Amount

A/N

The GST/HST amount applied to item. Must have 2 decimals

N

debitCreditInd

Debit or Credit Indicator

A/N

Values are:

D=extended item amount is a Debit. 

C=extended item amount is a Credit. 

Space=does not apply

N

altTaxIdeAmt

Alternate Tax Identifier (Amount)

A/N

Insert the QST/PST tax amount.  Must have 2 decimals.


Predecessors:
MC Pre-Authorization

Successors:
MCPurchaseCorrection, MCRefund


Definition of MC Level 2/3 Request Fields


MCCorpais Objects

Description

MCCorpac

Corporate Card Common data

MCCorpal

Line Item Details

MCCorpai

Passenger General Ticket Information

MCCorpar

Passenger Rail

MCCorpas

Passenger Trip Leg Data - Air



MasterCard - Corporate Card Common Data (MCCorpac) - Level 2 Request Fields

Req

Variable Name

Value

Limits

Description                        

N

AustinTetraNumber

Austin-Tetra Number

15 A/N

Merchant’s Austin-Tetra Number.

N

NaicsCode

NAICS Code

15 A/N

North American Industry Classification

System (NAICS) code assigned to the merchant.

N

CustomerCode

Customer Code

25 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

N

UniqueInvoiceNumber

Unique Invoice Number

17 A/N

Unique number associated with the individual transaction provided by the merchant.

N

CommodityCode

Commodity Code

15 A/N

Code assigned by the merchant that best categorizes the item(s) being purchased.

N

OrderDate

Order Date

6 N

The date the item was ordered. If present, must contain a valid date in the format YYMMDD.

N

CorporationVatNumber

Corporation VAT Number

20 A/N

Contains a corporation’s value added tax (VAT) number.

N

CustomerVatNumber

Customer VAT Number

20 A/N

Contains the VAT number for the customer/cardholder used to identify the customer when purchasing goods and services from the merchant.

N

FreightAmount

Freight Amount

9 A/N

The freight on the total purchase Must have 2 decimals.

N

DutyAmount

Duty Amount

9 A/N

The duty on the total purchase, Must have 2 decimals

N

DestinationProvinceCode

Destination State / Province Code

3 A/N

State or Province of the country where the goods will be delivered. Left justified with trailing spaces. ie. ONT - Ontario

N

DestinationCountryCode

Destination Country Code

3 A/N

The country code where goods will be delivered. Left justified with trailing spaces. ie. CAN (Canada).

N

ShipFromPosCode

Ship From Postal Code

10 A/N

The postal code or zip code from which items were shipped

N

ShipToPosCode

Destination Postal Code

10 A/N

The postal code or zip code where goods will be delivered

N

AuthorizedContactName

Authorized Contact Name

36 A/N

Name of an individual or company contacted for company authorized purchases.

N

AuthorizedContactPhone

Authorized Contact Phone

17 A/N

Phone number of an individual or company contacted for company authorized purchases.

N

AdditionalCardAcceptordata

Additional Card Acceptor Data

40 A/N

Information pertaining to the card acceptor

N

CardAcceptorType

Card Acceptor Type

8 A/N

Various classifications of business ownership chracteristics.

 

First character represents ‘Business Type’.

The second represents 'Business Owner Type'.

The third represents 'Business Certification Type'.

The fourth represents 'Business Racial/Ethnic Type'.

The fifth represents 'Business Type Provided Code'. The sixth represents 'Business Owner Type Provided Code'.

The seventh represents 'Business Certification Type Provided Code'.

The eighth represents 'Business Racial/Ethnic Type

N

CardAcceptorTaxId

Card Acceptor Tax ID

20 A/N

It is a US Federal tax ID number of value added tax (VAT) ID.

N

CardAcceptorReferenceNumber

Card Acceptor Reference Number

25 A/N

Code that facilitates card acceptor/corporation communication and record keeping,

N

CardAcceptorVatNumber

Card Acceptor VAT Number

20 A/N

Value added tax (VAT) number for the card acceptor location used to identify the card acceptor when collecting and reporting taxes.

CM

Tax

Tax*

6 Array

Can have up to 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.


MasterCard - Line Item Details (MCCorpal) - Level 3 Request fields

Req

Variable

Value

Limits

Description

 

CustomerCode

Customer Code

25 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

N

LineItemDate

Line Item Date

6 N

The purchase date of the line item referenced in the associated Corporate Card Line Item Detail.  YYMMDD format

N

ShipDate

Ship Date

6 N

The date the merchandise was shipped to the destination. YYMMDD format

N

OrderDate

Order Date

6 N

The date the item was ordered.fixed length 6 Numeric, in YYMMDD format

N

ProductCode

Product Code

12 A/N

Line item Product Code (if this field is not sent, then itemComCode)

If the order has a Freight/Shipping line item, the productCode value has to be “Freight/Shipping”.  If the order has a Discount line item, the productCode value has to be “Discount”.

N

ItemDescription

Item Description

35 A

Line Item description

N

ItemQuantity

Item Quantity

5 A/N

Quantity of line item

N

UnitCost

Unit Cost

9 decimal

Line item cost per unit. Must contain 2 decimal places.

N

ItemUnitMeasure

Item Unit Measure

12 A/N

The line item unit of measurement code

N

ExtItemAmount

Ext Item Amount

9 decimal

Monetary amount

N

DiscountAmount

Discount Amount

9 decimal

The discount amount can only be set when the product code is set to “Discount”.  When the product code is set to “Discount” then discount amount cannot be blank.  Must contain 2 decimal places.

N

CommodityCode

Commodity Code

15A/N

Code assigned to the merchant that best categorizes the item(s) being purchased.

CM

Tax

Tax*

6 Array

Can have upto 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.


Mastercard - Passenger/Itinerary – General Ticket Information (MCCorpai) - Level 2 Request Fields

Req

Variable

Value

Limits

Description

N

PassengerName

Passenger Name

20 A/N

Field for the name of the passenger.

N

TicketNumber

Ticket Number

13 A/N

Field for the ticket number for Air/Rail Travel

N

IssuingCarrier

Issuing Carrier

4 A/N

Contains the standard abbreviation for the airline or railway carrier issuing the ticket.

N

CustomerCode

Customer Code

25 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

N

IssueDate

Issue Date

6 N

Date the ticket was issued to the customer. If present, must contain a valid date in the format YYMMDD.

N

TravelAgencyCode

Travel Ageny Code

8 A/N

Code identifying travel agency if the ticket was issued by a travel agency

N

TravelAgencyName

Travel Agency Name

25 A/N

Name of the travel agency issuing the ticket.

Y

TotalFare

Total Fare

9 decimal

Total amount of the ticket and should equal the amount of the transaction.  Maximum 999999.99

N

TotalFee

Total Fee

9 decimal

Fee Amount. Must be 2 decimals. Maximum 999999.99

N

TotalTaxes

Total Taxes

9 decimal

Total taxes is the amount of all the taxes associated with the ticket.  Maximum 999999.99

N

RestrictedTicketIndicator

Restricted Ticket Indicator

1 A/N

Provides identifier noting that the ticket purchased has some restrictions associated with its use.

If present, possible values are:

0 – no restrictions

1 – restricted ticket (non-refundable)

N

ExchangeTicketAmount

Exchange Ticket Amount

9 decimal

Price of new ticket purchase on an exchanged ticket. Must be 2 decimals. Maximum 999999.99

N

ExchangeFeeAmount

Exchange Fee Amount

9 decimal

Fee paid to exchange the ticket.  Maximum 999999.99

N

TravelAuthorizationCode

Travel Authorization Code

64 N

Code provided by the company to a travel agent authorizing ticket issuance. This code is identified as Customer File Reference Number in Airline Reporting

Corporation (ARC) specifications.

N

IataClientCode

IATA Client Code

17 A/N

International Air Transport

Association (IATA) code identifying the company that purchased the ticket.

CM

Tax

Tax*

6 Array

Can have upto 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.



 

Mastercard - Passenger/Itinerary – Rail Data (MCCorpar) - Level 3 Request Fields

 

Req

Variable

Value

Limits

Description

Y

PassengerName

Passenger name

29 A/N

Name of the passenger to whom the ticket was issued.

Mandatory field if merchant has airline, railway or travel agency MCC.

Y

TicketNumber

Ticket Number

15 A/N

Contains the number on the ticket. Mandatory field if merchant has railway or travel agency MCC.

N

TravelAgencyCode

Travel Agency Code

8 A/N

Code assigned to travel agency.

N

TravelAgencyName

Travel Agency Name

25 A/N

Name of the travel agency issuing the ticket.

N

TravelDate

Travel Date

6 N

The effective ticket date, previously referred to as departure date. Customers must use the ticket purchase date for “open tickets”. The format for this field is YYMMDD

N

SequenceNumber

Sequence Number

3 A/N

Sequence number indicating the sequence that this rail segment falls within the trip.

N

ServiceType

Service Type

2 A/N

Indicates the type of service provided.

Example of possible values:

01 – Ticket

02 – Baggage

N

ServiceNature

Service Nature

2 A/N

Indicates the nature of the service provided.

Example of possible values:

01 – Seat

02 – Couchette

N

ServiceAmount

Service Amount

9 decimal

Amount charged for the service. 

Maximum 999999.99

N

FullVatGrossAmount

Full VAT Gross Amount

9 decimal

Gross amount from which the VAT was calculated at the full tax rate.  Maximum 999999.99

N

FullVatTaxAmount

Full VAT Tax Amount

9 decimal

The value added tax at the full tax rate.  Maximum 999999.99

N

StartStation

Start Station

3-30 A/N

Contains name of the railway start station. Used if serviceType contains a value that indicates Ticket or Reservation.

N

DestinationStation

Destination Station

3-30 A/N

Contains name of the railway destination station. Used if serviceType contains a value that indicates Ticket or Reservation.

N

NumberOfAdults

Number of Adults

2 N

Number of Adults.

Used only when:

·          serviceType equates to Ticket, and serviceNature equates to Domestic Tickets, Ne/See Ticket, Foreign Ticket, or TCV Series, or

·          serviceType equates to Reservation and serviceNature equates to Seat, Couchette, or Bed

N

NumberOfChildren

Number of Children

2 N

Number of Children.

Used only when:

·          serviceType equates to Ticket, and serviceNature equates to Domestic Tickets, Ne/See Ticket, Foreign Ticket, or TCV Series, or

·          serviceType equates to Reservation and serviceNature equates to Seat, Couchette, or Bed

N

ClassOfTicket

Class of Ticket

1 A/N

Indicates the class of the ticket.

Used only when:

·          serviceType equates to Ticket, and serviceNature equates to Domestic Tickets, Ne/See Ticket, Foreign Ticket, or TCV Series, or

·          serviceType equates to Reservation and serviceNature equates to Seat, Couchette, or Bed



Mastercard Passenger/Itinerary – Trip Leg Data – Air (MCCorpas) - Level 3 Request Fields

Req

Variable

Value

Limits

Description

N

TravelDate

Travel Date

6 N

The effective ticket date, previously referred to as departure date. The format for this field is YYMMDD

N

CarrierCode1

Carrier Code

2 A/N

Carrier identification

N

ServiceClass

Service Class

2 A/N

Class of service (first class, business class etc.)

N

OrigCityAirportCode

Origin City Airport Code

5 A/N

Indicates origination city’s airport code

N

DestCityAirportCode

Destination City Airport Code

5 A/N

Indicates destination city's airport code

N

StopOverCode

Stop Over indicator

1 A/N

Indicates whether a stop-over is allowed on this ticket. Valid values are:

O = Stop-Over allowed

X = Stop-Over not allowed

N

ConjunctionTicketNumber

Primary Ticket Number

13 A/N

Primary ticket number for the trip

N

ExchangeTicketNumber

Exchange Ticket Number

13 A/N

Exchange ticket Number for the trip

N

CouponNumber

Coupon Number

1 N

Number of coupons in the ticket. Valid values are 1, 2, 3 or 4

N

FareBasisCode

Fare Ticket Class Code

8 A/N

Indicates the class of airline ticket (first class, business class etc.)

N

FlightNumber

Flight Number

5 A/N

Airlines Flight or Train Number

N

DepartureTime

Departure Time

4 N

The time the flight or train is scheduled to depart. The format for this field is HHMM

N

ArrivalTime

Arrival Time

4 N

The time the flight is scheduled to arrive. The format for this field is HHMM

N

Fare

Fare

9 decimal

The total amount of the ticket. Maximum 999999.99

N

Fee

Fee

9 decimal

The total fee associated with the ticket.  Maximum 999999.99

N

Taxes

Taxes

9 decimal

The amount of taxes associated with the ticket.  Maximum 999999.99

N

EndorsementRestrictions

Endorsement Restrictions

20 A/N

The limitation set on a ticket based on the type of fare. E.g. nonrefundable or three-day min stay.

CM

Tax

Tax*

6 Array

Can have upto 6 arrays contains different tax details. See Tax Array below for each field description.

CM – this field is conditional mandatory as in if you use this array, you have to fill in all the fields of tax array mentioned below.



Tax* Array Request Fields

Req

Variable

Value

Limits

Description

M

tax_amount

Tax Amount

9 decimal

Contains detail tax amount for purchase of goods or services. Must be 2 decimal places. Maximum 999999.99

M

tax_rate

Tax Rate

5 N

Contains the detailed tax rate applied in relationship to a specific tax amount. Like 5% GST should be ‘5.0’. May contain upto 2 decimals with maximum upto to 999.99.

M

tax_type

Tax Type

4 A/N

Contains tax type such as GST,QST,PST,HST

M

tax_id

Tax ID

20 A/N

Provides an identification number used by the card acceptor with the tax authority in relationship to a specific tax amount such as GST/HST number.

M

tax_included_in_sales

Tax included in sales indicator

1 A

This is the indicator used to reflect additional tax capture and reporting. Valid values are:

Y=Tax included in total purchase amount

N=Tax not included in total purchase amount



Definition of MC Level 2/3 Request Fields Deprecated


MasterCard Level 2 Request Fields

Req

Variable Name

Field Name

Size/Type

Description

N

customerCode

Customer Code

17 A/N

A control number, such as purchase order number, project number, department allocation number or name that the purchaser supplied the merchant. Left-justified; may be spaces.

Y

taxAmount

Tax Amount

9 A/N

Mandatory. The GST/HST on the total purchase with 2 decimals.

ie. 34567.89

N

freightAmount

Freight Amount

9 A/N

The freight on the total purchase Must have 2 decimals.

N

shipToPosCode

Ship To Postal Code

10 A/N

The postal code or zip code where goods will be delivered

N

shipFromPosCode

Ship From Postal Code

10 A/N

The postal code or zip code from which items were shipped

N

dutyAmount

Duty Amount

9 A/N

The duty on the total purchase, Must have 2 decimals

N

altTaxAmtInd

Alternate Tax Amount Indicator

1 A/N

An indicator used to reflect alternate tax/or Provincial Sales Tax (PST) capture and reporting. Values are:

Y=alternate tax included in total purchase amount

N=alternate tax not included in total purchase amount

Space=not supported

N

altTaxAmt

Alternat Tax Amount

9 A/N

The amount of the Provincial Sales Tax (PST) with 2 decimals

N

desCouCode

Destination Country Code

3 A/N

The country code where goods will be delivered. Left justified with trailing spaces. ie. CAN-Canada.

N

supData

Supplemental Data

17 A/N

This field may be used to provide additional data to the corporate customer

N

salTaxColInd

Sales Tax Collected Indicator

1 A/N

An indicator used to reflect GST/HST captured and reported.

Values are:

Y = GST/HST included in total purchase amount. 

N = GST/HST exempt not included in total purchase amount

Space = Information is unknown


Mastercard Level 3 Request Fields

Req

Variable

Value

Limits

Description

Y

productCode

Product Code

12 A/N

The product code of the individual item purchased Mandatory, cannot contain all spaces or all zeroes.

Y

itemDescription

Item Description

35 A/N

The description of the individual item purchased. Mandatory, cannot contain all spaces or all zeroes.

Y

itemQuantity

Item Quantity

5 A/N

The quantity of the individual item purchased.  Mandatory, cannot contain all spaces or all zeroes.

Y

itemUom

Item unit of measure

3 A/N

A three-position unit of measurement code.  Mandatory, cannot contain all spaces or all zeroes.

Y

extItemAmount

Extended item amount

9 A/N

The amount of the item that is normally calculated as price x quantity. Mandatory, cannot contain all spaces or all zeroes.  Must contain 2 decimals.

N

discountInd

Discount indicator

1 A/N

Values are:

Y = amount is discounted

N = amount is not discounted Space = not supported

N

discountAmt

Discount amount

9 A/N

Leading zeros with 2 decimals.

N

netGroIndForExtItemAmt

Net/gross indicator for extended item amount

1 A/N

Values are:

Y =Item amount includes tax amount

N = Item amount does not include tax amount

Space = not supported

N

taxRateApp

Tax rate applied

A/N

This is a numeric decimal rate for GST/HST.  May contain 2 decimals.

N

taxTypeApp

Tax type applied

A/N

Description of tax applied as per tax type and tax amount. Use (GST) or (HST)

N

taxAmount

Tax  Amount

A/N

The GST/HST amount applied to item. Must have 2 decimals

N

debitCreditInd

Debit or Credit Indicator

A/N

Values are:

D=extended item amount is a Debit. 

C=extended item amount is a Credit. 

Space=does not apply

N

altTaxIdeAmt

Alternate Tax Identifier (Amount)

A/N

Insert the QST/PST tax amount.  Must have 2 decimals.