Skip to content

5.11 Worked data example — one borrower end-to-end

This page traces the same synthetic borrower from 6.13 through the platform’s data layer. Where the underwriting page focused on the business logic, this page focuses on the JSON shapes at each stage.

Borrower: Sundar Textiles & Apparel Pvt Ltd — garment manufacturer, Bengaluru, requesting ₹35 lakh revolving WC line.

{
"lead_id": 10042,
"created_at": "2026-04-12T09:21:14Z",
"borrower_pan_token": "tok_pan_a1b2c3",
"mobile_token": "tok_mob_d4e5f6",
"channel_id": 7,
"partner_id": 73,
"sub_agent_id": 218,
"campaign_id": null,
"utm_source": "ca-portal",
"utm_medium": "referral",
"utm_campaign": null,
"status": "qualified",
"stage": "applied"
}
{
"application_id": 10042001,
"borrower_id": 50221,
"lead_id": 10042,
"status": "submitted",
"channel_id": 7,
"partner_id": 73,
"sub_agent_id": 218,
"loan_product_id": 11,
"loan_amount_sought": 3500000.00,
"tenure_sought": 90,
"purpose_code": "WC_RAW_MATERIAL_PURCHASE",
"application_version": 3,
"created_at": "2026-04-12T09:23:51Z",
"submitted_at": "2026-04-12T10:48:02Z"
}

application_section_data (excerpt — business profile)

Section titled “application_section_data (excerpt — business profile)”
{
"application_id": 10042001,
"section_name": "business_profile",
"data_json": {
"trade_name": "Sundar Textiles",
"gstin_declared": "29ABCDE1234F1Z5",
"udyam": "UDYAM-KA-29-0001234",
"annual_turnover_declared": 4200000.00,
"num_employees": 25,
"industry_nic_code": "14101",
"operational_locations": [
{ "city": "Bengaluru", "state": "Karnataka", "type": "factory" },
{ "city": "Bengaluru", "state": "Karnataka", "type": "warehouse" }
]
},
"last_saved_at": "2026-04-12T09:42:30Z"
}
{
"id": 33112,
"borrower_id": 50221,
"legal_name": "Sundar Textiles & Apparel Private Limited",
"trade_name": "Sundar Textiles",
"gstin_token": "tok_gst_aa11bb22",
"udyam_no": "UDYAM-KA-29-0001234",
"cin_or_llpin": "U18101KA2020PTC133421",
"pan_token": "tok_pan_e5f6g7",
"date_of_incorporation": "2020-03-18",
"date_of_commencement": "2020-04-01",
"industry_nic_code": "14101",
"business_sub_category": "garment_manufacturing_and_distribution",
"annual_turnover_self_declared": 4200000.00,
"turnover_validated_from_gst": 41500000.00,
"business_vintage_years": 6.1,
"working_capital_cycle_days_estimated": 105
}
[
{
"id": 88141,
"business_entity_id": 33112,
"name": "Sundari Murthy",
"dob": "1980-04-15",
"gender": "F",
"pan_token": "tok_pan_pr_sm",
"aadhaar_ref_token": "tok_aad_sm",
"role": "director",
"shareholding_pct": 60.00,
"din_or_pin": "08123456",
"kyc_status": "verified",
"kyc_method": "vcip"
},
{
"id": 88142,
"business_entity_id": 33112,
"name": "Rakesh Murthy",
"dob": "1978-08-22",
"gender": "M",
"pan_token": "tok_pan_pr_rm",
"aadhaar_ref_token": "tok_aad_rm",
"role": "director",
"shareholding_pct": 40.00,
"din_or_pin": "08123789",
"kyc_status": "verified",
"kyc_method": "vcip"
}
]
Section titled “consent entries (recorded during application)”
[
{
"id": 90001,
"borrower_id": 50221,
"purpose": "bureau_pull_consumer_commercial",
"data_categories": ["consumer_bureau","commercial_bureau"],
"granted_at": "2026-04-12T09:45:18Z",
"expires_at": "2026-04-12T09:45:18Z",
"version_of_policy": "consent_v3",
"ip": "203.0.113.42",
"device_fingerprint": "df_x9k1m"
},
{
"id": 90002,
"borrower_id": 50221,
"purpose": "aa_bank_statement",
"data_categories": ["deposit_account_statement"],
"granted_at": "2026-04-12T10:01:42Z",
"expires_at": "2027-04-12T10:01:42Z",
"version_of_policy": "consent_v3",
"vendor": "setu",
"vendor_consent_ref": "setu_consent_ab12cd34"
},
{
"id": 90003,
"borrower_id": 50221,
"purpose": "gst_data_pull",
"data_categories": ["gstr1","gstr3b","gstr2a"],
"granted_at": "2026-04-12T10:09:51Z",
"expires_at": null,
"version_of_policy": "consent_v3"
}
]
{
"id": 71001,
"promoter_id": 88141,
"method": "vcip",
"ovd_type": "aadhaar_offline_xml",
"ckyc_kin": "12345600000000",
"ckyc_uploaded_at": "2026-04-12T11:08:33Z",
"ckyc_status": "uploaded",
"verified_at": "2026-04-12T11:05:11Z",
"next_refresh_due_at": "2034-04-12T11:05:11Z"
}
{
"id": 71101,
"kyc_record_id": 71001,
"vendor": "idfy",
"started_at": "2026-04-12T10:48:22Z",
"completed_at": "2026-04-12T11:05:11Z",
"outcome": "success",
"recording_uri": "s3://platform-prod-evidence/vcip/2026/04/71101.mp4",
"geo_tag_lat": 12.97160,
"geo_tag_lon": 77.59456
}
{
"id": 65001,
"subject_type": "person",
"subject_id": 88141,
"vendor": "amlwatcher",
"screened_at": "2026-04-12T11:09:14Z",
"hits": [],
"disposition": "clear"
}
[
{
"id": 200441,
"borrower_id": 50221,
"data_type": "aa",
"vendor": "setu",
"consent_ref": "setu_consent_ab12cd34",
"requested_at": "2026-04-12T10:05:30Z",
"completed_at": "2026-04-12T10:11:12Z",
"status": "completed",
"raw_object_uri": "s3://platform-prod-ingest/aa/raw/200441.json.gpg",
"parsed_object_uri": "s3://platform-prod-ingest/aa/parsed/200441.json"
},
{
"id": 200442,
"borrower_id": 50221,
"data_type": "gst",
"vendor": "cygnet",
"requested_at": "2026-04-12T10:09:55Z",
"completed_at": "2026-04-12T10:14:38Z",
"status": "completed",
"raw_object_uri": "s3://platform-prod-ingest/gst/raw/200442.xml.gpg",
"parsed_object_uri": "s3://platform-prod-ingest/gst/parsed/200442.json"
}
]

