Installment Schedule Notification
Use Case
Use this webhook to sync the latest loan summary and installment schedule from the lender so Fundiin can display repayment schedule and status to customers.
Request
POST /lender/open/notify/installment-schedule
See Multi Lender Webhooks Overview for base URL, request headers, HMAC signature, common response codes, retry policy, and replay protection.
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
| requestId | Unique webhook request ID generated by the lender. | ||
| fundiinRequestId | Request ID previously passed by Fundiin to the lender. | ||
| lenderCode | Lender code assigned by Fundiin. | ||
| requestingDatetime | Request timestamp. Format: yyyy-MM-ddTHH:mm:ss+0700. | ||
| lenderApplicationId | Loan application ID generated by the lender. | ||
| contractNumber | Contract number. | ||
| loan | Latest loan summary. See Data of loan. | ||
| installments | Latest installment schedule. See Data of installments. |
Data of loan
| Attribute | Type | Required | Description |
|---|---|---|---|
| loanStatus | Latest loan status. See Loan Status. | ||
| disbursedAmount | Total disbursed amount in VND. | ||
| paidAmount | Total paid amount in VND. | ||
| outstandingAmount | Remaining outstanding amount in VND. | ||
| overdueAmount | Current overdue amount in VND. | ||
| outstandingPrincipal | Total remaining principal in VND. | ||
| outstandingDuePrincipal | Principal amount currently due in VND. | ||
| outstandingDueInterest | Interest or service fee amount currently due in VND. | ||
| outstandingDuePenalty | Penalty amount currently due in VND. | ||
| outstandingDueAmount | Total amount currently due in VND, including due principal, interest or service fee, and penalty. | ||
| nextDueDate | Next due date. Format: yyyy-MM-dd. | ||
| lastUpdatedDatetime | Latest update time from the lender. Format: yyyy-MM-ddTHH:mm:ss+0700. |
Loan Status
| Code | Description |
|---|---|
| ACTIVE | Loan is active. |
| DISBURSED | Loan has been disbursed. |
| PAID | Loan is fully paid. |
| OVERDUE | Loan has overdue installments. |
| TERMINATED | Loan has reached final settlement. |
| CANCELLED | Loan has been cancelled. |
Data of installments
| Attribute | Type | Required | Description |
|---|---|---|---|
| installmentId | Installment ID generated by the lender. | ||
| installmentNumber | Installment sequence number. | ||
| dueDate | Due date. Format: yyyy-MM-dd. | ||
| amount | Installment amount in VND. | ||
| paidAmount | Paid amount for this installment in VND. | ||
| remainingAmount | Remaining amount for this installment in VND. | ||
| originalPrincipal | Original principal of this installment in VND. | ||
| originalServiceFee | Original service fee or interest of this installment in VND. | ||
| originalPenalty | Original penalty of this installment in VND. | ||
| paidPrincipal | Principal amount paid for this installment in VND. | ||
| paidServiceFee | Service fee or interest amount paid for this installment in VND. | ||
| paidPenalty | Penalty amount paid for this installment in VND. | ||
| duePrincipal | Principal amount still due for this installment in VND. | ||
| dueServiceFee | Service fee or interest amount still due for this installment in VND. | ||
| duePenalty | Penalty amount still due for this installment in VND. | ||
| status | PENDING, PARTIALLY_PAID, PAID, OVERDUE, CANCELLED. | ||
| paidDatetime | Payment completion time. Format: yyyy-MM-ddTHH:mm:ss+0700. |
Example Request
{
"requestId": "WH_REQ_202505300003",
"fundiinRequestId": "REQ1234567890",
"lenderCode": "LENDER_A",
"requestingDatetime": "2025-05-30T10:15:00+0700",
"lenderApplicationId": "LA20250530001",
"contractNumber": "CNTR20250530001",
"loan": {
"loanStatus": "ACTIVE",
"disbursedAmount": 1041000,
"paidAmount": 354000,
"outstandingAmount": 1000000,
"overdueAmount": 0,
"outstandingPrincipal": 800000,
"outstandingDuePrincipal": 800000,
"outstandingDuePenalty": 0,
"outstandingDueAmount": 1000000,
"outstandingDueInterest": 200000,
"nextDueDate": "2025-06-30",
"lastUpdatedDatetime": "2025-05-30T10:10:00+0700"
},
"installments": [
{
"installmentId": "INS_001",
"installmentNumber": 1,
"dueDate": "2025-05-30",
"amount": 354000,
"paidAmount": 354000,
"remainingAmount": 0,
"originalPrincipal": 241000,
"originalServiceFee": 113000,
"paidPrincipal": 241000,
"paidServiceFee": 113000,
"duePrincipal": 0,
"dueServiceFee": 0,
"originalPenalty": 0,
"paidPenalty": 0,
"duePenalty": 0,
"status": "PAID",
"paidDatetime": "2025-05-30T10:10:00+0700"
},
{
"installmentId": "INS_002",
"installmentNumber": 2,
"dueDate": "2025-06-30",
"amount": 1000000,
"paidAmount": 0,
"remainingAmount": 1000000,
"originalPrincipal": 800000,
"originalServiceFee": 200000,
"paidPrincipal": 0,
"paidServiceFee": 0,
"duePrincipal": 800000,
"dueServiceFee": 200000,
"originalPenalty": 0,
"paidPenalty": 0,
"duePenalty": 0,
"status": "PENDING",
"paidDatetime": null
}
]
}
Response
See Common Response and Common Response Codes.