Skip to content
Last updated

Troubleshoot cancellation failures

Learn how to diagnose and resolve cancellation failures for accommodation reservations, car rentals, and standalone car insurance policies (Beta).

v3.2 Beta


Overview

Cancellation requests may fail if the travel service is no longer eligible for cancellation, required information is missing, or the request cannot be processed.

This guide explains how to:

  • Verify whether a travel service can still be cancelled.
  • Troubleshoot common cancellation failures.
  • Interpret the most common API responses.
  • Determine whether a request should be retried.
  • Confirm the final cancellation status.

For step-by-step instructions on cancelling travel services, see the Handle order cancellations guide.


Before troubleshooting

Before investigating a failed cancellation request, retrieve the latest order details and verify the current state of the travel service.

General checklist

Confirm that:

Checklist
The reservation or insurance policy exists.
The travel service is still active.
The travel service is eligible for cancellation.
All required request parameters are included.
The latest travel service details have been retrieved using the appropriate /orders/details endpoint.

Additional checks for car insurance (Beta)

Before cancelling a standalone car insurance policy, verify that:

  • The reservation includes an insurance policy.
  • The insurance policy has not already been cancelled.
  • The associated car rental reservation is still active (confirmed).

If any of these conditions are not met, the insurance cancellation request fails.


Common cancellation scenarios

The following scenarios prevent a cancellation request from succeeding.

Accommodation reservations

Accommodation reservations cannot be cancelled when:

  • The reservation has already been cancelled.
  • The stay has been completed (the status is stayed).
  • The reservation has been marked as a no_show.
  • The reservation was cancelled by the accommodation provider.

Car rentals

Car rental reservations cannot be cancelled when:

  • The reservation has not yet been confirmed.
  • The rental has already been completed.
  • The reservation has already been cancelled.

Car insurance (Beta)

Standalone car insurance policies cannot be cancelled when:

  • No insurance policy exists for the car rental reservation.
  • The insurance policy has already been cancelled.
  • The associated car rental reservation has already been cancelled.
Important

Insurance cancellation depends on the state of both the insurance policy and the associated car rental reservation.

Always retrieve the latest car order details before attempting to cancel a standalone car insurance policy.


Common API errors

The following table summarises the most common errors returned by the /orders/cancel endpoint.

Status code
Common error IDsTypical causeRecommended action
400 Bad Requestmissing_parameter, invalid_parameter, malformed_requestThe request is invalid or contains missing or incorrect parameters.Review the request payload and ensure all required fields are provided.
403 ForbiddenThe endpoint is unavailable in the current environment, or the travel service cannot yet be cancelled.Verify that you are using the correct environment. If the reservation was created recently, wait a few minutes before retrying.
404 Not FoundThe specified order, reservation, or insurance policy could not be found.Verify the identifiers using the latest order details.
409 Conflictorder_not_cancellableThe travel service is no longer eligible for cancellation, for example because it has already been cancelled or the cancellation window has expired.Retrieve the latest order details and verify the current status before retrying.
500 Internal Server ErrorAn unexpected server-side error occurred.Retry the request after a short delay. If the issue persists, contact support.
504 Gateway TimeoutThe request timed out before a response was returned.Retry the request after a short delay.

This table covers the most common cancellation-related errors. For a complete list of API errors and error IDs, see the General error handling guide.


Should I retry the request?

Not every error should be retried.

Error
Retry?Recommendation
400 Bad Request❌ NoCorrect the request before submitting it again.
403 Forbidden⚠️ SometimesRetry only if the reservation was created recently or you were using the wrong environment.
404 Not Found❌ NoVerify the identifiers returned by the latest order details before retrying.
409 Conflict❌ NoThe travel service is no longer eligible for cancellation.
500 Internal Server Error✅ YesRetry after a short delay.
504 Gateway Timeout✅ YesRetry after a short delay.

Example error responses

Travel service is no longer cancellable

If the travel service is no longer eligible for cancellation, the API returns an order_not_cancellable error.

For example, attempting to cancel an accommodation reservation after the check-in date may return:

{
  "request_id": "01jc0echvzdvwt4g1vc0yj280f",
  "errors": [
    {
      "id": "order_not_cancellable",
      "message": "The order is no longer cancellable. Check-in date was yyyy-mm-dd."
    }
  ]
}

Travel service has already been cancelled

If the reservation has already been cancelled, the API returns a similar error:

{
  "request_id": "01jc0echvzdvwt4g1vc0yj280f",
  "errors": [
    {
      "id": "order_not_cancellable",
      "message": "The order is not cancellable. The order has already been cancelled."
    }
  ]
}

Before retrying a failed cancellation request, always retrieve the latest order details to verify the current status and cancellation eligibility.


Cancellation request still processing

Car rental and standalone car insurance cancellations are processed asynchronously.

If /orders/cancel returns:

{
  "data": {
    "status": "processing"
  }
}

this means the cancellation request has been accepted but has not yet completed.

If the cancellation is still not reflected after waiting up to one hour:

  1. Retrieve the latest car order details using /orders/details/cars/live (Beta).
  2. Verify whether the reservation or insurance status has changed to cancelled.
  3. If the status remains unchanged after repeated checks, contact support.

Best practices

Follow these recommendations to minimise cancellation failures and improve the traveller experience.

Always retrieve the latest order details

Cancellation eligibility and applicable fees can change over time.

Before calling /orders/cancel, always verify:

  • The current travel service status.
  • The applicable cancellation policy.
  • Any cancellation fees.
  • Insurance eligibility, where applicable.

Validate the request before sending it

Avoid unnecessary API calls by validating that:

  • The travel service exists.
  • All required request parameters are present.
  • The travel service is still eligible for cancellation.

Retry only transient failures

Only retry requests for temporary server or network errors.

Do not retry validation errors (400), missing resources (404), or business rule conflicts (409) without first resolving the underlying issue.


Confirm the final cancellation status

The confirmation process depends on the travel service:

To verify that the cancellation has been completed:

  • Accommodation reservations are cancelled synchronously - A successful response from /orders/cancel confirms that the reservation has already been cancelled.

  • Car rental reservations and standalone car insurance policies are cancelled asynchronously:

    • A processing response confirms that the cancellation request has been accepted.
    • Retrieve the latest car order details later to verify that the reservation or insurance policy status has changed to cancelled.

Test different cancellation scenarios

Before releasing your integration, test scenarios such as:

  • Free cancellations.
  • Cancellations with fees.
  • Already cancelled reservations.
  • Completed or non-cancellable reservations.
  • Car rental cancellations.
  • Standalone car insurance cancellations.
  • Temporary server failures and retry behaviour.

Testing these scenarios helps ensure a reliable cancellation experience for travellers and reduces operational issues in production.