Transparent Refund Logic
Buyer & Dealer Token / Credit Rules
Inspired by Upwork-style dispute handling but simplified for property deals. Use this table for quick reference while building workflows or support scripts.
| Scenario | Who Rejected | Reason Type | Refund Buyer Token? | Refund Dealer Credit? | Platform Action |
|---|---|---|---|---|---|
| Buyer unlocks, sees real info, but rejects without visiting / valid reason | Buyer | Buyer withdrawal (no valid complaint) | ✕ No refund | ✔ Yes refund | Buyer forfeits token to discourage frivolous unlocks |
| Buyer rejects due to property info being false / misleading | Buyer | Valid dispute | ✔ Full refund | ✕ No refund | Admin marks dealer at fault, dealer credit forfeited |
| Buyer rejects after office visit, legitimate mismatch (e.g. price or location changed slightly) | Buyer | Valid negotiation failure | ✔ Refund 70% | ✔ Refund 70% | Platform keeps small fee (PKR 300) |
| Dealer cancels / rejects before buyer unlocks | Dealer | Early withdrawal | — | ✔ Full refund | No buyer impact |
| Dealer rejects after buyer unlocks, but with valid reason (e.g. property sold already) | Dealer | Valid unavailability | ✔ Full refund | ✔ Refund 70–100% depending on timing | Marked "Dealer unavailable" in logs |
| Dealer rejects unfairly (no valid reason after buyer payment) | Dealer | Dealer fault | ✔ Full refund | ✕ No refund | Dealer's credit forfeited, affects reputation |
| Buyer and Dealer both click Reject (mutual no deal) | Both | No match / mutual cancel | ✔ Refund 70% | ✔ Refund 70% | Platform fee retained |
| Buyer doesn’t respond for >7 days after unlock | System auto close | Buyer timeout | ✕ No refund | ✔ Full refund | Prevents buyer stalling |
| Dealer unresponsive >7 days after unlock | System auto close | Dealer timeout | ✔ Refund | ✕ No refund | Dealer penalized |
| Buyer or dealer raises formal dispute | Either | Disputed case | ⏳ Hold refund until admin resolution | ⏳ Hold refund until admin resolution | Admin arbitration required |
Need to tweak? Update scenarios in app/status/refund-policy/page.js.