> For the complete documentation index, see [llms.txt](https://docs.hos.accessacloud.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hos.accessacloud.com/atreemo-api/api-reference/atreemo-api-reference/loyalty.md).

# Loyalty

Api Methods for Loyalty

## BurnPoints

> Burning – Use points

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"PointsInput":{"type":"object","properties":{"ActionDate":{"type":"string","format":"date-time","nullable":true,"description":"The date of the action (ii null we use current date time of the call)"},"ApplyTiersRate":{"type":"boolean","description":"By Default is true. apply the tier rate when adding points (not used for BurnPoints method)"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"ExternalTransactionID":{"type":"string","description":"The external ID like TicketID or ReceiptID"},"LocationID":{"type":"string","description":"Location ID"},"LocationName":{"type":"string","description":"Location Name"},"NbPoints":{"type":"number","format":"double","description":"Number of point"},"TranscationDescription":{"type":"string","description":"The description of the transaction"}},"required":["CustomerID","NbPoints","TranscationDescription"]},"PointsOutput":{"type":"object","properties":{"CashBalance":{"type":"number","format":"double","description":"Cash balance"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"Error":{"type":"string","description":"Error description if exist"},"PointBalance":{"type":"integer","format":"int32","description":"Point balance"}}}}},"paths":{"/api/Loyalty/BurnPoints":{"post":{"operationId":"LoyaltyBurnPoints","summary":"BurnPoints","tags":["Loyalty"],"description":"Burning – Use points","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsOutput"}}}}}}}}}
```

## BurnPointsByAmount

> Burning – Use points by amount

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"CashInput":{"type":"object","properties":{"ActionDate":{"type":"string","format":"date-time","nullable":true,"description":"The date of the action (if null we use current date time of the call)"},"Amount":{"type":"number","format":"double","description":"amount"},"ApplyTiersRate":{"type":"boolean","description":"By Default is true. apply the tier rate when adding points (not used for BurnPoints method)"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"ExternalTransactionID":{"type":"string","description":"The external ID like TicketID or ReceiptID …"},"LocationID":{"type":"string","description":"Location ID"},"LocationName":{"type":"string","description":"Location Name"},"TranscationDescription":{"type":"string","description":"The description of the transaction"}},"required":["Amount","CustomerID","TranscationDescription"]},"PointsOutput":{"type":"object","properties":{"CashBalance":{"type":"number","format":"double","description":"Cash balance"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"Error":{"type":"string","description":"Error description if exist"},"PointBalance":{"type":"integer","format":"int32","description":"Point balance"}}}}},"paths":{"/api/Loyalty/BurnPointsByAmount":{"post":{"operationId":"LoyaltyBurnPointsByAmount","summary":"BurnPointsByAmount","tags":["Loyalty"],"description":"Burning – Use points by amount","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsOutput"}}}}}}}}}
```

## BurnReservedPoints

> burn reserved points

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"BurnReservedPointInput":{"type":"object","properties":{"Description":{"type":"string","description":"The description of the transaction"},"PointsReservationCode":{"type":"integer","format":"int32","description":"this code is the output of the methods ReservePoints/ReservePointsByAmount"}},"required":["PointsReservationCode"]},"ApiOutput":{"type":"object","properties":{"Error":{"type":"string","description":"Error description"},"Response":{"type":"boolean","description":"The status call"}}}}},"paths":{"/api/Loyalty/BurnReservedPoints":{"post":{"operationId":"LoyaltyBurnReservedPoints","summary":"BurnReservedPoints","tags":["Loyalty"],"description":"burn reserved points","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BurnReservedPointInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOutput"}}}}}}}}}
```

## CancelReservePoints

> Cancel points reservation

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"CancelReservationInput":{"type":"object","properties":{"PointsReservationCode":{"type":"integer","format":"int32","description":"this code is the output of the methods ReservePoints/ReservePointsByAmount"}},"required":["PointsReservationCode"]},"ApiOutput":{"type":"object","properties":{"Error":{"type":"string","description":"Error description"},"Response":{"type":"boolean","description":"The status call"}}}}},"paths":{"/api/Loyalty/CancelReservePoints":{"post":{"operationId":"LoyaltyCancelReservePoints","summary":"CancelReservePoints","tags":["Loyalty"],"description":"Cancel points reservation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelReservationInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiOutput"}}}}}}}}}
```

