---
title: "Cancels a Booking."
method: DELETE
path: "/v1/bookings/{bookingReference}"
tags: ["Booking"]
---

# Cancels a Booking.

`DELETE /v1/bookings/{bookingReference}`

Requests to this endpoint that fail may be retried after a few minutes. See more in the Responses section. If the issue persists, the fallback integration mechanism will be used (A.K.A. the email or FTP delivered XML file).

## Path parameters

- `bookingReference` string, required

## Request body

- CancelBookingRequest — Encapsulates the necessary information to cancel an existing Booking.
  - `cancellationAuthor` 'Customer' | 'Supplier' | 'Suntransfers', required — Identifies who is requesting the cancellation.
  - `leadPassenger` LeadPassenger, required — The specifics about the Lead Passenger of the Booking.
    - `firstName` string, required — The first name of the Lead Passenger.
    - `lastName` string, required — The last name of the Lead Passenger.
    - `email` string, email, required — Due to GDPR, this might not be our customer's email, rather a Suntransfers contact email.
    - `phoneNumber` string, required — The phone number of the Lead Passenger, including country code.
  - `agency` AgencyBookingDetails — Details about the Agency making the Booking.
    - `name` string, required — The name of the Agency.
    - `bookingReference` string, nullable — The Agency's internal Booking reference. This is very often different from the Suntransfers Booking reference.
  - `transfers` Transfer[], required — The list of Transfers associated with the Booking being cancelled.
    - `status` 'Created' | 'Modified' | 'Cancelled', required — The current status of the Transfer.
    - `origin` Location, required — Details about a Location used in a Transfer's pickup or drop-off.
      - `name` string, required — The internationally known English name.
      - `translatedName` string, required — The translated name when the supplier's language is not English.
      - `type` 'Gateway' | 'Resort', required — `Gateway` denotes Airports, Ports, and Train Stations while `Resort` denotes Cities, Neighborhoods, Regions etc.
      - `id` string, required — The Suntransfers' internal unique identifier for the location.
      - `countryCode` string, required — The two-letter ISO 3166-1 country code.
      - `gatewayCode` string, nullable — The gateway code when `type` is `Gateway`. This is an IATA airport code for airports, a UN/LOCODE for ports, or a locally recognized code for train stations (e.g., `ESBCNSAN` for Barcelona Sants train station).
      - `latitude` number, double, required — Informational only. Always rely on `name` and `translatedName` instead. Rationale: When `type` is `Resort`, this value cannot represent a point because a Resort refers to a region. When `type` is `Gateway`, this value is unreliable due to the complexity of airports and terminals.
      - `longitude` number, double, required — Informational only. Always rely on `name` and `translatedName` instead. Rationale: When `type` is `Resort`, this value cannot represent a point because a Resort refers to a region. When `type` is `Gateway`, this value is unreliable due to the complexity of airports and terminals.
    - `destination` Location, required — Details about a Location used in a Transfer's pickup or drop-off.
      - `name` string, required — The internationally known English name.
      - `translatedName` string, required — The translated name when the supplier's language is not English.
      - `type` 'Gateway' | 'Resort', required — `Gateway` denotes Airports, Ports, and Train Stations while `Resort` denotes Cities, Neighborhoods, Regions etc.
      - `id` string, required — The Suntransfers' internal unique identifier for the location.
      - `countryCode` string, required — The two-letter ISO 3166-1 country code.
      - `gatewayCode` string, nullable — The gateway code when `type` is `Gateway`. This is an IATA airport code for airports, a UN/LOCODE for ports, or a locally recognized code for train stations (e.g., `ESBCNSAN` for Barcelona Sants train station).
      - `latitude` number, double, required — Informational only. Always rely on `name` and `translatedName` instead. Rationale: When `type` is `Resort`, this value cannot represent a point because a Resort refers to a region. When `type` is `Gateway`, this value is unreliable due to the complexity of airports and terminals.
      - `longitude` number, double, required — Informational only. Always rely on `name` and `translatedName` instead. Rationale: When `type` is `Resort`, this value cannot represent a point because a Resort refers to a region. When `type` is `Gateway`, this value is unreliable due to the complexity of airports and terminals.
    - `vehicle` Vehicle, required — Details about a Vehicle required for a Transfer.
      - `code` string, required — The Suntransfers Vehicle Code.
      - `type` string, required — The type of the Vehicle.
      - `title` string, required — The title of the Vehicle.
      - `isShared` boolean, required — Indicates if the Vehicle is of shared type (e.g., shuttle) or private type (e.g., taxi).
      - `isWheelchairAccessible` boolean, required — Indicates if the Vehicle is wheelchair accessible.
      - `maxPassengers` integer, nullable — The maximum number of Passengers the Vehicle can accommodate. This property is `null` for shuttle-type Vehicles where the capacity is virtually unlimited.
    - `passengers` Passengers, required — The specifics about the number of Passengers in the Transfer.
      - `total` integer, required — The total number of Passengers in the Transfer, that is, the sum of `adults`, `children`, and `infants`.
      - `adults` integer, required — The number of adults in the Transfer.
      - `children` integer, required — The number of children in the Transfer.
      - `infants` integer, required — The number of infants in the Transfer.
      - `ages` integer[], nullable — The ages, in years, of the children and infants in the Transfer.
    - `accommodation` Accommodation — Details about the Accommodation related to a Transfer pickup or drop-off.
      - `type` 'Hotel' | 'Villa' | 'Apartment' | 'Campsite' | 'Other', nullable — The type of Accommodation.
      - `name` string, nullable — The name of the Accommodation.
      - `addressParts` string[], nullable — The distinct components of the Accommodation's address.
      - `phone` string, nullable — The phone number of the Accommodation.
      - `giataCode` string, nullable — The GIATA code of the Accommodation.
      - `pickupName` string, nullable — The locally-known name of the pickup point.
      - `pickupAddressParts` string[], nullable — The distinct components of the Accommodation's pickup address.
    - `transferDateTime` string, date-time, required — An ISO 8601 date-time string in local time.
    - `pickupDateTime` string, date-time, nullable — The local date and time of the Pickup.
    - `latestPickupDateTime` string, date-time, nullable — The latest possible local date and time of the Pickup.
    - `fromFlight` Flight — Details about a Flight associated with a Transfer.
      - `airline` string, nullable — The name of the airline operating the flight.
      - `flightNumber` string, nullable — The flight number.
      - `flightNumberAirline` string, nullable — The airline code associated with the flight number. This is result of the `flightNumber` data split.
      - `flightNumberDigits` string, nullable — The digits associated with the flight number. This is result of the `flightNumber` data split.
      - `originGateway` string, nullable — The code of the origin Gateway. See the property `gatewayCode` in the `Location` type for more details.
      - `flightDateTime` string, date-time, nullable — The local date and time of the Flight.
    - `toFlight` Flight — Details about a Flight associated with a Transfer.
      - `airline` string, nullable — The name of the airline operating the flight.
      - `flightNumber` string, nullable — The flight number.
      - `flightNumberAirline` string, nullable — The airline code associated with the flight number. This is result of the `flightNumber` data split.
      - `flightNumberDigits` string, nullable — The digits associated with the flight number. This is result of the `flightNumber` data split.
      - `originGateway` string, nullable — The code of the origin Gateway. See the property `gatewayCode` in the `Location` type for more details.
      - `flightDateTime` string, date-time, nullable — The local date and time of the Flight.
    - `extras` Extra[], nullable — The list of Extra services added to the Transfer.
      - `id` string, required — The Suntransfers Extra identifier.
      - `name` string, required — The name of the Extra.
      - `translatedName` string, required — The translated name of the Extra.
      - `quantity` integer, required — The quantity of the Extra.
      - `unitRate` number, double, required — The unit rate of the Extra.
      - `notes` string, nullable — Additional notes about the Extra.
    - `price` Price, required — The pricing details of a Transfer.
      - `baseRate` number, double, required — The base rate for the Transfer.
      - `extras` number, double, nullable — The total amount for any extra services added to the Transfer.
      - `nightSupplement` number, double, nullable — The additional charge for night Transfers.
      - `weekdaySupplement` number, double, nullable — The additional charge for weekday Transfers.
      - `totalRate` number, double, required — The total rate for the Transfer, that is, the sum of `baseRate`, `extras`, `nightSupplement`, and `weekdaySupplement`.
    - `hasCheckedLuggage` boolean, nullable — Indicates if the passenger has checked luggage. That can help on determining the appropriate Vehicle and predicting the amount of time waiting at the Gateway.
    - `isVisaRequired` boolean, nullable — Indicates if a Visa is required for the passenger. That can help on predicting the amount of time a driver might need to wait at the Gateway.
    - `quoteId` string, nullable — An identifier to a Quote previously requested.
  - `notes` string, nullable — Additional notes about the cancellation.

