---
title: "Offer Deleted"
method: POST
path: "offer.deleted"
---

# Offer Deleted

`POST offer.deleted` (webhook)

An offer left the subscription's view.

## Payload

- OfferDeletedEvent: An offer left the subscription's view.
  - `id` string, required: Stable across redeliveries; dedup on it.
  - `timestamp` string, date-time, required: When the change was committed.
  - `type` 'offer.deleted', required
  - `data` OfferLifecycleData, required
    - `subscription_id` string, required: The subscription this event matched.
    - `subject` OfferSubject, required: The offer or configuration the event is about.
      - `product_id` string, required
      - `domain` string, required: Merchant domain, e.g. nordstrom.com. Matches `domain` on the product's offers.
      - `locale` WebhookLocale, required: The locale the subscription reads the product in.
        - `language` 'en' | 'de' | 'fr' | 'it' | 'es' | 'nl' | 'sv' | 'fi' | 'pt' | 'cs' | 'el' | 'ro' | 'pl', required: ISO 639-1 language code.
        - `country` 'US' | 'GB' | 'EU' | 'AU' | 'CA' | 'IE' | 'DE' | 'AT' | 'FR' | 'BE' | 'IT' | 'ES' | 'NL' | 'SE' | 'FI' | 'PT' | 'CZ' | 'GR' | 'RO' | 'CH' | 'PL': ISO 3166-1 alpha-2 country code (plus the pan-region ``EU``).
        - `currency` 'USD' | 'CAD' | 'AUD' | 'GBP' | 'EUR' | 'SEK' | 'CZK' | 'RON' | 'CHF' | 'PLN', required: ISO 4217 currency code.
      - `selection` SelectedOption[], nullable: The pinned configuration, in the shape of `variants.selected`; null for the offer as a whole.
        - `name` string, required: The name of the selected option (e.g. 'Color', 'Size')
        - `label` string, required: The display value of the selected option (e.g. 'Blue', 'XL')
    - `offer` OfferSnapshot, required: The offer as `/v1/products/{id}` returns it in the subscription's view.
      - `url` string, required: Buy URL for the offer.
      - `domain` string, required
      - `price` Price, required
        - `price` number, required: The current price of the product, including any discounts.
        - `compare_at_price` number, nullable: The original price of the product before any discounts.
        - `currency` string, required: The currency code of the product, like USD, EUR, GBP, etc.
      - `availability` 'InStock' | 'OutOfStock', required: The two availability values the public API emits on offers. Internal ``AvailabilityStatus`` values are collapsed to these via ``AvailabilityStatus.to_api()``.
      - `condition` 'new' | 'used': Offer condition. 'refurbished' is deprecated: rejected as a filter value, coerced to None on responses.

---

[API](https://skmtc.dev/channel3-ai/apis/channel3-typescript-api.md) - [All operations](https://skmtc.dev/channel3-ai/apis/channel3-typescript-api/llms.txt) - [OpenAPI document](https://skmtc.dev/channel3-ai/apis/channel3-typescript-api/revisions/f9f7b422ab5d?raw)