## EarnFromReceipt

> Processes loyalty earning for the receipt identified by member number, receipt code, location and transaction date. Missing identifiers or the minimum DateTime value produce a business failure. The action invokes the receipt procedure and may post a transaction; inspect Response and Message instead of assuming a successful HTTP status means points were earned. Do not retry without a reviewed replay policy.

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"EarnFromReceiptInput":{"type":"object","nullable":false,"properties":{"MemberNumber":{"type":"string","nullable":false,"minLength":1},"ReceiptCode":{"type":"string","nullable":false,"minLength":1},"LocationID":{"type":"integer","format":"int32","nullable":false},"TransactionDateTime":{"type":"string","format":"date-time","nullable":false}},"description":"Source-backed JSON members, including inheritance and JSON naming/ignore attributes. No property is required solely because its CLR value type is non-nullable. Runtime and deployment alignment are unverified.","required":["MemberNumber","ReceiptCode","LocationID","TransactionDateTime"]},"EarnFromReceiptOutput":{"type":"object","nullable":true,"properties":{"Response":{"type":"boolean"},"Message":{"type":"string","nullable":true},"CtcID":{"type":"integer","format":"int32"},"OrderUniqueID":{"type":"integer","format":"int64"}},"description":"Source-backed JSON members, including inheritance and JSON naming/ignore attributes. No property is required solely because its CLR value type is non-nullable. Runtime and deployment alignment are unverified."}}},"paths":{"/api/Loyalty/EarnFromReceipt":{"post":{"operationId":"LoyaltyEarnFromReceipt","summary":"EarnFromReceipt","tags":["Loyalty"],"description":"Processes loyalty earning for the receipt identified by member number, receipt code, location and transaction date. Missing identifiers or the minimum DateTime value produce a business failure. The action invokes the receipt procedure and may post a transaction; inspect Response and Message instead of assuming a successful HTTP status means points were earned. Do not retry without a reviewed replay policy.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarnFromReceiptInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EarnFromReceiptOutput"}}}}}}}}}
```

## EarnPoints

> Earning – Award points

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"PointsInput":{"type":"object","properties":{"ActionDate":{"type":"string","format":"date-time","nullable":true,"description":"The date of the action (ii null we use current date time of the call)"},"ApplyTiersRate":{"type":"boolean","description":"By Default is true. apply the tier rate when adding points (not used for BurnPoints method)"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"ExternalTransactionID":{"type":"string","description":"The external ID like TicketID or ReceiptID"},"LocationID":{"type":"string","description":"Location ID"},"LocationName":{"type":"string","description":"Location Name"},"NbPoints":{"type":"number","format":"double","description":"Number of point"},"TranscationDescription":{"type":"string","description":"The description of the transaction"}},"required":["CustomerID","NbPoints","TranscationDescription"]},"PointsOutput":{"type":"object","properties":{"CashBalance":{"type":"number","format":"double","description":"Cash balance"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"Error":{"type":"string","description":"Error description if exist"},"PointBalance":{"type":"integer","format":"int32","description":"Point balance"}}}}},"paths":{"/api/Loyalty/EarnPoints":{"post":{"operationId":"LoyaltyEarnPoints","summary":"EarnPoints","tags":["Loyalty"],"description":"Earning – Award points","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsOutput"}}}}}}}}}
```

## EarnPointsByAmount

