Provider selection

Providers

Providers are PIS providers that are utilised via payment_method type bank_transfer. Providers are currently limited to the banks of the region in which the payment is being made.

For a bank_transfer to become successful, one of the first conditions to be met is a provider being selected.
How this is going to happen is determined by the choice of provider_selection value when creating the payment.

There are two different approaches to take, only one of which we strongly recommend unless there is a specific use case that warrants the alternative.

  1. user_selected
  2. preselected

user_selected (recommended)

A typical request body for a payment created with this provider_selection type will look like the following

{
  "amount_in_minor": 100,
  "currency": "GBP",
  "payment_method": {
    "type": "bank_transfer",
    "provider_selection": {
      "type": "user_selected"
    },
    "beneficiary": {
      "type": "external_account",
      "account_holder_name": "Jane Doe",
      "reference": "some-reference",
      "account_identifier": {
        "type": "sort_code_account_number",
        "sort_code": "123456",
        "account_number": "12345678"
      }
    }
  },
  "user": {
    "name": "John Doe",
    "email": "[email protected]"
  }
}

When a payment is created with provider_selection type set as user_selected, two action types will become available during authorisation of the payment. If you are using Hosted Payment Page, iOS SDK or Android SDK to get the payment authorised, these actions will be taken care of for you.

Order of eventsOrder of events

Order of events

provider selection filter

You can also filter which providers will be enabled during the authorisation of the payment when provider_selection action is being handled by Hosted Payment Page, iOS SDK or Android SDK, or by your frontend components directly for direct integration.

A request body for user_selected type with a filter looks like

{
  "amount_in_minor": 100,
  "currency": "GBP",
  "payment_method": {
    "type": "bank_transfer",
    "provider_selection": {
      "type": "user_selected",
      "filter": {
        "countries": ["GB"],
        "release_channel": "general_availability"
      }
    },
   .
   .
   .
}

Filter options

  1. Countries

You can limit the providers to be from the countries of your choice.

Currently you can set it to include GB, IE or FR.

If left empty, it will include all three available countries.

  1. Release Channel

You can configure the release channel you want the providers to be included in.
Currently available release channels in order of lifecycle are

  • alpha
  • private_beta
  • public_beta
  • general_availability

Alpha being the earliest and general availability the most mature channel.
If you set the channel to one of these values, the providers will be from all the channels under the value in the above list.

For example, alpha will include all channels, while public_beta will include only public_beta and general_availability.

🚧

Currently, only Great Britain, Ireland and a subset of France providers are available.

If you need to set a country filter for the provider selection, only three of these countries will be available for choice.

🚧

It is not recommended to use the filter options other than shown here unless there is a specific use case.

preselected

A typical request body for a payment created with this provider_selection type will look like the following

{
  "amount_in_minor": 100,
  "currency": "GBP",
  "payment_method": {
    "type": "bank_transfer",
    "provider_selection": {
      "type": "preselected",
      "provider_id": "ob-monzo"
    },
    "beneficiary": {
      "type": "external_account",
      "account_holder_name": "Jane Doe",
      "reference": "some-reference",
      "account_identifier": {
        "type": "sort_code_account_number",
        "sort_code": "123456",
        "account_number": "12345678"
      }
    }
  },
  "user": {
    "name": "John Doe",
    "email": "[email protected]"
  }
}

This option will set the payment to happen through a specific provider TrueLayer supports. You can retrieve these providers from one of our v2 endpoints. For more, refer here.

Choosing the type of provider_selection will essentially remove provider_selection action from the authorisation flow.

Order of events for a `preselected` `provider_selection` typeOrder of events for a `preselected` `provider_selection` type

Order of events for a preselected provider_selection type


Did this page help you?