Initiate Loan Refinance
Overview​
API endpoint to initiate loan refinance transactions, replacing existing loans with new loans under different terms, typically to obtain better interest rates, extend repayment periods, or access additional funds.
Command​
InitiateLoanRefinanceCommand
Endpoint​
POST /api/bpm/cmd
Request Headers​
Authorization: Bearer {access_token}
Content-Type: application/json
X-Tenant-ID: {tenant_id}
Request Body​
{
"existingLoanId": "string",
"newLoanProductId": "string",
"newLoanAmount": "decimal",
"newInterestRate": "decimal",
"newTermMonths": "integer",
"refinanceReason": "string",
"effectiveDate": "datetime",
"cashOutAmount": "decimal",
"notes": "string"
}
Request Parameters​
| Parameter | Type | Required | Description |
|---|---|---|---|
| existingLoanId | string | Yes | ID of the loan being refinanced |
| newLoanProductId | string | Yes | Product ID for the new refinanced loan |
| newLoanAmount | decimal | Yes | Principal amount of new loan |
| newInterestRate | decimal | Yes | Interest rate for new loan |
| newTermMonths | integer | Yes | Term in months for new loan |
| refinanceReason | string | Yes | Reason for refinancing |
| effectiveDate | datetime | Yes | Date when refinance takes effect |
| cashOutAmount | decimal | No | Additional cash disbursed to borrower |
| notes | string | No | Additional notes or comments |
Response​
Success Response (200 OK)
{
"success": true,
"message": "Loan refinance initiated successfully",
"data": {
"transactionId": "string",
"existingLoanId": "string",
"newLoanId": "string",
"existingBalance": "decimal",
"newLoanAmount": "decimal",
"cashOutAmount": "decimal",
"closingCosts": "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": "Existing loan not found"
}
422 Unprocessable Entity
{
"success": false,
"message": "Loan refinance validation failed",
"errors": [
"Loan does not qualify for refinance",
"Insufficient collateral for new loan amount"
]
}
Business Rules​
- Existing loan must be in good standing
- Borrower must meet underwriting criteria for new loan
- New loan pays off existing loan in full
- Collateral must be adequate for new loan amount
- All fees and closing costs must be accounted for
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({
existingLoanId: 'LN-12345',
newLoanProductId: 'PROD-678',
newLoanAmount: 50000.00,
newInterestRate: 4.5,
newTermMonths: 180,
refinanceReason: 'Lower interest rate',
effectiveDate: new Date(Date.now() + 30 * 24 * 60 * 60 * 1000).toISOString(),
cashOutAmount: 0,
notes: 'Rate reduction refinance - no cash out'
})
});
const result = await response.json();
console.log('Refinance details:', result);
Related Commands​
CalculateRefinanceAmountQuery- Calculate refinance detailsInitiateLoanPayOffCommand- Pay off without refinancingCreateLoanCommand- Create the new refinanced loanCloseLoanCommand- Close the old loan
Notes​
- Refinance typically requires new underwriting and approval
- Existing loan is closed when new loan is funded
- Collateral liens may need to be updated or re-recorded
- Credit bureau reporting reflects loan payoff and new loan
- Refinance may include cash-out or be rate/term only
Product Documentation​
For business process and technical flow details, see: