question

Sukhbir Singh avatar image
Sukhbir Singh asked David Marginian Deactivated edited

How can we identify that we can Void that transaction?

Hi,

I am using "/v3/merchants/MID/payments" to retrieve the card payment transactions list in my clover android application. I want to differentiate those transactions which are ready to Void and which are ready to refund. Can you please suggest a way to identify that transaction which is ready to void from the transaction list?

Thanks.

PaymentConnectorRefund
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

David Marginian avatar image
David Marginian Deactivated answered David Marginian Deactivated edited

I don't understand why you need to do this. Rachel wrote a good article about void/refunds that you should read - https://medium.com/clover-platform-blog/working-with-voids-and-refunds-fe4a7aeed8fa.

Regardless of whether your POS calls VoidPayment or RefundPayment, Clover performs a void if it is possible to do so. That means that you don’t have to know where the transaction is in its life cycle in order to reverse it.

However, the two methods are not interchangeable: they determine how the transaction appears in Clover’s apps and RESTful API. RefundPayment creates a Refund object, while VoidPayment marks the payment as voided.


8 comments
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Sukhbir Singh avatar image Sukhbir Singh commented ·

Hi David, Thanks for the quick response. I have read the article. So here my question is that After getting the transaction list response how can we analyze that the void window has closed for this particular transaction?

0 Likes 0 ·
David Marginian avatar image David Marginian ♦♦ Sukhbir Singh commented ·

Can you explain what it is you are trying to do? If you read the article you should understand that it is complicated and we don't provide that information to you via the API. What you need to be concerned with is calling the correct API for the particular situation (and then letting Clover determine if it can do a void, etc.):

Call VoidPayment immediately following an incorrect transaction, like when a merchant realizes that they just charged the wrong amount.

Call RefundPayment when time has passed since the transaction occurred, like when a customer comes back to return an item.


0 Likes 0 ·
Sukhbir Singh avatar image Sukhbir Singh David Marginian ♦♦ commented ·

Yes, I understand but we want to implement functionality like Clover native transactions application, which means we will get the transaction list which was made by my application and will implement the functionality to void and refund the transaction. Definitely here that transaction will also present that was made 2 days earlier or 4 days earlier or 30 mins earlier.

0 Likes 0 ·
Show more comments
Sukhbir Singh avatar image Sukhbir Singh commented ·

Can you please confirm that VoidPayment will work as void and refund? (Void, in case of the Transaction had not settled and Refund in case of Transaction had already settled)

0 Likes 0 ·
David Marginian avatar image David Marginian ♦♦ Sukhbir Singh commented ·

It really sounds like you didn't read or don't understand Rachel's article. I think it is a good article and very clear but let me try to summarize and expand it for you. There are two key takeaways:

1) Void and refund CAN be used interchangeable. If you call void and the payment is no longer in the "void window" then a refund will be performed at the gateway level. Likewise, if you call refund within the "void window" then a void will be performed at the gateway level.

2) Even though 1 is true, you should call the correct API for the circumstance. A void should indicate that the payment was a mistake (cashier ran the transaction for the wrong amount, it was a duplicate, etc.). A refund should indicate that the customer is returning an item, etc. Why? Largely for reporting purposes as the two have different meanings for a merchant (was the payment a mistake or is the customer not happy?). This is why you will see a "Voids" and a "Refunds" section in the merchant's dashboard (and note, these categories are populated based on the API you call, not on what happened at the gateway).

If you look at the Clover native apps, they are consistent with what I am describing. The sale app displays a "void" button when the sale is complete. This is so that the cashier can void the payment if it was incorrect/a mistake. But, the transactions app only has a refund button because it is intended to be used after the sale has already been verified to not have been a mistake.


0 Likes 0 ·

Welcome to the
Clover Developer Community