Deposit Products - V2 Configuration
Welcome to the BankLingo V2 Deposit Product Configuration Guide. In BankLingo V2, all product configurations are stored in YAML format within the ConfigData field, providing a flexible and comprehensive approach to managing deposit accounts.
What's New in V2?
Unified Configuration
- Single Source of Truth: All product settings in one YAML configuration
- Version Control: Track, compare, and rollback configurations
- No Relationship Tables: V2 eliminates multiple V1 relationship tables
- Backward Compatible: V1 products continue working seamlessly
V1 to V2 Transition
V1 Architecture (Legacy):
- Multiple relationship tables:
DepositProductInterestSetting,DepositSavingsSetting,DepositTermSetting, etc. - Configuration spread across 8+ database tables
- Complex joins and includes
V2 Architecture (Current):
- Single
ConfigDatafield 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 DepositProduct table are accessed:
| Field | Purpose | Usage in V2 |
|---|---|---|
Key | Product identifier | Used directly |
EncodedKey | Encoded identifier | Used directly |
IsActive | Product status | Used directly |
LineOfBusiness | Business line | Used directly |
ProductName | Product name | Used directly |
DepositProductDescription | Product description | Used directly |
ConfigData | V2 YAML configuration | Primary configuration source |
CurrencyId | Currency reference | Used directly |
DateCreated | Creation timestamp | Used directly |
All other V1 fields and relationship tables are NOT used in V2.
Available Deposit Products
BankLingo V2 supports the following deposit product types:
- Savings Account - Daily transaction savings accounts
- Current Account - Business transactional accounts
- Fixed Deposit - Term deposits with guaranteed returns
- Call Deposit - Notice-period withdrawal accounts
- Target Savings - Goal-based savings accounts
Common YAML Structure
All deposit products share this basic structure:
productCode: "SAV-001"
productName: "Savings Account"
isActive: true
depositAccountType: "Savings"
description: "Standard savings account with tiered interest"
automaticallySetAccountAsDormant: true
dormancyAfterXDays: 180
interestConfiguration:
enabled: true
calculationBasis: "DailyBalance"
paymentFrequency: "Monthly"
defaultRate: 5.0
minimumBalanceConfig:
initialDeposit: 1000
maintainBalance: 500
chargeIfBelow: true
transactionLimits:
deposits:
minAmountPerDeposit: 100
withdrawals:
maxAmountPerDay: 500000
maxTransactionsPerMonth: 10
# ... additional sections based on product type
Key Configuration Sections
Required Sections
Every deposit product must include:
- productCode - Unique product identifier
- productName - Display name
- depositAccountType - Account type (Savings, Current, Fixed, etc.)
- interestConfiguration - Interest rate settings
Optional Sections
Customize based on business needs:
- minimumBalanceConfig - Balance requirements
- transactionLimits - Deposit/withdrawal restrictions
- fees - Account maintenance and transaction fees
- withholdingTax - Tax deduction configuration
- dormancyConfig - Inactivity settings
- termSettings - For fixed/term deposits
- tierRates - Balance-based interest tiers
- accountingConfig - GL account mappings
- eligibilityConfig - Customer eligibility criteria
- notificationsConfig - Alert and notification settings
YAML Field Types
Data Types Used
- String: Text values (e.g.,
"Savings Account") - Number: Numeric values (e.g.,
5.0,1000) - Boolean: True/false flags (e.g.,
true,false) - Array: Lists of items (e.g., fees, tier rates)
- Object: Nested configurations (e.g., interestConfiguration)
- Enum: Predefined options (e.g.,
"DailyBalance")
Common Enums
Deposit Account Type:
Savings- Savings accountsCurrent- Current/checking accountsFixedDeposit- Term depositsCallDeposit- Notice-period accountsRecurringDeposit- Regular deposit schemes
Interest Calculation Basis:
DailyBalance- Daily average balanceMinimumMonthlyBalance- Lowest balance in monthEndOfMonthBalance- Balance at month-endTenorBased- Based on deposit term
Interest Payment Frequency:
Monthly,Quarterly,SemiAnnually,Annually,OnMaturity
Getting Started
For Product Managers
- Choose the product type closest to your needs
- Review the YAML field explanation table
- Copy the sample YAML configuration
- Customize values for your requirements
- Validate using the provided examples
For Developers
- Use
ProductConfigHelper.GetDepositConfigOrDefault()to parse ConfigData - Access configuration via the returned
DepositProductConfigobject - All BPMCore handlers use this helper for consistency
- 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
Product Comparison
| Feature | Savings | Current | Fixed Deposit | Call Deposit | Target Savings |
|---|---|---|---|---|---|
| Liquidity | High | Very High | Locked | Medium | Locked |
| Interest Rate | 2-6.5% | 0-0.5% | 6-14% | 5-9.5% | 5-11% |
| Transaction Limit | 10/month | Unlimited | None | Notice required | None until goal |
| Min Balance | ₦1k | ₦10k | ₦100k | ₦500k | ₦0 |
| Best For | Daily use | Business ops | Lump sum | Planned expenses | Saving goals |
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 deposit product type to explore its detailed configuration:
- Savings Account → - Most popular product type
- Current Account → - Business transactional accounts
- Fixed Deposit → - Term deposits with guaranteed returns
- Call Deposit → - Balance between savings and fixed
- Target Savings → - Gamified goal-based savings
Last Updated: January 2, 2026
API Version: V2 (BPMCore)
Configuration Format: YAML