# Refund result webhook

> Reports a refund result (txnType=REFUND) to the original transaction’s notifyUrl.

```yaml
openapi: 3.1.0
info:
  title: Refund result webhook
  version: 1.0.0
  description: Reports a refund result (txnType=REFUND) to the original
    transaction’s notifyUrl.
webhooks:
  refund.result:
    post:
      summary: Refund result webhook
      description: Reports a refund result (txnType=REFUND) to the original
        transaction’s notifyUrl.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                notifyType:
                  type: string
                  description: Notification category.
                  x-onerway-signature-participation: included
                transactionId:
                  type: string
                  description: Onerway refund transaction number. Return this value unchanged when
                    acknowledging the notification.
                  x-onerway-signature-participation: included
                paymentId:
                  type: string
                  description: Payment Intent ID associated with this refund.
                  x-onerway-signature-participation: included
                txnType:
                  type: string
                  description: Transaction operation type. `REFUND` identifies a refund result.
                  x-onerway-signature-participation: included
                merchantNo:
                  type: string
                  description: Merchant number assigned by Onerway.
                  x-onerway-signature-participation: included
                merchantTxnId:
                  type: string
                  description: Merchant transaction number for the refund. Onerway generates it if
                    omitted from the refund request.
                  x-onerway-signature-participation: included
                originMerchantTxnId:
                  type: string
                  description: Merchant transaction number of the original payment.
                  x-onerway-signature-participation: included
                responseTime:
                  type: string
                  description: Time when Onerway generated the notification result, in `yyyy-MM-dd
                    HH:mm:ss` format.
                  x-onerway-signature-participation: included
                txnTime:
                  type: string
                  description: Transaction time recorded in the notification, in `yyyy-MM-dd
                    HH:mm:ss` format.
                  x-onerway-signature-participation: included
                txnTimeZone:
                  type: string
                  description: Time zone offset for the transaction times in the notification.
                  x-onerway-signature-participation: included
                orderAmount:
                  type: string
                  description: Transaction amount reported in this notification, expressed in
                    `orderCurrency` as a decimal string.
                  x-onerway-signature-participation: included
                orderCurrency:
                  type: string
                  description: Currency of `orderAmount`.
                  x-onerway-signature-participation: included
                status:
                  type: string
                  description: Refund processing result. `S` means success and `F` means failure.
                  x-onerway-signature-participation: included
                cardBinCountry:
                  type: string
                  description: Country or region associated with the card BIN.
                  x-onerway-signature-participation: included
                reason:
                  type: string
                  description: 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.
                  x-onerway-signature-participation: included
                sign:
                  type: string
                  description: 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.
                  x-onerway-signature-participation: signature-field
                paymentMethod:
                  type: string
                  description: Payment method or card brand reported in the notification. Exclude
                    this field when calculating the signature.
                  x-onerway-signature-participation: excluded
                walletTypeName:
                  type: string
                  description: Wallet type reported in the notification. Exclude this field when
                    calculating the signature.
                  x-onerway-signature-participation: excluded
                channelRequestId:
                  type: string
                  description: Payment channel request identifier.
                  x-onerway-signature-participation: included
                paymentMethodDetails:
                  type: string
                  description: 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.
                  x-onerway-signature-participation: included
            examples:
              refund_succeeded:
                summary: Successful refund
                value:
                  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]"}}'
      responses:
        "200":
          description: "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."
          content:
            text/plain:
              schema:
                type: string
              examples:
                return_transaction_id:
                  summary: Return transactionId
                  value: demo_transactionId
```
