points_event/created

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

FieldTypeDescription
idIntegerUnique ID of the points event
points_amountIntegerNumber of points earned
points_diffIntegerNet change in points (can be negative for deductions)
credits_amountFloatCredit value earned (if applicable)
credits_diffFloatNet change in credits
applied_atISO 8601 stringTimestamp when points were applied
internal_noteString or nullInternal admin note
external_noteString or nullCustomer-facing description of the points event
event_typeStringWebhook identifier (points_event/created)
sourceStringOrigin of the points event (manual, order_placed, etc.)
order_idInteger or nullAssociated order ID (if applicable)
customerObjectSee Customer Object

Customer Object

FieldTypeDescription
idIntegerCustomer ID
emailStringCustomer email address
first_nameStringCustomer’s first name
last_nameStringCustomer’s last name
dobDate or nullCustomer’s date of birth, if provided
accepts_marketingBooleanWhether the customer has opted into marketing
orders_countIntegerTotal number of orders placed
verified_emailBooleanWhether the customer’s email address is verified
total_spentFloatTotal amount the customer has spent
shopify_tagsArray of stringsList of Shopify tags associated with the customer
loyalty_statusStringCurrent loyalty program status (e.g. member, guest)
points_tallyIntegerCurrent points balance
credits_tallyFloatCurrent credit balance
event_typeStringAlways points_event/created for this webhook