OnSeasonChannel API

Cancellation policy object

The dated cancellation terms on search results, quotes, and reservations.

The same object appears as cancellationPolicy on search results, quotes, and reservations. Cancellation policies explains how OnSeason picks and dates the terms.

Example

{
  "policyID": "2f8d6b1a-9c3e-4d7f-8a1b-5e6c7d8f9a0b",
  "name": "Strict",
  "version": 1,
  "source": "TENANT",
  "salesChannel": "acme",
  "timeZone": "Europe/Paris",
  "fixedAt": "2026-11-10T10:00:00.000Z",
  "refundable": true,
  "refundableTag": "RFN",
  "freeCancellationUntil": "2026-11-21T14:00:00.000Z",
  "penalties": [
    { "from": "2026-11-21T14:00:00.000Z", "percentage": 50, "amount": 243, "currency": "EUR" },
    { "from": "2026-11-28T14:00:00.000Z", "percentage": 100, "amount": 486, "currency": "EUR" }
  ],
  "description": "Full refund if cancelled before 2026-11-21 15:00 (Europe/Paris). 50% refund (243.00 EUR) if cancelled before 2026-11-28 15:00 (Europe/Paris). No refund after that."
}

Fields

FieldTypeDescription
policyIDUUID or nullThe owner's policy. null when source is DEFAULT.
namestringPolicy name, such as Moderate or Strict. Non-refundable when source is DEFAULT.
versioninteger or nullVersion of the policy's refund rules. null when source is DEFAULT.
sourceenumWhere the policy came from. See below.
salesChannelstringThe sales channel the terms apply to: your channel name in lowercase.
timeZonestringIANA timezone the deadlines were set in: the property's zone.
fixedAtdate-timeWhen the terms were fixed. For a quote and a reservation, this is the time of the quote. For a search result, the time of the search.
refundablebooleanfalse when cancelling already refunds nothing.
refundableTagenumRFN (refundable) or NRFN (non-refundable). Same fact as refundable.
freeCancellationUntildate-time or nullCancelling before this moment costs nothing. null when free cancellation was already over at fixedAt.
penaltiesarrayWhat cancelling costs from each moment. See below.
descriptionstringPlain-English summary with the deadlines in the property's local time. Ready to show to the guest.

Penalty step

FieldTypeDescription
fromdate-timeFrom this moment, cancelling costs this step.
percentagenumberShare of the total charged.
amountnumberpercentage of the total, in currency.
currencystringCurrency of amount.

Steps are in time order and the percentage only rises. The last step is always 100%. When a charge is already due at fixedAt, the first step starts at fixedAt.

The total behind amount depends on where the object appears:

WhereTotal
Search resulttotalPrice when present, otherwise avgNightlyPrice times the nights
QuoteThe quote's totalPrice
ReservationThe reservation's totalPrice

Source

sourceThe policy is
LISTING_CHANNELThe owner's policy for this listing on your channel.
LISTINGThe owner's policy for this listing on every channel.
TENANT_CHANNELThe owner's policy for all their listings on your channel.
TENANTThe owner's default policy.
CHANNEL_DEFAULTYour channel's default policy, agreed with OnSeason.
DEFAULTNo policy is configured. The stay is non-refundable.

On this page