New Zealand NHI IG
1.6.5 - Release

New Zealand NHI IG - Local Development build (v1.6.5) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

## Data Type Profile: NhiAddress - Detailed Descriptions

Active as of 2026-01-26

Definitions for the NhiAddress data type profile.

- Key Elements Table
- Differential Elements Table
- Snapshot Elements Table

Guidance on how to interpret the contents of this table can be foundhere

0. Address
Definition | An address expressed using postal conventions (as opposed to GPS or other location definition formats). This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery. There are a variety of postal address formats defined around the world.
Short | An address expressed using postal conventions (as opposed to GPS or other location definition formats)
Comments | Note: address is intended to describe postal addresses for administrative purposes, not to describe absolute geographical coordinates. Postal addresses are often used as proxies for physical locations (also see the Location resource). Note: address is intended to describe postal addresses for administrative purposes, not to describe absolute geographical coordinates. Postal addresses are often used as proxies for physical locations (also see the Location resource).
Control | 0..* This element is affected by the following invariants: ele-1
Is Modifier | false
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
2. Address.extension:nz-geocode
Slice Name | nz-geocode
Definition | New Zealand Geocode. This uses a different datum from that defined in the HL7 FHIR specification for a Geocode.
Short | A geocode using the NZ specific datum (reference point)
Control | 0..1
Type | Extension(NZ Geocode) (Complex Extension)
Is Modifier | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
4. Address.extension:suburb
Slice Name | suburb
Definition | Suburb element of a NZ Address.
Short | The suburb part of the address
Control | 0..1
Type | Extension(NZ Suburb) (Extension Type: string)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
6. Address.extension:building-name
Slice Name | building-name
Definition | The name of a building cited in an address.
Short | The name of the building
Control | 0..1
Type | Extension(Building Name) (Extension Type: string)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
8. Address.extension:domicile-code
Slice Name | domicile-code
Definition | NZ Domicile Code. Derived from a patient's primary physical, home address.
Short | The domicile code associated with this address
Control | 0..1
Type | Extension(NZ Domicile Code) (Extension Type: CodeableConcept)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
10. Address.extension:notValidatedAddressReason
Slice Name | notValidatedAddressReason
Definition | The reason why the address has not been validated
Short | The reason an address was not validated
Control | 0..1
Type | Extension(NotValidatedAddressReason) (Extension Type: CodeableConcept)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
12. Address.extension:nz-address-id
Slice Name | nz-address-id
Definition | Uniquely identifies this address as a physical entity. Will remain constant over time even if address administrative data such as DPID change
Short | Extension
Control | 0..1
Type | Extension(NzAddressId) (Extension Type: string)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count())) ext-1: Must have either extensions or value[x], not both (extension.exists() != value.exists())
14. Address.extension:nz-address-derived
Slice Name | nz-address-derived
Definition | Address elements that are directly derived from the address validation service
Short | Extension
Control | 0..1
Type | Extension(NhiAddressDerived) (Complex Extension)
Is Modifier | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
16. Address.use
Definition | The purpose of this address.
Short | home | work | temp | old | billing - purpose of this address
Comments | Applications can assume that an address is current unless it explicitly says that it is temporary or old.
Control | 0..1
Binding | The codes SHALL be taken from NHI Address Use Codes http://hl7.org/fhir/ValueSet/address-use|4.0.1 (required to `https://nzhts.digital.health.nz/fhir/ValueSet/nhiaddressUse` )
Type | code
Is Modifier | true because This is labeled as "Is Modifier" because applications should not mistake a temporary or old address etc.for a current/permanent one
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Requirements | Allows an appropriate address to be chosen from a list of many.
Example | General: home
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
18. Address.type
Definition | Distinguishes between Residential (physical) and Postal (mailing) addresses Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both.
Short | postal | physicalpostal | physical | both
Comments | The definition of Address states that "address is intended to describe postal addresses, not physical locations". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the Location resource). The definition of Address states that "address is intended to describe postal addresses, not physical locations". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the Location resource).
Control | 10..1
Binding | The codes SHALL be taken from NHI Address Type Codes http://hl7.org/fhir/ValueSet/address-type|4.0.1 (required to `https://nzhts.digital.health.nz/fhir/ValueSet/addressType` )
Type | code
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Example | General: both
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
20. Address.district
Definition | The name of the administrative area (county).
Short | District name (aka county)
Comments | District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead.
Control | 0..01
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Alternate Names | County
Example | General: Madison
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
22. Address.state
Definition | Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).
Short | Sub-unit of country (abbreviations ok)
Control | 0..01
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Alternate Names | Province, Territory
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
24. Address.country
Definition | Country - a nation as commonly understood or generally accepted.
Short | Country (e.g. can be ISO 3166 2 or 3 letter code)
Comments | ISO 3166 3 letter codes can be used in place of a human readable country name.
Control | 0..1
Binding | The codes SHALL be taken from For codes, see ISO 3166-1:2013 (2-alpha country code) (required to `https://nzhts.digital.health.nz/fhir/ValueSet/country-code` )
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))
26. Address.period
Definition | Time period when address was/is in use.
Short | Time period when address was/is in use
Control | 0..01
Type | Period
Is Modifier | false
Summary | true
Requirements | Allows addresses to be placed in historical context.
Example | General: { "start" : "2010-03-23", "end" : "2010-07-01" }
Invariants | ele-1: All FHIR elements must have a @value or children (hasValue() or (children().count() > id.count()))

