Fraud detection for mobile-money payments in a small Haitian marketplace
asked a month ago489 viewsen
Our marketplace (MonCash payments, cash-on-delivery too) is seeing fraud: fake accounts, stolen phones used to pay, and sellers who never ship. We don't have a data science team. Where do we start?
AI diagnosis
AI-generated. Not an answer — the community below confirms or corrects it. Always verify before relying on it.
1 Answer
Start with rules and good data. Machine learning only helps once you have labeled history.
1. Rules that catch most early fraud
- Velocity: many orders or payment attempts from one account, phone or device in a short time.
- New account plus high value: first order far above your median, especially electronics or phone credit.
- Mismatch signals: many accounts sharing one MonCash payer number, or one account paying from many numbers.
- Seller signals: many "not received" disputes, and sellers who request payouts right after sales.
const score =
(ordersLastHour(user) > 3 ? 30 : 0) +
(accountAgeDays(user) < 2 && order.totalHtg > 10_000 ? 40 : 0) +
(payerLinkedToAccounts(payment.payer) > 2 ? 30 : 0);
if (score >= 60) holdForReview(order); // don't auto-reject: review
2. Controls that remove whole categories
- Hold seller payouts until delivery is confirmed (escrow-style), with a delay for new sellers.
- Verify phone numbers by OTP at signup, and limit accounts per number.
- For cash on delivery, confirm by phone call for first orders above a threshold.
3. Label everything. Every chargeback, dispute and confirmed fraud goes in a table with the order id. After a few months that becomes your training data.
4. Then ML. A gradient-boosting model (LightGBM or XGBoost) on features like account age, velocity, amount and history, evaluated with precision/recall, not accuracy, because fraud is rare. It should rank orders for review, not silently cancel them. Customers wrongly blocked are a real cost too.
Sign in to tell others whether this worked.
Sign in and verify your email to post an answer.