Introduction
OTA-based notifications for excursions use the OTA_TourActivityRQ/RS message set (OpenTravel). These are used in push-model integrations to provide partners with up-to-date rates, availability, and product content for excursions and activities. A typical notification horizon is 12–18 months. Delta notifications are commonly sent every 15 minutes during daytime and hourly overnight.This page keeps a transactional focus: structures and rules are aligned with the real-time messages you use in pricing/booking flows (OTA_TourActivityRQ/RS), while showing how the same elements appear in push notifications.
Notification Schedule
- Full notification: inventories, rates, and/or availabilities for all products and for the full period.
- Delta notification:
- Stock (availability) deltas only include affected dates.
- Rates deltas ship the full rate scope for the affected product/period.
- Frequency guideline: full weekly; deltas every 15 min (09:00–22:59 CET) and hourly overnight.
Allotment (Availability)
OTA_TourActivityAvailRS with Target="Stock". Used to communicate when a service operates, what release applies, and how many units remain.
Skeleton
Technical Notes (Availability Patterns)
- The
Detailnode’sStart/Endbounds the date range covered by all patterns underneath it. OperationTime(PatternLength="1"):1= service operates;0= closed (closeouts, DOW restrictions, etc.).
Release(PatternLength="5"):- Each day consumes 5 chars in XML duration format (e.g.,
PT00H,P1D).
- Each day consumes 5 chars in XML duration format (e.g.,
Allotment(PatternLength="2"):XX= remaining integer units (e.g.,07)99= Free saleRQ= On requestSS= Stop sale
- A date is bookable only if all three concepts pass:
OperationTime=openANDRelease satisfiedANDAllotment available.
Pickup/Dropoff Logic
- Services with transfers list allowed hotel pickup points in
TPA_Extensions/Stocks/Stock/PickupDropoffs. - All hotels in the list are valid pickup/dropoff candidates; some allotment conditions may be constrained to specific pickup points.
Deactivation
Communicated with the same RS envelope, markingStockStatusType="Deactivated". Without dates, the product is deactivated entirely.
Rates
OTA_TourActivityAvailRS with Target="Rates". Used to communicate amounts, pricing base (per person / per group), brand-specific rates, pickup scope for transfer services, and participant policies.
Skeleton
Technical Notes (Pricing & Policies)
PricingType:PerPerson: multiply by pax that fall into priced participant categories.PerGroup: amount covers a whole group window (see Policies).- If booking pax exceed
MaxParticipants, compute multiple units (ceil division).
- If booking pax exceed
- Brand-specific pricing:
- Presence of
<Group GroupCode="…"/>means rate applies only to those brands. - Override rule: brand-specific beats generic for matching conditions.
- Presence of
- Policies / Participant windows:
- Expressed via age ranges and Min/MaxParticipants.
- If only ADT policies are present, you effectively signal adult-only experiences; CHD/INF ranges can be omitted entirely when not permitted.
Transactional Flow Hints (OTA_TourActivityRQ/RS)
While this page shows push RS envelopes, the same structures carry over to the transactional pull flow:- Search/Price:
OTA_TourActivityAvailRQ/RS- Request filters by TourActivityID, date, pax composition (ages), optional brand, and pickup scope.
- Response mirrors Schedule, Pricing, Policies, and (for transfers) PickupDropoffs.
- Book:
OTA_TourActivityBookRQ/RS- Send the selected date, pax detail (ages), pickup (if required), and any brand context used in pricing.
- RS confirms inventory, final price, and returns record locator.
- Retrieve/Cancel:
OTA_TourActivityResRetrieveRQ/RSandOTA_CancelRQ/RS(when supported).
Packaging Notes
- Pre-package: Combine multiple services (e.g., hotel + rent-a-car) under a single offer.
- Dynamic package: Compose at runtime.
- Car packages: use Inventory Block Codes (ACRISS-based).

