CanMakePaymentEvent

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Note: This feature is only available in Service Workers.

The CanMakePaymentEvent interface of the Payment Handler API is the event object for the canmakepayment event, fired on a payment app's service worker to check whether it is ready to handle a payment. Specifically, it is fired when the merchant website calls the PaymentRequest() constructor.

Event ExtendableEvent CanMakePaymentEvent

Constructor

CanMakePaymentEvent() Experimental

Creates a new CanMakePaymentEvent object instance.

Instance methods

respondWith() Experimental

Enables the service worker to respond appropriately to signal whether it is ready to handle payments.

Examples

js
self.addEventListener("canmakepayment", (e) => {
  e.respondWith(
    new Promise((resolve, reject) => {
      someAppSpecificLogic()
        .then((result) => {
          resolve(result);
        })
        .catch((error) => {
          reject(error);
        });
    }),
  );
});

Specifications

Specification
Payment Handler API
# the-canmakepaymentevent

Browser compatibility

desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
CanMakePaymentEvent
Experimental
CanMakePaymentEvent() constructor
Experimental
methodData
DeprecatedNon-standard
modifiers
DeprecatedNon-standard
paymentRequestOrigin
DeprecatedNon-standard
respondWith
Experimental
topOrigin
DeprecatedNon-standard

See also