Skip to main content

Booking Management

Role Required: SOCIETY_ADMIN
Navigation: Sidebar → Bookings → Booking Management
Last Updated: March 2026 | Portal Version: 1.0

Overview

Bookings are created when citizens make payments on available plots. As a Society Admin, you do not create bookings — citizens do by paying the advance amount. Your role is to monitor booking statuses, reconcile payment anomalies, complete fully-paid bookings, and handle cancellations.

Booking Management

How Bookings Are Created

Citizen selects plot → Plot is held → Citizen pays advance → Booking CONFIRMED

The booking is automatically created when the payment gateway confirms a successful advance payment. No admin approval is required for booking creation.

Booking Status Reference

StatusMeaningAdmin Action Required
PENDING_PAYMENTBooking initiated, advance payment awaitedNone — wait for citizen
PAYMENT_INITIATEDPayment in progress on Razorpay gatewayNone — automatic
PAYMENT_FAILEDGateway returned failureNone — citizen can retry
CONFIRMEDAdvance paid, booking is activeMonitor milestone payments
PAYMENT_CAPTURED_PENDING_CONFIRMATIONPayment captured but confirmation anomaly⚠️ Reconcile manually
COMPLETEDAll payments done, plot fully paid✅ Mark as complete
CANCELLATION_REQUESTEDCitizen or admin requested cancellationReview and process
CANCELLATION_APPROVEDCancellation approved, awaiting refundProcess refund
REFUND_IN_PROGRESSRefund being processed via gatewayMonitor refund status
CANCELLEDBooking terminated, refund settledNone — terminal state
EXPIREDHold expired before payment was madeNone — terminal state

Viewing Bookings

  1. Navigate to Bookings → Booking Management
  2. The list shows all bookings in your society

Header Actions

  • Back to Dashboard — returns to the admin dashboard
  • Bulk Upload — link to /admin/bulk-payments for uploading offline payments in bulk
  • Refresh — refreshes the booking list

Filters

FilterOptions
SearchSearch by booking number, customer name, mobile, layout, or plot
LayoutDropdown: All Layouts, or select a specific layout
Booking StatusDropdown: All Bookings, Confirmed, Completed, Cancelled, Pending Payment

Booking List Columns

ColumnDescription
BookingBooking ID (e.g., CMDA-CHN-MOCC-XVI-2026-00010) with status badge (CONFIRMED, EXPIRED, etc.)
CustomerCustomer name and mobile number
Layout & Plot(s)Layout name and plot number(s)
TotalFull booking price (₹)
PaidAmount collected so far (₹)
BalanceRemaining amount due (₹)
ProgressPayment progress percentage (e.g., 0%)
ActionManage button to open booking details

Booking Detail View

Click on any booking to see the full details:

Overview Section

  • Booking ID, status, creation date
  • Member details (name, membership number, contact)
  • Plot details (layout, plot number, area, facing)
  • Price breakdown (base + charges + fees = total)

Payment History

  • All payments made (online + offline)
  • Each payment shows: date, amount, method, status, transaction ID

Payment Schedule

  • Milestone breakdown with due dates
  • Paid / Unpaid / Overdue indicators per milestone

Timeline

  • Chronological event log (created, payment received, status changes, etc.)

Reconciling Payment Anomalies

When a payment is captured by Razorpay but the confirmation callback fails (network issue, timeout), the booking enters PAYMENT_CAPTURED_PENDING_CONFIRMATION status.

How to Reconcile

  1. Find bookings with status PAYMENT_CAPTURED_PENDING_CONFIRMATION
    • Dashboard alerts highlight these
    • Use the status filter in booking list
  2. Open the booking detail
  3. Click Reconcile (or Evaluate Payment)
  4. The system checks:
    • Razorpay payment status via API
    • Bank transaction confirmation
    • Payment amount matches expected amount
  5. If the payment is confirmed:
    • Booking moves to CONFIRMED
    • Payment is marked as successful
  6. If the payment is not found or failed:
    • Booking remains — citizen can retry payment
    • You may force-close the anomaly
warning

Always verify with Razorpay dashboard before reconciling. Don't confirm a payment that hasn't actually been captured.

Completing a Booking

When a citizen has paid all milestones (100% of the total amount):

  1. Open the booking detail
  2. The system shows all milestones — verify all are marked as paid
  3. Click Evaluate Milestones to check if all payments are received
  4. If all payments are complete, the Complete Booking button becomes active
  5. Click Complete Booking
  6. The booking moves to COMPLETED status
  7. The plot status changes to SOLD

Before Completing

Verify:

  • ✅ All milestone payments received and verified
  • ✅ Offline payments are verified (not just recorded)
  • ✅ No pending payment disputes
  • ✅ Total paid amount matches total booking amount

Cancellation Management

Citizen-Initiated Cancellation

  1. Citizen clicks Request Cancellation from their dashboard
  2. Booking status changes to CANCELLATION_REQUESTED
  3. You receive a notification
  4. Review the request in booking detail
  5. Decision:
    • Approve → Status moves to CANCELLATION_APPROVED → process refund
    • Reject → Status returns to CONFIRMED (booking continues)

Admin-Initiated Cancellation

You can initiate cancellation on behalf of the society:

  1. Open the booking detail
  2. Click Cancel Booking
  3. Enter the cancellation reason
  4. The booking enters the cancellation flow
  5. Refund processing begins automatically (if configured) or awaits your action

Cancellation Flow

CONFIRMED → CANCELLATION_REQUESTED → CANCELLATION_APPROVED → REFUND_IN_PROGRESS → CANCELLED

(or rejected → back to CONFIRMED)

After cancellation is complete:

  • The plot returns to AVAILABLE status
  • The citizen's refund is processed per refund policy
  • All parties are notified

Payment History

For any booking, view the complete payment trail:

  1. Open the booking detail
  2. Navigate to Payment History tab
  3. Each entry shows:
FieldDescription
DatePayment date and time
Amount₹ amount
MethodOnline (Razorpay) / CASH / CHEQUE / NEFT / RTGS / IMPS / DD / UPI
Transaction IDGateway transaction ID or UTR number
StatusSUCCESS / FAILED / PENDING
VerifiedFor offline: RECORDED / VERIFIED / VOIDED

Common Scenarios

"Citizen paid but booking still shows PENDING_PAYMENT"

  1. Check the booking's payment history for the transaction
  2. If no payment record exists, the payment may have failed at the gateway
  3. Ask the citizen to check their bank for the debit
  4. If debited but no record, check Razorpay dashboard for the payment
  5. If found in Razorpay, trigger reconciliation

"Double payment detected"

  1. Check the payment history — look for two payments with similar amounts and close timestamps
  2. The duplicate payment will be flagged by the system
  3. Contact support to initiate a reversal for the duplicate
  4. Do NOT complete the booking based on the doubled amount

"Booking should be completed but Complete button is disabled"

The Complete button activates only when:

  • All milestones are evaluated and marked as paid
  • No pending or unverified offline payments exist
  • Click Evaluate Milestones first to refresh the payment status

"Citizen wants to change their plot after booking"

Plot changes after booking are not directly supported. The process would be:

  1. Cancel the current booking (with refund)
  2. Citizen books the new plot This ensures proper financial and audit trails.