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

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 new PaymentRequest().

Event ExtendableEvent CanMakePaymentEvent


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.


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


Payment Handler API
# the-canmakepaymentevent

Browser compatibility

BCD tables only load in the browser

See also