Webhook Event Notification

Webhook Event Notification

Brief Description

  • Webhook Event Notification
  • When a relevant business event occurs, the system will push an event notification to your configured callback URL.

Request URL

  • open/api/card/setWebhook

Request Method

  • POST

Request Headers

Header NameDescription
Content-Typeapplication/json

Top-Level Structure

FieldTypeDescription
eventIdstringUnique event ID (UUID)
eventTypestringEvent type, refer to the Event Type List below
datastringEvent data JSON string (serialized data object; parse with JSON.parse before use)
signstringSignature used to verify the message source: HmacSHA256(data, secret)

Signature Verification

Compute the HmacSHA256 hash of the raw data string using your merchant secret (secret). If the result matches the sign field, the verification passes.

sign = HmacSHA256(data_string, merchant_secret)

Note: data is the raw JSON string representation of the event data object. Both signature verification and parsing must be based on this raw string.


Event Type List

eventTypeDescription
card.createVirtual card creation result
card.rechargeVirtual card recharge result
card.withdrawVirtual card withdrawal / refund result
card.cancelVirtual card cancellation result
card.activationPhysical card activation result

1. card.create — Virtual Card Creation Result

Virtual card creation is an asynchronous operation. The creation result is notified via this Webhook.

Data Field Description
FieldTypeDescription
cardIdstringVirtual card ID
amountnumberCard issuance amount (in cents, e.g., 1000 = $10.00)
orderNostringMerchant custom transaction order number
statusstringCreation result: SUCCESS / FAIL
Callback Example
{
  "eventId": "b2c3d4e5-2222-3333-4444-bbccddeeff00",
  "eventType": "card.create",
  "data": "{\"cardId\":\"XXXXX\",\"amount\":1000,\"orderNo\":\"XXX\",\"status\":\"SUCCESS\"}",
  "sign": "7f4c2d9b1a3e8f0c5XXXc3d9b2a0e5f1c8d3b7a4e2f6c0d9b1a5e3f7"
}

2. card.recharge — Virtual Card Recharge Result

Data Field Description
FieldTypeDescription
cardIdstringVirtual card ID
orderNostringMerchant custom transaction order number
amountnumberRecharge amount for this transaction (in cents, e.g., 1000 = $10.00)
statusstringRecharge result: SUCCESS / FAIL
Callback Example
{
  "eventId": "c3d4e5f6-3333-4444-5555-ccddeeff0011",
  "eventType": "card.recharge",
  "data": "{\"cardId\":\"XXXXX\",\"orderNo\":\"XXX\",\"amount\":1000,\"status\":\"SUCCESS\"}",
  "sign": "2a0e5f1c8d3b7a4e9f6c2XXX8b2a6e0f3c9d1b4a7e2f5c8d0b3a6"
}

3. card.withdraw — Virtual Card Withdrawal / Refund Result

Data Field Description
FieldTypeDescription
cardIdstringVirtual card ID
orderNostringMerchant custom transaction order number
amountnumberWithdrawal amount for this transaction (in cents, e.g., 1000 = $10.00)
statusstringWithdrawal result: SUCCESS / FAIL
Callback Example
{
  "eventId": "d4e5f6a7-4444-5555-6666-ddeeff001122",
  "eventType": "card.withdraw",
  "data": "{\"cardId\":\"XXXX\",\"orderNo\":\"XXXXX\",\"amount\":1000,\"status\":\"SUCCESS\"}",
  "sign": "9d1b4a7e2f5c8d0b3a6e1f4c7XXXX4b7a2e5f9c0d3b6a1e4f7c2d5"
}

4. card.cancel — Virtual Card Cancellation Result

Data Field Description
FieldTypeDescription
cardIdstringVirtual card ID
orderNostringMerchant custom transaction order number
statusstringCancellation result: SUCCESS
Callback Example
{
  "eventId": "e5f6a7b8-5555-6666-7777-eeff00112233",
  "eventType": "card.cancel",
  "data": "{\"cardId\":\"XXXX\",\"orderNo\":\"XXXXX\",\"status\":\"SUCCESS\"}",
  "sign": "1e4f7c2d5b0a3e8f1c4d7b2XXXXX4e7f2c5d8b0a3e6f1c4d7b2a5e8"
}

5. card.activation — Physical Card Activation Result

After a physical card is successfully bound, the system automatically completes the PIN setting, activation code retrieval, and activation workflow. The activation result is notified via this Webhook.

Data Field Description
FieldTypeDescription
cardIdstringVirtual card ID
orderNostringMerchant custom transaction order number
statusstringActivation result: SUCCESS / FAIL
Callback Example
{
  "eventId": "f6a7b8c9-6666-7777-8888-ff0011223344",
  "eventType": "card.activation",
  "data": "{\"cardId\":\"XXXXX\",\"orderNo\":\"XXXX\",\"status\":\"SUCCESS\"}",
  "sign": "3c9d1b4a7e2f5c8d0b3a6e1f4c7d2b5XXXXe5f9c0d3b6a1e4f7c2d"
}

Notes

  • The data field is a JSON-serialized string of the event data object. It must be deserialized (e.g., JSON.parse) before usage upon receipt.
  • All monetary amounts are uniformly measured in cents (e.g., 1000 = $10.00).


Did this page help you?