A valid request URL is required to generate request examples{
"items": [
{
"id": "user-julie",
"name": "Julie Ferrand",
"email": "julie.ferrand@rivoli-retail.fr",
"role": "manager",
"store": "Boutique Bastille",
"active": true
}
],
"total": 15,
"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 team members
Returns one page of the back-office staff directory: the accounts that can sign into the POS, each with its identity, contact email, primary role label (owner, manager, cashier, viewer, …), the store (or whole network) it is scoped to, and whether it is still active. Reach for this to FIND somebody when you only know their role or store, to answer ‘who works at X’, or to discover a member id before a write; when you already hold the id, call getTeamMember instead. Narrow with role (an EXACT label match, not a search — manager matches, Manager and manag do not) and active (the strings true / false). Order with sortField (name / role) plus sortDirection (asc default); sortDirection alone is IGNORED — the route only builds a sort when sortField is present. Walk the directory with page / pageSize (max 100) until page reaches pageCount. This returns the flat directory PROJECTION, never the underlying RBAC grants: role is a display label, so do not infer from it what the account may actually do — call whoami as that actor for that, or read the operation’s own x-required-permissions.
A valid request URL is required to generate request examples{
"items": [
{
"id": "user-julie",
"name": "Julie Ferrand",
"email": "julie.ferrand@rivoli-retail.fr",
"role": "manager",
"store": "Boutique Bastille",
"active": true
}
],
"total": 15,
"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 <= 100EXACT primary-role label to filter on (e.g. manager) — not a search.
1Filter by sign-in state: true (active) or false (offboarded).
true, false Field to order by: name or role.
name, role Order direction for sortField (default asc); ignored without sortField.
asc, desc Response
A page of team-directory rows with the pagination totals.
A page of team-directory rows 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
