# Weavr v1.0.0 - Table of Contents

> A zero-dependency Elixir client for the Weavr Multi embedded banking API: authentication, bulk operations, corporates, consumers, accounts, cards, transfers, sends, linked accounts, users, passwords, back-office, and simulator.

## Pages

- [Weavr](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- Core
  - [Weavr](Weavr.md): An Elixir client for the [Weavr](https://weavr.io) Multi embedded banking API.
  - [Weavr.Client](Weavr.Client.md): A stateful session wrapper around `Weavr.Config` + `Weavr.Auth`.
  - [Weavr.Config](Weavr.Config.md): Account-level configuration for talking to the Weavr Multi API:
which environment to call, and the `api-key` that identifies your
Weavr account on every request.
  - [Weavr.Error](Weavr.Error.md): Base behaviour and shared shape for all errors raised or returned by
`Weavr`.
  - [Weavr.HTTP](Weavr.HTTP.md): Low-level HTTP transport for the Weavr client.
  - [Weavr.JSON](Weavr.JSON.md): Minimal, dependency-free JSON encoder/decoder.
  - [Weavr.Telemetry](Weavr.Telemetry.md): Telemetry event dispatch used internally by `Weavr.HTTP`.

- Authentication
  - [Weavr.Auth](Weavr.Auth.md): Authentication and session token handling for the Weavr Multi API.
  - [Weavr.AuthenticationFactors](Weavr.AuthenticationFactors.md): Authentication factor enrolment — register a device or channel for
multi-factor authentication.
  - [Weavr.StepUp](Weavr.StepUp.md): Step-up authentication challenges (SCA / PSD2).

- Identities
  - [Weavr.Consumers](Weavr.Consumers.md): Consumer identities — individuals onboarded to the Weavr platform.
  - [Weavr.Corporates](Weavr.Corporates.md): Corporate identities — companies onboarded to the Weavr platform.
  - [Weavr.Identities](Weavr.Identities.md): Convenience delegation module for working with both Corporate and Consumer
identities without specifying the type at the call site.
  - [Weavr.Passwords](Weavr.Passwords.md): Password management for Weavr users.
  - [Weavr.Users](Weavr.Users.md): Users and Authorised Users.

- Instruments
  - [Weavr.Accounts](Weavr.Accounts.md): Managed Accounts — financial instruments that hold funds for their owner.
  - [Weavr.Cards](Weavr.Cards.md): Managed Cards — virtual and physical payment cards.
  - [Weavr.LinkedAccounts](Weavr.LinkedAccounts.md): Linked Accounts — external bank accounts connected to a Weavr identity.

- Transactions
  - [Weavr.Bulk](Weavr.Bulk.md): Bulk process operations for the Weavr Multi API.
  - [Weavr.Sends](Weavr.Sends.md): Send transactions — Outgoing Wire Transfers to different identities.
  - [Weavr.Transfers](Weavr.Transfers.md): Transfer transactions — move funds between instruments within the same identity.

- Back Office
  - [Weavr.BackOffice](Weavr.BackOffice.md): Weavr Multi Back Office API.

- Testing
  - [Weavr.Simulator](Weavr.Simulator.md): Sandbox-only simulator endpoints for testing.

- Exceptions
  - [Weavr.Error.API](Weavr.Error.API.md): Raised/returned when the Weavr API responds with an HTTP error status
(4xx or 5xx) and a parsed error body.
  - [Weavr.Error.Decode](Weavr.Error.Decode.md): Raised/returned when a response body could not be parsed as JSON, or
did not match the expected shape for the resource being decoded.

  - [Weavr.Error.InvalidRequest](Weavr.Error.InvalidRequest.md): Raised/returned for client-side validation failures that are caught
*before* a request is sent — e.g. a required parameter is missing, or
an enum value isn't one Weavr accepts. Catching these early saves a
round trip and gives a much more specific error than a generic 400.

  - [Weavr.Error.Network](Weavr.Error.Network.md): Raised/returned when the underlying transport fails before a response
was received at all (DNS failure, connection refused, TLS error, the
connection was reset, etc). This is distinct from `Weavr.Error.API`,
which means the server *did* respond, just with an error status.

  - [Weavr.Error.Timeout](Weavr.Error.Timeout.md): Raised/returned when a request did not complete within the configured
`:timeout` / `:recv_timeout`.

  - [Weavr.JSON.DecodeError](Weavr.JSON.DecodeError.md): Raised when a binary cannot be decoded as JSON.
  - [Weavr.JSON.EncodeError](Weavr.JSON.EncodeError.md): Raised when a term cannot be encoded as JSON.

