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.
| Modifier | Description |
|---|---|
| CASH | The Cash modifier is used to trigger a cash payment transaction. |
| CNP | The CNP modifier is used for Card Not Present / MOTO transactions. This value allows the user to manually enter card details into the terminal |
| SCAN | The 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).
| Action | Supported 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.
| Action | Description |
|---|---|
| "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.
| Name | Length | Type | Description |
|---|---|---|---|
| action | V50 | String | Action refers to the type of transaction that the terminal should perform. For details, see action. |
| apiToken | V50 | String | 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:
|
| apiVersion | V20 | String | Moneris Cloud API version number. Currently "3.0". |
| approvedAmount | V10 | String | Payment amount received / approved. The value must be in cents. For example, $10.50 must be sent as "1050". |
| authCode | V8 | String | Authorization number from the host. |
| balance | V10 | String | Balance on the gift / loyalty card. The value is in cents. |
| barcodeData | V2000 | String | Scanned data of the barcode. |
| barcodeType(request) / format(response) | V50 | String | List of supported barcode formats to be scanned. Valid values include:
|
| cardCode | F3 | String | This field identifies the card type / program and is used by Moneris and the device to associate device totals to host totals. |
| cardNumber | V200 | String | Track 2 details described in ISO 7813 or Manual Entry. |
| cardStatus | V10 | String | TBD |
| cardType | V2 | String | The abbreviation used by Moneris to refer to a particular payment network used during a transaction. Valid values include:
|
| cardName | V25 | String | Card brand name associated with the cardType. Valid values include:
|
| cashback | V10 | String | 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”. |
| cloudTicket | V100 | String | This is the reference value for the unique transaction request. |
| completed | V5 | String | Completed refers to the overall status of the transaction. There are two values:
|
| customIdData | V50 | String | 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.) |
| cvc | V10 | String | Card Verification Code. |
| cvdResults | F2 | String | 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:
Valid values for this field include:
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. |
| dataTimestamp | F19 | String | Date and time of the request / response. |
| dccOptIn | F4 | String | 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". |
| displayMessage | V512 | String | Customised message to be displayed on the Terminal. |
| dynamicDescriptor | V20 | String | 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 |
| ecrId | V50 | String | Unique identifier for the ECR. |
| fileData | TBD | String | TBD |
| fileFormat | V50 | String | Format of the file containing the signature to be returned. Valid values include:
|
| formFactor | V50 | String | 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. |
| gracePeriodRemaining | V2 | String | 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 |
| hashValue | F64 | String | Hash of the card data. |
| idempotencyKey | V50 | String | Unique transaction identifier to avoid duplicate requests. For idempotent requests:
This field supports all alphanumeric and special characters besides quotation marks: “” |
| installmentOptIn | V5 | String | This field indicates an Installment by Visa transaction (opt in). If a cardholder selects an installment plan, the terminal returns the value "true". |
| iso | V2 | String | ISO response code. This is the standardized transaction response according to the ISO 8583 payment standard. |
| istConfigCode | V25 | String | Integration configuration code provided by Moneris. |
| linkId | V50 | String | ID used to group related transactions. |
| loadedAmount | V9 | String | Amount loaded to the card. |
| maskedPan | V21 | String | Masked Primary Account Number. |
| merchantId | V13 | String | Merchant ID of requestor. |
| modifier | V24 | String | The modifier is a special value that is sent to the Terminal to initiate a unique transaction type. For details, see modifier. |
| newHash | V5 | String | TBD |
| orderId | V50 | String | 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). |
| polling | V5 | String | 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) | V2000 | String | 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) | V2000 | String | Echoes back the postBackUrl defined by the merchant in the request. Note: Only returned if the postBackUrl is sent in the request. |
| preTaxAmount | V10 | String | Transaction amount before taxes. The value must be in cents. For example, $10.50 must be sent as "1050". |
| printData | V10000 | String | 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:
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. |
| progressStatus | V5 | String | Flag that denotes if the terminal should return status messages back to the POS during a transaction. Valid values include:
Note: this feature is only available on Direct Integration. |
| realTimeUniqueId | F15 | String | Real Time Moneris Transaction Unique Identifier. |
| receipt | — | Object | 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. |
| referenceNumber | V50 | Number | Reference number of payment. |
| receiptUrl | V2000 | String | URL endpoint to poll for the transaction result. |
| remainingAmount | V10 | String | 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. |
| request | — | Object | The details necessary to run the transaction; a JSON object containing nested key-value pairs. |
| responseCode | V3 | String | < 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. |
| saf | V5 | String | Identifier for SAF Transaction. |
| safAllowed | V5 | String | safAllowed refers to the permission to process SAF transactions.
|
| safCounter | V3 | String | 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. |
| sequenceNum | V50 | String | Reference number of payment. |
| sessionCounter | V3 | String | A number that identifies in which sequence the barcode was scanned. |
| settings | — | Object | Returns the TMS settings. TBD. |
| signatureRequired | — | Boolean | Cardholder signature required flag. True: Merchant needs to obtain cardholder signature. False: Cardholder signature not required. |
| statusCode | V5 | String | Response code. For complete list, see Appendix C. |
| status | V50 | String | Response code description. For complete list, see Appendix C. |
| storeId | V50 | String | Unique identifier provided by Moneris upon merchant account setup. |
| surcharge | V10 | String | 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". |
| syncModifier | V50 | String | Identifies which host to synchronize with. Valid values include:
|
| tenderType | V50 | String | Payment Type: Credit, Debit, Gift, Cash, etc. |
| terminalId | V8 | String | Terminal ID of the destination terminal. |
| timeout | V2 | String | 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. |
| tipAmount | V10 | String | 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". |
| totalAmount | V10 | String | Total transaction amount. The value must be in cents. For example, $10.50 must be sent as "1050". |
| track1 | V520 | String | Track 1 details described in ISO 7813. |
| track2 | V520 | String | Track 2 details described in ISO 7813. |
| track3 | V520 | String | Track 3 data. |
| trackSelector | V50 | String | Indicates which track data is to be returned from the card. Valid values are:
|
| transactionId | V50 | String | This is a unique ID generated for each transaction by the POS. |
| username | V30 | String | Unique identifier for clerk / user. |
| todo | todo | todo | todo |