> Earning – Award points by amount

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"CashInput":{"type":"object","properties":{"ActionDate":{"type":"string","format":"date-time","nullable":true,"description":"The date of the action (if null we use current date time of the call)"},"Amount":{"type":"number","format":"double","description":"amount"},"ApplyTiersRate":{"type":"boolean","description":"By Default is true. apply the tier rate when adding points (not used for BurnPoints method)"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"ExternalTransactionID":{"type":"string","description":"The external ID like TicketID or ReceiptID …"},"LocationID":{"type":"string","description":"Location ID"},"LocationName":{"type":"string","description":"Location Name"},"TranscationDescription":{"type":"string","description":"The description of the transaction"}},"required":["Amount","CustomerID","TranscationDescription"]},"PointsOutput":{"type":"object","properties":{"CashBalance":{"type":"number","format":"double","description":"Cash balance"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"Error":{"type":"string","description":"Error description if exist"},"PointBalance":{"type":"integer","format":"int32","description":"Point balance"}}}}},"paths":{"/api/Loyalty/EarnPointsByAmount":{"post":{"operationId":"LoyaltyEarnPointsByAmount","summary":"EarnPointsByAmount","tags":["Loyalty"],"description":"Earning – Award points by amount","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsOutput"}}}}}}}}}
```

## GetBalance

> Get point balance of the requested customer

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"GetBalanceOutput":{"type":"object","properties":{"CashBalance":{"type":"number","format":"double","description":"Cash balance"},"PointBalance":{"type":"integer","format":"int32","description":"Point balance"}}}}},"paths":{"/api/Loyalty/GetBalance":{"get":{"operationId":"LoyaltyGetBalance","summary":"GetBalance","tags":["Loyalty"],"description":"Get point balance of the requested customer","parameters":[{"name":"customerid","in":"query","schema":{"type":"integer","format":"int32"},"description":"Native query parameter. CLR int customerid in the pinned controller signature.","required":true}],"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetBalanceOutput"}}}}}}}}}
```

## GetCustomerDetails

> Get customer details by customerid

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"CustomerDetailsOutput":{"type":"object","properties":{"LastVisiteDate":{"type":"string","format":"date-time","nullable":true,"description":"Last visite of the requested customer"},"LoyaltyCashBalance":{"type":"number","format":"double","description":"Cash balance of the requested customer"},"LoyaltyPointsBalance":{"type":"integer","format":"int32","description":"Point balance of the requested customer"}}}}},"paths":{"/api/Loyalty/GetCustomerDetails":{"get":{"operationId":"LoyaltyGetCustomerDetails","summary":"GetCustomerDetails","tags":["Loyalty"],"description":"Get customer details by customerid","parameters":[{"name":"customerid","in":"query","schema":{"type":"integer","format":"int32"},"description":"Native query parameter. CLR int customerid in the pinned controller signature.","required":true}],"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDetailsOutput"}}}}}}}}}
```

## GetCustomerDetailsByExternalCustomerID

> Get customer details by External Customer ID

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"CustomerDetailsOutput":{"type":"object","properties":{"LastVisiteDate":{"type":"string","format":"date-time","nullable":true,"description":"Last visite of the requested customer"},"LoyaltyCashBalance":{"type":"number","format":"double","description":"Cash balance of the requested customer"},"LoyaltyPointsBalance":{"type":"integer","format":"int32","description":"Point balance of the requested customer"}}}}},"paths":{"/api/Loyalty/GetCustomerDetailsByExternalCustomerID":{"get":{"operationId":"LoyaltyGetCustomerDetailsByExternalCustomerId","summary":"GetCustomerDetailsByExternalCustomerID","tags":["Loyalty"],"description":"Get customer details by External Customer ID","parameters":[{"name":"externalcustomerid","in":"query","schema":{"type":"string","nullable":true},"description":"Native query parameter. CLR string externalcustomerid in the pinned controller signature.","required":true},{"name":"partnerid","in":"query","schema":{"type":"string","nullable":true},"description":"Native query parameter. CLR string partnerid in the pinned controller signature.","required":true}],"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDetailsOutput"}}}}}}}}}
```

## GetCustomerDetailsByLoyaltyCardNumber

