Reverse
Last Updated:What's in this article?
This is a convenience method to completely or partially reverse a previous transaction, regardless of the state which it's currently in. It combines the functionality of the /transactions/adjust
, /transactions/void
, and /transactions/refund
endpoints.
- If no amount is sent:
- If the transaction is unsettled, it will be voided.
- If the transaction is settled, it will be completely refunded.
- If an amount is sent:
- If the transaction is unsettled, it will be adjusted by reducing it by the amount passed (
amount
is the amount to reduce it by, not the new amount). If the amount is the full amount of the authorization, it will be voided. - If the transaction is settled, it will be refunded for the amount sent.
- If the transaction is unsettled, it will be adjusted by reducing it by the amount passed (
ACH transactions can only be voided until 1am Eastern Time the night after the transaction was processed, and can only be refunded after 5 business days have passed since the transaction was processed.
First Data terminal transactions can only be voided within 25 minutes of the transaction. After that point it will be run as a refund/credit regardless if the transaction is settled.
Terminal transactions cannot be adjusted, and will always run as a refund if a different amount is sent regardless if the transaction is settled.
ACH transactions cannot be adjusted, and will return an error if a different amount is sent and they are unsettled.
This endpoint requires that the source key have a pin, and requires the following permissions on the source key:
- For CC transactions: Charge, Void, and Refund.
- For checks: Check Void and Check Refund.
TSYS only supports voids/adjusts on transactions using US or Canadian cards. International cards must use refunds.
Terminal full reversals that are processed on a different terminal (by specifying terminal_id
) will be processed as a refund, instead of an void.
Terminals with connected refunds will behave as matched refunds.
reference_number required | Reference number of the transaction to reverse. |
terminal_id | The serial number of the terminal. This must match a terminal that is boarded in the gateway. By default the reversal transaction will process on the terminal that the original transaction was processed on. To specify a different terminal, this field can be set. If a different terminal is set, a void will run as a refund. |
amount | Amount of original transaction to reverse. |
customer | object (BaseTransactionCustomer) |
transaction_details | object (BaseTransactionDetails) Additional optional transaction details. |