Packages
monzo_client
1.0.0
A complete, production-grade Elixir client for the Monzo API: OAuth2, Accounts, Balance, Pots, Transactions, Feed Items, Attachments, Transaction Receipts, and Webhooks. Zero required dependencies.
Current section
Files
Jump to
Current section
Files
lib/monzo.ex
defmodule Monzo do
@moduledoc """
A complete, production-grade Elixir client for the [Monzo API](https://docs.monzo.com).
`monzo` has zero required dependencies - it's built entirely on
`:inets`/`:httpc`, `:ssl`, and `:crypto` (all part of a standard
Erlang/OTP install) plus a small vendored JSON codec, so it never forces
a version choice on your `Jason`, `Req`, `Finch`, or `Tesla` dependencies.
## Quickstart
client = Monzo.Client.new(
access_token: System.fetch_env!("MONZO_ACCESS_TOKEN"),
refresh_token: System.fetch_env!("MONZO_REFRESH_TOKEN"),
client_id: System.fetch_env!("MONZO_CLIENT_ID"),
client_secret: System.fetch_env!("MONZO_CLIENT_SECRET")
)
{:ok, accounts} = Monzo.Accounts.list(client)
{:ok, balance} = Monzo.Balances.read(client, hd(accounts).id)
See the `Monzo.Client` and `Monzo.Auth` docs for authenticating, and each
resource module (`Monzo.Accounts`, `Monzo.Balances`, `Monzo.Pots`,
`Monzo.Transactions`, `Monzo.FeedItems`, `Monzo.Attachments`,
`Monzo.Receipts`, `Monzo.Webhooks`) for everything else.
> #### Scope {: .info}
>
> The Monzo API is intended for personal use or a small, explicitly
> allowed set of users - not for public multi-tenant applications. See
> [Monzo's docs](https://docs.monzo.com/#acceptable-use-policy).
"""
end