question

lenab avatar image
lenab asked David Marginian Deactivated answered

void receipt

Hi

When executing test #7 from the certification https://docs.clover.com/docs/testing-canadian-payment-flows we do not have the proper behavior when voiding a sale.

After the sale is voided we should have the prompt for receipts but there are no prompts and it doesn't print. The pinpad just says "Transaction was voided".

Test #7: Void a payment
(POS) Select the sale transaction from the sixth test.
(POS) Void the sale.
(Clover)* On the Need a receipt screen, tap No receipt.*
The void is complete and the device displays The transaction was voided.

Sandbox
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

After more research this is a bug that appears to only be impacting the Windows SDK. Our test team recently found it and wrote up a report on 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.

David Marginian avatar image
David Marginian Deactivated answered lenab commented

That doesn't sound right, are you sure you haven't disabled receipt selection? Send the code you are using to make the void.

11 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.

lenab avatar image lenab commented ·

I am sure. It is only for voids

0 Likes 0 ·
lenab avatar image lenab commented ·

sorry, did not notice you sked for code

var lvVoidRequest = new VoidPaymentRequest();
lvVoidRequest.OrderId = inOrderId;
lvVoidRequest.PaymentId = inPaymentId;
lvVoidRequest.VoidReason = VoidPaymentRequest.USER_CANCEL;

_cloverConnectionListener.CloverReply = false;
_cloverConnector.VoidPayment(lvVoidRequest);


0 Likes 0 ·
David Marginian avatar image David Marginian ♦♦ lenab commented ·

That answer is incorrect and I will remove it. It sounds like the developer is not checking the void response and thus is not actually voiding the payment (I am guessing because of an invalid void reason).

What version of the SDK are you using? Are you checking the void response and making sure it is successful? VoidPaymentRequest.USER_CANCEL doesn't seem right to me. The starter example () has this:


 import * as clover from "remote-pay-cloud";

 ...
 const voidPaymentRequest = new clover.remotepay.VoidPaymentRequest();
 voidPaymentRequest.setPaymentId(payment.getId());
 voidPaymentRequest.setVoidReason(clover.order.VoidReason.USER_CANCEL);

Which works and the receipt screen appears after the void.

0 Likes 0 ·
lenab avatar image lenab David Marginian ♦♦ commented ·

Hi

My sdk version is 4.0.3.0.

There is no method to set void reason, just property.

Starter application I have has nothing for voids.

CloverExamplePOSForm has this:

POSPayment payment = ((POSPayment)OrderPaymentsView.SelectedItems[0].Tag);
request.PaymentId = payment.PaymentID;
request.EmployeeId = payment.EmployeeID;
request.OrderId = payment.OrderID;
request.VoidReason = "USER_CANCEL";

data.CloverConnector.VoidPayment(request);

0 Likes 0 ·
Show more comments

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