Update a customer profile
Patches an existing customer’s identity, contact and marketing-consent fields. PATCH semantics despite the verb: only the keys you send change, and an explicit null on a contact field CLEARS it (omitting the key leaves it untouched). The path id is authoritative — a body id is discarded. This never touches the loyalty balance: use accrueLoyaltyPoints / redeemLoyaltyPoints for that. 404s for an unknown customer.
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
1Body
1^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$111Response
The updated customer record. Note the phone key is ABSENT: the request example's phone: null cleared the stored number.
The updated customer record. Note the phone key is ABSENT: the request example's phone: null cleared the stored number.
1110 <= x <= 9007199254740991x >= 00 <= x <= 9007199254740991^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
