# Changelog
All notable changes to this project are documented here. This project adheres
to [Semantic Versioning](https://semver.org/spec/v2.0.0.html) and
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
## [0.1.0] — Unreleased
The first release. Complete coverage of the Nomba One subscription-billing API.
### Added
- **Client** — `Nombaone.new/2`, key-prefix → host derivation, per-client and
per-call `timeout` / `max_retries` / `headers` / `idempotency_key`, and a
`with_response` option exposing the request id and raw headers.
- **Transport** — a swappable `Nombaone.Transport` behaviour, defaulting to a
zero-dependency `:httpc` adapter with TLS verified against the OS trust store.
- **Money-safety** — an `Idempotency-Key` computed once per POST and reused
across automatic retries; full-jitter backoff honoring `Retry-After`; retries
scoped to transport failures, 408/429/5xx, and in-flight idempotency conflicts.
- **Full resource surface** (78 methods) — customers, plans (+ nested prices),
prices, subscriptions (+ schedule, dunning), invoices, coupons, payment
methods, mandates, settlements, webhook endpoints (+ deliveries), events,
organization (+ billing policy), metrics, and the sandbox toolkit.
- **Pagination** — a `Nombaone.Page` that is `Enumerable`, auto-threading
cursors, plus manual `next_page/1` and a lazy `stream/1`.
- **Errors** — typed, status-subtyped exception structs carrying `code`, `hint`,
`doc_url`, `fields`, and `request_id`; an open code union.
- **Webhooks** — `Nombaone.Webhooks.construct_event/4` and friends (constant-time
verification, timestamp tolerance, secret rotation, legacy-body fallback), and
a typed `Nombaone.WebhookEvent` catalog.
- **Docs** — every public function documented with runnable examples; five
executable scripts in `examples/`.
[0.1.0]: https://github.com/nombaone/nombaone-elixir/releases/tag/v0.1.0