All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[1.0.0] - Unreleased
Added
- Initial release of
monzo. - Full OAuth2 authorization-code flow:
Monzo.Auth.build_authorization_url/1,exchange_code/2,refresh_token/2,logout/1,who_am_i/1. Monzo.Client(immutable config struct) +Monzo.TokenStore(supervisedGenServer) for automatic access-token refresh on 401, with a configurable:on_refreshpersistence hook.- Resource modules for the full Monzo API surface:
Monzo.Accounts,Monzo.Balances,Monzo.Pots,Monzo.Transactions(including a lazyStream-basedstream/2for full-history pagination),Monzo.FeedItems,Monzo.Attachments,Monzo.Receipts,Monzo.Webhooks. - Typed exception hierarchy (
Monzo.Error.APIError,TimeoutError,NetworkError,ValidationError,WebhookVerificationError). - Automatic exponential-backoff retries with jitter for transient (429/5xx/network) failures on idempotent requests.
Monzo.Webhooks.parse_event/1/assert_expected_account/2helpers for safely handling inbound webhooks.- Zero required dependencies - built entirely on
:inets/:httpc,:ssl,:crypto, and a vendoredMonzo.JSONcodec.