Skip to content

Refund Webhook

Asynchronous refund status notification.

Endpoint

POST /merchant-callback-url

Authentication

Merchant Credential. See Authentication.

Important Notes

WARNING

You must respond within 3 seconds. Responses slower than 3s are treated as callback failures!

Request headers

NameInTypeRequiredDescriptionExample
Content-TypeheaderstringYesapplication/json
X-NonceheaderstringYesa9f3c1d47e8b9a2c4d1f9e8a7b6c5d4e
X-Merchant-IdheaderstringYes2492265300
X-TimestampheaderstringYes1638123456
DigestheaderstringYesSHA-256=Jr9cX0nM6yT7uF9GQ5G8ZC5M8vRZrQZP9+VbQ8Z8z0Q=
AuthorizationheaderstringYesSignature keyId="m123456",alg="ES256",headers="(request-target) x-timestamp x-nonce digest",signature="MEUCIQD8VxkzR7q5hF3k9dY0v6mKk7K0Nq9nYw+7Ck8LJr9mYAIgC5VQ7J0Z9YqL5F8Wc6E2Yw5qf1z8bYyYcR9kX8pY="

Request body

FieldTypeRequiredDescription
eventstringYesEvent
mchOrderNostringYesMerchant order number
platOrderNostringYesPlatform order number
orderStatusstringYesOrder status (enum=PENDING, SUCCESS, FAILED, REFUND)
amountnumberYesOrder amount — Amount at order creation
payAmountnumberYesActual paid amount
msgstringYesMessage — Error message
payTimeintegerYesPayment time — Unix timestamp (seconds)
e2eIdstringYesBank transaction ID — Returned when the order succeeds or is refunded
payerNamestringYesReturned when the order succeeds
payerDocumentstringYesReturned when the order succeeds
refundAmountnumberYesRefund amount for this request; take care with multiple refunds
refundIdstringYesRefund ID
originE2eIdstringYesOriginal E2E ID of the refunded order
refundTotalAmountnumberYesTotal refunded amount
refundSnstringYesRefund merchant ID
statusstringYesRefund status (enum=PENDING, SUCCESS, FAILED)

Request example

json
{
  "event": "PIX_QRCODE_REFUND",
  "mchOrderNo": "20220721144249483",
  "platOrderNo": "3KITxA1dEXhZ2IRXvwck",
  "orderStatus": "REFUND",
  "amount": 10000,
  "payAmount": 10000,
  "msg": "退款成功",
  "payTime": 1658387041,
  "e2eId": "D10316968202309101937aZOHAzdi39",
  "payerName": "Name",
  "payerDocument": "1234567890",
  "refundAmount": 10000,
  "refundTotalAmount": 10000,
  "refundId": "311",
  "originE2eId": "E00416968202309101937aZOHAzv6vkT",
  "status": "SUCCESS"
}

Response

HTTP 200 — Success