Curvestone
POST/check

Review a Mortgage Compliance File

Run a full compliance check on a remortgage case with debt consolidation.

Who is this for

Compliance Officer at a mortgage brokerage. You review adviser case files for regulatory adherence before submission to the lender or network. You need a structured, auditable compliance output that flags issues and suggests remedial actions.

What you'll do

  • 1
    Upload a fact find and suitability letter for a remortgage case
  • 2
    Run a full compliance check with the debt consolidation modifier enabled
  • 3
    Receive RAG-scored results (green / amber / red) across seven compliance checks
  • 4
    Review amber findings with remedial action suggestions

The API call

Submit the case documents with a full check depth and the debt consolidation modifier.

mortgage_review.py
python
from curvestone import Agent
agent = Agent() # reads CURVESTONE_API_KEY from env
result = agent.check(
case_type="residential_mortgage",
depth="full_check",
modifiers=["debt_consolidation"],
documents=[
open("fact_find.pdf", "rb"),
open("suitability_letter.pdf", "rb"),
],
reference="CASE-2026-00451",
)
print(f"Triage: {result.triage}") # green | amber | red
print(f"Checks: {len(result.checks)}") # 7
print(f"Time: {result.processing_time}")

The response

A structured compliance result with RAG triage across all seven checks.

response.json
json
1{
2 "id": "job_7kTx9mNpQ2",
3 "type": "check",
4 "status": "completed",
5 "triage": "amber",
6 "reference": "CASE-2026-00451",
7 "processing_time": "147s",
8 "scoring": "rag",
9 "checks": [
10 { "name": "Suitability of Advice", "triage": "green" },
11 { "name": "Income Verification", "triage": "green" },
12 { "name": "Affordability Assessment", "triage": "amber" },
13 { "name": "Product Selection", "triage": "green" },
14 { "name": "Disclosure & Consent", "triage": "green" },
15 { "name": "Debt Consolidation Rationale","triage": "amber" },
16 { "name": "Total Cost Comparison", "triage": "green" }
17 ],
18 "findings": [
19 {
20 "severity": "amber",
21 "check": "Affordability Assessment",
22 "finding": "Affordability buffer is within 2% of the lender's stress-test threshold. The disposable income margin after consolidation is £127/month, below the recommended £200 buffer.",
23 "remedial_action": "Request an updated income schedule or evidence of additional income sources. Consider whether a longer term reduces monthly outgoings sufficiently."
24 },
25 {
26 "severity": "amber",
27 "check": "Debt Consolidation Rationale",
28 "finding": "The suitability letter references debt consolidation as a primary objective but does not include a total cost comparison showing the client saves money over the term of the new mortgage versus maintaining existing debts.",
29 "remedial_action": "Add a total cost comparison table to the suitability letter showing: (a) current monthly debt payments and total remaining cost, (b) new mortgage payment including consolidated debt, and (c) net saving or cost over the mortgage term."
30 }
31 ],
32 "cost": "£3.20"
33}

What happens

Overall triage is amber

The top-level triage reflects the worst-case outcome across all checks. Two checks returned amber, so the overall result is amber. If any single check had returned red, the overall triage would be red.

Amber findings include remedial actions

Each amber finding contains a plain-language description of the issue and a suggested remedial action. These are designed to be actionable: the compliance officer can send the finding directly back to the adviser with clear instructions on what needs to change.

Review, escalate, or clear

As a compliance officer, you can now review each finding and decide whether to escalate the case (if you believe the issue is material), send it back to the adviser for amendment, or clear the finding if you determine the existing documentation is sufficient. The structured output integrates with your existing workflow and audit trail.

GreenAll clear. No issues found.
AmberReview needed. Remedial action suggested.
RedFail. Escalation required.