Cancellations#
Two calls, and you should always make the first one.
GET /v1/bookings/{bookingId}/cancellation-quote | What cancelling would cost, right now |
POST /v1/bookings/{bookingId}/cancel | Actually cancel it |
Quote first#
The quote tells you what you get back today. It is not binding for tomorrow — cancellation terms are date-banded, so the same booking cancelled a day later can refund materially less.
Show it to whoever is deciding, and cancel against the figure they saw.
The refundable portion is decided by the cancellation policy windows fixed when the order was priced, and by the date you cancel. It is not negotiable at cancellation time.
curl "$BASE/v1/bookings/bkg_20Etl54TyD/cancellation-quote" \
-u "$ELIVAAS_API_KEY:"curl -X POST "$BASE/v1/bookings/bkg_20Etl54TyD/cancel" \
-u "$ELIVAAS_API_KEY:" \
--data-urlencode 'reason=Guest changed plans'What lands on your ledger#
Cancelling posts a CREDIT for the non-retained portion — what you get back. The retained portion stays charged, because it is genuinely owed.
A fully refundable cancellation credits the whole charge. A 40% penalty credits 60% of it. A fully non-refundable one credits nothing at all, and posts no entry.
Cancelling around your billing run#
The timing relative to your billing cycle changes the paperwork, though never the money:
| When you cancel | What happens |
|---|---|
| Before the run | The run bills the net — just the retained portion, if any |
| After the run, invoice still a draft | The draft is re-derived at the net position |
| After the invoice was issued | A credit note is raised against it |
An issued invoice is never edited or deleted. The correction is always a separate credit note, which appears in GET /v1/invoices as an ordinary row with creditNoteFor set.
What cannot be cancelled#
- A booking already cancelled — the second call is rejected rather than crediting twice.
- A booking past checkout.
- Another account's booking id:
404, worded identically to one that does not exist.
Some inventory carries a no-cancellation constraint from the property side. Where that applies, the quote tells you before you commit — which is the other reason to always quote first.
Events#
A cancellation emits booking.cancelled. It is terminal: one per booking.
Next#
Credit and ledger to see the credit land, or Invoices for the credit-note side.