---
title: "Search Payments providers"
method: POST
path: "/v3/payments-providers/search"
tags: ["Payments providers"]
---

# Search Payments providers

`POST /v3/payments-providers/search`

## Request

- Base URL: `https://api.truelayer-sandbox.com`
- URL: `https://api.truelayer-sandbox.com/v3/payments-providers/search`
- Auth: OAuth 2
  - Client credentials
  - Token URL: `https://auth.truelayer.com/connect/token` scopes: `payments`

Returns a list of payments providers.

## Request body

- SearchPaymentsProvidersRequest
  - `countries` CountryCode[]: Only providers from the specified countries will be returned.
  - `currencies` MerchantAccountCurrencyCode[]: Only schemes that support at least one of the specified currencies will be returned.
  - `release_channel` 'general_availability' | 'public_beta' | 'private_beta': Only capabilities that are at least on the specified release channel will be returned. Note that many European providers are in `public_beta` or `private_beta`.
  - `customer_segments` string[]: Only providers that cater to at least one of the specified customer segments will be returned.
  - `capabilities` SearchProviderCapabilities: Options for capabilities of the providers.
    - `payments` object: Only providers with `payments` capabilities will be returned.
      - `bank_transfer` object: Only providers with `bank transfer` capability will be returned.
    - `mandates` object: Only providers with `mandates` capabilities will be returned.
      - `vrp_sweeping` object: Only returns providers with the `sweeping` capability.
      - `vrp_commercial` object: Only returns providers with the `commercial` capability.
        - `use_cases` MandateVrpCommercialUseCase[]: Only returns providers that support all the specified use cases.
      - `direct_debit` object: Only returns providers with the `direct_debit` capability
  - `authorization_flow` SearchPaymentsProvidersAuthorizationFlow, required
    - `configuration` object, required: Options for the authorization flow configuration of the customized UI. This should be the same object you use in the start authorization flow request body.
      - `provider_selection` object: Can your UI render a provider selection screen? In payments where you set `provider_selection` as `user_selected`, your UI must be able to render a screen where the user can select their payments provider. This parameter is required for payments with `user_selected` provider selection. For preselected provider selection, it's optional. Use the `provider_selection.filter` parameter at payment creation to determine the list of providers you can choose to display in your UI.
        - `branches` BranchesAuthorizationFlow
        - `icon` Icon
          - `type` 'default' | 'extended' | 'extended_small' | 'extended_medium' | 'extended_large': Configuration for the type of icon. Available options are: - `default`: Default icon with no background (SVG). - `extended`: Extended as a square with an appropriate background colour (SVG). - `extended_small`: Extended icon with a 192x192 pixel resolution (JPEG). - `extended_medium`: Extended icon with a 432x432 pixel resolution (JPEG). - `extended_large`: Extended icon with an 864x864 pixel resolution (JPEG).
      - `redirect` object: Can the UI redirect the end user to a third-party page? For most providers, payment authorization is achieved by redirecting the user to their chosen provider's page, where they can sign in with their credentials and approve the payment. This field declares whether the UI is able to perform such a redirect.
      - `form` object: Can the UI render form inputs for the end user to interact with? Some providers require additional inputs, such as the remitter name and account details, to be provided before or during payment authorization. To facilitate this, the API may return a `form` action as part of the authorization flow, prompting the UI to collect the required inputs. This field declares whether the UI supports the `form` action. If it is omitted, only providers that do not require additional inputs will be returned. If the provider has been preselected and requires additional inputs, this field is considered mandatory.
        - `input_types` AdditionalInputType[], required: The types of input that the UI is able to render
      - `consent` object: Can the UI capture the user's consent? This field declares whether the UI supports explicitly capturing and reporting the end user's consent for initiating the payment. If it is omitted, the providers available may be restricted if explicit consent is required.
        - `requirements` ConsentSupported: The details of the consents supported to be captured from the user.
          - `pis` ConsentSupportedPis, required
          - `ais` ConsentSupportedAis
            - `scopes` AisScope[], required

