API Search endpoints…⌘K

Update a Loan Product (V2)

PUT/lokta-lms/api/v2/loanproducts/{productId}

Updates a Loan Product through the V2 contract. Preserves V1 partial-update semantics: omitted fields (including loanScheduleType) leave the existing configuration unchanged.

Temporary integration tolerance: unknown JSON request-body fields are ignored — they are not validated, persisted, returned or audited, cause no data change on their own, and must not be relied upon. Known fields remain strictly validated. A future release may restore unsupported-parameter rejection.

Path parameters

productIdpath · integer · int64 · required

productId

Request body application/json

accountMovesOutOfNPAOnlyOnArrearsCompletionboolean · optional
accountingRuleinteger · int32 · optional
allowApprovedDisbursedAmountsOverAppliedboolean · optional
allowAttributeOverridesAllowAttributeOverrides · optional
allowCompoundingOnEodboolean · optional
allowFullTermForTrancheboolean · optional

Allow full term length for each tranche disbursement. Only available for PROGRESSIVE schedule type with multi-disbursement enabled.

allowPartialPeriodInterestCalculationboolean · optional
allowVariableInstallmentsboolean · optional
amortizationTypeinteger · int32 · optional
buyDownExpenseAccountIdinteger · int64 · optional
buyDownFeeCalculationTypestring · optional
One of: FLAT
buyDownFeeIncomeTypestring · optional
One of: FEE, INTEREST
buyDownFeeStrategystring · optional
One of: EQUAL_AMORTIZATION
buydownfeeClassificationToIncomeAccountMappingsarray of PostClassificationToIncomeAccountMappings · optional
canDefineInstallmentAmountboolean · optional
canUseForTopupboolean · optional
capitalizedIncomeCalculationTypestring · optional
One of: FLAT
capitalizedIncomeClassificationToIncomeAccountMappingsarray of PostClassificationToIncomeAccountMappings · optional
capitalizedIncomeStrategystring · optional
One of: EQUAL_AMORTIZATION
capitalizedIncomeTypestring · optional
One of: FEE, INTEREST
chargeOffBehaviourstring · optional
chargeOffExpenseAccountIdinteger · int64 · optional
chargeOffFraudExpenseAccountIdinteger · int64 · optional
chargeOffReasonToExpenseAccountMappingsarray of PostChargeOffReasonToExpenseAccountMappings · optional
chargesarray of LoanProductV2ChargeEntry · optional

Replace-all charge entries; omitting the array preserves associations AND flags; flags omitted on surviving entries are preserved, on new entries default false.

