Onerway
POST

Chargeback alert webhook

Webhook URL
Receive chargeback alerts at the configured chargeback alert webhook URL. Return the received predisputeId unchanged to acknowledge the notification.

Signature coverage

Request signing guide

All payload fields are included in the signature except:

  • sign(legacy signature value)

Webhook payload fields

notifyType
Notification type, fixed to PRE_DISPUTE.
Allowed values
PRE_DISPUTE
Chargeback alert.
transactionId
Onerway alert ID, identical to predisputeId. This is not the original payment transaction ID.
merchantNo
Merchant number assigned by Onerway.
predisputeId
Unique ID of the chargeback alert. Return this value unchanged in the acknowledgement body.
timeZone
Time zone offset reported with the notification. This field may be absent.
service
Alert service. Returned when service visibility is enabled for the merchant and the value is available; otherwise it may be absent.
type
Alert type. Returned when type visibility is enabled for the merchant and the value is available; otherwise it may be absent.
createdTime
Time when the alert was raised, in yyyy-MM-dd HH:mm:ss format.
receivedTime
Time when the alert was successfully matched to a transaction, in yyyy-MM-dd HH:mm:ss format. This field may be absent if no matching time is available.
amount
Alert refund amount in currency, expressed as a decimal string with two decimal places. Uses the remaining refundable amount when available; otherwise uses the alert amount. It may differ from orderAmount.
currency
Currency of amount: the currency of the alert refund amount when available, otherwise the alert currency.
source
Party that raised the alert. This field may be absent when unavailable.
reasonCode
Reason code for the alert. This field may be absent when unavailable.
txnId
Original Onerway payment transaction ID. This field may be absent when the original transaction details are unavailable.
merchantTxnId
Merchant order number of the original payment. This field may be absent when the original transaction details are unavailable.
txnTime
Creation time of the original transaction, in yyyy-MM-dd HH:mm:ss format. This field may be absent when the original transaction details are unavailable.
orderAmount
Original order amount in orderCurrency, expressed as a decimal string with two decimal places. This field may be absent when the original transaction details are unavailable.
orderCurrency
Currency of the original order amount. This field may be absent when the original transaction details are unavailable.
paymentMethod
Payment method or card brand of the original transaction. This field may be absent when the original transaction details are unavailable.
eci
Electronic Commerce Indicator (ECI) of the original transaction. This field may be absent when the original transaction details are unavailable.
website
Website where the cardholder made the original transaction. This field may be absent when the original transaction details are unavailable.
email
Email address associated with the original transaction. This field may be absent when the original transaction details are unavailable.
chargebackStatus
Whether the matched transaction has a chargeback. This field may be absent when unavailable; it is not a chargeback lifecycle status.
Allowed values
0
No chargeback.
1
Has a chargeback.
refundStatus
Refund status of the matched transaction. This field may be absent when unavailable.
Allowed values
0
Not refunded.
1
Fully refunded.
2
Partially refunded.
sign
Signature included in the notification body. This field is excluded from signature calculation. Verify the notification using the X-Rh-Signature header as described in the signing guide.

Webhook example

{
  "notifyType": "PRE_DISPUTE",
  "transactionId": "example_predispute",
  "merchantNo": "example_merchant",
  "predisputeId": "example_predispute",
  "type": "customerdispute_alert",
  "createdTime": "2026-09-17 22:59:37",
  "receivedTime": "2026-09-17 22:59:40",
  "amount": "10.00",
  "currency": "USD",
  "txnId": "example_payment",
  "merchantTxnId": "example_order",
  "txnTime": "2026-07-27 18:10:59",
  "orderAmount": "11.00",
  "orderCurrency": "USD",
  "paymentMethod": "VISA",
  "chargebackStatus": "0",
  "refundStatus": "2",
  "eci": "5",
  "website": "example.com",
  "email": "buyer@example.com",
  "sign": "replace_with_signature"
}

Acknowledgement

After accepting the notification, return HTTP 200 with the received predisputeId unchanged in the response body. Do not add JSON quotes, whitespace, or a newline. An empty response or a different ID is not accepted. On failure or an invalid response, Onerway retries every 30 minutes, up to 2 times.

Response body example

example_predispute