---
title: "Tier Expiration Reminder"
method: POST
path: "yotpo/tier/expiration/reminder"
---

# Tier Expiration Reminder

`POST yotpo/tier/expiration/reminder` (webhook)

Sent when a customer is at risk of losing their tier: 30, 14 and 7 days before it expires, depending on your settings, and only if they haven't met the requirements to keep it. Each reminder is sent once.

To receive it, add `yotpo/tier/expiration/reminder` to `events` when you [create a filter](ref:create-filter), then [create a store subscription](ref:create-subscription) for each store that installed your app. Yotpo sends the event to your target URL as a `POST` with this JSON body.

## Headers

- `X-Yotpo-Webhooks-Event-Type` string, required
- `X-Yotpo-Webhooks-Tenant-Type` string, required
- `X-Yotpo-Webhooks-Tenant-Id` string, required
- `WebhookMessageId` string, required
- `WebhookMessageIdPerTarget` string, required

## Payload

- object
  - `topic` string: The event name, `yotpo/tier/expiration/reminder`.
  - `name` string: The display name of the event.
  - `website_url` string: Your store's website URL.
  - `store_name` string: Your store's name.
  - `email` string: The email address of the customer whose tier is about to expire.
  - `customer` object: The customer object, including current VIP tier details (`vip_tier_name`, `vip_tier_ends_at`).
    - `total_spend_cents` integer: Total spend recorded for the customer, in cents.
    - `total_purchases` integer: Number of purchases recorded for the customer.
    - `perks_redeemed` integer: Number of rewards the customer has redeemed.
    - `last_purchase_at` string, date-time, nullable: When the customer's last recorded purchase was made, or `null`.
    - `first_name` string, nullable: The customer's first name.
    - `last_name` string, nullable: The customer's last name.
    - `is_member` boolean: Whether the customer is a loyalty program member.
    - `accepts_marketing` boolean, nullable: Whether the customer accepts marketing, or `null` when unknown.
    - `email` string: The customer's email address.
    - `points_balance` integer: The points the customer can spend now, after this event.
    - `points_earned` integer: Total points the customer has earned over their lifetime.
    - `last_seen_at` string, date-time, nullable: When Yotpo Loyalty last recorded activity for the customer, or `null`.
    - `thirty_party_id` string, nullable: Legacy misspelled duplicate of `third_party_id`. Use `third_party_id`.
    - `third_party_id` string, nullable: The customer's ID in your e-commerce platform.
    - `referral_link` string: The customer's personal referral link.
    - `referral_discount_code` string, nullable: The discount code the customer received for being referred, or `null`.
    - `is_opt_in` boolean: Whether the customer is opted in to the loyalty program.
    - `loyalty_opt_in_date` string: The date the customer opted in to the loyalty program, or `null` when they have not.
    - `has_store_account` boolean: Whether the customer has an account in your store.
    - `credit_balance` string: Store-credit value of the points balance, formatted in your store currency, for example `$0`.
    - `credit_balance_in_customer_currency` string: Store-credit value of the points balance, formatted in the customer's currency.
    - `is_affiliate` boolean: Whether the customer is an affiliate.
    - `points_expire_at` string, date-time, nullable: When the customer's points expire, or `null` when they never expire. Follows your **Points expiration policy**: **Last Activity** (counted from the customer's last activity), **Date Earned** (the next upcoming expiration across the customer's point batches) or **Never expire** (`null`).
    - `referred_by_customer` string, nullable: The email address of the customer who referred this customer, or `null` when there is no referrer.
    - `vip_tier_name` string, nullable: The customer's current VIP tier, or `null` when they aren't in one.
    - `vip_tier_ends_at` string, date, nullable: When the customer's current VIP tier ends, or `null` when it doesn't expire.
    - `anniversary_month` integer, nullable: The customer's anniversary month (1 to 12), or `null` when not set.
    - `anniversary_day` integer, nullable: The day of the month of the customer's anniversary, or `null` when not set.
    - `anniversary_year` string, nullable: The year of the customer's anniversary, or `null` when not set.
  - `vip_tier_expiration_date` string, date-time: The date and time when the customer's current VIP tier expires (ISO 8601).
  - `vip_tier_expiration_reminder_days` integer: How many days remain before the tier expires (for example, `30`, `14`, or `7`).
  - `vip_stats` object: The customer's current progress toward tier requirements (`points_earned`, `amount_spent_cents`).
    - `points_earned` integer: Points earned in the current tier period.
    - `amount_spent_cents` integer: Spend in the current tier period, in cents.
  - `vip_stats_needed_maintain` object: How much more the customer needs to maintain their current tier (`points_needed`, `amount_cents_needed`).
    - `points_needed` integer: Points still needed to keep the current tier.
    - `amount_cents_needed` integer: Spend still needed to keep the current tier, in cents.
  - `next_vip_tier_name` string: The name of the next VIP tier above the customer's current tier.
  - `vip_stats_needed_next` object: How much more the customer needs to reach the next tier. This object is optional and may be omitted from the payload.
    - `points_needed` integer: Points still needed to reach the next tier.
    - `amount_cents_needed` integer: Spend still needed to reach the next tier, in cents.
  - `published_at` string, date-time: When Yotpo sent the event.

## Acknowledgement `200`

Return any 2xx status quickly to acknowledge the event. Without one, Yotpo retries at least 10 times with exponential backoff.

---

[API](https://skmtc.dev/yotpo/apis/app-developer-api.md) - [All operations](https://skmtc.dev/yotpo/apis/app-developer-api/llms.txt) - [OpenAPI document](https://skmtc.dev/yotpo/apis/app-developer-api/revisions/5bcae8239b6e?raw)
