Onerway
POST

Refund result webhook

Webhook URL
Receive refund results at the original transaction’s notifyUrl. Do not use the example to determine whether a field is always returned or can be null. See Webhooks for handling and Create or cancel refund for requests.

Signature coverage

Request signing guide

All payload fields are included in the signature except:

Webhook payload fields

notifyType
Notification category.
transactionId
Onerway refund transaction number. Return this value unchanged when acknowledging the notification.
paymentId
Payment Intent ID associated with this refund.
txnType
Transaction operation type. REFUND identifies a refund result.
merchantNo
Merchant number assigned by Onerway.
merchantTxnId
Merchant transaction number for the refund. Onerway generates it if omitted from the refund request.
originMerchantTxnId
Merchant transaction number of the original payment.
responseTime
Time when Onerway generated the notification result, in yyyy-MM-dd HH:mm:ss format.
txnTime
Transaction time recorded in the notification, in yyyy-MM-dd HH:mm:ss format.
txnTimeZone
Time zone offset for the transaction times in the notification.
orderAmount
Transaction amount reported in this notification, expressed in orderCurrency as a decimal string.
orderCurrency
Currency of orderAmount.
status
Refund processing result. S means success and F means failure.
cardBinCountry
Country or region associated with the card BIN.
reason
Result details encoded as a JSON string containing respCode and respMsg. When verifying the signature, use the field value as received, without parsing or reserializing its JSON content.
sign
Legacy body signature, excluded from the signature input. It uses only the first enabled key. Verify the notification using the signature in the X-Rh-Signature header.
paymentMethod
Payment method or card brand reported in the notification. Exclude this field when calculating the signature.
walletTypeName
Wallet type reported in the notification. Exclude this field when calculating the signature.
channelRequestId
Payment channel request identifier.
paymentMethodDetails
Payment method details encoded as a JSON string. When verifying the signature, use the field value as received, without parsing or reserializing its JSON content.

Webhook example

{
  "notifyType": "TXN",
  "transactionId": "demo_transactionId",
  "paymentId": "demo_paymentId",
  "txnType": "REFUND",
  "merchantNo": "demo_merchantNo",
  "merchantTxnId": "demo_merchantTxnId",
  "originMerchantTxnId": "demo_originMerchantTxnId",
  "responseTime": "2026-09-14 00:05:29",
  "txnTime": "2026-09-14 00:05:28",
  "txnTimeZone": "+08:00",
  "orderAmount": "13.36",
  "orderCurrency": "USD",
  "status": "S",
  "cardBinCountry": "US",
  "reason": "{\"respCode\": \"20000\", \"respMsg\": \"Success\"}",
  "sign": "replace_with_signature",
  "paymentMethod": "VISA",
  "walletTypeName": "ApplePay",
  "channelRequestId": "demo_channelRequestId",
  "paymentMethodDetails": "{\"card\": {\"checks\": null, \"holderName\": null, \"year\": null, \"month\": null, \"cardType\": \"ApplePay\", \"productCategory\": null, \"issuer\": null, \"cardBinCountry\": \"US\", \"authorizationCode\": null, \"cardNumber\": \"[REDACTED]\"}}"
}

Acknowledgement

After receiving and accepting the notification, return HTTP 200 with Content-Type: text/plain and the received transactionId unchanged in the response body. Without a successful response, Onerway retries at 30-minute intervals, up to 3 times.

Response body example

demo_transactionId