US Address for Steam Integration Testing

Generate a US address whose city, state and ZIP genuinely agree — for the forms around a Steam integration that check it. Inside Steamworks itself there is no address to check, and that is worth knowing before you build the fixture.

Updated

Switches to that country's generator page.

Preston O. Kuvalis

4194 Justina Green
North Charleston, SC 29405
United States

Fictional test data — not a real person

Personal

SexMale
SSN913-55-XXXXFormat only — never issued, safe for testing.
Geo coordinates32.96957, -79.91912

Phone

Phone843-555-0182
Country codeUS

Birthday

BirthdaySeptember 15, 1975
Age50 years old
Tropical zodiacVirgo

Online

Email addresspkuvalis16@armyspy.com
Usernamenautical1950
PasswordEvUYQh8GSi
Websiteripe-hovercraft.info
Browser user agentMozilla/5.0 (Windows NT 10.0; Win64; x64; rv:121.0) Gecko/20100101 Firefox/121.0

Finance

Credit card typeMastercard
Card number5555555555608380Sandbox test number — non-chargeable.
CVV2605
Expires04/31
CurrencyUSD

Physical

Height5' 10" (177 cm)
Weight181.2 pounds (82.2 kg)
Blood typeO-
Hair colorRed
Eye colorHazel

Tracking numbers

UPS tracking1Z 359 016 87 6841 794 1

Other

Favorite colormaroon
Vehicle2007 BYD 1
License plateSU06HEW
GUIDd4a90b9c-df36-4566-a374-9e822128534d

This is randomly generated fictional data for software testing, QA, and privacy. It does not describe a real person. Any resemblance to a real individual is coincidental.

Start with what Valve actually documents, because it changes which fixture you need. In a Steamworks microtransaction integration the partner never receives a billing address at all: “The Steam overlay handles collecting all of the user's billing information.” The ISteamMicroTxn endpoints bear that out. InitTxn takes an order id, a Steam ID, an app id, item ids, quantities, amounts in cents, an ISO 4217 currency, an ISO 639-1 language, and — when the user authorises from the web rather than the Steam client — an IP address. Nothing resembling a street or a postal code appears anywhere in it. The entire geography model exposed to a partner is three values: country as an ISO 3166-1 alpha-2 code, a state field documented as “US State. Empty for non-US countries”, and a currency code, returned by GetUserInfo, QueryTxn and GetReport.

Valve publishes a developer sandbox for exactly this work — the same calls under ISteamMicroTxnSandbox rather than ISteamMicroTxn, where “the sandbox supports all requests available through the regular API but no actual funds will be withdrawn from the tester's Steam wallet.” There is no documented way to inject a test address or force an address-validation failure there, because there is no address field to fail. What you can vary is more useful anyway. Valve asks partners to run a fraud screen of their own: comparing the currency on a transaction against the country a request comes from gives you, in its words, “more information when looking for patterns in fraudulent activity”, with the caution that a mismatch on its own proves nothing, since people buy while travelling. Build it as a signal you log and assert on, not a gate you block on.

The fixtures Steam does reject are numeric. Amounts reach InitTxn in hundredths of the selected currency unit, and several currencies carry hard increment rules that a casually chosen test value will violate. Korean won “must be charged in increments of 1000 jeon (e.g. 2000, not 1599 or 1600)”. Vietnamese dong goes in increments of 50000 xu, Costa Rican colón in increments of 500 céntimos, and CLP, COP, IDR, INR, JPY, KZT, TWD, UAH and UYU in increments of 100. A suite that only ever exercises USD sees none of this. Build your fixture matrix over currency codes, amounts and the account status GetUserInfo returns — Active, Trusted, or locked from purchasing — rather than over addresses, and you are exercising the part of the integration that can genuinely turn a purchase down.

An address still appears around the integration, just not inside it — your own account or checkout form, your support tooling, the reporting you key on that state field, any record you keep of a customer's billing details. The hard part there is not the street name. A US address is not four independent fields: the five-digit ZIP is geographically structured, its first three digits identifying the USPS sectional centre facility that sorts the mail, and that facility's service area sits inside a single state in all but a handful of border cases. So a ZIP and the state beside it agree in all but a handful of border cases. Put 90210 next to New York and any lookup rejects the pair; five arbitrary digits fail more often than not, though roughly 41,000 of the 100,000 possible values are assigned, so about two in five are real codes that then disagree with the city beside them.

It is a lookup rather than a pattern match, which is why formatting alone never rescues a bad pair — USPS Publication 28 defines a complete address as one “that has all the address elements necessary to allow an exact match with the current Postal Service ZIP+4 and City State files”. Address Verification Service is a different check again, run by the card issuer rather than by you: in Stripe's words, “the card issuer performs an AVS check to verify that they match the billing address on file”. A generated address is on file nowhere, so drive AVS paths with the values your processor publishes — Stripe's 4000000000000028 fails the address line 1 check — and use generated data for the fields that only need to be well-formed and region-consistent.

