Skip to main content

Location display point validation rules for coordinates, precision, containment, and source requirements

Change Detection​

SuspiciousRemovalOfDisplayPoint​

DefinitionSeverityAPISampleMode
Validate that displayPoint is present when previously submitted
WARNING
PUT
S

Containment​

DisplayPointContainedByWaterFeature​

DefinitionSeverityAPISampleMode
Validate that coordinates are not contained by a mapped water feature
WARNING
POST_AND_PUT
A

DisplayPointCoordinatesNotContainedByExpectedAdminArea​

Preconditions
structuredAddress is present
DefinitionSeverityAPISampleMode
Validate that coordinates, when reverse geocoded, returns an Administrative Area matching the value in administrativeArea
WARNING
POST_AND_PUT
A

DisplayPointCoordinatesNotContainedByExpectedLocality​

Preconditions
structuredAddress is present
DefinitionSeverityAPISampleMode
Validate that coordinates, when reverse geocoded, returns a Locality matching the value in locality
WARNING
POST_AND_PUT
A

DisplayPointCoordinatesNotContainedByExpectedPostCode​

Preconditions
structuredAddress and postCode are present
DefinitionSeverityAPISampleMode
Validate that coordinates, when reverse geocoded, returns a Post Code matching the value in postCode
WARNING
POST_AND_PUT
A

DisplayPointOnWaterMustHaveMainAddress​

Preconditions
displayPoint coordinates are contained by a mapped water feature
DefinitionSeverityAPISampleMode
Validate that mainAddress is present
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__DisplayPointOnWaterMustHaveMainAddress",
"message": "Location with `displayPoint` contained by water body must have `mainAddress`",
"severity": "VIOLATION",
"details": {
"submitted": [
{
"field": "$.locationDetails.displayPoint.coordinates",
"value": {
"latitude": "37.7555156",
"longitude": "-140.3475952"
}
}
],
"createdDate": "2026-12-05T19:39:14.602Z",
"compared": [],
"expected": []
}
}

AddressGeocodingMustBeSuccessfulWhenDisplayPointIsOnWater​

Preconditions
displayPoint coordinates are contained by a mapped water feature
fullAddress or structuredAddress is present. (Or, both)
DefinitionSeverityAPISampleMode
Validate that fullAddress and structuredAddress geocoding is successful
VIOLATION
POST_AND_PUT
A

When submitted resource has both structuredAddress and fullAddress, and neither can be geocoded successfully.

Example Validation Report
{
"code": "VALIDATION__AddressGeocodingMustBeSuccessfulWhenDisplayPointIsOnWater",
"message": "Geocoding of location's address must be successful when location's `displayPoint` is contained by water body",
"severity": "VIOLATION",
"details": {
"submitted": [
{
"field": "$.locationDetails.displayPoint.coordinates",
"value": {
"latitude": "37.7555156",
"longitude": "-140.3475952"
}
},
{
"field": "$.locationDetails.mainAddress.structuredAddress",
"value": {
"thoroughfare": "Street Name",
"subThoroughfare": "000",
"fullThoroughfare": "000 Street Name",
"locality": "Locality",
"administrativeArea": "NY",
"postCode": "72460",
"countryCode": "US"
}
},
{
"field": "$.locationDetails.mainAddress.fullAddress",
"value": "000 Street Name, Locality, NY, 72460, US"
}
],
"createdDate": "2026-12-05T19:39:14.602Z",
"compared": [],
"expected": []
}
}

When submitted resource has only fullAddress which cannot be geocoded successfully.

Example Validation Report
{
"code": "VALIDATION__AddressGeocodingMustBeSuccessfulWhenDisplayPointIsOnWater",
"message": "Geocoding of location's address must be successful when location's `displayPoint` is contained by water body",
"severity": "VIOLATION",
"details": {
"submitted": [
{
"field": "$.locationDetails.displayPoint.coordinates",
"value": {
"latitude": "37.7555156",
"longitude": "-140.3475952"
}
},
{
"field": "$.locationDetails.mainAddress.fullAddress",
"value": "000 Street Name, Locality, NY, 72460, US"
}
],
"createdDate": "2026-12-05T19:39:14.602Z",
"compared": [],
"expected": []
}
}

DisplayPointCountryNotAllowedForOrgType​

Preconditions
orgId resolves to organization that is location owner
DefinitionSeverityAPISampleMode
Validate that displayPoint coordinates are not contained by China
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__DisplayPointCountryNotAllowedForOrgType",
"severity": "VIOLATION",
"message": "Country support for your organization type is not available",
"details": {
"createdDate": "2026-12-05T19:39:14.602Z",
"submitted": [],
"compared": [],
"expected": []
}
}

