API Reference Complete reference for ResytechClient, ResytechApi, and all TypeScript types in resytech.js.
The iframe-based booking widget. Creates a full-screen overlay with the Resytech checkout UI.
const client = new ResytechClient (config: ResytechClientConfig);
interface ResytechClientConfig {
locationId : string ; // Required. Your Resytech location UUID.
baseUrl : string ; // Required. Base URL of your booking platform.
theme ?: {
primaryColor ?: string ; // Primary theme color.
fontFamily ?: string ; // Font family override.
};
debug ?: boolean ; // Enable console logging.
}
Method Signature Description showUIshowUI(options?: Partial<CheckoutRequest>): voidOpen the checkout overlay. Optionally pre-fill activity, equipment, date, and time. closeclose(): voidClose the checkout overlay and clean up the iframe. onon(event: string, callback: (data: any) => void): voidSubscribe to an event. offoff(event: string, callback: (data: any) => void): voidUnsubscribe from an event. updateConfigupdateConfig(config: Partial<ResytechClientConfig>): voidUpdate client configuration at runtime. destroydestroy(): voidClose the overlay, remove message listeners, and clear all event subscriptions.
Passed to showUI() to pre-fill booking parameters:
Field Type Required Description locationstringAuto Location UUID (set from config) activitystringNo Activity UUID to pre-select equipmentstringNo Equipment UUID to pre-select datestringNo Pre-selected date durationMinsnumberNo Duration in minutes timeSlotStartstringNo Time slot start time timeSlotEndstringNo Time slot end time timeSlotPricenumberNo Time slot price
Event Payload Description checkout:openCheckoutRequestFired when the checkout overlay opens. checkout:readyundefinedFired when the iframe has loaded and is visible. checkout:complete{ confirmationCode, price, ...data }Fired when a booking is successfully completed. checkout:closeundefinedFired when the checkout overlay is closed.
client. on ( 'checkout:complete' , ( data ) => {
console. log ( 'Booking confirmed:' , data.confirmationCode);
});
Add these to any HTML element to create click-to-book triggers. The ResytechClient automatically binds click handlers to elements with data-resytech-activity-id or data-resytech-equipment-id.
Attribute Description data-resytech-activity-idActivity UUID. Opens checkout pre-filtered to this activity. data-resytech-equipment-idEquipment UUID. Opens checkout pre-filtered to this equipment. data-resytech-datePre-selected date. data-resytech-durationDuration in minutes (parsed as integer). data-resytech-time-startTime slot start time. data-resytech-time-endTime slot end time. data-resytech-priceTime slot price (parsed as float).
< button
data-resytech-activity-id = "abc-123"
data-resytech-date = "2025-07-04"
data-resytech-duration = "60" >
Book Now
</ button >
The programmatic API client. Organizes methods into controller namespaces.
const api = new ResytechApi (config ?: Partial < ResytechApiConfig > );
interface ResytechApiConfig {
baseUrl : string ; // Default: 'https://api.bookingui.com/v1'
cmsBaseUrl : string ; // Default: 'https://crm-intake.resytech.com/v1'
debug ?: boolean ; // Default: false
timeout ?: number ; // Default: 30000 (ms)
headers ?: Record < string , string >; // Custom headers for all requests
}
Method Signature Description setAuthTokensetAuthToken(token: string): voidSet the Bearer token on all controllers. Called automatically after initialization.initialize(). clearAuthTokenclearAuthToken(): voidRemove the auth token from all controllers. getAuthTokengetAuthToken(): string | nullGet the current auth token. isAuthenticatedisAuthenticated(): booleanCheck if an auth token is set. setCustomHeaderssetCustomHeaders(headers: Record<string, string>): voidSet custom headers on all controllers. getConfiggetConfig(): ResytechApiConfigGet a copy of the current configuration. setDebugsetDebug(debug: boolean): voidEnable or disable debug logging on all controllers.
Access methods through controller namespaces on the ResytechApi instance.
Method Signature Returns Description initializeinitialize(request: InitializationRequest)Promise<InitializationResponse>Initialize a session. Returns activities, auth token, operator info. Auto-sets auth token and blog location GUID.
Field Type Required Description identifierstringNo Unique session identifier
Field Type Description successbooleanWhether the request succeeded messagestringResponse message statusCodenumberHTTP status code activitiesInitializationActivity[]List of activities for the location buiAccessTokenstringBearer token for subsequent API calls operatorOperatorOperator/company details locationGuidstringLocation UUID checkoutSettingsCheckoutSettingsCheckout UI configuration hasSmsWorkflowbooleanWhether SMS workflows are enabled isTestModebooleanWhether the location is in test mode
Method Signature Returns Description getActivitygetActivity(uuid: string)Promise<ActivityResponse>Get full details for a specific activity.
Field Type Description successbooleanWhether the request succeeded activityActivityFull activity object
Method Signature Returns Description getActivityCalendargetActivityCalendar(request: ActivityCalendarRequest)Promise<CalendarResponse>Get availability calendar for an activity. getCartCalendargetCartCalendar(request: ActivityCalendarRequest)Promise<CalendarResponse>Get availability calendar for items in cart.
Field Type Required Description activitystringYes Activity UUID monthnumberYes Month (1-12) yearnumberYes Year includePricesbooleanNo Include daily pricing durationstringNo Duration UUID filter startTimestringNo Start time filter equipmentClientShoppingCartEquipment[]No Equipment selection durationMinsnumberNo Dynamic duration in minutes cartIdstringNo Existing cart ID
Field Type Description successbooleanWhether the request succeeded calendarCalendarMonthCalendar month data
Method Signature Returns Description getActivityTimeSlotsgetActivityTimeSlots(request: TimeSlotRequest)Promise<ActivityTimeSlotsResponse>Get time slots for a specific activity on a date. getLocationTimeSlotsgetLocationTimeSlots(request: TimeSlotRequest)Promise<LocationTimeSlotsResponse>Get time slots for all activities at the location. getCartTimeSlotsgetCartTimeSlots(request: TimeSlotRequest)Promise<ActivityTimeSlotsResponse>Get time slots for items in cart.
Field Type Required Description activitystringNo Activity UUID (recommended for activity-specific slots) datestringYes Date string durationstringNo Duration UUID durationMinsnumberNo Dynamic duration in minutes equipmentClientShoppingCartEquipment[]No Equipment selection isPrivateTourbooleanNo Filter for private tour availability ignoreEarlyCutoffbooleanNo Ignore early cutoff restrictions
Field Type Description successbooleanWhether the request succeeded timeSlotsActivityTimeSlot[]Available time slots
Field Type Description successbooleanWhether the request succeeded resultsLocationAllActivityTimeSlots[]Slots grouped by activity
Method Signature Returns Description getEligibleAddonsgetEligibleAddons(request: GetEligibleAddonsRequest)Promise<GetEligibleAddonsResponse>Get addons available for the selected activity, date, and time.
Field Type Required Description activitystringYes Activity UUID datestringYes Date string timestringYes Time string durationstringNo Duration UUID dynamicDurationMinutesnumberNo Dynamic duration in minutes equipmentClientShoppingCartEquipment[]No Equipment selection
Field Type Description successbooleanWhether the request succeeded addonsEligibleAddon[]List of eligible addons
Method Signature Returns Description createOrUpdateCartcreateOrUpdateCart(request: CreateOrUpdateCartRequest)Promise<CreateOrUpdateShoppingCartResponse>Create or update a shopping cart. updateCustomerupdateCustomer(request: UpdateShoppingCartCustomerRequest)Promise<ApiResponseBase>Update customer info on the cart. applyCouponapplyCoupon(request: ApplyCouponRequest)Promise<ApplyCouponResponse>Apply a coupon code. removeCouponremoveCoupon(request?: ApplyCouponRequest)Promise<ApplyCouponResponse>Remove an applied coupon. applyGiftCardapplyGiftCard(request: ApplyGiftCardRequest)Promise<ApplyGiftCardResponse>Apply a gift card. removeGiftCardremoveGiftCard(request?: ApplyGiftCardRequest)Promise<ApplyGiftCardResponse>Remove an applied gift card. getTripProtectionPreviewgetTripProtectionPreview(request: TripProtectionPreviewRequest)Promise<TripProtectionPreviewResponse>Preview trip protection pricing.
Field Type Required Description cartClientShoppingCartYes Cart data cartIdstringNo Existing cart ID (for updates)
Field Type Required Description activitystringYes Activity UUID durationstringYes Duration UUID datestringYes Booking date timeSlotStartstringYes Time slot start timeSlotEndstringYes Time slot end equipmentClientShoppingCartEquipment[]No Selected equipment customerClientShoppingCartCustomerNo Customer info downPaymentRequestedbooleanNo Request down payment option isPrivateTourbooleanNo Book as private tour durationMinsnumberNo Dynamic duration in minutes tripProtectionSelectedbooleanNo Include trip protection
Field Type Required Description equipmentUuidstringYes Equipment UUID quantitynumberYes Number of equipment units seatsnumberYes Number of seats/guests addonsClientShoppingCartEquipmentAddon[]No Selected addons
Field Type Required Description addonUuidstringYes Addon UUID quantitynumberYes Addon quantity equipmentUuidstringYes Parent equipment UUID
Field Type Required Description fullNamestringNo Customer full name emailstringNo Customer email countryCodestringNo Phone country code countrystringNo Country phonestringNo Phone number
Field Type Required Description customerClientShoppingCartCustomerYes Customer data cartIdstringNo Cart ID
Field Type Required Description couponCodestringNo Coupon code to apply cartIdstringNo Cart ID
Field Type Required Description giftCardCodestringNo Gift card code to apply cartIdstringNo Cart ID
Field Type Required Description cartIdstringNo Cart ID
Field Type Description successbooleanWhether the request succeeded errorCodeShoppingCartErrorCodeError code (if failed) cartIdstringCart identifier removalsShoppingCartRemoval[]Items removed due to constraints cartServerShoppingCartOverviewCart summary clientSecretstringStripe client secret for payment operatorAccountIdstringStripe connected account ID
Field Type Description successbooleanWhether the request succeeded errorCodeGiftCardErrorCodeError code (if failed) availableBalancenumberRemaining gift card balance
Field Type Description successbooleanWhether the request succeeded availablebooleanWhether trip protection is available pricenumberTrip protection price titlestringDisplay title descriptionstringDisplay description coverageTypenumberCoverage type identifier coverageAmountnumberCoverage amount
Method Signature Returns Description checkoutcheckout(request: CheckoutRequest)Promise<CheckoutResponse>Process checkout for a shopping cart.
Field Type Required Description cartClientShoppingCartYes Full cart data (must include customer email) customFieldsCustomFieldAnswer[]No Answers to custom fields demographicsDemographicValue[]No Demographic selections stripeConfirmationTokenstringNo Stripe confirmation token handledNextActionstringNo Stripe next action result agreementsstring[]No Accepted agreement UUIDs smsOptInbooleanNo SMS opt-in consent cartIdstringNo Existing cart ID
Field Type Required Description uuidstringYes Custom field UUID answerstringNo Answer value
Field Type Required Description demographicUuidstringYes Demographic UUID uuidstringYes Value UUID valuenumberYes Count/value
Field Type Description successbooleanWhether the request succeeded cartServerShoppingCartOverviewFinal cart state cartActionCreateOrUpdateShoppingCartResponseCart action result confirmationstringBooking confirmation code clientSecretstringStripe client secret (if payment required) paymentIntentIdstringStripe payment intent ID
Method Signature Returns Description getInvoicegetInvoice(invoiceUuid: string)Promise<GetInvoiceResponse>Get invoice details. payInvoicepayInvoice(invoiceUuid: string, request: PayInvoiceRequest)Promise<PayInvoiceResponse>Pay an invoice.
Field Type Required Description agreementsstring[]No Accepted agreement UUIDs stripeConfirmationTokenstringNo Stripe confirmation token handledNextActionstringNo Stripe next action result
Field Type Description successbooleanWhether the request succeeded invoiceServerInvoiceInvoice details ({ uuid, dueNowCents }) cartServerShoppingCartOverviewAssociated cart overview activitystringActivity name datestringBooking date startstringStart time endstringEnd time endDatestringEnd date (if multi-day)
Field Type Description successbooleanWhether the request succeeded clientSecretstringStripe client secret confirmationstringPayment confirmation code
Method Signature Returns Description getWaivergetWaiver(locationUuid: string, waiverId: string)Promise<GetWaiverResponse>Get waiver definition and fields. getReservationgetReservation(request: GetReservationRequest)Promise<GetReservationResponse>Look up a reservation for waiver signing. submitWaiversubmitWaiver(request: SubmitWaiverRequest)Promise<SubmitWaiverResponse>Submit a completed waiver.
Field Type Required Description lidstringYes Location ID widstringYes Waiver ID typestringNo Lookup type valuestringNo Lookup value
Field Type Required Description waiverIdstringYes Waiver UUID locationIdstringYes Location UUID waiverNamestringNo Waiver name reservationIdstringYes Reservation UUID reservationConfirmationNumberstringYes Confirmation number fieldsany[]Yes Completed field values submittedAtstringYes ISO timestamp dataHashstringYes Integrity hash bfpstringYes Browser fingerprint
Field Type Description successbooleanWhether the request succeeded waiverWaiverWaiver definition
Field Type Description successbooleanWhether the request succeeded idstringReservation UUID datestringBooking date customerNamestringCustomer name customerEmailstringCustomer email customerPhonestringCustomer phone statusstringReservation status confirmationNumberstringConfirmation code
Field Type Description successbooleanWhether the request succeeded submissionIdstringSubmission UUID submittedAtDateSubmission timestamp confirmationNumberstringConfirmation code
Method Signature Returns Description getSurveygetSurvey(token: string)Promise<GetPublicSurveyResponse>Get a survey by access token. submitSurveysubmitSurvey(request: SubmitSurveyRequest)Promise<SubmitSurveyResponse>Submit survey responses.
Field Type Required Description tokenstringNo Survey access token responsesRecord<string, any>No Question responses (keyed by question ID) namestringNo Respondent name emailstringNo Respondent email
Field Type Description successbooleanWhether the request succeeded surveyPublicSurveySurvey definition bookingContextPublicBookingContextAssociated booking info brandingBrandingOperator branding
Field Type Description successbooleanWhether the request succeeded thankYouMessagestringCustom thank you message
Method Signature Returns Description getSettingsgetSettings()Promise<GetGiftCardPurchaseSettingsResponse>Get gift card purchase configuration. purchasepurchase(request: PurchaseGiftCardRequest)Promise<PurchaseGiftCardResponse>Purchase a gift card.
Field Type Required Description amountnumberYes Gift card amount in cents purchaserNamestringNo Purchaser name purchaserEmailstringNo Purchaser email purchaserPhonestringNo Purchaser phone purchaserPhoneCountryCodestringNo Phone country code recipientNamestringNo Recipient name recipientEmailstringNo Recipient email customMessagestringNo Gift message stripeConfirmationTokenstringNo Stripe confirmation token handledNextActionstringNo Stripe next action result
Field Type Description successbooleanWhether the request succeeded isAvailablebooleanWhether gift card purchases are enabled allowFlatAmountsbooleanWhether preset amounts are available flatAmountsnumber[]Preset amount options allowVariableAmountsbooleanWhether custom amounts are allowed variableMinAmountnumberMinimum custom amount variableMaxAmountnumberMaximum custom amount requireRecipientEmailbooleanWhether recipient email is required allowCustomMessagebooleanWhether custom messages are allowed expirationDaysnumberDays until gift card expires
Field Type Description successbooleanWhether the request succeeded clientSecretstringStripe client secret paymentIntentIdstringStripe payment intent ID giftCardCodestringGenerated gift card code giftCardAmountnumberGift card value expiresAtDateExpiration date recipientEmailstringRecipient email
The blog controller uses the CMS API (cmsBaseUrl), not the BookingUI API. No auth token is required, but a location GUID must be set. It is set automatically after initialization.initialize().
Method Signature Returns Description getPostsgetPosts(page?: number, pageSize?: number, locationGuid?: string)Promise<GetBlogPostListResponse>Get paginated published blog posts. Default: page 1, 20 per page (max 50). getPostgetPost(slug: string, locationGuid?: string)Promise<GetBlogPostResponse>Get a single blog post by slug (includes full content). getCategoriesgetCategories(locationGuid?: string)Promise<GetBlogCategoryListResponse>Get all blog categories. getPostsByCategorygetPostsByCategory(categorySlug: string, page?: number, pageSize?: number, locationGuid?: string)Promise<GetBlogPostListResponse>Get posts filtered by category slug. setLocationGuidsetLocationGuid(locationGuid: string): voidvoidManually set the location GUID.
Field Type Description successbooleanWhether the request succeeded postsBlogPost[]Array of blog posts totalCountnumberTotal number of matching posts pagenumberCurrent page number pageSizenumberItems per page
Field Type Description successbooleanWhether the request succeeded postBlogPostBlog post with full content
Field Type Description successbooleanWhether the request succeeded categoriesBlogCategory[]Array of categories
Method Signature Returns Description checkcheck()Promise<boolean>Perform a HEAD request to /health. Returns true if healthy, false otherwise.
Field Type Description uuidstringUnique identifier namestringActivity name basePricenumberStarting price descriptionstringFull description cancellationPolicystringCancellation policy text detailsstringAdditional details mediaMedia[]Photos and videos durationsDuration[]Available durations equipmentEquipment[]Available equipment manifestManifestGuest limits and demographics firstAvailableDateDateEarliest bookable date allowEquipmentMixingbooleanCan mix equipment types maxEquipmentPerBookingnumberMax equipment per booking customFieldsCustomField[]Custom checkout fields agreementsActivityAgreement[]Required agreements typenumberActivity type identifier allowPrivateToursbooleanSupports private tours dynamicDurationSettingsActivityDynamicDurationSettingDynamic duration config schedulingActivitySchedulingScheduling restrictions tripProtectionTripProtectionTrip protection config
Simplified activity returned from initialization (before full activity fetch).
Field Type Description uuidstringUnique identifier namestringActivity name taglinestringShort tagline descriptionstringDescription equipmentEquipment[]Available equipment mediaMedia[]Photos and videos startingAtPricenumberStarting price manifestManifestGuest limits firstAvailableDateDateEarliest bookable date durationsDuration[]Available durations typenumberActivity type dynamicDurationSettingsActivityDynamicDurationSettingDynamic duration config
Field Type Description uuidstringUnique identifier quantitynumberAvailable quantity namestringEquipment name descriptionstringDescription detailsstringAdditional details mediaMedia[]Photos capacitynumberMax capacity per unit addonsAddon[]Available addons amenitiesAmenity[]Amenities propertiesEquipmentProperty[]Custom properties
Field Type Description uuidstringUnique identifier ordernumberDisplay order typenumberMedia type (0 = image, etc.) uristringFull-size URL thumbnailUristringThumbnail URL
Field Type Description uuidstringUnique identifier minutesnumberDuration in minutes
Field Type Description namestringAddon name descriptionstringDescription uuidstringUnique identifier pricenumberPrice
Field Type Description namestringAddon name descriptionstringDescription quantitynumberAvailable quantity mediaUristringImage URL uuidstringUnique identifier pricenumberPrice
Field Type Description idstringUnique identifier namestringAmenity name descriptionstringDescription iconTypenumberIcon type identifier iconstringIcon value assignmentCountnumberNumber of assignments
Field Type Description idstringUnique identifier namestringProperty name iconTypenumberIcon type identifier iconstringIcon value descriptionstringDescription valuestringProperty value featuredbooleanShow as featured
Field Type Description guestLimitnumberMaximum guests per booking ageRestrictionnumberMinimum age guestMinimumnumberMinimum guests per booking demographicsDemographic[]Guest demographic categories
Field Type Description uuidstringUnique identifier titlestringDisplay title (e.g., "Adults", "Children") descriptionstringDescription
Field Type Description uuidstringUnique identifier companyNamestringCompany name locationNamestringLocation name addressLine1stringStreet address addressLine2stringAddress line 2 citystringCity statestringState/province postalCodestringZIP/postal code operatorAccountIdstringStripe account ID contactEmailstringContact email contactPhonestringContact phone websitestringWebsite URL
Field Type Description monthnumberMonth (1-12) yearnumberYear daysActivityCalendarDay[]Day-by-day availability
Field Type Description datestringDate string isAvailablebooleanWhether the date has availability pricenumberPrice (if includePrices was set) isEstimatedPricebooleanWhether the price is an estimate blackoutMessagestringReason for unavailability
Field Type Description pricenumberSlot price remainingSeatsnumberSeats still available canBookPrivateTourbooleanPrivate tour available for this slot
Field Type Description uuidstringActivity UUID slotsActivityTimeSlot[]Available slots nextAvailableDatestringNext date with availability
Field Type Description feesFee[]Taxes and fees lineItemsCartLineItem[]Line items subtotalnumberSubtotal totalnumberTotal feesTotalnumberTotal fees discountTotalnumberTotal discounts paidnumberAmount already paid balancenumberRemaining balance couponCodestringApplied coupon code giftCardCodestringApplied gift card code giftCardAmountAppliednumberGift card amount used giftCardBalancenumberRemaining gift card balance dueNownumberAmount due now dueLaternumberAmount due later tripProtectionSelectedbooleanTrip protection included tripProtectionPricenumberTrip protection price equipmentServerShoppingCartEquipment[]Equipment in cart
Field Type Description amountnumberFee amount uuidstringFee UUID namestringFee name typeTaxesAndFeesType0 = Tax, 1 = Fee
Field Type Description namestringLine item name pricenumberLine item price typestringLine item type
Field Type Description typeShoppingCartRemovalTypeRemoval reason code (0-9) uuidstringRemoved item UUID maxQuantitynumberMaximum allowed quantity
Field Type Description uuidstringInvoice UUID dueNowCentsnumberAmount due in cents
Field Type Description idstringWaiver UUID namestringWaiver name fieldsanyField definitions contactEmailstringContact email logoUristringLogo image URL appendLogobooleanShow logo on waiver requiresBookingbooleanRequires reservation lookup themeWaiverThemeColor theme
Field Type Description primarystringPrimary color secondarystringSecondary color accentstringAccent color backgroundstringBackground color paperstringPaper/card color textstringText color textMutedstringMuted text color borderstringBorder color errorstringError color successstringSuccess color warningstringWarning color
Field Type Description uuidstringUnique identifier typenumberField type identifier labelstringDisplay label requiredbooleanWhether the field is required
Field Type Description uuidstringUnique identifier titlestringAgreement title bodystringAgreement body text requiredbooleanMust be accepted enabledbooleanCurrently active
Field Type Description enabledbooleanDynamic duration enabled minimumHoursnumberMinimum bookable hours maximumHoursnumberMaximum bookable hours incrementMinutesnumberDuration increment in minutes baseHourlyRatenumberHourly rate createdAtDateCreated timestamp updatedAtDateUpdated timestamp
Field Type Description dateTypenumberScheduling type identifier dateRangeDateOnlyRangeAvailable date range specificDatesstring[]Specific available dates earlyCutoffValuenumberEarly cutoff value futureCutoffDaysnumberHow far ahead bookings are allowed earlyCutoffTypenumberEarly cutoff type identifier
Field Type Description lowerBoundstringStart date upperBoundstringEnd date lowerBoundIsInclusivebooleanStart is inclusive upperBoundIsInclusivebooleanEnd is inclusive lowerBoundInfinitebooleanNo start boundary upperBoundInfinitebooleanNo end boundary isEmptybooleanRange is empty
Field Type Description enabledbooleanTrip protection enabled pricingTypenumberPricing type identifier flatAmountnumberFlat price amount percentAmountnumberPercentage amount coverageTypenumberCoverage type identifier coverageAmountnumberCoverage amount customTitlestringCustom display title customDescriptionstringCustom description
Field Type Description uuidstringUnique identifier titlestringPost title slugstringURL-friendly identifier excerptstringShort excerpt contentstring | nullFull JSON content (version 2 block format) featuredImageUristringFeatured image URL featuredImageThumbnailUristringFeatured image thumbnail URL statusstringPublication status metaTitlestring | nullSEO meta title metaDescriptionstring | nullSEO meta description authorstringAuthor name publishedAtDate | nullPublication date createdAtDateCreated timestamp updatedAtDateLast updated timestamp categoriesBlogCategory[]Assigned categories
Field Type Description uuidstringUnique identifier namestringCategory name slugstringURL-friendly identifier descriptionstringCategory description createdAtDateCreated timestamp
Field Type Description idstringSurvey ID namestringSurvey name descriptionstringSurvey description questionsSurveyQuestion[]Survey questions thankYouMessagestringMessage shown after submission
Field Type Description idstringQuestion ID typestringQuestion type (text, rating, choice, etc.) labelstringQuestion text requiredbooleanWhether the question is required ordernumberDisplay order maxStarsnumberMax stars for rating questions optionsSurveyQuestionOption[]Options for choice questions
Field Type Description idstringOption ID labelstringOption text ordernumberDisplay order
Field Type Description customerNamestringCustomer name customerEmailstringCustomer email confirmationCodestringBooking confirmation code bookingDatestringBooking date
Field Type Description companyNamestringCompany name logoUrlstringLogo URL locationNamestringLocation name primaryColorstringPrimary color secondaryColorstringSecondary color accentColorstringAccent color backgroundColorstringBackground color cardBackgroundColorstringCard background color cardTextColorstringCard text color headerTextColorstringHeader text color
Field Type Description pageTitlestringPage title returnUrlstringPost-checkout redirect URL successMessagestringSuccess message showActivitySelectorbooleanShow activity selector autoRedirectToFirstActivitybooleanAuto-redirect if single activity allowGuestCheckoutbooleanAllow guest checkout autoSelectSingleEquipmentbooleanAuto-select if single equipment durationTitleTextstringDuration step title dateTitleTextstringDate step title timeSlotTitleTextstringTime slot step title popupWindowTitlestringPopup window title activityPageThemeActivityPageThemeConfigActivity page theme customCssstringCustom CSS customJavaScriptstringCustom JavaScript purchaseCompleteJavaScriptstringPost-purchase JavaScript gaTrackingIdstringGoogle Analytics ID fbPixelIdstringFacebook Pixel ID activitiesCustomOrderActivityOrderItem[]Custom activity ordering equipmentCustomOrderEquipmentOrderItem[]Custom equipment ordering
Value Name Description 0None No error 1ActivityNotFound Activity does not exist 2EquipmentNotFound Equipment does not exist 3DurationNotFound Duration does not exist 4TimeSlotNotAvailable Selected time slot is unavailable 5EquipmentNotAvailable Equipment is not available 6EquipmentQuantityExceeded Requested quantity exceeds available 7SeatLimitExceeded Seat limit exceeded 8GuestMinimumNotMet Minimum guest count not met 9GuestLimitExceeded Maximum guest count exceeded 10AddonNotFound Addon does not exist 11AddonNotAvailable Addon is not available 12AddonQuantityExceeded Addon quantity exceeded 13InvalidDate Invalid booking date 14DateNotAvailable Date is not available 15InvalidDuration Invalid duration selection 16InvalidTimeSlot Invalid time slot 17CustomerRequired Customer information required 18InvalidCustomer Invalid customer data 19CartExpired Cart session has expired 20CartNotFound Cart does not exist 21PaymentFailed Payment processing failed 22CouponInvalid Coupon code is invalid 23CouponExpired Coupon has expired 24GeneralError Unspecified error
Value Name Description 0None No error 1InvalidCode Gift card code is invalid 2Expired Gift card has expired 3NoBalance Gift card has no remaining balance 4InsufficientBalance Gift card balance is too low 5AlreadyApplied Gift card is already applied 6NotFound Gift card not found 7Disabled Gift cards are disabled 8LocationMismatch Gift card belongs to a different location 9GeneralError Unspecified error
Value Name Description 0None No removal 1EquipmentUnavailable Equipment no longer available 2EquipmentQuantityReduced Quantity reduced to max available 3AddonUnavailable Addon no longer available 4AddonQuantityReduced Addon quantity reduced 5SeatReduction Seats reduced to max available 6DurationUnavailable Duration no longer available 7TimeSlotUnavailable Time slot no longer available 8DateUnavailable Date no longer available 9ActivityUnavailable Activity no longer available
Value Name Description 0Tax Tax line item 1Fee Fee line item
All API responses extend this base interface:
interface ApiResponseBase {
success : boolean ; // Whether the request succeeded
message : string ; // Human-readable message
statusCode : number ; // HTTP status code (0 for network errors)
action : string ; // API endpoint/action
isNetworkError : boolean ; // True if the error was a network/timeout issue
}