Guides
Log In
Guides

Message Field Data Description

Overview

The following appendix contains information regarding possible values for the modifier, action fields as well as descriptions for all other data fields.


Modifier

The modifier is a special value that is sent to the Terminal to initiate a unique transaction type. The table below contains a list of all supported modifier values.

ModifierDescription
CASHThe Cash modifier is used to trigger a cash payment transaction.
CNPThe CNP modifier is used for Card Not Present / MOTO transactions. This value allows the user to manually enter card details into the terminal
SCANThe scan modifier is used to initiate qr / barcode scanner.

Not all modifiers can be used with all transaction types. The table below contains a list of all supported modifiers for each respective Transaction Type (Action).

ActionSupported Modifier
“purchase”CNP, CASH, SCAN
“independentRefund”CNP
“preAuth”CNP
“balanceInquiry”CNP, SCAN
“cardVerification”CNP
“getTrack”CNP

Action

All transactions supported in the standalone application will be supported in the integrated mode.

ActionDescription
"purchase"This action triggers the purchase sequence on the terminal.
"refund"This action triggers the refund sequence on the terminal.
"independentRefund"This action triggers the independent refund sequence on the terminal.
"void"This action triggers the Void (Correction) sequence on the terminal.
"balanceInquiry"This action triggers the Balance Inquiry sequence on the terminal.
"preAuthorization"This action triggers the pre-authorization sequence on the terminal.
"completion"This action triggers the pre-authorization completion sequence on the terminal.
"sync"This action triggers the Sync with Moneris (Initialization) sequence on the terminal.
"reboot"This action triggers the reboot sequence on the terminal.
"scan"This action triggers the scan sequence on the terminal.
"print"This action triggers the print sequence on the terminal.

Data Fields

The table below contains a list of data fields used in Request and Response messages.

NameLengthTypeDescription
actionV50String

Action refers to the type of transaction that the terminal should perform. For details, see action.

apiTokenV50String

Unique alphanumeric string assigned by Moneris upon merchant account activation.

To find your API token, refer to your test or production store’s Admin settings in the Merchant Resource Center, at the following URLs:

apiVersionV20String

Moneris Cloud API version number. Currently "3.0".

approvedAmountV10String

Payment amount received / approved. The value must be in cents. For example, $10.50 must be sent as "1050".

authCodeV8String

Authorization number from the host.

balanceV10String

Balance on the gift / loyalty card. The value is in cents.

barcodeDataV2000String

Scanned data of the barcode.

barcodeType(request) / format(response)V50String

List of supported barcode formats to be scanned. Valid values include:

  • AZTEC
  • CODABAR
  • CODE_39
  • CODE_93
  • CODE_128
  • DATA_MATRIX
  • EAN_8
  • EAN_13
  • ITF
  • PDF_417
  • QR_CODE
  • RSS_14
  • RSS_EXPANDED
  • UPC_A
  • UPC_E
  • UPC_EAN_EXTENSION
cardCodeF3String

This field identifies the card type / program and is used by Moneris and the device to associate device totals to host totals.

cardNumberV200String

Track 2 details described in ISO 7813 or Manual Entry.

cardStatusV10String

TBD

cardTypeV2String

The abbreviation used by Moneris to refer to a particular payment network used during a transaction. Valid values include:

  • M (MASTERCARD)
  • V (VISA)
  • AX (AMERICAN EXPRESS)
  • C1 (JCB)
  • NO (DINERS / DISCOVER)
  • P (INTERAC)
  • UP (UNIONPAY)
  • GM (GIFT Moneris)
  • GD (GIFT Datacandy)
  • GG (GIFT Givex)
cardNameV25String

Card brand name associated with the cardType. Valid values include:

  • MASTERCARD
  • VISA
  • AMERICAN EXPRESS
  • JCB
  • DINERS / DISCOVER
  • INTERAC
  • UNIONPAY
  • GIFT Moneris
  • GIFT Datacandy
  • GIFT Givex
cashbackV10String

In request:

ECR can send a cashback amount ($ value) that will overwrite the cashback prompt screen and instead prompt cardholder to confirm the cashback amount sent by the ECR.

In response:

This field will contain the Cashback Amount entered by the customer at the terminal.

The value must be in cents.

For example $10.50 must be sent as “1050”.

cloudTicketV100String

This is the reference value for the unique transaction request.

completedV5String

Completed refers to the overall status of the transaction. There are two values:

  1. True implies that the transaction is complete and the terminal will no longer send any additional responses.
  2. False implies that the transaction is still in progress and the terminal will send additional responses.
customIdDataV50String

g The customIdData Field is intended for supplementary sales data, such as an invoice or loyalty number. The field is not encrypted and must not be used for cardholder or sensitive authentication data (e.g. PAN, CVV2, etc.)

cvcV10String

