Skip to main content

Location access points validation rules for coordinates, navigation, precision, and containment requirements

Access Points

AccessPointsCoordinatesLatitudeHasLeadingSpace

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

AccessPointsCoordinatesLongitudeHasLeadingSpace

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

AccessPointsCoordinatesMustBePresent

Preconditions
accessPoints are present
DefinitionSeverityAPISampleMode
Validate that coordinates are present
VIOLATION
POST_AND_PUT
Link
S

AccessPointsListMustNotContainDuplicates

DefinitionSeverityAPISampleMode
Validate that each entry in the accessPoints list is distinct
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__AccessPointsListMustNotContainDuplicates",
"severity": "VIOLATION",
"message": "access points list must not contain duplicates"
}

AccessPointsListMustNotIncludeNulls

DefinitionSeverityAPISampleMode
Validate that a list does not include null
VIOLATION
POST_AND_PUT
S

AccessPointsMustNotBeEmptyArray

DefinitionSeverityAPISampleMode
Validate that accessPoints is not an empty array
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__AccessPointsMustNotBeEmptyArray",
"message": "'{{field}}' must be omitted or contain at least one element; empty arrays are not allowed.",
"severity": "VIOLATION",
"context": {
"field": "accessPoints"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.accessPoints",
"value": "[]"
}
],
"createdDate": "2026-03-03T13:58:43.946Z"
}
}

AccessPointsCountryNotAllowedForOrgType

Preconditions
orgId resolves to organization that is location owner
DefinitionSeverityAPISampleMode
Validate that accessPoints coordinates are not contained by China
VIOLATION
POST_AND_PUT
A
Example Validation Report
{
"code": "VALIDATION__AccessPointsCountryNotAllowedForOrgType",
"severity": "VIOLATION",
"message": "Country support for your organization type is not available"
}

AccessPointsNotSupportedInCountry

DefinitionSeverityAPISampleMode
Validate that access points coordinates are contained by a supported country
VIOLATION
POST_AND_PUT
Link#unsupported-countries)
A
Example Validation Report
{
"code": "VALIDATION__AccessPointsNotSupportedInCountry",
"severity": "VIOLATION",
"message": "Country support for 'accessPoints' not available"
}

CountOfValuesInAccessPointsListExceedsThreshold

DefinitionSeverityAPISampleMode
Validate that the count of accessPoints values in a list does not exceed twenty (20)
VIOLATION
POST_AND_PUT
S

Change Detection

SuspiciousRemovalOfAccessPoints

DefinitionSeverityAPISampleMode
Validate that accessPoints are present when previously submitted
WARNING
PUT
S

Containment

AccessPointsCoordinatesMustBeContainedByDerivedAdminArea

Preconditions
displayPoint is present
mainAddress is not present
DefinitionSeverityAPISampleMode
Validate that displayPoint coordinates, when reverse geocoded, returns an Administrative Area whose geometry contains accessPoints coordinates
VIOLATION
POST_AND_PUT
A

AccessPointsCoordinatesNotContainedByDerivedLocality

Preconditions
displayPoint is present
mainAddress is not present
DefinitionSeverityAPISampleMode
Validate that displayPoint coordinates, when reverse geocoded, returns a Locality whose geometry contains accessPoints coordinates
WARNING
POST_AND_PUT
A

AccessPointsCoordinatesNotContainedByDerivedPostCode

Preconditions
displayPoint is present
mainAddress is not present
DefinitionSeverityAPISampleMode
Validate that displayPoint coordinates, when reverse geocoded, returns a Post Code whose geometry contains accessPoints coordinates
WARNING
POST_AND_PUT
A

AccessPointsCoordinatesNotContainedByExpectedAdminArea

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

AccessPointsCoordinatesNotContainedByExpectedLocality

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

AccessPointsCoordinatesNotContainedByExpectedPostCode

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

AccessPointsForDrivingContainedByWaterFeature

DefinitionSeverityAPISampleMode
Validate that DRIVING Access Points coordinates are not contained by a mapped water feature
INFO
POST_AND_PUT
A

AccessPointsForWalkingContainedByWaterFeature

DefinitionSeverityAPISampleMode
Validate that WALKING Access Points coordinates are not contained by a mapped water feature
INFO
POST_AND_PUT
A

AccessPointsForDrivingContainedByWaterFeature

DefinitionSeverityAPISampleMode
Validate that DRIVING Access Points coordinates are not contained by a mapped water feature
INFO
POST_AND_PUT
A

AccessPointsMustBeWithinBufferedDistanceOfGeometry

Preconditions
geometry is present and geometry type is Polygon or MultiPolygon
DefinitionSeverityAPISampleMode
Validate that Access Points coordinates are within a buffered distance of geometry (1 meter)
VIOLATION
POST_AND_PUT
S

