Payment Notification
Use Case
You will receive a notification whenever a payment process is completed, successful or not. Fundiin will send a POST message to the Notification URL you provide us.
To ensure that a payment has been securely processed you will need to validate the signature on header using your secretKey and clientId in the same manner you compute the signature on header for a request.
Request Header
Request
| Parameter | Type | Required | Description | 
|---|---|---|---|
| merchantId | Fundiin provides MID as a unique identifier to each merchant. | ||
| referenceId | Order number for the charge transaction. | ||
| storeId | The store Id that is processing the payment | ||
| amount.value | The amount of the transaction | ||
| amount.currency | VND | ||
| downPaymentAmount.value | Amount the merchant must collect from the customer at the store Only returned when applicable and when paymentMethod = IN_STORE_PAYMENT. | ||
| downPaymentAmount.currency | Currency of downPaymentAmount. AlwaysVND. | ||
| paymentTransId | Payment Id is a number generated by Fundiin to identify a partner's transaction transaction. | ||
| paymentMethod | VISA/MASTER,ATM,WALLET,TRANSFER_VA,IN_STORE_PAYMENT.This parameter is returned if the value of the paymentStatus is SUCCESS | ||
| paymentChannel | APP,POS,WEB.This parameter is returned if the value of the paymentStatus is SUCCESS | ||
| paymentStatus | PENDING,SUCCESS,FAIL. | ||
| notificationType | PAYMENT_STATUS. | ||
| resultStatus | Result Status | ||
| resultMsg | The result message which contains information about the result. | ||
| customerId | Fundiin User ID in case user is logged in via Fundiin credentials. | ||
| paymentTime | Exact Time of Transaction Completion Format: YYYY-MM-DD hh:mm:ss | ||
Example Request
{
  "merchantId": "FundiinVN",
  "referenceId": "ORD123",
  "storeId": "STORE-01",
  "amount": {
    "value": 400000,
    "currency": "VND"
  },
  "downPaymentAmount": {
    "value": 100000,
    "currency": "VND"
  },
  "paymentTransId": "ORDCD31C0E1",
  "paymentMethod": "IN_STORE_PAYMENT",
  "paymentChannel": "POS",
  "paymentStatus": "SUCCESS",
  "notificationType": "PAYMENT_STATUS",
  "resultStatus": "SUCCESS",
  "resultMsg": "Approved",
  "customerId": "USER789",
  "paymentTime": "2025-08-08 10:12:45"
}
Response
204 No Content
Result Status & Messages
| Status code | Description | Action to take | 
|---|---|---|
| SUCCESS | The transaction was successfully. | Proceed with any necessary post-transaction activities. | 
| PENDING | The payment is in processing. | Wait for the payment processing to complete. You may periodically check the payment status. | 
| EXPIRED | The time period the customer had for completing the payment has expired. | Prompt the customer to restart the payment process or initiate a new payment. | 
| CANCELLED | The payment was cancelled before processing was completed. | Inform the customer that the payment was canceled and provide instructions for resuming or reinitiating the payment. | 
| USER_KYC_NOT_QUALIFIED | User is not qualified for KYC verification. | Advise the user to complete the necessary KYC verification or provide alternative payment methods if available. | 
| RISK_REJECT | The request is rejected because of risk control. | Review the transaction for potential risks and consider alternative payment methods or further risk assessment. | 
| ERROR_GENERAL | Declined due to general reasons other than the specific decline error codes provided. | Contact Fundiin support for assistance in identifying and resolving the general issue. |