Skip to main content

Salary Advance - V2 Configuration

Product Type: Digital Salary-Based Lending
Use Case: Emergency cash, short-term needs, payday advance
Typical Amount: ₦10,000 - ₦500,000
Typical Tenor: 1-6 months
Interest Rate: 5% - 15% per month (flat)


Overview​

Salary Advance is a digital-first, mobile-optimized loan product for salaried employees with salary domiciliation. Designed for instant approval and quick disbursement, typically within 5 minutes.

Key Features​

  • Instant Approval: Automated decisioning in < 5 minutes
  • Salary Domiciliation Required: Salary must be paid into bank account
  • Auto-Debit Repayment: Automatic deduction on salary payment date
  • Digital-First: Mobile app and USSD application
  • Minimal Documentation: Employment letter only
  • Flexible Amounts: 30%-75% of net monthly salary
  • Cooling-Off Period: Mandatory 30 days between loans

YAML Field Reference​

Basic Information Section​

Field NameData TypeRequiredDescriptionExample
productCodeString✅ YesUnique product code"SA-INSTANT-001"
productNameString✅ YesDisplay name"Instant Salary Advance"
descriptionStringNoProduct description"Quick cash for salaried staff"
isActiveBooleanNoProduct statustrue
loanProductTypeStringNoLoan type"SalaryAdvance"
lineOfBusinessEnumNoBusiness classification"Retail"

Loan Tenure Section​

Field NameData TypeRequiredDescriptionExample
minimumMonthsInteger✅ YesMinimum tenor1
maximumMonthsInteger✅ YesMaximum tenor6
defaultMonthsIntegerNoDefault tenor1

Principal Range Section​

Field NameData TypeRequiredDescriptionExample
minimumAmountDecimalNoMinimum loan amount10000
maximumAmountDecimalNoMaximum loan amount500000
defaultAmountDecimalNoDefault amount50000
salaryPercentage.minimumDecimalNoMin % of net salary30
salaryPercentage.maximumDecimalNoMax % of net salary75
salaryPercentage.defaultDecimalNoDefault % of net salary50

Salary Domiciliation Configuration​

Field NameData TypeRequiredDescriptionExample
requireSalaryDomiciliationBoolean✅ YesMandatory salary paymenttrue
minimumSalaryMonthsInteger✅ YesMin months of salary history3
minimumNetSalaryDecimalNoMin monthly net salary50000
verificationMethodEnum✅ YesSalary verification method"BankStatement"
employmentTypes[]ArrayNoAccepted employment types["Permanent", "Contract"]
excludedEmployers[]ArrayNoBlacklisted employers[]

Verification Methods: BankStatement, EmployerConfirmation, PaySlip, TaxRemittance

Interest Configuration Section​

Field NameData TypeRequiredDescriptionExample
isEnabledBoolean✅ YesWhether interest is chargedtrue
rate.defaultDecimal✅ YesDefault rate (% per month)5.0
rate.minimumDecimalNoMinimum rate3.0
rate.maximumDecimalNoMaximum rate15.0
calculationMethodEnum✅ YesCalculation method"FlatRate"
rateTermsEnumNoRate period"PerMonth"

Auto-Debit Configuration Section​

Field NameData TypeRequiredDescriptionExample
enableAutoDebitBoolean✅ YesAutomatic repaymenttrue
debitAccountSourceEnum✅ YesWhich account to debit"SalaryAccount"
debitTimingEnum✅ YesWhen to debit"OnSalaryPayment"
debitDayOffsetIntegerNoDays after salary payment0
allowPartialDebitBooleanNoAllow partial if insufficientfalse
mandateRequiredBooleanNoRequire signed mandatetrue

Debit Timing Options: OnSalaryPayment, AfterSalaryPayment, FixedDate, CustomDate

Instant Approval Configuration Section​

Field NameData TypeRequiredDescriptionExample
enableInstantApprovalBoolean✅ YesAutomated decisioningtrue
maxProcessingMinutesIntegerNoMax approval time5
scorecardModelStringNoCredit scoring model"SalaryAdvanceV2"
minimumCreditScoreIntegerNoMin score for auto-approval500
autoDeclineScoreIntegerNoScore for auto-decline300
manualReviewRangeObjectNoScore range for manual reviewSee sample

Eligibility Configuration Section​

