Lender OS

Account Aggregator orchestration for regulated lenders

One API for every
Account Aggregator rail

Lender OS gives NBFCs and fintech lenders a single integration for consented financial data: consent lifecycle, borrower journey, FI acquisition, decryption and delivery — identical across every RBI-licensed Account Aggregator you contract.

create a consent — sandbox
curl https://api.sandbox.lenderos.in/v1/consents \
  -H "Authorization: Bearer los_sk_test_..." \
  -H "Idempotency-Key: 7f9c24e5-..." \
  -d '{
    "client_reference": "LOAN-APP-88213",
    "customer": { "reference": "cust_9f2c1a", "mobile": "+919812345678" },
    "template_ref": "tpl_personal_loan_12m",
    "journey": { "return_url": "https://lender.example.com/aa/return" }
  }'
webhook · LenderOS-Signature verified
{
  "type": "consent.activated",
  "livemode": false,
  "sequence": 3,
  "data": {
    "previous_state": "PENDING",
    "object": {
      "id": "con_01J8Y7QN4M5R",
      "state": "ACTIVE",
      "custody": { "decryption_performed_by": "LENDEROS" }
    }
  }
}

What payment orchestrators are to payment gateways, Lender OS is to Account Aggregators.

The AA framework is powerful. Integrating it is not.

India’s Account Aggregator ecosystem gives lenders consented, bank-grade financial data. But each AA exposes its own API shapes, consent semantics, journey behaviour, error vocabulary and delivery model. Integrating one rail is weeks of work; every additional rail multiplies the surface — and your team ends up owning consent-state reconciliation, key custody, ReBIT decryption and purge obligations across all of them.

Lender OS absorbs the rails, so you integrate once.

The orchestrator presents one canonical model — consents, journeys, data sessions, events — and maps every rail into it behind per-AA connectors. Upstream quirks and error codes never leak into your code. You are the FIU throughout: your identity, your AA contracts, your keys, operated on your behalf under an auditable custody model.

How it works

Consent → data → delivery, on one state machine

Four calls and two webhooks take a loan file from “we need bank statements” to normalized FI data in your systems — with every step evidenced.

Your systems

Loan origination system
Underwriting & risk
Borrower app / web

one integration

Lender OS orchestrator

TSP
Consent state machine
AA routing engine
Consent-term enforcement
Decryption & key isolation
Signed webhook delivery
Evidence & purge attestation

one state machine, every rail

AA ecosystem

RBI-licensed AA rail 1
RBI-licensed AA rail 2
…every rail you contract

FIPs: banks holding the data

  1. 01

    Create a consent

    One POST with canonical consent parameters — or a saved template. Lender OS validates the terms, selects an AA rail from your contracted pool, and registers the consent. Routing is decided once, transparently, with typed reasons when no rail fits.

    POST /consents → PENDING

  2. 02

    Borrower approves

    Mint a short-lived journey URL and redirect the borrower to their AA. The redirect back to you is a UX signal; the authoritative outcome arrives as a signed webhook once the rail confirms.

    consent.activated → ACTIVE

  3. 03

    Fetch within the terms

    Open a data session under the active consent. Data range and fetch frequency are enforced in Lender OS code before any rail sees the request — out-of-bounds fetches fail fast with typed errors.

    POST /data-sessions → session.data_ready

  4. 04

    Pull normalized data

    One authenticated pull endpoint returns a normalized envelope wrapping raw ReBIT FI JSON per account. Webhooks carry references, never financial data. Custody and purge are recorded and attested.

    GET /data-sessions/{id}/data

Capabilities

Infrastructure-grade, from consent to purge

One API across AA rails

Consents, journeys, data sessions and webhooks behave identically on every RBI-licensed AA you contract. No AA-specific concept ever reaches your integration — switching or adding rails is configuration, not code.

Explicit consent state machine

PENDING → ACTIVE → PAUSED / REVOKED / EXPIRED, moved only by verified rail notifications and authoritative polls — never by the borrower’s redirect. Every transition is webhooked with a gapless per-entity sequence.

Signed webhooks

Every event is HMAC-SHA256 signed with a timestamped signature header, replay-protected, retried on a 24-hour backoff schedule, and deduplicable by event id. Financial data never rides in a webhook body.

Per-tenant key isolation

Your FIU identity and keys are yours. Decryption happens inside your tenant’s isolated key boundary, and every payload records who performed it — LENDEROS or RAIL — in an auditable custody trail.

Data-life enforcement

Every consent carries a data-life; every session carries a purge_due_at. Purge is executed and attested — after purge, the API returns the attestation, not a 404. Evidence outlives the data.

Consent-funnel analytics

Journey outcomes are normalized across rails — approved, rejected, abandoned, failed, with machine-readable reasons — so you can see exactly where borrowers drop and which rails convert.

Fail-fast serviceability

Borrowers the AA framework structurally cannot serve (joint-only accounts, NRE/NRO, no live FIP) surface as a typed CANNOT_SERVE outcome, not a mystery error — switch rails immediately instead of retrying.

Sandbox that behaves like production

A fully separate deployment with mock FI data and no AA contract required. Same API, same state machines, same webhooks. Going live is a credential change, never a code change.

Built for lenders

Made for RBI-regulated credit, not generic data plumbing

Every design decision assumes the file ends in a lending decision that must survive an audit: explicit consent terms, enforced data-life, evidence for every byte.

For engineering

  • Stripe-grade API conventions: idempotency keys, cursor pagination, typed errors, additive versioning
  • Webhook signatures you can verify in ten lines, with rotation that never drops events
  • Raw ReBIT payloads — your parsers read the standard, not a proprietary transform

For credit & risk

  • Bank-grade cash-flow data under explicit, purpose-bound consent
  • Partial results delivered as results — underwrite on what arrived while failures carry typed reasons
  • Normalized funnel outcomes to quantify and fix consent drop-off

For compliance & ops

  • An evidence pack per consent: who consented, what was fetched, who decrypted, when it was purged
  • Consent-term enforcement in code — frequency and range violations never leave your perimeter
  • Purge attestation aligned to the consent’s data-life, exportable for audit

Put your AA integration on one rail-proof API

Tell us about your lending stack and AA plans. We’ll walk you through the orchestrator, the sandbox, and what onboarding looks like.