Void

Overview

The void command allows you to cancel a purchase or gift transaction. This prevents the funds from being transferred to the business and the customer from being charged. A transaction can be voided as long as the funds for that transaction have not been moved yet. This is used for but not limited to cancelling a partial approval transaction which you can learn more about at Partial Transaction. If funds have been moved then a refund is required which you can learn more about at Refund.

  1. Void Command

Request Structure

ElementTypeDescriptionSizeRequired
apiVersion String API version number V20 Required
istConfigCode String Moneris provided integration configuration code V25 Required
dataId String Merchant defined unique identifier for the data object V50 Required
dataTimestamp String Date and time of the request (YYYY-MM-DD HH:MM:SS) F19 Required
data Object Object that contains all transaction requests - -
request Array Contains data applicable to transaction request - -
orderId String Order ID from Purchase V50 Required
transactionId String Transaction ID from Purchase response V50 Required
idempotencyKey String Unique transaction identifier to avoid duplicate request V50 Required
linkId String Id used to group related transactions V50 Optional
terminalId String Destination Terminal ID
Note: An error will be returned if terminalId in the request does not match with the Terminal
F8 Optional
userName String Unique identifier for clerk / user V30 Optional
customIdData String Custom field V50 Optional
action String "void" V50 Required
dynamicDescriptor String Merchant-defined description V20 Optional
progressStatus String If value is set to "True", terminal will return progress to ECR
Note: This feature is only available on Direct Integration
V5 Optional
language String Valid values "EN" and "FR". If value is not provided, the payment app will use the language from TMS F2 Optional

Request Example

{
   "apiVersion": "3.0",
   "istConfigCode": "example_istConfigCode",
   "dataId": "example_dataId",
   "dataTimestamp": "1969-12-31 23:59:59",
   "data": {
      "request": [
         {
            "orderId": "example_orderId",
            "transactionId": "example_transactionId",
            "idempotencyKey": "example_idempotencyKey",
            "action": "void"
         }
      ]
   }
}

Response Structure

ElementTypeDescriptionSizeRequired
apiVersion String API version number V20 Required
statusCode String Status code for the overall transaction request V4 Required
status String Description of the statusCode V4 Required
dataId String Merchant defined unique identifier for the data object V50 Required
dataTimestamp String Date and time of the request (YYYY-MM-DD HH:MM:SS) F19 Required
data Object Object that contains all transaction requests - -
response Array Contains data applicable to transaction request - -
orderId String Unique identifier for this request V50 Required
transactionId String Unique identifier for this request V50 Required
idempotencyKey String Unique transaction identifier to avoid duplicate request V50 Required
linkId String Id used to group related transactions V50 Optional
action String "void" V50 Required
statusCode String Status code for individual request V4 Required
status String Description of the individual statusCode V50 Required
approvedAmount String Payment amount received / approved V9 Required
tenderType String Payment Type: Credit, Debit, Gift etc V50 Required
cardType String Card Type: V, M, P, AX etc V2 Conditional
cardName String Card Name: Visa, MasterCard, Interac, Amex etc V25 Conditional
sequenceNum String Sequence Number V18 Conditional
realTimeUniqueId String Real Time Moneris Transaction Unique Identifier F15 Conditional
responseCode String Moneris Host Response Code V3 Conditional
ISO String ISO response Code V2 Conditional
authCode String Authorization code returned from the issuing institution. V8 Conditional
formFactor String EMV Specific Data F2 Conditional
maskedPan String Masked Primary Account Number (PAN) V21 Conditional
completed String "true" or "false" V5 Required
receipt String Financial receipt data sent using ISO-8895-1 encoding V4000 Conditional
receiptChoice String The choices of how the receipt is being returned to the cardholder at the time of transaction. Valid values include: PRINT (Default Option), EMAIL, SMS, NONE. V10 Conditional
terminalId String Destination Terminal ID F8 Required
transactionType String Transaction that was voided: Purchase Void, Gift Activation Void V50 Required

Response Example

{
   "apiVersion":"3.0",
   "statusCode":"example_statusCode",
   "status":"example_status",
   "dataId":"example_dataId",
   "dataTimestamp":"1969-12-31 23:59:59",
   "data":{
      "response":[
         {
            "orderId":"example_orderId",
            "transactionId":"example_transactionId",
            "statusCode":"example_statusCode",
            "status":"example_status",
            "idempotencyKey":"example_idempotencyKey",
            "completed":"true",
            "saf":"false",
            "responseCode":"example_responseCode",
            "iso":"example_iso",
            "approvedAmount":"example_approvedAmount",
            "tenderType":"example_tenderType",
            "cardType":"example_cardType",
            "sequenceNum":"example_sequenceNum",
            "realTimeUniqueId":"example_realTimeUniqueId",
            "authCode":"example_authCode",
            "formFactor":"example_formFactor",
            "maskedPan":"example_maskedPan",
            "action":"void",
            "receipt":"example_receipt",
            "receiptChoice":"PRINT",
            "terminalId":"example_terminalId"
         }
      ]
   }
}

Errors

If your response contains errors, visit the Errors page for a detailed description of each one.


Did this page help you?