> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://docs.bloy.io/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Points

### Add points
Add loyalty points to a customer's balance.

`POST` `/rest-api/v1/points/add`

**Body**

| Name | Type | Description |
| ---- |
| customerIdentifier | string | Shopify customer ID or email |
| amount | int | Number of points to add |
| description | string | Reason for the change |
| note | string | Additional note |

**Example request**
```
curl --request POST \
     --url https://api.bloy.io/rest-api/v1/points/add \
     --header 'Authorization: Bearer YourApiKeyGoesHere' \
     --header 'Content-Type: application/json' \
     --data '{
       "customerIdentifier": "customer@example.com",
       "amount": 100,
       "description": "Compensation for support ticket #1234",
       "note": "Approved by support team"
     }'
```
**Example response**
```
{
  "success": true,
  "message": "OK",
  "activity": {
    "_id": "664f1a2b3c4d5e6f7a8b9c0d",
    "type": "adjust_point",
    "settingType": "adjust_point",
    "description": "Compensation for support ticket #1234",
    "note": "Approved by support team",
    "oldPoints": 150,
    "newPoints": 250,
    "customer": "65e0a1b2c3d4e5f6a7b8c9d0",
    "shop": "65d0a1b2c3d4e5f6a7b8c9d0",
    "createdAt": "2026-06-10T08:30:00.000Z",
    "updatedAt": "2026-06-10T08:30:00.000Z"
  }
}
```

---
### Subtract points
Subtract loyalty points from a customer's balance.

`POST` `/rest-api/v1/points/substract`

**Body**

| Name | Type | Description |
| ---- |
| customerIdentifier | string | Shopify customer ID or email |
| amount | int | Number of points to subtract |
| description | string | Reason for the change |
| note | string | Additional note |

**Example request**
```
curl --request POST \
     --url https://api.bloy.io/rest-api/v1/points/subtract \
     --header 'Authorization: Bearer YourApiKeyGoesHere' \
     --header 'Content-Type: application/json' \
     --data '{
       "customerIdentifier": "customer@example.com",
       "amount": 100,
       "description": "Refunded order #5678",
       "note": "Order was cancelled"
     }'
```

**Example response**
```
{
  "success": true,
  "message": "OK",
  "activity": {
    "_id": "664f1a2b3c4d5e6f7a8b9c0e",
    "type": "adjust_point",
    "settingType": "adjust_point",
    "description": "Refunded order #5678",
    "note": "Order was cancelled",
    "oldPoints": 250,
    "newPoints": 150,
    "customer": "65e0a1b2c3d4e5f6a7b8c9d0",
    "shop": "65d0a1b2c3d4e5f6a7b8c9d0",
    "createdAt": "2026-06-10T08:35:00.000Z",
    "updatedAt": "2026-06-10T08:35:00.000Z"
  }
}
```

---
### Update points
Set a customer's loyalty point balance to the exact `amount` provided.

`POST` `/rest-api/v1/points/update`  

**Body**

| Name | Type | Description |
| ---- |
| customerIdentifier | string | Shopify customer ID or email |
| amount | int | Number of points to update |
| description | string | Reason for the change |
| note | string | Additional note |

**Example request**
```
curl --request POST \
     --url https://api.bloy.io/rest-api/v1/points/update \
     --header 'Authorization: Bearer YourApiKeyGoesHere' \
     --header 'Content-Type: application/json' \
     --data '{
       "customerIdentifier": "customer@example.com",
       "amount": 500,
       "description": "Sync points from legacy program",
       "note": "Migration batch #3"
     }'
```

**Example response**
```
{
  "success": true,
  "message": "OK",
  "activity": {
    "_id": "664f1a2b3c4d5e6f7a8b9c0f",
    "type": "adjust_point",
    "settingType": "adjust_point",
    "description": "Sync points from legacy program",
    "note": "Migration batch #3",
    "oldPoints": 150,
    "newPoints": 500,
    "customer": "65e0a1b2c3d4e5f6a7b8c9d0",
    "shop": "65d0a1b2c3d4e5f6a7b8c9d0",
    "createdAt": "2026-06-10T08:40:00.000Z",
    "updatedAt": "2026-06-10T08:40:00.000Z"
  }
}
```
