If three attempts at processing a payment or refund fail, then a Payment Transaction Error Notification is triggered. This can occur in two event types – capturing and refunding. The notification for each of these cases will appear the same, with a parameter denoting whether it was a capture or refund transaction.
There is a Return Failure Notification under the Return Event Notifications topic that is also triggered by three failures of a refund. That notification is sent in addition to this one, with different data provided in each.
Payment Transaction Error Parameters
This notification provides data about the type of transaction being performed and the error message, as well as relevant IDs of orders and shipments associated with the transaction. No details such as the last four digits of a credit card are provided.
Field | Type | Description |
orderID | integer | The identifier of the order the transaction is being performed for |
returnID | integer | The identifier of the return, if applicable – for a capture failure, this will be “null” |
shipmentID | integer | The identifier of the order’s shipment that the transaction is associated with, if applicable – otherwise, this will be “null” |
amount | number | The total amount that the transaction was attempting to capture or refund |
errorMessage | string | A brief explanation of the error being experienced |
transactionDate | string | The date and time that the transaction was attempted (date-time format) |
eventTypeID | string | Either “capture” or “refund” |
orderType | string | The type of the order (e.g. “IN-STORE PICK UP”), if applicable |
data | object | Empty |
scope | object | Contains the manufacturer ID and catalog ID that the order is placed with |
This example demonstrates a payment failing to capture due to being rejected, per the given error message.
{ "orderID": "010101010", "returnID": null, "shipmentID": null, "amount": "205.60", "errorMessage": "REJECT", "transactionDate": "2018-11-18 01:08:05", "eventTypeID": "capture", "orderType": null, "data": null, "scope": { "mfgID": "00000", "catalogID": "1" } }