Curvestone

Lending & Working Capital

FCA CONC, CCA 1974 — Consumer credit, business finance, and mortgage case packaging

12 case types·2 categories·Consumer credit & working capital

Quick Reference

minimal.py
python
result = agent.check(
case_type="personal_loan",
depth="standard",
documents=[open("application.pdf", "rb")],
reference="LND-2026-00293",
)

Case Types

Consumer Credit

NameAPI IDDescription
Personal Loanpersonal_loanUnsecured personal lending
Credit Cardcredit_cardApplications and limit increases
Hire Purchasehire_purchaseAsset finance and HP agreements
Motor Financemotor_financePCP, HP, and personal contract hire

Working Capital / Business Finance

NameAPI IDDescription
Asset Financeasset_financeEquipment and machinery financing
Invoice Financeinvoice_financeInvoice factoring and discounting
Unsecured Business Loanunsecured_business_loanBusiness lending without property security
Secured Business Loansecured_business_loanBusiness lending secured against property
Merchant Cash Advancemerchant_cash_advanceRevenue-based business funding
VAT Loanvat_loanShort-term VAT payment financing
Trade Financetrade_financeImport/export and supply chain financing

The Lending cluster also supports mortgage case packaging workflows for lenders. See the AI Packager recipe for details.

Modifiers

NameAPI IDDescription
Vulnerable Customervulnerable_customerAdds vulnerability indicators check and enhanced suitability assessment
High DTIhigh_dtiApplicants with debt-to-income above threshold — adds enhanced affordability
RefinancerefinanceAdds existing debt comparison and refinancing rationale checks
Self Employedself_employedEnhanced income verification for self-employed applicants
New Start Businessnew_startProjections accepted in lieu of accounts/bank statements
Adverse Creditadverse_creditEnhanced assessment for applicants with credit history issues

Document Requirements

Typical documents required per working capital case type.

Case TypeRequired Documents
Asset FinanceKYC, Fact Find, Signed Terms, Loan offer docs, Full accounts, 3 months bank statements
Invoice FinanceKYC, Fact Find, Signed Terms, Full accounts, Debtor book
Unsecured Business LoanKYC, Fact Find, Signed Terms, Full accounts, 3 months bank statements
Secured Business LoanKYC, Fact Find, Signed Terms, Property valuation, Bank statements
Merchant Cash AdvanceKYC, Fact Find, Signed Terms, Card terminal statement, 3 months bank statements
VAT LoanKYC, Fact Find, Signed Terms, VAT bill, Full accounts

Depths

NameAPI IDDurationScoringPriceDescription
Affordability Checkaffordability_check~30spass_fail£0.50Basic affordability calculation, income vs commitments
Standardstandard~2 minrag£3.00Full responsible lending review — affordability, creditworthiness, suitability
Comprehensivecomprehensive~3 minrag£8.00Standard + cross-portfolio analysis, persistent debt indicators

Scoring Modes

pass_fail

Used by affordability_check. Each check returns pass or fail. The overall result is pass if all checks pass, or fail if any check fails.

rag

Used by standard and comprehensive. Each check returns green (meets responsible lending criteria), amber (borderline, needs review), or red (does not meet criteria). Amber and red findings include descriptions and remedial actions. The overall triage is the worst-case result across all checks.

Worked Example: Personal Loan with Vulnerability

Personal loan with vulnerable customer modifier at comprehensive depth.

Request

request.py
python
from curvestone import Agent
agent = Agent()
result = agent.check(
case_type="personal_loan",
depth="comprehensive",
modifiers=["vulnerable_customer"],
documents=[
open("application_form.pdf", "rb"),
open("income_evidence.pdf", "rb"),
],
reference="LND-2026-00293",
)

Response

response.json
json
1{
2 "id": "job_4wNr8kHvP1",
3 "type": "check",
4 "status": "completed",
5 "triage": "amber",
6 "reference": "LND-2026-00293",
7 "processing_time": "162s",
8 "scoring": "rag",
9 "checks": [
10 { "name": "Affordability Assessment", "triage": "green" },
11 { "name": "Creditworthiness", "triage": "green" },
12 { "name": "Vulnerability Assessment", "triage": "amber" },
13 { "name": "Responsible Lending", "triage": "green" },
14 { "name": "Persistent Debt Risk", "triage": "green" }
15 ],
16 "findings": [
17 {
18 "severity": "amber",
19 "check": "Vulnerability Assessment",
20 "finding": "Application notes indicate the customer recently experienced a significant life event (bereavement). The file does not document how vulnerability was assessed or what additional support was offered during the application process.",
21 "remedial_action": "Document the vulnerability assessment conducted, including what indicators were identified and what adjustments were made to the sales process. Record any additional support offered to the customer in line with FCA CONC 2.10 guidance."
22 }
23 ],
24 "cost": "£8.00"
25}

Ask

Use POST /ask to ask natural-language questions about a completed lending job, a document, or product criteria.

Example questions

  • Does this applicant meet the criteria for an unsecured business loan?
  • What documents are still missing for this asset finance application?
  • Which working capital products suit a business with 12 months of trading history?
  • Summarise the risk factors for this merchant cash advance application.
  • What are the key differences between invoice finance and asset finance eligibility?

Questions can reference a job_id for context-aware answers grounded in the original documents and findings. £0.05 per turn.

Monitor

Use POST /monitor to set up recurring watches relevant to the lending cluster.

Monitor typeWhat it watchesTypical schedule
criteria_updateLender product criteria and eligibility changesevery_15_days
regulation_changeFCA CONC and CCA 1974 updatesweekly
website_changeLender portals and working capital product pagesdaily

Monitors can trigger downstream actions via on_finding — e.g. automatically re-run a check when lender criteria change. £15/month per monitor.

See also