> For the complete documentation index, see [llms.txt](https://help.openloyalty.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://help.openloyalty.io/api-reference/member.md).

# Member

These endpoints allow you to easily manage members.

## Update member’s custom attribute

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows updating Custom Attributes that are added to a specific Member.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"EditCustomAttributeFormType":{"required":["customAttributes"],"properties":{"customAttributes":{"type":"array","items":{"$ref":"#/components/schemas/UserLabelFormType"}}},"type":"object"},"UserLabelFormType":{"required":["key","value"],"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/custom-attribute":{"put":{"tags":["Member"],"summary":"Update member’s custom attribute","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows updating Custom Attributes that are added to a specific Member.\n","operationId":"customAttributePut","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EditCustomAttributeFormType"}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}},"deprecated":true}}}}
````

## Delete member’s custom attribute

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows deleting Custom Attributes that are added to a specific Member.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"DeleteCustomAttributeFormType":{"required":["customAttributes"],"properties":{"customAttributes":{"type":"array","items":{"$ref":"#/components/schemas/UserLabelFormType"}}},"type":"object"},"UserLabelFormType":{"required":["key","value"],"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/custom-attribute":{"delete":{"tags":["Member"],"summary":"Delete member’s custom attribute","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows deleting Custom Attributes that are added to a specific Member.\n","operationId":"customAttributeDelete","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteCustomAttributeFormType"}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}},"deprecated":true}}}}
````

