System Workflows
Refunds
The refund pipeline — policy windows, coupon reversal, gateway retries, finance review and the post-cut-off path.
Refunds are a pipeline, not a button: the policy engine computes the amount from the cancellation window, the coupon redemption is reversed, the gateway gets up to three attempts, and anything the gateway refuses lands in finance review. The traveler side is UF-TRV-06; admin out-of-policy refunds are UF-ADM-16.
Delivery phase: P2 (policy refund), P5 (coupon reversal and full accounting).
Trigger and actors
- Trigger: a cancellation (traveler, organization or admin), a trip change remedy, or an out-of-policy decision.
- Actors: the policy engine; the refund job; the gateway; finance review.
Diagram
Timers and rules
| Step | Timer (verbatim) | Rule trace |
|---|---|---|
| Policy windows | "80 percent at 48 hours or more, 50 percent from 24 to under 48 hours, none under 24 hours" (placeholder) | BRL-12, FR-BKG-04, D-07, OD-07 |
| Fees | "All fees are refundable until non-refundable fees are set" | BRL-12, D-156 |
| Coupon reversal | "A refund reverses the coupon redemption and frees the traveler's per-user limit"; an Exhausted coupon returns to Active if still in its window | BRL-11, FR-CPN-06 |
| Send SLA | "sent to the gateway within 2 working days and shown as 'refund in progress'" | FR-PAY-03 |
| Confirmation | "It is Refunded only after the gateway confirms; the ledger reverses revenue, commission and fees then" | FR-PAY-03 |
| Retries | "Failed refunds retry 3 times, then stay Refund Pending for finance review" | FR-PAY-03, D-149, D-35, D-322 |
| Post cut-off | "Requests after the cut-off go to the organization, which decides within 2 working days, then to admin" | FR-BKG-04, BR-BKG-04, D-151 |
| Hard stops | "No cancellation after departure or after check-in" — disputes take over | D-152, D-153 |
| Trip cancelled by org or admin | "every confirmed booking is refunded in full, with coupon redemptions reversed" | BRL-30, FR-BKG-06, D-150 |
| Out-of-policy | Admin refund with reason and audit log | FR-PAY-04, BRL-19 |
| Remedy cancel | Trip-change remedy "cancel with full refund"; refund reason includes remedy | BRL-24, FR-TRIP-06 |
Stories
- As a traveler, I want the refund preview to show the exact policy amount before I confirm, so that I decide with real numbers. (FR-BKG-04)
- As a finance operator, I want gateway-refused refunds to stop in review after three retries instead of looping, so that the queue stays honest. (FR-PAY-03, D-322)
- As an organization, I want a clean full-refund path when I cancel a trip, so that making travelers whole is one action, not a spreadsheet. (BRL-30)
- As a coupon owner, I want a refunded booking to free my per-user coupon limit, so that a cancelled trip does not burn my discount. (BRL-11, FR-CPN-06)