Card Verification Code.

cvdResultsF2String

This field indicates whether the cardholder verification digit (CVD) is present, and if so, the result of the CVD check. The name of this field varies depending on the card brand:

  • Visa = Card Verification Value (CVV2)*
  • Mastercard = Customer Verification Code (CVC2)
  • American Express/JCB and Discover = Customer Identification Data (CID)
  • UnionPay = Card Verification Number (CVN2)

Valid values for this field include:

  • M = CVV2 match (CID match for Discover)
  • N = No match for CVV2 or for CID
  • P = Not processed
  • S = CVV2 (CID match for Discover) should be on the card, but merchant has indicated that CVV2/CID is not present on the card
  • U = Uncertified issuer (issuer is not a CVV2 participant; CID was not checked)
  • Y = Match for American Express/JCB

Note: Response code ‘S’ is used only for Visa accounts that are processed through the Mastercard network; it is not supported for Mastercard. Supported CVV response codes for Mastercard include ‘M’, ‘N’, ‘P’ and ‘U’.

Note: For UnionPay, a value will not be returned in the response.

dataTimestampF19String

Date and time of the request / response.

dccOptInF4String

This field indicates a Dynamic Currency Conversion (DCC) transaction (opt in). If a cardholder selects to pay with a foreign currency, the terminal returns the value "true".

displayMessageV512String

Customised message to be displayed on the Terminal.

dynamicDescriptorV20String

Merchant defined description sent on a per-transaction basis that will appear on the credit card statement. Dependent on the card Issuer, the statement will typically show the dynamic descriptor appended to the merchant's existing business name separated by the "/" character. Please note that the combined length of the merchant's business name, forward slash "/" character, and the dynamic descriptor may not exceed 22 characters.

-Example-

Existing Business Name: ABC Painting

Dynamic Descriptor: Booking 12345

Cardholder Statement Displays: ABC Painting/Booking 1

ecrIdV50String

Unique identifier for the ECR.

fileDataTBDString

TBD

fileFormatV50String

Format of the file containing the signature to be returned. Valid values include:

  • TBD.
formFactorV50String

The form factor indicator (FFI), also known as device type for Mastercard, describes the chip card technology used to make payment. Examples include plastic cards, key fobs, SIMs used in mobile phones, and USB-based tokens. Returned if provided by card.

gracePeriodRemainingV2String

This field is always returned when the optional filed "hashValueSecondary" is returned in the response.

These two conditional fields will be present in the response after a change of the HMAC keys, or fresh application installation. The "gracePeriodRemaining" indicates the number of days during which the terminal would return two HASH values.

The grace PeriodRemaining days counter starts on the day of the first getHash command following a keys injection session, or the day the terminal application was freshly installed, whichever occurs last. The number of days from a new injection and/or a new application installation is compared with the value set on TMS profile of the terminal and the current date.

If the difference between the current date and new keys/installation is less than the graceTime set in the TMS profile, the two above fields will be included in the response.

Valid values: 0-99

hashValueF64String

Hash of the card data.

idempotencyKeyV50String

Unique transaction identifier to avoid duplicate requests. For idempotent requests:

  • action, totalAmount and idempotencyKey need to be same as the original transaction.

This field supports all alphanumeric and special characters besides quotation marks: “”

installmentOptInV5String

This field indicates an Installment by Visa transaction (opt in). If a cardholder selects an installment plan, the terminal returns the value "true".

isoV2String

ISO response code. This is the standardized transaction response according to the ISO 8583 payment standard.

istConfigCodeV25String

Integration configuration code provided by Moneris.

linkIdV50String

ID used to group related transactions.

loadedAmountV9String

Amount loaded to the card.

maskedPanV21String

Masked Primary Account Number.

merchantIdV13String

Merchant ID of requestor.

modifierV24String

The modifier is a special value that is sent to the Terminal to initiate a unique transaction type. For details, see modifier.

newHashV5String

TBD

orderIdV50String

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.

Note: orderId only supports alphanumeric characters (a-z, A-Z, 0-9).

pollingV5String

Requests that Moneris Cloud pushes the receipt to a temporary polling receipt URL and returns that URL in the synchronous response.

Intended for use in the combined method when postBackUrl is also sent; when polling = true, the Cloud application generates a polling receipt and sends it back to your postBackUrl.

For more information, see About Combined Integration Method.

postBackUrl(request)V2000String

The HTTPS URL that the cloud application expects to POST the request back to.

If the postBackUrl field is not sent, Moneris Cloud returns the polling receipt URL.

postBackUrl(response)V2000String

Echoes back the postBackUrl defined by the merchant in the request.

Note: Only returned if the postBackUrl is sent in the request.

preTaxAmountV10String

Transaction amount before taxes. The value must be in cents. For example, $10.50 must be sent as "1050".

printDataV10000String

