Skip to main content

Webhook Transaction Result Notification

Process

Description:

  • Baokim sends a webhook to Merchant when each transaction is approved or cancelled for deferred payment.
  • Merchant needs to build a webhook API to receive this notification.
  • Baokim signs the request data sent to Merchant using SHA256withRSA.

API Information

Method: POST

URL: Merchant provided

Header:

Content-Type: application/json
Signature: $signature

Request

(Parameters sent by Baokim to Merchant)

Main Parameters Table

No.Field NameData TypeRequiredDescription
1request_idString(100)Unique ID corresponding to each Request from MERCHANT to Baokim
2request_timeString(20)Request sent time. Format: YYYY-MM-DD H:i:s
3merchant_codeString(50)Unique identifier for partner: MERCHANT
4operationStringOperation type: PAYMENT or REFUND
5dataObjectDetailed transaction information

Data Information

No.Field NameData TypeRequiredDescription
1order_idNumberBaokim order code
2mrc_order_idString(50)Merchant order code
3merchant_codeString(50)Merchant identifier
4customer_nameString(200)Full customer name, no accents, with spaces
5customer_phoneString(10)Customer phone number
6customer_emailString(255)Customer email
7customer_addressString(500)Customer address
8package_codeString(255)Loan package code
9nameString(20)Loan package name
10periodNumberTerm (1, 3, 6, 9, 12 months)
11min_amountNumberMinimum amount to apply for this loan package
12max_amountNumberMaximum amount to apply for this loan package
13down_payment_percentNumber% of down payment amount
14down_payment_amountNumberDown payment amount
15original_amountNumberOrder amount
16user_feeNumberFee buyer bears
17merchant_feeNumberMerchant fee
18total_paylater_amountNumberTotal deferred payment amount (fees included)
19payment_per_periodNumberPayment amount per period
20total_amountNumberTotal amount user needs to pay (down payment + deferred payment)
21difference_amountNumberAmount difference compared to straight payment
22document_requiredString(4)Required documents (CCCD/CMND)
23provider_codeString(20)Finance organization name
24descriptionString(255)Order description
25url_successString(255)URL redirect when loan approval is successful
26url_failString(255)URL redirect when loan approval fails
27statusNumberTransaction status
28extensionObjectExtended information (product list)
29created_atDatetimeOrder creation time
30updated_atDatetimeOrder update time

Extension Information

No.Field NameData TypeRequiredDescription
1itemsArrayList of bank and loan package information objects

Items Information

No.Field NameData TypeRequiredDescription
1item_idString(50)Product ID
2item_codeString(50)Product code
3item_nameString(255)Product name
4item_amountNumberProduct price
5quantityNumberProduct quantity
6urlString(500)Product link

Request Example

{
"request_id": "MERCHANT050015588AXE012",
"request_time": "2020-08-11 14:41:00",
"merchant_code": "MERCHANT",
"operation": "PAYMENT/REFUND",
"data": {
"order_id": 1870436,
"mrc_order_id": "VLAD_1753867524",
"merchant_code": "MERCHANT",
"customer_name": "Nguyễn Trung Quân",
"customer_phone": "0394827170",
"customer_email": "[email protected]",
"customer_address": "40, ngách 16/255 đường Láng, Đống Đa, Hà Nội",
"package_code": "homecredit_1month",
"name": "Home Credit 1 month",
"period": 1,
"min_amount": 1000000,
"max_amount": 500000,
"down_payment_percent": 20,
"down_payment_amount": 2000000,
"original_amount": 10000000,
"user_fee": 0,
"merchant_fee": 100000,
"total_paylater_amount": 8000000,
"payment_per_period": 8000000,
"total_amount": 10100000,
"difference_amount": 100000,
"document_required": "CCCD",
"provider_code": "HOMECREDIT",
"description": "Deferred payment order",
"url_success": "https://example.com/success",
"url_fail": "https://example.com/fail",
"status": 1,
"extension": {
"items": [
{
"item_id": 123456,
"item_code": "AEIQ_4562",
"item_name": "Máy tính xách tay ABC",
"item_amount": 10000000,
"quantity": 1,
"url": "https://example.com/product-detail"
}
]
},
"created_at": "2020-08-11 14:41:00",
"updated_at": "2020-08-11 15:41:00"
}
}

Response

(Merchant returns to Baokim)

Main Parameters Table

No.Field NameData TypeRequiredDescription
1codeString(3)Confirmation received (0 = success)
2messageString(20)Response message
3dataString(20)Data returned if any

Response Example

{
"code": 0,
"message": "Success",
"data": null
}

Error Codes

Error CodeDescription
100Success
101System error
102Provider error
104JWT authentication error
105Invalid digital signature
106Order amount is insufficient for refund
107Order cannot be refunded
108Order cannot be cancelled
109Order does not exist
110Merchant order code already exists
422Validation error