Appearance
VOID
VOID is a merchant initiated request that cancels a transaction that has been previously authorized and typically not captured.
There is a special case for technical failures. A void time window is provided for captured transactions to allow a void request due to technical errors and technical failures. Captured transactions must be voided within the allowed void time window. After the void time window expires for the captured transaction, that transaction cannot be voided and must be refunded.
Successful requests will be indicated with a 2xx HTTP response code and the Approved attribute set to 'true'.
NOTE
It is possible to receive an HTTP 2xx response code indicating that the request was successfully received, understood, and processed at the HTTP protocol level, but still have the Approved attribute set to false. (A 2xx response code with an Approved attribute set to false means the server successfully handled the request itself; however the actual business or application logic determined that the request was not approved).
Void Window
The void window for captured transactions closes daily at 5:00AM UTC. This is provided for transactions that require voiding due to technical errors or customer cancellations.
Voids for captured transactions are denied when initiated after the void window. After the void window, void requests receive a response that says the void timeframe has ended. After the void window timeframe ends, captured transactions must be refunded.
NOTE
Uncaptured transactions do not have a void window and may be voided at any time.
Isolating Transactions for Void
Transactions can be voided based on either the TransactionID or the TransactionID and the EventID, based on the original transaction type and needed.
Void with TransactionID
Using only the TransactionID will void the last transaction event.
- This applies to Auth | Capture sequence, AuthCapture, Refund (last refund only), and Standalone Refund.
- Special Case: Void of Auth followed by Capture using TransactionID. This Voids the Entire Auth | Capture sequence. Another Capture request on that Auth is not allowed after the Void of an Auth | Capture sequence.
Void with TransactionID and EventID
Using both the TransactionID and the EventID 2. Void specific transaction event using a selected TransactionID and EventID.
- This applies to linked Refunds (Refund by PAN, or Refund by TransactionID)
- Special Case: Void a Capture EventID is not allowed.
Invalid Void Uses
Void are not allowed for the following transaction types:
- Void
- Instead, run a new transaction request.
- Partial Reversal of Incremental Auth
- Special case since Incremental Auth is not Captured. Another Incremental Auth can be run after a Partial Reversal.
- Partial Reversal of AuthCapture
- Balance Inquiry
- Verification
- Query Transaction List
- Query Transaction Status
Available Functions
Perform a 'void' transaction
POST, /v0/transaction/void
REQUEST Object Attributes
View REQUEST Object Attributes
| Attribute | Data Type | Description | Required |
|---|---|---|---|
| TransactionID | ksuid | TransactionID from AUTH response | True |
| EventID | ksuid | Transaction EventID from AUTH response | False |
| Reason | string | True | |
| PaymentMethod | object | Transaction Payment Method | True |
| Card | object | Card info Card is aKey/Value of the "PaymentMethod" Object | True |
| ICC | object | See Attributes in Integrated Circuit Card Data Section ICC is aKey/Value of the "PaymentMethod" "Card" Object | False |
| Attributes | object | Transaction attributes | False |
| EntryMode | object | Description of the card entry mode EntryMode is aKey/Value of the "Attributes" Object | False |
| ProcessingSpecifiers | object | Description of the specific data used for processing the transaction. ProcessingSpecifiers is aKey/Value of the "Attributes" Object | False |
| TransactionDescriptor | object | Description of the transaction used for dynamic descriptors. TransactionDescriptor is aKey/Value of the "Attributes" Object | False |
| Prefix | object | The Prefix for the transaction used for dynamic descriptors. Prefix is aKey/Value of the "Attributes" "TransactionDescriptor" Object | False |
| Detail | object | The Detail for the transaction used for dynamic descriptors. Detail is aKey/Value of the "Attributes" "TransactionDescriptor" Object | False |
| Detail | object | Transaction Details | False |
| MerchantData | object | Merchant Defined Transaction Data (supports 1 or more Merchant Defined Keys) MerchantData is aKey/Value of the "Detail" Object | False |
| MerchantDefinedKey1 | string | Merchant - defined transaction data (field 1) MerchantDefinedKey1 is aKey/Value of the "Detail" "MerchantData" Object | False |
| MerchantDefinedKey2 | string | Merchant - defined transaction data (field 2) MerchantDefinedKey2 is aKey/Value of the "Detail" "MerchantData" Object | False |
| TransactionEntry | object | (Information about transaction entry) | False |
REQUEST Examples
REQUEST Example: Standard Void
Code Sample using CURL
sh
URL=https://api.qa.paynetworx.net/v0/transaction/void
HTTPAUTHTOKEN=1fHfjpw86udrDQHRMKabypEmhY4:1fHfkJrOs7iVBnC07HDxCPZuPsK
curl -sS --user $HTTPAUTHTOKEN -H 'Content-Type: application/json' -H "Request-ID: $(ksuid)" $URL -d '
{
"TransactionID": "1XSnl0X7GC44qPT2CVV8BCz0bQi",
"Reason": "customer-cancellation",
"Detail": {
"MerchantData": {
"OrderNumber": "22-1111",
"CustomerID": "991111",
"VoidReason": "Customer cancelled the transaction"
}
}
}'REQUEST Example: Void by TransactionID and EventID
Code Sample using CURL
sh
URL=https://api.qa.paynetworx.net/v0/transaction/void
HTTPAUTHTOKEN=1fHfjpw86udrDQHRMKabypEmhY4:1fHfkJrOs7iVBnC07HDxCPZuPsK
curl -sS --user $HTTPAUTHTOKEN -H 'Content-Type: application/json' -H "Request-ID: $(ksuid)" $URL -d '
{
"TransactionID": "1XSnl0X7GC44qPT2CVV8BCz0bQi",
"EventID": "1XSnl0X7GC44qPT2CVV8BCz0bRj",
"Reason": "system-error",
"Detail": {
"MerchantData": {
"OrderNumber": "22-1111",
"CustomerID": "991111",
"VoidReason": "Customer cancelled the transaction"
}
}
}'RESPONSE Object Attributes
View RESPONSE Object Attributes
| Attribute | Data Type | Description |
|---|---|---|
| TransactionID | ksuid | Unique transaction lifetime system ID |
| EventID | ksuid | Unique transaction event system ID |
| RequestID | ksuid | Unique transaction request system ID |
| Approved | boolean | Request approval indicator |
REQUEST Exampless
RESPONSE Example: Standard Approved
JSON Response Object
json
{
"TransactionID": "1XSnl0X7GC44qPT2CVV8BCz0bQi",
"EventID": "1XSnvq7J5ggxZg70sWuRg4kEBcu",
"RequestID": "1XSnzEjZ4IBh5Nj0OEVPTWpwYo8",
"AuthCode": "P2281C",
"ResponseCode": "00",
"ResponseText": "Approved or completed successfully (d00)",
"Approved": true
}RESPONSE Example: Standard Decline
JSON Response Object
json
{
"TransactionID": "1XSnl0X7GC44qPT2CVV8BCz0bQi",
"EventID": "1XSnvq7J5ggxZg70sWuRg4kEBcu",
"RequestID": "1XSnzEjZ4IBh5Nj0OEVPTWpwYo8",
"Error": "void denied, transaction event is already voided",
"Approved": false
}