---
title: "Customer Anniversary"
method: POST
path: "swell/customer/anniversary"
---

# Customer Anniversary

`POST swell/customer/anniversary` (webhook)

Sent on a customer's anniversary. Use it to send an anniversary email and tell the customer about any points or coupon from your Anniversary campaign.

To receive it, add `swell/customer/anniversary` 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.

Sent once a day, at 11 am UTC.

## 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, `swell/customer/anniversary`.
  - `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 who's anniversary it is.
  - `customer` object: The customer.
    - `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`.
    - `email` string: The customer's email address.
    - `referred_by_customer` string, nullable: The email address of the customer who referred this customer, or `null` when there is no referrer.
    - `points_earned` integer: Total points the customer has earned over their lifetime.
    - `points_balance` integer: The points the customer can spend now, after this event.
    - `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`).
    - `first_name` string, nullable: The customer's first name.
    - `last_name` string, nullable: The customer's last name.
    - `last_seen_at` string, date-time, nullable: When Yotpo Loyalty last recorded activity for the customer, or `null`.
    - `third_party_id` string, nullable: The customer's ID in your e-commerce platform.
  - `perk` LoyaltyPerk: A reward record: points or a reward a customer got.
    - `id` integer: The ID of the reward record.
    - `campaign_id` integer, nullable: The ID of the campaign (earning rule) that gave the reward, or `null`.
    - `merchant_id` integer: Your Yotpo Loyalty merchant ID.
    - `customer_id` integer: The customer's Yotpo Loyalty ID.
    - `reward_points` integer, nullable: The number of points awarded with this record. `0` when the reward is a coupon.
    - `completed` boolean: Whether the customer completed the action that earns the reward.
    - `completed_at` string, date-time, nullable: When the action was completed, or `null`.
    - `awarded` boolean: Whether the reward was given to the customer.
    - `awarded_at` string, date-time, nullable: When the reward was given, or `null`.
    - `pending` boolean: Whether the reward is pending and not yet available.
    - `reversed` boolean: Whether the reward was taken back, for example after a refund.
    - `reversed_at` string, date-time, nullable: When the reward was reversed, or `null`.
    - `expired` boolean: Whether the reward has expired.
    - `expired_at` string, date-time, nullable: When the reward expired, or `null`.
    - `expires_at` string, date-time, nullable: When the reward will expire, or `null`.
    - `redemption_option_id` integer, nullable: The ID of the reward (redemption option) given, or `null` when the reward is points.
    - `history_title` string: The description shown in the customer's points history.
    - `created_at` string, date-time: When the reward record was created.
  - `redemption` object: The redemption.
    - `id` integer: The redemption ID.
    - `created_at` string, date-time: When the redemption was created.
    - `updated_at` string, date-time: When the redemption was last updated.
    - `reward_text` string: If customer was gifted a coupon, this is the coupon code.
    - `approved` boolean: Whether the redemption is approved.
    - `approved_at` string, date-time, nullable: When the redemption was approved.
  - `redemption_option` object: The reward (redemption option).
    - `id` integer: The reward (redemption option) ID.
    - `amount` integer, nullable: The points the reward costs. `0` for `variable` rewards, where the customer chooses how many points to redeem.
    - `name` string: If customer was gifted a coupon, this is the discount name.
    - `description` string, nullable: The reward description shown to customers.
    - `icon` string: The reward image: an image URL or a Font Awesome class name such as `fa-dollar`.
    - `cost_text` string, nullable: The points cost as display text, for example `500 points`.
  - `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)
