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'slist!/4,get!/5,create!/5,update!/6, anddelete!/4previously shared one privatebang/1unwrap 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 genericwhen value: varspec — so sharing that helper across heterogeneous call sites (aPage.t(), astruct(), andnil) caused every one of those types to leak into every caller's inferred range, producing fivemissing_return/extra_returnwarnings. Fixed by inlining each function's owncase ... do {:ok, x} -> x; {:error, e} -> raise e end, so each is analyzed independently. - Dialyzer: added an explicit
@spec raise_missing(atom()) :: no_return()toTreasuryPrime.Client's private helper, instead of leaving itsno_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
aliasgroup inTreasuryPrime.Account(TaxDocumentwas alphabetically afterTransaction). TreasuryPrime.Marqeta.JSandTreasuryPrime.Marqeta.UXToolkitno longer call a fabricatedapi.treasuryprime.comendpoint. 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.Cardnow exposespan/cvv(nil unless requested) andget/3acceptsshow_pan/show_cvvquery params to reveal them.
Added
- Initial release.
TreasuryPrime.Client/TreasuryPrime.Configfor credential & environment configuration.- Zero-dependency default HTTP transport (
TreasuryPrime.HTTPClient.Httpc) built on:httpc/:ssl, plus a pluggableTreasuryPrime.HTTPClientbehaviour for bringing your own (Req, Finch, etc.). - Automatic retry with exponential backoff + jitter on
429/5xxresponses. :telemetryinstrumentation around every request (optional dependency).- Lazy pagination via
TreasuryPrime.Page/TreasuryPrime.Page.stream/1. TreasuryPrime.Idempotencykey generation helper.TreasuryPrime.WebhookEventandTreasuryPrime.WebhookSignaturefor 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.