> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# Restrict payment methods at checkout

Pass a new parameter when opening a checkout using Paddle.js to choose which payment methods are presented to customers.

---

## What's new?

We added a new `allowedPaymentMethods` parameter to [Paddle.js](https://developer.paddle.com/paddlejs/overview.md). You can use it to choose which payment methods are presented to customers [when opening a checkout](https://developer.paddle.com/paddlejs/methods/paddle-checkout-open.md).

- **allowedPaymentMethods** (array[string]): Payment options presented to customers at checkout

## How it works

Paddle [lets you accept](https://developer.paddle.com/concepts/payment-methods/overview.md) cards, digital wallets like Apple Pay and Google Pay, and local payment methods like iDEAL and Alipay out-of-the-box. You can turn on new payment methods in a couple of clicks in the Paddle dashboard, with no need to sign up for multiple merchant accounts or partner with different platforms.

Some payment methods are only available for certain countries or currencies, and for certain kinds of products. [Paddle Checkout](https://developer.paddle.com/concepts/sell/self-serve-checkout.md) automatically presents valid payment methods for a transaction at checkout, so you don't need to handle this.

The new `allowedPaymentMethods` parameter gives you more control over the payment methods presented to customers. You can pass it to `checkout.settings` when using [`Paddle.Initialize()`](https://developer.paddle.com/paddlejs/methods/paddle-initialize.md), or to `settings` when using [`Paddle.Checkout.open()`](https://developer.paddle.com/paddlejs/methods/paddle-checkout-open.md). It accepts an array of strings.

When payment methods are passed, Paddle Checkout presents a customer with the option to pay using only the payment methods passed.

To determine which payment methods are valid given prices and location information, you can check the `available_payment_methods` array returned when using [`Paddle.PricePreview()`](https://developer.paddle.com/paddlejs/methods/paddle-pricepreview.md) or when previewing transactions using the API.

## Example

You can set up a transaction using the API, then pass it to a checkout to collect for it.

This example passes `transactionID` to [open a checkout](https://developer.paddle.com/paddlejs/methods/paddle-checkout-open.md) for that transaction. The customer is presented with the option to pay using [Google Pay](https://developer.paddle.com/concepts/payment-methods/google-pay.md) when they open checkout.

<!-- Example showing passing an existing transaction and payment method to Paddle.Checkout.open() -->
```javascript {% title="Paddle.Checkout.open()" highlightLines="[3,4,5]" %}
Paddle.Checkout.open({
  transactionId: "txn_01gp3z8cfkqgdq07hcr3ja0q95",
  settings: {
    allowedPaymentMethods: ["google_pay"]
  }
});
```

## Next steps

This change is live in Paddle.js now, so you can start using it when you're ready.

You don't need to do anything to get the latest version of Paddle.js — we serve the latest version automatically.
## Summary of changes

| Name | Type | Change | Entity | Description |
| --- | --- | --- | --- | --- |
| `allowedPaymentMethods` | Paddle.js param | added | Paddle.Checkout.open() | Restrict which payment methods are shown at checkout. |