closeDatestring · optional
creditAllocationarray of CreditAllocationData · optional
currencyCodestring · optional
dateFormatstring · optional
daysInMonthTypeinteger · int64 · optional
daysInYearCustomStrategystring · optional
daysInYearTypeinteger · int64 · optional
deferredFeeIncomeAccountIdinteger · int64 · optional
deferredIncomeLiabilityAccountIdinteger · int64 · optional
delinquencyBucketIdinteger · int64 · optional
descriptionstring · optional
digitsAfterDecimalinteger · int32 · optional
disallowExpectedDisbursementsboolean · optional
disallowInterestCalculationOnPastDueboolean · optional
disbursedAmountPercentageForDownPaymentnumber · optional
dueDaysForRepaymentEventinteger · int32 · optional
enableAccrualActivityPostingboolean · optional
enableAutoRepaymentForDownPaymentboolean · optional
enableBuyDownFeeboolean · optional
enableDownPaymentboolean · optional
enableIncomeCapitalizationboolean · optional
enableInstallmentLevelDelinquencyboolean · optional
feeToIncomeAccountMappingsarray of LoanProductChargeToGLAccountMapper · optional
fixedLengthinteger · int32 · optional
fixedPrincipalPercentagePerInstallmentnumber · optional
fundIdinteger · int64 · optional
fundSourceAccountIdinteger · int64 · optional
goodwillCreditAccountIdinteger · int64 · optional
graceOnArrearsAgeinginteger · int32 · optional
graceOnInterestPaymentinteger · int32 · optional
graceOnPrincipalPaymentinteger · int32 · optional
holdGuaranteeFundsboolean · optional
inArrearsToleranceinteger · int32 · optional
inMultiplesOfinteger · int32 · optional
includeInBorrowerCycleboolean · optional
incomeFromBuyDownAccountIdinteger · int64 · optional
incomeFromCapitalizationAccountIdinteger · int64 · optional
incomeFromChargeOffFeesAccountIdinteger · int64 · optional
incomeFromChargeOffInterestAccountIdinteger · int64 · optional
incomeFromChargeOffPenaltyAccountIdinteger · int64 · optional
incomeFromFeeAccountIdinteger · int64 · optional
incomeFromGoodwillCreditFeesAccountIdinteger · int64 · optional
incomeFromGoodwillCreditInterestAccountIdinteger · int64 · optional
incomeFromGoodwillCreditPenaltyAccountIdinteger · int64 · optional
incomeFromPenaltyAccountIdinteger · int64 · optional
incomeFromRecoveryAccountIdinteger · int64 · optional
installmentAmountInMultiplesOfinteger · int32 · optional
interestCalculationPeriodTypeinteger · int32 · optional
interestOnLoanAccountIdinteger · int64 · optional
interestRateFrequencyTypeinteger · int32 · optional
interestRatePerPeriodnumber · double · optional
interestRateVariationsForBorrowerCyclearray · optional
interestRecalculationCompoundingMethodinteger · int32 · optional
interestRecognitionOnDisbursementDateboolean · optional
interestTypeinteger · int32 · optional
isArrearsBasedOnOriginalScheduleboolean · optional
isCompoundingToBePostedAsTransactionboolean · optional
isEqualAmortizationboolean · optional
isInterestRecalculationEnabledboolean · optional
isLinkedToFloatingInterestRatesboolean · optional
loanPortfolioAccountIdinteger · int64 · optional
loanScheduleProcessingTypestring · optional
loanScheduleTypestring · optional
localestring · optional
maxInterestRatePerPeriodnumber · double · optional
maxNumberOfRepaymentsinteger · int32 · optional
maxPrincipalnumber · double · optional
maxTrancheCountinteger · int32 · optional
merchantBuyDownFeeboolean · optional
minInterestRatePerPeriodnumber · double · optional
minNumberOfRepaymentsinteger · int32 · optional
minPrincipalnumber · double · optional
minimumDaysBetweenDisbursalAndFirstRepaymentinteger · int32 · optional
multiDisburseLoanboolean · optional
namestring · optional
numberOfRepaymentVariationsForBorrowerCyclearray · optional
numberOfRepaymentsinteger · int32 · optional
outstandingLoanBalancenumber · double · optional
overAppliedCalculationTypestring · optional
overAppliedNumberinteger · int32 · optional
overDueDaysForRepaymentEventinteger · int32 · optional
overdueDaysForNPAinteger · int32 · optional
overpaymentLiabilityAccountIdinteger · int64 · optional
paymentAllocationarray of AdvancedPaymentData · optional
paymentChannelToFundSourceMappingsarray of GetLoanPaymentChannelToFundSourceMappings · optional
penaltyToIncomeAccountMappingsarray of LoanProductChargeToGLAccountMapper · optional
preClosureInterestCalculationStrategyinteger · int32 · optional
principalnumber · double · optional
principalThresholdForLastInstallmentinteger · int32 · optional
principalVariationsForBorrowerCyclearray · optional
ratesarray of RateData · optional
recalculationCompoundingFrequencyIntervalinteger · int32 · optional
recalculationCompoundingFrequencyOnDayTypeinteger · int32 · optional
recalculationCompoundingFrequencyTypeinteger · int32 · optional
recalculationRestFrequencyIntervalinteger · int32 · optional
recalculationRestFrequencyTypeinteger · int32 · optional
receivableFeeAccountIdinteger · int64 · optional
receivableInterestAccountIdinteger · int64 · optional
receivablePenaltyAccountIdinteger · int64 · optional
repaymentEveryinteger · int32 · optional
repaymentFrequencyTypeinteger · int32 · optional
repaymentStartDateTypeinteger · int32 · optional
rescheduleStrategyMethodinteger · int32 · optional
shortNamestring · optional
startDatestring · optional
supportedInterestRefundTypesarray · optional
transactionProcessingStrategyCodestring · optional
transfersInSuspenseAccountIdinteger · int64 · optional
useBorrowerCycleboolean · optional
writeOffAccountIdinteger · int64 · optional
writeOffReasonsToExpenseMappingsarray of PostWriteOffReasonToExpenseAccountMappings · optional
beneficiaryTypestring · optional

