Partial Payments
In Indian hospitality, asking for full payment up-front kills conversions. Most properties collect a 30–50 % advance to confirm and the balance at check-in. ABc bakes this in as a configurable policy, not a workaround.
Configuration — who decides what
| Setting | Set by | Default |
|---|---|---|
| Allow partial payments | Owner (per property) | Yes |
| Min advance % | Owner (per property or rate plan) | 30 % |
| Balance due relative to check-in | Owner | At check-in (T) |
| Send reminder before due date | Owner | T − 1 day, 09:00 local |
| Auto-cancel if balance unpaid | Owner | T + 48 h grace, then cancel |
Where partial payments show up
Public checkout
If the rate plan allows partial, guest sees two radio options: "Pay full now" or "Pay 30 % advance, balance at check-in".
Manual booking
Front-desk agent can split however they like — e.g. ₹10,000 cash now and the rest by UPI later. Subject to per-property minimum.
OTA-collected
If the OTA already collected payment in full, partial logic doesn't apply. If OTA model is "pay-at-hotel", we treat it as 100 % balance.
Public checkout UI — advance toggle
Payment plan model
Internally, every partial-paid booking has a small payment_plan attached:
payment_plans
- iduuid
- booking_id→ bookings
- total_amountmoney
- strategyadvance_then_balance | installments
- statusactive | complete | defaulted
payment_plan_items
- iduuid
- plan_id→ payment_plans
- seqint
- amountmoney
- due_ondate
- statusdue | paid | overdue
- payment_id→ payments (when paid)
Reminder schedule
Owner dashboard — outstanding balances
| Booking | Guest | Stay | Paid / Total | Balance | Due | |
|---|---|---|---|---|---|---|
| ABC-24806 | Ramesh Kumar | 15–18 Jun | ₹10,000 / ₹25,200 | ₹15,200 | in 21 days | |
| ABC-24788 | Aditi Joshi | 02–04 Jun | ₹3,500 / ₹8,500 | ₹5,000 | in 8 days | |
| ABC-24769 | Vivek Rao | 20–22 May (today) | ₹5,000 / ₹14,000 | ₹9,000 | Overdue · 2 days |
What happens when balance isn't paid
| Days past due | Action |
|---|---|
| 0 | Due-today email + SMS to guest. Owner sees the booking flagged in dashboard. |
| +1 | Second reminder. Owner can choose to wait or accept partial check-in. |
| +2 (default cutoff) | System auto-cancels per policy. Refund of advance computed per cancellation rule (may be 0 % if non-refundable). |
| Override | Owner can manually mark "balance accepted at hotel" — common when the guest has already arrived. |
Edge cases
Rate change after advance
If owner edits the booking dates or room, recompute the total. Balance line item adjusts. If new total < advance paid, schedule a refund.
Multiple partial payments
A single booking can have N payments. e.g. ₹5k cash on booking + ₹3k UPI a week later + ₹2k card at check-in. Each one a distinct row.
Partial refund of advance
Guest cancels after advance paid. We refund per policy (e.g. 50 %). Two payment rows: original credit + a debit refund.
Over-payment
Guest pays more than balance (e.g. UPI typo). System detects, creates a refund queue task, alerts owner.