using LendWise.Web.Models;
namespace LendWise.Web.Services;
///
/// All loan products shown on the site. Edit this file to change names, copy, documents or
/// calculator defaults. Rates in the calculators are illustrative only.
///
public class ProductCatalog
{
public static readonly string[] Categories = ["Unsecured", "Secured", "Other"];
public static readonly Dictionary CategoryLabels = new()
{
["Unsecured"] = "Unsecured loans",
["Secured"] = "Secured loans",
["Other"] = "Other funding"
};
public static readonly Dictionary CategoryIntro = new()
{
["Unsecured"] = "No collateral needed. Approval depends on your income, business and credit profile.",
["Secured"] = "Borrow against an asset you own, usually for larger amounts and at lower interest rates.",
["Other"] = "Equity and structured funding for businesses that are scaling up."
};
public IReadOnlyList All { get; }
public ProductCatalog()
{
All =
[
new Product
{
Slug = "business-loan",
Name = "Business loan",
Category = "Unsecured",
Icon = "briefcase",
Tagline = "Working capital and growth funding without collateral.",
Summary = "Fund inventory, payroll, equipment or a new location. An unsecured business loan lets you expand or upgrade without pledging property, and we compare offers from lenders whose criteria match your business.",
Audience = "Self-employed",
Highlights =
[
"No collateral required",
"Use the money for working capital, expansion or upgrades",
"One application, matched to several lenders",
"Paperless process from start to finish"
],
Eligibility =
[
"Self-employed professionals and business owners",
"A business that has been operating for a minimum period set by the lender",
"Healthy credit history and regular banking turnover"
],
Documents =
[
"PAN and address proof of the applicant",
"Business registration or GST details",
"Recent bank statements",
"Income tax returns or financial statements"
],
Emi = new EmiConfig { ProductSlug = "business-loan", MinAmount = 100000, MaxAmount = 5000000, StepAmount = 50000, DefaultAmount = 1000000, Rate = 16, Months = 36, MaxMonths = 60 }
},
new Product
{
Slug = "personal-loan",
Name = "Personal loan",
Category = "Unsecured",
Icon = "user",
Tagline = "A paperless personal loan for planned and unplanned expenses.",
Summary = "Cover a wedding, a medical bill, travel or a home upgrade with a loan that needs no collateral. Share a few details online and we show you lenders that fit your profile.",
Audience = "Salaried and self-employed",
Highlights =
[
"Fully digital application",
"Fixed monthly EMI you can plan around",
"No collateral required",
"Compare lenders before you commit"
],
Eligibility =
[
"Indian resident with a stable income",
"Age and minimum income criteria set by each lender",
"A credit score that meets the lender's requirement"
],
Documents =
[
"PAN and address proof",
"Last 3 to 6 months of bank statements",
"Salary slips or income proof",
"Recent photograph"
],
Emi = new EmiConfig { ProductSlug = "personal-loan", MinAmount = 50000, MaxAmount = 2500000, StepAmount = 10000, DefaultAmount = 500000, Rate = 14, Months = 36, MaxMonths = 84 }
},
new Product
{
Slug = "revenue-based-funding",
Name = "Revenue based funding",
Category = "Unsecured",
Icon = "chart",
Tagline = "Funding that repays as a share of your monthly revenue.",
Summary = "Repayments move with your sales, so a slow month is easier on cash flow. Suited to businesses with steady, recurring revenue that want growth capital without giving up equity.",
Audience = "Self-employed",
Highlights =
[
"Repayment linked to your revenue",
"No equity dilution",
"Works well for subscription, e-commerce and service businesses",
"Fast, data-led assessment"
],
Eligibility =
[
"Businesses with consistent monthly revenue",
"Minimum operating history set by the funder",
"Verifiable sales or payment-gateway data"
],
Documents =
[
"Business and promoter KYC",
"Bank statements and GST returns",
"Sales or payment-gateway reports",
"Financial statements"
]
},
new Product
{
Slug = "trade-finance",
Name = "Trade finance",
Category = "Unsecured",
Icon = "globe",
Tagline = "Export finance, invoice discounting and dealer financing.",
Summary = "Free up cash that is tied up in receivables, payables and shipments. Trade finance helps you pay suppliers on time, give customers credit terms and fulfil large orders.",
Audience = "Self-employed",
Highlights =
[
"Export finance for Indian and international orders",
"Invoice discounting for receivables",
"Invoice discounting for payables, also called purchase financing",
"Dealer financing with buy now, pay later terms"
],
Eligibility =
[
"Registered businesses that trade with other businesses",
"Verifiable invoices or purchase orders",
"Track record with the buyers or suppliers involved"
],
Documents =
[
"Business KYC and GST details",
"Invoices, purchase orders or export contracts",
"Bank statements",
"Buyer or supplier details"
]
},
new Product
{
Slug = "home-loan",
Name = "Home loan",
Category = "Secured",
Icon = "home",
Tagline = "Compare home loan offers for your next home.",
Summary = "Buy, build or renovate a home with a long-tenure loan secured against the property. Compare rates, fees and terms from several lenders before you choose.",
Audience = "Salaried and self-employed",
Highlights =
[
"Long repayment tenures that keep EMIs manageable",
"Offers for purchase, construction and renovation",
"Compare fees and terms side by side",
"Digital document upload"
],
Eligibility =
[
"Salaried or self-employed Indian resident",
"Stable income and a good credit history",
"A property that meets the lender's legal and technical checks"
],
Documents =
[
"PAN, Aadhaar and address proof",
"Income proof and bank statements",
"Property documents and sale agreement",
"Employment or business proof"
],
Emi = new EmiConfig { ProductSlug = "home-loan", MinAmount = 1000000, MaxAmount = 50000000, StepAmount = 500000, DefaultAmount = 5000000, Rate = 8.5, Months = 240, MaxMonths = 360 }
},
new Product
{
Slug = "loan-against-property",
Name = "Loan against property",
Category = "Secured",
Icon = "building",
Tagline = "Unlock the value of property you already own.",
Summary = "Use your residential or commercial property as security to raise a large loan at a lower rate than most unsecured options. Use the money for business needs, education, a wedding or consolidating debt.",
Audience = "Salaried and self-employed",
Highlights =
[
"Higher loan amounts than unsecured loans",
"Lower interest rates than most unsecured loans",
"Flexible use of funds",
"You keep using the property"
],
Eligibility =
[
"Owner of a residential, commercial or industrial property",
"Stable income and repayment capacity",
"Clear title and acceptable property valuation"
],
Documents =
[
"PAN, Aadhaar and address proof",
"Property ownership documents",
"Income proof and bank statements",
"Business proof for self-employed applicants"
],
Emi = new EmiConfig { ProductSlug = "loan-against-property", MinAmount = 1000000, MaxAmount = 50000000, StepAmount = 500000, DefaultAmount = 4000000, Rate = 10, Months = 180, MaxMonths = 240 }
},
new Product
{
Slug = "loan-against-shares",
Name = "Loan against shares",
Category = "Secured",
Icon = "trend",
Tagline = "Borrow against your investments without selling them.",
Summary = "Pledge eligible shares or securities and get funds quickly while your portfolio stays invested. Suited to short-term liquidity needs.",
Audience = "Self-employed",
Highlights =
[
"Keep your investments and still access cash",
"Quicker than most secured loans",
"Suited to short-term funding needs",
"Interest is charged on the amount you use"
],
Eligibility =
[
"Holder of shares or securities approved by the lender",
"Demat account in your own name",
"Loan value depends on the pledged portfolio"
],
Documents =
[
"PAN and address proof",
"Demat account statement",
"Bank statements",
"Income or business proof"
],
Emi = new EmiConfig { ProductSlug = "loan-against-shares", MinAmount = 100000, MaxAmount = 20000000, StepAmount = 100000, DefaultAmount = 1000000, Rate = 11, Months = 12, MaxMonths = 36 }
},
new Product
{
Slug = "private-equity",
Name = "Private equity",
Category = "Other",
Icon = "layers",
Tagline = "Growth capital from investors who take an ownership stake.",
Summary = "For established businesses that want to scale, enter new markets or acquire competitors. Investors bring capital and often strategic support in exchange for equity.",
Audience = "Self-employed",
Highlights =
[
"Large growth capital for established companies",
"Strategic and operational support from investors",
"No fixed monthly repayment",
"Introductions to suitable investors"
],
Eligibility =
[
"Registered company with a proven track record",
"Clear growth plan and strong management team",
"Audited financials"
],
Documents =
[
"Company profile and pitch deck",
"Audited financial statements",
"Shareholding and incorporation documents",
"Business plan and projections"
]
},
new Product
{
Slug = "debt-funding",
Name = "Debt funding",
Category = "Other",
Icon = "coins",
Tagline = "Structured debt for companies that want to keep ownership.",
Summary = "Raise term debt or structured finance for expansion, acquisitions or refinancing without diluting your shareholding.",
Audience = "Self-employed",
Highlights =
[
"Keep full ownership of your company",
"Structures that fit your cash-flow cycle",
"Suited to expansion, acquisition and refinancing",
"Access to institutional lenders"
],
Eligibility =
[
"Registered company with stable revenues",
"Reasonable leverage and debt service cover",
"Audited financial statements"
],
Documents =
[
"Company KYC and incorporation documents",
"Audited financials for recent years",
"Bank statements and debt schedule",
"Project or business plan"
]
},
new Product
{
Slug = "venture-funding",
Name = "Venture funding",
Category = "Other",
Icon = "rocket",
Tagline = "Capital and support for high-growth startups.",
Summary = "Connect with venture investors who back early and growth-stage startups. Share your traction and plan, and we help you reach investors that fit your stage and sector.",
Audience = "Self-employed",
Highlights =
[
"For startups building for fast growth",
"Investors matched to your sector and stage",
"Support beyond capital",
"Help preparing your investor materials"
],
Eligibility =
[
"Incorporated startup with a working product or early traction",
"Scalable business model and clear market",
"Founding team with relevant experience"
],
Documents =
[
"Pitch deck",
"Cap table and incorporation documents",
"Financial model and key metrics",
"Founder profiles"
]
}
];
}
public Product? Find(string? slug) =>
string.IsNullOrWhiteSpace(slug)
? null
: All.FirstOrDefault(p => string.Equals(p.Slug, slug, StringComparison.OrdinalIgnoreCase));
public IEnumerable InCategory(string category) =>
All.Where(p => p.Category == category);
}