How the generator helps with Steam integration testing: City, state and ZIP that genuinely agree — the pairing a real lookup validates, rather than four fields filled independently; Country code, US state and the country's ISO 4217 currency in one record, which are the geographic values a Steamworks partner actually receives; Randomised street name and house number, so the address is format-valid while resolving to no real occupant; Pin a specific state or city when your own reporting or state-keyed logic needs a known jurisdiction; Real NANPA area code for the pinned place, so the phone field does not contradict the address; Bulk export to CSV, JSON or SQL, so a whole fixture set can be committed to your repository instead of typed in by hand.

What a generated identity gives you for Steam integration testing

FieldFormatWhy it's safe
NameLocale-aware first + lastRandomly combined; describes no real person
AddressReal city + valid ZIP, random house #Never resolves to a real residence
PhoneValid national formatUS uses the 555-0100…0199 fiction range
Emailname@example-style domainFormat-valid placeholder, not a live inbox
National IDCountry-labeled, masked placeholderNot a real local-format identifier
Credit cardLuhn-validSandbox test BIN — non-chargeable

Every field is fictional and safe to use for Steam integration testing — it describes no real person and cannot collide with a real identifier.

Frequently asked questions

Does a Steam integration ever see a billing address?+

No. Valve's documentation states that the Steam overlay handles collecting all of the user's billing information, and the ISteamMicroTxn endpoints carry no street, postal code or billing address parameter. The only geography a partner receives is an ISO 3166-1 alpha-2 country code, a US state string and an ISO 4217 currency, returned by GetUserInfo, QueryTxn and GetReport. There is no address in the API to validate, so an address fixture belongs in your own forms rather than in your Steamworks calls.

Where do the country and state values come from?+

GetUserInfo returns country, state, currency and account status, and Valve notes these details are based upon the user's Steam wallet. For an account with no wallet yet the value falls back to the IP of the user's Steam client session, or to the ipaddress parameter you pass when usersession is set to web — and where there is no wallet, no client session and no IP supplied, the call returns an error saying the user is not logged in. That error path is the one worth covering in your tests. Nothing in the API treats either value as something a partner submits or verifies.

Can I test an address-validation failure in the Steam sandbox?+

Not against Steam. The sandbox mirrors the production calls under ISteamMicroTxnSandbox and withdraws no funds from the tester's wallet, but it exposes no address field, so there is nothing there to make fail. Test address validation against your own form and your payment processor's test mode, and use the sandbox for currency, amount and account-status paths — including the per-currency increment rules, which are the documented way to have Steam reject a purchase on the numbers alone.

Why does a US address form reject an address that looks fine?+

Usually because the fields disagree with each other, not because any one of them is malformed. A ZIP's first three digits identify a USPS sectional centre facility whose service area sits inside a single state in all but a handful of border cases — 42223 at Fort Campbell covers addresses in both Kentucky and Tennessee, and 06390 on Fishers Island is in New York despite sitting under Connecticut's 063 prefix. So a ZIP and a state code agree in all but a handful of border cases, and a validator treating the rule as absolute will wrongly reject those few real addresses. Arbitrary five-digit numbers usually fail, though about two in five are real codes — which then disagree with the city and state beside them.

Can I use this to change my Steam account's region, or to reach a price or promotion I'm not entitled to?+

No, and that is not what the data is for. The Steam Subscriber Agreement is explicit: “You agree that you will not use IP proxying or other methods to disguise the place of your residence, whether to circumvent geographical restrictions on game content, to order or purchase at pricing not applicable to your geography, or for any other purpose.” Using generated details to move a real account's region, or to obtain a trial, promotion or price you are not entitled to, is against that agreement and is a matter between you and Valve. These addresses are fictional: they identify nobody and authorise nothing. This page is for testing an integration you are building.

What does AVS actually compare?+

The postal code and billing street address you send with a card payment, against the address the issuer already holds for that cardholder — Stripe's wording is that “the card issuer performs an AVS check to verify that they match the billing address on file”. The result comes back as a code covering which of the two matched: Adyen documents 7 for “Both postal code and address match” and 2 for “Neither postal code nor address match”. It is a signal rather than an approval or a decline, and Stripe notes AVS checks can fail on legitimate payments when a customer mistypes an address or moves without telling their issuer.

Other use cases

Popular generators

Free validation tools

Sources

  1. ISO 3166 — Codes for country names and subdivisionsISO
  2. ITU-T E.164 — International telephone numbering planITU
  3. Universal Postal Union — Addressing and postal code standardsUniversal Postal Union

We use cookies for analytics and ads to keep this generator free. See our Privacy Policy.