Travel Agent Docs
API Documentation

Operation API

API for Acuo Travel Agent Operation, a model-driven Power App.

Travel Agent Operation is a cloud-based backend application for managing group bookings for tours and events.

It supports front-end publishing automation and handles tour and event bookings efficiently.

As a Model-Driven Power App, the application uses Microsoft's platform capabilities to help clients integrate AI and automation features. These tools help tour operators and event organizers optimize workflows, improve efficiency, and deliver great service experiences.

Authentication

All API requests use OAuth 2.0 for authentication. You must obtain an access token to interact with the API.

Token needs to be refreshed periodically to maintain access.

Ensure that your access token is kept secure and never exposed in client-side code.

Endpoints

1. Package Management

Get Package Info

GET /cps_get_package_info(cps_external_package_id=<EXTERNAL PACKAGE ID>)
Content-Type: application/json

Use this endpoint to retrieve detailed information about a specific travel package.

Response (200 OK)

{
  "cps_travel_package_status": {
    "Name": "string",
    "ItemDescription": "string",
    "WebMessageboxTop": "string",
    "WebMessageboxLower": "string",
    "BookingMessageTextHelp": "string",
    "Image": "string",
    "StartDate": "DateTime",
    "EndDate": "DateTime",
    "MaxTravelersInBooking": "number",
    "MinTravelersInBooking": "number",
    "RegisterPassport": "boolean",
    "RegisterSSN": "boolean",
    "lookupSSN": "boolean",
    "ShowSalesStatus": "boolean",
    "ShowPrices": "boolean",
    "RegisterAddress": "boolean",
    "BookingFormShowHeader": "boolean",
    "PackagePrices": [
      {
        "PerCount": "number",
        "PricePP": "number",
        "Name": "string"
      }
    ],
    "PriceAddons": [
      {
        "AddonGuid": "string",
        "Description": "string",
        "TrvAbrv": "string",
        "PricePP": "number",
        "Oneofgroup": "string",
        "ActivityType": "number"
      }
    ]
  }
}

Get Package Status

GET /cps_get_package_status(cps_external_package_id=<EXTERNAL PACKAGE ID>)
Content-Type: application/json

Response (200 OK)

{
  "cps_travel_package_status": 
  {
    "UnBookedPax": "number",
    "Waitinglist": "boolean",
    "PackageStage": "number",
    "FewSeatsAvailable": "boolean",
    "AllowWaitlistRegistration": "boolean"
  }
}

Post Booking

POST /cps_put_travelerbooking
Content-Type: application/json

Post a new travel package to the system.

Request Body (JSON)

{
  "WaitlistRegistration": "boolean",
  "exteralref": "string",
  "Travelers": [
      {
        "Payer": "boolean",
        "Name_First": "string",
        "Name_Last": "string",
        "SSN": "string",
        "Email": "string",
        "Phonenumber": "string",
        "Address1": "string",
        "Address2": "string",
        "Addresszip": "string",
        "City": "string",
        "Country": "string",
        "Passportnumber": "string",
        "PassportIssueDate": "YYYY-MM-DD",
        "Passportexpiration": "YYYY-MM-DD",
        "PassportSex": "string",
        "Comment": "string",
        "PriceAddons": [
          "string"
        ]
    }
  ]
}

Response (200 OK)

{
  Same as the request body 
  ...
  "trvpackjournalheaderid": "string",
  "Header_validationErrors": "string",
  "Header_ErrorCode": {
    "type": "number",
    "message": "string"
  },
  "Travelers": [
      {
        Same as the request body 
        ...
        "Togethercode": "string",
        "salesprice": "number",
        "Passportbirthday": "YYYY-MM-DD",
        "Passportissuecountry": "string",
        "Passportnationality": "string",
        "ValidationResult": "string",
        "Trvpackjournallineid": "string",
        "Coupon": "string",
        "PriceAddons": [
          "string"
        ]
    }
  ]
}