Data API basics

Access identity, accounts, transactions and balance data for all integrated banks with a single interface.


To get support for the Data API:

Available data

The Data API allows you to access the following data for connected accounts available from a provider:

  • Account: account holder name, account number, IBAN etc.
  • Credit card: card network, last four digits, name on card etc.
  • Transactions: description, amount, category, merchant name etc
  • Balances: current, available etc.
  • Regular payments: standing orders and direct debits

Use /providers to determine which data is available for each provider. The response includes scopes which contains a list of information relating to the account.

Supported countries

Check out our list of banks available for Data API in different countries.

Authentication flow

We offer a ready-made UX flow for you to easily let users connect their bank accounts to your application, or you can build your own fully custom flow on top of our API.

If you are regulated, you have 2 options for your auth flow:

  • Use our ready-made, customisable user journey
  • Build your own

Non-regulated and agents of TrueLayer customers must use TrueLayer’s flow, which is customisable to fit seamlessly into your application.

Authentication features

Data types


All of the responses returned by TrueLayer APIs are in JSON format. The description of the data types encoded in a JSON response is below.

stringA UTF-8 string
datetimeAn ISO8601 encoded date time
booleantrue or false
numberA float number

ISO20022 Text Fields

The Payments API constrains some fields to be limited to ISO 20022 text format. These fields are typically used for names and references in bank payment requests.

Valid characters for such a text field include:

/ – ? : ( ) . , ‘ +

Any other characters included will result in a validation error.

API response structure

All responses are JSON encoded.


Field nameTypeDescription
resultsarrayAn array of objects
    "results": [
            "hello": "world"


Field nameTypeDescription
errorstringAn error code for classification. eg: internal_error
error_descriptionstringWhen possible, extra details about the specific error
error_detailsobjectAdditional key/value error details if available
    "error":  "internal_error",
    "error_description": "Well, this is embarrassing!",
    "error_details": {
        "detail_key": "detail value"

See also