<!--
{
  "availability" : [

  ],
  "documentType" : "symbol",
  "framework" : "ApplePayontheWeb",
  "identifier" : "/documentation/ApplePayontheWeb/ApplePaySession/applePayCapabilities",
  "metadataVersion" : "0.1.0",
  "role" : "Type Method",
  "symbol" : {
    "kind" : "Type Method",
    "modules" : [
      "Apple Pay on the Web"
    ],
    "preciseIdentifier" : "clm/ApplePaySession/applePayCapabilities"
  },
  "title" : "applePayCapabilities"
}
-->

# applePayCapabilities

Indicates whether the device supports Apple Pay and whether the person has an active card in Wallet that qualifies for web payments.

```
static Promise <PaymentCredentialStatusResponse> applePayCapabilities(
	DOMString merchantIdentifier
);
```

## Parameters

`merchantIdentifier`

The ID the merchant creates when they enroll in Apple Pay.

## Return Value

Returns the [`PaymentCredentialStatus`](/documentation/ApplePayontheWeb/PaymentCredentialStatus) object.

## Discussion

> Important:
> This method applies to Apple Pay JS API version `1.latest`.

This method asynchronously contacts the Apple Pay servers as part of the verification process. You can use this method to check for support on third-party browsers.

According to the [Acceptable Use Guidelines for Apple Pay on the Web](https://developer.apple.com/apple-pay/acceptable-use-guidelines-for-websites/), if you invoke the `applePayCapabilities` method and determine that a person has an active card provisioned into Wallet, then Apple Pay should be the primary, but not necessarily sole, payment option on any webpage that accepts payments, like the checkout page or product detail page. In all other situations, use [`canMakePayments`](/documentation/ApplePayontheWeb/ApplePaySession/canMakePayments) instead. For more information, see <doc://com.apple.documentation/documentation/ApplePayontheWeb/checking-for-apple-pay-availability>.

> Note:
> Some cards, such as transit cards, are only enabled for POS payments and therefore won’t qualify for payments on the web.

The following code demonstrates calling this method with each of the possible return values, to determine when to display an Apple Pay button.

```javascript
// Check if the Apple Pay JS API is available.
  if (window.ApplePaySession) {
    var merchantIdentifier = 'YOUR MERCHANT IDENTIFIER';
    var promise = ApplePaySession.applePayCapabilities(merchantIdentifier);
    promise.then(function(capabilities) {
      // Check whether the person has an active payment credential provisioned in Wallet.
      switch (capabilities.paymentCredentialStatus) {
        case "paymentCredentialsAvailable":
          // Display an Apple Pay button and offer Apple Pay as the primary payment option. 
        case "paymentCredentialStatusUnknown":
          // Display an Apple Pay button and offer Apple Pay as a payment option.
        case "paymentCredentialsUnavailable":
          // Consider displaying an Apple Pay button.
        case "applePayUnsupported":
          // Don't show an Apple Pay button or offer Apple Pay.
      }
    })
  }
```

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)