Skip to main content

Refund Transaction

Process

  • MERCHANT calls refund API when customer requests return, service cancellation, etc.
  • This is an asynchronous flow: Baokim verifies conditions and returns acknowledgment (code 100). Final refund result is notified via webhook transaction notification with operation = QR_REFUND_TRANS.
  • Allows partial refund; total refund amount cannot exceed original transaction amount.

API Information

Method: POST

URL: /b2b/core/api/ext/mm/qr/refund

Security: Bearer JWT (Authorization header)

Request

Main Parameters

No.Field NameData TypeRequiredDescription
1request_idString(100)Unique ID for each Request from MERCHANT to Baokim
2request_timeString(20)Request send time. Format: YYYY-MM-DD H:i:s
3master_merchant_codeString(50)Unique identifier for MASTER MERCHANT
4sub_merchant_codeString(50)Unique identifier for SUB MERCHANT
5transaction_idIntegerOriginal payment transaction code at Baokim, which is the transaction.id field returned by Baokim in the transaction notification webhook
6amountIntegerRefund amount (VND, integer). Allows partial refund; cannot exceed remaining refundable amount of original transaction
7descriptionString(100)Refund reason/description

Request Example

{
"request_id": "MERCHANT050015588RF001",
"request_time": "2026-06-10 16:20:00",
"master_merchant_code": "MASTERMERCHANT",
"sub_merchant_code": "SUBMERCHANT",
"transaction_id": 5567261,
"amount": 100000,
"description": "Khach hang yeu cau tra hang"
}

Response

Main Parameters

No.Field NameData TypeRequiredDescription
1codeNumber(3)Baokim error code
2messageString(200)Baokim error message
3dataObjectData returned by Baokim

Data Information

No.Field NameData TypeRequiredDescription
1refund_idIntegerRefund request code at Baokim, used for matching when receiving webhook
2transaction_idIntegerOriginal payment transaction code
3amountIntegerAccepted refund amount

Response Example

{
"code": 100,
"message": "Refund request accepted successfully",
"data": {
"refund_id": 990012,
"transaction_id": 5567261,
"amount": 100000
}
}

Note: The response of this API only confirms that Baokim has accepted the refund request. Final refund result (success/failure) is notified via webhook transaction notification with operation = QR_REFUND_TRANS.

Error Codes

Error CodeDescription
100Request accepted successfully
11Failed
101Baokim system error
103Signature verification error
104JWT authentication error
422Invalid data (incorrect format, missing required fields)
504Timeout
710Sub Merchant does not exist
711Master Merchant does not exist
712Sub Merchant is inactive
713Master Merchant is inactive
714Sub Merchant does not belong to Master Merchant
725Original transaction does not exist
726Original transaction does not meet refund conditions
727Original transaction status is invalid
728Refund amount exceeds refundable amount of original transaction