Skip to main content

Location opening hours validation rules for days, times, formats, and operational constraints

Change Detection

SuspiciousRemovalOfOpeningHoursByDay

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

Opening Hours by Day

OpeningHoursByDayListMustNotIncludeNulls

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

OpeningHoursByDayMustNotBeEmptyArray

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

OpeningHoursByDayUpdatedWhenLocationStatusIsTempClosed

Preconditions
locationStatus.status is TEMPORARY_CLOSED
DefinitionSeverityAPISampleMode
Validate that openingHoursByDay match openingHoursByDay in the previous location (etag) version
VIOLATION
PUT
S
Example Validation Report
{
"code": "VALIDATION__OpeningHoursByDayUpdatedWhenLocationStatusIsTempClosed",
"severity": "WARNING",
"message": "Opening hours updated for location that is `TEMPORARY_CLOSED`"
}

OpeningHoursNotPresent

DefinitionSeverityAPISampleMode
Validate that openingHoursByDay (recommended features) are present
WARNING
POST_AND_PUT
Link
S

Day

OpeningHoursDayMustBePresent

Preconditions
openingHoursByDay is present
DefinitionSeverityAPISampleMode
Validate that day is present
VIOLATION
POST_AND_PUT
Link
S

OpeningHoursDayMustNotBeEmpty

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

OpeningHoursDayMustBeValid

DefinitionSeverityAPISampleMode
Validate that day value is valid
VIOLATION
POST_AND_PUT
Link
S

OpeningHoursDayMustBeDistinct

DefinitionSeverityAPISampleMode
Validate that each day value is distinct
VIOLATION
POST_AND_PUT
S

Times

HoursAreWithin06:00To11:00Range

DefinitionSeverityAPISampleMode
Validate that all hours are not within the range of 06:00 and 11:00
WARNING
POST_AND_PUT
S

InsufficientOpeningHoursByDayForCategory

Preconditions
categories is any of: restaurants, food, shopping
DefinitionSeverityAPISampleMode
Validate that at least four (4) days are present
WARNING
POST_AND_PUT
S

MajorityOfHoursNotWithin08:00To20:00Range

DefinitionSeverityAPISampleMode
Validate that the majority of hours fall within the range of 08:00 and 20:00
WARNING
POST_AND_PUT
S

OpeningHoursByDayNestedTimesMustNotBeEmptyArray

note

This validation replaces OpeningHoursByDayTimesListMustNotIncludeNulls. OpeningHoursByDayTimesListMustNotIncludeNulls is deprecated and will be removed in a future release.

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

OpeningHoursByDayTimesListMustNotIncludeNulls

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

OpeningHoursTimesMustBePresent

Preconditions
openingHoursByDay is present
DefinitionSeverityAPISampleMode
Validate that times is present
VIOLATION
POST_AND_PUT
Link
S

OpeningHoursStartTimeMustBePresent

Preconditions
times is present
DefinitionSeverityAPISampleMode
Validate that startTime is present
VIOLATION
POST_AND_PUT
S

OpeningHoursStartTimeMustNotBeEmpty

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

OpeningHoursEndTimeMustBePresent

Preconditions
times is present
DefinitionSeverityAPISampleMode
Validate that endTime is present
VIOLATION
POST_AND_PUT
S

OpeningHoursEndTimeMustNotBeEmpty

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

OpeningHoursStartTimeMustNotMatchEndTime

DefinitionSeverityAPISampleMode
Validate that startTime does not match endTime
VIOLATION
POST_AND_PUT
Link
S

OpeningHoursDaysTimesMustNotMatch

DefinitionSeverityAPISampleMode
Validate that listed times do not match
VIOLATION
POST_AND_PUT
Link
S

OpeningHoursDaysTimesMustNotOverlap

DefinitionSeverityAPISampleMode
Validate that listed times do not overlap
VIOLATION
POST_AND_PUT
Link
S

OpeningHoursStartTimeMustHaveValidFormat

DefinitionSeverityAPISampleMode
Validate that startTime formatting is valid
VIOLATION
POST_AND_PUT
Link
S

OpeningHoursEndTimeMustHaveValidFormat

DefinitionSeverityAPISampleMode
Validate that endTime formatting is valid
VIOLATION
POST_AND_PUT
Link
S

ShouldBeOpenMoreThanTwoHours

DefinitionSeverityAPISampleMode
Validate that listed times during a day total at least two (2) hours
WARNING
POST_AND_PUT
S

ShouldBeOpenMoreThanOneHour

DefinitionSeverityAPISampleMode
Validate that listed times during a day total at least one (1) hour
WARNING
POST_AND_PUT
S

SuspiciousWeekendRestriction

DefinitionSeverityAPISampleMode
Validate that days are not restricted to only SATURDAY or SUNDAY, or just those days
VIOLATION
POST_AND_PUT
Link
S

SuspiciouslyShortClosureBetweenTimesInDay

DefinitionSeverityAPISampleMode
Validate that minutes interval between times in a day is greater than threshold (15 minutes)
VIOLATION
POST_AND_PUT
Link
S

SuspiciousWeekdayTimeVariance

DefinitionSeverityAPISampleMode
Validate that a comparison of times between days Monday through Friday, inclusive, does not render a difference of four (4) hours
WARNING
POST_AND_PUT
Link
S