Cancelling an Order
Note
What do you need to start?
All you need to get started is the
id
of the order you'd like to cancel. You
must also ensure that the order is cancellable by checking whether "cancel"
is a member of the available_actions
property of the order.Tip
Overview
The order cancellation process happens in 2 steps:
You create an unconfirmed cancellation quote
You confirm the cancellation
Create Cancellation Quote
You have the ability to create a cancellation quote before cancelling an order.
This allows you to review the conditions of the cancellation before confirming
it such as the amount of money that will be refunded and where it will be
refunded to (airline credit, the original form of payment or otherwise). You
can create a cancellation quote by creating a new Order Cancellation using the
id
of the order you'd like to cancel.curl -X POST --compressed "https://api.duffel.com/air/order_cancellations"-H "Accept-Encoding: gzip"-H "Accept: application/json"-H "Content-Type: application/json"-H "Duffel-Version: v2"-H "Authorization: Bearer $YOUR_ACCESS_TOKEN"-d '{"data": {"order_id": "'"$ORDER_ID"'"}}'
This request will return an Order Cancellation object which contains details of
the cancellation quote. It will not be confirmed however it will contain
important details about the prospective cancellation that you may wish to
review before confirming it. Some of the important properties of the Order
Cancellation object are explained below.
{// we'll use the id on the next step"id": "ore_00009qzZWzjDipIkqpaUAj",// determine whether you want to continue with the// cancellation or not based on the refund amount"refund_currency": "GBP","refund_amount": "90.80",// if this timestamp is in the past you will// not be able to confirm your cancellation and// will need to re-request a cancellation quote"expires_at": "2020-01-17T10:42:14.545052Z",// where the refund will be returned to. In this// case the refund amount will be sent to the// original form of payment used to pay for the order."refund_to": "original_form_of_payment"...}
The full schema definition can be found in the API documentation.
Confirm Cancellation
You can confirm the cancellation if you are happy with the quote provided.
Please note that you can only confirm the most recent Order Cancellation quote otherwise you will receive a
order_cancellation_stale
error.
Make the following request using the unique id
of the Order Cancellation object created previously.curl -X POST --compressed "https://api.duffel.com/air/order_cancellations/$ORDER_CANCELLATION_ID/actions/confirm"-H "Accept-Encoding: gzip"-H "Accept: application/json"-H "Duffel-Version: v2"-H "Authorization: Bearer $YOUR_ACCESS_TOKEN"
The Order Cancellation object will be returned but it will now include a
timestamp in the
confirmed_at
attribute. Your order is now cancelled and the
refund offered in the quote should be applied. A cancelled order will also
include the confirmed Order Cancellation object at the cancellation
property.Airline Credits
Occasionally an airline will provide airline credits instead of a monetary
refund when an order is cancelled which the passenger can use to get a discount
on future flights. These typically take the form of a "code" that the passenger
can use on the airline's website.
Cancellations that will be refunded to airline credits will have the
refund_to
property set to airline_credits
. The unconfirmed credits will
also be included in the airline_credits
array of the Order Cancellation
albeit with the credit_code
set to null
. You can see an example of an
Order Cancellation with airline credits below.{"id": "ore_00009qzZWzjDipIkqpaUAj",// the total value of the airline credits detailed below"refund_currency": "GBP","refund_amount": "90.80",// indicates that the cancellation will be refunded to// airline credits"refund_to": "airline_credits"// details about the specific airline credits"airline_credits": [{// typically the credit will be tied to a specific// passenger."passenger_id": "pas_00009hj8USM7Ncg31cBCLL",// different airlines will have different names for// airline credit."credit_name": "Duffel Travel Credit",// The value of the credit"credit_currency": "GBP","credit_amount": "90.80"// The credit code that the passenger can use to// redeem the airline credit. this will be null// until the cancellation is confirmed at which// point it should be sent to the passenger."credit_code": "1234567890123",...}]...}
You can view the full airline credits schema in the API
documentation.
We also provide a test route from
London Luton Airport (
LTN
) to London Stansted Airport (STN
) which you can
use to test your airline credits integration.Keep Learning
That's it! You know pretty much everything there is to know about order
cancellation now. To get a complete look at this flow in our API reference you
can jump to:
If you haven't learned how to add extra bags to your bookings, we recommend
looking at that next: