A *structured address* is a postal address split into the ISO 20022 <PstlAdr> sub-elements: <StrtNm> (street name), <BldgNb> (building number), <PstCd> (postal code), <TwnNm> (town name), <Ctry> (ISO 3166-1 alpha-2 country code). Some implementations also use <CtrySubDvsn> (sub-division / state / canton) and <Dept> / <SubDept> for organisational units.
The contrast is the *unstructured* <AdrLine>: up to seven freeform 70-character lines. <AdrLine> was the de facto default under the legacy SWIFT MT103 world and most pain.001 implementations through 2024.
The SWIFT MX / CBPR+ Nov 14, 2026 cutover *requires* the structured form for cross-border payments. After that date, banks will reject pain.001 instructions where the debtor or creditor address is carried in <AdrLine>. The SEPA scheme and most domestic ISO 20022 rails are aligning on the same requirement, on slightly different timelines.
iso-compliant enforces structured address at build time under any rule pack that flags structuredAddressRequired. The deterministic restructurer at POST /v1/address/restructure splits a single <AdrLine> into the structured form when possible; see apps/api/src/lib/address-restructure.ts.