# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.0.0] - Unreleased
### Added
#### Core infrastructure
- `Weavr.Config` — environment-aware (Sandbox/Live) base URL derivation for
both Multi and Multi Back Office products, with configurable retry/timeout settings.
- `Weavr.HTTP` — zero-dependency transport built on `:httpc` with exponential
backoff + jitter retries on 429/500/502/503/504, idempotency key support,
telemetry instrumentation, and proper timeout handling.
- `Weavr.Client` — stateful `GenServer`-based session with `child_spec/1` for
supervision trees, holding auth/access token and identity selection.
- `Weavr.Auth` — login (password/biometrics), Auth Token → Access Token exchange,
identity listing, logout, SCA/PSD2 step-up detection. **Fully verified.**
- `Weavr.Error` — structured error hierarchy (`API`, `Network`, `Timeout`,
`InvalidRequest`, `Decode`) all implementing `Exception` for use with
pattern matching or `Weavr.unwrap!/1`.
- `Weavr.JSON` — vendored dependency-free JSON codec, auto-delegating to Jason
if configured. Handles UTF-8 pass-through and `\uXXXX` escapes.
- `Weavr.Telemetry` — emits `[:weavr, :request, :start|:stop|:exception]` events;
delegates to real `:telemetry` if present, otherwise a compatible built-in dispatcher.
- Weavr.Resource — internal shared HTTP helper DRY-ing up all resource modules.
#### Identity & onboarding
- `Weavr.Corporates` — **fully verified**: create, get, update, send/verify
email, start/get KYB, charge custom fee.
- `Weavr.Consumers` — **fully verified**: create, get, update, send/verify
email, start/get KYC.
- `Weavr.Users` — **fully verified**: list (including root users), get, create,
update, activate, deactivate, send invite, send enrolment.
- `Weavr.Passwords` — **fully verified**: create, update, lost/send, lost/verify.
- `Weavr.Identities` — convenience delegation shim to Corporates/Consumers.
#### Instruments
- `Weavr.Accounts` — **fully verified**: list, create, get, update, assign IBAN,
get IBAN, block, unblock, statement, destroy.
- `Weavr.Cards` — **fully verified**: list, create, get, update, block, unblock,
destroy, upgrade to physical, statement, get/create/update/delete spend rules.
- `Weavr.LinkedAccounts` — **fully verified**: list, create, get, remove.
#### Transactions
- `Weavr.Transfers` — **fully verified**: create, get, list (intra-identity fund
transfers between managed accounts and cards).
- `Weavr.Sends` — **fully verified**: create, get, list (Outgoing Wire Transfers
between identities or to external bank accounts).
- `Weavr.Bulk` — **fully verified**: submit, execute, pause, resume, cancel, get,
list, list-operations. Full state machine documented. 10,000-op limit enforced
client-side. `BulkProcessorConflict` detection helper.
#### Back Office
- `Weavr.BackOffice` — **fully verified** auth scheme (Bearer token, distinct
from Multi's `auth_token`): get access token, get delegated access token,
invite user, get managed account + statement, get managed card +
get/create/update spend rules, get transfer, get/pause/resume/cancel bulk.
#### Testing
- `Weavr.Simulator` — Sandbox-only simulator endpoints: simulate deposit
(incoming wire transfer), card purchase (authorisation), card settlement,
KYB outcome, KYC outcome. Guards against accidental use in Live environment.
- `Weavr.TestSupport.MockServer` — self-contained mock HTTP server (test-env only)
with per-route response functions; used by the library's own 171-test suite
without any external test dependency.