## Mark coupon as used

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows redeeming a Coupon that is assigned to a specific Member (marks it as used by the Administrator).<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"RedeemCouponFormType":{"required":["couponCode"],"properties":{"couponCode":{"type":"string"}},"type":"object"},"CouponUsageResponse":{"properties":{"code":{"type":"string"},"used":{"type":"boolean"},"customerId":{"type":"string","format":"uuid"}},"type":"object"},"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/reward/redeem":{"post":{"tags":["Member"],"summary":"Mark coupon as used","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows redeeming a Coupon that is assigned to a specific Member (marks it as used by the Administrator).\n","operationId":"rewardPostRedeem","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RedeemCouponFormType"}}}},"responses":{"200":{"description":"Returned when successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouponUsageResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Mark coupon as unused

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows reissuing a Coupon that is assigned to a specific Member (marks it as unused by the Administrator).<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"ReissueCouponFormType":{"required":["couponCode"],"properties":{"couponCode":{"type":"string"}},"type":"object"},"CouponUsageResponse":{"properties":{"code":{"type":"string"},"used":{"type":"boolean"},"customerId":{"type":"string","format":"uuid"}},"type":"object"},"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/reward/reissue":{"post":{"tags":["Member"],"summary":"Mark coupon as unused","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows reissuing a Coupon that is assigned to a specific Member (marks it as unused by the Administrator).\n","operationId":"rewardPostReissue","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReissueCouponFormType"}}}},"responses":{"200":{"description":"Returned when successful","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CouponUsageResponse"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Get member’s details

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method returns details related to a specific Member account.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"Customer":{"properties":{"customerId":{"type":"string","format":"uuid"},"registeredAt":{"type":"string","format":"date-time"},"active":{"type":"boolean"},"channelId":{"type":"string","format":"uuid"},"firstName":{"type":"string"},"lastName":{"type":"string"},"gender":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"birthDate":{"type":"string","format":"date-time"},"lastLevelRecalculation":{"type":"string","format":"date-time"},"address":{"$ref":"#/components/schemas/Address"},"loyaltyCardNumber":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"agreement1":{"type":"boolean"},"agreement2":{"type":"boolean"},"agreement3":{"type":"boolean"},"company":{"$ref":"#/components/schemas/Company"},"transactionsCount":{"type":"integer"},"returnTransactionsCount":{"type":"integer"},"transactionsAmount":{"type":"number","format":"float"},"returnTransactionsAmount":{"type":"number","format":"float"},"transactionsAmountWithoutDeliveryCosts":{"type":"number","format":"float"},"amountExcludedForLevel":{"type":"number","format":"float"},"averageTransactionAmount":{"type":"number","format":"float"},"averageReturnTransactionAmount":{"type":"number","format":"float"},"lastTransactionDate":{"type":"string","format":"date-time"},"firstTransactionDate":{"type":"string","format":"date-time"},"levelAchievementDate":{"type":"string","format":"date-time"},"anonymized":{"type":"boolean"},"referralToken":{"type":"string"},"defaultAccount":{"$ref":"#/components/schemas/Account"}},"type":"object"},"Address":{"properties":{"street":{"type":"string"},"address1":{"type":"string"},"address2":{"type":"string"},"province":{"type":"string"},"city":{"type":"string"},"postal":{"type":"string"},"country":{"type":"string"}},"type":"object"},"Company":{"properties":{"name":{"type":"string"},"nip":{"type":"string"}},"type":"object"},"Account":{"properties":{"accountId":{"type":"string"},"activePoints":{"type":"number","format":"float"},"transferredPoints":{"type":"number","format":"float"},"lockedPoints":{"type":"number","format":"float"},"expiredPoints":{"type":"number","format":"float"},"spentPoints":{"type":"number","format":"float"},"earnedPoints":{"type":"number","format":"float"},"blockedPoints":{"type":"number","format":"float"}},"type":"object"},"CurrentLevel":{"properties":{"levelId":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"translations":{"$ref":"#/components/schemas/ResponseTranslations"}},"type":"object"},"ResponseTranslations":{"properties":{"en":{"properties":{"name":{"type":"string"},"description":{"type":"string"}},"type":"object"},"pl":{"properties":{"name":{"type":"string"},"description":{"type":"string"}},"type":"object"}},"type":"object"},"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}":{"get":{"tags":["Member"],"summary":"Get member’s details","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method returns details related to a specific Member account.\n","operationId":"memberGet","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"responses":{"200":{"description":"Member details","content":{"application/json":{"schema":{"type":"object","allOf":[{"$ref":"#/components/schemas/Customer"},{"properties":{"labels":{"type":"array","items":{"allOf":[{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object","property":null}]}},"currency":{"type":"string"},"storeCode":{"type":"string"},"segments":{"type":"array","items":{"type":"string","format":"uuid"}},"channelIdentifier":{"type":"string"},"currentLevel":{"$ref":"#/components/schemas/CurrentLevel"}},"type":"object","property":null}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Update member’s details

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows updating data related to a specific Member account.\
> If a member changes the primary identification method then this change has to be confirmed.\
> Confirmation works only for email and phone fields.\
> If CustomerEmailWasChanged or CustomerPhoneNumberWasChanged webhook is configured,\
> the code, code number, and member contact data will be transmitted.\
> Field code from the webhook has to be used as token parameter in endpoint. \[confirm change]\(#operation/memberPostConfirmChange)<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"PutMember":{"properties":{"registeredAt":{"type":"string","format":"date-time"},"firstName":{"type":"string"},"lastName":{"type":"string"},"gender":{"type":"string","enum":["male","female","not_disclosed"]},"email":{"type":"string","format":"email"},"phone":{"type":"string"},"loyaltyCardNumber":{"type":"string"},"birthDate":{"type":"string","format":"date-time"},"address":{"$ref":"#/components/schemas/CustomerAddressFormType"},"company":{"properties":{"name":{"type":"string"},"nip":{"type":"string"}},"type":"object"},"labels":{"type":"array","items":{"properties":{"key":{"type":"string","minLength":1},"value":{"type":"string","minLength":1}},"type":"object"}},"agreement1":{"type":"boolean"},"agreement2":{"type":"boolean"},"agreement3":{"type":"boolean"},"levelId":{"description":"Assign member to tier","type":"string","format":"uuid"},"customFieldsData":{"description":"Custom fields data for member","type":"array","items":{"required":["customFieldSchemaId","value"],"properties":{"customFieldSchemaId":{"description":"ID of the custom field schema","type":"string","format":"uuid"},"value":{"description":"Value for the custom field (validated against schema requirements)","type":"string"}},"type":"object"},"nullable":true}},"type":"object"},"CustomerAddressFormType":{"properties":{"street":{"type":"string"},"address1":{"type":"string"},"address2":{"type":"string"},"postal":{"type":"string"},"city":{"type":"string"},"province":{"type":"string"},"country":{"description":"The country code in ISO 3166-1 alpha-2 format. This should be a two-letter uppercase string representing a valid country code. Examples:  - `US` (United States) - `PL` (Poland)","type":"string"}},"type":"object"},"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"MethodNotAllowed":{"description":"Method Not Allowed.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}":{"put":{"tags":["Member"],"summary":"Update member’s details","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows updating data related to a specific Member account.\nIf a member changes the primary identification method then this change has to be confirmed.\nConfirmation works only for email and phone fields.\nIf CustomerEmailWasChanged or CustomerPhoneNumberWasChanged webhook is configured,\nthe code, code number, and member contact data will be transmitted.\nField code from the webhook has to be used as token parameter in endpoint. [confirm change](#operation/memberPostConfirmChange)\n","operationId":"memberPut","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"description":"","content":{"application/json":{"schema":{"properties":{"customer":{"$ref":"#/components/schemas/PutMember"}},"type":"object"}}}},"responses":{"200":{"description":"Return updated member id.","content":{"application/json":{"schema":{"properties":{"customerId":{"description":"Updated member identity","type":"string"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"},"405":{"$ref":"#/components/responses/MethodNotAllowed"}}}}}}
````

## Delete a member

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows removing a specific Member account.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}},"schemas":{"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}}},"paths":{"/api/{storeCode}/member/{member}":{"delete":{"tags":["Member"],"summary":"Delete a member","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows removing a specific Member account.\n","operationId":"memberDeleteMember","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"responses":{"204":{"$ref":"#/components/responses/NoContent"},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Partially update member details

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> Allows partial update of member's custom attributes (labels) and custom fields data.\
> \
> \*\*Two formats are supported:\*\*\
> \
> 1\. \*\*New format (recommended):\*\*\
> &#x20;  \* Labels as associative array (object with key-value pairs)\
> &#x20;  \* \*\*Adding:\*\* To add a new label, provide a new key with its value.\
> &#x20;  \* \*\*Editing:\*\* To update an existing label, provide its key with a new value.\
> &#x20;  \* \*\*Removing:\*\* To remove a label, provide its key and set the value to \`null\`.\
> &#x20;  \* Only provided labels will be updated, other labels remain unchanged.\
> \
> 2\. \*\*Legacy format (deprecated, will be removed soon):\*\*\
> &#x20;  \* Labels as array of objects with \`key\` and \`value\` properties\
> &#x20;  \* \*\*Replaces all existing labels\*\* - use with caution!<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}},"schemas":{"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}}},"paths":{"/api/{storeCode}/member/{member}":{"patch":{"tags":["Member"],"summary":"Partially update member details","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nAllows partial update of member's custom attributes (labels) and custom fields data.\n\n**Two formats are supported:**\n\n1. **New format (recommended):**\n   * Labels as associative array (object with key-value pairs)\n   * **Adding:** To add a new label, provide a new key with its value.\n   * **Editing:** To update an existing label, provide its key with a new value.\n   * **Removing:** To remove a label, provide its key and set the value to `null`.\n   * Only provided labels will be updated, other labels remain unchanged.\n\n2. **Legacy format (deprecated, will be removed soon):**\n   * Labels as array of objects with `key` and `value` properties\n   * **Replaces all existing labels** - use with caution!\n","operationId":"_memberPatch","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer":{"properties":{"labels":{"nullable":true,"oneOf":[{"description":"**New format (recommended)**\nAssociative array where keys are label names and values are label values.\nSet value to `null` to remove a label. Only provided labels will be updated.\n","type":"object","additionalProperties":{"type":"string","nullable":true}},{"description":"**Legacy format (deprecated)** - Will be removed soon.\nArray of label objects. **WARNING: Replaces all existing labels!**\n","type":"array","items":{"required":["key","value"],"properties":{"key":{"description":"Label key/name","type":"string"},"value":{"description":"Label value","type":"string"}},"type":"object"},"deprecated":true}]},"customFieldsData":{"description":"Custom fields data for member. Replaces all existing custom fields.","type":"array","items":{"required":["customFieldSchemaId","value"],"properties":{"customFieldSchemaId":{"description":"ID of the custom field schema","type":"string","format":"uuid"},"value":{"description":"Value for the custom field (validated against schema requirements)","type":"string"}},"type":"object"},"nullable":true}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false}}}},"responses":{"200":{"description":"Member successfully updated","content":{"application/json":{"schema":{"properties":{"customerId":{"description":"Updated member identity","type":"string","format":"uuid"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Find if the member registered

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method returns true or false if a Member with give phone number or email exists.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}},"schemas":{"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}}},"paths":{"/api/{storeCode}/member/check":{"get":{"tags":["Member"],"summary":"Find if the member registered","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method returns true or false if a Member with give phone number or email exists.\n","operationId":"memberGetCheck","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"emailOrPhone","in":"query","description":"This filter is deprecated. Use identifier instead","required":false,"deprecated":true,"allowEmptyValue":true,"schema":{"type":"string","default":null}},{"name":"identifier","in":"query","description":"Using this parameter you can filter by e-mail, by phone, by customer id or loyalty card number","required":false,"allowEmptyValue":true,"schema":{"type":"string","default":null}}],"responses":{"200":{"description":"Returns true or false if given email or phone exists.","content":{"application/json":{"schema":{"properties":{"total":{"type":"integer"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}},"deprecated":true}}}}
````

## Get members list

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method returns list of all Members' accounts exist in the system.  \
> If sorting is not chosen, the rows will be returned in an unspecified order.  \
> To sort a result, use an \`\_orderBy\` parameter in query.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}},"page":{"name":"_page","in":"query","description":"Number of page with results, starts from 1","required":false,"schema":{"type":"integer","default":1,"minimum":1}},"itemsOnPage":{"name":"_itemsOnPage","in":"query","description":"Items on one page","required":false,"schema":{"type":"integer","default":10,"maximum":50,"minimum":1}},"orderBy":{"name":"_orderBy","in":"query","description":"Sorting order. If sorting is not chosen, the rows will be returned in an unspecified order. Sort order: * `asc` - Ascending, from A to Z * `desc` - Descending, from Z to A","required":false,"style":"deepObject","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string","enum":["asc","desc"]}}},"scroll":{"name":"_scroll","in":"query","description":"To use scroll pagination, add the `_scroll` parameter to your query:\n  ?_scroll\n\nTo retrieve the next page, take the `scroll` value from the previous response and use it in the next request:\n  ?_scroll=eyJjcmVhdGVkQXQiOiIyMDI1LTA3LTAxIDEzOjU2OjI5LjAyMTcwMyIsImlkIjoiNTM5N2RiYzYtZGVkMi00MTQ0LTlhMjQtOTRjYmI5YWVjNDBjIn0=\n\nNotes:\n  - Scroll pagination does not support sorting with `_orderBy`.\n  - Items are returned in ascending order by the `createdAt` field by default.\n","required":false,"schema":{"type":"string"}}},"schemas":{"Customer":{"properties":{"customerId":{"type":"string","format":"uuid"},"registeredAt":{"type":"string","format":"date-time"},"active":{"type":"boolean"},"channelId":{"type":"string","format":"uuid"},"firstName":{"type":"string"},"lastName":{"type":"string"},"gender":{"type":"string"},"email":{"type":"string"},"phone":{"type":"string"},"birthDate":{"type":"string","format":"date-time"},"lastLevelRecalculation":{"type":"string","format":"date-time"},"address":{"$ref":"#/components/schemas/Address"},"loyaltyCardNumber":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"agreement1":{"type":"boolean"},"agreement2":{"type":"boolean"},"agreement3":{"type":"boolean"},"company":{"$ref":"#/components/schemas/Company"},"transactionsCount":{"type":"integer"},"returnTransactionsCount":{"type":"integer"},"transactionsAmount":{"type":"number","format":"float"},"returnTransactionsAmount":{"type":"number","format":"float"},"transactionsAmountWithoutDeliveryCosts":{"type":"number","format":"float"},"amountExcludedForLevel":{"type":"number","format":"float"},"averageTransactionAmount":{"type":"number","format":"float"},"averageReturnTransactionAmount":{"type":"number","format":"float"},"lastTransactionDate":{"type":"string","format":"date-time"},"firstTransactionDate":{"type":"string","format":"date-time"},"levelAchievementDate":{"type":"string","format":"date-time"},"anonymized":{"type":"boolean"},"referralToken":{"type":"string"},"defaultAccount":{"$ref":"#/components/schemas/Account"}},"type":"object"},"Address":{"properties":{"street":{"type":"string"},"address1":{"type":"string"},"address2":{"type":"string"},"province":{"type":"string"},"city":{"type":"string"},"postal":{"type":"string"},"country":{"type":"string"}},"type":"object"},"Company":{"properties":{"name":{"type":"string"},"nip":{"type":"string"}},"type":"object"},"Account":{"properties":{"accountId":{"type":"string"},"activePoints":{"type":"number","format":"float"},"transferredPoints":{"type":"number","format":"float"},"lockedPoints":{"type":"number","format":"float"},"expiredPoints":{"type":"number","format":"float"},"spentPoints":{"type":"number","format":"float"},"earnedPoints":{"type":"number","format":"float"},"blockedPoints":{"type":"number","format":"float"}},"type":"object"},"SearchableTotalResponse":{"required":["all","filtered","estimated"],"properties":{"all":{"type":"integer","deprecated":true},"filtered":{"type":"integer","deprecated":true},"estimated":{"description":"Field estimated is used to show that the results are estimated. It might happen when there are more than 5000 results due to performance optimization.","type":"boolean","deprecated":true}},"type":"object","deprecated":true},"ScrollResponse":{"properties":{"next":{"description":"Scroll identifier for pagination","type":"string","nullable":true}},"type":"object","additionalProperties":false},"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member":{"get":{"tags":["Member"],"summary":"Get members list","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method returns list of all Members' accounts exist in the system.  \nIf sorting is not chosen, the rows will be returned in an unspecified order.  \nTo sort a result, use an `_orderBy` parameter in query.\n","operationId":"memberGetList","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"customerId","in":"query","required":false,"schema":{"type":"string"}},{"name":"firstName","in":"query","required":false,"schema":{"type":"string"}},{"name":"lastName","in":"query","required":false,"schema":{"type":"string"}},{"name":"emailOrPhone","in":"query","description":"This filter is deprecated.","required":false,"deprecated":true,"schema":{"type":"string"}},{"name":"identifier","in":"query","description":"This filter is deprecated. To get member by email, phone, loyaltyCardNumnber, use /api/{store}/member/email=user@example.com).","required":false,"deprecated":true,"schema":{"type":"string"}},{"name":"active","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"gender","in":"query","required":false,"schema":{"type":"string"}},{"name":"phone","in":"query","required":false,"schema":{"type":"string"}},{"name":"email","in":"query","required":false,"schema":{"type":"string"}},{"name":"loyaltyCardNumber","in":"query","required":false,"schema":{"type":"string"}},{"name":"createdAt","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"birthDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"agreement1","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"agreement2","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"agreement3","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"updatedAt","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"registeredAt","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"transactionsCount","in":"query","required":false,"schema":{"type":"integer"}},{"name":"transactionsAmount","in":"query","required":false,"schema":{"type":"number"}},{"name":"transactionsAmountWithoutDeliveryCosts","in":"query","required":false,"schema":{"type":"number"}},{"name":"amountExcludedForLevel","in":"query","required":false,"schema":{"type":"number"}},{"name":"averageTransactionAmount","in":"query","required":false,"schema":{"type":"number"}},{"name":"levelAchievementDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"labels","in":"query","description":"Labels using pattern e.g. (key1;value1),(key2;value2),...","required":false,"schema":{"type":"string"}},{"name":"lastTransactionDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"firstTransactionDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"levelId","in":"query","required":false,"schema":{"type":"string"}},{"name":"manuallyAssignedLevelId","in":"query","required":false,"schema":{"type":"string"}},{"name":"referralToken","in":"query","required":false,"schema":{"type":"string"}},{"name":"address:street","in":"query","required":false,"schema":{"type":"string"}},{"name":"address:address1","in":"query","required":false,"schema":{"type":"string"}},{"name":"address:address2","in":"query","required":false,"schema":{"type":"string"}},{"name":"address:province","in":"query","required":false,"schema":{"type":"string"}},{"name":"address:city","in":"query","required":false,"schema":{"type":"string"}},{"name":"address:postal","in":"query","required":false,"schema":{"type":"string"}},{"name":"address:country","in":"query","required":false,"schema":{"type":"string"}},{"name":"defaultAccount:activePoints","in":"query","required":false,"schema":{"type":"number"}},{"name":"defaultAccount:transferredPoints","in":"query","required":false,"schema":{"type":"number"}},{"name":"defaultAccount:lockedPoints","in":"query","required":false,"schema":{"type":"number"}},{"name":"defaultAccount:expiredPoints","in":"query","required":false,"schema":{"type":"number"}},{"name":"defaultAccount:spentPoints","in":"query","required":false,"schema":{"type":"number"}},{"name":"defaultAccount:earnedPoints","in":"query","required":false,"schema":{"type":"number"}},{"name":"defaultAccount:blockedPoints","in":"query","required":false,"schema":{"type":"number"}},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/itemsOnPage"},{"$ref":"#/components/parameters/orderBy"},{"$ref":"#/components/parameters/scroll"}],"responses":{"200":{"description":"List of members","content":{"application/json":{"schema":{"oneOf":[{"title":"MembersListResponse","required":["items","total"],"properties":{"items":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Customer"},{"properties":{"labels":{"type":"array","items":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"currency":{"type":"string"},"storeCode":{"type":"string"},"channelIdentifier":{"type":"string"}},"type":"object"}]}},"total":{"$ref":"#/components/schemas/SearchableTotalResponse"}},"type":"object","additionalProperties":false},{"title":"MembersListResponseWithScroll","required":["items","scroll"],"properties":{"items":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Customer"},{"properties":{"labels":{"type":"array","items":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"currency":{"type":"string"},"storeCode":{"type":"string"},"channelIdentifier":{"type":"string"}},"type":"object"}]}},"scroll":{"$ref":"#/components/schemas/ScrollResponse"}},"type":"object","additionalProperties":false}]}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Add a member

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows registering a new Member as an Admin.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"CustomerRegistrationFormType":{"required":["email"],"properties":{"referrerToken":{"type":"string","nullable":true},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"description":"Required depending on identification method settings","type":"string"},"phone":{"description":"Required depending on identification method settings","type":"string"},"loyaltyCardNumber":{"description":"Required depending on identification method settings","type":"string"},"birthDate":{"type":"string","format":"date"},"createdAt":{"description":"Use \"registeredAt\" field instead.","type":"string","format":"date-time","deprecated":true},"registeredAt":{"type":"string","format":"date-time"},"address":{"$ref":"#/components/schemas/CustomerAddressFormType"},"company":{"properties":{"name":{"type":"string"},"nip":{"type":"string"}},"type":"object"},"labels":{"type":"array","items":{"properties":{"key":{"type":"string","minLength":1},"value":{"type":"string","minLength":1}},"type":"object"}},"agreement1":{"description":"TOS Agreement","type":"boolean"},"agreement2":{"description":"Direct Marketing Agreement","type":"boolean"},"agreement3":{"description":"Optional Agreement","type":"boolean"},"levelId":{"description":"Assign member to tier","type":"string","format":"uuid","nullable":true},"channelId":{"type":"string","format":"uuid"},"customFieldsData":{"description":"Custom fields data for member","type":"array","items":{"required":["customFieldSchemaId","value"],"properties":{"customFieldSchemaId":{"description":"ID of the custom field schema","type":"string","format":"uuid"},"value":{"description":"Value for the custom field (validated against schema requirements)","type":"string"}},"type":"object"},"nullable":true}},"type":"object"},"CustomerAddressFormType":{"properties":{"street":{"type":"string"},"address1":{"type":"string"},"address2":{"type":"string"},"postal":{"type":"string"},"city":{"type":"string"},"province":{"type":"string"},"country":{"description":"The country code in ISO 3166-1 alpha-2 format. This should be a two-letter uppercase string representing a valid country code. Examples:  - `US` (United States) - `PL` (Poland)","type":"string"}},"type":"object"},"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member":{"post":{"tags":["Member"],"summary":"Add a member","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows registering a new Member as an Admin.\n","operationId":"_memberPost","parameters":[{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"customer":{"$ref":"#/components/schemas/CustomerRegistrationFormType"}},"type":"object"}}}},"responses":{"200":{"description":"Return registered member id and identifiers.","content":{"application/json":{"schema":{"properties":{"customerId":{"description":"Registered member identity","type":"string","format":"uuid"},"email":{"description":"Registered member email","type":"string"},"phone":{"description":"Registered member phone","type":"string","nullable":true},"loyaltyCardNumber":{"description":"Registered member loyalty card number","type":"string","nullable":true}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Get number of registered members

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method returns the number of Members that have been registered in the system.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/registrations":{"get":{"tags":["Member"],"summary":"Get number of registered members","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method returns the number of Members that have been registered in the system.\n","operationId":"memberGetRegistrations","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"lastDays","in":"query","description":"Range from last X days","required":false,"allowEmptyValue":true,"schema":{"type":"integer","default":30}},{"name":"interval","in":"query","description":"Group by interval","required":false,"allowEmptyValue":false,"schema":{"type":"string","format":"day|month|year","default":"day","pattern":"(day|month|year)"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","format":"date-time","additionalProperties":{"type":"integer"}}}}},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Get member’s loyalty status

> This method returns all the details related to a specific Member about Points, Transactions, Tier, etc.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"CustomerStatus":{"properties":{"firstName":{"type":"string"},"lastName":{"type":"string"},"customerId":{"type":"string","format":"uuid"},"activePoints":{"type":"number","format":"float"},"transferredPoints":{"type":"number","format":"float"},"earnedPoints":{"type":"number","format":"float"},"spentPoints":{"type":"number","format":"float"},"expiredPoints":{"type":"number","format":"float"},"lockedPoints":{"type":"number","format":"float"},"blockedPoints":{"type":"number","format":"float"},"levelName":{"type":"string"},"levelConditionValue":{"type":"number","format":"float"},"nextLevelName":{"description":"This property only shows correct data for tier sets with one condition.","type":"string","deprecated":true},"nextLevelConditionValue":{"description":"This property only shows correct data for tier sets with one condition.","type":"number","format":"float","deprecated":true},"transactionsAmountToNextLevelWithoutDeliveryCosts":{"type":"number","format":"float"},"transactionsAmountWithoutDeliveryCosts":{"type":"number","format":"float"},"transactionsAmountToNextLevel":{"type":"number","format":"float"},"averageTransactionsAmount":{"type":"number","format":"float"},"averageReturnTransactionsAmount":{"type":"number","format":"float"},"transactionsCount":{"type":"integer"},"returnTransactionsCount":{"type":"integer"},"transactionsAmount":{"type":"number","format":"float"},"returnTransactionsAmount":{"type":"number","format":"float"},"pointsToNextLevel":{"description":"This property only shows correct data for tier sets with one condition.","type":"number","format":"float","deprecated":true},"currency":{"type":"string"},"levelWillExpireInDays":{"type":"integer"},"pointsSinceLastLevelRecalculation":{"type":"number","format":"float"},"pointsRequiredToRetainLevel":{"type":"number","format":"float"},"tierSet":{"$ref":"#/components/schemas/TierSet"},"pointsExpiringNextMonth":{"type":"number","format":"float"},"pointsExpiringBreakdown":{"type":"object","additionalProperties":{"type":"number","format":"float"}},"storeCode":{"type":"string"},"firstTransactionDate":{"type":"string","format":"date-time"},"lastTransactionDate":{"type":"string","format":"date-time"},"levelAchievementDate":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"registeredAt":{"type":"string","format":"date-time"},"referralToken":{"type":"string"}},"type":"object"},"TierSet":{"properties":{"tierSetId":{"type":"string"},"name":{"type":"string"},"isMigrated":{"type":"boolean"}},"type":"object"}},"responses":{"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/status":{"get":{"tags":["Member"],"summary":"Get member’s loyalty status","description":"This method returns all the details related to a specific Member about Points, Transactions, Tier, etc.\n","operationId":"memberGetStatus","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerStatus"}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}},"deprecated":true}}}}
````

## Activate a member

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows activating a specific Member account.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/activate":{"post":{"tags":["Member"],"summary":"Activate a member","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows activating a specific Member account.\n","operationId":"memberPostActivate","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Activate a member with a token

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows activating by activation token a specific Member account.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/activate/{token}":{"post":{"tags":["Member"],"summary":"Activate a member with a token","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows activating by activation token a specific Member account.\n","operationId":"memberPostActivateByToken","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"$ref":"#/components/responses/NoContent"},"404":{"$ref":"#/components/responses/NotFound"}},"deprecated":true}}}}
````

## Anonymize member’s data

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows anonymizing a specific member account.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/anonymize":{"post":{"tags":["Member"],"summary":"Anonymize member’s data","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows anonymizing a specific member account.\n","operationId":"memberPostAnonymize","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Assign channel to a member

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows assigning a Sales Channel to Member.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/channel":{"post":{"tags":["Member"],"summary":"Assign channel to a member","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows assigning a Sales Channel to Member.\n","operationId":"memberPostChannel","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"properties":{"channelId":{"description":"Id of the sales channel to assign to the member","type":"string","format":"uuid"}},"type":"object"}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Confirm change with a token

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows confirming changes with a token.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/confirm-change/{token}":{"post":{"tags":["Member"],"summary":"Confirm change with a token","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows confirming changes with a token.\n","operationId":"memberPostConfirmChange","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"token","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Deactivate a member

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows deactivating a specific Member account.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/deactivate":{"post":{"tags":["Member"],"summary":"Deactivate a member","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows deactivating a specific Member account.\n","operationId":"memberPostDeactivate","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Register a member

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows potential Members to register themselves.\
> If CustomerWasRegisteredWithoutActivation webhook is configured,\
> the code, code number, and member contact data will be transmitted.\
> The 'code' field from the webhook should be used\
> as token parameter in the endpoint. \[member activate]\(#operation/memberPostActivate)<br>

```json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[],"paths":{"/api/{storeCode}/member/register":{"post":{"tags":["Member"],"summary":"Register a member","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows potential Members to register themselves.\nIf CustomerWasRegisteredWithoutActivation webhook is configured,\nthe code, code number, and member contact data will be transmitted.\nThe 'code' field from the webhook should be used\nas token parameter in the endpoint. [member activate](#operation/memberPostActivate)\n","operationId":"memberPostRegister","parameters":[{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"description":"","content":{"application/json":{"schema":{"properties":{"customer":{"$ref":"#/components/schemas/CustomerSelfRegistrationFormType"}},"type":"object"}}}},"responses":{"200":{"description":"Return registered member ID and email.","content":{"application/json":{"schema":{"properties":{"customerId":{"description":"Registered member identity","type":"string"},"email":{"description":"Registered member email","type":"string","format":"email"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"}},"deprecated":true}}},"components":{"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"CustomerSelfRegistrationFormType":{"required":["email","agreement1","plainPassword"],"properties":{"referrerToken":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"gender":{"type":"string","enum":["male","female","not_disclosed"]},"email":{"type":"string"},"phone":{"type":"string"},"loyaltyCardNumber":{"type":"string"},"birthDate":{"type":"string","format":"date"},"createdAt":{"description":"Use \"registeredAt\" field instead.","type":"string","format":"date-time","deprecated":true},"registeredAt":{"type":"string","format":"date-time"},"address":{"$ref":"#/components/schemas/FormType"},"company":{"$ref":"#/components/schemas/FormType"},"labels":{"type":"array","items":{"$ref":"#/components/schemas/UserLabelFormType"}},"customFieldsData":{"type":"array","items":{"$ref":"#/components/schemas/CustomFieldFormType"}},"agreement1":{"description":"TOS Agreement (required to be true)","type":"boolean"},"agreement2":{"description":"Direct Marketing Agreement","type":"boolean"},"agreement3":{"description":"Optional Agreement","type":"boolean"},"plainPassword":{"type":"string","format":"password"}},"type":"object"},"FormType":{"type":"object"},"UserLabelFormType":{"required":["key","value"],"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"},"CustomFieldFormType":{"required":["customFieldSchemaId"],"properties":{"customFieldSchemaId":{"type":"string"}},"type":"object"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}}}
```

## Remove manually assigned tier

> Remove manually assigned tier<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/remove-manually-level":{"post":{"tags":["Member"],"summary":"Remove manually assigned tier","description":"Remove manually assigned tier\n","operationId":"_memberPostRemoveTier","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"tierSetId":{"description":"tier set id specifies the tier set in which you want to remove the manually assigned tier","type":"string","format":"uuid"}},"type":"object","additionalProperties":false}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Request activation code

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows resending the activation code.\
> Use given code in member activation endpoint as token parameter.\
> \[member activation]\(#operation/memberPostActivateByToken)<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/resend-code":{"post":{"tags":["Member"],"summary":"Request activation code","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows resending the activation code.\nUse given code in member activation endpoint as token parameter.\n[member activation](#operation/memberPostActivateByToken)\n","operationId":"memberPostResendCode","parameters":[{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"description":"","content":{"application/json":{"schema":{"required":["phone"],"properties":{"phone":{"type":"string"}},"type":"object"}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"}},"deprecated":true}}}}
````

## Resend activation code

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows resending the activation code for chosen member\
> Use given code in member activation endpoint as token parameter.\
> \[member activation]\(#operation/memberPostActivateByToken)<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/send-code":{"post":{"tags":["Member"],"summary":"Resend activation code","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows resending the activation code for chosen member\nUse given code in member activation endpoint as token parameter.\n[member activation](#operation/memberPostActivateByToken)\n","operationId":"memberPostSendCode","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"responses":{"204":{"$ref":"#/components/responses/NoContent"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Assign member to a tier

> Assign member to a tier<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/tier":{"post":{"tags":["Member"],"summary":"Assign member to a tier","description":"Assign member to a tier\n","operationId":"_memberPostTier","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"required":["levelId"],"properties":{"levelId":{"description":"Id of the tier to assign to the member","type":"string","format":"uuid"}},"type":"object","additionalProperties":false}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Update member’s password

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows logged Member changing password.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"ChangePasswordFormType":{"required":["currentPassword","plainPassword"],"properties":{"currentPassword":{"type":"string","format":"password"},"plainPassword":{"type":"string","format":"password"}},"type":"object"}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/password":{"put":{"tags":["Member"],"summary":"Update member’s password","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows logged Member changing password.\n","operationId":"memberPutPassword","parameters":[{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChangePasswordFormType"}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Get logged member’s units

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method returns a list of all Points transfers related to the logged Member.  \
> If sorting is not chosen, the rows will be returned in an unspecified order.  \
> To sort a result, use an \`\_orderBy\` parameter in query.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}},"page":{"name":"_page","in":"query","description":"Number of page with results, starts from 1","required":false,"schema":{"type":"integer","default":1,"minimum":1}},"itemsOnPage":{"name":"_itemsOnPage","in":"query","description":"Items on one page","required":false,"schema":{"type":"integer","default":10,"maximum":50,"minimum":1}},"orderBy":{"name":"_orderBy","in":"query","description":"Sorting order. If sorting is not chosen, the rows will be returned in an unspecified order. Sort order: * `asc` - Ascending, from A to Z * `desc` - Descending, from Z to A","required":false,"style":"deepObject","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string","enum":["asc","desc"]}}}},"schemas":{"Transfer":{"properties":{"transferId":{"type":"string","format":"uuid"},"type":{"type":"string"},"accountId":{"type":"string"},"lockedUntil":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"storeId":{"type":"string","format":"uuid"},"comment":{"type":"string"},"cancelled":{"type":"boolean"},"pending":{"type":"boolean"},"unlockedAt":{"type":"string","format":"date-time"},"actionCause":{"$ref":"#/components/schemas/ActionCause2"},"value":{"type":"number","format":"float"},"externalTransferId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"type":"object"},"ActionCause2":{"properties":{"campaignId":{"type":"string","format":"uuid"},"customerId":{"type":"string","format":"uuid"},"transactionId":{"type":"string","format":"uuid"},"customEventId":{"type":"string","format":"uuid"},"internalEventName":{"type":"string"},"performedAt":{"type":"string","format":"date-time"},"rewardId":{"type":"string"},"issuedRewardId":{"type":"string"}},"type":"object"},"WalletType":{"required":["name","walletTypeId","code","unitSingularName","unitPluralName","active","isDefault","createdAt","limits"],"properties":{"name":{"type":"string"},"walletTypeId":{"type":"string","format":"uuid"},"code":{"type":"string"},"unitSingularName":{"type":"string"},"unitPluralName":{"type":"string"},"active":{"type":"boolean"},"isDefault":{"description":"Indicates if wallet type is default. Only one default wallet type can be defined in the tenant","type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"limits":{"$ref":"#/components/schemas/WalletTypeLimit"},"allowNegativeBalance":{"type":"boolean"}},"type":"object","additionalProperties":false},"WalletTypeLimit":{"properties":{"points":{"description":"Global limit of units for wallet type","properties":{"interval":{"properties":{"type":{"description":"Interval of time","type":"string","enum":["calendarHours","calendarDays","calendarWeeks","calendarMonths","calendarYears"]},"value":{"description":"Number of next intervals","type":"integer","default":1,"minimum":1}},"type":"object"},"value":{"description":"Limit value in units","type":"number","format":"float","minimum":1}},"type":"object"},"pointsPerMember":{"description":"Limit of units for wallet type and member","required":["value"],"properties":{"interval":{"properties":{"type":{"description":"Interval of time","type":"string","enum":["calendarHours","calendarDays","calendarWeeks","calendarMonths","calendarYears"]},"value":{"description":"Number of next intervals","type":"integer","default":1,"minimum":1}},"type":"object"},"value":{"description":"Limit value in units","type":"number","format":"float","minimum":1}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"SearchableTotalResponse2":{"properties":{"all":{"type":"integer","deprecated":true},"filtered":{"type":"integer","deprecated":true},"estimated":{"description":"Field estimated is used to show that the results are estimated. It might happen when there are more than 5000 results due to performance optimization.","type":"boolean","deprecated":true}},"type":"object","deprecated":true}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/points":{"get":{"tags":["Member"],"summary":"Get logged member’s units","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method returns a list of all Points transfers related to the logged Member.  \nIf sorting is not chosen, the rows will be returned in an unspecified order.  \nTo sort a result, use an `_orderBy` parameter in query.\n","operationId":"memberGetTransferList","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"type","in":"query","description":"type","required":false,"schema":{"type":"string"}},{"name":"value","in":"query","description":"value","required":false,"schema":{"type":"number"}},{"name":"comment","in":"query","description":"comment","required":false,"schema":{"type":"string"}},{"name":"createdBy","in":"query","description":"createdBy","required":false,"schema":{"type":"string"}},{"name":"cancelled","in":"query","description":"cancelled","required":false,"schema":{"type":"boolean"}},{"name":"pending","in":"query","description":"pending","required":false,"schema":{"type":"boolean"}},{"name":"createdAt","in":"query","description":"createdAt","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"lockedUntil","in":"query","description":"lockedUntil","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"expiresAt","in":"query","description":"expiresAt","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"walletType:code","in":"query","description":"Wallet type code related to","required":false,"schema":{"type":"string"}},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/itemsOnPage"},{"$ref":"#/components/parameters/orderBy"}],"responses":{"200":{"description":"List of messages","content":{"application/json":{"schema":{"properties":{"items":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Transfer"},{"properties":{"walletType":{"$ref":"#/components/schemas/WalletType"}},"type":"object","property":null}]}},"total":{"$ref":"#/components/schemas/SearchableTotalResponse2"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"}}}}}}
````

## Transfer points between members

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows transferring Points between logged Member and Member which he chooses.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"TransferPointsByCustomerFormType":{"required":["receiver","points"],"properties":{"receiver":{"type":"string"},"points":{"type":"number"},"comment":{"type":"string"}},"type":"object"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/points":{"post":{"tags":["Member"],"summary":"Transfer points between members","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows transferring Points between logged Member and Member which he chooses.\n","operationId":"memberPostTransfer","parameters":[{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"description":"","content":{"application/json":{"schema":{"properties":{"transfer":{"$ref":"#/components/schemas/TransferPointsByCustomerFormType"}},"type":"object"}}}},"responses":{"200":{"description":"Return points transfer ID.","content":{"application/json":{"schema":{"properties":{"transferId":{"type":"string"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"}}}}}}
````

## Request member’s password reset

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows sending message to the user with password reset url.\
> Purpose of this method is to provide "Forgot password" functionality.\
> Invoking this method will send message to the user with password reset url.\
> If CustomerRequestedPasswordReset webhook is configured\
> the code, code number, and member contact data will be transmitted.\
> Use code from the webhook as a token in this endpoint. \[password reset]\(#operation/memberPostPasswordReset)<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/password/reset/request":{"post":{"tags":["Member"],"summary":"Request member’s password reset","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows sending message to the user with password reset url.\nPurpose of this method is to provide \"Forgot password\" functionality.\nInvoking this method will send message to the user with password reset url.\nIf CustomerRequestedPasswordReset webhook is configured\nthe code, code number, and member contact data will be transmitted.\nUse code from the webhook as a token in this endpoint. [password reset](#operation/memberPostPasswordReset)\n","operationId":"memberPostPasswordResetRequest","parameters":[{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"description":"","required":false,"content":{"application/json":{"schema":{"properties":{"username":{"type":"string"}},"type":"object"}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"}},"deprecated":true}}}}
````

## Set a new member’s password

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method allows setting a new password after requesting a password reset.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"PasswordResetFormType":{"required":["plainPassword"],"properties":{"plainPassword":{"type":"string","format":"password"}},"type":"object"}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/password/reset":{"post":{"tags":["Member"],"summary":"Set a new member’s password","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method allows setting a new password after requesting a password reset.\n","operationId":"memberPostPasswordReset","parameters":[{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"description":"","content":{"application/json":{"schema":{"properties":{"reset":{"$ref":"#/components/schemas/PasswordResetFormType"},"token":{"type":"string"}},"type":"object"}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"}},"deprecated":true}}}}
````

## Get logged member’s tier

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method returns a list of active Tiers that exist in the system.  \
> If sorting is not chosen, the rows will be returned in an unspecified order.  \
> To sort a result, use an \`\_orderBy\` parameter in query.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}},"page":{"name":"_page","in":"query","description":"Number of page with results, starts from 1","required":false,"schema":{"type":"integer","default":1,"minimum":1}},"itemsOnPage":{"name":"_itemsOnPage","in":"query","description":"Items on one page","required":false,"schema":{"type":"integer","default":10,"maximum":50,"minimum":1}},"orderBy":{"name":"_orderBy","in":"query","description":"Sorting order. If sorting is not chosen, the rows will be returned in an unspecified order. Sort order: * `asc` - Ascending, from A to Z * `desc` - Descending, from Z to A","required":false,"style":"deepObject","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string","enum":["asc","desc"]}}}},"schemas":{"Tier":{"properties":{"levelId":{"type":"string","format":"uuid"},"name":{"type":"string"},"description":{"type":"string"},"hasPhoto":{"type":"boolean"},"storeCode":{"type":"string"},"conditionValue":{"type":"number","format":"float","deprecated":true}},"type":"object"},"SearchableTotalResponse2":{"properties":{"all":{"type":"integer","deprecated":true},"filtered":{"type":"integer","deprecated":true},"estimated":{"description":"Field estimated is used to show that the results are estimated. It might happen when there are more than 5000 results due to performance optimization.","type":"boolean","deprecated":true}},"type":"object","deprecated":true}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/tier":{"get":{"tags":["Member"],"summary":"Get logged member’s tier","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method returns a list of active Tiers that exist in the system.  \nIf sorting is not chosen, the rows will be returned in an unspecified order.  \nTo sort a result, use an `_orderBy` parameter in query.\n","operationId":"tierMemberGetList","parameters":[{"$ref":"#/components/parameters/storeCode"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/itemsOnPage"},{"$ref":"#/components/parameters/orderBy"},{"name":"name","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"","content":{"application/json":{"schema":{"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Tier"}},"total":{"$ref":"#/components/schemas/SearchableTotalResponse2"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Get logged member’s bought rewards

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method returns a list all rewards bought by logged Member.  \
> If sorting is not chosen, the rows will be returned in an unspecified order.  \
> To sort a result, use an \`\_orderBy\` parameter in query.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}},"page":{"name":"_page","in":"query","description":"Number of page with results, starts from 1","required":false,"schema":{"type":"integer","default":1,"minimum":1}},"itemsOnPage":{"name":"_itemsOnPage","in":"query","description":"Items on one page","required":false,"schema":{"type":"integer","default":10,"maximum":50,"minimum":1}},"orderBy":{"name":"_orderBy","in":"query","description":"Sorting order. If sorting is not chosen, the rows will be returned in an unspecified order. Sort order: * `asc` - Ascending, from A to Z * `desc` - Descending, from Z to A","required":false,"style":"deepObject","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string","enum":["asc","desc"]}}}},"schemas":{"issuedReward":{"properties":{"rewardId":{"type":"string","format":"uuid"},"issuedRewardId":{"type":"string","format":"uuid"},"name":{"type":"string"},"tax":{"type":"number"},"taxPriceValue":{"type":"number"},"price":{"type":"number","format":"float"},"customerId":{"type":"string","format":"uuid"},"status":{"type":"string"},"redemptionDate":{"type":"string","format":"date-time"},"issuedCoupon":{"properties":{"code":{"type":"string"},"value":{"type":"number","format":"float"},"activeFrom":{"type":"string","format":"date-time"},"activeTo":{"type":"string","format":"date-time"},"valueType":{"type":"string","enum":["money","percentage"]},"usedAt":{"type":"string","format":"date-time"}},"type":"object"},"customerData":{"properties":{"email":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"phone":{"type":"string"},"loyaltyCardNumber":{"type":"string"},"address":{"type":"object"}},"type":"object"},"costInPoints":{"type":"number","format":"float"},"token":{"type":"string"},"rewardType":{"type":"string","enum":["static_coupon","material","dynamic_coupon","conversion_coupon"]},"unitsConversion":{"properties":{"ratio":{"type":"number","format":"float"},"rounding":{"type":"string","enum":["up","down","default"]}},"type":"object"},"actionCause":{"$ref":"#/components/schemas/ActionCause"}},"type":"object"},"ActionCause":{"properties":{"campaignId":{"type":"string","format":"uuid","nullable":true},"customerId":{"type":"string","format":"uuid","nullable":true},"transactionId":{"type":"string","format":"uuid","nullable":true},"customEventId":{"type":"string","format":"uuid","nullable":true},"internalEventName":{"type":"string","nullable":true},"performedAt":{"description":"The date and time when the event was performed (purchase for transactions, registration for custom events). Equivalent to purchasedAt and eventDate. This value is null if actionCause does not come from a campaign.","type":"string","format":"date-time","nullable":true},"rewardId":{"description":"The reward definition ID when the transfer is related to a reward purchase.","type":"string","format":"uuid","nullable":true},"issuedRewardId":{"description":"The issued reward instance ID when the transfer is related to a reward redemption.","type":"string","format":"uuid","nullable":true}},"type":"object"},"SearchableTotalResponse2":{"properties":{"all":{"type":"integer","deprecated":true},"filtered":{"type":"integer","deprecated":true},"estimated":{"description":"Field estimated is used to show that the results are estimated. It might happen when there are more than 5000 results due to performance optimization.","type":"boolean","deprecated":true}},"type":"object","deprecated":true}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/reward/bought":{"get":{"tags":["Member"],"summary":"Get logged member’s bought rewards","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method returns a list all rewards bought by logged Member.  \nIf sorting is not chosen, the rows will be returned in an unspecified order.  \nTo sort a result, use an `_orderBy` parameter in query.\n","operationId":"memberGetBought","parameters":[{"$ref":"#/components/parameters/storeCode"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/itemsOnPage"},{"$ref":"#/components/parameters/orderBy"},{"name":"rewardId","in":"query","required":false,"schema":{"type":"string"}},{"name":"name","in":"query","required":false,"schema":{"type":"string"}},{"name":"token","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string"}},{"name":"costInPoints","in":"query","required":false,"schema":{"type":"integer"}},{"name":"rewardType","in":"query","required":false,"schema":{"type":"string"}},{"name":"redemptionDate","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"List of rewards bought by logged in member","content":{"application/json":{"schema":{"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/issuedReward"}},"total":{"$ref":"#/components/schemas/SearchableTotalResponse2"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/AccessDenied"}},"deprecated":true}}}}
````

## Get referrals list

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method returns a list of referrals Members in the system.  \
> If sorting is not chosen, the rows will be returned in an unspecified order.  \
> To sort a result, use an \`\_orderBy\` parameter in query.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}},"page":{"name":"_page","in":"query","description":"Number of page with results, starts from 1","required":false,"schema":{"type":"integer","default":1,"minimum":1}},"itemsOnPage":{"name":"_itemsOnPage","in":"query","description":"Items on one page","required":false,"schema":{"type":"integer","default":10,"maximum":50,"minimum":1}},"orderBy":{"name":"_orderBy","in":"query","description":"Sorting order. If sorting is not chosen, the rows will be returned in an unspecified order. Sort order: * `asc` - Ascending, from A to Z * `desc` - Descending, from Z to A","required":false,"style":"deepObject","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string","enum":["asc","desc"]}}}},"schemas":{"Referral":{"properties":{"referralId":{"type":"string","format":"uuid"},"referrerId":{"type":"string","format":"uuid"},"referrerName":{"type":"string"},"referrerToken":{"type":"string"},"refereeId":{"type":"string","format":"uuid"},"refereeName":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"type":"object"},"SearchableTotalResponse2":{"properties":{"all":{"type":"integer","deprecated":true},"filtered":{"type":"integer","deprecated":true},"estimated":{"description":"Field estimated is used to show that the results are estimated. It might happen when there are more than 5000 results due to performance optimization.","type":"boolean","deprecated":true}},"type":"object","deprecated":true}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/referral":{"get":{"tags":["Member"],"summary":"Get referrals list","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method returns a list of referrals Members in the system.  \nIf sorting is not chosen, the rows will be returned in an unspecified order.  \nTo sort a result, use an `_orderBy` parameter in query.\n","operationId":"referralGetList","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"referralId","in":"query","required":false,"schema":{"type":"string"}},{"name":"referrerId","in":"query","required":false,"schema":{"type":"string"}},{"name":"referrerName","in":"query","required":false,"schema":{"type":"string"}},{"name":"referrerToken","in":"query","required":false,"schema":{"type":"string"}},{"name":"refereeId","in":"query","required":false,"schema":{"type":"string"}},{"name":"refereeName","in":"query","required":false,"schema":{"type":"string"}},{"name":"createdAt","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/itemsOnPage"},{"$ref":"#/components/parameters/orderBy"}],"responses":{"200":{"description":"List of referrals","content":{"application/json":{"schema":{"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Referral"}},"total":{"$ref":"#/components/schemas/SearchableTotalResponse2"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"}}}}}}
````

## Add the member’s password

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br>\
> This method allows assigning a password to a specific Member.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"schemas":{"SetPasswordFormType":{"required":["plainPassword"],"properties":{"plainPassword":{"type":"string","format":"password"}},"type":"object"}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/password":{"post":{"tags":["Member"],"summary":"Add the member’s password","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\nThis method allows assigning a password to a specific Member.\n","operationId":"memberPostSetPassword","parameters":[{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"$ref":"#/components/parameters/storeCode"}],"requestBody":{"description":"","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetPasswordFormType"}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Check member’s activity history

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method returns detailed information about a specific Campaign.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}},"page":{"name":"_page","in":"query","description":"Number of page with results, starts from 1","required":false,"schema":{"type":"integer","default":1,"minimum":1}},"itemsOnPage":{"name":"_itemsOnPage","in":"query","description":"Items on one page","required":false,"schema":{"type":"integer","default":10,"maximum":50,"minimum":1}},"orderBy":{"name":"_orderBy","in":"query","description":"Sorting order. If sorting is not chosen, the rows will be returned in an unspecified order. Sort order: * `asc` - Ascending, from A to Z * `desc` - Descending, from Z to A","required":false,"style":"deepObject","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string","enum":["asc","desc"]}}}},"schemas":{"AssignedTransactionToCustomer":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["AssignedTransactionToCustomer"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["transactionId","documentType","documentNumber","grossValue"],"properties":{"transactionId":{"type":"string"},"documentType":{"type":"string"},"documentNumber":{"type":"string"},"grossValue":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"CustomerWasActivated":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["CustomerWasActivated"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"type":"object"}},"type":"object","additionalProperties":false},"CustomerWasAnonymized":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["CustomerWasAnonymized"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"type":"object"}},"type":"object","additionalProperties":false},"CustomerWasDeactivated":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["CustomerWasDeactivated"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"type":"object"}},"type":"object","additionalProperties":false},"CustomerWasMovedToLevel":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["CustomerWasMovedToLevel"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["manually","removedManually"],"properties":{"newLevelId":{"type":"string"},"newLevelName":{"type":"string"},"tierSetId":{"type":"string"},"tierSetName":{"type":"string"},"manually":{"type":"boolean"},"removedManually":{"type":"boolean"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"CustomerWasRegistered":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["CustomerWasRegistered"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"type":"object"}},"type":"object","additionalProperties":false},"PendingPointsWereAdded":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["PendingPointsWereAdded"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["points","transferId","walletId","walletTypeCode","walletUnitSingularName","walletUnitPluralName","activePoints"],"properties":{"points":{"type":"number","format":"float"},"comment":{"type":"string"},"transferId":{"type":"string"},"walletId":{"type":"string"},"walletTypeCode":{"type":"string"},"walletTypeName":{"type":"string"},"walletUnitSingularName":{"type":"string"},"walletUnitPluralName":{"type":"string"},"activePoints":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"PendingPointsWereCanceled":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["PendingPointsWereCanceled"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["transferId","walletId","walletTypeCode","walletUnitSingularName","walletUnitPluralName","points","activePoints"],"properties":{"transferId":{"type":"string","format":"uuid"},"walletId":{"type":"string","format":"uuid"},"walletTypeCode":{"type":"string"},"walletTypeName":{"type":"string"},"walletUnitSingularName":{"type":"string"},"walletUnitPluralName":{"type":"string"},"points":{"type":"number","format":"float"},"comment":{"type":"string"},"activePoints":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"PointsWereAdded":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["PointsWereAdded"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["points","transferId","walletId","walletTypeCode","walletUnitSingularName","walletUnitPluralName","activePoints"],"properties":{"points":{"type":"number","format":"float"},"comment":{"type":"string"},"transferId":{"type":"string"},"walletId":{"type":"string"},"walletTypeCode":{"type":"string"},"walletTypeName":{"type":"string"},"walletUnitSingularName":{"type":"string"},"walletUnitPluralName":{"type":"string"},"activePoints":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"PointsWereBlocked":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["PointsWereBlocked"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["transferId","walletId","walletTypeCode","walletUnitSingularName","walletUnitPluralName","points","activePoints"],"properties":{"transferId":{"type":"string","format":"uuid"},"walletId":{"type":"string","format":"uuid"},"walletTypeCode":{"type":"string"},"walletTypeName":{"type":"string"},"walletUnitSingularName":{"type":"string"},"walletUnitPluralName":{"type":"string"},"points":{"type":"number","format":"float"},"comment":{"type":"string"},"activePoints":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"PointsWereCanceled":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["PointsWereCanceled"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["transferId","walletId","walletTypeCode","walletUnitSingularName","walletUnitPluralName","points","activePoints"],"properties":{"transferId":{"type":"string","format":"uuid"},"walletId":{"type":"string","format":"uuid"},"walletTypeCode":{"type":"string"},"walletTypeName":{"type":"string"},"walletUnitSingularName":{"type":"string"},"walletUnitPluralName":{"type":"string"},"points":{"type":"number","format":"float"},"comment":{"type":"string"},"activePoints":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"PointsWereExpired":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["PointsWereExpired"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["transferId","walletId","walletTypeCode","walletUnitSingularName","walletUnitPluralName","points","activePoints"],"properties":{"transferId":{"type":"string","format":"uuid"},"walletId":{"type":"string","format":"uuid"},"walletTypeCode":{"type":"string"},"walletTypeName":{"type":"string"},"walletUnitSingularName":{"type":"string"},"walletUnitPluralName":{"type":"string"},"points":{"type":"number","format":"float"},"comment":{"type":"string"},"activePoints":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"PointsWereSpent":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["PointsWereSpent"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["transferId","walletId","walletTypeCode","walletUnitSingularName","walletUnitPluralName","points","activePoints"],"properties":{"transferId":{"type":"string","format":"uuid"},"walletId":{"type":"string","format":"uuid"},"walletTypeCode":{"type":"string"},"walletTypeName":{"type":"string"},"walletUnitSingularName":{"type":"string"},"walletUnitPluralName":{"type":"string"},"points":{"type":"number","format":"float"},"comment":{"type":"string"},"activePoints":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"PointsWereTransferred":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","deprecated":true,"enum":["PointsWereTransferred"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["points"],"properties":{"points":{"type":"number","format":"float"},"receiverFirstName":{"type":"string"},"receiverLastName":{"type":"string"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"PointsWereUnblocked":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["PointsWereUnblocked"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["points","transferId","walletId","walletTypeCode","walletUnitSingularName","walletUnitPluralName","activePoints"],"properties":{"points":{"type":"number","format":"float"},"comment":{"type":"string"},"transferId":{"type":"string"},"walletId":{"type":"string"},"walletTypeCode":{"type":"string"},"walletTypeName":{"type":"string"},"walletUnitSingularName":{"type":"string"},"walletUnitPluralName":{"type":"string"},"activePoints":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"PointsWereUnlocked":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["PointsWereUnlocked"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["points","transferId","walletId","walletTypeCode","walletUnitSingularName","walletUnitPluralName","activePoints"],"properties":{"points":{"type":"number","format":"float"},"comment":{"type":"string"},"transferId":{"type":"string"},"walletId":{"type":"string"},"walletTypeCode":{"type":"string"},"walletTypeName":{"type":"string"},"walletUnitSingularName":{"type":"string"},"walletUnitPluralName":{"type":"string"},"activePoints":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"RewardWasBought":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["RewardWasBought"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["issuedRewardId","rewardId"],"properties":{"rewardName":{"type":"string"},"issuedRewardId":{"type":"string"},"rewardId":{"type":"string"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"AchievementCompleted":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["AchievementCompleted"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["adminId","achievementName","manuallyEdited"],"properties":{"adminId":{"type":"string"},"manuallyEdited":{"type":"boolean"},"achievementName":{"type":"string"},"achievementId":{"type":"string"},"campaignId":{"type":"string"},"previousCompletionCount":{"type":"integer"},"currentCompletionCount":{"type":"integer"},"completedAt":{"type":"string"},"isDuplicatedByChallenge":{"description":"Present and set to true only for migrated challenge achievements","type":"boolean"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"AssignedCustomEventToCustomer":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["AssignedCustomEventToCustomer"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["customEventId","type"],"properties":{"customEventId":{"type":"string"},"type":{"type":"string"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"CustomAttributeWasAdded":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["CustomAttributeWasAdded"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["customAttributeKey","customAttributeValue"],"properties":{"customAttributeKey":{"type":"string"},"customAttributeValue":{"type":"string"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"CustomAttributesWereUpdated":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["CustomAttributesWereUpdated"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["customAttributeKey","customAttributeValue"],"properties":{"customAttributeKey":{"type":"string"},"customAttributeValue":{"type":"string"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"CustomAttributesWereDeleted":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["CustomAttributesWereDeleted"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["customAttributeKey"],"properties":{"customAttributeKey":{"type":"string"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"MemberAchievementCompletionCountWasDecreased":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["MemberAchievementCompletionCountWasDecreased"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["adminId","previousCompletionCount","currentCompletionCount","achievementName"],"properties":{"adminId":{"type":"string"},"previousCompletionCount":{"type":"integer"},"currentCompletionCount":{"type":"integer"},"achievementName":{"type":"string"},"achievementId":{"type":"string"},"campaignId":{"type":"string"},"isDuplicatedByChallenge":{"description":"Present and set to true only for migrated challenge achievements","type":"boolean"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"MemberAchievementProgressWasChanged":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["MemberAchievementProgressWasChanged"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["adminId","achievementName"],"properties":{"adminId":{"type":"string"},"achievementName":{"type":"string"},"achievementId":{"type":"string"},"campaignId":{"type":"string"},"rulesBeforeChanges":{"type":"array","items":{"required":["achievementRuleId","periodGoal","currentPeriodValue"],"properties":{"achievementRuleId":{"type":"string"},"periodGoal":{"type":"number"},"currentPeriodValue":{"type":"number"},"consecutivePeriods":{"type":"integer"},"completedConsecutivePeriods":{"type":"integer"},"periodValue":{"type":"number"}},"type":"object","additionalProperties":false}},"rulesAfterChanges":{"type":"array","items":{"required":["achievementRuleId","periodGoal","currentPeriodValue"],"properties":{"achievementRuleId":{"type":"string"},"periodGoal":{"type":"number"},"currentPeriodValue":{"type":"number"},"consecutivePeriods":{"type":"integer"},"completedConsecutivePeriods":{"type":"integer"},"periodValue":{"type":"number"}},"type":"object","additionalProperties":false}},"isDuplicatedByChallenge":{"description":"Present and set to true only for migrated challenge achievements","type":"boolean"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"ChallengeCompleted":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["ChallengeCompleted"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["adminId","challengeName","manuallyEdited","challengeId"],"properties":{"adminId":{"type":"string"},"manuallyEdited":{"type":"boolean"},"challengeName":{"type":"string"},"challengeId":{"type":"string"},"previousCompletionCount":{"type":"integer"},"currentCompletionCount":{"type":"integer"},"completedAt":{"type":"string"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"MemberChallengeCompletionCountWasDecreased":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["MemberChallengeCompletionCountWasDecreased"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["adminId","previousCompletionCount","currentCompletionCount","challengeName","challengeId"],"properties":{"adminId":{"type":"string"},"previousCompletionCount":{"type":"integer"},"currentCompletionCount":{"type":"integer"},"challengeName":{"type":"string"},"challengeId":{"type":"string"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"MemberChallengeProgressWasChanged":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["MemberChallengeProgressWasChanged"]},"accountId":{"type":"string"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["adminId","challengeName","challengeId"],"properties":{"adminId":{"type":"string"},"challengeName":{"type":"string"},"challengeId":{"type":"string"},"milestonesBeforeChanges":{"type":"array","items":{"required":["milestoneId","periodGoal","currentPeriodValue"],"properties":{"milestoneId":{"type":"string"},"periodGoal":{"type":"number"},"currentPeriodValue":{"type":"number"},"consecutivePeriods":{"type":"integer"},"completedConsecutivePeriods":{"type":"integer"},"periodValue":{"type":"number"}},"type":"object","additionalProperties":false}},"milestonesAfterChanges":{"type":"array","items":{"required":["milestoneId","periodGoal","currentPeriodValue"],"properties":{"milestoneId":{"type":"string"},"periodGoal":{"type":"number"},"currentPeriodValue":{"type":"number"},"consecutivePeriods":{"type":"integer"},"completedConsecutivePeriods":{"type":"integer"},"periodValue":{"type":"number"}},"type":"object","additionalProperties":false}}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"BadgeCompleted":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["BadgeCompleted"]},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["badgeTypeId","badgeName","previousCompletedCount","currentCompletedCount"],"properties":{"badgeName":{"type":"string"},"badgeTypeId":{"type":"string"},"previousCompletedCount":{"type":"integer"},"currentCompletedCount":{"type":"integer"},"sourceName":{"type":"string"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"MemberBadgeCompletedCountWasChanged":{"required":["customerId","type","createdAt"],"properties":{"customerId":{"type":"string"},"type":{"type":"string","enum":["MemberBadgeCompletedCountWasChanged"]},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["adminId","badgeName","badgeTypeId","manuallyEdited","previousCompletedCount","currentCompletedCount"],"properties":{"adminId":{"type":"string"},"manuallyEdited":{"type":"boolean"},"badgeName":{"type":"string"},"badgeTypeId":{"type":"string"},"previousCompletedCount":{"type":"integer"},"currentCompletedCount":{"type":"integer"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"IssuedRewardWasCancelled":{"required":["type","customerId","createdAt","flatVariables"],"properties":{"type":{"type":"string","enum":["IssuedRewardWasCancelled"]},"customerId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["rewardId","issuedRewardId","name","cancelledAt"],"properties":{"rewardId":{"type":"string","format":"uuid"},"issuedRewardId":{"type":"string","format":"uuid"},"name":{"type":"string"},"cancelledAt":{"type":"string","format":"date-time"}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"RewardFortuneWheelWasDrawn":{"required":["type","customerId","createdAt","flatVariables"],"properties":{"type":{"type":"string","enum":["RewardFortuneWheelWasDrawn"]},"customerId":{"type":"string","format":"uuid"},"createdAt":{"type":"string","format":"date-time"},"flatVariables":{"required":["rewardId","issuedRewardId","ruleName","ruleChance"],"properties":{"rewardId":{"type":"string","format":"uuid"},"rewardName":{"type":"string"},"issuedRewardId":{"type":"string","format":"uuid"},"ruleName":{"type":"string"},"ruleChance":{"type":"number","maximum":1,"minimum":0}},"type":"object","additionalProperties":false}},"type":"object","additionalProperties":false},"SearchableTotalResponse":{"required":["all","filtered","estimated"],"properties":{"all":{"type":"integer","deprecated":true},"filtered":{"type":"integer","deprecated":true},"estimated":{"description":"Field estimated is used to show that the results are estimated. It might happen when there are more than 5000 results due to performance optimization.","type":"boolean","deprecated":true}},"type":"object","deprecated":true},"ExpiredToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"InvalidToken":{"required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"}},"type":"object"},"Unauthorized":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/history":{"get":{"tags":["Member"],"summary":"Check member’s activity history","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method returns detailed information about a specific Campaign.\n","operationId":"_memberGetHistory","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}},{"name":"type","in":"query","description":"This parameter can be a simple string or a complex object. Examples:  - `type=TEST` - `type[in]=TEST&type[another]=VALUE`\n","required":false,"style":"form","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string"}}},{"name":"walletType:code","in":"query","description":"Code of the wallet (e.g. default).\n","required":false,"style":"form","explode":true,"schema":{"type":"string"}},{"name":"createdAt","in":"query","description":"Date the record was created.\n","required":false,"style":"form","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string","format":"date-time"}}},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/itemsOnPage"},{"$ref":"#/components/parameters/orderBy"}],"responses":{"200":{"description":"Member history.","content":{"application/json":{"schema":{"properties":{"items":{"type":"array","items":{"discriminator":{"propertyName":"type","mapping":{"AssignedTransactionToCustomer":"#/components/schemas/AssignedTransactionToCustomer","CustomerWasActivated":"#/components/schemas/CustomerWasActivated","CustomerWasAnonymized":"#/components/schemas/CustomerWasAnonymized","CustomerWasDeactivated":"#/components/schemas/CustomerWasDeactivated","CustomerWasMovedToLevel":"#/components/schemas/CustomerWasMovedToLevel","CustomerWasRegistered":"#/components/schemas/CustomerWasRegistered","PendingPointsWereAdded":"#/components/schemas/PendingPointsWereAdded","PendingPointsWereCanceled":"#/components/schemas/PendingPointsWereCanceled","PointsWereAdded":"#/components/schemas/PointsWereAdded","PointsWereBlocked":"#/components/schemas/PointsWereBlocked","PointsWereCanceled":"#/components/schemas/PointsWereCanceled","PointsWereExpired":"#/components/schemas/PointsWereExpired","PointsWereSpent":"#/components/schemas/PointsWereSpent","PointsWereTransferred":"#/components/schemas/PointsWereTransferred","PointsWereUnblocked":"#/components/schemas/PointsWereUnblocked","PointsWereUnlocked":"#/components/schemas/PointsWereUnlocked","RewardWasBought":"#/components/schemas/RewardWasBought","AchievementCompleted":"#/components/schemas/AchievementCompleted","AssignedCustomEventToCustomer":"#/components/schemas/AssignedCustomEventToCustomer","CustomAttributeWasAdded":"#/components/schemas/CustomAttributeWasAdded","CustomAttributesWereUpdated":"#/components/schemas/CustomAttributesWereUpdated","CustomAttributesWereDeleted":"#/components/schemas/CustomAttributesWereDeleted","MemberAchievementCompletionCountWasDecreased":"#/components/schemas/MemberAchievementCompletionCountWasDecreased","MemberAchievementProgressWasChanged":"#/components/schemas/MemberAchievementProgressWasChanged","ChallengeCompleted":"#/components/schemas/ChallengeCompleted","MemberChallengeCompletionCountWasDecreased":"#/components/schemas/MemberChallengeCompletionCountWasDecreased","MemberChallengeProgressWasChanged":"#/components/schemas/MemberChallengeProgressWasChanged","BadgeCompleted":"#/components/schemas/BadgeCompleted","MemberBadgeCompletedCountWasChanged":"#/components/schemas/MemberBadgeCompletedCountWasChanged","IssuedRewardWasCancelled":"#/components/schemas/IssuedRewardWasCancelled","RewardFortuneWheelWasDrawn":"#/components/schemas/RewardFortuneWheelWasDrawn"}},"oneOf":[{"$ref":"#/components/schemas/AssignedTransactionToCustomer"},{"$ref":"#/components/schemas/CustomerWasActivated"},{"$ref":"#/components/schemas/CustomerWasAnonymized"},{"$ref":"#/components/schemas/CustomerWasDeactivated"},{"$ref":"#/components/schemas/CustomerWasMovedToLevel"},{"$ref":"#/components/schemas/CustomerWasRegistered"},{"$ref":"#/components/schemas/PendingPointsWereAdded"},{"$ref":"#/components/schemas/PendingPointsWereCanceled"},{"$ref":"#/components/schemas/PointsWereAdded"},{"$ref":"#/components/schemas/PointsWereBlocked"},{"$ref":"#/components/schemas/PointsWereCanceled"},{"$ref":"#/components/schemas/PointsWereExpired"},{"$ref":"#/components/schemas/PointsWereSpent"},{"$ref":"#/components/schemas/PointsWereTransferred"},{"$ref":"#/components/schemas/PointsWereUnblocked"},{"$ref":"#/components/schemas/PointsWereUnlocked"},{"$ref":"#/components/schemas/RewardWasBought"},{"$ref":"#/components/schemas/AchievementCompleted"},{"$ref":"#/components/schemas/AssignedCustomEventToCustomer"},{"$ref":"#/components/schemas/CustomAttributeWasAdded"},{"$ref":"#/components/schemas/CustomAttributesWereUpdated"},{"$ref":"#/components/schemas/CustomAttributesWereDeleted"},{"$ref":"#/components/schemas/MemberAchievementCompletionCountWasDecreased"},{"$ref":"#/components/schemas/MemberAchievementProgressWasChanged"},{"$ref":"#/components/schemas/ChallengeCompleted"},{"$ref":"#/components/schemas/MemberChallengeCompletionCountWasDecreased"},{"$ref":"#/components/schemas/MemberChallengeProgressWasChanged"},{"$ref":"#/components/schemas/BadgeCompleted"},{"$ref":"#/components/schemas/MemberBadgeCompletedCountWasChanged"},{"$ref":"#/components/schemas/IssuedRewardWasCancelled"},{"$ref":"#/components/schemas/RewardFortuneWheelWasDrawn"}]}},"total":{"$ref":"#/components/schemas/SearchableTotalResponse"}},"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"description":"Unauthorized","content":{"application/json":{"schema":{"oneOf":[{"$ref":"#/components/schemas/ExpiredToken"},{"$ref":"#/components/schemas/InvalidToken"},{"$ref":"#/components/schemas/Unauthorized"}]}}}},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Create member's referral

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br><br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/referral":{"post":{"tags":["Member"],"summary":"Create member's referral","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\n","operationId":"_memberPostReferral","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"required":["referrerId"],"properties":{"referrerId":{"type":"string","format":"uuid"}},"type":"object","additionalProperties":false}}}},"responses":{"204":{"$ref":"#/components/responses/NoContent"},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Delete member's referral

> \<label style="background-color: #D4EDBC;padding:5px;">Management\</label>\<br>\<br><br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}}},"responses":{"NoContent":{"description":"Success. No content."},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/{member}/referral":{"delete":{"tags":["Member"],"summary":"Delete member's referral","description":"<label style=\"background-color: #D4EDBC;padding:5px;\">Management</label><br><br>\n","operationId":"_memberDeleteReferral","parameters":[{"$ref":"#/components/parameters/storeCode"},{"name":"member","in":"path","required":true,"schema":{"type":"string","pattern":"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}|email=[a-zA-Z0-9!#$%&'\\.*+\\-@=?^_`{|}~;]+|phone=[0-9+]+|loyaltyCardNumber=[0-9a-zA-Z\\._-]+"}}],"responses":{"204":{"$ref":"#/components/responses/NoContent"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````

