Skip to Content
Who can use this
Available to
DeveloperAdministrator
Not available to
Governance EngineerCompliance OfficerBusiness OwnerAuditor

SDK Quick Start — Mortgage & Loan Processing

Getting started: Mortgage & Loan Processing

This guide takes you from install to your first attributed governance record in mortgage & loan processing. You will install the SDK, configure a provider, instrument a workflow step with the real OTel attribute vocabulary from this vertical, and have a reviewable evidence record in your portal within an afternoon. There is no scaffolding project — just your API key and the three steps below.

Why this matters right now. As of March 2026, agentic AI in mortgage and loan processing is deployed across: automated document ingestion and data extraction from URLA/1003, AUS interface orchestration (DU/LPA), TRID disclosure generation and tolerance monitoring, HMDA LAR data collection and anomaly detection, appraisal ordering and UAD data validation, closing disclosure generation and three-day waiting period enforcement, eClosing workflow orchestration, secondary market delivery data validation (ULDD), loan boarding automation, servicing payment processing, loss mitigation workflow routing, and default/foreclosure timeline management. CFPB Circular 2022-3 (2022) and ECOA Reg B apply to all automated credit decisions. Regulation C violations constitute 38% of all Federal Reserve compliance violations (2024). HMDA Regulation C violations are the most-cited Federal Reserve compliance finding for three consecutive years (2022-2024). The #1 source of violations is incorrect or missing LAR data field values. Agentic AI systems generating or validating HMDA LAR entries must use the exact enumerated values defined in this library.

How the layering works

You are not adopting a separate product surface for this vertical. You are adding a market-specific vocabulary layer on top of the same core session model used everywhere in VeriProof.

LayerWhat you configureWhat changes downstream
Core SDKAPI key, application identity, session lifecycle, export path, base governance metadataThe same trace, evidence, and export foundation used across every implementation
Mortgage & Loan ProcessingOTel attributes, permitted values, and workflow metadata drawn from this vertical catalogPortal evidence records, policy inputs, and exports become standards-literate for this market
Review surfacesRules, evidence packages, and internal reviewer workflowsThe same labels and values appear without translation during review or audit

If you need the cross-industry baseline first, open the core SDK reference, Python core, or .NET core before continuing here.

Step 1 — Install

TypeScript / Node.js

npm install @veriproof/sdk-core

Python

pip install veriproof-sdk

.NET

dotnet add package Veriproof.Sdk

Step 2 — Configure

Call the configuration helper once, before any AI framework initialises. After that call, every OTel span in the process — whether emitted by your code or by a framework adapter — is exported automatically to VeriProof.

Your API key comes from the VeriProof portal. Try a live demo to see the portal before you register, or start a free Builder account and use the environment variable pattern above directly.

Need a production credential path rather than sandbox exploration? Get API access for a Builder account, or contact the team if you need an architecture or compliance review alongside implementation.

Step 3 — Instrument your workflow

The governance vocabulary for this vertical lives in the Mortgage & Loan Processing reference. Use the OTel attribute names below — they are the same names the portal uses in evidence records and the same names your policy engine will evaluate. Consistency here is the point.

OTel attributeSample valueCategory
mortgage.application.statusprequalification_inquiryMortgageApplicationStatus
mortgage.hmda.action_taken1HMDAActionTaken
mortgage.hmda.loan_purpose1HMDALoanPurpose
mortgage.hmda.lien_status1HMDALienStatus
mortgage.hmda.property_type1HMDAPropertyType
mortgage.hmda.denial_reason1HMDAReasonForDenial

TypeScript example

import { configureVeriproof, VeriproofClient, VeriproofSdkOptions, SessionMetadata } from '@veriproof/sdk-core';
import { MortgageApplicationStatus, MortgageApplicationStatusMeta, HMDAActionTaken, HMDAActionTakenMeta } from '@veriproof/sdk-core/verticals/mortgage-loan-processing';

// Call once at application startup
configureVeriproof(
  VeriproofSdkOptions.createProduction({
    apiKey: process.env.VERIPROOF_API_KEY!,
    applicationId: 'mortgage-loan-processing-app',
  }),
  { serviceName: 'mortgage-loan-processing-app', setGlobal: true },
);

// Instrument a governed workflow
const client = new VeriproofClient(
  VeriproofSdkOptions.createProduction({ apiKey: process.env.VERIPROOF_API_KEY! }),
);

const session = client
  .startSession('mortgage.loan.processing.review')
  .withSessionMetadata(SessionMetadata.forTransaction('txn-001').withEnvironment('production'))
  .addStep('evaluate', { output: { status: 'completed' } })
  .withMetadata(MortgageApplicationStatusMeta.otelAttribute, MortgageApplicationStatus.prequalification_inquiry)
  .withMetadata(HMDAActionTakenMeta.otelAttribute, HMDAActionTaken.1)

