Skip to main content

Widget Events

You can track widget activity using event listeners. For example, detect if the payment is ready to be submitted:

const scopes = ["*"];
manager.subscribe((event) => {
if (event.code === "CHECKOUT_PAYMENT_FULFILLED_CHANGES") {
const button = document.getElementById("my_custom_pay_button");
event.payload.isFulfilled
? button.removeAttribute("disabled")
: button.setAttribute("disabled", true);
}
}, scopes);

Attach Listeners on Initialization

const widgetManager = widgetManager.buildForWidgetData(data, [
{ listener: myListenerFunction, scopes: ["*"] }
])

List of the widget scopes

Scope NameDescription
checkout_sessionEvents related to checkout session lifecycle
checkout_paymentEvents for payment processing status
checkout_validationEvents during checkout validation process
checkout_validation_endFinal validation status events
wallet_sessionEvents related to wallet session management
wallet_actionsEvents for wallet operations
widget_managerEvents from widget manager operations
widget_instanceEvents related to widget lifecycle
widget_uiEvents from UI interactions
widget_navigationEvents for widget navigation state
widget_navigation_selectionEvents for selection state changes
errorsError events from various components

List of Event codes

NameDescriptionScopes
CHECKOUT_SESSION_SETTriggered when a checkout session is set.checkout_session
CHECKOUT_SESSION_EXPIRATION_BACKED_BY_SERVER_TIMECheckout session expiration is synchronized with server time.
CHECKOUT_SESSION_EXPIREDIndicates that the checkout session has expired.checkout_session, errors
CHECKOUT_VALIDATION_STARTBegins the validation process for the checkout.checkout_validation
CHECKOUT_API_INIT_SUCCEEDEDAPI initialization for checkout was successful.
CHECKOUT_API_INIT_FAILEDAPI initialization for checkout failed.errors
CHECKOUT_API_VALIDATION_SUCCEEDEDAPI validation for checkout was successful.
CHECKOUT_POST_VALIDATION_SUCCEEDEDPost-validation for the checkout succeeded.
CHECKOUT_POST_VALIDATION_FAILEDPost-validation for the checkout failed.errors
CHECKOUT_VALIDATION_SUCCEEDEDThe overall validation for the checkout succeeded.checkout_validation, checkout_validation_end
CHECKOUT_VALIDATION_FAILEDThe overall validation for the checkout failed.checkout_validation_end, errors
CHECKOUT_PRE_VALIDATION_FAILEDPre-validation for the checkout failed.errors
CHECKOUT_PRE_VALIDATION_ALREADY_ROLLINGPre-validation is already in progress.
CHECKOUT_PRE_VALIDATION_STARTINGPre-validation for checkout is starting.
CHECKOUT_PAYMENT_FULFILLED_CHANGESIndicates changes after the payment has been fulfilled.checkout_payment
CHECKOUT_PAYMENT_FULLFILLED_ERRORIndicates that an error occurred after the payment was fulfilled during the checkout processcheckout_payment, errors
WALLET_SESSION_SETTriggered when a wallet session is set.wallet_session
WALLET_SESSION_EXPIREDIndicates that the wallet session has expired.errors
WALLET_SESSION_EXPIRATION_BACKED_BY_SERVER_TIMEWallet session expiration is synchronized with server time.
WALLET_TOKEN_DELETION_COMPLETEA wallet token has been successfully deleted.wallet_actions
WALLET_TOKEN_EDITION_COMPLETEA wallet token has been successfully edited.
WALLET_ALL_TOKENS_DELETION_COMPLETEAll wallet tokens have been successfully deleted.wallet_actions
WALLET_TOKEN_SET_AS_FAVORITEA wallet token has been marked as favorite.
WIDGET_MANAGER_CREATEA widget manager has been created.widget_manager
WIDGET_MANAGER_ANALYTICSAnalytics event from widget manager.
WIDGET_MANAGER_SUBMIT_PAYMENTA widget manager is submitting a payment.
WIDGET_SUBMIT_PAYMENTA widget is submitting a payment.
WIDGET_GET_PLUGIN_FAILEDFailed to retrieve the widget plugin.
WIDGET_PROTOCOL_UNSTABLE_FILTERProtocol instability detected for widget filtering.
WIDGET_PROTOCOL_PLUGIN_NOT_IMPLEMENTEDThe required widget protocol plugin is not implemented.
WIDGET_CREATEA widget has been created.widget_instance
WIDGET_MOUNTEDA widget has been mounted.
WIDGET_UNMOUNTEDA widget has been unmounted.
WIDGET_FETCH_CONFIG_FAILED_SOFTLYSoft failure while fetching widget configuration.
WIDGET_CONFIG_NAME_IS_MANDATORY_SHOULD_BE_UNIQUEWidget configuration name is mandatory and must be unique.
WIDGET_CONFIG_SETA widget configuration has been set.widget_instance
WIDGET_MERGE_NAVIGATION_SELECTION_UPDATENavigation selection update during widget merge.widget_navigation
WIDGET_MERGE_NAVIGATION_SELECTION_SKIPPEDNavigation selection was skipped during widget merge.widget_navigation, widget_navigation_selection
WIDGET_MERGE_NAVIGATION_FOCUS_UPDATENavigation focus update during widget merge.widget_navigation
WIDGET_MERGE_NAVIGATION_TRY_TO_SELECT_SUSPENDED_ITEMAttempted to select a suspended item during navigation merge.
WIDGET_MERGE_NAVIGATION_SELECTED_ITEM_IS_NOW_SUSPENDEDA selected item is now suspended during navigation merge.
WIDGET_MERGE_NAVIGATION_OPEN_UPDATENavigation open state update during widget merge.widget_navigation
WIDGET_NAVIGATION_PRIMARY_UPDATEUpdate to primary navigation.widget_navigation, widget_navigation_selection
WIDGET_NAVIGATION_SECONDARY_UPDATEUpdate to secondary navigation.widget_navigation, widget_navigation_selection
WIDGET_SUBMISSION_AFTER_PARTNER_SDK_REJECTIONSubmission attempt after partner SDK rejection.
WIDGET_UI_SAVE_TOKEN_OPTIN_CHANGEDUser changed the save token opt-in.
WIDGET_UI_BUTTON_CLICKUser clicked a widget button.
WIDGET_UI_TOKEN_SELECTEDUser selected a token in the UI.widget_ui
WIDGET_UI_TOKEN_UNSELECTEDUser unselected a token in the UI.widget_ui
WIDGET_UI_METHOD_SELECTEDA payment method has been selected.widget_ui
WIDGET_UI_METHOD_UNSELECTEDA payment method has been unselected.widget_ui
WIDGET_FIELD_VALIDATEDA field has been validated.
WIDGET_FIELD_BLURA field has lost focus.
REDIRECTIONA redirection event occurred.
UNCAUGHT_ERRORAn uncaught error occurred.errors
PAGE_UNLOADTriggered when the page is being unloaded.