Deals
Create deals, upload documents, retrieve analysis results, and evaluate against rulesets.
Create a Deal
A deal represents a single funding application. Create one, then attach documents for analysis.
const deal = await client.deals.create({
business_name: "Acme Trucking LLC",
});
console.log(deal.id); // 12345
console.log(deal.status); // "pending"deal = client.deals.create(
business_name="Acme Trucking LLC",
)
print(deal.id) # 12345
print(deal.status) # "pending"Retrieve a Deal
After documents are processed, the deal contains the full analysis — business info, financials, health scores, MCA positions, and underwriting recommendation.
const detail = await client.deals.get(12345);
// Business information
console.log(detail.business.business_name); // "Acme Trucking LLC"
console.log(detail.business.industry); // "Transportation"
console.log(detail.ai_summary); // AI-generated summary
// Financial metrics
console.log(detail.financials.avg_monthly_deposits); // 48500.00
console.log(detail.financials.avg_daily_balance); // 16215.30
console.log(detail.financials.total_deposits); // 145500.00
console.log(detail.financials.negative_balance_days); // 2
// NSF/Overdraft analysis
console.log(detail.nsf_overdraft.nsf_fee_count); // 1
console.log(detail.nsf_overdraft.overdraft_fee_total); // 35.00
// Health scoring
console.log(detail.health.health_score); // 78.5
console.log(detail.health.health_grade); // "B"
// Underwriting recommendation
console.log(detail.recommendation?.decision); // "approved"
console.log(detail.recommendation?.confidence); // 0.87
console.log(detail.recommendation?.risk_tier); // "tier_2"
console.log(detail.recommendation?.advance_amount); // 50000
console.log(detail.recommendation?.factor_rate); // 1.35
console.log(detail.recommendation?.est_daily_payment); // 375.00
console.log(detail.recommendation?.risk_factors); // ["high_mca_exposure"]
console.log(detail.recommendation?.strengths); // ["consistent_deposits"]
// MCA detection
console.log(detail.mca?.positions_detected); // 2
console.log(detail.mca?.total_daily_obligation); // 450.00
console.log(detail.mca?.mca_credit_score); // 72
console.log(detail.mca?.fundability_grade); // "B"detail = client.deals.get(12345)
# Business information
print(detail.business.business_name) # "Acme Trucking LLC"
print(detail.business.industry) # "Transportation"
print(detail.ai_summary) # AI-generated summary
# Financial metrics
print(detail.financials.avg_monthly_deposits) # 48500.00
print(detail.financials.avg_daily_balance) # 16215.30
# Health scoring
print(detail.health.health_score) # 78.5
print(detail.health.health_grade) # "B"
# Underwriting recommendation
print(detail.recommendation.decision) # "approved"
print(detail.recommendation.advance_amount) # 50000
print(detail.recommendation.factor_rate) # 1.35List Deals
// List deals with pagination
const page1 = await client.deals.list({ per_page: 20 })
for (const deal of page1.data) {
console.log(deal.id, deal.business.business_name, deal.health?.health_score)
}
// Fetch next page if available
if (page1.has_more) {
const page2 = await client.deals.list({ cursor: page1.next_cursor, per_page: 20 })
// ...
}# List deals with pagination
page1 = client.deals.list(per_page=20)
for deal in page1.data:
print(deal.id, deal.business.business_name, deal.health.health_score)
# Fetch next page if available
if page1.has_more:
page2 = client.deals.list(cursor=page1.next_cursor, per_page=20)
# ...Evaluate Against Rulesets
Re-evaluate a deal against one or more custom rulesets. Useful for testing different underwriting criteria against the same data.
const evaluation = await client.deals.evaluate(12345, {
ruleset_ids: [456, 789],
});
for (const result of evaluation.results) {
console.log(result.ruleset_id, result.passed, result.failed_rules);
}evaluation = client.deals.evaluate(12345, ruleset_ids=[456, 789])
for result in evaluation.results:
print(result.ruleset_id, result.passed, result.failed_rules)