bank_statement (excerpt of parsed_metrics_json)

Section titled “bank_statement (excerpt of parsed_metrics_json)”
{
"account_holder_name": "SUNDAR TEXTILES AND APPAREL PVT LTD",
"bank_name": "HDFC Bank",
"account_type": "Current",
"ifsc": "HDFC0001234",
"period_start": "2024-05-01",
"period_end": "2026-05-01",
"aggregates": {
"abb_12_months": 185000.00,
"monthly_credit_avg": 3850000.00,
"monthly_debit_avg": 3780000.00,
"max_eod_balance": 924500.00,
"min_eod_balance": -12300.00,
"negative_balance_days_last_6_months": 2
},
"behaviour": {
"nach_bounces_12_months": 1,
"cheque_returns_12_months": 0,
"cash_deposit_ratio": 0.08,
"circular_transactions_flag": false,
"tampering_flag": null
},
"recurring_emi": [
{
"lender_guess": "HDFC Bank",
"amount": 45000.00,
"frequency": "monthly",
"detected_from": "2023-08"
}
]
}

gst_report (excerpt of gstr3b_metrics_json)

Section titled “gst_report (excerpt of gstr3b_metrics_json)”
{
"annual_turnover_last_12_months": 41500000.00,
"annual_turnover_prior_12_months": 35200000.00,
"yoy_growth_pct": 17.9,
"monthly_filings_in_24_months": 24,
"monthly_on_time_filings": 22,
"late_filings_last_6_months": 0,
"monthly_volatility_cv": 0.42,
"top_buyer_share_pct": 28.0,
"top_3_buyers_share_pct": 55.0,
"unique_buyers_12_months": 73,
"gst_status_changes_12_months": []
}
{
"id": 88801,
"subject_type": "person",
"subject_id": 88141,
"cic": "cibil",
"report_type": "consumer",
"pulled_at": "2026-04-12T10:25:33Z",
"score": 782,
"summary": {
"active_accounts": 2,
"closed_accounts": 4,
"writeoff_accounts": 0,
"30plus_dpd_24m": 0,
"90plus_dpd_24m": 0,
"enquiries_6m": 1,
"wilful_defaulter": false,
"active_accounts_detail": [
{
"type": "credit_card",
"lender": "HDFC Bank",
"limit": 200000,
"outstanding": 70000,
"utilisation_pct": 35.0,
"dpd_24m_max": 0
},
{
"type": "home_loan",
"lender": "HDFC Bank",
"sanction": 5500000,
"outstanding": 4000000,
"emi": 45000,
"dpd_24m_max": 0,
"remaining_tenure_months": 168
}
]
}
}
{
"id": 9020415,
"application_id": 10042001,
"policy_id": 4711,
"inputs_snapshot_uri": "s3://platform-prod-decisioning/inputs/9020415.json",
"trace_uri": "s3://platform-prod-decisioning/trace/9020415.json",
"outputs_json": {
"decision": "APPROVE",
"risk_grade": "A2",
"scorecards": {
"bureau": { "grade": "A2", "reason": "worst-of promoters" },
"gst": { "grade": "A1", "reason": "turnover, filing, concentration all A" },
"bank_statement": { "grade": "A1" },
"cash_flow": { "grade": "A1", "dsc_x": 4.5 },
"tally": { "grade": "A1" },
"manufacturing_overlay": { "outcome": "all_pass" },
"fraud": { "grade": "clear" }
},
"consolidated_grade": "A2",
"recommended_sanction_amount": 3500000,
"recommended_tenure_days": 180,
"recommended_rate": 0.1950,
"recommended_processing_fee_pct": 0.0125,
"recommended_servicing_fee_pa": 0.0025,
"conditions": [
"Disbursement to HDFC current account verified by penny drop",
"NACH mandate on HDFC account active before drawdown",
"Quarterly Tally export submission"
]
},
"decision": "approve",
"reason_codes": [
"BUREAU_A2",
"GST_TURNOVER_A1",
"BANK_STMT_A1",
"CASHFLOW_DSC_HIGH",
"MANUFACTURING_OVERLAY_PASS"
],
"recommended_sanction_amount": 3500000.00,
"recommended_tenure": 180,
"recommended_rate": 0.1950,
"risk_grade": "A2",
"started_at": "2026-04-12T10:30:01Z",
"completed_at": "2026-04-12T10:30:43Z"
}

