# StarlingBank v1.0.0 - Table of Contents

> A complete, production-grade Elixir client for the Starling Bank Public API (Accounts, Payments, Savings Goals, Direct Debits, Cards, Webhooks, and more).

## Pages

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

## Modules

- [StarlingBank](StarlingBank.md): A complete, production-grade Elixir client for the
[Starling Bank Public API](https://developer.starlingbank.com/docs).
- [StarlingBank.AccountHolders](StarlingBank.AccountHolders.md): Account holder identity — type, name, individual/joint/business details,
and registered address.
- [StarlingBank.Accounts](StarlingBank.Accounts.md): Accounts — list the account holder's bank accounts, fetch account
identifiers (sort code / account number, IBAN), and confirmation of funds.
- [StarlingBank.Balances](StarlingBank.Balances.md): Account balance — cleared, effective, available and pending balances.
- [StarlingBank.Cards](StarlingBank.Cards.md): Cards — list cards on an account and manage their controls (freeze,
spending limits, geographic/channel restrictions).
- [StarlingBank.Client](StarlingBank.Client.md): A reusable, explicit client struct.
- [StarlingBank.Config](StarlingBank.Config.md): Runtime configuration resolution for `StarlingBank`.
- [StarlingBank.CustomerOnboarding](StarlingBank.CustomerOnboarding.md): Customer onboarding — used by registered Third-Party Providers (TPPs) with
the `customer-onboarding:write` scope to onboard new customers on
Starling's behalf via the Onboarding API.
- [StarlingBank.DirectDebits](StarlingBank.DirectDebits.md): Direct Debit mandates — list and cancel Direct Debit instructions set up
against an account.
- [StarlingBank.Merchants](StarlingBank.Merchants.md): Merchant enrichment data — merchant details and merchant location/branch
details associated with card transactions.
- [StarlingBank.OAuth](StarlingBank.OAuth.md): OAuth2 authorization code flow helpers — exchanging an authorization code
for an access/refresh token, and refreshing an expired access token.
- [StarlingBank.Payees](StarlingBank.Payees.md): Payees — saved recipients for payments, including their bank account
details and optional profile images.
- [StarlingBank.Payments](StarlingBank.Payments.md): Outbound payments — one-off local (Faster Payments) payments, international
payments, and management of standing orders.
- [StarlingBank.Receipts](StarlingBank.Receipts.md): Receipts — attach itemized receipts (with optional photo attachments) to
feed item transactions.
- [StarlingBank.Resource](StarlingBank.Resource.md): Shared behaviour implemented by every resource struct in `StarlingBank.Resources.*`.
- [StarlingBank.SavingsGoals](StarlingBank.SavingsGoals.md): Savings Goals — create, fund, withdraw from, and delete savings pots
attached to an account.
- [StarlingBank.Transactions](StarlingBank.Transactions.md): Transaction feed ("feed items") — the unified view of money movements on
an account: card payments, transfers, direct debits, etc.
- [StarlingBank.Webhooks](StarlingBank.Webhooks.md): Webhook management — register, list, and delete feed-item webhook
subscriptions to receive real-time push notifications instead of polling,
plus signature verification for incoming webhook payloads.

- HTTP
  - [StarlingBank.HTTP.Client](StarlingBank.HTTP.Client.md): Thin, instrumented HTTP wrapper used by every resource module.
  - [StarlingBank.HTTP.Transport](StarlingBank.HTTP.Transport.md): Behaviour for the low-level HTTP transport used by `StarlingBank.HTTP.Client`.
  - [StarlingBank.HTTP.Transport.Httpc](StarlingBank.HTTP.Transport.Httpc.md): Default `StarlingBank.HTTP.Transport` implementation, built entirely on
Erlang/OTP's `:httpc` and `:ssl` (`:inets`, `:ssl`, `:public_key`) — no
third-party HTTP client dependency required.

- Errors
  - [StarlingBank.Error](StarlingBank.Error.md): A normalized error struct returned by every `StarlingBank` function on failure.

