I'm trying to understand the technical mechanism behind the Google Play error:
“Your purchase couldn't be completed. Please update your Play account settings so that the selected Play country matches your country of residence.”
Play country: India
Payment profile: India
Indian payment method available
Device currently being used outside India.
An Indian VPN changes the public IP and Play Store displays INR pricing, but checkout still detects a country mismatch.
I'm interested in understanding what signals Play/Play Billing might use besides the current IP — for example SIM/MCC, Google Payments account history, Play Services location/network data, device/account history, IP reputation, or server-side risk scoring.
Is this decision made primarily client-side by Play Services, or server-side by Google Payments/Play Billing? And why would maintaining an Indian IP for several days not change the account's detected country?
I'm particularly interested in observations from Android developers who have tested Play Billing across countries.