AddressLab · Guides

International Address Forms: Nine Boundary Tests

First published: · Chrome · 2026-10-24

An international address form needs country-specific requirements, not a US state-and-ZIP rule with a different label. Our nine local checks found that an empty region passed the maintained UK and German rules, while an empty US state failed; the Hong Kong case exposed no postal input. These are results from AddressLab’s rules, not universal requirements for every checkout.

For QA teams building a country coverage matrix. On 24 October 2026, we loaded maintained baselines in the address form tester, changed only the listed fields, and ran each case in the English, Chinese and Japanese UI. The table below records this page’s UI run.

Replay the nine cases

Open the International Address Form Tester. Select the country, load Valid baseline, make the listed edit and run the test. Reload the baseline before each case so that an empty field from a previous run cannot contaminate the next result.

CaseEdited inputPass / warning / fail
US baseline{"postalCode": "94105"}5 / 0 / 0
US: empty state{"region": ""}4 / 0 / 1
CA: compact postcode{"postalCode": "k1a0b1"}5 / 0 / 0
GB: empty county{"region": ""}4 / 0 / 0
JP: 7 digits{"postalCode": "1000001"}5 / 0 / 0
DE: empty state{"region": ""}4 / 0 / 0
DE: lost zero{"postalCode": "1067", "region": ""}3 / 0 / 1
HK: no postcode{"postalCode": ""}4 / 0 / 0
JP: full-width digits{"postalCode": "1000001"}4 / 0 / 1

Pass counts differ because empty optional fields and inapplicable postal fields do not produce findings. Four passes for the Hong Kong case is not lower address quality than five passes for the US baseline.

A lost zero is a storage defect worth testing separately

German baseline with an empty optional state and postal input 1067: three passes and one failure.
German baseline with an empty optional state and postal input 1067: three passes and one failure.

The baseline postcode is 01067. Replacing it with 1067 produced a postal-format failure. Use this pair across form submission, storage, reopening and export; do not test only the visual input mask. Keep the original value as text and compare the exact string, including its zero.

This is a local five-digit check. Passing 01067 would not establish that the street, city and postcode belong together or that a parcel could be delivered.

Remove a requirement when the country does not use it

Hong Kong baseline: the postal input is absent and the remaining four fields pass the maintained checks.
Hong Kong baseline: the postal input is absent and the remaining four fields pass the maintained checks.

The observed Hong Kong UI removes the postal field rather than filling it with 000000. In your own application, define what should happen to an old US ZIP after switching the country. An invisible stale value can survive in an API payload even when the screen looks correct. This run checked the AddressLab UI, not an external merchant’s country switch.

Do not assume that two tools normalize identically

Japan’s ASCII input 1000001 passed the form tester, while full-width 1000001 failed its maintained rule. The dedicated postal checker has a different normalization path. A “valid” label from one tool cannot substitute for testing the exact component and API your product uses.

For Japanese-language users, test half-width/full-width entry, the postal mark and the separator as separate cases. For all locales, preserve the user’s original input until the product’s normalization policy is defined; never silently drop arbitrary characters simply to get a pass.

Turn the observations into your own acceptance matrix

Coverage axisInclude both sides
Required versus optionalEmpty US state; empty UK county/German state; country switch.
Postal storageLeading zero; letters; spaces; separators; absent field.
TextJapanese characters, accented street names and long address lines.
Round tripEntered value, request, stored row, response and export.

Record expected behavior from the target application’s contract first. Postal operators publish addressing guidance; the max lengths and pass/warning categories in this tool are maintained test rules, not a certification from those operators. For a single-record storage workflow, use the saved-record walkthrough.

Sources and test scope

AddressLab used AI assistance to organize this guide and checked it against the recorded browser operations and the primary references below. Tests ran on 24 October 2026 against a local production build in isolated Chrome. External advertising and analytics requests were blocked during functional QA. These observations do not prove address assignment, delivery, mailbox ownership or tax outcomes.

Download the inputs and observed results (JSON)

Data methodology and editorial standards