await session.complete();

Python example

import os
from opentelemetry import trace
from veriproof_sdk import VeriproofClientOptions, configure_veriproof
from veriproof_sdk.verticals import mortgage_loan_processing as mlp

# Call once at application startup
configure_veriproof(
    VeriproofClientOptions(
        api_key=os.environ["VERIPROOF_API_KEY"],
        application_id="mortgage-loan-processing-app",
    ),
    service_name="mortgage-loan-processing-app",
    set_global=True,
)

tracer = trace.get_tracer(__name__)

# Instrument a governed workflow
with tracer.start_as_current_span("mortgage_loan_processing.review") as span:
    span.set_attribute(mlp.MortgageApplicationStatus.__otel_attribute__, mlp.MortgageApplicationStatus.prequalification_inquiry.value)
    span.set_attribute(mlp.HMDAActionTaken.__otel_attribute__, mlp.HMDAActionTaken.1.value)
    span.set_attribute(mlp.HMDALoanPurpose.__otel_attribute__, mlp.HMDALoanPurpose.1.value)
    ...

.NET example

using Veriproof.Sdk;
using Veriproof.Sdk.Core.OpenTelemetry.Verticals.MortgageLoanProcessing;

// Configure once at application startup
builder.Services.AddVeriproof(options =>
{
    options.ApiKey = builder.Configuration["VERIPROOF_API_KEY"]!;
    options.ApplicationId = "mortgage-loan-processing-app";
});

// Instrument a governed workflow step
using var activity = ActivitySource.StartActivity("evaluate");
    activity?.SetTag(MortgageApplicationStatus.Metadata.OtelAttribute, MortgageApplicationStatus.prequalification_inquiry);
    activity?.SetTag(HMDAActionTaken.Metadata.OtelAttribute, HMDAActionTaken.1);
    activity?.SetTag(HMDALoanPurpose.Metadata.OtelAttribute, HMDALoanPurpose.1);

How teams use this in production

  • Automated Underwriting System (AUS): AUSRecommendation. OPA rule: require human underwriter HITL decision before any commitment issuance when aus_recommendation contains 'Refer'. Block autonomous final approval for all Refer with Caution outcomes regardless of other conditions. (Fnma Selling Guide: Fannie Mae Selling Guide B3-2 — Desktop Underwriter)
  • TRID Disclosure Management: TRIDDisclosure Status. OPA rule: block any loan closing action when trid_disclosure_status is NOT ThreeBusinessDayWaitingPeriod_Satisfied or Consummated. Block consummation within 3 business days of ClosingDisclosure_Revised_APRChange. (Trid Reg Z 1026 19e: 12 CFR 1026.19(e) — Loan Estimate delivery within 3 business days of application)
  • Loss Mitigation & Default Management: Loss Mitigation Option Type. OPA rule: block autonomous initiation of Foreclosure_Initiated when a complete LossMitigationApplication is under review (anti-dual-tracking per Reg X 1024.41). Require HITL sign-off with compliance_officer role before any foreclosure referral. (Reg X 1024 41: Regulation X 12 CFR 1024.41 — Loss mitigation procedures: application acknowledgement (5 days), evaluation (30 days from complete application), prohibition on dual tracking)
  • Regulatory Reporting: Adverse Action Notice Status. OPA rule: block loan application file archival when adverse_action_notice_status is Required_PendingGeneration, Overdue_30DayDeadlineMissed, Deficient_Missing_Reason_Codes, or Deficient_Missing_FCRA_Notice. (Ecoa Reg B 1002 9: Reg B 12 CFR 1002.9 — Notification of action taken, ECOA notice, and statement of specific reasons)

Next steps

  • Open the full Mortgage & Loan Processing governance reference for all 34 enum categories, policy patterns, and source standards.
  • Review TypeScript SDK core for advanced session-builder options, batch export, and Merkle verification.
  • Review Python SDK core for decorator-based annotations and framework adapter options.
  • Review .NET SDK core for Semantic Kernel, AutoGen, and Activity-based instrumentation.
  • Browse all vertical references to understand how the core governance vocabulary layers underneath vertical-specific attribute sets.
  • Compare this guide with the public industry pages if you need the commercial and workflow framing behind the same vocabulary.
Ready to connect your first workflow?

Register a free Builder account — 500 tamper-proof Proofs per month, full SDK and REST API access, and your first evidence record in the portal before you leave your desk.

Live demo →Start free →

Last updated on