Guidance on how to interpret the contents of this table can be foundhere

0. Address
2. Address.extension:notValidatedAddressReason
Slice Name | notValidatedAddressReason
Short | The reason an address was not validated
Control | 0..1
Type | Extension(NotValidatedAddressReason) (Extension Type: CodeableConcept)
4. Address.extension:nz-address-id
Slice Name | nz-address-id
Control | 0..1
Type | Extension(NzAddressId) (Extension Type: string)
6. Address.extension:nz-address-derived
Slice Name | nz-address-derived
Control | 0..1
Type | Extension(NhiAddressDerived) (Complex Extension)
8. Address.use
Binding | The codes SHALL be taken from NHI Address Use Codes (required to `https://nzhts.digital.health.nz/fhir/ValueSet/nhiaddressUse` )
10. Address.type
Definition | Distinguishes between Residential (physical) and Postal (mailing) addresses
Short | postal | physical
Control | 1..?
Binding | The codes SHALL be taken from NHI Address Type Codes (required to `https://nzhts.digital.health.nz/fhir/ValueSet/addressType` )
12. Address.district
Control | 0..0
14. Address.state
Control | 0..0
16. Address.country
Binding | The codes SHALL be taken from ISO 3166-1:2013 (2-alpha country code) (required to `https://nzhts.digital.health.nz/fhir/ValueSet/country-code` )
18. Address.period
Control | 0..0

Guidance on how to interpret the contents of this table can be foundhere

