Shift all repayment due dates from a given installment onward
POST/loans/{loanId}/repayments:shift-due-dates
Re-dates a loan account's repayment schedule in a single call, avoiding a full schedule-edit payload.
The repayment identified by fromRepaymentEncodedKey is moved to targetDueDate, and that day-of-month is then cascaded to every later repayment, advancing one month at a time. Repayments earlier than the target are left unchanged.
Date handling:
- Month-end: if
targetDueDateis the last day of its month, this is treated the same as an explicit day-31 target and is subject to the sameShortMonthHandlingMethodrules described below — withLAST_DAY_IN_MONTH(the default) every following repayment lands on that month's last day (e.g. the 31st becomes the 30th or 28th/29th as appropriate). - Short months: if a day does not exist in a given month, the account's configured
ShortMonthHandlingMethoddecides the result:LAST_DAY_IN_MONTHclamps to that month's last day (e.g. day 31 becomes 28 in February of a non-leap year), whileFIRST_DAY_OF_NEXT_MONTHrolls forward to the 1st of the month after the short month. - Non-working days: any non-working-day adjustment configured on the product/account is applied by the schedule engine after the dates are computed (e.g. a date falling on a weekend may roll to the next working day).
The change runs through the standard schedule-edit validation. On success the endpoint returns 200 with no body; retrieve GET /loans/{loanId}/schedule to see the updated due dates. Supported for dynamic mortgage and interest-only mortgage products.
Request
Responses
- 200
- 400
- 404
- 422
Repayment due dates shifted successfully. No response body; fetch the loan schedule to see the updated dates.
Malformed request body.
Loan account not found for the given identifier.
No repayment exists for the given encoded key, the loan account's product type does not support due-date shifting, or the resulting schedule failed schedule-edit validation (for example, editing a past or paid installment).