> Get customer details by loyalty card number

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"CustomerDetailsOutput":{"type":"object","properties":{"LastVisiteDate":{"type":"string","format":"date-time","nullable":true,"description":"Last visite of the requested customer"},"LoyaltyCashBalance":{"type":"number","format":"double","description":"Cash balance of the requested customer"},"LoyaltyPointsBalance":{"type":"integer","format":"int32","description":"Point balance of the requested customer"}}}}},"paths":{"/api/Loyalty/GetCustomerDetailsByLoyaltyCardNumber":{"get":{"operationId":"LoyaltyGetCustomerDetailsByLoyaltyCardNumber","summary":"GetCustomerDetailsByLoyaltyCardNumber","tags":["Loyalty"],"description":"Get customer details by loyalty card number","parameters":[{"name":"loyaltycardnumber","in":"query","schema":{"type":"string","nullable":true},"description":"Native query parameter. CLR string loyaltycardnumber in the pinned controller signature.","required":true}],"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CustomerDetailsOutput"}}}}}}}}}
```

## GetPointsToBeExpired

> Get points to be expired in period of time

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"GetPointsToBeExpiredOutput":{"type":"object","properties":{"Error":{"type":"string","description":"Error description if exist"},"PointToBeExpired":{"type":"number","format":"double","description":"Points to be expired"}}}}},"paths":{"/api/Loyalty/GetPointsToBeExpired":{"get":{"operationId":"LoyaltyGetPointsToBeExpired","summary":"GetPointsToBeExpired","tags":["Loyalty"],"description":"Get points to be expired in period of time","parameters":[{"name":"customerid","in":"query","schema":{"type":"integer","format":"int32"},"description":"Native query parameter. CLR int customerid in the pinned controller signature.","required":true},{"name":"NBdays","in":"query","schema":{"type":"integer","format":"int32"},"description":"Native query parameter. CLR int NBdays in the pinned controller signature.","required":true},{"name":"BrandID","in":"query","schema":{"type":"integer","format":"int32","nullable":true},"description":"Native query parameter. CLR int? BrandID in the pinned controller signature.","required":true}],"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPointsToBeExpiredOutput"}}}}}}}}}
```

## GetTransactionDetails

> Get the history of transactions of the requested customer

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"LoyaltyTransaction":{"type":"object","properties":{"Amount":{"type":"number","format":"double","nullable":true,"description":"amount"},"AmountEarned":{"type":"number","format":"double","nullable":true,"description":"Amount Earned"},"ExternalTransactionID":{"type":"string","description":"The external ID like TicketID or ReceiptID …"},"LocationID":{"type":"string","description":"Location ID"},"LocationName":{"type":"string","description":"Location Name"},"NbPoints":{"type":"number","format":"double","description":"Number of points of this transaction"},"TransactionDate":{"type":"string","format":"date-time","description":"The datetime of the transaction"},"TransactionDescription":{"type":"string","description":"The description of the transaction"},"TransactionType":{"type":"string","description":"It will be: - “add” if the transaction was adding points - “redeem” if the transaction was removing points"}}}}},"paths":{"/api/Loyalty/GetTransactionDetails":{"get":{"operationId":"LoyaltyGetTransactionDetails","summary":"GetTransactionDetails","tags":["Loyalty"],"description":"Get the history of transactions of the requested customer","parameters":[{"name":"customerid","in":"query","schema":{"type":"integer","format":"int32"},"description":"Native query parameter. CLR int customerid in the pinned controller signature.","required":true}],"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/LoyaltyTransaction"}}}}}}}}}}
```

## RefundByAmount

> Refund amount

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"CashInput":{"type":"object","properties":{"ActionDate":{"type":"string","format":"date-time","nullable":true,"description":"The date of the action (if null we use current date time of the call)"},"Amount":{"type":"number","format":"double","description":"amount"},"ApplyTiersRate":{"type":"boolean","description":"By Default is true. apply the tier rate when adding points (not used for BurnPoints method)"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"ExternalTransactionID":{"type":"string","description":"The external ID like TicketID or ReceiptID …"},"LocationID":{"type":"string","description":"Location ID"},"LocationName":{"type":"string","description":"Location Name"},"TranscationDescription":{"type":"string","description":"The description of the transaction"}},"required":["Amount","CustomerID","TranscationDescription"]},"PointsOutput":{"type":"object","properties":{"CashBalance":{"type":"number","format":"double","description":"Cash balance"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"Error":{"type":"string","description":"Error description if exist"},"PointBalance":{"type":"integer","format":"int32","description":"Point balance"}}}}},"paths":{"/api/Loyalty/RefundByAmount":{"post":{"operationId":"LoyaltyRefundByAmount","summary":"RefundByAmount","tags":["Loyalty"],"description":"Refund amount","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CashInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointsOutput"}}}}}}}}}
```

