All notable changes to this project will be documented in this file.
This project adheres to Semantic Versioning.
0.2.0 (2026-04-04)
Features
- 01-01: configure test infrastructure with Mox mocks, formatter, and Credo (d75666e)
- 01-01: scaffold Elixir project with Phase 1 dependencies (2e4ae58)
- 01-02: implement JSON codec behaviour and Jason adapter with tests (bb63aac)
- 01-02: implement recursive Stripe-compatible form encoder with tests (2c232e4)
- 01-03: implement Error struct with Stripe error response parsing and tests (8438a4c)
- 01-03: implement Transport behaviour and Request struct with tests (192ddc9)
- 01-04: implement Finch transport adapter with tests (b0951e3)
- 01-04: implement NimbleOptions config schema and validation with tests (9441d19)
- 01-05: implement Client struct with new!/1, new/1, and request/2 (8c384d8)
- 02-01: add non-bang decode/1 and encode/1 to Json behaviour and Jason adapter (1666da4)
- 02-01: enrich Error struct with new fields, idempotency_error, String.Chars (33da331)
- 02-02: implement RetryStrategy behaviour and Default implementation (f2394e7)
- 02-02: update Config and Client with retry_strategy field and max_retries default 2 (f3df360)
- 02-03: wire retry loop, auto-idempotency, bang variant, non-JSON handling into Client (9501f91)
- 03-01: add List struct, api_version/0, update Config/Client defaults and User-Agent (f7b30af)
- 03-01: add Response struct with Access behaviour, get_header/2, custom Inspect (8a97dc8)
- 03-02: wrap responses in %Response{} with list auto-detection (9051f8c)
- 03-03: implement stream!/2 and stream/2 auto-pagination on List (dc2b01a)
- 04-01: implement LatticeStripe.Customer resource module (420f4a2)
- 04-02: implement LatticeStripe.PaymentIntent resource module (30b55c8)
- 05-01: build SetupIntent resource module with full CRUD, lifecycle actions, list/stream, and tests (7908ede)
- 05-01: extract Resource helpers, refactor Customer/PaymentIntent, add PI search, shared test helpers (0a85316)
- 05-02: implement PaymentMethod resource with CRUD, attach/detach, validated list, stream, and tests (ec48dca)
- 06-01: extract Phase 4/5 test fixtures into dedicated fixture modules (bd69567)
- 06-01: implement Refund resource with CRUD, cancel, list, stream, and tests (8e4ecad)
- 06-02: implement Checkout.Session and LineItem with all endpoints and tests (99dbadd)
- 07-01: add Event struct, Handler behaviour, SignatureVerificationError, deps (1c04f4b)
- 07-01: implement LatticeStripe.Webhook with HMAC-SHA256 verification (b524010)
- 07-02: add CacheBodyReader and Webhook.Plug with NimbleOptions, path matching, handler dispatch, MFA secrets (08eed78)
- 08-01: create LatticeStripe.Telemetry module with event catalog and span helpers (c8e514e)
- 08-02: implement webhook_verify_span, attach_default_logger, integrate webhook telemetry (63de0a4)
- 09-01: add 6 resource integration test files (87cb6ab)
- 09-01: add integration test infrastructure (c37a9ec)
- 09-02: add mix ci alias, Credo strict mode, and fix all violations (152eacc)
- 09-02: implement LatticeStripe.Testing public module (60506ed)
- 10-01: complete cheatsheet with two-column layout (52368ea)
- 10-01: ExDoc config, README quickstart, CHANGELOG, guide stubs (677b034)
- 10-02: add @typedoc and Stripe API reference links to resource modules (70ab5f4)
- 10-02: add @moduledoc/@doc/@typedoc to core and internal modules (32b1917)
- 10-03: write checkout and webhooks guides (3b04b13)
- 10-03: write getting-started, client-configuration, and payments guides (781f10e)
- 11-02: add Dependabot config and auto-merge workflow (12078f6)
- 11-02: add Release Please workflow and manifest config (a478928)
- 11-03: add community files — CONTRIBUTING, SECURITY, issue templates, PR template (36d6a7a)
Bug Fixes
- 01: resolve verification gaps — update REQUIREMENTS.md traceability and fix flaky test (4edc9ad)
- 01: revise plans based on checker feedback (3226334)
- 03: remove deferred requirements EXPD-02, EXPD-03, EXPD-05 from Plan 02 (ca8372e)
- 04: Customer Inspect uses Inspect.Algebra to prevent PII field name leakage (63ae62e)
- 04: remove unused aliases in test files (9780bdf)
- 09: revise plans based on checker feedback (9a59458)
- remove deprecated 'command' input from release-please-action v4 (3ff8a12)
- skip invalid-id integration tests — stripe-mock returns stubs for any ID (e986f1b)
- update GitHub org from lattice-stripe to szTheory (ad46956)
[Unreleased]
Added
- Initial release of LatticeStripe
- Core: Client configuration, transport behaviour, JSON codec, form encoding
- Resources: Customer, PaymentIntent, SetupIntent, PaymentMethod, Refund, Checkout.Session
- Webhook signature verification with Phoenix Plug integration
- Auto-pagination via Elixir Streams
- Automatic retry with exponential backoff and idempotency keys
- Telemetry events for request lifecycle monitoring
- Test helpers for webhook event construction