Стратегии защиты покупателей на qbuy
Ключевой вывод
Funpay не имеет залогового механизма для продавцов — барьер входа минимален (телефон + тест). Когда продавец-мошенник уходит, платформа ничем не покрывает убытки покупателя. Это главная слабость конкурента и главная возможность для qbuy.
Покупатели должны иметь 100% гарантию возврата при доказанном мошенничестве. Деньги для возврата должны всегда находиться внутри системы — это ключевое требование.
Стратегия 1: Отложенный вывод (Delayed Payout) ⭐ Рекомендуемая
Идея: деньги поступают на внутренний счёт продавца сразу, но вывести их можно только через 7 дней после каждой сделки.
Механика:
- Покупатель оплачивает → деньги числятся на внутреннем балансе продавца (он видит их)
- Продавец передаёт товар
- Если в течение 7 дней покупатель не открыл диспут → продавец может вывести средства
- Если диспут открыт → средства заморожены, разбирает поддержка
- Диспут решён в пользу покупателя → средства возвращаются покупателю с баланса продавца
- Диспут решён в пользу продавца → средства разблокируются для вывода
Преимущества:
- Деньги никогда не покидают систему до истечения окна споров
- Продавец видит деньги сразу (психологический комфорт)
- Платформа всегда имеет резерв для возврата
- Не нужен залог — самодостаточный механизм
- Прозрачно и понятно покупателю: "деньги вернутся, если не получил товар в течение 7 дней"
Что нужно в базе:
model SellerBalance {
userId String @id
user User @relation(...)
totalBalance Decimal // общий баланс
availableAmount Decimal // доступно для вывода
pendingAmount Decimal // заморожено (сделки < 7 дней)
}
enum OrderStatus {
PENDING
PAID
DELIVERED // продавец отметил доставку
CONFIRMED // покупатель подтвердил ИЛИ прошло 7 дней
DISPUTED // открыт диспут
COMPLETED // средства разблокированы
CANCELLED
REFUNDED
}
Стратегия 2: Залог продавца (Seller Deposit)
Идея: продавец вносит залог перед тем как начать продавать. Залог покрывает возможные возвраты.
Механика:
- До 1 000 руб. за сделку → залог 500 руб.
- До 5 000 руб. → залог 2 000 руб.
- До 20 000 руб. → залог 5 000 руб.
- Свыше → залог 20–30% от максимальной суммы сделки
Преимущества: покупатель может видеть размер залога продавца и доверять ему.
Недостатки: барьер входа для честных продавцов. Оптимально комбинировать со Стратегией 1.
Стратегия 3: Прогрессивные лимиты (Trust Ladder)
Идея: новый продавец не может торговать дорогими товарами пока не заработает репутацию.
| Уровень | Завершённых сделок | Макс. сумма сделки |
|---|---|---|
| Новичок | 0–5 | 500 руб. |
| Базовый | 6–20 | 2 000 руб. |
| Доверенный | 21–50 | 10 000 руб. |
| Продвинутый | 51+ | без лимита |
Мошеннику нерентабельно тратить время на мелкие сделки чтобы выйти на высокий лимит.
Стратегия 4: Верификация через Roblox API (для предметов)
Для Limited-предметов Roblox возможна частичная автоматизация:
- Проверить наличие предмета у продавца до сделки через Inventory API
- После завершения в игре проверить наличие предмета у покупателя
- Если предмет перешёл → автоматически подтвердить сделку, разморозить баланс
Ограничения:
- Только для предметов с публичным инвентарём
- Не работает для игровой валюты (Robux)
- Roblox ToS формально запрещает торговлю за реальные деньги
Рекомендуемая комбинация для qbuy
- Delayed Payout (7 дней) — основной механизм, обязательно
- Trust Ladder — ограничения для новых продавцов, обязательно
- Seller Deposit — опционально, для сделок свыше 5 000 руб.
- Roblox API check — для Limited-предметов, как дополнительная проверка
Что сказать покупателю на сайте:
"Деньги поступают продавцу только через 7 дней. Если за это время вы не получили товар и открыли спор — средства гарантированно возвращаются вам. Деньги никогда не покидают систему до закрытия сделки."
Статусы диспута (добавить в схему)
enum DisputeStatus {
OPEN // открыт покупателем
UNDER_REVIEW // взят в работу поддержкой
RESOLVED_BUYER // решён в пользу покупателя → refund
RESOLVED_SELLER // решён в пользу продавца → разблокировать
CLOSED // закрыт без решения (отозван)
}
model Dispute {
id String @id @default(uuid())
orderId String @unique
order Order @relation(...)
buyerId String
reason String
evidence String? // ссылка на скриншоты и т.д.
status DisputeStatus @default(OPEN)
resolution String? // комментарий поддержки
createdAt DateTime @default(now())
resolvedAt DateTime?
}