## Get all rewards available for logged in member.

> \<label style="background-color: #BFE1F6;padding:5px;">Integration\</label>\<br>\<br>\
> This method returns a list of all rewards available for logged Member. \
> If sorting is not chosen, the rows will be returned in an unspecified order. \
> To sort a result, use an \`\_orderBy\` parameter in query.<br>

````json
{"openapi":"3.0.0","info":{"title":"Open Loyalty","version":"0.0.1"},"tags":[{"name":"Member","description":"These endpoints allow you to easily manage members."}],"servers":[{"url":"http://openloyalty.localhost"}],"security":[{"Bearer":[]},{"token":[]}],"components":{"securitySchemes":{"Bearer":{"type":"apiKey","description":"Open Loyalty has the JWT authorization.\nTo learn what a JSON Web Token is and how it works, check out Introduction to JSON Web Tokens <https://jwt.io/introduction/>\n\n### Obtain an access token\n\nSend a request with the parameters username and password\n\n#### Definition\n\n`POST /api/admin/login_check` [Go to definition](#operation/adminLoginCheck)\\\n`POST /api/{storeCode}/member/login_check` [Go to definition](#operation/memberLoginCheck)\n\n#### Example\n\n```bash\ncurl {HOST}/api/admin/login_check\n    -H 'Content-Type: application/json;charset=UTF-8'\n    -H 'Accept: application/json, text/plain, */*'\n    --data-binary '{\"username\":\"admin\",\"password\":\"password\"}'\n```\n\n#### Example Response\n\n```json\n{\n    \"token\":\"eyJhbGciOiJSUzI1NiIsInR5cCI6...\",\n    \"refresh_token\":\"0558f8bb29948c4e54c443f...\"\n}\n```\n\n### Using JSON Web Token\n\nAdd authorization header to each request\\\n`Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...`\\\nYou can now access any API method you want under the /api prefix.\n\n#### Example\n```bash\ncurl {HOST}/api/{storeCode}/analytics/members\n    -H 'Accept: application/json'\n    -H 'Content-type: application/x-www-form-urlencoded'\n    -H 'Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6...'\n```\n\n### Refresh JSON Web Token\nYou can refresh token using refresh_token that was given during login.\\\nThere are two endpoints\\\nTo refresh admin token `POST /api/token/refresh` [Go to definition](#operation/tokenRefresh)\\\nTo refresh member token `POST /api/{storeCode}/token/refresh` [Go to definition](#operation/tokenRefreshMember)\n","name":"Authorization","in":"header","bearerFormat":"JWT","scheme":"bearer"},"token":{"type":"apiKey","name":"X-AUTH-TOKEN","in":"header"}},"parameters":{"storeCode":{"name":"storeCode","in":"path","description":"Store code","required":true,"schema":{"type":"string"}},"page":{"name":"_page","in":"query","description":"Number of page with results, starts from 1","required":false,"schema":{"type":"integer","default":1,"minimum":1}},"itemsOnPage":{"name":"_itemsOnPage","in":"query","description":"Items on one page","required":false,"schema":{"type":"integer","default":10,"maximum":50,"minimum":1}},"orderBy":{"name":"_orderBy","in":"query","description":"Sorting order. If sorting is not chosen, the rows will be returned in an unspecified order. Sort order: * `asc` - Ascending, from A to Z * `desc` - Descending, from Z to A","required":false,"style":"deepObject","explode":true,"schema":{"type":"object","additionalProperties":{"type":"string","enum":["asc","desc"]}}}},"schemas":{"MemberRewardResponse":{"required":["reward","brandIcon","rewardId","active","labels","featured","public","photos","createdAt","translations","segmentNames","levelNames","categoryNames"],"properties":{"reward":{"type":"string"},"name":{"type":"string"},"levels":{"type":"array","items":{"type":"string","format":"uuid"}},"segments":{"type":"array","items":{"type":"string","format":"uuid"}},"categories":{"type":"array","items":{"type":"string","format":"uuid"}},"brandIcon":{"type":"boolean"},"canBeBoughtByCustomer":{"type":"boolean","deprecated":true},"rewardId":{"type":"string","format":"uuid"},"target":{"type":"string","enum":["level","segment"]},"active":{"type":"boolean"},"costInPoints":{"type":"number"},"activity":{"properties":{"allTime":{"type":"boolean"}},"type":"object"},"visibility":{"properties":{"allTime":{"type":"boolean"}},"type":"object"},"tax":{"type":"number"},"taxPriceValue":{"type":"number"},"price":{"type":"number"},"labels":{"type":"array","items":{"properties":{"key":{"type":"string"},"value":{"type":"string"}},"type":"object"}},"featured":{"type":"boolean"},"public":{"type":"boolean"},"photos":{"type":"array","items":{"type":"object"}},"createdAt":{"type":"string","format":"date-time"},"usageLimit":{"properties":{"general":{"type":"number"},"perUser":{"type":"number"}},"type":"object","deprecated":true},"notIssuedCoupons":{"type":"number"},"limitUsages":{"properties":{"general":{"properties":{"interval":{"properties":{"type":{"type":"string","enum":["calendarHours","calendarDays","calendarWeeks","calendarMonths","calendarYears"]}},"type":"object"},"currentValue":{"type":"number","format":"float"},"limitValue":{"type":"number","format":"float"}},"type":"object"},"perMember":{"properties":{"interval":{"properties":{"type":{"type":"string","enum":["calendarHours","calendarDays","calendarWeeks","calendarMonths","calendarYears"]}},"type":"object"},"currentValue":{"type":"number","format":"float"},"limitValue":{"type":"number","format":"float"}},"type":"object"}},"type":"object"},"fulfillmentTracking":{"type":"boolean","deprecated":true},"translations":{"type":"array","items":{"properties":{"name":{"type":"string"},"id":{"type":"integer"},"locale":{"type":"string"}},"type":"object"}},"couponGenerator":{"properties":{"length":{"type":"number"},"characterSet":{"type":"string"}},"type":"object"},"couponValue":{"type":"number"},"segmentNames":{"type":"object","additionalProperties":{"type":"string"}},"levelNames":{"type":"object","additionalProperties":{"type":"string"}},"categoryNames":{"type":"object","additionalProperties":{"type":"string"}},"usageLeft":{"type":"number","deprecated":true},"usageLeftForCustomer":{"type":"number","deprecated":true},"unitsConversion":{"properties":{"ratio":{"type":"number","format":"float"},"rounding":{"type":"string","enum":["up","down","default"]}},"type":"object"}},"type":"object"},"SearchableTotalResponse":{"required":["all","filtered","estimated"],"properties":{"all":{"type":"integer","deprecated":true},"filtered":{"type":"integer","deprecated":true},"estimated":{"description":"Field estimated is used to show that the results are estimated. It might happen when there are more than 5000 results due to performance optimization.","type":"boolean","deprecated":true}},"type":"object","deprecated":true}},"responses":{"BadRequest":{"description":"Bad request.","content":{"application/json":{"schema":{"required":["code","message","errors"],"properties":{"code":{"type":"integer"},"message":{"type":"string"},"errors":{"type":"array","items":{"required":["message","parameters","plural","code","path"],"properties":{"message":{"type":"string"},"parameters":{},"plural":{"type":"integer","nullable":true},"code":{"type":"string"},"path":{"type":"string"}},"type":"object"}}},"type":"object"}}}},"Unauthorized":{"description":"Unauthorized","content":{"application/json":{"schema":{"required":["message"],"properties":{"message":{"type":"string"}},"type":"object"}}}},"AccessDenied":{"description":"Forbidden.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}},"NotFound":{"description":"Not found.","content":{"application/json":{"schema":{"required":["code","message"],"properties":{"code":{"type":"integer"},"message":{"type":"string"}},"type":"object"}}}}}},"paths":{"/api/{storeCode}/member/reward":{"get":{"tags":["Member"],"summary":"Get all rewards available for logged in member.","description":"<label style=\"background-color: #BFE1F6;padding:5px;\">Integration</label><br><br>\nThis method returns a list of all rewards available for logged Member. \nIf sorting is not chosen, the rows will be returned in an unspecified order. \nTo sort a result, use an `_orderBy` parameter in query.\n","operationId":"_memberRewardGetList","parameters":[{"$ref":"#/components/parameters/storeCode"},{"$ref":"#/components/parameters/page"},{"$ref":"#/components/parameters/itemsOnPage"},{"$ref":"#/components/parameters/orderBy"},{"name":"rewardId","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string","format":"uuid"}},{"name":"reward","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string","enum":["static_coupon","material","dynamic_coupon","conversion_coupon"]}},{"name":"active","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"boolean"}},{"name":"createdAt","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string","format":"date-time"}},{"name":"public","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"boolean"}},{"name":"fulfillmentTracking","in":"query","required":false,"deprecated":true,"style":"deepObject","explode":true,"schema":{"type":"boolean"}},{"name":"featured","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"boolean"}},{"name":"name","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string"}},{"name":"shortDescription","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string"}},{"name":"brandName","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string"}},{"name":"brandDescription","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string"}},{"name":"levels","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string"}},{"name":"segments","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string"}},{"name":"categories","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string"}},{"name":"labels","in":"query","description":"Labels using pattern e.g. (key1;value1),(key2;value2),...","required":false,"style":"deepObject","explode":true,"schema":{"type":"string"}},{"name":"costInPoints","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"integer"}},{"name":"limit","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"integer"}},{"name":"available","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"boolean"}},{"name":"visible","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"boolean"}},{"name":"visibleFrom","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string","format":"date-time"}},{"name":"visibleTo","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string","format":"date-time"}},{"name":"activeFrom","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string","format":"date-time"}},{"name":"activeTo","in":"query","required":false,"style":"deepObject","explode":true,"schema":{"type":"string","format":"date-time"}},{"name":"format","in":"query","description":"If set to html, the descriptions will be in HTML format. Omit for raw output.","required":false,"style":"deepObject","schema":{"type":"string","format":"html|raw"}}],"responses":{"200":{"description":"Get all rewards available for logged in member.","content":{"application/json":{"schema":{"properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/MemberRewardResponse"}},"total":{"$ref":"#/components/schemas/SearchableTotalResponse"}},"type":"object","additionalProperties":false}}}},"400":{"$ref":"#/components/responses/BadRequest"},"401":{"$ref":"#/components/responses/Unauthorized"},"403":{"$ref":"#/components/responses/AccessDenied"},"404":{"$ref":"#/components/responses/NotFound"}}}}}}
````


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.openloyalty.io/api-reference/member.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