DisplayPointMustBeContainedByPolygonalGeometry​

Preconditions
geometry is present
geometry is decoded as polygon or multi-polygon geometry type
DefinitionSeverityAPISampleMode
Validate that displayPoint coordinates are contained by geometry data
VIOLATION
POST_AND_PUT
S

PointMustBeContainedByBrandCountryCodes​

Preconditions
brandId is present
displayPoint is present
mainAddress is not present
DefinitionSeverityAPISampleMode
Validate that coordinates are contained by the brand's country
VIOLATION
POST_AND_PUT
A

PointMustBeContainedByCountry​

Preconditions
fullAddress or structuredAddress (either one) is present
DefinitionSeverityAPISampleMode
Validate that coordinates, when reverse geocoded, intersect the same country provided in a structuredAddress or fullAddress
VIOLATION
POST_AND_PUT
A

This is a single combined rule that checks both displayPoint.coordinates and accessPoints.coordinates against the country identified in the provided address (structuredAddress or fullAddress) — see Access Points for the accessPoints half of the same check. Neither field's presence is a precondition; an absent field is skipped rather than failed, as is an address that cannot be geocoded to a country.

Flow Chart​

Following chart describes the system's behavior as it relates to this validation:

1 When both fullAddress and structuredAddress are present, only the structuredAddress country is used for comparison.

Display Point​

DisplayPointCoordinatesLatitudeHasLeadingSpace​

DefinitionSeverityAPISampleMode
Validate that latitude does not include any leading ("white") space
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__DisplayPointCoordinatesLatitudeHasLeadingSpace",
"message": "'{{latitude}}' must not include any leading spaces",
"severity": "VIOLATION",
"context": {
"latitude": " 43.84"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.displayPoint.coordinates.latitude",
"value": " 43.84"
}
],
"createdDate": "2026-12-05T19:39:14.602Z"
}
}

DisplayPointCoordinatesLongitudeHasLeadingSpace​

DefinitionSeverityAPISampleMode
Validate that longitude does not include any leading ("white") space
VIOLATION
POST_AND_PUT
S

DisplayPointCoordinatesMustBePresent​

Preconditions
displayPoint is present
DefinitionSeverityAPISampleMode
Validate that coordinates are present
VIOLATION
POST_AND_PUT
Link
S

DisplayPointNotPresent​

DefinitionSeverityAPISampleMode
Validate that displayPoint is present
INFO
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__DisplayPointNotPresent",
"severity": "INFO",
"message": "Location has no '{{displayPoint}}'",
"context": {
"displayPoint": "displayPoint"
},
"details": {
"createdDate": "2026-12-05T19:39:14.602Z",
"submitted": [],
"compared": [],
"expected": []
}
}

DisplayPointNotSupportedInCountry​

DefinitionSeverityAPISampleMode
Validate that display point coordinates are contained by a supported country
VIOLATION
POST_AND_PUT
Link
A
Example Validation Report
{
"code": "VALIDATION__DisplayPointNotSupportedInCountry",
"severity": "VIOLATION",
"message": "Country support for 'displayPoint' not available",
"details": {
"createdDate": "2026-12-05T19:39:14.602Z",
"submitted": [],
"compared": [],
"expected": []
}
}

Latitude & Longitude​

DisplayPointCoordinatesLatitudeMustBePresent​

DefinitionSeverityAPISampleMode
Validate that latitude is present
VIOLATION
POST_AND_PUT
Link
S

DisplayPointCoordinatesLatitudeMustNotBeEmpty​

DefinitionSeverityAPISampleMode
Validate that latitude is not an empty string
VIOLATION
POST_AND_PUT
S

DisplayPointCoordinatesLongitudeMustBePresent​

DefinitionSeverityAPISampleMode
Validate that longitude is present
VIOLATION
POST_AND_PUT
Link
S

DisplayPointCoordinatesLongitudeMustNotBeEmpty​

DefinitionSeverityAPISampleMode
Validate that longitude is not an empty string
VIOLATION
POST_AND_PUT
S

DisplayPointLatitudeAndLongitudeMatch​

Preconditions
latitude is not 0
longitude is not 0
DefinitionSeverityAPISampleMode
Validate that latitude AND longitude do not match
WARNING
POST_AND_PUT
S

DisplayPointMatchesAccessPoints​

DefinitionSeverityAPISampleMode
Validate that Display Point coordinates do not match Access Points coordinates
INFO
POST_AND_PUT
A

