WEIRD problem with my square terminal

I bought my square terminal new a couple of weeks ago and modified my webapp POS program to work with it. When I click the “credit” button on the screen it calls Create Terminal Checkout. At home, on my dev system (same code) it worked like a champ but when I took it to my store and connected it to the network there, it started behaving strangely.

The first issue was if the credit button is clicked the terminal does nothing, just sits there displaying the “powered by square”. I naturally thought something protocol wise is amiss, but no, all looked good. in addition according to the API logs, the create terminal checkout shows up right immediately but the terminal doesn’t show the insert card screen.

HOWEVER. :slight_smile: If I left swipe on the terminal and choose Settings then go back to checkout, right away the terminal will show the insert card screen with the correct amount.

I thought well maybe it doesn’t like this router. So I ordered a Hub for Square Terminal and plugged it into the Ethernet switch that the POS stations are all plugged into and it got right on the network so I disabled
the wifi.

But the symptoms stayed the same. You can consistently get it to ask for a card by going to settings then back to checkout. The terminal says it’s software revision is up to date.


:wave: That is definitely odd behavior. What troubleshooting did you do? Also have you tried a factory reset? :slightly_smiling_face:

No, About 1/2 hour ago though I checked and their was an update that apparently dropped totday? So I did that and was hopeful but no. That likely did a factory reset no? The only troubleshooting I did was to go ethernet.
Once the create terminal checkout is send it is up you your servers to talk to my terminal right?

I’ll be taking it home for the weekend back to the network where it worked but aside from that I am at a loss.

If you send off more than one terminal checkout from different sales, the server is queuing them up and running through the aforementioned procedure I will then get them “released” to me so to speak and the checkouts will appear on the square one after the other until they are exhausted.


I’m trying a factory reset now…

And that did not fix it.

I’m a network tech by trade so fire away. :slight_smile:

You mentioned it was working well during testing. If you connect the Terminal to a separate hotspot does that make any difference? Also do you have the application ID and a video of this that I can share with the team.

Now, maybe because I’m filming it it is behaving differently but not correctly yet either. I can wait and wait and wait but then if I left swipe it it is then showing me the checkout. I have it on my phone doing this, What is the best way to get it to you?

App ID is: sq0idp-9NghDZ485fkPtpGfyxqWrA

I’m going to take this back home where it behaved and if it does then I will switch routers out. What is here is a netgear AC1200 and I have had more than one thing go weird with them.

You can either post the video here or message it to me. Let us know how it goes. :slightly_smiling_face:

Works fine from my home.
I’m going to trade routers with the shop this weekend.

We’ll I took my home router down to the shop and setup all the particulars.
It didn’t fix it.

Comcast is the provider in both cases.
I’ll get to the bottom of it.

Any checkout flow maps that you can point me to would be handy.

I found a checkout flow paragraph so never mind that.

Glad you found what your were looking for. Feel free to reach back out if you have any other questions - we’re always happy to help. :slightly_smiling_face:

I might have fixed it. Time will tell, but so far so good.
All the POS station’s DNS server’s are the server IP so in the event of an internet outage the store can go on.

I had tried seemingly everything then monkeying around in settings I saw that I could set the IP manually. So I did that and set the terminal’s DNS server to be the server’s ip like the stations and while that didn’t fix it while working on some other UI stuff I re-paired the terminal with the POS station it is to work with and lo and behold it has worked just like it should and as it did at home since.

Thanks for playing this round of WTH???

That’s great that it’s working as expected now. Please feel free to reach out if you have any additional questions. :slightly_smiling_face:

Hello all! I’m currently experiencing this (almost) exact issue. I don’t have to swipe the screen like OP, I just got to touch it in order for the terminal to “wake up”. This happens on the latest version of my
pos service app. I did not touch the payment procedure on my end. All I did was implement logging to an API for log consolidation. If I revert to a previous version, the terminal seems to behave as expected. I also checked the “about” page on the terminal and noticed an update, so I let it update, followed by a proper power cycle. Still can’t get it to behave. I’m not sure about the DNS thing yet, haven’t tried it yet.

One thing that comes to mind is that the terminal is technically paired with 2 stations, my dev station and our test bench. Maybe there were changes made that make that scenario flaky??? Not sure.

What versions are you referencing, the Terminal version or the API version? Also what are the versions and your application ID? Lastly was the Terminal already awake or was it asleep when you had to tap the screen? :slightly_smiling_face:

API version: 2023-10-18
SDK version: Nodejs 32.0.0
Application Id: sq0idp-e40Zku_jq6CCmmS4eQx1TA

The terminal is awake, usually cycling images, though I’ve tried turning off all the fancy terminal stuff without much success. I repaired the terminal but it’s still misbehaving. After updating the SDK, I was initially on 31.0.0, the behavior is a bit more random. Sometimes it respects the checkout request in less than 2 secs, or I can wait for several seconds (10+sec) and maybe get the blue screen to appear. But no matter what, if I touch the screen, it instantly goes to the blue screen without fail.

What’s a checkout_id that you had this happen with? :slightly_smiling_face:

Checkout Id: LyonHDVB41VqO

Also, in case it helps at all (you never know), the webhooks fire off in sync with the terminal.
I other words, when I touch the screen, I both get the terminal to respond to the checkout request, and then I get the webhook event. The webhooks are behaving as they should.

When was the last time the device was restarted? I do see the 10 second delay from when it was created and when the device acknowledged the checkout. :slightly_smiling_face: