# Changelog

All notable changes to this project are documented in this file.
The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

## [1.0.0] - Unreleased

### Added

- Initial release covering the full SumUp API surface, verified
  field-by-field against SumUp's published OpenAPI spec:
  Checkouts (including payment-method discovery and Apple Pay sessions),
  Readers (including live device status), Customers, Payment Instruments,
  Transactions (including refunds), Payouts, Receipts, Members,
  Memberships, Roles, and Merchants.
- `Sumup.Config` — `NimbleOptions`-validated client configuration with
  lazy secret resolution (`{:system, var}` / `{module, fun, args}`).
- `Sumup.Client` — shared HTTP transport with exponential backoff +
  jitter retries, `retry-after` support, and `:telemetry` spans.
- `Sumup.Error` — unified decoding of both RFC 9457 Problem Details and
  SumUp's legacy (single or list) error shapes.
- `Sumup.Money.Float` / `Sumup.Money.MinorUnit` — the two money
  representations used across the API, plus currency exponent helpers.
- `Sumup.Pagination` — lazy `Stream`-based cursor/offset pagination,
  used by `Sumup.Transactions.list_all/3` and `Sumup.Members.list_all/3`.
- `Sumup.Webhooks` / `Sumup.WebhookEvent` — parsing and handling for
  SumUp's checkout webhooks. Reflects, rather than papers over, the fact
  that these webhooks carry no HMAC/signature: `verify/2` performs the
  server-side re-fetch SumUp's own docs recommend as the actual trust
  boundary.
- Full test suite (160 tests) using `Req.Test` stubs (no external HTTP
  server dependency) covering happy paths, validation failures, retry/
  backoff behavior, pagination edge cases, and money/error normalization
  boundary conditions; `credo --strict` and `dialyzer` clean.
- `RELEASING.md` — a step-by-step hex.pm publish checklist.
