Skip to main content
The OTA_TourActivityBookRQ (Excursion Book Request) is used to quote and commit tour & activity bookings.
Already know OTA messages? Jump straight into testing.

OTA_TourActivityBookRQ API call

Skip & Hit the Playground.

Purpose

This message is used to:
  • Request a quote (availability + total price) for a specific activity using ResStatus="Quote".
  • Confirm a booking using ResStatus="Commit" (binding if accepted).

Structure – Root Element

<OTA_TourActivityBookRQ>
Key Attributes:

Structure – Core Elements

POS

Identifies the requesting party and contains credentials.
<POS>
  <Source>
    <RequestorID ID="TST1" ID_Context="AxisData" Type="22" Instance="PriceBreakdown"/>
  </Source>
  <Source>
    <RequestorID Type="88" ID="TST1" MessagePassword="TST1password?"/>
  </Source>
</POS>

BookingInfo

Container for the service, participants, schedule, pricing, and optional extras.

BasicInfo

Provide the full service identifier returned by the search.
<BasicInfo TourActivityID="LESACE81AS" SupplierProductCode="ST" SupplierServiceCode="TRF"/>

ParticipantInfo

Each traveler is described with a Category and Individual node.
  • Category/@QualifierInfo: Age Qualifying Code (AQC) per OTA standard.
  • Individual/@Age: Age at time of service.
  • Individual/@ParticipantID: Unique within request.
<ParticipantInfo>
  <Category QualifierInfo="10"/>
  <Individual Age="36" ParticipantID="1">
    <GivenName>Bender</GivenName>
    <NamePrefix>Mr</NamePrefix>
    <Surname>Bending</Surname>
  </Individual>
</ParticipantInfo>
<ParticipantInfo>
  <Category QualifierInfo="10"/>
  <Individual Age="32" ParticipantID="2">
    <GivenName>Angeline</GivenName>
    <NamePrefix>Ms</NamePrefix>
    <Surname>Bending</Surname>
  </Individual>
</ParticipantInfo>

Schedule

Use a single calendar date for the service. Times may be included.
<Schedule Start="2026-07-17T09:30:00" End="2026-07-17T17:30:00"/>

PickupDropoff

Include pickup time and location if the activity requires it (e.g. TRF).
<PickupDropoff DateTime="2026-07-17T08:25:00" LocationName="AMTSES08UI" PickupInd="true"/>

Pricing

Send back the total price from the detailed search for consistency.
<Pricing>
  <Summary Amount="130.00" CurrencyCode="EUR"/>
</Pricing>

Extras

Add optional extras returned by search. Do not include compulsory extras (already priced).
<Extra SupplierCode="EXFOOD" Description="Extra Food" quantity="1"/>

TPA_Extensions

Partner references are required for idempotency and voucher printing.
<TPA_Extensions>
  <UniqueID Type="36" ID="123456789" ID_Context="Client"/>
  <UniqueID Type="37" ID="123456789_1" ID_Context="Client"/>
</TPA_Extensions>

Complete Examples

<OTA_TourActivityBookRQ Version="2011.2" ResStatus="Quote" xmlns="http://www.opentravel.org/OTA/2003/05">
  <POS>
    <Source>
      <RequestorID ID="TST1" ID_Context="AxisData" Type="22" Instance="PriceBreakdown"/>
    </Source>
    <Source>
      <RequestorID Type="88" ID="TST1" MessagePassword="TST1password?"/>
    </Source>
  </POS>
  <BookingInfo>
    <BasicInfo TourActivityID="LESACE81AS" SupplierProductCode="ST" SupplierServiceCode="TRF"/>
    <ParticipantInfo>
      <Category QualifierInfo="10"/>
      <Individual Age="36" ParticipantID="1">
        <GivenName>Bender</GivenName>
        <NamePrefix>Mr</NamePrefix>
        <Surname>Bending</Surname>
      </Individual>
    </ParticipantInfo>
    <ParticipantInfo>
      <Category QualifierInfo="10"/>
      <Individual Age="32" ParticipantID="2">
        <GivenName>Angeline</GivenName>
        <NamePrefix>Ms</NamePrefix>
        <Surname>Bending</Surname>
      </Individual>
    </ParticipantInfo>
    <Schedule Start="2026-07-17T09:30:00" End="2026-07-17T17:30:00"/>
    <PickupDropoff DateTime="2026-07-17T08:25:00" LocationName="AMTSES08UI" PickupInd="true"/>
    <Pricing>
      <Summary Amount="130.00" CurrencyCode="EUR"/>
    </Pricing>
    <Extra SupplierCode="EXFOOD" Description="Extra Food" quantity="1"/>
  </BookingInfo>
  <TPA_Extensions>
    <UniqueID Type="36" ID="123456789" ID_Context="Client"/>
    <UniqueID Type="37" ID="123456789_1" ID_Context="Client"/>
  </TPA_Extensions>
</OTA_TourActivityBookRQ>

Best Practices

  1. Always include partner references in TPA_Extensions to prevent duplicate bookings.
  2. Use ages at service date in Individual/@Age.
  3. Keep Start and End within the same calendar day for day activities.
  4. Echo back the returned price in Pricing/Summary for consistency checks.

Playground

OTA_TourActivityBookRQ API call

Try our API playground in real time.
Use the desired request in the playground and receive responses from our test environment API!