This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

The PaymentRequestEvent constructor creates a new PaymentRequestEvent object which is a constructor for a PaymentRequestEvent which is the ojbect passed to a payment handler when a PaymentRequest is made..


var paymentRequestEvent = new PaymentRequestEventy(type, options)


Must always be 'PaymentRequest'.
options Optional
Options are as follows:
  • instrumentKey: A PaymentInstrument object reflecting the payment instrument selected by the user or an empty string if the user has not registered or chosen a payment instrument.
  • methodData: An array of PaymentMethodData objects containing payment method identifers for the payment methods that the web site accepts and any associated payment method specific data.
  • modifiers: An array of objects containing changes to payment details.
  • paymentRequestId: The ID of the PaymentRequest object.
  • paymentRequestOrigin: The origin where the PaymentRequest object was initialized.
  • topLeveOrigin: The top-level origin where the PaymentRequest object was initialized.
  • total: The total amount being requested for payment.


Specification Status Comment
Payment Handler API
The definition of 'PaymentRequestEvent_' in that specification.
Working Draft Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support571 ? ? ? No ?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support No571 ? ? No ? No

1. From version 57: this feature is behind the #service-worker-payment-apps preference (needs to be set to Enabled). To change preferences in Chrome, visit chrome://flags.

Document Tags and Contributors

Contributors to this page: jpmedley
Last updated by: jpmedley,