Cannot Connect Square Reader using Mobile Payments SDK [Unable to Establish a Secure Connection to Square]

We have implemented the iOS (and Android) react native plugin for the Square Mobile Payment SDK and am currently using a production App ID.

While attempting to connect the Square Reader through the Square settings screen, I receive a “Reader pairing successful” message; however, it is followed by the error:

Reader Unavailable

Unable to establish a secure connection to Square

There have been several topics on this and it seems to be related to the App Signature but I have confirmed with my developers that we have one active and it has not changed for quite sometime.

Here is some information from Square:

Bundle ID: 6449873555

Team ID: 9MT5LDJJ7D

Production Application ID: sq0idp-KFRykXN3sdk7LbMr8WY8pw

Package Name: com.pyromart.pointofsale

SHA-256: (am I supposed to place this in public?)

Location ID: LAJXDFV4WF19F

SDK Version: 2.5.0

Been trying to troubleshoot this without bothering dev but we are at our wits end.

Hi @Pyromart! From your message, it sounds like this issue just started occurring, but was working prior to this. Is that accurate?

If so, I’d recommend looking into your build pipeline and ensuring you’re using the same key across different builds. A mismatch there is the most likely cause of the error you’re seeing. It’s also possible that a change in package path could result in this kind of mismatch.

Hi, thank you for your reply @josh-square

We have made no changes to our application. I have seen from previous threads on the same issue (not with us) that you were able to check with the engineers to check if there is indeed a mismatch of SHA-256? I am happy to provide it here if need be of course but did not know if this was considered sensitive information.

For those facing the same issue, we have resolved it and it looks like Square Support is on the ball with this one. It just takes a little bit of fine toothing to make sure all the credentials are in the right place.

Alright, for iOS, many of us in the past have used older Bundle IDs’ and this has been fine but with (I assume) recent updates to the SDK’s, the Bundle ID for both Android and iOS must be what is on the App Stores. They will usually match if you are using React Native. Ensure that the Bundle ID is correct and that will be the most common fault for iOS.

For Android (and as its been posted many times and was also the case here), go to your Google Play developer console → Go to your App → Protected with Play → Play Store Protection → Manage Play App Signing → Find your SHA-256 Certificate and use that without : and lower case (which the Square Console requires you to do anyways). Also ensure the Package name is properly matched with what Google Play has.

Finally, go BACK to your application and you want to restart all of your hardware so it forces it to reconnect with Square.

This should resolve your issues. Let me know if this helps.