All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.0.0]

Fixed

  • Dialyzer: TreasuryPrime.Resource's list!/4, get!/5, create!/5, update!/6, and delete!/4 previously shared one private bang/1 unwrap helper. Dialyzer infers a single success typing per (private, unexported) function across all of its call sites rather than specializing per call site — even with a generic when value: var spec — so sharing that helper across heterogeneous call sites (a Page.t(), a struct(), and nil) caused every one of those types to leak into every caller's inferred range, producing five missing_return/extra_return warnings. Fixed by inlining each function's own case ... do {:ok, x} -> x; {:error, e} -> raise e end, so each is analyzed independently.
  • Dialyzer: added an explicit @spec raise_missing(atom()) :: no_return() to TreasuryPrime.Client's private helper, instead of leaving its no_return() nature merely inferred.
  • Credo: replaced four doc strings whose embedded code examples required escaped double quotes with ~s'...' sigils.
  • Credo: fixed one out-of-order alias group in TreasuryPrime.Account (TaxDocument was alphabetically after Transaction).
  • TreasuryPrime.Marqeta.JS and TreasuryPrime.Marqeta.UXToolkit no longer call a fabricated api.treasuryprime.com endpoint. Requesting a Marqeta.js client access token or a UX Toolkit single-use token is a call to Marqeta's own API ({subdomain}.marqeta.com) using Marqeta credentials, not a Treasury Prime endpoint — both modules now reflect that and call Marqeta directly.
  • TreasuryPrime.Card now exposes pan/cvv (nil unless requested) and get/3 accepts show_pan/show_cvv query params to reveal them.

Added

  • Initial release.
  • TreasuryPrime.Client / TreasuryPrime.Config for credential & environment configuration.
  • Zero-dependency default HTTP transport (TreasuryPrime.HTTPClient.Httpc) built on :httpc/:ssl, plus a pluggable TreasuryPrime.HTTPClient behaviour for bringing your own (Req, Finch, etc.).
  • Automatic retry with exponential backoff + jitter on 429/5xx responses.
  • :telemetry instrumentation around every request (optional dependency).
  • Lazy pagination via TreasuryPrime.Page / TreasuryPrime.Page.stream/1.
  • TreasuryPrime.Idempotency key generation helper.
  • TreasuryPrime.WebhookEvent and TreasuryPrime.WebhookSignature for receiving and validating webhooks.
  • Full resource coverage: accounts, ACH, wires, book transfers, network transfers, FedNow, checks, check deposit, counterparties, incoming ACH/wire, invoice account numbers, manual holds, Green Dot cash loads, deposit sweeps, cards, card products, card events, card auth loop endpoints, digital wallet tokens, Marqeta JS / UX Toolkit, account applications, business/person/additional-person applications, deposits, KYC/KYC products, businesses, persons, account products, account number reservations, account locks, reserve accounts, statement configs, tax documents, transactions, documents, files, routing numbers, webhooks, and sandbox simulations.