Location access points validation rules for coordinates, navigation, precision, and containment requirements
Access Points
AccessPointsCoordinatesLatitudeHasLeadingSpace
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that latitude does not include any leading ("white") space |
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
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that longitude does not include any leading ("white") space |
AccessPointsCoordinatesMustBePresent
| Preconditions |
|---|
accessPoints are present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that coordinates are present | Link |
AccessPointsListMustNotContainDuplicates
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that each entry in the accessPoints list is distinct |
Example Validation Report
{
"code": "VALIDATION__AccessPointsListMustNotContainDuplicates",
"severity": "VIOLATION",
"message": "access points list must not contain duplicates"
}
AccessPointsListMustNotIncludeNulls
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that a list does not include null |
AccessPointsMustNotBeEmptyArray
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that accessPoints is not an empty array |
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 |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that accessPoints coordinates are not contained by China |
Example Validation Report
{
"code": "VALIDATION__AccessPointsCountryNotAllowedForOrgType",
"severity": "VIOLATION",
"message": "Country support for your organization type is not available"
}
AccessPointsNotSupportedInCountry
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that access points coordinates are contained by a supported country | Link#unsupported-countries) |
Example Validation Report
{
"code": "VALIDATION__AccessPointsNotSupportedInCountry",
"severity": "VIOLATION",
"message": "Country support for 'accessPoints' not available"
}
CountOfValuesInAccessPointsListExceedsThreshold
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that the count of accessPoints values in a list does not exceed twenty (20) |
Change Detection
SuspiciousRemovalOfAccessPoints
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that accessPoints are present when previously submitted |
Containment
AccessPointsCoordinatesMustBeContainedByDerivedAdminArea
| Preconditions |
|---|
displayPoint is present |
mainAddress is not present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that displayPoint coordinates, when reverse geocoded, returns an Administrative Area whose geometry contains accessPoints coordinates |
AccessPointsCoordinatesNotContainedByDerivedLocality
| Preconditions |
|---|
displayPoint is present |
mainAddress is not present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that displayPoint coordinates, when reverse geocoded, returns a Locality whose geometry contains accessPoints coordinates |
AccessPointsCoordinatesNotContainedByDerivedPostCode
| Preconditions |
|---|
displayPoint is present |
mainAddress is not present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
| Validate that displayPoint coordinates, when reverse geocoded, returns a Post Code whose geometry contains accessPoints coordinates |
AccessPointsCoordinatesNotContainedByExpectedAdminArea
| Preconditions |
|---|
structuredAddress is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that coordinates, when reverse geocoded, returns an Administrative Area matching the value in administrativeArea |
AccessPointsCoordinatesNotContainedByExpectedLocality
| Preconditions |
|---|
structuredAddress is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that coordinates, when reverse geocoded, returns a Locality matching the value in locality |
AccessPointsCoordinatesNotContainedByExpectedPostCode
| Preconditions |
|---|
structuredAddress is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that coordinates, when reverse geocoded, returns a Post Code matching the value in postCode |
AccessPointsForDrivingContainedByWaterFeature
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that DRIVING Access Points coordinates are not contained by a mapped water feature |
AccessPointsForWalkingContainedByWaterFeature
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that WALKING Access Points coordinates are not contained by a mapped water feature |
AccessPointsForDrivingContainedByWaterFeature
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that DRIVING Access Points coordinates are not contained by a mapped water feature |
AccessPointsMustBeWithinBufferedDistanceOfGeometry
| Preconditions |
|---|
geometry is present and geometry type is Polygon or MultiPolygon |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that Access Points coordinates are within a buffered distance of geometry (1 meter) |
Latitude & Longitude
AccessPointsCoordinatesLatitudeMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that latitude is present | Link |
AccessPointsCoordinatesLongitudeMustBePresent
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that longitude is present | Link |
AccessPointsCoordinatesMustBeWithinValidRange
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that values of latitude and longitude are within their expected range | Link |
AccessPointsLatitudeAndLongitudeMatch
| Preconditions |
|---|
latitude is not 0 |
longitude is not 0 |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that latitude AND longitude do not match |
AccessPointsLatitudeMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that latitude is not an empty string |
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
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that longitude is not an empty string |
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
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validates that values of latitude and longitude are not both zero | Link |
PointMustBeContainedByCountry
| Preconditions |
|---|
fullAddress or structuredAddress (or both) is present and successfully geocoded |
accessPoints is present |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that coordinates, when reverse geocoded, intersect the same country provided in a structuredAddress or fullAddress |
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.
Navigation
AccessPointsNavigationMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that navigation is not an empty string |
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 |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that navigation is present | Link |
AccessPointsNavigationMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that navigation value is valid | Link |
Precision
AccessPointsCoordinateLatitudeHasExcessivePrecision
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that latitude value does not possess precision greater than 7 decimal places | Link |
Example Validation Report
{
"code": "VALIDATION__AccessPointsCoordinateLatitudeHasExcessivePrecision",
"severity": "WARNING",
"message": "Latitude has excessive precision and will be truncated and rounded"
}
AccessPointsCoordinateLongitudeHasExcessivePrecision
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that longitude value does not possess precision greater than 7 decimal places | Link |
Example Validation Report
{
"code": "VALIDATION__AccessPointsCoordinateLongitudeHasExcessivePrecision",
"severity": "WARNING",
"message": "Longitude has excessive precision and will be truncated and rounded"
}
AccessPointsCoordinateLatitudeMustBeSufficientlyPrecise
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that latitude value possesses minimum precision (5 decimal places) | Link |
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
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that longitude value possesses minimum precision (5 decimal places) | Link |
AccessPointsCoordinateLatitudeShouldBeMorePrecise
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that latitude value possesses precision that is greater than the minimum required degree of precision (greater than 5 decimal places, 6 is optimal) | Link |
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
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that longitude value possesses precision that is greater than the minimum required degree of precision (greater than 5 decimal places, 6 is optimal) | Link |
AccessPointsCoordinateLatitudeMustBeWithinValidRange
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that latitude is within the expected range |
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
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that longitude is within the expected range |
Source
AccessPointsSourceMustBeValid
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that source value is valid | Link |
AccessPointsSourceMustNotBeEmpty
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that source is not an empty string |
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 |
| Definition | Severity | API | Sample | Mode |
|---|---|---|---|---|
Validate that source is present | Link |