Changelog

View Source

All notable changes to this project are documented here. This project adheres to Semantic Versioning and Keep a Changelog.

0.1.0 — Unreleased

The first release. Complete coverage of the Nomba One subscription-billing API.

Added

  • ClientNombaone.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.
  • WebhooksNombaone.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/.