Price moving this booking to another departure, on the server, and remember it 15 minutes
const url = 'https://quikstik-core.fly.dev/account/bookings/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/rebook-quotes';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"new_variant_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0","new_start_time":"2026-04-15T12:00:00Z","party_size":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://quikstik-core.fly.dev/account/bookings/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/rebook-quotes \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "new_variant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "new_start_time": "2026-04-15T12:00:00Z", "party_size": 1 }'Customer portal, guest-scoped (HANDOFF-account-self-serve-2026-10-18 WP2). local-person
session; the booking must be inside the caller’s reach AND bought by the caller. The body
names a TARGET (variant + start) — never a price; unknown fields are refused. The server
checks the slot is a scheduled departure past its lead-time cutoff that can seat the whole
party (leaf and ancestors), prices the same party at the booking’s current slot and at the
target from the governed rate calendar, and stores the signed difference
(commerce_rebook_quotes). kind is upcharge | downgrade | even. An upcharge is
quoted with redeemable: false: the ledger books an upcharge as cash received, so it cannot
be completed online until it can be booked as money owed. A booking inside its tenant no-refund window is
409 inside_notice_window; OTA / departed / cancelled bookings are 409 not_rebookable.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”object
RFC3339 UTC start of the target departure
Optional; must equal the booking’s party (rider changes are the amendment lane)
Example generated
{ "new_variant_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "new_start_time": "2026-04-15T12:00:00Z", "party_size": 1}Responses
Section titled “Responses”The stored quote
object
Signed; positive = the guest owes more
False for an upcharge (see the operation description)
Example
{ "kind": "upcharge"}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"}not_rebookable (detail: already_cancelled | ota_booking | departed |
needs_staff | party_unknown | currency_unsupported), inside_notice_window, or
unavailable (the slot cannot take the party)
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" }}invalid_start_time, slot_closed, departure_not_scheduled, same_departure,
party_size_mismatch, no_rate_for_slot, or an unknown request field
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"}