Decision trace (excerpt — first 5 of 45 rules; full trace in trace_uri)

Section titled “Decision trace (excerpt — first 5 of 45 rules; full trace in trace_uri)”
{
"policy_version": 4711,
"rules": [
{
"rule": "GSTIN_ACTIVE_REQUIRED",
"input": { "gstin_status": "Active" },
"output": "PASS",
"contribution": "+eligibility"
},
{
"rule": "BUSINESS_VINTAGE_MIN_24_MONTHS",
"input": { "vintage_months": 73 },
"output": "PASS",
"contribution": "+eligibility"
},
{
"rule": "INDUSTRY_NOT_RESTRICTED",
"input": { "nic_code": "14101" },
"output": "PASS",
"contribution": "+eligibility"
},
{
"rule": "BUREAU_SCORE_MIN_650_PROMOTER",
"input": { "score_worst_of": 768 },
"output": "PASS",
"contribution": "+bureau A2"
},
{
"rule": "GST_TURNOVER_MIN_20L_ANNUAL",
"input": { "turnover_12m": 41500000 },
"output": "PASS",
"contribution": "+gst A"
}
]
}
{
"id": 6800212,
"application_id": 10042001,
"decision_run_id": 9020415,
"sanctioned_at": "2026-04-12T11:48:30Z",
"sanctioned_by_user_id": 401,
"amount": 3500000.00,
"tenure_days": 180,
"rate": 0.1950,
"fees_json": {
"processing": 43750.00,
"processing_gst": 7875.00,
"servicing_pa": 0.0025
},
"conditions_json": [
"Disbursement to HDFC current account",
"NACH mandate active before drawdown",
"Quarterly Tally export"
],
"valid_until": "2026-05-12T23:59:59Z"
}
[
{
"id": 730412,
"type": "kfs",
"sanction_id": 6800212,
"template_version_id": 312,
"language": "en",
"generated_at": "2026-04-12T11:52:04Z",
"object_uri": "s3://platform-prod-docs/kfs/2026/04/730412_en.pdf"
},
{
"id": 730413,
"type": "kfs",
"sanction_id": 6800212,
"template_version_id": 313,
"language": "kn",
"generated_at": "2026-04-12T11:52:05Z",
"object_uri": "s3://platform-prod-docs/kfs/2026/04/730413_kn.pdf"
},
{
"id": 730414,
"type": "loan_agreement",
"sanction_id": 6800212,
"template_version_id": 78,
"language": "en",
"generated_at": "2026-04-12T12:01:18Z",
"object_uri": "s3://platform-prod-docs/agreement/2026/04/730414.pdf"
}
]
{
"id": 540118,
"document_id": 730414,
"vendor": "leegality",
"signers": [
{
"promoter_id": 88141,
"status": "signed",
"aadhaar_esign_txn_ref": "UIDAI-ESIGN-X1Y2Z3-1",
"signed_at": "2026-04-12T13:14:48Z"
},
{
"promoter_id": 88142,
"status": "signed",
"aadhaar_esign_txn_ref": "UIDAI-ESIGN-X1Y2Z3-2",
"signed_at": "2026-04-12T13:42:11Z"
}
],
"completed_at": "2026-04-12T13:42:11Z",
"audit_uri": "s3://platform-prod-evidence/esign/540118-audit.pdf"
}
{
"id": 88712,
"application_id": 10042001,
"type": "enach",
"vendor": "digio",
"npci_ref": "NM00002301122",
"status": "active",
"borrower_account_id": "tok_acc_hdfc_xyz",
"max_debit_amount": 5000000,
"frequency": "as_per_demand",
"valid_from": "2026-04-12",
"valid_to": "2030-04-12"
}

