A1B2C3D4) that remains constant throughout its lifecycle.opengetOpenBooking multiple times returns the same bookingsaveOpenBooking until paymentgetOpenBooking (creates if doesn't exist)saveOpenBooking with new items| Status | Description | User-Facing | Triggers Workflows |
|---|---|---|---|
open | Shopping cart (unpaid) | "In Progress" | No |
payment_pending | Payment initiated but not confirmed | "Processing Payment" | No |
paid | Payment successful | "Paid" | Yes - Books with suppliers |
booked | Confirmed with all suppliers | "Confirmed" | No |
confirmed | Booking confirmed to customer | "Confirmed" | No |
completed | Trip finished | "Completed" | No |
cancelled | Booking cancelled | "Cancelled" | May trigger cancellations |
refunded | Payment refunded | "Refunded" | No |
payment_failed | Payment processing failed | "Payment Failed" | No |
open → payment_pending → paid → booked → confirmed → completed
↓ ↓ ↓ ↓ ↓
cancelled ← ← ← ← ← ← ← ← ← ← ← ← ← ← (can cancel from most states)
↓
refunded (after cancellation)open once payment beginscompleted or refunded)paidpaid status, the system automatically triggers critical workflows:BookManually=true) or requiring pickup selection (PickupRequired=true) are skipped during automatic booking.paid = Real Bookingsopen to paid, the system immediately begins booking with live suppliers. This creates real reservations that may incur charges and cancellation fees.paidsaveOpenBooking with checkBeforePayment=true before payment to validate availability and pricinggetOpenBookingsaveOpenBookingcheckBeforePayment=true)Details object, validates ownership, cleans invalid itemssaveBookingStatuspaid (triggers supplier bookings)bookedconfirmedcancelledopen, syncs to external systemslistBookingsgetBookingcheckBeforePayment=true before accepting paymentpaid after payment confirmationlistBookings with filters for efficient queriespaid before payment succeedscheckBeforePayment validation stepopen after paymentsaveOpenBooking on bookings that aren't open{
"Data": null,
"Error": {
"Code": "NOT_FOUND",
"Message": "Booking not found"
}
}{
"Data": null,
"Error": {
"Code": "BAD_REQUEST",
"Message": "Cannot revert booking status back to 'open'"
}
}paid booking back to open{
"Data": null,
"Error": {
"Code": "INTERNAL_ERROR",
"Message": "Failed to complete booking with supplier: Activity no longer available"
}
}paid:paid (payment confirmed)booked - Successfully confirmed with Musementbooked - Successfully confirmed with Exfinitypaid - Pending confirmation from Peakworkbooked status, you can transition the booking to booked status overall.paid