W3cubDocs

/Web APIs

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

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

Specifications

Browser compatibility

Desktop Mobile
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari on IOS Samsung Internet WebView Android WebView on iOS
CanMakePaymentEvent 70 79 No 57 No 70 No 49 No 10.0 No No
CanMakePaymentEvent 70 79 No 57 No 70 No 49 No 10.0 No No
respondWith 70 79 No 57 No 70 No 49 No 10.0 No No

See also

© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/CanMakePaymentEvent