We currently have the Square Terminal implemented in several self-checkout kiosks for campuses and cafeterias. For a kiosk solution like this we believe it would be ideal to not cancel a Checkout after a dip or swipe failure, but to keep the Checkout active for the user to try again.
Please find more information here:
I was told this falls into a new Feature Request. I’m posting here to give it more visibility.
Thanks for the great work you guys are doing in this product!
Surprisingly I think you should be able to implement this fairly well, and very flexibly, using what is there now.
My suggestion would be to use the terminal updated webhook to trigger creation of another terminal request, if it had failed for a “soft” reason (whatever your app considers “soft”). You should detect the user attempting to cancel from the terminal and offer a cancel or retry button on the kiosk screen. While you’re at it, some sort of integration with the screen is a nice-to-have as it makes the experience seem more responsive (for instance, “Processing card”, “Approved” appearing on screen rather than just on the terminal (which may be hard to see).