A valid request URL is required to generate request examples{
"id": "user-julie",
"name": "Julie Ferrand",
"email": "julie.ferrand@rivoli-retail.fr",
"role": "manager",
"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
}
}{
"error": {
"code": "VALIDATION_FAILED",
"message": "<string>",
"statusCode": 123
}
}Re-onboard a team member (restore sign-in)
RESTORES an offboarded staff account by flipping its active flag back to true, which RE-ENABLES sign-in and makes the member assignable again. It is the exact inverse of deactivateTeamMember, and the reason offboarding is safe to prefer over deletion: an offboard made in error costs a click rather than a lost history. Like the deactivate route it takes no body — the path memberId is the whole input. It restores ONLY assignability and sign-in: it re-grants no role, re-opens no register session and revives no document. Role grants survive an offboard untouched (they live in role_assignments, not the directory row), so a reactivated member returns with the grants they had and nothing more. This GRANTS system access, so surface the request to a human and never restore an account autonomously. Idempotent: reactivating an already-active account is a no-op that returns it unchanged. 404s for an unknown member.
A valid request URL is required to generate request examples{
"id": "user-julie",
"name": "Julie Ferrand",
"email": "julie.ferrand@rivoli-retail.fr",
"role": "manager",
"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
}
}{
"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.
1Response
The restored account, active again with active: true.
The restored account, active again with active: true.
11^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$11
