Booking Orders
Understanding orders, reservations, transactions, and the complete booking lifecycle in Rahal
Booking Orders
Booking orders are the central entity that tracks the complete lifecycle of a travel booking—from initial payment through reservation creation to final confirmation or refund.
What is an Order?
An order represents a single booking transaction in Rahal. It captures:
- Who is making the booking (the buyer/user)
- What is being booked (flights, hotels, or travel packages)
- How payment is processed (payment provider)
- When key events occurred (creation, payment, finalization)
- Company context (for corporate bookings with policy/budget evaluation)
Each order can contain one or more reservations (individual flight or hotel bookings) and is linked to transactions (payment records) and events (audit trail).
Key Entities
Order → Reservations → Transactions
┌─────────────────────────────────────────────────────────┐
│ ORDER │
│ • Buyer information │
│ • Payment provider & amount │
│ • Order status (ACCEPTED → PAID → FINALIZED) │
│ • Company & policy (for corporate bookings) │
├─────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ │
│ │ RESERVATION 1 │ │ RESERVATION 2 │ │
│ │ (Flight) │ │ (Hotel) │ │
│ │ • External ID │ │ • External ID │ │
│ │ • Price │ │ • Price │ │
│ │ • Status │ │ • Status │ │
│ └─────────────────┘ └─────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────┤
│ │ TRANSACTION │
│ │ • Payment amount │
│ │ • Payment ID │
│ │ • Refunds │
│ └─────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┤
│ │ EVENTS │
│ │ • ORDER_CREATED │
│ │ • ORDER_PAYMENT_VERIFIED │
│ │ • ORDER_RESERVATION_CREATED │
│ │ • ORDER_FINALIZED │
│ └─────────────────────────────────────────────────────┘Order Types
Orders support three types of bookings:
| Type | Description | Service Types |
|---|---|---|
| Flight | Air travel bookings | Single or multi-leg flights |
| Hotel | Accommodation bookings | One or more room reservations |
| Package | Combined travel packages | Pre-configured flight + hotel bundles |
Corporate vs Consumer Orders
Rahal supports two booking contexts:
Consumer Bookings
- Individual users booking personal travel
- Payment processed through Super QI, Checkout.com, or BNPL
- No policy or budget constraints
Corporate Bookings
- Company employees booking business travel
- Uses the CORPORATE_DIRECT payment provider
- Subject to company policies and budgets
- Policy violations are logged
- Budget is reserved and tracked
Corporate direct bookings don't require actual payment processing—the company is invoiced directly. Policy and budget evaluation happens during order creation.
Order Lifecycle Overview
- Creation: User initiates booking, prebook sessions are created
- Payment: Payment is processed (or CORPORATE_DIRECT for company billing)
- Reservation: External reservations are created with travel supplier (IRIX)
- Ticketing: For flights, tickets are issued (auto or manual)
- Finalization: Order is marked complete when all reservations succeed
- Refund (optional): Order can be refunded if needed
See Order Lifecycle for detailed status transitions.
Related Features
- Policies: Control what employees can book
- Budgets: Track and limit travel spending
- Booking Requests: Approval workflow for policy-blocked bookings
- Travelers: Manage traveler profiles and documents