Field NameData TypeRequiredDescriptionExample
minimumAgeIntegerNoMinimum age21
maximumAgeIntegerNoMaximum age60
employmentStatus[]Array✅ YesAccepted employment types["Salaried"]
minimumServiceYearsIntegerNoMin years with employer1
requiredDocuments[]Array✅ YesMandatory documents["EmploymentLetter", "BankStatement3Months"]
kycLevelEnumNoRequired KYC tier"Tier2"

Cooling-Off Period Configuration​

Field NameData TypeRequiredDescriptionExample
enableCoolingOffPeriodBoolean✅ YesEnforce waiting periodtrue
coolingOffDaysInteger✅ YesDays between loans30
applyOnFullRepaymentBooleanNoStart after full repaymenttrue
allowOverrideBooleanNoManager can overridefalse

Fees Configuration Section​

Field NameData TypeRequiredDescriptionExample
fees[].codeString✅ YesFee code"PROC_FEE"
fees[].nameString✅ YesFee name"Processing Fee"
fees[].feeTypeEnum✅ YesFee collection method"DeductedDisbursement"
fees[].calculationTypeEnum✅ YesHow to calculate"Flat"
fees[].valueDecimal✅ YesFee amount500
fees[].minimumDecimalNoMinimum fee500
fees[].maximumDecimalNoMaximum fee5000
fees[].glAccountIdInteger✅ YesGL account40001

Mobile/Digital Configuration Section​

Field NameData TypeRequiredDescriptionExample
mobileEnabledBooleanNoEnable mobile apptrue
ussdEnabledBooleanNoEnable USSD codetrue
ussdCodeStringNoUSSD short code"*737*5*1#"
webEnabledBooleanNoEnable web portaltrue
biometricAuthBooleanNoFingerprint/FaceID logintrue

Notifications Configuration Section​

Field NameData TypeRequiredDescriptionExample
sendApplicationConfirmationBooleanNoConfirm applicationtrue
sendApprovalNotificationBooleanNoNotify approvaltrue
sendDisbursementNotificationBooleanNoConfirm disbursementtrue
sendRepaymentRemindersBooleanNoRemind before debittrue
reminderDaysBeforeIntegerNoDays before debit2
channels.smsBooleanNoEnable SMStrue
channels.emailBooleanNoEnable emailtrue
channels.pushBooleanNoEnable pushtrue

Complete Sample YAML Configuration​

basicInfo:
productCode: "SA-INSTANT-001"
productName: "Instant Salary Advance"
description: "Quick cash advance for salaried employees with instant approval"
isActive: true
loanProductType: "SalaryAdvance"
repaymentAllocationOrder: "FEES_PENALTY_INTEREST_PRINCIPAL"
lineOfBusiness: "Retail"
currencyCode: "NGN"

loanTenure:
minimumMonths: 1
maximumMonths: 6
defaultMonths: 1

principalRange:
minimumAmount: 10000
maximumAmount: 500000
defaultAmount: 50000
salaryPercentage:
minimum: 30
maximum: 75
default: 50

salaryDomiciliationConfig:
requireSalaryDomiciliation: true
minimumSalaryMonths: 3
minimumNetSalary: 50000
verificationMethod: "BankStatement"
employmentTypes:
- "Permanent"
- "Contract"
excludedEmployers: []

interestConfig:
isEnabled: true
rate:
default: 5.0 # 5% per month
minimum: 3.0
maximum: 15.0
calculationMethod: "FlatRate"
rateTerms: "PerMonth"

autoDebitConfig:
enableAutoDebit: true
debitAccountSource: "SalaryAccount"
debitTiming: "OnSalaryPayment"
debitDayOffset: 0
allowPartialDebit: false
mandateRequired: true

instantApprovalConfig:
enableInstantApproval: true
maxProcessingMinutes: 5
scorecardModel: "SalaryAdvanceV2"
minimumCreditScore: 500
autoDeclineScore: 300
manualReviewRange:
minimum: 300
maximum: 499

eligibilityConfig:
minimumAge: 21
maximumAge: 60
employmentStatus:
- "Salaried"
minimumServiceYears: 1
requiredDocuments:
- "EmploymentLetter"
- "BankStatement3Months"
- "ValidID"
kycLevel: "Tier2"

coolingOffConfig:
enableCoolingOffPeriod: true
coolingOffDays: 30
applyOnFullRepayment: true
allowOverride: false

fees:
- code: "PROC_FEE"
name: "Processing Fee"
feeType: "DeductedDisbursement"
calculationType: "Flat"
value: 500
minimum: 500
maximum: 5000
glAccountId: 40001

