Skip to main content

Loan Products - V2 Configuration

Welcome to the BankLingo V2 Loan Product Configuration Guide. In BankLingo V2, all product configurations are stored in YAML format within the ConfigData field, providing a flexible and version-controlled approach to product management.

What's New in V2?

Unified Configuration

  • Single Source of Truth: All product settings are now in one YAML configuration
  • Version Control: YAML configurations can be tracked, compared, and rolled back
  • No Relationship Tables: V2 eliminates the need for multiple V1 relationship tables
  • Backward Compatible: V1 products continue to work seamlessly

V1 to V2 Transition

V1 Architecture (Legacy):

  • Multiple relationship tables: LoanProductInterestSetting, RepaymentReschedulingSetting, LoanAmountSetting, etc.
  • Configuration spread across 10+ database tables
  • Complex joins and includes

V2 Architecture (Current):

  • Single ConfigData field containing complete YAML
  • ProductConfigHelper provides V1 fallback
  • BPMCore handlers use ConfigData exclusively

Allowed V1 Fields (For Reference Only)

When working with V2, only these fields from the LoanProduct table are accessed:

FieldPurposeUsage in V2
KeyProduct identifierUsed directly
EncodedKeyEncoded identifierUsed directly
IsActiveProduct statusUsed directly
LineOfBusinessBusiness lineUsed directly
ProductNameProduct nameUsed directly
ConfigDataV2 YAML configurationPrimary configuration source
CurrencyIdCurrency referenceUsed directly
DateCreatedCreation timestampUsed directly

All other V1 fields and relationship tables are NOT used in V2.

Available Loan Products

BankLingo V2 supports the following loan product types:

  1. Personal Loan - Unsecured general-purpose lending
  2. Business/SME Loan - Working capital and business expansion
  3. Salary Advance - Short-term salary-based lending
  4. Asset Finance - Equipment and vehicle financing
  5. Overdraft - Revolving credit facility

Common YAML Structure

All loan products share this basic structure:

basicInfo:
productCode: "..."
productName: "..."
description: "..."
isActive: true
loanProductType: "..."
repaymentAllocationOrder: "..."

loanTenure:
minimumMonths: 6
maximumMonths: 60

principalRange:
minimumAmount: 50000
maximumAmount: 5000000
defaultAmount: 500000

interestConfig:
isEnabled: true
rate:
default: 15.5
minimum: 12.0
maximum: 35.0
calculationMethod: "DecliningBalance"

repaymentConfig:
frequency: "Monthly"
allocationOrder: "FEES_PENALTY_INTEREST_PRINCIPAL"

# ... additional sections based on product type

Key Configuration Sections

Required Sections

Every loan product must include:

  • basicInfo - Product identification and metadata
  • loanTenure - Minimum and maximum loan duration
  • interestConfig - Interest rate configuration
  • repaymentConfig - Repayment schedule settings

Optional Sections

Customize based on business needs:

  • principalRange - Loan amount limits
  • fees - Product-specific fees
  • collateralConfig - Collateral requirements
  • penaltyConfig - Late payment penalties
  • moratorium - Grace period settings
  • accountingConfig - GL account mappings
  • eligibilityConfig - Customer eligibility criteria
  • notificationsConfig - Alert and notification settings

YAML Field Types

Data Types Used

  • String: Text values (e.g., "Personal Loan")
  • Number: Numeric values (e.g., 15.5, 12)
  • Boolean: True/false flags (e.g., true, false)
  • Array: Lists of items (e.g., fees, collateral types)
  • Object: Nested configurations (e.g., interestConfig)
  • Enum: Predefined options (e.g., "DecliningBalance")

Common Enums

Loan Product Type:

  • FixedTermLoan - Standard fixed-term loans
  • DynamicTermLoan - Flexible term loans
  • RevolvingCredit - Overdraft-style products
  • TranchedLoan - Multi-disbursement loans

Interest Calculation Method:

  • DecliningBalance (Reducing Balance) - Interest on remaining principal
  • Flat - Interest on original principal
  • DecliningBalanceEqualInstallments - Equal monthly payments

Repayment Frequency:

  • Daily, Weekly, Biweekly, Monthly, Quarterly, Yearly

Getting Started

For Product Managers

  1. Choose the product type closest to your needs
  2. Review the YAML field explanation table
  3. Copy the sample YAML configuration
  4. Customize values for your requirements
  5. Validate using the provided examples

For Developers

  1. Use ProductConfigHelper.GetLoanConfigOrDefault() to parse ConfigData
  2. Access configuration via the returned LoanProductConfig object
  3. All BPMCore handlers use this helper for consistency
  4. V1 fallback is automatic when ConfigData is null

Validation Rules

The YAML configuration includes built-in validation:

  • Required fields: Must be present (marked in field tables)
  • Range validation: Min/max checks on numeric values
  • Enum validation: Values must match predefined options
  • Cross-field validation: Logical consistency checks
  • Custom business rules: Product-specific validations

Migration Path

Existing V1 Products

  • Continue working without changes
  • ProductConfigHelper provides automatic V1-to-V2 mapping
  • No immediate migration required

New V2 Products

  • Create ConfigData YAML from scratch
  • Use product templates as starting points
  • Test thoroughly before deployment

Gradual Migration

  • Migrate products one at a time
  • Compare V1 and V2 behavior
  • Update ConfigData as business rules evolve
  • Eventually retire V1 tables when all products migrated

Support & Resources

  • Field Reference: Each product page has detailed field tables
  • Sample Configurations: Complete working YAML examples
  • Use Cases: Common product configurations
  • Troubleshooting: Common issues and solutions
  • API Integration: Code examples for BPMCore handlers

Next Steps

Choose a loan product type to explore its detailed configuration:


Last Updated: January 2, 2026
API Version: V2 (BPMCore)
Configuration Format: YAML