RahalCorporate
Booking Requests

Booking Requests

Submit and process travel booking requests requiring approval

Booking Requests

Booking requests are the core workflow mechanism for travel approvals in Rahal. When a booking cannot be completed directly—due to policy violations, budget constraints, or company booking mode settings—a booking request is created for admin review and processing.

What is a Booking Request?

A booking request is a formal submission containing:

  • Travel Items — Flights and/or hotels the user wants to book
  • Travelers — The people who will be traveling
  • Pricing — Total cost with currency
  • Context — Policy violations, budget status, and user notes
  • Metadata — Requester info, company, and timestamps

Booking requests act as a queue for travel coordinators to review, modify if needed, and either approve (complete) or reject (cancel).

Request Lifecycle

Requests follow a simple three-state lifecycle:

StatusDescriptionWho Can Trigger
PENDINGAwaiting review and processingCreated automatically on submission
COMPLETEDApproved and booking finalizedAdmin only
CANCELLEDRejected or withdrawnAdmin or requesting user

Once a request is COMPLETED or CANCELLED, it cannot be changed. These are terminal states.

When Are Requests Created?

Booking requests are triggered in three scenarios:

1. Policy Requires Approval

When a user selects a flight or hotel that violates company policy, and the policy action is set to Require Approval, the booking is routed to a request.

User selects Business Class flight
  → Policy allows only Economy
  → Policy action: REQUIRE_APPROVAL
  → Booking request created

2. Budget Exceeded

When a booking would exceed the user's available budget and the budget enforcement mode is Require Approval, a request is created.

User's budget: 5,000 IQD remaining
  → Booking cost: 7,500 IQD
  → Enforcement: REQUIRE_APPROVAL
  → Booking request created

3. Company Booking Mode

Companies can configure their booking mode to always require approval:

Booking ModeDirect BookingRequest Required
Direct Booking✅ YesOnly when policy/budget requires
Request Only❌ No✅ Always
Hybrid✅ For in-policy✅ For out-of-policy

Key Features

For Users

  • Submit requests for flights and hotels that require approval
  • Track status of pending requests
  • Cancel requests that are no longer needed
  • View history of all past requests

For Administrators

  • Review requests with full flight/hotel/traveler details
  • Modify requests — add, edit, or remove items before approval
  • Process requests — approve (complete) or reject (cancel)
  • Filter and search across all company requests

Documentation

Integration with Other Features

Booking requests don't exist in isolation—they're deeply integrated with other Rahal features:

FeatureIntegration
PoliciesPolicy violations trigger REQUIRE_APPROVAL requests
BudgetsBudget reservations are created/released with requests
TravelersRequests include traveler profiles with passport info
DelegationUsers can submit requests on behalf of delegated travelers

Implementation Status

All booking request features are fully implemented:

CapabilityDescription
Policy-aware submissionAutomatic routing to "Submit Request" vs "Confirm Booking" based on policy evaluation
User request viewingView, track, and cancel own requests
Admin request managementView, filter, modify, and process all company requests
Budget integrationAutomatic reservation on create, confirm/release on status change
Delegation supportSubmit requests on behalf of delegated travelers

On this page