Print data that needs to be printed by the Terminal. The data can be formatted using control characters placed before the data strings and remains in effect until another control character or a new line (\n) is encountered.

List of supported control characters include:

  • \1 - Small Font
  • \3 - Large Font
  • \B - Bold
  • \I - Inverse
  • \L - Left Alignment
  • \C - Center Alignment
  • \R - Right Alignment
  • \n - New Line

Sample formatted string:

“\3\CCard Details\n" //centered large font

"----------------------------------\n" //full width separator line

"\LTransaction\RCount\RVolume\n" + //three columns

"----------------------------------\n"

"\LPurchase\R150\R$123.45\n" +

"\LRefund\R1\R$ 1.23\n" +

"\LCorrections\R30\R$1.23\n"

Note: data must be ISO-8895-1 encoded.

progressStatusV5String

Flag that denotes if the terminal should return status messages back to the POS during a transaction. Valid values include:

  • true
  • false

Note: this feature is only available on Direct Integration.

realTimeUniqueIdF15String

Real Time Moneris Transaction Unique Identifier.

receiptObject

The receipt from the validation stage.

If it fulfills all validation criteria, the transaction will be processed by the Moneris Gateway.

Note: Not to be confused with the receipt object returned in the Transaction Response stage.

referenceNumberV50Number

Reference number of payment.

receiptUrlV2000String

URL endpoint to poll for the transaction result.

remainingAmountV10String

The remaining balance of a partial authorized payment (the amount due). This is the difference between totalAmount and approvedAmount. In requests, if totalAmount and remainingAmount are both present, the Terminal performs the transaction on remainingAmount. The value must be in cents. For example, $10.50 must be sent as "1050".

Note: remainingAmount must be sent to bypass the tip selection screen and receipt option screen on the terminal.

requestObject

The details necessary to run the transaction; a JSON object containing nested key-value pairs.

responseCodeV3String

< 050: Transaction approved

≥ 050: Transaction declined

Null: Transaction incomplete.

For further details on response codes, see the Response Codes document at https://legacy-developer.moneris.com.

safV5String

Identifier for SAF Transaction.

safAllowedV5String

safAllowed refers to the permission to process SAF transactions.

  1. True implies that the terminal can perform a SAF transaction.
  2. False implies that the terminal cannot perform a SAF transaction.
  3. Note: Null value is considered false by the terminal.
safCounterV3String

Number of unprocessed SAF transactions.

Range: 1 - 999.

The counter decreases to zero, and therefore will not be in the response, with every online clearing of a SAF transaction.

sequenceNumV50String

Reference number of payment.

sessionCounterV3String

A number that identifies in which sequence the barcode was scanned.

settingsObject

Returns the TMS settings.

TBD.

signatureRequiredBoolean

Cardholder signature required flag.

True: Merchant needs to obtain cardholder signature.

False: Cardholder signature not required.

statusCodeV5String

Response code. For complete list, see Appendix C.

statusV50String

Response code description. For complete list, see Appendix C.

storeIdV50String

Unique identifier provided by Moneris upon merchant account setup.

surchargeV10String

This field contains the amount of the fee that can be charged to the cardholder for a Purchase transaction. Surcharge can only be applied to Debit Purchase transactions. The value must be in cents. For example, $10.50 must be sent as "1050".

syncModifierV50String

Identifies which host to synchronize with. Valid values include:

  • SYNCTMS
  • SYNCHOST
  • SYNCALL (default)
tenderTypeV50String

Payment Type: Credit, Debit, Gift, Cash, etc.

terminalIdV8String

Terminal ID of the destination terminal.

timeoutV2String

Enables the message to be displayed for a set period of time. Once the message has been displayed, the terminal goes back to the idle screen. Timeout is in seconds with a maximum value of 30 seconds. If timeout is not sent, the terminal displays the message indefinitely until the next transaction is received by the Terminal.

tipAmountV10String

In request: POS can send a tip amount ($ value) that overwrites the tip prompt screen and instead prompts the cardholder to confirm the tip amount sent by the POS.

In response: Tip amount entered by user.

The value must be in cents. For example, $10.50 must be sent as "1050".

totalAmountV10String

Total transaction amount. The value must be in cents. For example, $10.50 must be sent as "1050".

track1V520String

Track 1 details described in ISO 7813.

track2V520String

Track 2 details described in ISO 7813.

track3V520String

Track 3 data.

trackSelectorV50String

Indicates which track data is to be returned from the card. Valid values are:

  • "1" = Retrieve Track1 data
  • "2" = Retrieve Track2 data
  • "3" = Retrieve Track3 data
  • "0" = Retrieves Track1, Track2 and Track3 data
transactionIdV50String

This is a unique ID generated for each transaction by the POS.

usernameV30String

Unique identifier for clerk / user.

todotodotodotodo