All notable changes to this project are documented in this file. The format follows Keep a Changelog.

[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.ConfigNimbleOptions-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.