You would use this method to run a transaction on the terminal. The method is the same as runTransaction with the exception of having some additional fields, the return object is the same.
invoiceNumber (When using Vantiv, this value will be sent to Vantiv)
merchantId (Used for Multi Mid applications, current only available in Dejavoo’s)
token – Please contact support regarding token support on specific terminals and processors.
expDate – Needed when doing a token sale through TSYS or RapidConnect.
None of these fields are required to have a value but they all need to be in the request.
Please note that the amount needs to include the decimal point.
If tokenization is enabled in the terminal, Sale, Auth and Refund transactions will return a token and expiration date in the response. The token can be used to run a Sale, Auth or Refund at a later date without the card holder being present. TipAdjust, Capture and Void operate on the transaction level, which means that you are not using the token for these transactions but the RefId of the original transaction.
To run different types of transactions, change the command value in the request. Valid command values:
Sale, Refund, Auth, Capture, Void, TipAdjust,
GiftActivate, GiftSale, GiftRefund, GiftAddValue, GiftBalance
In order to do a follow-up transaction (commands in italics), the batch needs to still be open and the RefId from the previous transaction needs to be sent instead of creating a new one. It is also recommended that you create a RefId value for all initial transactions as that will allow you to use the checkStatus() in the event of comm errors. If you do not implement the checkStatus() you will lose transactions or cause duplicates.