Initiate Loan Reschedule
Overview
API endpoint to initiate loan reschedule transactions, modifying the payment schedule of existing loans to adjust payment amounts, extend repayment periods, or accommodate borrower financial difficulties while maintaining the loan relationship.
Command
InitiateLoanRescheduleCommand
Endpoint
POST /api/bpm/cmd
Request Headers
Authorization: Bearer {access_token}
Content-Type: application/json
X-Tenant-ID: {tenant_id}
Request Body
{
"loanId": "string",
"rescheduleReason": "string",
"newPaymentAmount": "decimal",
"newTermMonths": "integer",
"newInterestRate": "decimal",
"effectiveDate": "datetime",
"gracePeriodMonths": "integer",
"capitalizeArrearage": "boolean",
"notes": "string"
}
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| loanId | string | Yes | Unique identifier of the loan to reschedule |
| rescheduleReason | string | Yes | Reason for rescheduling (financial hardship, etc.) |
| newPaymentAmount | decimal | No | Modified payment amount (if applicable) |
| newTermMonths | integer | No | Extended term in months |
| newInterestRate | decimal | No | Modified interest rate (if applicable) |
| effectiveDate | datetime | Yes | Date when reschedule takes effect |
| gracePeriodMonths | integer | No | Grace period before payments resume |
| capitalizeArrearage | boolean | No | Whether to add arrears to principal |
| notes | string | No | Additional notes or comments |
Response
Success Response (200 OK)
{
"success": true,
"message": "Loan reschedule initiated successfully",
"data": {
"transactionId": "string",
"loanId": "string",
"previousPaymentAmount": "decimal",
"newPaymentAmount": "decimal",
"previousMaturityDate": "datetime",
"newMaturityDate": "datetime",
"capitalizedAmount": "decimal",
"newOutstandingBalance": "decimal",
"effectiveDate": "datetime",
"status": "string"
}
}
Error Responses
400 Bad Request
{
"success": false,
"message": "Invalid request parameters",
"errors": [
{
"field": "string",
"message": "string"
}
]
}
404 Not Found
{
"success": false,
"message": "Loan not found"
}
422 Unprocessable Entity
{
"success": false,
"message": "Loan reschedule validation failed",
"errors": [
"Loan status does not permit rescheduling",
"Insufficient authorization for reschedule terms"
]
}
Business Rules
- Loan reschedule requires appropriate approval authority
- Rescheduling may affect loan classification and provisioning
- Arrearages can be capitalized and added to principal
- Grace periods must comply with regulatory requirements
- Complete documentation of hardship or restructuring reason required
Code Example
JavaScript Example
const response = await fetch('https://api.example.com/api/bpm/cmd', {
method: 'POST',
headers: {
'Authorization': `Bearer ${accessToken}`,
'Content-Type': 'application/json',
'X-Tenant-ID': tenantId
},
body: JSON.stringify({
loanId: 'LN-12345',
rescheduleReason: 'Temporary financial hardship - job loss',
newPaymentAmount: 750.00,
newTermMonths: 84,
effectiveDate: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
gracePeriodMonths: 3,
capitalizeArrearage: true,
notes: '3-month payment deferral with term extension'
})
});
const result = await response.json();
console.log('Reschedule details:', result);
Related Commands
GenerateLoanSchedulesCommand- Generate new payment scheduleCalculateRescheduleImpactQuery- Calculate financial impact before executingApproveTransactionCommand- Approve reschedule transactionReverseLoanTransactionCommand- Reverse reschedule if needed
Notes
- Rescheduling may be classified as troubled debt restructuring (TDR)
- Regulatory reporting requirements apply to restructured loans
- Credit bureau reporting must reflect modification status
- Rescheduling should be documented with hardship evidence
- Multiple reschedules may indicate deeper credit problems requiring different intervention