LendFlow Platform · v1

One ledger. Three portals. Real money in real bank accounts.

LendFlow handles the entire lifecycle of a small-business loan: from the merchant filling out an application to the daily debit hitting their account 90 days later — and the renewal offer that goes out at 50% payback.

Roles Platform admin · Funder · Merchant Stack Fastify · Prisma · React · Tailwind v4 Workers BullMQ + Redis
The flow

Application → funded → serviced → renewed.

Each stage is its own module, with explicit state machines and event emissions. No tangled procedural code; just clean handoffs you can reason about.

Step 1

Intake

Merchant submits an application. Plaid Link verifies the bank account, ownership snapshot is captured, and the deal lands in the funder's queue.

Step 2

Underwriting

Bank metrics are calculated, MCA positions are detected from raw transactions, safety rails fire, and a product is matched against the funder's per-product rules.

Step 3

Contract & fund

DocuSign envelope sent on approval. Auto-fund toggles trigger the ACH credit the moment signatures complete. The cycle activates and the daily debit schedule begins.

Step 4

Servicing & renewal

Two-tier failure handling on debits, a configurable default threshold per funder, and an automatic renewal offer at 50% payback with pre-calculated terms.

For funders

Configure once. Decision the same way every time.

Funders define their products, their per-product underwriting rules, and their bank account. After that, every deal flows through the same machine — auditable, reviewable, and consistent.

Products

Risk tiers + presets

Define amount range, multiplier, and term days per product. Apply Medium/High/Highest risk presets to auto-create the underwriting rules — then tune.

Auto-fund

Per-product toggle

Some products fund the moment the contract is signed; others wait for review. Funders set the policy per product, not per deal.

Defaults

Stop-pay vs. miss

R08 stop-pays are tracked separately from missed payments. Trigger thresholds are configurable. Defaults flow into the renewal logic on recovery.

Commission

Earned per deal

Platform fees are recognized after a configurable payment milestone — set per product, per funder, or as a platform default.

AI assist

Bank statement OCR

Drop a PDF, get back deposits, NSFs, and detected MCA positions. The underwriter sees the same data the rules engine does.

Deal upload

Pre-fill from a contract

Drop a signed application PDF and LendFlow extracts the merchant + ownership and pre-fills a new file — with safety rails to prevent duplicates.

For merchants

A clear loan view they can actually use.

Merchants get a single dashboard: current loan status, payment progress, payment methods (ACH and card), document upload, and a wizard to apply for additional capital. SSN and EIN are encrypted at rest the moment they're entered.

The merchant portal works on phones, ships responsive out of the box, and never exposes another funder's data — tenant scoping is enforced at the service layer, not just hidden in the UI.

  • Multi-step wizard for new applications
  • Plaid Link for bank verification
  • Card or ACH payment methods, with a deal-level override
  • Document upload with funder visibility controls
loan_statusActive · 27 of 90 days
funded_amount$40,000.00
payback_amount$54,000.00
paid_to_date$15,984.00
remaining_balance$38,016.00
daily_debit$592.00
next_runTomorrow 06:00 ET
payment_methodACH · Chase ****4421
Integrations

The providers wired in today.

Every external service sits behind a TypeScript interface. We pick a default and ship it; you can swap it.

Banking Live

Plaid

Link tokens, public-token exchange, transactions, balances, and item lifecycle. Tokens encrypted with AES-256 before they touch the database.

Signatures Live

DocuSign

JWT-based eSignature flow with auto-send on approval, status webhooks, and embedded signing for in-portal contract execution.

Card payments Live

Authorize.Net CIM

Tokenized card-on-file via Accept.js. Ad-hoc payments and recurring debits both run through the same provider interface.

Email Live

Nodemailer + SMTP

Transactional email via your own SMTP relay. Branded templates for deal milestones, payment receipts, and default escalations.

SMS Wired

Twilio

Programmable SMS for payment reminders and default escalations. A2P 10DLC compliant with explicit merchant opt-in at registration.

AI Live

Anthropic Claude

OCR, bank-statement metric extraction, and MCA position detection — all behind swappable interfaces so the model can be replaced.

ACH Wiring

Increase / Dwolla

ACH funding and daily debits behind the same payments interface that drives card. Provider choice is a config swap.

KYB Roadmap

Middesk

EIN matching, SOS filings, and watchlist screening on the merchant verification flow.

Lien checks Roadmap

UCC search

Multi-state UCC lookups inline in the underwriting view, surfaced alongside the AI-detected MCA positions.

Foundations

The platform isn't a frontend over Excel.

State machines are real. Audit trails are immutable. Background work is queued, idempotent, and traceable.

State machines

Modeled in the schema

Application → approved → contract_sent → signed → funded → active → paid_off / defaulted. Every transition writes an activity row.

Background jobs

Idempotent workers

Payment processor at 6 AM, reconciliation at 8 PM, renewal monitor hourly, billing calculator on schedule. All restartable, all observable.

Tenant scoping

Enforced at the service layer

Funders see only their merchants. Merchants see only their data. Platform admins see everything. RBAC via preHandlers, not by hiding routes.

See it run on your portfolio.

We'll walk through a deal end-to-end on a sandbox tenant — application, underwriting, contract, fund, debit, default, renewal.

Request a demo