Event types
Common structure
All Webhooks use the same request structure:PAYMENT_NOTIFICATION
Sent when the payment completes or fails. The notification body always usesPAYMENT_NOTIFICATION as its eventType. The result structure is identical to the data returned by Order Inquiry. Refer to the API Reference for the complete response structure.
Subscription payment events
For Subscription payments, useresult.subscriptionInfo.subscriptionEvent to identify the business purpose of the payment notification:
These are values of
subscriptionEvent; the notification’s eventType remains PAYMENT_NOTIFICATION.
REFUND_NOTIFICATION
Sent after the refund is completed, and delivered to therefundNotifyUrl specified when creating the refund.
The notification body always uses REFUND_NOTIFICATION as its eventType. The result structure is identical to the data returned by Refund Inquiry. Refer to the API Reference for the complete response structure.
CHARGEBACK_NOTIFICATION
Sent when a Chargeback is created or its status changes. Waffo delivers the notification to thechargebackNotifyUrl configured in the Portal.
The notification body always uses CHARGEBACK_NOTIFICATION as its eventType. The result structure is identical to the data returned by Chargeback Inquiry. Treat the chargebackStatus in the latest notification as authoritative.
TOKENIZATION_NOTIFICATION
Sent when tokenization is completed, the token status changes, or token card information is updated. Waffo sends this notification to thenotifyUrl passed when calling Generate token.
The notification body always uses TOKENIZATION_NOTIFICATION as its eventType. The result structure is identical to one object in the data array returned by Token Inquiry. Refer to the API Reference for the complete response structure.
Process notifications idempotently using result.tokenId, and update the locally stored tokenStatus and Token data with the latest values from each notification.
SUBSCRIPTION_STATUS_NOTIFICATION
Sent when the Subscription master status changes (activation, cancellation, closure). The notification body always usesSUBSCRIPTION_STATUS_NOTIFICATION as its eventType. The result structure is identical to the data returned by Subscription Inquiry. Refer to the API Reference for the complete response structure.
The SDK provides two handlers:
onSubscriptionStatus()— handle this event directlyonSubscriptionPayment()— fallback handling whenonSubscriptionStatusis not registered
SUBSCRIPTION_PERIOD_CHANGED_NOTIFICATION
Sent with the final payment result for a Subscription period, such as a renewal in the second or third period. No notifications are sent during retries; only the final result for the period is sent. Subscribe to this event when you need each period’s final outcome without tracking individual retry attempts. The notification body always usesSUBSCRIPTION_PERIOD_CHANGED_NOTIFICATION as its eventType. The result structure is identical to the data returned by Subscription Inquiry. Refer to the API Reference for the complete response structure.
SUBSCRIPTION_CHANGE_NOTIFICATION
Sent when a subscription change (upgrade/downgrade) is completed. The notification body always usesSUBSCRIPTION_CHANGE_NOTIFICATION as its eventType. The result structure is identical to the data returned by Subscription Change Inquiry. Refer to the API Reference for the complete response structure.
Merchant response
All Webhooks must return HTTP 200 with a response body of{"message":"success"}.
Using the SDK (recommended)
The SDK’shandleWebhook() method automatically performs signature verification, event routing, and response body construction:
Manual response
If you are not using the SDK, the response body must be one of the following:{"message":"success"}— processed successfully{"message":"failed"}— processing failed; Waffo will retry{"message":"unknown"}— status unknown; Waffo will retry
failed or unknown is returned, Waffo will retry up to 8 times (including the initial attempt), with intervals increasing from 30 seconds to 8 hours. See Retries and failure recovery for details.
Subscription notification selection guide
Subscription scenarios involve three types of notifications. Subscribe to the ones you need:
For entitlement checks and idempotency, see Grant Subscription entitlements.