## ReservePoints

> Reserve points for burn, the points will reserved until this will be confirmed by calling the method ConfirmBurnPoints/PostTransaction (the reservation code should be sent in the transaction payload) or 30 mn will be elapsed.

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"PointReservationInput":{"type":"object","properties":{"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"Description":{"type":"string","description":"The description of the transaction"},"ExternalTransactionID":{"type":"string","description":"The external ID like TicketID or ReceiptID"},"LocationID":{"type":"string","description":"Location ID"},"NbPoints":{"type":"number","format":"double","description":"Number of point"}},"required":["CustomerID","Description","LocationID","NbPoints"]},"PointReservationOutput":{"type":"object","properties":{"CashBalance":{"type":"number","format":"double","description":"Cash balance"},"Error":{"type":"string","description":"Error description if exist"},"PointBalance":{"type":"integer","format":"int32","description":"Point balance"},"PointsReservationCode":{"type":"integer","format":"int32","description":"this will be used to revoke this action"}}}}},"paths":{"/api/Loyalty/ReservePoints":{"post":{"operationId":"LoyaltyReservePoints","summary":"ReservePoints","tags":["Loyalty"],"description":"Reserve points for burn, the points will reserved until this will be confirmed by calling the method ConfirmBurnPoints/PostTransaction (the reservation code should be sent in the transaction payload) or 30 mn will be elapsed.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointReservationInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointReservationOutput"}}}}}}}}}
```

## ReservePointsByAmount

> Reserve points by amount for burn (Atreemo wil convert the amount to points and reserve them), the points will reserved until this will be confirmed by calling the method ConfirmBurnPoints/PostTransaction (the reservation code should be sent in the transaction payload) or 30 mn will be elapsed.

```json
{"openapi":"3.0.3","info":{"title":"Atreemo API","version":"0.1.0"},"tags":[{"name":"Loyalty","description":"Api Methods for Loyalty"}],"servers":[{"url":"https://apim-hospitality-dev-uksouth.azure-api.net/atreemo-api","description":"Local DEV APIM import draft only; not a deployed endpoint announcement."}],"security":[{"AtreemoBearer":[]}],"components":{"securitySchemes":{"AtreemoBearer":{"type":"http","scheme":"bearer","description":"Atreemo access token obtained by the caller from the Atreemo instance `POST /token` endpoint (OAuth2 password grant) and sent as `Authorization: Bearer <token>`. See the Authorisation guide."}},"schemas":{"AmountReservationInput":{"type":"object","properties":{"Amount":{"type":"number","format":"double","description":"Amount"},"CustomerID":{"type":"integer","format":"int32","description":"The unique identifier of the customer in CRM side (CtcID)."},"Description":{"type":"string","description":"The description of the transaction"},"ExternalTransactionID":{"type":"string","description":"The external ID like TicketID or ReceiptID"},"LocationID":{"type":"string","description":"Location ID"}},"required":["Amount","CustomerID","Description","LocationID"]},"PointReservationOutput":{"type":"object","properties":{"CashBalance":{"type":"number","format":"double","description":"Cash balance"},"Error":{"type":"string","description":"Error description if exist"},"PointBalance":{"type":"integer","format":"int32","description":"Point balance"},"PointsReservationCode":{"type":"integer","format":"int32","description":"this will be used to revoke this action"}}}}},"paths":{"/api/Loyalty/ReservePointsByAmount":{"post":{"operationId":"LoyaltyReservePointsByAmount","summary":"ReservePointsByAmount","tags":["Loyalty"],"description":"Reserve points by amount for burn (Atreemo wil convert the amount to points and reserve them), the points will reserved until this will be confirmed by calling the method ConfirmBurnPoints/PostTransaction (the reservation code should be sent in the transaction payload) or 30 mn will be elapsed.","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AmountReservationInput"}}}},"responses":{"200":{"description":"OK (sample status in the public collection).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PointReservationOutput"}}}}}}}}}
```


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.hos.accessacloud.com/atreemo-api/api-reference/atreemo-api-reference/loyalty.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
