A valid request URL is required to generate request examples{
"items": [
{
"id": "reg-idf",
"name": "Île-de-France",
"code": "IDF",
"storeCount": 3,
"active": true
}
],
"total": 13,
"page": 1,
"pageSize": 20,
"pageCount": 1
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}List the network's regions
Returns one page of the regions the store network is grouped into — the coarsest level of the network hierarchy (region → store → register). Reach for it to answer ‘where does this network operate’ or to resolve a region a user named in prose before drilling into stores. JOINING TO STORES: a store does NOT carry a region id — it carries a free-text region LABEL, matched by exact string equality with no normalisation. That label is usually this region’s name (e.g. Île-de-France) but sometimes its code (the seeded Provence-Alpes-Côte d’Azur stores carry PACA). So pass name as the store listing’s region filter, and if that returns zero rows RETRY with code before concluding the region has no stores. storeCount is a stored counter on the region record, not a live count, so treat it as indicative — but a non-zero storeCount against an empty store listing is exactly the signal that you filtered on the wrong spelling. Filter with active ("true"/"false") and/or minStoreCount (inclusive lower bound); sort by name or code; page with page/pageSize (max 100) until page reaches pageCount.
A valid request URL is required to generate request examples{
"items": [
{
"id": "reg-idf",
"name": "Île-de-France",
"code": "IDF",
"storeCount": 3,
"active": true
}
],
"total": 13,
"page": 1,
"pageSize": 20,
"pageCount": 1
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123,
"fieldErrors": [
{
"field": "<string>",
"message": "<string>"
}
]
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Authorizations
Authorization: Bearer <token>. Accepts EITHER a Keycloak access token (scopes-in-token) OR an opaque POS session token; both resolve to the same pos.* scope vocabulary the route guards enforce.
Query Parameters
1-based page index to return. Defaults to 1.
1 <= x <= 9007199254740991Rows per page, 1..100. Defaults to 20.
1 <= x <= 100true, false 0 <= x <= 9007199254740991name, code asc, desc Response
A page of regions with the pagination totals.
A page of regions with the pagination totals.
The rows on this page, in the query's sort order.
Show child attributes
Show child attributes
Total rows matching the filter across ALL pages, not just this one.
0 <= x <= 9007199254740991The 1-based page number served.
0 < x <= 9007199254740991Rows requested per page.
0 < x <= 9007199254740991Total number of pages; stop walking when page reaches it.
0 <= x <= 9007199254740991
