Learn how to integrate with our Payments API v1.


Payments API v3

The Payments API v3 is the latest version of the TrueLayer payments API. The Payments API v3 features all of the functionality of v1 and v2 of the payments API and more, so we always recommend you use v3 instead of other versions.

The TrueLayer Platform is integrated to UK and EU banks which offer Payment Initiation APIs. We provide a single public API that enables you to make payment requests to all integrated UK banks and some European banks.

If you are interested in offering payments in Europe, you can integrate with Payment API v2 as a private beta tester to get access to the full coverage of our integrated banks.

To use our Payments API, you need to:

For more information about the Payments API, check the Payments API FAQs. If you need further help integrating with the Payments API, contact Client Care.

In this section of the documentation you will find:

  • A Quick Start to get you up and running with the Payments API immediately
  • A guide to integrating the Payments API to your application
  • A changelog with a history of changes made to the API


All API endpoint URIs in this section are for the production environment. If you wish to follow this guide using the sandbox environment, please ensure that you change the endpoint domain from truelayer.com to truelayer-sandbox.com. You can also find all the sandbox endpoints in our Sandbox Postman collection.

Supported countries

Check out our list of banks available for Payments V1 in different countries.

Integration checklist

Below are two checklists, one is for using the TrueLayer UI to initiate payments and the other is for whitelabeling our service inside your own application. For the best user experience and the highest conversion rate, we recommend you integrate into your own UI.

Using your own UI

  1. Use our providers endpoint to build a provider selection screen for the user to choose their bank. All assets are supplied.
  2. Obtain a client credentials grant from the authentication server.
  3. Create a new single immediate payment, specifying the bank the user wants to use.
  4. Redirect the user to the URI specified in the API response.
  5. Handle the redirect back from the bank on the redirect_uri you set in the console.
  6. Poll our get info endpoint until you see a final status.


If you are unregulated as a PISP and you wish to use your own UI, you need to add the following disclaimer on the screen where you confirm the payment details with the user:

By clicking next you are permitting TrueLayer to initiate a payment from your bank account. You also agree to the TrueLayer terms and privacy policy.

For full guidance, refer to our Help Centre post or reach out to our Client Care team for further information.

Using our UI

  1. Obtain a client credentials grant from the authentication server.
  2. Create a new single immediate payment.
  3. Redirect the user to the URI specified in the API response.
  4. Handle the redirect back from the bank on the redirect_uri you set in the console.
  5. Poll our get info endpoint until you see a final status.

Get setup

Test in sandbox

To use sandbox, all you have to do is replace truelayer.com with truelayer-sandbox.com in your requests. Make sure to use the correct credentials for sandbox.

In sandbox, you will have access to banks that have a sandbox environment. With these banks, you can send a mock payment to simulate the behaviour of a live payment.

Get your client ID and secret

To authenticate to our API, you will need to use your client ID and secret for the environment you are using (live or sandbox). You can find both of these values in our console.

The client ID can be found in the settings page. If you don't have your client secret, you can generate a new one here.

To upgrade your account to the live environment, you will need to give our sales team your Client ID. In the sandbox area of the console, follow these steps:

  1. Go to your Console > Payments API.
  2. Select Go to live env.
  3. Go to the Settings tab.
  4. Copy the client ID field.
  5. Send this client ID to our sales team.

Add a redirect_uri

Once the user has authenticated with their bank, we will redirect them back to your application. Add this URI to the console so that we can validate it when you create a payment.

Add the redirect to the settings page, you can add as many as you like.

How to present this payment method to your users

The only requirement for your user interface is that you should not embed the payment flow as a frame within a larger frameset. Most banks will not accept their flow running this way and will block the user from continuing. However, running as a webview should not be a problem if you wish to initiate the payment from within a mobile application.

When presenting the end user with the option to use this payment method, we recommend you label the option as Pay with Bank rather than mentioning TrueLayer or Open Banking. This increases user trust and confidence in using the service.



curl -X POST \
    -d grant_type=client_credentials \
    -d client_id=${client_id} \
    -d client_secret=${client_secret} \
    -d scope=payments \


  "access_token": "JWT-ACCESS-TOKEN-HERE",
  "expires_in": 3600,
  "token_type": "Bearer"

Use our authentication server to obtain a client credentials grant. You will need to use this on your requests to the Payments API.

Unlike our Data API, this grant doesn’t represent a user, but a client creating the payment.

See also

Did this page help you?