mobileConfig:
mobileEnabled: true
ussdEnabled: true
ussdCode: "*737*5*1#"
webEnabled: true
biometricAuth: true

notificationsConfig:
sendApplicationConfirmation: true
sendApprovalNotification: true
sendDisbursementNotification: true
sendRepaymentReminders: true
reminderDaysBefore: 2
channels:
sms: true
email: true
push: true

penaltyConfig:
isEnabled: true
tolerancePeriod: 0
calculationMethod: "OverduePrincipal_DaysLate_Rate"
rate:
default: 10.0 # 10% per month on overdue
minimum: 5.0
maximum: 20.0

Use Cases & Examples​

Example 1: Emergency Medical Expense​

Scenario: Employee needs ₦50,000 for medical emergency.

Employee Profile:

  • Net Monthly Salary: ₦150,000
  • Employment: 2 years (permanent)
  • Salary History: 6 months in bank
  • Credit Score: 650

Application Flow:

1. Customer opens mobile app
2. Requests ₦50,000 (33% of salary ✅)
3. Automated decisioning:
- Salary verification ✅
- Credit score 650 > 500 ✅
- Cooling-off check ✅
4. Instant approval (3 minutes)
5. Disbursement to account (2 minutes)

Repayment Calculation:

Principal: ₦50,000
Tenor: 1 month
Interest Rate: 5% flat
Processing Fee: ₦500

Interest: ₦50,000 × 5% = ₦2,500
Total Repayment: ₦50,000 + ₦2,500 = ₦52,500
Net Disbursement: ₦50,000 - ₦500 = ₦49,500

Auto-debit on next salary date: ₦52,500

Example 2: Multi-Month Salary Advance​

Scenario: Employee needs ₦200,000 for home repairs over 3 months.

Employee Profile:

  • Net Monthly Salary: ₦300,000
  • Employment: 5 years
  • Credit Score: 750

Configuration:

principalRange:
requestedAmount: 200000 # 67% of salary

loanTenure:
months: 3

interestConfig:
rate: 4.0 # Lower rate for higher credit score

Repayment Schedule:

Principal: ₦200,000
Tenor: 3 months
Interest Rate: 4% per month (flat)
Processing Fee: ₦500

Monthly Interest: ₦200,000 × 4% = ₦8,000
Total Interest: ₦8,000 × 3 = ₦24,000
Total Repayment: ₦224,000
Monthly Deduction: ₦224,000 / 3 = ₦74,667

Month 1: ₦74,667 (auto-debit on salary date)
Month 2: ₦74,667
Month 3: ₦74,666

Example 3: USSD Application​

Scenario: Employee uses USSD for quick loan.

USSD Flow:

Customer: *737*5*1#
Bank: Welcome to Salary Advance
1. Apply for loan
2. Check eligibility
3. Loan balance

Customer: 1
Bank: Enter amount (₦10,000 - ₦500,000):

Customer: 100000
Bank: Tenor (1-6 months):

Customer: 1
Bank: Checking eligibility...
✅ Eligible for ₦100,000
Interest: ₦5,000
Repayment: ₦105,000
Debit date: Next salary
Reply 1 to confirm

Customer: 1
Bank: ✅ Approved!
₦99,500 credited to your account
Ref: SA20260102001

Instant Approval Decision Tree​

instantApprovalConfig:
scorecardModel: "SalaryAdvanceV2"
minimumCreditScore: 500
autoDeclineScore: 300

Decisioning Logic:

Step 1: Credit Score Check
Score ≥ 500 → AUTO-APPROVE
300 ≤ Score < 500 → MANUAL REVIEW
Score < 300 → AUTO-DECLINE

Step 2: Salary Verification (if not declined)
Salary history < 3 months → DECLINE
Net salary < ₦50,000 → DECLINE
Requested > 75% of salary → DECLINE

Step 3: Cooling-Off Check
Last loan < 30 days ago → DECLINE
Outstanding loan exists → DECLINE

Step 4: Document Verification
Employment letter missing → DECLINE
Bank statement missing → DECLINE

Result:
All checks passed → INSTANT APPROVAL (< 5 minutes)
Any check failed → DECLINE or MANUAL REVIEW

Credit Scoring Factors:

  • Salary consistency (40%)
  • Repayment history (30%)
  • Account age (15%)
  • Transaction behavior (10%)
  • External credit bureau (5%)

Salary-Based Limit Calculation​

principalRange:
salaryPercentage:
minimum: 30
maximum: 75

Calculation Examples:

Scenario 1: Conservative Limit

