Peruvian addresses turn on the district (distrito), not the postal code, which is often left blank. Lima runs two postal systems at once: a modern 5-digit code and the legacy LIMA NN format. Here is the correct structure, a real example, and the mistakes that cause returns.
A Peruvian label runs recipient, the street with its type and number, the district, then the province with the 5-digit code when available, and the country.
Juan Pérez personal or business recipientEjemplo S.A.C. optional, above the street lineJr. de la Unión 800 street type (<code>Jr.</code>, <code>Av.</code>, <code>Calle</code>) then the name and numberCercado de Lima the district is the key local routing unit, especially in LimaLima 15001 province, then the 5-digit code when you have itPERU required for inbound international shipmentsSerpost adopted a 5-digit national postal code, but adoption is low and many addresses ship without one. Routing runs on the district and province, so those fields carry the delivery while the code, when present, refines it.
Format: 5 digits, for example 15001, where the first two digits identify the region. Lima also uses a legacy format written LIMA 23, where the number is the district zone.
Validation regex: ^(?:LIMA \d{1,2}|CALLAO 0?\d)|[0-2]\d{4}$
Watch for: a 5-digit field filled with the legacy LIMA 23 value, or a code whose region prefix does not match the province.
The country-specific rules that generic autocomplete and single-line address fields tend to get wrong.
Serpost uses a 5-digit national code (15001 for central Lima, the first two digits the region). The older Lima system wrote LIMA 23, where the number is the district zone. You will see both, so validate against whichever the address uses.
In Lima and other cities the district (Cercado de Lima, Miraflores, San Isidro) is the primary local routing unit. A checkout that omits a district field produces addresses couriers cannot place.
Peruvian streets carry a type prefix: Jr. (jirón), Av. (avenida), Calle, or Psje. (pasaje). Dropping it can make a jirón and an avenida of the same name ambiguous.
Many Peruvian addresses ship without a postal code at all; Serpost and private couriers route on district, province and street. Include the code when you have it, but the district and province carry the delivery.
Each of these passes a basic "is this field filled in" check but fails at the carrier, turning into a redelivery, a return, or an address correction fee.
LIMA 23 in a field expecting a 5-digit code, or the reverse, fails validation.Jr. or Av. can point to the wrong street of the same name.Arequipa, Cusco) makes the district ambiguous.Jesús María and Jesus Maria across systems can cause mismatches.How the major carriers handle Peru addresses, and what your label needs to satisfy each one.
Peru's national postal operator. It routes on district and province, so a correct district (and a 5-digit code when available) is the field that matters most.
The largest domestic private courier for ecommerce, with wide district coverage. It depends on the full street, district and province for last-mile delivery.
International carriers for inbound shipments. Include the country line; they surcharge address corrections when the district or province is unclear.
Address Guard checks Peru addresses against carrier and postal databases before the order ships, normalizes the format, and flags the errors that cause failed deliveries. 240+ countries, $0.05 per check.
Part of the Address Guard international address format guide, covering 240+ countries.