I’m testing a production web integration with Square’s Point of Sale API on an iPhone using Chrome. My Square account has two active locations: an older main location (Location B) and my current shop (Location A).
When the integration sends Location A’s explicit location_id and the Square app is set to Location A, Square briefly opens at the $0.00 keypad and immediately returns to the browser. The callback reports location_id_mismatch.
Switching the Square app to Location B allowed the $1.00 checkout screen to open. After selecting Location B in the web integration, I completed a $1.00 payment. Our backend verified that the Square payment and order both belonged to Location B, although I believed the Square app was displaying Location A.
We need payments to use Location A consistently.
What could cause Square POS to reject Location A despite matching settings? Could the app retain a previous location internally, and how can we verify its actual active location and ensure the checkout uses the requested location_id?
I can provide exact IDs, timestamps, and sanitized request/callback details privately if needed.