Net Monthly Salary: ₦100,000
Credit Score: 550 (Medium)
Employment: 1 year

Maximum Loan = ₦100,000 × 50% = ₦50,000

Scenario 2: Higher Limit

Net Monthly Salary: ₦200,000
Credit Score: 750 (Excellent)
Employment: 5 years
Perfect repayment history

Maximum Loan = ₦200,000 × 75% = ₦150,000

Scenario 3: First-Time Borrower

Net Monthly Salary: ₦150,000
Credit Score: 600
Employment: 2 years
No loan history

Maximum Loan = ₦150,000 × 30% = ₦45,000 (conservative)

Auto-Debit Process​

autoDebitConfig:
enableAutoDebit: true
debitTiming: "OnSalaryPayment"
debitDayOffset: 0

Debit Flow:

1. Salary Credit Detected
├─> Bank system monitors salary account
├─> Detects credit matching salary pattern
└─> Triggers auto-debit process

2. Loan Identification
├─> Retrieves active salary advance loans
├─> Calculates total repayment due
└─> Checks signed mandate

3. Account Balance Check
├─> Verifies sufficient balance
├─> If insufficient: Send alert (no partial debit)
└─> If sufficient: Proceed to debit

4. Debit Execution
├─> Debit loan repayment amount
├─> Update loan status
├─> Send confirmation SMS/email
└─> If fully repaid: Start cooling-off period

5. Exception Handling
├─> Insufficient funds: Retry next day (3 attempts)
├─> Account closed: Manual intervention
└─> Mandate expired: Request renewal

Cooling-Off Period Enforcement​

coolingOffConfig:
enableCoolingOffPeriod: true
coolingOffDays: 30
applyOnFullRepayment: true

Purpose: Prevent debt cycle and encourage responsible borrowing.

Example Timeline:

Jan 1: Loan disbursed (₦50,000)
Jan 15: Auto-debit repayment (₦52,500)
Jan 15 - Feb 14: Cooling-off period (30 days)
Feb 15: Eligible for new loan ✅

Timeline Visualization:
|---Loan Active---|---Cooling-Off---|---Can Borrow Again---|
Jan 1 Jan 15 Feb 14 Future
↓ ↓ ↓
Disburse Repaid Can reapply

Validation:

Code Removed

Implementation details removed for security.

Contact support for implementation guidance.


Validation Rules​

Salary Verification​

Code Removed

Implementation details removed for security.

Contact support for implementation guidance.

Instant Approval Validation​

Code Removed

Implementation details removed for security.

Contact support for implementation guidance.


Troubleshooting​

Issue: "Insufficient salary history"​

Cause: Less than 3 months of salary credits in account.

Solutions:

  1. Wait until 3 salary credits are received
  2. Provide additional salary evidence (payslips, tax remittance)
  3. Apply through alternate product (Personal Loan with documentation)

Issue: "Cooling-off period active"​

Cause: Less than 30 days since last loan repayment.

Solution:

Last Repayment: Jan 15
Next Eligible: Feb 14
Current Date: Jan 20
Days Remaining: 25 days

Wait until cooling-off period expires.
(No override allowed per config)

Issue: "Auto-debit failed"​

Cause: Insufficient balance on salary payment date.

Solutions:

1. Automatic Retries:
- Day 1: Failed (insufficient funds)
- Day 2: Retry 1 (failed)
- Day 3: Retry 2 (failed)
- Day 4: Retry 3 → Final attempt

2. Customer Action:
- Fund account before retry
- Contact bank for manual payment
- Risk: Penalty interest accumulates

3. Bank Action:
- Send alerts after each failed attempt
- Escalate to collections after 3 failures
- Report to credit bureau after 30 days

Migration from V1​

V1 Salary Advance Mapping​

V1 Field/TableV2 YAML Path
SalaryAccountautoDebitConfig.debitAccountSource
SalaryThresholdsalaryDomiciliationConfig.minimumNetSalary
ApprovalTimeinstantApprovalConfig.maxProcessingMinutes
CoolingPeriodcoolingOffConfig.coolingOffDays
MaxSalaryPercentageprincipalRange.salaryPercentage.maximum
USSDCodemobileConfig.ussdCode

Sample Migration Script​

Code Removed

Implementation details removed for security.

Contact support for implementation guidance.


Last Updated: January 2, 2026
API Version: V2 (BPMCore)
Product Category: Loan Products
Complexity: ⭐⭐⭐ (Moderate - Digital/Automated)