Stage 8 — Disbursement (first drawdown of ₹15 lakh)

Section titled “Stage 8 — Disbursement (first drawdown of ₹15 lakh)”
{
"id": 920441,
"loan_account_id": null,
"sanction_id": 6800212,
"draw_sequence": 1,
"created_at": "2026-04-12T14:35:12Z",
"approved_at": "2026-04-12T14:38:55Z",
"approved_by_user_id": 401,
"executed_at": "2026-04-12T14:42:01Z",
"amount": 1500000.00,
"to_account_token": "tok_acc_hdfc_xyz",
"to_ifsc": "HDFC0001234",
"to_account_name_match": "SUNDAR TEXTILES AND APPAREL PVT LTD",
"purpose": "wc_raw_material",
"utr": "SBINH26041214500003",
"status": "completed"
}
{
"id": 1234560,
"borrower_id": 50221,
"sanction_id": 6800212,
"product_id": 11,
"activated_at": "2026-04-12T14:42:30Z",
"current_outstanding": 1500000.00,
"current_classification": "standard",
"current_dpd_days": 0,
"last_event_at": "2026-04-12T14:42:30Z"
}
[
{
"id": 100000001,
"loan_id": 1234560,
"event_type": "activate",
"event_at": "2026-04-12T14:42:30Z",
"event_payload_json": {
"sanction_id": 6800212,
"disbursement_id": 920441,
"initial_principal": 1500000.00
},
"idempotency_key": "act_1234560_1"
},
{
"id": 100000002,
"loan_id": 1234560,
"event_type": "disburse",
"event_at": "2026-04-12T14:42:01Z",
"event_payload_json": {
"amount": 1500000.00,
"utr": "SBINH26041214500003"
},
"idempotency_key": "dis_920441"
},
{
"id": 100000003,
"loan_id": 1234560,
"event_type": "accrual",
"event_at": "2026-04-13T23:30:00Z",
"event_payload_json": {
"rate": 0.1950,
"days": 1,
"interest_accrued": 800.55
},
"idempotency_key": "acc_1234560_20260413"
}
]

