Nhảy tới nội dung

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

ParameterTypeRequiredDescription
requestIdStringUnique webhook request ID generated by the lender.
fundiinRequestIdStringRequest ID previously passed by Fundiin to the lender.
lenderCodeStringLender code assigned by Fundiin.
requestingDatetimeTimestampRequest timestamp. Format: yyyy-MM-ddTHH:mm:ss+0700.
lenderApplicationIdStringLoan application ID generated by the lender.
contractNumberStringContract number.
loanJsonObjectLatest loan summary. See Data of loan.
installmentsJsonArrayLatest installment schedule. See Data of installments.

Data of loan

AttributeTypeRequiredDescription
loanStatusStringLatest loan status. See Loan Status.
disbursedAmountNumberTotal disbursed amount in VND.
paidAmountNumberTotal paid amount in VND.
outstandingAmountNumberRemaining outstanding amount in VND.
overdueAmountNumberCurrent overdue amount in VND.
outstandingPrincipalNumberTotal remaining principal in VND.
outstandingDuePrincipalNumberPrincipal amount currently due in VND.
outstandingDueInterestNumberInterest or service fee amount currently due in VND.
outstandingDuePenaltyNumberPenalty amount currently due in VND.
outstandingDueAmountNumberTotal amount currently due in VND, including due principal, interest or service fee, and penalty.
nextDueDateDateNext due date. Format: yyyy-MM-dd.
lastUpdatedDatetimeTimestampLatest update time from the lender. Format: yyyy-MM-ddTHH:mm:ss+0700.

Loan Status

CodeDescription
ACTIVELoan is active.
DISBURSEDLoan has been disbursed.
PAIDLoan is fully paid.
OVERDUELoan has overdue installments.
TERMINATEDLoan has reached final settlement.
CANCELLEDLoan has been cancelled.

Data of installments

AttributeTypeRequiredDescription
installmentIdStringInstallment ID generated by the lender.
installmentNumberNumberInstallment sequence number.
dueDateDateDue date. Format: yyyy-MM-dd.
amountNumberInstallment amount in VND.
paidAmountNumberPaid amount for this installment in VND.
remainingAmountNumberRemaining amount for this installment in VND.
originalPrincipalNumberOriginal principal of this installment in VND.
originalServiceFeeNumberOriginal service fee or interest of this installment in VND.
originalPenaltyNumberOriginal penalty of this installment in VND.
paidPrincipalNumberPrincipal amount paid for this installment in VND.
paidServiceFeeNumberService fee or interest amount paid for this installment in VND.
paidPenaltyNumberPenalty amount paid for this installment in VND.
duePrincipalNumberPrincipal amount still due for this installment in VND.
dueServiceFeeNumberService fee or interest amount still due for this installment in VND.
duePenaltyNumberPenalty amount still due for this installment in VND.
statusStringPENDING, PARTIALLY_PAID, PAID, OVERDUE, CANCELLED.
paidDatetimeTimestampPayment 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.