[null,null,["最后更新时间 (UTC):2025-08-29。"],[[["\u003cp\u003eOffers trigger an expiration notification 48 hours before expiry if they have a future expiration date, haven't previously triggered a notification, and don't have \u003ccode\u003edisableExpirationNotification\u003c/code\u003e set to \u003ccode\u003eTrue\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe default notification displays the offer's title, title image, and relative expiration time (today, tomorrow, or in x days).\u003c/p\u003e\n"],["\u003cp\u003eNotifications are prevented from appearing between 10 PM and 6 AM local time, shifting to before or after this window.\u003c/p\u003e\n"],["\u003cp\u003eCustom notification times can be set using \u003ccode\u003emessage.displayInterval.start.date\u003c/code\u003e, overriding the default 48-hour trigger and allowing scheduling up to 30 days before expiry.\u003c/p\u003e\n"],["\u003cp\u003eOnly one expiration notification is sent per offer; a custom notification time prevents the default notification from triggering.\u003c/p\u003e\n"]]],["Offers trigger an expiration notification 48 hours before expiring, provided they haven't previously triggered one, have a valid future expiration date, and don't have `disableExpirationNotification` set to `True`. Notifications display the expiration time, `class.title`, and `class.titleImage`. Blackout hours (10 PM - 6 AM) shift notifications. Custom notification times, defined by `message.displayInterval.start.date`, override the default and can be set up to 30 days before expiration. Only one expiration notification is sent per offer.\n"],null,["# Offer expiration notifications\n\nTo remind users to use offers before they expire, a default notification is triggered 48 hours\nbefore an offer expires. To trigger a notification, an offer must meet the following criteria:\n\n1. It must not have previously triggered an expiration notification on the user's device.\n2. It must have a valid expiration `datetime` that's in the future, set in `validTimeInterval.end.date`.\n3. It must not have the writeable field `disableExpirationNotification` set to `True`. By default, this field is set to `false`.\n\n| **Note:** This offer expiration notification feature and its details are subject to change.\n\nThe following screenshot shows an example of the default, unmodifiable notification:\n1. Offer expires (today, tomorrow, in \\[x\\] days)\n2. `class.title`\n3. `class.titleImage`\n\nThe header in the offer expiration notification cannot be customized.\n\n### Blackout hours\n\nIf the offer expiration notification is set to appear between 10PM and 6AM at the user's local\ntime, the offer appears either before or after this time period.\n\n### Custom offer expiration notification time\n\nYou can customize when the `Offer` expiration notification appears using the\n`message.displayInterval.start.date` field on `OfferObjects` or\n`OfferClasses`. If a custom notification time is set, the expiration notification triggers\naccording to the `message.displayInterval.start.date`, instead of the default logic\ncalculated from `validTimeInterval.end.date`. The following is a sample of a customized\ntime for an expiration notification: \n\n```scdoc\n{\n \"message\": {\n \"messageType\": \"EXPIRATION_NOTIFICATION\",\n \"displayInterval\": {\n \"start\": {\n \"date\": datetime\n }\n }\n }\n}\n```\n\nThe `displayInterval.start.date` sets the time the notification appears. It can be\nset up to 30 days prior to the expiration date. If a time span greater than this is specified, the\nnotification triggers at the 30 day mark. This message doesn't require a header and body field -\nif they're included they aren't used.\n| **Note:** Only one expiration notification is sent to the user. Setting a custom offer expiration time means the default one isn't triggered."]]