schedule_line for the ₹15 lakh / 90-day draw

Section titled “schedule_line for the ₹15 lakh / 90-day draw”
[
{
"id": 200012,
"loan_id": 1234560,
"due_date": "2026-07-11",
"principal_due": 1500000.00,
"interest_due": 72090.41,
"total_due": 1572090.41,
"paid_principal": 0,
"paid_interest": 0
}
]

(For a bullet-repayment drawdown like this, a single schedule line at maturity. Interest is 1500000 × 19.5% × 90/365 = ₹72,090.41.)

{
"id": 5000001,
"loan_id": 1234560,
"snapshot_date": "2026-04-12",
"class": "standard",
"dpd_days": 0,
"principal_overdue": 0,
"interest_overdue": 0
}
[
{
"id": 88000123,
"actor_user_id": 401,
"action": "sanction.approved",
"resource_type": "sanction",
"resource_id": "6800212",
"before_state_json": { "status": "proposed" },
"after_state_json": { "status": "approved", "approved_by_user_id": 401 },
"request_ip": "10.42.7.18",
"timestamp": "2026-04-12T11:48:30Z",
"prev_hash": "9af7c1...",
"this_hash": "82bd44..."
},
{
"id": 88000124,
"actor_user_id": 50221,
"actor_service_id": "borrower-bff",
"action": "kfs.acknowledged",
"resource_type": "issued_document",
"resource_id": "730412",
"before_state_json": { "acknowledged": false },
"after_state_json": { "acknowledged": true, "ack_timestamp": "2026-04-12T12:10:25Z" },
"request_ip": "203.0.113.42",
"timestamp": "2026-04-12T12:10:25Z",
"prev_hash": "82bd44...",
"this_hash": "b1c45e..."
}
]

Stage 11 — Co-lending (illustrative if this loan were co-lent at 80:20)

Section titled “Stage 11 — Co-lending (illustrative if this loan were co-lent at 80:20)”
{
"id": 60001,
"loan_id": 1234560,
"partner_lender_id": 7,
"originator_share_pct": 20.00,
"partner_share_pct": 80.00,
"originator_share_outstanding": 300000.00,
"partner_share_outstanding": 1200000.00,
"booked_at": "2026-04-12T14:42:30Z"
}

(In this synthetic example the loan is own-book, so no allocation row exists.)

Stage 12 — Accounting (GL postings for activation)

Section titled “Stage 12 — Accounting (GL postings for activation)”
{
"id": 4000456,
"transaction_date": "2026-04-12",
"description": "Loan disbursement — Sundar Textiles WC line draw 1",
"source_module": "lms",
"source_ref": 100000002,
"entries_json": [
{
"account_code": "1201",
"account_name": "Loans and Advances — WC Lines",
"debit": 1500000.00,
"credit": 0
},
{
"account_code": "1101",
"account_name": "Disbursement Bank Account",
"debit": 0,
"credit": 1500000.00
}
]
}
{
"id": 7800022,
"loan_id": 1234560,
"borrower_id": 50221,
"invoice_no": "INV-2026-04-7800022",
"invoice_date": "2026-04-12",
"taxable_value": 43750.00,
"cgst": 3937.50,
"sgst": 3937.50,
"igst": 0,
"total": 51625.00,
"hsn_code": "997199"
}

(Karnataka borrower → CGST + SGST split, not IGST.)

  • Every entity has a concrete shape engineers can prototype against.
  • Every state transition is captured in loan_event for audit.
  • Tokenised PII flows everywhere; clear text only in the PII vault.
  • Cross-references (sanction → disbursement → loan → events → classification) connect cleanly.
  • Audit chain spans every action.
  • GL postings reflect operational events in real time.

The same shape applies to every loan; the wedge difference between this happy-path example and edge cases (refer, deviation, NPA, restructuring, write-off, co-lending) shows up in the events the loan emits, not in fundamentally different table structure.