> ## Documentation Index
> Fetch the complete documentation index at: https://mcp.theoryofevolution.com.au/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Book



## OpenAPI

````yaml /openapi/accomsoa-api.openapi.json post /activityapi/v1/book
openapi: 3.0.0
info:
  description: AccomSOA API for accommodation, activity, and EBS-related booking workflows.
  version: 1.0.0
  title: AccomSOA API
  contact:
    name: Adventium Tech Support
    url: https://www.adventium.tech
    email: tech-support@adventium.tech
servers:
  - url: //accomsoatest.websitetravel.com
security: []
tags:
  - name: accommodation-controller
    description: Accommodation Controller
  - name: activity-controller
    description: Activity Controller
  - name: basic-error-controller
    description: Basic Error Controller
  - name: ebs-controller
    description: EBS Controller
  - name: index-controller
    description: Index Controller
paths:
  /activityapi/v1/book:
    post:
      tags:
        - activity-controller
      summary: Book
      operationId: bookUsingPOST_1
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestData_ActivityBookRQ_'
        description: bookRQ
        required: true
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResponseData_ActivityBookRS_'
        '201':
          description: Created
        '400':
          description: Failed
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      deprecated: false
components:
  schemas:
    RequestData_ActivityBookRQ_:
      type: object
      properties:
        agentID:
          type: string
        data:
          $ref: '#/components/schemas/ActivityBookRQ'
        site:
          type: string
      title: RequestData«ActivityBookRQ»
    ResponseData_ActivityBookRS_:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ActivityBookRS'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/ResponseExtraInformation'
        status:
          type: integer
          format: int32
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/ResponseExtraInformation'
      title: ResponseData«ActivityBookRS»
    ActivityBookRQ:
      type: object
      required:
        - booker
        - internalBookingReference
        - items
        - travellers
      properties:
        booker:
          $ref: '#/components/schemas/ActivityBooker'
        countryCodeOfOrigin:
          type: string
          example: AU
          description: The country Code of origin.
        internalBookingReference:
          type: string
          description: A reference from the calling system for the booking
        items:
          type: array
          description: The items to be booked.
          items:
            $ref: '#/components/schemas/ActivityRequestItem'
        travellers:
          type: array
          description: >-
            A list of details of the customers on this booking.  Note that the
            order is important, as this array is accessed with an index during
            booking
          items:
            $ref: '#/components/schemas/Traveller'
      title: ActivityBookRQ
    ActivityBookRS:
      type: object
      required:
        - bookingReference
        - internalBookingReference
        - items
        - remarks
      properties:
        bookingReference:
          type: string
          description: The booking reference from the called system for this booking
        internalBookingReference:
          type: string
          description: A reference from the calling system for the booking
        items:
          type: array
          description: The list of items (activities) booked
          items:
            $ref: '#/components/schemas/ActivityResponseItem'
        remarks:
          type: array
          description: Any remarks for this booking returned by the supplier
          items:
            type: string
      title: ActivityBookRS
    ResponseExtraInformation:
      type: object
      properties:
        code:
          type: string
        text:
          type: string
      title: ResponseExtraInformation
    ActivityBooker:
      type: object
      required:
        - givenName
        - surname
        - title
      properties:
        givenName:
          type: string
          example: John
          description: The given (or first) name of the booking contact
        surname:
          type: string
          example: Smith
          description: The family name (or surname) name of the booking contact
        telephone:
          type: string
          example: '0414555666'
          description: The telephone numnber of the booking contact
        title:
          type: string
          example: Mr
          description: The title of the booking contact
      title: ActivityBooker
    ActivityRequestItem:
      type: object
      required:
        - activityId
        - channel
        - departureId
        - internalItemReference
        - optionId
      properties:
        activityId:
          type: string
          example: IM123456
          description: The activity id
        bookingQuestionAnswers:
          type: array
          description: Answers to the questions specified by the Activity Option
          items:
            $ref: '#/components/schemas/BookingAnswers'
        channel:
          type: string
          example: VIATOR
          description: The source channel of this item
        date:
          type: string
          description: The activity date
        departureId:
          type: string
          description: The departure id
        internalItemReference:
          type: string
          description: A reference from the calling system for this item
        optionId:
          type: string
          description: The option id
        supplyRate:
          $ref: '#/components/schemas/CurrencyValue'
        travellerIndex:
          type: array
          description: >-
            The index into the array of travellers against this booking, to
            indicate which travellers are on/in this item (/room)
          items:
            type: integer
            format: int32
      title: ActivityRequestItem
    Traveller:
      type: object
      properties:
        birthDate:
          type: string
          example: yyyy-MM-dd
        email:
          type: string
          example: fred@gmail.com
          description: The email of the traveller. Currently only used for transfers.
        givenName:
          type: string
        surname:
          type: string
        telephone:
          type: string
          example: '0414555666'
          description: >-
            The telephone numnber of the person.  Currently only used for
            transfers.
        title:
          type: string
      title: Traveller
    ActivityResponseItem:
      type: object
      required:
        - bookingItemReference
        - bookingQuestionAnswers
        - channel
        - internalItemReference
        - itemStatus
      properties:
        bookingItemReference:
          type: string
          description: The booking reference from the called system for this item
        bookingQuestionAnswers:
          type: array
          description: Answers to the questions specified by the Activity Option
          items:
            $ref: '#/components/schemas/BookingAnswers'
        channel:
          type: string
          example: VIATOR
          description: >-
            The source channel of this item, from the Room=>Source field in
            search results
        internalItemReference:
          type: string
          description: A reference from the calling system for this item
        itemRemark:
          type: string
          description: Any remark returned by the booking system particularly for this item
        itemStatus:
          type: string
          description: The booking status of this iterm
          enum:
            - BOOKED
            - CANCELLED
            - FAILED
      title: ActivityResponseItem
    BookingAnswers:
      type: object
      required:
        - answer
        - questionId
      properties:
        answer:
          type: string
          description: The answer
        questionId:
          type: string
          description: The question Id
        travelerNum:
          type: integer
          format: int32
          description: If the question is 'perTraveller', then the traeller index
      title: BookingAnswers
    CurrencyValue:
      type: object
      required:
        - amount
        - currencyId
      properties:
        amount:
          type: number
          example: 100
        currencyId:
          type: string
          example: AUD
      title: CurrencyValue

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.