A valid request URL is required to generate request examples{
"id": "user-julie",
"name": "Julie Ferrand",
"email": "julie.ferrand@rivoli-retail.fr",
"role": "owner",
"store": "Boutique Bastille",
"active": true
}{
"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
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Replace a team member's directory record
REPLACES a staff account’s directory record wholesale. This is NOT a patch, despite the shape: name, email, role and store are all REQUIRED, and whatever you send becomes the record. Always getTeamMember first and send the current values back for the fields you are not changing — reconstructing plausible ones silently rewrites a colleague’s row. The sharpest edge is active: it DEFAULTS TO TRUE, so omitting it RE-ENABLES a deactivated account and hands sign-in back to somebody who was deliberately locked out. Send it explicitly, every time. The path memberId is authoritative — an id in the body is discarded, so you cannot address one member and mutate another. Setting active: false is also the ONLY deactivation path: there is no delete endpoint, and this never removes a row. 404s for an unknown member (it never implicitly creates one).
A valid request URL is required to generate request examples{
"id": "user-julie",
"name": "Julie Ferrand",
"email": "julie.ferrand@rivoli-retail.fr",
"role": "owner",
"store": "Boutique Bastille",
"active": true
}{
"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
}
}{
"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.
Path Parameters
The team-member id to act on, e.g. user-julie.
1Body
Response
The replaced record: the path id plus exactly the fields you sent.
The replaced record: the path id plus exactly the fields you sent.
11^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$11
