Payments Fraud Detection Engine
A Ruby on Rails-based fraud detection system designed to flag high-risk account activations using stolen payment cards across a global fintech platform. Deployed at scale across 100+ countries, handling 15–25 dispute cases daily alongside automated risk decisioning.
Problem
A proprietary trading platform serving retail traders across 100+ countries was experiencing a significant volume of fraudulent account activations using stolen payment cards. Fraudsters would activate accounts, receive funded access, extract value, and chargeback — creating both financial loss and PSP chargeback ratio risk.
Existing controls were manual and reactive: disputes were identified only after the fact, creating lag between fraud event and account suspension. No automated risk scoring existed at the point of activation.
Solution
Designed and built a multi-signal fraud detection engine integrated into the account activation flow. The system evaluates each new activation request in real time, collecting and scoring signals from multiple independent sources, computing a composite risk score, and routing the account to an appropriate action — approve, flag for review, or block.
The system is designed to be invisible to legitimate users: low-risk activations proceed without friction. High-risk activations are held for manual review or automatically blocked before any platform access or funding is granted.
My Role
- System design — Defined the multi-signal architecture, scoring model, threshold logic, and action routing
- Backend engineering — Built the detection engine in Ruby on Rails with background job processing via Sidekiq
- PSP integration — Connected risk signal extraction to payment metadata from 5 PSP APIs
- Risk logic — Designed the weighted composite scoring model and severity banding
- Operational testing — Validated signal accuracy against historical fraud cases before full rollout
- Monitoring — Built audit logging for all scoring decisions to support review and model tuning
Architecture
Tech Stack
Business Impact
- Reduced high-risk account activations by 45% within the first quarter post-deployment
- Became the baseline decision layer for all new account activations across the platform
- Supported chargeback dispute evidence workflow — flagged accounts provided structured audit data for dispute submissions
- Reduced manual review volume for legitimate accounts — low-risk activations proceed with zero friction
- Enabled PSP chargeback ratio management — early blocking reduced dispute-to-activation ratio
Security & Privacy
No real payment card data, user PII, or PSP credentials are exposed in this case study. Signal descriptions are intentionally generalised. Proprietary scoring weights, threshold values, and fraud rule logic are excluded from public disclosure.
The system was designed with audit-first principles: every decision is logged with its full signal context, enabling compliance review without requiring access to production systems.
Source Code & Constraints
Source code is private due to commercial and security constraints. Exposing the detection logic, signal weights, or threshold configuration would reduce system effectiveness. This case study exposes architecture, technology choices, role scope, and business impact only.
What I Would Improve Next
- Machine learning scoring layer: replace static weights with a trained binary classifier updated on confirmed fraud outcomes
- Real-time adaptive thresholds: adjust score bands dynamically based on recent fraud rate trends
- Cross-platform signal sharing: extend correlation across PSPs for deeper pattern detection
- Automated retraining pipeline: trigger model updates on new confirmed fraud labels without manual intervention