Payment providers
See a list of the providers that we support.
A provider is a bank, or other financial institution, that provides TrueLayer with access to financial data through APIs.
There are several ways to retrieve a list of providers:
- make a POST request to the v2
/single-immediate-payments-providers
endpoint - start the authorisation flow for a
user_selected
payment - if you already have an account, go to Console for a full list of providers by country
What the /single-immediate-payments-providers
endpoint returns
/single-immediate-payments-providers
endpoint returnsUse the v2 /single-immediate-payments-providers
endpoint to retrieve a list of providers for payments. This list also includes the following information:
- a
provider_id
for the provider - provider logos with URLs
- the country the provider is in
- information about applicable payment fees
- the available authorisation methods
- a list of the payments rails supported by the provider
- the current availability of the provider with an error rate
/single-immediate-payments-providers
can be useful when you are creating a customised integration, using thepreselected
provider selection method to select a provider.However, if you are integrating for a standard use case with the
user_selected
provider selection method, we recommend that you do not use the/single-immediate-payments-providers
endpoint.
We provide provider logos in SVG format to maximise quality and scalability.
Check our API reference for more information about the v2 version of the /providers
endpoint.
Example /single-immediate-payments-providers
response
/single-immediate-payments-providers
responseThis is an example of the response that the v2 /single-immediate-payments-providers
endpoint returns:
{
"results": [
{
"provider_id": "ob-revolut",
"logo_url": "https://truelayer-provider-assets.s3.amazonaws.com/global/logos/revolut.svg",
"icon_url": "https://truelayer-provider-assets.s3.amazonaws.com/global/icons/revolut.svg",
"display_name": "Revolut",
"country": "GB",
"divisions": [
"retail"
],
"single_immediate_payment_schemes": [
{
"scheme_id": "faster_payments_service",
"fee_options": [
{
"fee_option_id": "string",
"beneficiary_fee": "free",
"remitter_fee": "free"
}
],
"requirements": "(Omitted from this example)"
}
],
"availability": {
"recommended_status": "healthy",
"error_rate": 0.5,
"updated_at": "2023-05-24T13:35:19.883Z"
}
}
]
}
Use a provider_id
to create payments
provider_id
to create paymentsWhen you create a payment, you can choose a provider selection method through the provider_selection
object:
- The
user_selected
method enables your user to choose a provider through a provider selection screen. - The
preselected
method enables you to specify the provider that the payment should be made through. This can be useful if your user has paid you before and you are remembering their details, or if you have developed your own provider selection method used prior to payment authorisation. To specify a provider, you need to supply aprovider_id
andscheme_id
.
Configure the /single-immediate-payments-providers
endpoint
/single-immediate-payments-providers
endpointThere are four things to consider when you use the /single-immediate-payments-providers
endpoint.
Remitter details for EU banks
Some European banks outside of the UK, Ireland, and France may require remitter details. To use these providers, you need to collect the remitter's account details. If you don't collect these details, the payment fails.
Provide the remitter's account details in the payment_method.provider_selection.remitter
object (which only displays if you use preselected
as the provider selection method).
To see if a provider needs remitter account details, check the response of the /single-immediate-payments-providers
endpoint. If they are required, the value of the following Boolean parameter in the response is true
:
results.single_immediate_payment_schemes.requirements.single_immediate_payment.remitter.mandatory
Possible authorisation flow types
Most integrations use redirect
as the value for the auth_flow_type
object. However, you can also use embedded
to return providers that use an embedded authorisation flow.
Payment rails and schemes
The /single-immediate-payments-providers
endpoint returns the payment rails that a provider supports. The supported payment rails are returned as scheme_id
in the results.single_immediate_payment_schemes
object. Each payment rail is represented by a scheme_id
.
The faster_payments_service
and sepa_credit_transfer_instant
payment rails are considered instant, as payments on them settle within seconds or minutes. The sepa_credit_transfer
payment rail isn't considered instant, as payments on it take 1-3 days to settle.
When you create a payment, you can choose four different options for how the scheme is selected. You select the options by providing the scheme selection method in the payment_method.scheme_selection.type
object.
Scheme_selection method | Description |
---|---|
instant_only | Only providers that support instant payments display during provider selection. Optionally, you can provide a Boolean value for allow_remitter_fee object to decide whether providers that charge a fee for instant payments display. |
instant_preferred | Only providers that support instant payments display during provider selection. However, payments default to a non-instant method if the instant one isn't available at the time of payment. Optionally, you can provide a Boolean value for allow_remitter_fee object to decide whether providers that charge a fee for instant payments display. |
preselected | The payment scheme for the payment is preselected at payment creation within the payment_method.scheme_selection.scheme_id object. |
user_selected | All schemes are supported and will be chosen based on the user's selection of banking provider and scheme. |
Provider availability
This feature is in beta, so its functionality may change.
The payments API returns the availability of each provider whenever you:
- make a request to the
/single-immediate-payments-providers
endpoint - start an auth flow for a
user_selected
payment
This information is returned in the availability
object, which contains three objects, explained below.
Name of object | Meaning |
---|---|
recommended_status | Can either have a value of healthy or unhealthy . These mean that a provider is available or unavailable respectively. |
error_rate | A ratio that shows the ratio above which a provider is considered healthy. This changes based on the provider. |
updated_at | When the provider's availability was checked, as a RFC-3339 timestamp. |
Updated about 2 months ago