BitPay added a per-charge risk score to every transaction today. Each charge now carries a 1-100 score visible in the cabinet history feed, with the underlying risk factors surfaced for any charge scoring above 50. Operators can see why a charge was scored as risky and decide whether to investigate, dispute, or accept.
Risk factors contributing to the score: device fingerprint (new device vs known device, browser/OS pattern), geography (IP address vs card history), charge pattern (amount vs typical for this card, time of day vs history), merchant category (elevated-risk MCCs score higher), velocity (rapid-fire charges on the same card), and historical behavior (whether this card has been clean or has previous fraud signals).
Scores above 70 are flagged for review - the operator gets a cabinet alert but the charge proceeds. Scores above 85 trigger automatic freeze alerts - the operator is notified that the card may be compromised and should be reviewed. The freeze is not automatic; the operator can choose to leave the card active if they understand the charge.
Operators running custom fraud rules can now subscribe to risk score thresholds via API. PATCH /api/cards/:id can set 'freeze_on_score' to a number, so cards with score above the configured threshold are auto-frozen. This lets sophisticated operators automate their fraud response.