The API for your bank account

Teller enables your applications to connect with all of your users' bank accounts across institutions, providing one easy to use API to move money, make payments, view transactions, and more.

Get early access
$ http https://api.teller.io/accounts "Authorization: Bearer $TOKEN"
HTTP/1.1 200 OK
cache-control: max-age=0, private, must-revalidate
content-length: 1581
content-type: application/json; charset=utf-8
date: Sun, 13 Nov 2016 21:12:55 GMT
server: Teller API

{
    "data": [
        {
            "account_number_last_4": "0001", 
            "balance": "123.45", 
            "bank_code": "00-00-01", 
            "currency": "GBP", 
            "id": "8babe467-feed-40ad-869a-f1b5beefface", 
            "institution": "barclays", 
            "links": {
                "self": "https://api.teller.io/accounts/8babe467-feed-40ad-869a-f1b5beefface, 
                "transactions": "https://api.teller.io/accounts/8babe467-feed-40ad-869a-f1b5beefface/transactions"
            }, 
            "name": "THE BARCLAYS BANK A/C", 
            "refreshed_at": "2016-11-13T01:34:13"
        }
    ]
}

Simple integration using your language of choice

With first-party OSS libraries in Node, Ruby, PHP, .Net, Java, Elixir, and more you can integrate Teller using the language you want.

# Teller applications use client certificates to guarantee end-to-end security,
# and Teller's tools make them easy to use. Client certificates are mandatory
# for production applications, but you don't need to use them for hacking
# around with read-only access to your own bank accounts.

Teller.config do |c|
  c.certificate = "priv/teller_developer_certificate.pem"
  c.private_key = "priv/teller_developer_private_key.pem"
end

# Here we initialise a client with an application token. The token is analagous
# to an OAuth 2.0 bearer token, i.e. it represents the owner of the bank accounts
# we're accessing.

client = Teller::Client.new token: "application_token"

# Let's retrieve a collection of bank accounts and pick the first one.

account = client.get("/accounts").first

# Now let's go ahead and get the recent transactions for that account

transactions = client.get(account.links["transactions"])

Powerful APIs

Teller provides a rich suite of APIs allowing you to not only build applications that can read data from your users' bank accounts, but also applications that perform write operations, e.g. making payments.

  • View accounts
  • Check balances
  • View transaction history
  • Make transfers between accounts
  • Make payments to 3rd parties
  • Create, view & destroy payees
  • View & cancel Direct Debits
  • View & cancel standing orders

Simple user journeys

Getting users through the authorisation flow quickly is crucial to great UX. We've made it safe and easy for users to grant your application permissions on their bank accounts and back into your app as quick as possible.

Ready to go into production?

Contact sales for priority access or join the waiting list.

close