System-defined disbursement payee category; null clears.

One of: BORROWER, MERCHANT, DEALER, BUILDER, PRIOR_LENDER
bpiMethodstring · optional

BPI treatment; explicit null clears; omitted preserves. Refused for a schedule type that prices no broken period.

One of: EMI_PLUS_BPI, PRE_EMI_INTEREST, BPI_WITHIN_EMI, CAPITALIZE_BPI
brokenPeriodDayCountstring · optional

broken-period day-count convention — same choices as dayCountConvention (parity). Explicit null clears; omitted preserves. Declarative product configuration: stored as sent; the broken-period interest engine consumes it in a later phase.

One of: ACT_365, ACT_360, D30_360_US, D30E_360, ACT_ACT
coLendingEligibleboolean · optional

Co-lending eligibility flag.

collectBpiAtDisbursementboolean · optional

BPI-at-disbursement flag. Omitted preserves; explicit null is rejected — send false to disable. Refused for a schedule type that prices no broken period, and not yet consumed: no transaction or journal entry nets it from the proceeds.

computeAprForKfsboolean · optional

APR-for-KFS flag. Omitted preserves; explicit null is rejected — send false to disable. Declarative: stored as sent; the APR/KFS engine consumes it in a later phase.

dayCountConventionstring · optional

stable day-count convention name. Supplying it re-derives and updates the raw axes; explicit null clears ONLY the stored convention (axes untouched); omitted preserves. Updating either raw axis WITHOUT a convention in the same request clears the stored convention (drift prevention). Supplying both requires consistency.

One of: ACT_365, ACT_360, D30_360_US, D30E_360, ACT_ACT
defaultRoundingModestring · optional

product-level java.math.RoundingMode NAME (never an ordinal or any internal identifier). Null inherits tenant rounding. Declarative: persisted via the shared rounding profile; engine wiring consumes it in a later phase.

One of: UP, DOWN, CEILING, FLOOR, HALF_UP, HALF_DOWN, HALF_EVEN
interestRateStepnumber · optional

fixed nominal rate increment in percentage points per annum. Fixed-rate products only — must be null/omitted for floating products. Null = continuous.

maximumDaysBetweenDisbursalAndFirstRepaymentinteger · int32 · optional

first-repayment ceiling in days. Explicit null clears; omitted preserves; the combined final state must keep ceiling >= floor.

pmtTypestring · optional

payment-formula variant. Omitted preserves; explicit null is rejected — send STANDARD_PMT to reset. PRECISE_PMT is stored as declarative configuration; the precise-PMT engine consumes it in a later phase.

One of: STANDARD_PMT, PRECISE_PMT
principalStepnumber · optional

principal increment anchored at minimumPrincipal. Explicit null clears the step (band returns to CONTINUOUS); omitted preserves. Requires the complete principal band when supplied; the default principal must sit on the grid.

productCategoryTagsarray · optional

Replace-all list of stable category-tag codes (code group LoanProductCategory).

productTypestring · optional

Stable product-type code (code group LoanProductType); null clears.

repayOnDayarray · optional

replacement pinned-day set (monthly products only; exactly one day active). Explicit null clears the recurrence; omitted preserves. Changing repayment frequency away from monthly requires clearing repayOnDay in the same request.

residualEnabledboolean · optional

residual (balloon) schedule eligibility flag. Declarative: stored as sent; the residual schedule engine consumes it in a later phase.

scheduleSolverstring · optional

declarative input-mode selection (D-27). Omitted preserves; explicit null CLEARS the value back to "not configured" (nullable, no default). All five values are storable and none changes backend behaviour; changing the solver changes no other product field. The backend never derives Loan terms from scheduleSolver.

One of: SOLVE_EMI, TARGET_EMI, MERCHANT_DISCOUNT, FLAT_RATE, TOTAL_INTEREST_PCT
tenorStepinteger · int32 · optional

increment in NUMBER OF INSTALLMENTS over the repayment-count band (never a calendar duration). Explicit null clears; omitted preserves.

Responses

200OK

Response fields

changesPutLoanChanges · optional
resourceIdinteger · int64 · optional

Every request authenticates with HTTP Basic and carries a Tenant-Identifier header. See the conventions for dates, commands, pagination and errors. Open this operation in the interactive explorer, or read it as Markdown.