---
title: "Get a list of available payment methods"
method: POST
path: "/paymentMethods"
tags: ["Payments"]
---

# Get a list of available payment methods

`POST /paymentMethods`

Retrieves the list of available payment methods for the transaction, based on the transaction information like amount, country, and currency.

## Headers

- `Idempotency-Key` string

## Request body

- PaymentMethodsRequest
  - `additionalData` object — This field contains additional data, which may be required for a particular payment request. The `additionalData` object consists of entries, each of which includes the key and value.
  - `allowedPaymentMethods` string[] — List of payment methods to be presented to the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types). Example: `"allowedPaymentMethods":["ideal","applepay"]`
  - `amount` Amount
    - `currency` string, required — The three-character [ISO currency code](https://docs.adyen.com/development-resources/currency-codes#currency-codes) of the amount.
    - `value` integer, required — The numeric value of the amount, in [minor units](https://docs.adyen.com/development-resources/currency-codes#minor-units).
  - `blockedPaymentMethods` string[] — List of payment methods to be hidden from the shopper. To refer to payment methods, use their [payment method type](https://docs.adyen.com/payment-methods/payment-method-types). Example: `"blockedPaymentMethods":["ideal","applepay"]`
  - `browserInfo` BrowserInfo
    - `acceptHeader` string, required — The accept header value of the shopper's browser.
    - `userAgent` string, required — The user agent value of the shopper's browser.
  - `channel` 'iOS' | 'Android' | 'Web' — The platform where a payment transaction takes place. This field can be used for filtering out payment methods that are only available on specific platforms. Possible values: * iOS * Android * Web
  - `countryCode` string — The shopper's country code.
  - `merchantAccount` string, required — The merchant account identifier, with which you want to process the transaction.
  - `shopperConversionId` string — A unique ID that can be used to associate `/paymentMethods` and `/payments` requests with the same shopper transaction, offering insights into conversion rates.
  - `shopperEmail` string — The shopper's email address. We recommend that you provide this data, as it is used in velocity fraud checks. > Required for Visa and JCB transactions that require 3D Secure 2 authentication if you did not include the `telephoneNumber`.
  - `shopperIP` string — The shopper's IP address. We recommend that you provide this data, as it is used in a number of risk checks (for instance, number of payment attempts or location-based checks). > Required for Visa and JCB transactions that require 3D Secure 2 authentication for all web and mobile integrations, if you did not include the `shopperEmail`. For native mobile integrations, the field is required to support cases where authentication is routed to the redirect flow. This field is also mandatory for some merchants depending on your business model. For more information, [contact Support](https://www.adyen.help/hc/en-us/requests/new).
  - `shopperLocale` string — The combination of a language code and a country code to specify the language to be used in the payment.
  - `shopperReference` string — Required for recurring payments. Your reference to uniquely identify this shopper, for example user ID or account ID. The value is case-sensitive and must be at least three characters. > Your reference must not include personally identifiable information (PII) such as name or email address.
  - `store` string — Required for Adyen for Platforms integrations if you are a platform model. This is your [reference](https://docs.adyen.com/api-explorer/Management/3/post/merchants/(merchantId)/stores#request-reference) (on [balance platform](https://docs.adyen.com/platforms)) or the [storeReference](https://docs.adyen.com/api-explorer/Account/latest/post/updateAccountHolder#request-accountHolderDetails-storeDetails-storeReference) (in the [classic integration](https://docs.adyen.com/classic-platforms/processing-payments/route-payment-to-store/#route-a-payment-to-a-store)) for the ecommerce or point-of-sale store that is processing the payment.
  - `storeFiltrationMode` 'exclusive' | 'inclusive' | 'skipFilter' — Specifies how payment methods should be filtered based on the `store` parameter: - **exclusive**: Only payment methods belonging to the specified `store` are returned. - **inclusive**: Payment methods from the `store` and those not associated with any other store are returned.
  - `telephoneNumber` string — The shopper's telephone number. The phone number must include a plus sign (+) and a country code (1-3 digits), followed by the number (4-15 digits). If the value you provide does not follow the guidelines, we do not submit it for authentication. > Required for Visa and JCB transactions that require 3D Secure 2 authentication, if you did not include the `shopperEmail`.

## Response `200`

OK - the request has succeeded.

- PaymentMethodsResponse
  - `groups` PaymentMethodsGroup[] — Groups of payment methods.
    - `groupType` string — The type to submit for any payment method in this group.
    - `name` string — The human-readable name of this group.
    - `promoted` boolean
    - `types` string[] — The types of payment methods that belong in this group.
  - `oneClickPaymentMethods` RecurringDetail[] — Detailed list of one-click payment methods.
    - `apps` PaymentMethodUPIApps[] — A list of apps for this payment method.
      - `id` string, required — The unique identifier of this app, to submit in requests to /payments.
      - `name` string, required — A localized name of the app.
    - `configuration` object — The configuration of the payment method.
    - `details` InputDetail[] — All input details to be provided to complete the payment with this payment method.
      - `configuration` object — Configuration parameters for the required input.
      - `details` SubInputDetail[] — Input details can also be provided recursively.
        - `configuration` object — Configuration parameters for the required input.
        - `items` Item[] — In case of a select, the items to choose from.
          - `id` string — The value to provide in the result.
          - `name` string — The display name.
        - `key` string — The value to provide in the result.
        - `optional` boolean — True if this input is optional to provide.
        - `type` string — The type of the required input.
        - `value` string — The value can be pre-filled, if available.
      - `inputDetails` SubInputDetail[] — Input details can also be provided recursively (deprecated).
        - `configuration` object — Configuration parameters for the required input.
        - `items` Item[] — In case of a select, the items to choose from.
          - `id` string — The value to provide in the result.
          - `name` string — The display name.
        - `key` string — The value to provide in the result.
        - `optional` boolean — True if this input is optional to provide.
        - `type` string — The type of the required input.
        - `value` string — The value can be pre-filled, if available.
      - `itemSearchUrl` string — In case of a select, the URL from which to query the items.
      - `items` Item[] — In case of a select, the items to choose from.
        - `id` string — The value to provide in the result.
        - `name` string — The display name.
      - `key` string — The value to provide in the result.
      - `optional` boolean — True if this input value is optional.
      - `type` string — The type of the required input.
      - `value` string — The value can be pre-filled, if available.
    - `group` PaymentMethodGroup
      - `name` string — The name of the group.
      - `paymentMethodData` string — Echo data to be used if the payment method is displayed as part of this group.
      - `type` string — The unique code of the group.
    - `inputDetails` InputDetail[] — All input details to be provided to complete the payment with this payment method.
      - `configuration` object — Configuration parameters for the required input.
      - `details` SubInputDetail[] — Input details can also be provided recursively.
        - `configuration` object — Configuration parameters for the required input.
        - `items` Item[] — In case of a select, the items to choose from.
          - `id` string — The value to provide in the result.
          - `name` string — The display name.
        - `key` string — The value to provide in the result.
        - `optional` boolean — True if this input is optional to provide.
        - `type` string — The type of the required input.
        - `value` string — The value can be pre-filled, if available.
      - `inputDetails` SubInputDetail[] — Input details can also be provided recursively (deprecated).
        - `configuration` object — Configuration parameters for the required input.
        - `items` Item[] — In case of a select, the items to choose from.
          - `id` string — The value to provide in the result.
          - `name` string — The display name.
        - `key` string — The value to provide in the result.
        - `optional` boolean — True if this input is optional to provide.
        - `type` string — The type of the required input.
        - `value` string — The value can be pre-filled, if available.
      - `itemSearchUrl` string — In case of a select, the URL from which to query the items.
      - `items` Item[] — In case of a select, the items to choose from.
        - `id` string — The value to provide in the result.
        - `name` string — The display name.
      - `key` string — The value to provide in the result.
      - `optional` boolean — True if this input value is optional.
      - `type` string — The type of the required input.
      - `value` string — The value can be pre-filled, if available.
    - `name` string — The displayable name of this payment method.
    - `promoted` boolean — Indicates whether this payment method should be promoted or not.
    - `recurringDetailReference` string — The reference that uniquely identifies the recurring detail.
    - `storedDetails` StoredDetails
      - `bank` BankAccount
        - `bankAccountNumber` string — The bank account number (without separators).
        - `bankCity` string — The bank city.
        - `bankLocationId` string — The location id of the bank. The field value is `nil` in most cases.
        - `bankName` string — The name of the bank.
        - `bic` string — The [Business Identifier Code](https://en.wikipedia.org/wiki/ISO_9362) (BIC) is the SWIFT address assigned to a bank. The field value is `nil` in most cases.
        - `countryCode` string — Country code where the bank is located. A valid value is an ISO two-character country code (e.g. 'NL').
        - `iban` string — The [International Bank Account Number](https://en.wikipedia.org/wiki/International_Bank_Account_Number) (IBAN).
        - `ownerName` string — The name of the bank account holder. If you submit a name with non-Latin characters, we automatically replace some of them with corresponding Latin characters to meet the FATF recommendations. For example: * χ12 is converted to ch12. * üA is converted to euA. * Peter Møller is converted to Peter Mller, because banks don't accept 'ø'. After replacement, the ownerName must have at least three alphanumeric characters (A-Z, a-z, 0-9), and at least one of them must be a valid Latin character (A-Z, a-z). For example: * John17 - allowed. * J17 - allowed. * 171 - not allowed. * John-7 - allowed. > If provided details don't match the required format, the response returns the error message: 203 'Invalid bank account holder name'.
        - `taxId` string — The bank account holder's tax ID.
      - `card` Card
        - `cvc` string — The [card verification code](https://docs.adyen.com/payments-fundamentals/payment-glossary#card-security-code-cvc-cvv-cid) (1-20 characters). Depending on the card brand, it is known also as: * CVV2/CVC2 – length: 3 digits * CID – length: 4 digits > If you are using [Client-Side Encryption](https://docs.adyen.com/classic-integration/cse-integration-ecommerce), the CVC code is present in the encrypted data. You must never post the card details to the server. > This field must be always present in a [one-click payment request](https://docs.adyen.com/classic-integration/recurring-payments). > When this value is returned in a response, it is always empty because it is not stored.
        - `expiryMonth` string — The card expiry month. Format: 2 digits, zero-padded for single digits. For example: * 03 = March * 11 = November
        - `expiryYear` string — The card expiry year. Format: 4 digits. For example: 2020
        - `holderName` string — The name of the cardholder, as printed on the card.
        - `issueNumber` string — The issue number of the card (for some UK debit cards only).
        - `number` string — The card number (4-19 characters). Do not use any separators. When this value is returned in a response, only the last 4 digits of the card number are returned.
        - `startMonth` string — The month component of the start date (for some UK debit cards only).
        - `startYear` string — The year component of the start date (for some UK debit cards only).
      - `emailAddress` string — The email associated with stored payment details.
    - `supportsRecurring` boolean — Indicates whether this payment method supports tokenization or not.
    - `type` string — The unique payment method code.
  - `paymentMethods` PaymentMethod[] — Detailed list of payment methods required to generate payment forms.
    - `apps` PaymentMethodUPIApps[] — A list of apps for this payment method.
      - `id` string, required — The unique identifier of this app, to submit in requests to /payments.
      - `name` string, required — A localized name of the app.
    - `configuration` object — The configuration of the payment method.
    - `details` InputDetail[] — All input details to be provided to complete the payment with this payment method.
      - `configuration` object — Configuration parameters for the required input.
      - `details` SubInputDetail[] — Input details can also be provided recursively.
        - `configuration` object — Configuration parameters for the required input.
        - `items` Item[] — In case of a select, the items to choose from.
          - `id` string — The value to provide in the result.
          - `name` string — The display name.
        - `key` string — The value to provide in the result.
        - `optional` boolean — True if this input is optional to provide.
        - `type` string — The type of the required input.
        - `value` string — The value can be pre-filled, if available.
      - `inputDetails` SubInputDetail[] — Input details can also be provided recursively (deprecated).
        - `configuration` object — Configuration parameters for the required input.
        - `items` Item[] — In case of a select, the items to choose from.
          - `id` string — The value to provide in the result.
          - `name` string — The display name.
        - `key` string — The value to provide in the result.
        - `optional` boolean — True if this input is optional to provide.
        - `type` string — The type of the required input.
        - `value` string — The value can be pre-filled, if available.
      - `itemSearchUrl` string — In case of a select, the URL from which to query the items.
      - `items` Item[] — In case of a select, the items to choose from.
        - `id` string — The value to provide in the result.
        - `name` string — The display name.
      - `key` string — The value to provide in the result.
      - `optional` boolean — True if this input value is optional.
      - `type` string — The type of the required input.
      - `value` string — The value can be pre-filled, if available.
    - `group` PaymentMethodGroup
      - `name` string — The name of the group.
      - `paymentMethodData` string — Echo data to be used if the payment method is displayed as part of this group.
      - `type` string — The unique code of the group.
    - `inputDetails` InputDetail[] — All input details to be provided to complete the payment with this payment method.
      - `configuration` object — Configuration parameters for the required input.
      - `details` SubInputDetail[] — Input details can also be provided recursively.
        - `configuration` object — Configuration parameters for the required input.
        - `items` Item[] — In case of a select, the items to choose from.
          - `id` string — The value to provide in the result.
          - `name` string — The display name.
        - `key` string — The value to provide in the result.
        - `optional` boolean — True if this input is optional to provide.
        - `type` string — The type of the required input.
        - `value` string — The value can be pre-filled, if available.
      - `inputDetails` SubInputDetail[] — Input details can also be provided recursively (deprecated).
        - `configuration` object — Configuration parameters for the required input.
        - `items` Item[] — In case of a select, the items to choose from.
          - `id` string — The value to provide in the result.
          - `name` string — The display name.
        - `key` string — The value to provide in the result.
        - `optional` boolean — True if this input is optional to provide.
        - `type` string — The type of the required input.
        - `value` string — The value can be pre-filled, if available.
      - `itemSearchUrl` string — In case of a select, the URL from which to query the items.
      - `items` Item[] — In case of a select, the items to choose from.
        - `id` string — The value to provide in the result.
        - `name` string — The display name.
      - `key` string — The value to provide in the result.
      - `optional` boolean — True if this input value is optional.
      - `type` string — The type of the required input.
      - `value` string — The value can be pre-filled, if available.
    - `name` string — The displayable name of this payment method.
    - `promoted` boolean — Indicates whether this payment method should be promoted or not.
    - `supportsRecurring` boolean — Indicates whether this payment method supports tokenization or not.
    - `type` string — The unique payment method code.

## Other responses

- `400` — Bad Request - a problem reading or understanding the request.
- `401` — Unauthorized - authentication required.
- `403` — Forbidden - insufficient permissions to process the request.
- `422` — Unprocessable Entity - a request validation error.
- `500` — Internal Server Error - the server could not process the request.

---

[API](https://skmtc.net/adyen/apis/checkoutservice.md) · [All operations](https://skmtc.net/adyen/apis/checkoutservice/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/adyen/checkoutservice/versions/513ede066d35/schema)
