Rulesets
Create and manage custom underwriting rulesets to control approval thresholds, factor weights, and hard decline rules.
Overview
Rulesets define the criteria that the underwriting engine uses to produce decisions. Each ruleset specifies minimum thresholds, excluded industries, required documents, and MCA position limits. Updating a ruleset automatically creates a new version.
Create a Ruleset
const ruleset = await client.rulesets.create({
name: "High-Risk MCA Criteria",
description: "Stricter criteria for high-risk industries",
rules: {
min_health_score: 70,
max_nsf_count: 2,
min_avg_daily_balance: 5000,
max_mca_positions: 3,
min_months_in_business: 12,
required_document_types: ["bank_statement"],
industries_excluded: ["gambling", "adult_entertainment"],
},
});
console.log(ruleset.id); // 456
console.log(ruleset.version); // 1ruleset = client.rulesets.create(
name="High-Risk MCA Criteria",
description="Stricter criteria for high-risk industries",
rules={
"min_health_score": 70,
"max_nsf_count": 2,
"min_avg_daily_balance": 5000,
"max_mca_positions": 3,
"min_months_in_business": 12,
"required_document_types": ["bank_statement"],
"industries_excluded": ["gambling", "adult_entertainment"],
},
)
print(ruleset.id) # 456
print(ruleset.version) # 1Rule Parameters
| Name | Type | Required | Description |
|---|---|---|---|
min_health_score | number | No | Minimum composite health score (0-100) for approval |
max_nsf_count | number | No | Maximum allowed NSF occurrences |
min_avg_daily_balance | number | No | Minimum average daily balance ($) |
max_mca_positions | number | No | Maximum existing MCA positions |
min_months_in_business | number | No | Minimum months in business |
required_document_types | string[] | No | Document types that must be present |
industries_excluded | string[] | No | Industries to automatically decline |
Update & Version
// Update creates a new version
const updated = await client.rulesets.update(456, {
rules: {
...ruleset.rules,
min_health_score: 75,
},
});
console.log(updated.version); // 2
// Set as default ruleset
await client.rulesets.setDefault(456);
// List all rulesets
const rulesets = await client.rulesets.list();
for (const rs of rulesets.data) {
console.log(rs.id, rs.name, rs.is_default);
}
// Delete a ruleset
await client.rulesets.delete(456);# Update creates a new version
updated = client.rulesets.update(456, rules={
**ruleset.rules,
"min_health_score": 75,
})
print(updated.version) # 2
# Set as default
client.rulesets.set_default(456)
# List all
rulesets = client.rulesets.list()
# Delete
client.rulesets.delete(456)