Latitude & Longitude

AccessPointsCoordinatesLatitudeMustBePresent

DefinitionSeverityAPISampleMode
Validate that latitude is present
VIOLATION
POST_AND_PUT
Link
S

AccessPointsCoordinatesLongitudeMustBePresent

DefinitionSeverityAPISampleMode
Validate that longitude is present
VIOLATION
POST_AND_PUT
Link
S

AccessPointsCoordinatesMustBeWithinValidRange

DefinitionSeverityAPISampleMode
Validate that values of latitude and longitude are within their expected range
VIOLATION
POST_AND_PUT
Link
S

AccessPointsLatitudeAndLongitudeMatch

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

AccessPointsLatitudeMustNotBeEmpty

DefinitionSeverityAPISampleMode
Validate that latitude is not an empty string
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__AccessPointsLatitudeMustNotBeEmpty",
"severity": "VIOLATION",
"message": "'latitude' must not be empty string",
"details": {
"createdDate": "2026-02-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.accessPoints[0].coordinates.latitude",
"value": " "
}
],
"compared": [],
"expected": []
}
}

AccessPointsLongitudeMustNotBeEmpty

DefinitionSeverityAPISampleMode
Validate that longitude is not an empty string
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__AccessPointsLongitudeMustNotBeEmpty",
"severity": "VIOLATION",
"message": "'longitude' must not be empty string",
"details": {
"createdDate": "2026-02-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.accessPoints[0].coordinates.longitude",
"value": " "
}
],
"compared": [],
"expected": []
}
}

AccessPointsLatLongMustNotBeZero

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

PointMustBeContainedByCountry

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

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.

AccessPointsNavigationMustNotBeEmpty

DefinitionSeverityAPISampleMode
Validate that navigation is not an empty string
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__AccessPointsNavigationMustNotBeEmpty",
"severity": "VIOLATION",
"message": "'navigation' must not be empty string",
"details": {
"createdDate": "2026-02-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.accessPoints[0].navigation",
"value": " "
}
],
"compared": [],
"expected": []
}
}

AccessPointsNavigationMustBePresent

Preconditions
accessPoints are present
DefinitionSeverityAPISampleMode
Validate that navigation is present
VIOLATION
POST_AND_PUT
Link
S

AccessPointsNavigationMustBeValid

DefinitionSeverityAPISampleMode
Validate that navigation value is valid
VIOLATION
POST_AND_PUT
Link
S

Precision

AccessPointsCoordinateLatitudeHasExcessivePrecision

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__AccessPointsCoordinateLatitudeHasExcessivePrecision",
"severity": "WARNING",
"message": "Latitude has excessive precision and will be truncated and rounded"
}

AccessPointsCoordinateLongitudeHasExcessivePrecision

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__AccessPointsCoordinateLongitudeHasExcessivePrecision",
"severity": "WARNING",
"message": "Longitude has excessive precision and will be truncated and rounded"
}

AccessPointsCoordinateLatitudeMustBeSufficientlyPrecise

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

AccessPointsCoordinateLongitudeMustBeSufficientlyPrecise

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

AccessPointsCoordinateLatitudeShouldBeMorePrecise

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__AccessPointsCoordinateLatitudeShouldBeMorePrecise",
"message": "'{{latitude}}' precision should be more precise. 6 decimal places is optimal",
"severity": "WARNING",
"context": {
"latitude": "43.84234"
},
"details": {
"compared": [],
"expected": [],
"submitted": [
{
"field": "$.locationDetails.accessPoints.coordinates.latitude",
"value": "43.84234"
}
],
"createdDate": "2026-06-05T19:39:14.602Z"
}
}

AccessPointsCoordinateLongitudeShouldBeMorePrecise

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

AccessPointsCoordinateLatitudeMustBeWithinValidRange

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

AccessPointsCoordinateLongitudeMustBeWithinValidRange

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

Source

AccessPointsSourceMustBeValid

DefinitionSeverityAPISampleMode
Validate that source value is valid
VIOLATION
POST_AND_PUT
Link
S

AccessPointsSourceMustNotBeEmpty

DefinitionSeverityAPISampleMode
Validate that source is not an empty string
VIOLATION
POST_AND_PUT
S
Example Validation Report
{
"code": "VALIDATION__AccessPointsSourceMustNotBeEmpty",
"severity": "VIOLATION",
"message": "'source' must not be empty string",
"details": {
"createdDate": "2026-02-10T11:36:02.00Z",
"submitted": [
{
"field": "$.locationDetails.accessPoints[0].source",
"value": " "
}
],
"compared": [],
"expected": []
}
}

AccessPointsSourceMustBePresent

Preconditions
accessPoints are present
DefinitionSeverityAPISampleMode
Validate that source is present
VIOLATION
POST_AND_PUT
Link
S