Skip to main content

CHANGELOG.md

# 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.