question

pst avatar image
pst asked pst edited

dealing with preAuth that is never captured

I have already filled out the https://goo.gl/forms/xIWnym9wwdZhiEYw1 document (twice), yet when I ask a new question the response always starts with "did you fill out the Semi-Integration questionnaire?". One would assume it would be possible to search and find my answers and my filled out google form(s) based on my forum username...

In any case, since I cannot call Void on a Sale through the API, I am using preAuth and then calling capturePreAuth when the Point of Sale application closes it's transaction that contains the preAuth'd Payments... Works great since those PreAuths are not part of the CloseOut batch so never actually get captured, which is how it should work traditionally anyway.
My question is: over time, each of those preAuths that never got captured will simply always be pending. I know the Auth will eventually expire on the bank side. But how can I "void, close, cancel" whatever you want to call it, those preAuths in Clover so that we know they'll never get a capturePreAuth request sent to them?

Side note, not sure how common this is, but we are both the merchant and the developer, so not a third party. I realize that Clover is more opinionated and conservative by disallowing Voids and Refunds through the API, but it's a real hindrance to those who want to utilize those features and can trust themselves to handle them properly and responsibly, yet simply cannot. It would be great if there were a way for Merchants to control these settings (grant or deny these calls per app, similar to how when you download an Android app and it requests permission to things like use your camera or GPS location, you can control it as the end consumer, but at the Merchant level)...
semi-integrations
1 comment
10 |2000

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

pst avatar image pst commented ·

Forgot to add, to all of the Clover representatives who continue to respond to the questions posed in this forum, thank you!

0 Likes 0 ·
pst avatar image
pst answered pst edited
The issue I'm dealing with is not actually directly related to the subject of the question. But the issue started here so I'm replying here.
Void always returns Success.
https://community.clover.com/questions/2384/why-on...
This is bad because, although the Void call says it allows you to void by PaymentId and/or OrderId, it does not actually void the payment if you do not explicitly pass in the correct corresponding OrderId. From my experience and testing, the only way to make the Clover actually Void the payment is to pass both PaymentId and OrderId. Yet, if you pass PaymentId only, you get a Success response but the Payment is not actually voided on the device or in the system. Knowing this, I can now go back to using Sale rather than PreAuth. Even if you pass in an invalid OrderId, you still get a Success response.

And finally, the answer to the question regarding lingering PreAuths.. Once you do a Closeout on the terminal, any PreAuths that have not been captured basically "go away" meaning they do not calculate into the "Total Sales" amount displayed right above the Closeout button on the device.
10 |2000

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

Greg avatar image
Greg answered pst edited
Hi @PST,

We are still in the process of consolidating our developer information across our team, so thank you for your patience, I see your form response now.

From the response you are using remote-pay-windows, have you tried using CloverConnector.voidPayment()? That will either void the payment or refund the payment (if outside of void time limit), and close it. CloverConnector has refundPayment() as well.

Greg
1 comment
10 |2000

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

pst avatar image pst commented ·

I had been using VoidPayment and I thought it was working but after making a Sale, then attempting to VoidPayment that sale by PaymentId, I get a SUCCESS response, yet when I look at Transactions list on the device, the Payment is still listed as active with a green check mark (not marked as Voided) AND then if I go to CloseOut, that payment is in the closeout list and total and it batches.

Here is a Visual Studio trace of the void request

I would paste the Visual Studio trace output but the forum does not allow for that many characters.. Sandbox payment ID is TXN3Q1Z4SYZ58 if that helps

and BTW, RefundPayment() call just hangs, OnRefundPaymentResponse event is never raised.

0 Likes 0 ·

Welcome to the
Clover Developer Community