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.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-aftersupport, and:telemetryspans.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— lazyStream-based cursor/offset pagination, used bySumup.Transactions.list_all/3andSumup.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/2performs the server-side re-fetch SumUp's own docs recommend as the actual trust boundary.- Full test suite (160 tests) using
Req.Teststubs (no external HTTP server dependency) covering happy paths, validation failures, retry/ backoff behavior, pagination edge cases, and money/error normalization boundary conditions;credo --strictanddialyzerclean. RELEASING.md— a step-by-step hex.pm publish checklist.