If you are testing in-app purchases on Android, start with Google's own tooling, because it never asks you for an address. The Play Billing testing guide documents license testers, five test payment instruments — always approves, always declines, two slow cards that resolve after a few minutes, and one that approves then charges back — plus accelerated renewals, where a one-year period renews in thirty minutes and a test subscription renews at most six times, and an automatic refund after three minutes if your app never acknowledges the purchase. The words address, postal code and ZIP do not appear in that guide at all. Play owns the payment instrument and exposes none of it to your app, and Play Billing Lab covers regional offer eligibility inside the test tool itself. If Play Billing is what you are testing, you do not need this page.
The address matters one layer out. Play Billing covers in-app digital purchases; physical goods, services and anything transacted on your own web checkout run through other processors, and those do ask. So do your own account, profile, shipping and tax-calculation forms. Google Pay's API — a separate product from Play Billing — is where Google actually documents an address shape. Its response Address object returns name, postalCode, countryCode and phoneNumber in MIN format, and adds address1 through address3, locality (“City, town, neighborhood, or suburb”), administrativeArea (“A country subdivision, such as a state or province”) and sortingCode in FULL. FULL-ISO3166 adds iso3166AdministrativeArea, the ISO 3166-2 code for that subdivision. The intermediate address surfaced before authorisation is deliberately redacted — for the US it carries “the first five digits” of the postal code.
What makes a US address awkward to fabricate is that it is not four independent fields. The five-digit ZIP is geographically structured: its first three digits correspond to a sectional centre facility, the plant that sorts for a cluster of nearby ZIPs, and that cluster falls inside a single state in all but a handful of border cases. Put 90210 beside New York and any validator doing a real lookup rejects the pair; Five arbitrary digits usually fail too, though only about three times in five — roughly 41,000 of the 100,000 possible values are assigned. The exceptions are worth knowing before you assert on them. 42223 serves Fort Campbell across both Kentucky and Tennessee, and 06390 covers Fishers Island, which is in New York despite sitting under Connecticut's 063 prefix. A validator that treats ZIP-to-state as absolute will wrongly reject those real addresses.
AVS is the other check people conflate with address validation, and it behaves differently. The Address Verification Service does not ask whether an address exists; it asks whether what was typed matches what the card issuer holds on file, and it compares only two things — the numeric portion of the street line and the postal code. City, state and the street name text are not part of that comparison. Stripe's published test cards treat the two dimensions independently: 4000000000000028 fails the line 1 check, 4000000000000036 fails the postal code check if you provide a postal code, 4000000000000010 fails both, and 4000000000000044 makes both checks unavailable. That last state is the one worth building for, since plenty of issuers return no AVS result whatsoever, and code reading “not matched” as “fraud” will misfire.
This generator pins what must be real and randomizes what must not: a genuine US city, a ZIP issued for that city's state, a NANPA area code from the same region, and a randomized street name and house number — the record clears a consistency check while pointing at no real occupant. Three caveats. It emits five-digit ZIPs only, no ZIP+4, so it never reaches the bar USPS Publication 28 sets — “an exact match with the current Postal Service ZIP+4 and City State files” — nor a CASS-certified check, which Google notes “is not enabled by default”. Google publishes nothing about how Play checks a buyer's address; any page describing it is inferring. And Play's guide states that “Taxes are not computed for test purchases”, so your own tax code needs exercising elsewhere, including against a state with no statewide sales tax such as Oregon or Delaware to reach the zero-rate branch.
How the generator helps with Google Play billing and checkout testing: City, state and ZIP that genuinely agree — the pairing a lookup validator actually checks; Real NANPA area code for the same region, so the phone field does not contradict the address; Randomized street name and house number, so the record resolves to no real occupant; Fields map cleanly onto the Google Pay API Address shape: locality, administrativeArea, postalCode, countryCode; Pin a specific state or city so state-keyed logic in your own code — tax calculation, shipping zone, regional feature flag — runs against a known jurisdiction; Bulk export to CSV, JSON or SQL, and the JSON API accepts a seed so a fixture can be committed and replayed.