Skip to main content

Set loyalty level

Setting the loyalty level of a user

Contents

Overview

* In the case of a JSON payload (application/json) all parameters are top-level elements.

This endpoint allows changing the loyalty level of a user in the Spaaza system. The new loyalty level must be associated with the same chain as the user's MyPrice app. The change can be performed either by an admin user with write access or through privileged authentication.

Version-specific information

The following version-specific changes apply to this endpoint. See the versioning page for more details.

VersionChange details
N/AN/A

Permissions and Authentication

This API call requires one of the following authentication methods:

  • Admin authentication: the performing user needs to be logged in and have write access to the chain to which the user is connected.
  • Privileged authentication: the use of privileged authentication is permitted for this endpoint. For privileged authentication, the X-Spaaza-MyPrice-App-Hostname header must be passed in the request.

Headers

The following headers can/must be passed to the API call:

ParameterDescription
X-Spaaza-MyPrice-App-Hostname(mandatory when using privileged authentication) The hostname of the app which the user is associated with.
X-Spaaza-Request(optional) Can be used to record the signup channel.

HTTP Parameters

The following HTTP parameters can be passed to the API:

ParameterDescription
user_id(integer, mandatory unless member_number is supplied) The ID of the user (programme member) in the Spaaza system. Must be a valid integer. If member_number is supplied, this parameter should not be used.
member_number(string, mandatory unless user_id is supplied) The member number in the programme of the user whose loyalty level is being changed. If user_id is supplied, this parameter is not needed as user_id takes precedence.
loyalty_level_id(integer, mandatory) The ID of the loyalty level to assign to the user. Must be a valid integer and must reference a loyalty level that exists and is associated with the same chain as the user's MyPrice app.

Sample request

{
"user_id": 4232324,
"loyalty_level_id": 123
}

Or using member number:

{
"member_number": "20000000001",
"loyalty_level_id": 123
}

Sample response

Returns an OK code and information about the updated loyalty level:

{
"result": {
"code": 1,
"status": "ok"
},
"results": {
"user_loyalty_level_progress": {
"loyalty_level": {
"id": 123,
"campaign_id": 123123,
"name": "VIP",
"description": "VIP level in the Loyalty Programme",
"automated_level_logic": 0
},
"created_datetime": "2025-01-15T10:30:00+00:00",
"notes": "Manual level change"
},
"result_type": "alter-user-loyalty-level"
}
}

Possible error responses

The following represents a list of possible error responses for the alter-user-loyalty-level endpoint:

CodeName and DescriptionHTTP Status Code
52missing_necessary_parameters
The loyalty_level_id parameter is missing
400
154user_id_invalid
The supplied user_id is not a valid integer
400
230entity_not_found
The specified loyalty level does not exist
400
270user_not_found
The specified user could not be found
404
405entity_mismatch
The loyalty level is not associated with the user's chain
400
423parameter_supplied_not_integer
The loyalty_level_id parameter is not a valid integer
400