Mobile Payments SDK for Android ACCESS_FINE_LOCATION requirement vs. upcoming Google requirements

The documentation for Mobile Payments SDK for Android mentions that the ACCESS_FINE_LOCATION permission is required. Our app is currently specifying and requesting that permission.

Google is now cracking down on the ACCESS_FINE_LOCATION permission. They mention:

You may only request ACCESS_FINE_LOCATION if neither the Android location button (for apps targeting Android 17 or higher) nor the ACCESS_COARSE_LOCATION permission (applicable across all Android versions) can support your feature.

Our app currently targets Android 16 and we are not in a hurry to target Android 17. However, the current pattern is that targeting Android 17 would be a requirement for Play Store app updates by September 2027.

I’m curious as to what Square’s plans or recommendations are for dealing with this new requirement. I assume that the recommendation would be to submit a Play Console declaration to get permission to continue using ACCESS_FINE_LOCATION. In that case, we’d likely need some more information as to why that’s needed instead of ACCESS_COARSE_LOCATION. I understand that it’s gathered because payments are sensitive and logging as much relevant information as reasonable is preferable, but I’m unsure if I can explain that in a way that Google would accept.

Good question. Square should clarify whether ACCESS_COARSE_LOCATION suffices or provide official guidance and justification text for the Play Console declaration. Many developers will face this, so an official response before Android 17 enforcement would help.

Our documentation now includes a precise-location explanation you can use for your Play Console declaration. The Android Mobile Payments SDK currently requires ACCESS_FINE_LOCATION; coarse location isn’t a supported replacement. Precise location supports geographic payment eligibility, particularly near country borders, as well as fraud detection and dispute investigation.

Thank you. That should hopefully be enough.