Production-grade Elixir client for the Tink Open Banking API.

Installation

{:tink, "~> 0.2"}

Configuration

config :tink,
  client_id: System.get_env("TINK_CLIENT_ID"),
  client_secret: System.get_env("TINK_CLIENT_SECRET"),
  webhook_secret: System.get_env("TINK_WEBHOOK_SECRET")

Quick start

{:ok, app_client} = Tink.app_client("authorization:grant user:create")
{:ok, user_client} = Tink.user_client(redirect_code)
{:ok, accounts}    = Tink.Accounts.list(user_client)
all_txns = Tink.Transactions.stream(user_client) |> Enum.to_list()

See individual module docs for full API coverage.

Summary

Functions

app_client(scope, opts \\ [])

@spec app_client(
  String.t(),
  keyword()
) :: {:ok, Tink.Client.t()} | {:error, Tink.Error.t()}

user_client(code, opts \\ [])

@spec user_client(
  String.t(),
  keyword()
) :: {:ok, Tink.Client.t()} | {:error, Tink.Error.t()}