Tink.Budgets (Tink v1.0.0)

Copy Markdown View Source

Budget management — one-off and recurring budgets. Requires budgets:read and budgets:write scopes.

get/2 and list/2 are cached 5 minutes per user. Write operations (create, update, archive, delete) invalidate the cache.

Summary

Functions

Archive a budget. Requires budgets:write. Invalidates cache.

Create a budget. Requires budgets:write. Invalidates list cache.

Create a one-off budget. Requires budgets:write.

Create a recurring budget. Requires budgets:write.

Delete a budget. Requires budgets:write. Invalidates cache.

Get a budget by ID. Cached 5 min.

Get budget details (period breakdown). Requires budgets:read.

Get transactions within a budget. Requires budgets:read.

List all budgets. Cached 5 min.

List recommended budgets based on spending patterns. Requires budgets:read.

List budget summaries. Requires budgets:read.

Update a budget. Requires budgets:write. Invalidates cache.

Functions

archive(client, id)

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

Archive a budget. Requires budgets:write. Invalidates cache.

create(client, params)

@spec create(Tink.Client.t(), map()) :: {:ok, map()} | {:error, Tink.Error.t()}

Create a budget. Requires budgets:write. Invalidates list cache.

create_one_off(client, params)

@spec create_one_off(Tink.Client.t(), map()) ::
  {:ok, map()} | {:error, Tink.Error.t()}

Create a one-off budget. Requires budgets:write.

create_recurring(client, params)

@spec create_recurring(Tink.Client.t(), map()) ::
  {:ok, map()} | {:error, Tink.Error.t()}

Create a recurring budget. Requires budgets:write.

delete(client, id)

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

Delete a budget. Requires budgets:write. Invalidates cache.

get(client, id)

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

Get a budget by ID. Cached 5 min.

get_details(client, id)

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

Get budget details (period breakdown). Requires budgets:read.

get_transactions(client, id, opts \\ [])

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

Get transactions within a budget. Requires budgets:read.

list(client, opts \\ [])

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

List all budgets. Cached 5 min.

list_recommended(client)

@spec list_recommended(Tink.Client.t()) :: {:ok, map()} | {:error, Tink.Error.t()}

List recommended budgets based on spending patterns. Requires budgets:read.

list_summaries(client)

@spec list_summaries(Tink.Client.t()) :: {:ok, map()} | {:error, Tink.Error.t()}

List budget summaries. Requires budgets:read.

update(client, id, params)

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

Update a budget. Requires budgets:write. Invalidates cache.