question

mitenko avatar image
mitenko asked landy answered

How to do Voids Adjust Refunds from REST API?

Hi there,


We are trying to determine if there's a RESTful way to accomplish these operations. We are executing payments via the Android SDK but we also have a Transaction Gateway where clients can see the payments and perform operations on them.


If the client wants to perform an Void/Adjust/Refund from the Gateway, there doesn't seem to be RESTful way to do this. Is the best course of action to then contact the device, and get it to perform this operation?


Thanks



REST APIClover Android SDK
10 |2000

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

David Marginian avatar image
David Marginian Deactivated answered

You would need to use our EComm API to refund (there is no void) - https://docs.clover.com/docs/ecommerce-api-tutorials.

10 |2000

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

jimfromcanada avatar image
jimfromcanada answered

Hi @David Marginian ,

What is the recommended pattern to use for:

  1. Tip adjust
  2. Voiding uncaptured sales
  3. Refunding captured sales

More directly: is it possible to perform any of these actions outside the android SDK? Or would we need to proxy all requests to any given Clover device within an organization when processing a void/adjust/refund request?

Having the device perform the void/adjust/refund task is a pattern employed on other hardware with other vendors, but Clover seems to have a much more robust ecosystem with respect to API's. This is primarily why we're wondering what the best (or only) pattern is to follow for these void/adjust/refund actions.



10 |2000

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

David Marginian avatar image
David Marginian Deactivated answered

3 can be performed via the ECommerce API - https://docs.clover.com/docs/ecommerce-api-tutorials. I think 2 can as well, but I am not certain if the uncaptured state will cause issues. I don't have time to try it right now, but you certainly can. As far as tip adjust, authorizations can be captured and a tip can be added (I believe) via https://docs.clover.com/reference/payupdateauthorization, but there isn't much documentation on this API and you need to thoroughly test it if you decide to try it.

10 |2000

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

brahimdiaz avatar image
brahimdiaz answered brahimdiaz edited

You're right, there currently isn't a documented RESTful API within Clover that allows voiding, adjusting, or refunding transactions directly from your Transaction Gateway. Since you're already processing payments through the Clover Android SDK, here are the two main approaches to consider:


1. **Device Communication:** While not ideal, you can potentially leverage the existing communication channel between your Android app and the Clover device. The app could receive a request from the Transaction Gateway to perform a void/adjust/refund. The app would then utilize the Clover Android SDK functionalities to communicate with the Clover device and execute the desired operation. This approach keeps everything within the Clover ecosystem but requires some logic within your Android app to handle these requests.


2. **Alternative Payment Gateway:** Explore integrating a separate payment gateway that offers a RESTful API for managing transactions, including voids, adjustments, and refunds. This would allow your Transaction Gateway to interact directly with the payment gateway for these operations, decoupling it from needing the Clover device itself. This approach might require additional setup and potentially incur fees associated with the chosen payment gateway.


Ultimately, the best course of action depends on your specific needs and priorities. If maintaining everything within the Clover ecosystem is crucial, then coordinating with the Clover device through your Android app might be suitable. However, if flexibility and a dedicated API for managing transactions are desired, exploring a separate payment gateway could be a better option.

Regards

Hailey


10 |2000

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

pamelaladd avatar image
pamelaladd answered

Stated differently, is there any way to complete any of these activities without requiring the Android SDK? Alternatively, would we have to forward all requests to a particular Clover device within an organization in order to handle void, alter, or refund requests?

candy clicker

10 |2000

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

mkimura avatar image
mkimura answered

Scenario: Customers are utilizing Debit Cards to process payments in person and online. We do not take partial payments. Unfortunately, in taking debit cards, customers whose bank accounts have insufficient funds are still able to process a partial payment. Is there any way to back out of the transaction before the partial payment is processed? (i.e. Add in logic that states "If a customer's debit card indicates insufficient funds, then cancel the transaction and inform the customer."

10 |2000

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

landy avatar image
landy answered

This thought brings new clarity Solar to the subject, encouraging further reflection.

10 |2000

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

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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

Welcome to the
Clover Developer Community