---
agentTools:
  projectIndex: https://loyaltyapi.yotpo.com/llms.txt
---

# `customer.points_expire_at` on loyalty webhook events

* **Product Potential Points** — Added `reference/product-potential-points-api-settings.json` (storefront `…/loyalty`, POST `product_potential_points` and POST `customer_product_potential_points` with auth headers). Removed that path from `reference/api-settings.json`.
* **`points_expire_at` in `reference/api-settings.json`** — New `components.schemas.CustomerPointsExpireAt` (expiration policies, webhook links, REST parity). `GET /api/v2/customers/recent` customer items and `GET /api/v2/customers` 200 schema reference it.
* **Ten webhook pages** (`referral-completed`, `loyalty-opt-in-1`, `customer-birthday-captured`, `redemption-cancellation-request`, `customer-anniversary-captured`, `redemption-reminder-1`, `referral-link-share`, `referral-share-reminder`, `referral-completed-new`, `points-earned`) — JSON samples include `points_expire_at` with an ISO example where expiration applies; in-page `customer.points_expire_at` notes policies, `null` for Never expire, and REST parity. No long copy on `intro-to-webhook-events.md`.
* **Customer docs** — `fetch-customer-details.md` and `fetch-all-recently-updated-customers.md` mention `points_expire_at` and link to Points Earned for the full field write-up.