What cancelling this booking now would refund, and until when that figure holds
const url = 'https://quikstik-core.fly.dev/account/bookings/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/cancellation-quote';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://quikstik-core.fly.dev/account/bookings/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/cancellation-quote \ --header 'Authorization: Bearer <token>'Customer portal, guest-scoped (HANDOFF-account-self-serve-2026-10-18). local-person session
only; the booking must be inside the caller’s reach AND bought by the caller (a rider or head
who did not buy it gets 403 buyer_only). The refund is derived server-side: the tier the
tenant’s T-minus schedule yields for the notice remaining now, applied with the ledger’s own
arithmetic to what the booking actually paid. Read-only. 409 not_cancellable (detail:
already_cancelled | ota_booking | departed | needs_staff) when the guest cannot cancel it
here; 503 when no schedule or ledger window is wired (never a guessed figure).
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”The current cancellation quote
object
Minor units the card gets back
Hours-before-departure the applying tier requires; absent when no tier applies
Last instant this refund still applies; absent when no tier applies
Example generated
{ "booking_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "refund_minor": 1, "refund_bps": 1, "tier_hours": 1, "deadline_at": "2026-04-15T12:00:00Z", "currency": "example"}Missing or invalid session bearer token
object
Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).
Example
{ "reason": "sold_out"}The session’s effect authority does not cover this operation
object
Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).
Example
{ "reason": "sold_out"}Expired, consumed, unknown, or unresolvable — indistinguishable by design
object
Example generated
{ "reason": "example"}The booking cannot be cancelled by its guest here
object
Stable machine reason
Finer machine code under reason
object
Minor units the card gets back
Hours-before-departure the applying tier requires; absent when no tier applies
Last instant this refund still applies; absent when no tier applies
Example generated
{ "reason": "example", "detail": "example", "current": { "booking_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "refund_minor": 1, "refund_bps": 1, "tier_hours": 1, "deadline_at": "2026-04-15T12:00:00Z", "currency": "example" }}No durable backend is wired for this operation (fail-closed)
object
Stable, machine-readable reason code (e.g. “sold_out”, “processor_not_configured”, “rail_refused”).
Example
{ "reason": "sold_out"}