Address testing guides

France Address Format: Street Numbers, Postcodes and Cities

More random records will not catch a postcode silently changing from 06000 to 6000. A useful French address test follows the same value from form input to storage and export, including accented text.

Format example

12 RUE DES ÉRABLES
06000 NICE
FRANCE

Hand-authored format fixture, not a verified delivery address. The street and building combination is synthetic. Nice uses 06000 among other postcodes; a city name alone does not identify the postcode of a particular destination.

Start with street, then postcode and locality

The UPU France guide puts the building number and street together, with the five-digit postcode before the locality name. An international address ends with the country. Our example omits the recipient and illustrates address fields rather than a complete envelope.

Do not force an administrative region into the postcode–city line. Keep it as a separate business field when needed. Having a Region column in your database does not mean it should replace the city or be appended to every postal label.

Reference: UPU — France addressing guide

Keep form storage separate from postal-label rendering

La Poste recommends a left-aligned address block, controlled line lengths, uppercase final lines and no punctuation. The generator’s comma-separated full address is a convenient UI representation; it is not presented as a compliant mailing label.

Preserve characters such as É in application data rather than deleting accents in storage to imitate a label. If your product prints actual labels, implement the carrier’s rendering requirements separately and retain the original input.

Reference: La Poste — Bien rédiger l’adresse d’une lettre ou d’un colis

Store 06000 as text

The French government’s administrative API includes 06000 in Nice’s postcode set. That does not mean every building in Nice shares that postcode, or that our synthetic street is verified against it.

Use a string for the postcode in JSON and storage. The number 6000 and the string 06000 do not carry the same information for an address system. The JSON below is an authored field-mapping fixture. Region is the administrative filter used by the tool, not an extra line that must appear in the formatted address.

Reference: API Découpage administratif — Nice (06088)

Field-mapping JSON

{
  "street": "12 rue des Érables",
  "city": "Nice",
  "region": "Provence-Alpes-Côte d’Azur (PAC)",
  "postalCode": "06000",
  "countryCode": "FR"
}

Run an acceptance test end to end

  1. Open the France generator, select Provence-Alpes-Côte d’Azur (PAC), and generate a record. The currently maintained city fixture for that region is Nice with postcode 06000.
  2. Record the random house number and rue des Érables value. Use the copy icon in the result card and check that 06000 and É remain intact.
  3. Save that record and export JSON. Confirm postalCode is a string, street preserves its characters, and region and city are separate fields.
  4. Export CSV and import it as UTF-8 with the postcode column explicitly set to text. Compare raw CSV with the spreadsheet value so automatic type inference cannot silently change 06000 to 6000.
  5. In your test form, replace the postcode with 6000 or 060000 and check the length error. Passing a five-digit syntax check does not verify an actual delivery address.

Look for encoding and delimiter errors

Pass the same record through input, API payload, database, edit screen and download. If the UI is correct but an exported value contains replacement characters, examine encoding and import settings rather than assuming the street generator is at fault.

Do not split CSV on every comma: a full-address cell can itself contain commas. Use a CSV parser that handles quoting. For normalization workflows, retain original and transformed values so a later failure can be traced to a specific conversion.

A small fixture set is not national coverage

AddressLab currently maintains a small set of city–postcode fixtures for Paris, Lyon and Nice and pairs them with synthetic streets. It does not cover every French delivery locality or the full rules for CEDEX and overseas addresses. UPU identifies CEDEX as special delivery information that should not be removed from a real address.

Generated output does not establish building existence, deliverability or a real identity. The France telephone field is currently empty. Real logistics integrations still need recipient-confirmed information, carrier validation and test data covering the regions actually served.

Reference: UPU — France addressing guide

Keep reading

Open address generator

International address form testing checklist

Data methodology and limits

Sources