## Response `200`

Payment providers

- SearchPaymentsProviders
  - `items` PaymentsProvidersProvider[], required
    - `id` string, required: Unique ID for the Provider
    - `display_name` string
    - `icon_uri` string, uri
    - `logo_uri` string, uri
    - `bg_color` string: pattern: `^#[A-F0-9]{6}$`
    - `country_code` 'AT' | 'BE' | 'DE' | 'DK' | 'ES' | 'FI' | 'FR' | 'GB' | 'IE' | 'IT' | 'LT' | 'NL' | 'NO' | 'PL' | 'PT' | 'RO'
    - `swift_code` string: ISO 9362 international standard for Business Identifier Codes (BIC)
    - `capabilities` PaymentsProvidersCapabilities, required: Describes the capabilities of this provider. By default, will only display capabilities in `general_availability` or `public beta`. If `client_id` is available, will display capabilities available to the client.
      - `payments` object: Single payment initiation capabilities.
        - `bank_transfer` object: Bank transfer capability.
          - `release_channel` 'general_availability' | 'public_beta' | 'private_beta' | 'alpha', required
          - `availability` ProviderAvailability: Whether the provider is currently available. > 🚧 This feature is in beta
            - `recommended_status` 'healthy' | 'unhealthy', required
            - `updated_at` string, date-time, required: The point in time when this data was collected. Value is in UTC.
          - `schemes` PaymentsProvidersScheme[], required: List of payment schemes supported by this provider.
            - `id` string, required: The unique identifier for the scheme.
            - `requirements` PaymentsProvidersSchemeRequirements[], required
              - …
      - `mandates` object: Recurring payment mandate creation capabilities.
        - `vrp_sweeping` object: Mandates for the sweeping use case.
          - `release_channel` 'general_availability' | 'public_beta' | 'private_beta' | 'alpha', required
          - `availability` ProviderAvailability: Whether the provider is currently available. > 🚧 This feature is in beta
            - `recommended_status` 'healthy' | 'unhealthy', required
            - `updated_at` string, date-time, required: The point in time when this data was collected. Value is in UTC.
        - `vrp_commercial` object: Mandates for the commercial use case.
          - `release_channel` 'general_availability' | 'public_beta' | 'private_beta' | 'alpha', required
          - `availability` ProviderAvailability: Whether the provider is currently available. > 🚧 This feature is in beta
            - `recommended_status` 'healthy' | 'unhealthy', required
            - `updated_at` string, date-time, required: The point in time when this data was collected. Value is in UTC.
          - `use_cases` MandateVrpCommercialUseCase[], required: List of use cases supported by this provider.
        - `direct_debit` object: Direct Debit mandates.
          - `release_channel` 'general_availability' | 'public_beta' | 'private_beta' | 'alpha', required
    - `bin_ranges` object[]: A list of BIN (Bank Identification Numbers) ranges supported by the provider. Based on the ISO/IEC 7812-1:2017 BIN refers to the first eight numbers on a payment card, identifying the financial institution that issues the card.
      - `from` integer, required: The starting number of the BIN range (inclusive). A valid integer must represent the first eight digits of a payment card number.
      - `to` integer, required: The ending number of the BIN range (inclusive). A valid integer must represent the first eight digits of a payment card number.
    - `branches` Branch[]
      - `id` string, required: Unique ID for the branch
      - `display_name` string, required: The display name of the branch.
      - `search_aliases` string[]: Alternative search terms that should be used to help users find this branch.

## Other responses

- `400`: Invalid Parameters
- `401`: Unauthenticated
- `403`: Forbidden
- `429`: Rate Limit Exceeded
- `500`: Unknown Error

---

[API](https://skmtc.dev/truelayer/apis/payments-api-v3.md) - [All operations](https://skmtc.dev/truelayer/apis/payments-api-v3/llms.txt) - [OpenAPI document](https://skmtc.dev/truelayer/apis/payments-api-v3/revisions/a7c585fc9b84?raw)
