Component: RATES

Abstract

Rates are key elements for each experience product which define different pricing levels as well as setup for settings like pickups, extras, tiers, cancellation policies and so on.

Values for this component can be set via ExperienceComponentsDto.rates which is ExperienceRatesDto type.

Note: rates can be deleted (by omission on update) but having at least one rate is mandatory for any product at any time.

Attributes of ExperienceRatesDto

Attribute JSON path
Attribute JSON path
Data type
Mandatory
Settable
Notes
defaultRate
IdExternalIdDto
References which rate is the default (via Bokun-local IdExternalIdDto::id and/or IdExternalIdDto::externalId)
rates
Array of ExperienceRateDtos
A list of rates which is applicable for this product. Note: make sure complete list of rates is sent on product update as omitted rates will be removed
id
long
Mandatory on update, must be omitted on create
Rate id
externalId
string
Could be set to for convenient referencing elsewhere, such as defaultRate (via IdExternalIdDto::externalId, etc
title
string
Rate title
description
string
Rate description
created
TimestampDto
Date/time when this rate was created. Can’t be set, only retrieved
lastModified
TimestampDto
Date/time when this rate was last modified. Can’t be set, only retrieved
minPerBooking
int
Minimum passenger count required to book this rate. Defaults to 1 if omitted
maxPerBooking
int
Maximum number of passengers allowed to book this rate
pickupSelectionType
AddonSelectionTypeDto
Whether pickup is UNAVAILABLE, OPTIONAL or mandatory (PRESELECTED) for this rate. Note that pickup must be enabled via MEETING_SETTINGS if enabled here
pickupPricingType
AddonPricingTypeDto
Mandatory if pickup is preselected or optional, otherwise should be omitted
Is pickup included in price or priced separately? If priced separately, relevant pickup pricing rule(s) will have to be present
pickupPricedPerPerson
boolean
Mandatory if pickup is preselected or optional, otherwise should be omitted
Whether pickup priced per person (true) or per booking (false)
dropoffSelectionType
AddonSelectionTypeDto
Whether dropoff is UNAVAILABLE, OPTIONAL or mandatory (PRESELECTED) for this rate. Note that dropoff must be enabled via MEETING_SETTINGS if enabled here
pickupPricingType
AddonPricingTypeDto
Mandatory if dropoff is preselected or optional, otherwise should be omitted
Is dropoff included in price or priced separately? If priced separately, relevant dropoff pricing rule(s) will have to be present
pickupPricedPerPerson
boolean
Mandatory if dropoff is preselected or optional, otherwise should be omitted
Whether dropoff priced per person (true) or per booking (false)
cancellationPolicyId
long
ID of the cancellation policy used for this rate (refers to CancellationPolicyDto::id)
pricedPerPerson
boolean
if set to true, prices for this rate are expressed per person (per pricing category). If set to false, price is set per booking regardless how many passengers have booked. Note that this is independent from relevant pickup, dropoff and extra settings — as they have their own
tieredPricingEnabled
boolean
Mandatory if pricedPerPerson is true otherwise should be omitted
tiers
Array of ExperienceRateTierDto
Mandatory if tieredPricingEnabled is true otherwise should be omitted
Passenger ranges for specific pricing categories applicable for this rate. Tiers must be continuous and not overlap. Note: when updating, make sure a complete set of tiers is sent as omitted entries will be removed
extraConfigs
Array of ExperienceRateExtraConfigDto
A list of configuration objects linking this rate with extras. Note: when updating, make sure a complete set of tiers is sent as omitted entries will be removed
allStartTimes
boolean
This flag must be specified only if bookingType is DATE_AND_TIME, otherwise should be omitted
If set to true, this will infer that all start times (currently linked against the product as well as those created in the future) will be applicable for this rate. If set to false, startTimes must contain specific IDs applicable for this rate
startTimes
Array of IdExternalIdDto
Mandatory if allStartTimes is false and bookingType is DATE_AND_TIME, otherwise should be omitted
A set of start times applicable for this rate. Each element can be specified via id and/or externalId. Specifying empty array has the same effect as having allStartTimes set to true. Note: when updating, make sure a complete set of tiers is sent as omitted entries will be removed
allPricingCategories
boolean
If set to true, this will infer that all pricing categories (currently linked against the product as well as those created in the future) will be applicable for this rate. If set to false, pricingCategoryIds must contain specific IDs applicable for this rate.
pricingCategoryIds
Array of longs
Mandatory if allPricingCategories is false, otherwise should be omitted
A set of pricing category IDs (PricingCategoryDto::id) applicable for this rate. Note: when updating, make sure a complete set of tiers is sent as omitted entries will be removed

Attributes of ExperienceRateTierDto

Attribute JSON path
Data type
Mandatory
Settable
Notes
id
long
Mandatory on update, must be omitted on create
ID of this rate tier object
minPassengersRequired
int
Opening (inclusive) range for this tier. For example, to express the fact that this tier accepts 1..2 passengers, use minPassengersRequired == 1 and maxPassengersRequired == 2
maxPassengersRequired
int
Closing (inclusive) range for this tier. null represents infinity. For example, to express the fact that this tier accepts 3 passengers or more, use minPassengersRequired == 3 and maxPassengersRequired == null. Note that such open closing range can only be one per entire set
pricingCategoryId
long
Specifies which pricing category (PricingCategoryDto::id) is defined with this pricing tier

Attributes of ExperienceRateExtraConfigDto

Attribute JSON path
Data type
Mandatory
Settable
Notes
id
long
Mandatory on update, must be omitted on create
ID of this extra config object (as opposed to ID of extra!)
extra
IdExternalIdDto
Which extra is used in this config? Referenced via IdExternalIdDto::id and/or EdExternalIdDto::externalId
selectionType
ExperienceExtraSelectionTypeDto
OPTIONAL if the end user may or may not purchase it with the booking. PRESELECTED if the end user can’t opt out purchasing this extra (note that pricing settings are specified separately)
pricingType
AddonPricingTypeDto
Whether extra price is INCLUDED_IN_PRICE (no separate pricing rule is needed) or PRICED_SEPARATELY (a new pricing rule is needed)
pricedPerPerson
boolean
If set to true, this extra is priced per person (single pax). false if priced per booking
Did this answer your question?
😞
😐
🤩