Dropoffs [NEW]
Adds structured dropoff support, allowing predefined or customer-defined end-of-tour return locations, including time-window details.
Business Context
Dropoff service is commonly offered for tours and activities. It allows customers to be returned to one of the designated locations, or even to a customer-defined point within a supported dropoff area, instead of being left at the main ending point.
This service may be included for free or offered at an additional cost.
The OCTO Dropoffs Capability allows:
Supplier systems to indicate whether a product option supports dropoff, whether dropoff is required, and to provide structured dropoff locations and areas.
Reseller systems to obtain dropoff data, display available choices to customers during the booking flow, pass the customer’s selected dropoff location when creating, confirming, or updating a booking, and leverage a capability-specific endpoint to validate dropoff availability based on a customer-defined point (e.g., latitude/longitude).
Identical functionality is also available for pickups through the Pickups, which mirrors dropoffs and provides structured or customer-defined start-of-tour collection options.
Capability Summary
To enable this capability when supported by a supplier system’s OCTO API, the reseller system must include dropoffs in the Octo-Capabilities header of its requests to the supplier system.
Adding dropoffs to your Octo-Capabilities header will alter OCTO Core endpoint behavior as follows:
No additional functionality.
Response payload includes, per product option, whether dropoff is available, required for booking, and a list of supported locations/areas with their details.
Response payload includes, per product option, whether dropoff is available, required for booking, and a list of supported locations/areas with their details.
Response includes if the dropoff is requested for the booking, the selected dropoff location with details, including the dropoff time window.
Response includes if the dropoff is requested for the booking, the selected dropoff location with details, including the dropoff time window.
Response includes if the dropoff is requested for the booking, the selected dropoff location with details, including the dropoff time window.
Response includes if the dropoff is requested for the booking, the selected dropoff location with details, including the dropoff time window.
Response includes if the dropoff is requested for the booking, the selected dropoff location with details, including the dropoff time window.
GET Booking Dropoff Locations Endpoint
Additionally, this capability provides a dedicated endpoint GET Booking Dropoffs Locations, which enables searching for dropoff locations based on a customer-defined latitude and longitude, and validates whether dropoff service is available at that exact location or recommends alternate dropoff locations.
Additional OCTO Core Parameters & Schemas
Request Body:
{
// ...rest of the OPTION object
"dropoffAvailable": true,
"dropoffRequired": false,
"dropoffLocations": [
{
"id": "c1b2a3d4-5e6f-7081-92a3-b4c5d6e7f801",
"title": "Sagrada Família",
"shortDescription": "Dropoff available near the Basílica de la Sagrada Família in Barcelona. Guests are dropped at the coach parking area on Carrer de la Marina.",
"place": {
"latitude": 41.4036,
"longitude": 2.1744,
"postalAddress": {
"streetAddress": "Carrer de la Marina, 253",
"addressLocality": "Barcelona",
"addressRegion": "Catalunya",
"postalCode": "08013",
"addressCountry": "ES",
"postOfficeBoxNumber": null
},
"identifiers": [
{ "googlePlaceId": "ChIJp2VwQ0-hpBIRsY0R5pY2W7E" },
{ "tripadvisorLocationId": "876543" }
],
"sameAs": [
"https://maps.google.com/?cid=11111111111111111111"
]
}
},
{
"id": "f9e8d7c6-b5a4-3210-98f7-e6d5c4b3a210",
"title": "Plaça de Catalunya",
"shortDescription": "Central Barcelona dropoff at Plaça de Catalunya. Guests meet at the bus bays on the south side of the square.",
"place": {
"latitude": 41.3870,
"longitude": 2.1701,
"postalAddress": {
"streetAddress": "Plaça de Catalunya",
"addressLocality": "Barcelona",
"addressRegion": "Catalunya",
"postalCode": "08002",
"addressCountry": "ES",
"postOfficeBoxNumber": null
},
"identifiers": [
{ "googlePlaceId": "ChIJD7fiBh9uQgwR7-8fITgxTmU" }
],
"sameAs": [
"https://maps.google.com/?cid=22222222222222222222"
]
}
}
],
// Optional, just intended as a visual aid
"dropoffAreas": [
{
"title": "Central Barcelona Zone",
"shortDescription": "Dropoff available across central Barcelona, including Eixample, the Gothic Quarter, and the waterfront around Port Vell. Guests are dropped at approved coach stops within this zone.",
"area": {
"coordinates": [
{ "latitude": 41.3945, "longitude": 2.1682 },
{ "latitude": 41.3891, "longitude": 2.1830 },
{ "latitude": 41.3758, "longitude": 2.1820 },
{ "latitude": 41.3769, "longitude": 2.1635 },
{ "latitude": 41.3945, "longitude": 2.1682 } // end up where you start
],
"identifiers": [
{ "googlePlaceId": "ChIJ5TCOcRaipBIRX9G6FFzC7m8" },
{ "tripadvisorLocationId": "654321" }
],
"sameAs": [
"https://maps.google.com/?cid=33333333333333333333",
"https://www.tripadvisor.com/Attraction_Review-central-barcelona"
]
}
}
]
}
POST Availability Calendar (with dropoffs)
dropoffs) Request Body:
{
// ... rest of the OCTO Core availability request body
"dropoffRequested": true,
"dropoffLocationId": "9f1a3c1e-6b28-4e2a-9c7e-32d5a3a1f45e"
}dropoffRequested
boolean
optional
Whether the customer requested dropoff.
dropoffLocationId
string
optional
The dropoff location ID selected by the customer (must match one of dropoffLocations[].id).
Response Body:
{
// ...rest of the CALENDAR DAY object
"dropoffAvailable": true,
"dropoffRequired": false
}dropoffAvailable
boolean
required
Indicates whether dropoff service is offered for this date.
dropoffRequired
boolean
required
Indicates whether selecting a dropoff location is mandatory for booking.
POST Availability Check (with dropoffs)
dropoffs) Request Body:
{
// ... rest of the OCTO Core availability request body
"dropoffRequested": true,
"dropoffLocationId": null (optional, if dropoffLocation is requested up-front)
}
dropoffRequested
boolean
optional
Whether the customer requested dropoff.
dropoffLocationId
string
optional
The dropoff location ID selected by the customer (must match one of dropoffLocations[].id).
Response Body:
{
// ...rest of the AVAILABILITY object
// ...note addition of localDateTimeStart and localDateTimeEnd below
"dropoffAvailable": true,
"dropoffRequired": false,
"localDropoffDateTimeStart": null, (only set if dropoffLocationId is set)
"localDropoffDateTimeEnd": null, (only set if dropoffLocationId is set)
}
localDropoffDateTimeStart
string (ISO 8601, i.e. YYYY-MM-DD)
optional
Start of the dropoff time window in the local time zone of the dropoff location. Indicates the earliest time the customer can be collected.
localDropoffDateTimeEnd
string (ISO 8601, i.e. YYYY-MM-DD)
optional
End of the dropoff time window in the local time zone of the dropoff location. Indicates the latest time the customer can be collected.
Request Body:
{
// ... rest of the OCTO Core CREATE BOOKING request body
"dropoffRequested": true,
"dropoffLocationId": "9f1a3c1e-6b28-4e2a-9c7e-32d5a3a1f45e"
"dropoffNotes": "Blue door next to the bakery"
}dropoffRequested
boolean
optional
Whether the customer requested dropoff.
dropoffLocationId
string
optional
The dropoff location ID selected by the customer (must match one of dropoffLocations[].id).
dropoffpNotes
string
optional
Free-text notes provided by the customer for dropoff (e.g., Airbnb directions, gate code, nearby landmark, hotel room, etc).
Response Body:
// ...rest of the BOOKING object
{
"dropoffRequested": true,
"dropoffLocationId": "a3f9c2d1-7e45-4b89-91f2-5d6e7c8b9a10",
"dropoffNotes": "Main entrance under the glass canopy",
"localDropoffDateTimeStart": "2025-06-15T18:10:00+02:00",
"localDropoffDateTimeEnd": "2025-06-15T18:25:00+02:00",
"dropoffLocation": {
"id": "a3f9c2d1-7e45-4b89-91f2-5d6e7c8b9a10",
"title": "Hotel Colosseo View",
"shortDescription": "Dropoff available at Hotel Colosseo View, a short walk from the Colosseum. Guests should wait at the coach bay in front of the main entrance on Via dei Fori Imperiali.",
"place": {
"latitude": 41.8910,
"longitude": 12.4923,
"postalAddress": {
"streetAddress": "Via dei Fori Imperiali 12",
"addressLocality": "Roma",
"addressRegion": "Lazio",
"postalCode": "00184",
"addressCountry": "IT",
"postOfficeBoxNumber": null
},
"identifiers": [
{ "googlePlaceId": "ChIJ0X31pIKJPxMRXkS7Gz5Q2f8" },
{ "tripadvisorLocationId": "789012" }
],
"sameAs": [
"https://maps.google.com/?cid=44444444444444444444"
]
}
}
}GET Booking Dropoff Locations
GET {host}/bookings/{uuid}/dropoffLocations?latitude={lat}&longitude={lng}
Query Parameters:
latitude
number
required
Customer-defined latitude (WGS84).
longitude
number
required
Customer-defined longitude (WGS84).
When latitude and longitude are not provided, the supplier system should return the full list of dropoff locations.
When latitude and longitude are provided, the supplier system may choose to either:
return the full list of dropoff locations in any order,
return the full list ordered in a way that reflects the lat/lon query,
return only a subset of locations that best match the passenger’s position, or
generate a new, virtual dropoff location on the fly that corresponds to the provided coordinates and can be used for booking creation or updates.
Reseller systems must be prepared for scenarios where a dropoff location ID returned during availability or booking does not appear in the static list retrieved via the general dropoffLocations query for that product option.
Response Body:
{
"localDropoffDateTimeStart": "2025-09-14T14:20:00+01:00",
"localDropoffDateTimeEnd": "2025-09-14T14:35:00+01:00",
"dropoffLocation": {
"id": "b72c4e81-9d3f-4a3c-8a6f-0e92c4b1d993",
"title": "Paddington Station – Praed St Entrance",
"shortDescription": "Dropoff at the main Praed Street entrance, next to the taxi rank.",
"place": {
"latitude": 51.5167,
"longitude": -0.1761,
"postalAddress": {
"streetAddress": "Praed Street",
"addressLocality": "London",
"addressRegion": "England",
"postalCode": "W2 1HB",
"addressCountry": "UK"
},
"identifiers": [
{ "googlePlaceId": "ChIJ5wCQT3YPdkgR0b6l5LjxaQ8" }
],
"sameAs": [
"https://maps.google.com/?q=Paddington+Station+Praed+Street"
]
}
}
},
{
"localDropoffDateTimeStart": "2025-09-14T14:50:00+01:00",
"localDropoffDateTimeEnd": "2025-09-14T15:05:00+01:00",
"dropoffLocation": {
"id": "e19a873b-04c3-48cc-9cb0-78bbcf6c1f44",
"title": "London Eye – Riverside Walk",
"shortDescription": "Dropoff near the entrance queue area on Riverside Walk.",
"place": {
"latitude": 51.5033,
"longitude": -0.1195,
"postalAddress": {
"streetAddress": "Riverside Walk",
"addressLocality": "London",
"addressRegion": "England",
"postalCode": "SE1 7PB",
"addressCountry": "UK"
}
}
}
}Last updated
Was this helpful?