---
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.
    - `colorDepth` integer, required — The color depth of the shopper's browser in bits per pixel. This should be obtained by using the browser's `screen.colorDepth` property. Accepted values: 1, 4, 8, 15, 16, 24, 30, 32 or 48 bit color depth.
    - `javaEnabled` boolean, required — Boolean value indicating if the shopper's browser is able to execute Java.
    - `javaScriptEnabled` boolean — Boolean value indicating if the shopper's browser is able to execute JavaScript. A default 'true' value is assumed if the field is not present.
    - `language` string, required — The `navigator.language` value of the shopper's browser (as defined in IETF BCP 47).
    - `screenHeight` integer, required — The total height of the shopper's device screen in pixels.
    - `screenWidth` integer, required — The total width of the shopper's device screen in pixels.
    - `timeZoneOffset` integer, required — Time difference between UTC time and the shopper's browser local time, in minutes.
    - `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.
  - `order` EncryptedOrderData
    - `orderData` string, required — The encrypted order data.
    - `pspReference` string, required — The `pspReference` that belongs to the order.
  - `shopperConversionId` string — A unique ID to [connect the shopper to a single checkout session](https://docs.adyen.com/online-payments/checkout-settings#checkout-shopper-conversion-id) that uses multiple API requests. You can use this to get 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 language for the payment. The value combines the two-letter [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639_language_codes) language code with the [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes) country code. For example, **nl-NL**. When using Drop-in/Components, the specified language appears if your front-end global configuration does not set the `locale`.
  - `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.
  - `splitCardFundingSources` boolean — Boolean value indicating whether the card payment method should be split into separate debit and credit options.
  - `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
  - `paymentMethods` PaymentMethod[] — Detailed list of payment methods required to generate payment forms.
    - `apps` PaymentMethodUPIApps[] — A list of apps for this payment method.
      - `appIdentifierInfo` AppIdentifierInfo
        - `androidPackageId` string — The Android package identifier for this app.
        - `iosScheme` string — The iOS URL scheme for this app.
      - `id` string, required — The unique identifier of this app, to submit in requests to /payments.
      - `name` string, required — A localized name of the app.
    - `brand` string — Brand for the selected gift card. For example: plastix, hmclub.
    - `brands` string[] — List of possible brands. For example: visa, mc.
    - `configuration` object — The configuration of the payment method.
    - `fundingSource` 'credit' | 'debit' | 'prepaid' — The funding source of the payment method.
    - `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.
    - `issuers` PaymentMethodIssuer[] — A list of issuers for this payment method.
      - `disabled` boolean — A boolean value indicating whether this issuer is unavailable. Can be `true` whenever the issuer is offline.
      - `id` string, required — The unique identifier of this issuer, to submit in requests to /payments.
      - `name` string, required — A localized name of the issuer.
    - `name` string — The displayable name of this payment method.
    - `promoted` boolean — Indicates whether this payment method should be promoted or not.
    - `type` string — The unique payment method code.
  - `storedPaymentMethods` StoredPaymentMethod[] — List of all stored payment methods.
    - `bankAccountNumber` string — The bank account number (without separators).
    - `bankLocationId` string — The location id of the bank. The field value is `nil` in most cases.
    - `brand` string — The brand of the card.
    - `cashtag` string — The shopper’s Cash App Pay Cashtag.
    - `expiryMonth` string — The two-digit month when the card expires
    - `expiryYear` string — The last two digits of the year the card expires. For example, **22** for the year 2022.
    - `holderName` string — The name of the payment method holder.
    - `iban` string — The IBAN of the bank account.
    - `id` string — A unique identifier of this stored payment method.
    - `label` string — The shopper’s issuer account label
    - `lastFour` string — The last four digits of the PAN.
    - `name` string — The display name of the stored payment method.
    - `networkTxReference` string — Returned in the response if you are not tokenizing with Adyen and are using the Merchant-initiated transactions (MIT) framework from Mastercard or Visa. This contains either the Mastercard Trace ID or the Visa Transaction ID.
    - `ownerName` string — The name of the bank account holder.
    - `shopperEmail` string — The shopper’s email address.
    - `supportedRecurringProcessingModels` string[] — The supported recurring processing models for this stored payment method.
    - `supportedShopperInteractions` string[] — The supported shopper interactions for this stored payment method.
    - `type` string — The type of payment method.

## 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/revisions/a2d1f411288c/schema)
