Documentation
booktour
Make a tour, sightseeing tour, or circuit optional reservation.
Note:
- The Tour fields are only needed to make a tour reservation.
- The Sightseeing tour fields are only needed to make a sightseeing tour reservation.
- Circuit optionals require additional fields and follow a different booking structure. They must be booked as an add-on to an existing circuit reservation.
endpoints
production
https://newapi.vpttours.com/booktour
request parameters
brochure
[int][required]
Tour brochure code.
code
[int][required]
Tour code.
For circuit optional reservations, this must be the optional service code returned by getoptionals.
date
[date:yyyy-mm-dd][required]
Departure date.
For circuit optional reservations, this must be the date of the optional service.
reference
[string][required]
Client custom reference associated with the reservation.
language
[int]
Language code in which we want to make the request.
tour fields:
rooms
[array:room:1-5][required]
Rooming list data.
foodplan
[int][default AD]
Tour foodplan.
For bookings including a meal plan, send foodplan: 1 to activate the selected meal plan when it is available for the selected tour, departure date and rate.
Sending the supplement code alone in supplements does not activate the meal plan.
category
[int]
Tour chosen category.
prenights
[int:0-2]
Number of pre nights before the tour start.
postnights
[int:0-2]
Number of post nights after the tour end.
transferin
[transfer]
Transfer-in data.
transferout
[transfer]
Transfer-out data.
sightseeing tour fields:
paxs
[array:pax:1-99][required]
Passenger list.
pickup
[string:pickup]
Pickup code.
circuit optional fields:
Some optional services belong to an already confirmed circuit reservation.
These optionals are not sightseeing tours and must be booked as an add-on to an existing circuit booking.
The following fields are required for circuit optional reservations:
optional
[int][required only for circuit optionals]
Must be set to 1 to indicate that the request corresponds to an optional service attached to a circuit reservation.
reservationcode
[string][required only for circuit optionals]
Locator of the already confirmed main circuit reservation to which the optional service will be added.
paxs
[array:pax:1-99][required only for circuit optionals]
Passenger list for whom the optional service will be booked.
For circuit optional reservations, this field is used to calculate the quantity and the total amount of the optional service.
The unit price returned by getoptionals is applied per passenger/person included in this paxs node.
Example:
Optional service unit price returned by getoptionals: 111 USD
Passengers sent in booktour paxs node: 7
Total amount returned by booktour: 777 USD
pickup
[string:pickup]
Pickup code, when required for the optional service.
Notes for circuit optionals
- Circuit optionals use the same
brochureandcodereturned in the optional list fromgetoptionals. - The
reservationcodefield must contain the locator of the already confirmed main circuit reservation. - The
optionalfield must be set to1. - The
paxsnode must contain the passengers for whom the optional service is being booked. - The price returned by
getoptionalsis a unit price per passenger/person, not the total reservation amount. - In the
booktourresponse for a circuit optional, the API returns the calculatedquantityandtotalaccording to the passengers sent in thepaxsnode.
Example – BookTour for a circuit optional
{
"logindata": {
"useremail": "*****",
"userpass": "*****",
"integrator_token": "xxxxxx"
},
"requestdata": {
"brochure": 264,
"code": 26,
"language": "1",
"prenights": 0,
"postnights": 0,
"date": "2026-07-24",
"optional": "1",
"reservationcode": 498471,
"reference": "optional-264-26",
"supplements": [],
"paxs": [
{
"code": 0,
"name": "Passenger 1",
"surname": "Surname 1",
"age": 30,
"passport": "P123456"
},
{
"code": 1,
"name": "Passenger 2",
"surname": "Surname 2",
"age": 30,
"passport": "P123457"
},
{
"code": 2,
"name": "Passenger 3",
"surname": "Surname 3",
"age": 30,
"passport": "P123458"
},
{
"code": 3,
"name": "Passenger 4",
"surname": "Surname 4",
"age": 30,
"passport": "P123459"
},
{
"code": 4,
"name": "Passenger 5",
"surname": "Surname 5",
"age": 30,
"passport": "P123460"
},
{
"code": 5,
"name": "Passenger 6",
"surname": "Surname 6",
"age": 30,
"passport": "P123461"
},
{
"code": 6,
"name": "Passenger 7",
"surname": "Surname 7",
"age": 13,
"passport": "P123462"
}
],
"pickup": "10001-1"
}
}
Example response – BookTour for a circuit optional
{
"reservationloc": 498471,
"serviceloc": 498471004,
"bookingstatus": "confirmed",
"total": 777,
"commission": 77.7,
"discount": 0,
"lines": [
{
"code": 1,
"concept": "adult",
"quantity": 7,
"total": 777,
"currency": {
"code": "2",
"name": "DOLAR USA",
"symbol": "USD"
},
"observaciones": null
}
],
"currency": {
"code": "2",
"name": "DOLAR USA",
"symbol": "USD"
}
}
response data
reservationloc
[int]
Reservation locator.
serviceloc
[int]
Service locator.
bookingstatus
[string]
Reservation status.
total
[decimal]
Total reservation amount.
For circuit optional reservations, this is the total amount calculated according to the passengers sent in the paxs node.
commission
[decimal]
Commission amount.
discount
[decimal]
Discount amount.
lines
[price]
Detailed reservation price list.
For circuit optional reservations, each line includes the calculated quantity and total for the optional service.
currency
[object]
Reservation currency.