← Chrome 148 reference

v148 · shipped · payments · web authentication

Get Secure Payment Confirmation Capabilities

Chrome 148 adds a static PaymentRequest.getSecurePaymentConfirmationCapabilities() method that returns a record of Boolean flags indicating which Secure Payment Confirmation (SPC) capabilities the current browser supports — such as browser-bound keys stored in hardware secure elements.

at a glance

Shipped inChrome 148 (desktop macOS/Windows, Android)
StatusEnabled by default
New methodPaymentRequest.getSecurePaymentConfirmationCapabilities()
ReturnsPromise resolving to a capabilities record
SpecW3C Secure Payment Confirmation specification
ChromeStatus4727235745546240 — Get Secure Payment Confirmation Capabilities

why it exists

Secure Payment Confirmation (SPC) lets merchants authenticate users via WebAuthn during a payment flow. SPC supports advanced features like browser-bound keys (hardware-backed credentials tied to the device). Before Chrome 148, there was no way for a site to programmatically check whether the browser and OS combination supported a particular SPC capability — a merchant might attempt to use browser-bound keys on a platform that doesn't support them and receive an opaque error. getSecurePaymentConfirmationCapabilities() provides a capability-detection step so merchants can branch their payment flow appropriately.

Source: blink-dev Intent to Ship — Get Secure Payment Confirmation Capabilities, April 2026.

shape of the API

Method signature

// Static method — no PaymentRequest instance needed
const caps = await PaymentRequest.getSecurePaymentConfirmationCapabilities();

The method returns a Promise resolving to a plain object whose keys are capability identifiers and whose values are Booleans. A value of true means the capability is currently supported; false means it is not.

Checking browser-bound key support

const caps = await PaymentRequest.getSecurePaymentConfirmationCapabilities();

if (caps.browserBoundKeys) {
  // Browser supports hardware-backed browser-bound keys in SPC
  // → proceed with a flow that requests browserBoundKeys
  initiateSecurePaymentWithBoundKeys();
} else {
  // Fall back to standard SPC or a non-SPC payment flow
  initiateStandardPayment();
}

Platform availability

The method is only available on platforms that support Secure Payment Confirmation: Android, macOS, and Windows. On other platforms (Linux, ChromeOS), the method is not present. Feature-detect before calling:

if ('getSecurePaymentConfirmationCapabilities' in PaymentRequest) {
  const caps = await PaymentRequest.getSecurePaymentConfirmationCapabilities();
  // use caps
}
Source: blink-dev Intent to Ship — Get Secure Payment Confirmation Capabilities, April 2026; W3C Secure Payment Confirmation spec.

browser support

BrowserSupport
Chrome 148+ (macOS, Windows, Android)Enabled by default
Chrome 148+ (Linux, ChromeOS)Not available (SPC not supported)
FirefoxNo position
SafariNo position
Source: chromestatus.com feature page, April 2026.

see also