Hello, we think we have identified some bugs in Clover's "void" and "reverse" implementations.
We created a custom tender, and we need it to have either "void" capability or "reverse" capability. But neither option works.
The worst issue is where a user is given a "payment voided" success message when the payment is not actually voided. The user is told by Clover that the money has been returned to the customer, but it has not been returned to the customer!
Some specific details:
When I complete payment using my custom tender in the sale app, the void button is enabled. This contradicts various discussion threads that I have encountered here in this forum:
As per the above, voiding a transaction should not be possible for customer tenders.
The void button is nonetheless enabled, however, and when I press the button, I am allowed to "void" the transaction. I receive a "payment voided" message, telling me that the "void" was successful. As a user, I think that the payment is voided, when it is not. This is very bad!
In fact, there is no way that it is voided, because my custom tender has no way to subscribe to this void event. (That is, at least as far as I know. The developer docs do not seem to list any public intents or broadcast receivers related to voiding a transaction.)
Below is a flowchart of screens illustrating the problem:
After this, when I go to the Transactions app to see the transaction history, the earlier transaction which was "voided" is still not voided, and the refund button is not activated.
Below is a flowchart of screens illustrating this problem:
In fact, the refund button is never enabled in the software, even when I don't press void in the first place. The documentation seems to indicate that refunds are possible for custom tenders, but I have not seen any instructions as to how to turn this "refund" button on.
All of the above does not seem like it should be expected behavior. Is there something obvious that I am missing here? How can I turn the "void" button OFF and the "refund" button ON?
There must be a way to void or reverse a custom tender transaction, right?