Resale and peer-to-peer marketplaces
On a resale or classifieds platform, the scam usually starts as an ordinary question and ends outside your app. The buyer asks to pay by transfer, sends a screenshot of a payment that never arrived, or moves the seller to a chat app where your buyer protection does not reach. Filters that look at one message catch the last step, if that. SigWise scores the user, over their messages and actions, so a pattern is visible as it forms.
What to send
- Messages between buyers and sellers, with the listing in
metadata. - Actions: account created, listing created, order placed, order cancelled, refund requested, item reported, payout changed.
- Context in
metadata: account age, number of completed sales, price, category, country.
POST /v1/objects/user-77/events
{
"object_type": "user",
"events": [
{ "type": "event", "name": "account.created", "metadata": { "account_age_days": 2 } },
{ "type": "message", "content": "Is it still available? I can pay now.", "metadata": { "listing": "bike-221", "price": 450 } },
{ "type": "message", "content": "I paid by bank transfer, here is the screenshot. Please post it today, my courier is waiting." },
{ "type": "message", "content": "It says pending because of the weekend. Can we move to WhatsApp so I can send the receipt?" }
]
}The conversation above is invented for this page.
The signals
Four questions cover most of the loss on these platforms. Write each with the evidence you would look for.
PUT /v1/signals/pushes_off_platform
{
"type": "noul",
"instructions": "Is this user trying to move the conversation or the payment outside the platform?",
"criteria": {
"true": "asks to continue on WhatsApp, Telegram, email or by phone, or to pay by bank transfer, a payment app or gift cards instead of the platform's checkout",
"false": "keeps the conversation and the payment inside the platform"
}
}PUT /v1/signals/fake_payment_proof
{
"type": "noul",
"instructions": "Is this buyer claiming to have paid and pressing the seller to ship before the money has cleared in the seller's account?",
"criteria": {
"true": "sends or describes a payment screenshot or confirmation, says the payment is pending, and presses to ship, hand over or release the item quickly",
"false": "pays through the platform, or waits for funds to clear"
}
}sleeper_account (a noul): a user whose recent behaviour breaks sharply from a record of small, clean sales, such as a new high-value listing, a payout detail change and requests to leave the platform. refund_abuse (a noul): a buyer who repeatedly claims "not as described" after delivery. This one works mainly from events rather than messages, so send refund requests and outcomes as events.
Act on it
- Warn the other party in the app when
pushes_off_platformis high, with a message such as "Payments outside the app are not protected." This is cheaper than blocking, and legitimate users learn from it too. - Hold shipping or payout when
fake_payment_proofis high, until the payment is confirmed in the seller's account. Use"wait": trueon the buyer's message to get the verdict before the seller sees it. - Review sleeper accounts through a rule to Slack, rather than acting on the score alone.
Start in alert-only mode and review what it flags before you enforce anything. See Test SigWise on your own data.
Judge fairly
Sellers who have completed hundreds of sales also ask to move to a chat app once, usually to send photos. The history is what separates them from a new account that does the same. Send completed sales and account age as events so every message is judged in that context, and review the borderline band by hand. See User trust scores.