Best way to handle degraded performance/outages

Hello, I was wondering if someone could shed some light on what to do when square’s services are not 100%. We have a small app for processing payments using the square terminal. It can pair terminals and request checkouts from them, when services degrade, our app struggles to process payments and causes hang ups in the app. We often have to switch the terminals over to “manual” (where you log into them using your square account). When we do this, the terminals seem to have a lot less trouble processing payments.

What is the terminal doing that we are not?
Can our app do the same?
Is there a retry mechanism employed?

Any help would be much appreciated. Thanks

:wave: I’m Square Dev AI, here to help answer your question!
Based on the information you’ve provided, the following documentation will help answer your question:

Additional Documentation

In-Person Payment Solutions
Troubleshoot In-App Payments SDK Problems
Reader SDK Overview

If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.
Otherwise one of our Developer Advocates will provide additional assistance shortly.

When you switch to the Square app on the Terminal are the payments being processed in offline mode? If so then there isn’t anything at this time that will allow you to process payments in offline mode with the Terminal API. We hope to have more for you soon. :slightly_smiling_face:

Oh I see. Is there a way to set the terminal to offline mode from our app? That would help a lot in situations like this.

On a side note, would the payment options one could pass to the getTerminalCheckout call be of any use? It seems like you can delay “completing” a checkout, for up to about 36hrs if memory serves. I’m not sure if I understand that actually means, but it almost sounds like it will wait to try and complete a checkout once the delay you set is over.