Back to Payments & Banking
payments
Risk Engine
Credit risk, operational risk, and real-time decisioning
Risk Engine — Overview
Credit risk, operational risk, and real-time decisioning
Risk engines evaluate credit limits, portfolio exposure, concentration risk, and operational limits. In payments, they gate transaction approval alongside fraud engines. Rules engines (Drools) plus ML for dynamic limits.
@Service
public class PaymentRiskEngine {
public RiskDecision evaluate(Transaction txn, CustomerProfile profile) {
List<RiskRule> rules = List.of(
new DailyLimitRule(profile.getDailyLimit()),
new VelocityRule(Duration.ofHours(1), 20),
new ConcentrationRule(profile.getMaxSingleTxn()),
new CountryRiskRule(sanctionsList),
new MerchantCategoryRule(blockedMcc)
);
for (RiskRule rule : rules) {
RiskResult result = rule.apply(txn, profile);
if (result.isBlocked())
return RiskDecision.block(result.getReason());
}
return RiskDecision.approve();
}
}Tip: Separate fraud risk (stolen card) from credit risk (will customer pay) — different models and actions.