Triggered when a customer earns or spends points
Event Type
points_event/created
Note: The
points_event/created
webhook is not triggered when using bulk manual adjustments on the Customers page or when importing loyalty data via Settings → CSV Imports.It is triggered when applying point adjustments via the Adjust Total Points CSV upload on the Customers page or through individual adjustments.
Webhook Payload
{
"id": 123456789,
"points_amount": 22,
"points_diff": 22,
"credits_amount": 0,
"credits_diff": 0,
"applied_at": "2025-04-25T12:23:43.000Z",
"internal_note": null,
"external_note": "manual points adjustment",
"event_type": "points_event/created",
"source": "manual",
"order_id": null,
"customer": {
"id": 9876543210987,
"email": "[email protected]",
"first_name": "John",
"last_name": "Doe",
"dob": null,
"accepts_marketing": false,
"orders_count": 0,
"verified_email": false,
"total_spent": 0,
"shopify_tags": [],
"loyalty_status": "member",
"points_tally": 527,
"credits_tally": "0.0",
"event_type": "points_event/created"
}
}
Payload Fields
Field | Type | Description |
---|---|---|
id | Integer | Unique ID of the points event |
points_amount | Integer | Number of points earned |
points_diff | Integer | Net change in points (can be negative for deductions) |
credits_amount | Float | Credit value earned (if applicable) |
credits_diff | Float | Net change in credits |
applied_at | ISO 8601 string | Timestamp when points were applied |
internal_note | String or null | Internal admin note |
external_note | String or null | Customer-facing description of the points event |
event_type | String | Webhook identifier (points_event/created ) |
source | String | Origin of the points event (manual , order_placed , etc.) |
order_id | Integer or null | Associated order ID (if applicable) |
customer | Object | See Customer Object |
Customer Object
Field | Type | Description |
---|---|---|
id | Integer | Customer ID |
email | String | Customer email address |
first_name | String | Customer’s first name |
last_name | String | Customer’s last name |
dob | Date or null | Customer’s date of birth, if provided |
accepts_marketing | Boolean | Whether the customer has opted into marketing |
orders_count | Integer | Total number of orders placed |
verified_email | Boolean | Whether the customer’s email address is verified |
total_spent | Float | Total amount the customer has spent |
shopify_tags | Array of strings | List of Shopify tags associated with the customer |
loyalty_status | String | Current loyalty program status (e.g. member , guest ) |
points_tally | Integer | Current points balance |
credits_tally | Float | Current credit balance |
event_type | String | Always points_event/created for this webhook |