Cancel a reservation
Cancel a booking, read the charge, and handle PMSs that cancel manually.
To cancel a booking, send DELETE /api/v1/reservation/{id} with the OnSeason reservation id. Don't use providerReservationID.
curl --request DELETE \
"https://zepl-staging.calry.app/api/v1/reservation/9fa05abc-daf0-4ee4-a9e6-f959c2e8a421" \
--header "x-calry-api-key: <API_KEY>"The request has no body. You can cancel only reservations that you created with your API key and that are in CONFIRMED status.
Read the result
The response has the new status, the cancellation time, and the charge under the booked terms:
status | Meaning | What to do |
|---|---|---|
CANCELLED | The PMS cancelled the booking and the dates are free again. | Confirm the cancellation to the guest. |
CANCELLATION_PENDING | The property's PMS has no cancellation API. OnSeason recorded the cancellation and flagged it for a person to cancel in the PMS. | Treat the booking as cancelled for the guest. The status moves to CANCELLED once the PMS confirms. |
In both cases cancelledBy is CHANNEL and cancellationCharge holds the penalty and the refund at the moment OnSeason received your request. See What happens when you cancel.
Cancel safely
- A repeat cancel of a
CANCELLATION_PENDINGreservation returns its current state with200. It changes nothing. - A repeat cancel of a
CANCELLEDreservation returns400, because the reservation is no longerCONFIRMED. - If a cancel request times out, don't send it again blindly. Get the reservation first and check
status.
Show the outcome to the guest
Show the refund from cancellationCharge.refundAmount in cancellationCharge.currency, and the penalty if there is one. The API records the figures but doesn't move money. Refunds follow your commercial agreement with OnSeason.