## Check if a payment can be made

`paymentRequest.canMakePayment()`

Returns a `Promise` that resolves with an object detailing if an
enabled wallet is ready to pay. If no wallet is available, it
resolves with `null`. The resolution object has the properties
in the table below.

When using a custom button, inspect the return object's properties to determine which wallet branding to display.

> `canMakePayment` resolves to `null` outside the following supported cases:
> 
> * Safari 10.1+ (desktop and mobile)
>   * with a saved Apple Pay card
>   * or when in a Private Browsing window
>   * or when the “Allow websites to check if Apple Pay is set up” preference is disabled
> * Chrome 61+ (desktop and mobile)
>   * with a saved Google Pay card
>   * or when the browser has a saved card (i.e. autofill)

### Return object properties

- `applePay`
  `true` if Apple Pay wallet is ready to pay.
Use a custom button that conforms to the Apple Pay [Human Interface Guidelines](https://developer.apple.com/apple-pay/web-human-interface-guidelines/).

- `googlePay`
  `true` if Google Pay wallet is ready to pay.
Use a custom button that conforms to the Google Pay [Brand Guidelines](https://developers.google.com/pay/api/web/guides/brand-guidelines).

- `link`
  `true` if Link wallet is ready to pay (Link is also known as Onelink in the UK).
Link is not supported in custom button configurations.

### Example

```title
paymentRequest.canMakePayment
```
