취소 기간은 취소 및 수정 버튼이 활성화되는 시점을 정의합니다. 즉, 취소 및 수정 기능은 사용자 확인 이메일에서 작동하지 않으며 확인 모달을 비롯한 다른 모든 표시 경로에서 사라집니다.
취소 기간은 서비스 수준과 슬롯 수준의 두 가지 방법으로 사용 설정할 수 있습니다. 이러한 수준에서 창을 지정하는 프로세스는 아래에 설명되어 있습니다.
서비스 수준 취소 기간과 시간대 수준 취소 기간이 모두 설정된 경우 시간대 수준 취소 기간이 적용됩니다. 둘 다 설정되지 않은 경우 취소 기간은 시간대 시작 시간으로 기본 설정됩니다. 즉, 사용자가 마지막 순간에 취소될 수 있습니다.
서비스 수준 정의
서비스 수준 취소 기간은 서비스 피드에서 rules.min_advance_online_canceling를 지정하여 사용 설정할 수 있습니다. 이 필드는 예약 시작 시간 전에 예약을 완료해야 하는 시간(초)으로 설정해야 합니다. 예를 들어 예약을 시작 시간으로부터 24시간 전까지만 취소할 수 있는 경우 이 필드는 86400으로 설정됩니다. 따라서 오후 3시 예약은 전날 오후 3시까지만 취소할 수 있습니다.
이는 시간대 수준 정의에서 재정의하지 않는 한 해당 서비스의 모든 시간대에 적용됩니다.
[null,null,["최종 업데이트: 2025-07-26(UTC)"],[[["\u003cp\u003eCancellation windows control when users can cancel bookings, hiding the cancellation option outside the window.\u003c/p\u003e\n"],["\u003cp\u003eYou can set cancellation windows at the service level (affecting all slots) or the slot level (affecting individual slots).\u003c/p\u003e\n"],["\u003cp\u003eService-level windows use \u003ccode\u003erules.min_advance_online_canceling\u003c/code\u003e in the Service feed to define the minimum time before the booking start when cancellations are allowed.\u003c/p\u003e\n"],["\u003cp\u003eSlot-level windows use \u003ccode\u003escheduling_rule_overrides.last_online_cancellable_sec\u003c/code\u003e in the Availability feed to specify the last time (EPOCH timestamp) a slot can be cancelled.\u003c/p\u003e\n"],["\u003cp\u003eImplementing cancellation windows in feeds doesn't replace handling \u003ccode\u003eBookingFailure\u003c/code\u003e with \u003ccode\u003eOUTSIDE_CANCELLATION_WINDOW\u003c/code\u003e for edge cases in your system.\u003c/p\u003e\n"]]],["Cancellation windows control when cancellations are allowed. They can be set at the service level using `rules.min_advance_online_canceling` in the Service feed (specifying seconds before the reservation start) or at the slot level using `scheduling_rule_overrides.last_online_cancellable_sec` in the availability feed (specifying an EPOCH timestamp). Slot-level settings override service-level settings. If neither is set, cancellations are allowed up until the slot's start. Implementations must handle `OUTSIDE_CANCELLATION_WINDOW` errors for edge cases.\n"],null,["# Set Cancellation Windows\n\nHow to Add Cancellation Windows\n-------------------------------\n\n\nCancellation windows define when the cancel and modify buttons are active. This\nmeans the cancel and modify functions will be inoperable in user confirmation\nemails and will disappear from all other surfaces, including the confirmation modal.\n\n\nCancellation windows can be enabled in two ways: service-level and\nslot-level. The processes for specifying windows at these levels are\ndiscussed below.\n\nIf both a service-level and a slot-level cancellation window are set, the\nslot-level window will take effect. If neither are set, the cancellation window\ndefaults to the start of the time slot (i.e. the user can be cancelled at the\nlast minute).\n\n### Service level definition\n\nService-level cancellation windows can be enabled by specifying\n`rules.min_advance_online_canceling` in the\n[Service](/actions-center/verticals/reservations/e2e/reference/feeds/services-feed#SchedulingRules-definition)\nfeed. This field\nshould be set to the number of seconds in advance of the reservation start\ntime that the booking needs to be made. For example, if the booking can only be cancelled up\nuntil 24h before the start time this field would be set to\n86400 (so a booking for 3pm can only be cancelled until 3pm the previous day).\nThis would apply to all slots for that service\n(unless overridden by [slot level definition](#slot-level)). \n\n### JSON\n\n```json\n{\n \"service\": [\n {\n \"rules\": {\n \"min_advance_online_canceling\": 86400\n }\n }\n ]\n}\n```\n\n### Slot level definition\n\nAt the\n[availability slot level the field is called\n`scheduling_rule_overrides.last_online_cancellable_sec`](/actions-center/verticals/reservations/e2e/reference/feeds/availability-feed#Availability-definition). This\nfield is the last time (EPOCH timestamp) that the specific slot can be cancelled.\nThis would apply to each individual slot where this was specified. \n\n### JSON\n\n```json\n\"service_availability\": [\n {\n \"availability\": {\n \"scheduling_rule_overrides\": {\n \"last_online_cancellable_sec\": 1468081800\n }\n }\n }\n]\n```\n| **Warning** : Implementing cancellation window in feeds does not prevent you from having to implement and handle the [`BookingFailure`](/actions-center/verticals/reservations/e2e/reference/booking-server-api-rest/e2e-difinitions/bookingfailure-definition) `OUTSIDE_CANCELLATION_WINDOW`. There might be edge cases (such as a stall browser tab) where an [UpdateBooking](/actions-center/verticals/reservations/e2e/reference/booking-server-api-rest/e2e-methods/updatebooking-method) might be sent outside of the specified cancellation window. Upon receiving an [UpdateBooking](/actions-center/verticals/reservations/e2e/reference/booking-server-api-rest/e2e-methods/updatebooking-method), your system must confirm that the change occurs within the specified cancellation window and, if it's not, respond with `UpdateBookingResponse.booking_failure = OUTSIDE_CANCELLATION_WINDOW`."]]