Learn how to diagnose and resolve cancellation failures for accommodation reservations, car rentals, and standalone car insurance policies (Beta).
v3.2 Beta
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 investigating a failed cancellation request, retrieve the latest order details and verify the current state of the travel service.
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. |
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.
The following scenarios prevent a cancellation request from succeeding.
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 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.
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.
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.
The following table summarises the most common errors returned by the /orders/cancel endpoint.
Status code | Common error IDs | Typical cause | Recommended action |
|---|---|---|---|
400 Bad Request | missing_parameter, invalid_parameter, malformed_request | The request is invalid or contains missing or incorrect parameters. | Review the request payload and ensure all required fields are provided. |
403 Forbidden | The 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 Found | The specified order, reservation, or insurance policy could not be found. | Verify the identifiers using the latest order details. | |
409 Conflict | order_not_cancellable | The 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 Error | An unexpected server-side error occurred. | Retry the request after a short delay. If the issue persists, contact support. | |
504 Gateway Timeout | The 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.
Not every error should be retried.
Error | Retry? | Recommendation |
|---|---|---|
400 Bad Request | ❌ No | Correct the request before submitting it again. |
403 Forbidden | ⚠️ Sometimes | Retry only if the reservation was created recently or you were using the wrong environment. |
404 Not Found | ❌ No | Verify the identifiers returned by the latest order details before retrying. |
409 Conflict | ❌ No | The travel service is no longer eligible for cancellation. |
500 Internal Server Error | ✅ Yes | Retry after a short delay. |
504 Gateway Timeout | ✅ Yes | Retry after a short delay. |
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."
}
]
}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.
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:
- Retrieve the latest car order details using /orders/details/cars/live (Beta).
- Verify whether the reservation or insurance status has changed to
cancelled. - If the status remains unchanged after repeated checks, contact support.
Follow these recommendations to minimise cancellation failures and improve the traveller experience.
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.
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.
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.
The confirmation process depends on the travel service:
To verify that the cancellation has been completed:
Accommodation reservations are cancelled synchronously - A
successfulresponse from /orders/cancel confirms that the reservation has already been cancelled.Car rental reservations and standalone car insurance policies are cancelled asynchronously:
- A
processingresponse 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.
- A
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.
- See the Handle order cancellations guide for step-by-step cancellation instructions.
- See the Retrieve order details guide to retrieve the latest travel service information.
- Learn about the supported Cancellation policies to understand cancellation eligibility and fees.