Payment Offers
Available to: Admin, Super Admin, CSE (viewing); customers redeem from the app
Navigate to Marketing → Payment Offers (/marketing/payment-offers).
A payment offer rewards a customer for paying a completed booking's bill online. When the booking completes, the system creates a personal offer for that customer: pay the discounted amount (to be paid) within the redeem window and the discount is credited back to the wallet.
Offer Lifecycle
| Status | Meaning |
|---|---|
| Available | Created at booking completion; customer can redeem until the valid-to date |
| Availed | Customer paid and the discount was credited to their wallet |
| Expired | The redeem window (typically ~5 days) lapsed without payment |
Each offer belongs to one booking and has a fixed to be paid amount:
to be paid = booking final amount − offer discount
Example: bill ₹1,000 with a ₹100 offer → customer pays ₹900, wallet receives the ₹900 payment plus the ₹100 discount credit, settling the ₹1,000 booking in full.
How Customers Redeem
1. The offer's own Pay Now button (preferred)
In the app under Account → Rewards → Payment tab, each offer card shows its amount and a Pay now button. Paying here links the payment to that exact offer — the discount always lands on the right booking.
2. Generic deposit / pay-for-friend
Customers sometimes type an amount into the wallet Deposit screen or the generic Pay for a friend form instead. These payments carry no offer reference, so the system decides which offer (if any) the money redeems using the rules below.
Auto-Application Rules (generic payments)
Applied in order when a generic payment succeeds and the customer has Available offers:
Rule 1 — Exact amount match. If the paid amount equals an offer's to be paid within ±₹1 (customers round to whole rupees), that offer is redeemed. If several offers are within ₹1, the closest amount wins.
Rule 2 — Covering payment. If the payment is larger, it redeems every offer it can cover, earliest expiry first, and the remainder stays as wallet balance.
Rule 3 — Underpayment. If the payment covers no offer (more than ₹1 short of all of them), the money is credited to the wallet but no offer is consumed. An internal alert notifies the team so CSE can review intent before the offer expires.
Examples
| Customer has | Pays (generic) | Result |
|---|---|---|
| One offer, to be paid ₹900 | ₹900 (or ₹899.50/₹900.50) | Offer redeemed — exact match |
| One offer, to be paid ₹900 (bill ₹1,000) | ₹1,000 | Offer redeemed, ₹100 stays as balance |
| Offers ₹900 + ₹500 | ₹1,400 | Both redeemed |
| Offers ₹900 + ₹500 | ₹1,000 | The one expiring sooner redeemed; remainder stays as balance |
| Offers ₹900 + ₹500 | ₹600 | ₹500 offer redeemed (covered); ₹900 offer stays |
| Any offers | ₹1 (or any amount > ₹1 short) | Nothing redeemed; money credited; team alerted |
:::tip Guide customers to the offer's Pay Now button Auto-application handles common cases, but only the offer card's own Pay now guarantees the intended offer is redeemed — especially when a customer holds several offers of similar amounts. :::
For CSE: Handling the "no offer matched" Alert
When Rule 3 fires, the team receives an alert (PayU webhook: payment credited but covers no Available offer). Act within the offer's redeem window:
- Open the customer's wallet ledger and the Rewards page.
- Confirm what the customer intended — usually a mistyped offer amount or a partial payment.
- If they meant to redeem an offer, collect the small shortfall or apply the offer manually per the standard manual-credit procedure.
- If it was an unrelated deposit, no action — the money is already in their wallet.
If an offer expires before resolution, escalate to the tech team — expired offers can be revived and applied retroactively when the payment evidence supports it.
Troubleshooting
"Customer paid but the offer still shows Pay now." Check the wallet ledger for the payment. If the paid amount was more than ₹1 short of the offer (Rule 3), the money credited without redeeming the offer — follow the CSE steps above. Do not ask the customer to pay the full offer amount again; account for what they already paid.
"The discount credited doesn't match the offer the customer paid." For payments before 10-Jun-2026 this was a known bug — generic payments redeemed whichever offer was first in the list, regardless of amount. Affected cases were individually reviewed. From 10-Jun-2026 the amount-based rules above apply; if you still see a mismatch after that date, escalate with the booking ID and PayU transaction ID.
"Customer paid the same amount twice." Usually the first payment failed at the gateway or hit Rule 3 silently, and the customer retried. Check both transactions in the wallet ledger before requesting any further payment — one of them may need a refund or manual offer application.
Admin Screens
| Tab | Path | Description |
|---|---|---|
| General | /marketing/payment-offers/$offerId/general | Offer template configuration (type, value, category, validity, works, banners) |
| Users | /marketing/payment-offers/$offerId/users | Per-customer offers issued from this template, with status and amounts |
Offer templates define percentage/fixed discounts per machinery category (Tractor, Backhoe Loader, Harvester, Drone), the qualifying works, validity period, minimum eligible amount, and maximum discount cap. Customer-facing offers are generated automatically at booking completion when the booking matches an active template.