DisplayPointLatLongMustNotBeZero​

DefinitionSeverityAPISampleMode
Validates that values of latitude and longitude are not both zero
VIOLATION
POST_AND_PUT
S

Precision​

DisplayPointCoordinateLatitudeHasExcessivePrecision​

DefinitionSeverityAPISampleMode
Validate that latitude value does not possess precision greater than 7 decimal places
WARNING
POST_AND_PUT
Link
S
Example Validation Report
{
"code": "VALIDATION__DisplayPointCoordinateLatitudeHasExcessivePrecision",
"severity": "WARNING",
"message": "Latitude has excessive precision and will be truncated and rounded",
"details": {
"createdDate": "2026-12-05T19:39:14.602Z",
"submitted": [],
"compared": [],
"expected": []
}
}

DisplayPointCoordinateLongitudeHasExcessivePrecision​

DefinitionSeverityAPISampleMode
Validate that longitude value does not possess precision greater than 7 decimal places
WARNING
POST_AND_PUT
Link
S
Example Validation Report
{
"code": "VALIDATION__DisplayPointCoordinateLongitudeHasExcessivePrecision",
"severity": "WARNING",
"message": "Longitude has excessive precision and will be truncated and rounded",
"details": {
"createdDate": "2026-12-05T19:39:14.602Z",
"submitted": [],
"compared": [],
"expected": []
}
}

DisplayPointCoordinateLatitudeMustBeSufficientlyPrecise​

DefinitionSeverityAPISampleMode
Validate that latitude value possesses minimum precision (5 decimal places)
VIOLATION
POST_AND_PUT
Link
S
Example Validation Report
{
"code": "VALIDATION__DisplayPointCoordinateLatitudeMustBeSufficientlyPrecise",
"message": "'{{latitude}}' must be sufficiently precise",
"severity": "VIOLATION",
"context": {
"latitude": "43.84"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.displayPoint.coordinates.latitude",
"value": "43.84"
}
],
"createdDate": "2026-06-05T19:39:14.602Z"
}
}

DisplayPointCoordinateLongitudeMustBeSufficientlyPrecise​

DefinitionSeverityAPISampleMode
Validate that longitude value possesses minimum precision (5 decimal places)
VIOLATION
POST_AND_PUT
Link
S

DisplayPointCoordinateLatitudeShouldBeMorePrecise​

DefinitionSeverityAPISampleMode
Validate that latitude value possesses precision that is greater than the minimum required degree of precision (greater than 5 decimal places, 6 is optimal)
WARNING
POST_AND_PUT
Link
S
Example Validation Report
{
"code": "VALIDATION__DisplayPointCoordinateLatitudeShouldBeMorePrecise",
"message": "'{{latitude}}' precision should be more precise. 6 decimal places is optimal",
"severity": "WARNING",
"context": {
"latitude": "43.84234"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.displayPoint.coordinates.latitude",
"value": "43.84234"
}
],
"createdDate": "2026-06-05T19:39:14.602Z"
}
}

DisplayPointCoordinateLongitudeShouldBeMorePrecise​

DefinitionSeverityAPISampleMode
Validate that longitude value possesses precision that is greater than the minimum required degree of precision (greater than 5 decimal places, 6 is optimal)
WARNING
POST_AND_PUT
Link
S

DisplayPointCoordinateLatitudeMustBeWithinValidRange​

DefinitionSeverityAPISampleMode
Validate that latitude is within the expected range
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__DisplayPointCoordinateLatitudeMustBeWithinValidRange",
"message": "'{{latitude}}' value must be within a valid range",
"severity": "VIOLATION",
"context": {
"latitude": "91.358834"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.displayPoint.coordinates.latitude",
"value": "91.358834"
}
],
"createdDate": "2026-06-05T19:39:14.602Z"
}
}

DisplayPointCoordinateLongitudeMustBeWithinValidRange​

DefinitionSeverityAPISampleMode
Validate that longitude is within the expected range
VIOLATION
POST_AND_PUT
S

Source​

DisplayPointSourceMustBeValid​

DefinitionSeverityAPISampleMode
Validate that source value is valid
VIOLATION
POST_AND_PUT
Link
S

DisplayPointSourceMustBePresent​

Preconditions
displayPoint is present
DefinitionSeverityAPISampleMode
Validate that source is present
VIOLATION
POST_AND_PUT
Link
S

DisplayPointSourceMustNotBeEmpty​

DefinitionSeverityAPISampleMode
Validate that source is not an empty string
VIOLATION
POST_AND_PUT
S