## Response `200`

`200 OK`: The Booking has been cancelled. Signals that the cancellation has happened synchronously. That means that the Booking is already cancelled in the supplier's system.

- CancelBookingResponse — Represents the result of a Booking cancellation request.
  - `bookingReference` string, required — The Suntransfers Booking reference identifier. This is currently a string starting with 'SUNTR_' followed by alphanumeric characters.
  - `supplierReferences` SupplierReference[], nullable — The Supplier's internal Transfer references or IDs.

## Other responses

- `202` — `202 Accepted`: The request has been validated and queued for processing. Signals that the cancellation will be handled asynchronously. That means that the Booking is not cancelled in the supplier's system yet, but that it will done soon. See `201` for the synchronous version.
- `400` — `400 Bad Request`: The details of the issues found on the request are present in the `detail` property of the response.
- `401` — `401 Unauthorized`: Credentials are likely out of sync. Contact Suntransfers as soon as possible via our official email to synchronize credentials. Attention: DO NOT specify any details about username, password, or authentication method in the response.
- `404` — `404 Not Found`: The Booking was not found.
- `500` — `500 Internal Server Error`: Suntransfers systems might retry this request later.

---

[API](https://skmtc.net/suntransfers/apis/st-spec-suntransfers-supplier-api-specification.md) · [All operations](https://skmtc.net/suntransfers/apis/st-spec-suntransfers-supplier-api-specification/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/suntransfers/st-spec-suntransfers-supplier-api-specification/revisions/af3b2f961b6a/schema)