0. Address
Definition | An address expressed using postal conventions (as opposed to GPS or other location definition formats). This data type may be used to convey addresses for use in delivering mail as well as for visiting locations which might not be valid for mail delivery. There are a variety of postal address formats defined around the world.
Short | An address expressed using postal conventions (as opposed to GPS or other location definition formats)
Comments | Note: address is intended to describe postal addresses for administrative purposes, not to describe absolute geographical coordinates. Postal addresses are often used as proxies for physical locations (also see the Location resource).
Control | 0..* This element is affected by the following invariants: ele-1
Is Modifier | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
2. Address.id
Definition | Unique id for the element within a resource (for internal references). This may be any string value that does not contain spaces.
Short | Unique id for inter-element referencing
Control | 0..1
Type | string
Is Modifier | false
XML Format | In the XML format, this property is represented as an attribute.
Summary | false
4. Address.extension
Definition | May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.
Short | Additional content defined by implementations
Comments | There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone.
Control | 0..*
Type | Extension
Is Modifier | false
Summary | false
Alternate Names | extensions, user content
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
Slicing | This element introduces a set of slices on `Address.extension`. The slices areUnordered and Open, and can be differentiated using the following discriminators: value @ url
6. Address.extension:nz-geocode
Slice Name | nz-geocode
Definition | New Zealand Geocode. This uses a different datum from that defined in the HL7 FHIR specification for a Geocode.
Short | A geocode using the NZ specific datum (reference point)
Control | 0..1
Type | Extension(NZ Geocode) (Complex Extension)
Is Modifier | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
8. Address.extension:suburb
Slice Name | suburb
Definition | Suburb element of a NZ Address.
Short | The suburb part of the address
Control | 0..1
Type | Extension(NZ Suburb) (Extension Type: string)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
10. Address.extension:building-name
Slice Name | building-name
Definition | The name of a building cited in an address.
Short | The name of the building
Control | 0..1
Type | Extension(Building Name) (Extension Type: string)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
12. Address.extension:domicile-code
Slice Name | domicile-code
Definition | NZ Domicile Code. Derived from a patient's primary physical, home address.
Short | The domicile code associated with this address
Control | 0..1
Type | Extension(NZ Domicile Code) (Extension Type: CodeableConcept)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
14. Address.extension:notValidatedAddressReason
Slice Name | notValidatedAddressReason
Definition | The reason why the address has not been validated
Short | The reason an address was not validated
Control | 0..1
Type | Extension(NotValidatedAddressReason) (Extension Type: CodeableConcept)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
16. Address.extension:nz-address-id
Slice Name | nz-address-id
Definition | Uniquely identifies this address as a physical entity. Will remain constant over time even if address administrative data such as DPID change
Short | Extension
Control | 0..1
Type | Extension(NzAddressId) (Extension Type: string)
Is Modifier | false
Summary | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
18. Address.extension:nz-address-derived
Slice Name | nz-address-derived
Definition | Address elements that are directly derived from the address validation service
Short | Extension
Control | 0..1
Type | Extension(NhiAddressDerived) (Complex Extension)
Is Modifier | false
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`) ext-1: Must have either extensions or value[x], not both (`extension.exists() != value.exists()`)
20. Address.use
Definition | The purpose of this address.
Short | home | work | temp | old | billing - purpose of this address
Comments | Applications can assume that an address is current unless it explicitly says that it is temporary or old.
Control | 0..1
Binding | The codes SHALL be taken from NHI Address Use Codes (required to `https://nzhts.digital.health.nz/fhir/ValueSet/nhiaddressUse` )
Type | code
Is Modifier | true because This is labeled as "Is Modifier" because applications should not mistake a temporary or old address etc.for a current/permanent one
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Requirements | Allows an appropriate address to be chosen from a list of many.
Example | General: home
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
22. Address.type
Definition | Distinguishes between Residential (physical) and Postal (mailing) addresses
Short | postal | physical
Comments | The definition of Address states that "address is intended to describe postal addresses, not physical locations". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the Location resource).
Control | 1..1
Binding | The codes SHALL be taken from NHI Address Type Codes (required to `https://nzhts.digital.health.nz/fhir/ValueSet/addressType` )
Type | code
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Example | General: both
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
24. Address.text
Definition | Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts.
Short | Text representation of the address
Comments | Can provide both a text representation and parts. Applications updating an address SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part.
Control | 0..1
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Requirements | A renderable, unencoded form.
Example | General: 137 Nowhere Street, Erewhon 9132
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
26. Address.line
Definition | This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information.
Short | Street name, number, direction & P.O. Box etc.
Control | 0..*
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Example | General: 137 Nowhere Street
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
28. Address.city
Definition | The name of the city, town, suburb, village or other community or delivery center.
Short | Name of city, town etc.
Control | 0..1
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Alternate Names | Municpality
Example | General: Erewhon
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
30. Address.district
Definition | The name of the administrative area (county).
Short | District name (aka county)
Comments | District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead.
Control | 0..0
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Alternate Names | County
Example | General: Madison
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
32. Address.state
Definition | Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes).
Short | Sub-unit of country (abbreviations ok)
Control | 0..0
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Alternate Names | Province, Territory
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
34. Address.postalCode
Definition | A postal code designating a region defined by the postal service.
Short | Postal code for area
Control | 0..1
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Alternate Names | Zip
Example | General: 9132
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
36. Address.country
Definition | Country - a nation as commonly understood or generally accepted.
Short | Country (e.g. can be ISO 3166 2 or 3 letter code)
Comments | ISO 3166 3 letter codes can be used in place of a human readable country name.
Control | 0..1
Binding | The codes SHALL be taken from ISO 3166-1:2013 (2-alpha country code) (required to `https://nzhts.digital.health.nz/fhir/ValueSet/country-code` )
Type | string
Is Modifier | false
Primitive Value | This primitive element may be present, or absent, or replaced by an extension
Summary | true
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)
38. Address.period
Definition | Time period when address was/is in use.
Short | Time period when address was/is in use
Control | 0..0
Type | Period
Is Modifier | false
Summary | true
Requirements | Allows addresses to be placed in historical context.
Example | General: { "start" : "2010-03-23", "end" : "2010-07-01" }
Invariants | ele-1: All FHIR elements must have a @value or children (`hasValue() or (children().count() > id.count())`)