Changelog
View SourceAll notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[Unreleased]
[0.1.0] - 2026-06-09
First working version: a Stripe API client for Erlang/OTP built on the livery HTTP client, covering the common billing and payments surface.
Added
- Resilient client (
livery_stripe_client) built onlivery_clientwith a timeout ceiling, retry with exponential backoff and idempotency-key replay (honorsRetry-After), a circuit breaker, and a concurrency gate. The shared client is built once and cached inpersistent_term. - Facade
livery_stripeover the cached app-configured client, with config from app env andSTRIPE_SECRET_KEY/STRIPE_WEBHOOK_SECREToverrides, plusprice_id/2plan resolution. - Resource wrappers:
- Customers: create, retrieve, update, delete, list,
list_payment_methods,delete_discount. - Products and prices: full CRUD.
- Checkout sessions: create, retrieve, expire, subscription session.
- Billing portal: create session.
- Subscriptions: create, retrieve, update, cancel, list, pause, resume,
delete_discount. - Payment intents: create, retrieve, update, confirm, capture, cancel, list.
- Payment methods: attach, detach, retrieve, update, list.
- Setup intents: create, retrieve, confirm, cancel, list.
- Refunds: create, retrieve, update, cancel, list.
- Invoices: create, retrieve, list, pay, finalize, void, send, mark_uncollectible, delete, upcoming.
- Events: retrieve, list.
- Coupons: full CRUD. Promotion codes: create, retrieve, update, list.
- Customers: create, retrieve, update, delete, list,
- Webhook signature verification (
livery_stripe_webhook) and a mountable livery handler (livery_stripe_webhook_handler) that verifies and dispatches events to a configured callback. application/x-www-form-urlencodedencoder with Stripe's bracketed nesting (livery_stripe_form).- Tests: unit (form, webhook, util), resilience and resource SUITEs, a
webhook handler SUITE, an end-to-end webhook suite over a real livery
HTTP service, and an opt-in live suite against a real Stripe test
account (skipped unless
STRIPE_SECRET_KEYis set). - erlfmt and elvis (
rebar3_lint) tooling, and GitHub Actions CI (fmt / lint / xref / dialyzer, then build / eunit / ct) plus a gated, secret-driven workflow that runs the live suite weekly and on demand. - ex_doc (
rebar3_ex_doc) configuration for HTML / hex API docs, with the README, the "what you can build" overview, the task guides, and the changelog as extras. - Use-case documentation: an overview plus task guides (getting started, subscriptions, payments, saving cards, discounts, invoicing, webhooks).