Skip to main content

Payment Receipt Notification

Use Case

Use this webhook when the lender needs to notify Fundiin that a payment from the customer has been received successfully into the lender account. This webhook captures receipt only; it does not mean the amount has been allocated to debt.

Use Repayment Allocation Notification when the lender confirms how the received amount was allocated to installments. Send one payment transaction per request.

Integration: STANDARD only

Request

POST /lender/open/notify/payment-receipt

See Lender Notification API Overview for base URL, request headers, HMAC signature, common request fields, idempotency, and response format.

Request Body

The request body includes the Common Request Fields plus the fields below.

ParameterTypeRequiredDescription
contractNumberStringContract number.
lenderReferenceIdStringConditionalStable application or loan identifier generated by the lender. Required if available at time of receipt. See Loan Identification.
lenderTransactionCodeStringUnique transaction code generated by the lender. Used as the idempotency key for this payment event.
bankTransactionSequenceIdStringConditionalSequence ID assigned by the lender bank. Links this event to the corresponding Repayment Allocation notification.
receivedAmountNumberAmount received in VND.
receivedDatetimeTimestampDatetime the payment was received into the lender account. Format: yyyy-MM-ddTHH:mm:ss+0700.
receivedStatusStringSUCCESS or REVERSED.
reversalReasonStringConditionalRequired when receivedStatus = REVERSED.

Example Requests

Simple required fields only

{
"requestId": "WH_REQ_202507150001",
"fundiinApplicationId": "APP1234567890",
"lenderCode": "LENDER_A",
"requestingDatetime": "2025-07-15T09:05:00+0700",
"contractNumber": "CNTR20250530001",
"lenderTransactionCode": "LENDER_TXN_123456789",
"receivedAmount": 1054000,
"receivedDatetime": "2025-07-15T09:00:00+0700",
"receivedStatus": "SUCCESS"
}

Full request with conditional fields

{
"requestId": "WH_REQ_202507150001",
"fundiinApplicationId": "APP1234567890",
"lenderCode": "LENDER_A",
"requestingDatetime": "2025-07-15T09:05:00+0700",
"contractNumber": "CNTR20250530001",
"lenderReferenceId": "LN20250530001",
"lenderTransactionCode": "LENDER_TXN_123456789",
"bankTransactionSequenceId": "BANK_SEQ_202507150001",
"receivedAmount": 1054000,
"receivedDatetime": "2025-07-15T09:00:00+0700",
"receivedStatus": "SUCCESS",
"reversalReason": null
}

Reversed receipt

{
"requestId": "WH_REQ_202507150005",
"fundiinApplicationId": "APP1234567890",
"lenderCode": "LENDER_A",
"requestingDatetime": "2025-07-15T11:00:00+0700",
"contractNumber": "CNTR20250530001",
"lenderReferenceId": "LN20250530001",
"lenderTransactionCode": "LENDER_TXN_123456789",
"bankTransactionSequenceId": "BANK_SEQ_202507150001",
"receivedAmount": 1054000,
"receivedDatetime": "2025-07-15T09:00:00+0700",
"receivedStatus": "REVERSED",
"reversalReason": "DUPLICATE_TRANSFER"
}

Response

See Common Response.