Tink

Hex.pmDocsLicense: MIT

A production-ready Elixir client for the Tink open banking API.

Tink provides comprehensive access to Tink's full product suite — account aggregation, transaction data, financial insights, account and income verification — with built-in retry logic, optional caching, and optional rate limiting.

Features

Installation

# mix.exs
def deps do
  [
    {:tink, "~> 0.1"},

    # Optional — enable caching
    {:cachex, "~> 4.1"},

    # Optional — enable rate limiting
    {:hammer, "~> 7.2"}
  ]
end

Quick Start

# 1. Configure credentials (config/runtime.exs)
config :tink,
  client_id:     System.fetch_env!("TINK_CLIENT_ID"),
  client_secret: System.fetch_env!("TINK_CLIENT_SECRET")

# 2. Build a client
{:ok, client} = Tink.Client.new(
  client_id:     "your_client_id",
  client_secret: "your_client_secret"
)

# 3. Authenticate
{:ok, token} = Tink.Auth.client_credentials(client,
  scope: "accounts:read,transactions:read"
)
client = Tink.Client.with_token(client, token)

# 4. Call the API
{:ok, accounts} = Tink.Accounts.list(client)

Products Covered

Module Description
Tink.Accounts Bank account data and balances
Tink.Transactions Full transaction history
Tink.TransactionsOneTimeAccess Single-fetch transaction consent
Tink.TransactionsContinuousAccess Ongoing transaction sync
Tink.AccountCheck Bank account ownership verification
Tink.BalanceCheck Real-time balance verification
Tink.BusinessAccountCheck Business account ownership verification
Tink.IncomeCheck Income stream analysis and PDF reports
Tink.ExpenseCheck Spending categorisation and analysis
Tink.RiskInsights Risk scoring and anomaly signals
Tink.RiskCategorisation Transaction-level risk categories
Tink.Investments Investment accounts and holdings
Tink.Loans Loan and mortgage accounts
Tink.Budgets User budget creation and tracking
Tink.CashFlow Cash flow analysis
Tink.FinancialCalendar Upcoming financial events
Tink.Statistics Aggregated financial statistics
Tink.Categories Tink transaction categories
Tink.Users Tink user management
Tink.Providers Bank provider metadata
Tink.Link Tink Link URL generation
Tink.Connectivity Provider connectivity checks

Configuration

config :tink,
  client_id:            System.get_env("TINK_CLIENT_ID"),
  client_secret:        System.get_env("TINK_CLIENT_SECRET"),
  base_url:             "https://api.tink.com",  # default
  timeout:              30_000,                   # ms
  max_retries:          3,
  enable_rate_limiting: true,
  cache: [
    enabled:  true,
    max_size: 1_000
  ]

See the Configuration guide for the full reference.

Documentation

Full documentation is available on HexDocs.

License

MIT — see LICENSE.