[1.0.0] - 2026-04-09
Added
TruelayerClient.new/1andTruelayerClient.new!/1— client construction with full validationTruelayerClient.Config— typed, validated configuration structTruelayerClient.Error—defexceptionwith predicates (retryable?/1,not_found?/1, etc.)TruelayerClient.HTTP—Req-based client with TLS 1.2+, RFC 7807 parsing, telemetryTruelayerClient.Signing— ES512 JWS via Erlang:crypto/:public_key(zero external deps)TruelayerClient.Retry— exponential backoff with:crypto.strong_rand_bytes/1jitterTruelayerClient.Idempotency— ETS-backed stable key manager for safe POST retriesTruelayerClient.Auth— auth links, code exchange, client credentials, refresh, valid_tokenTruelayerClient.Auth.Token— token struct withexpired?/1andbearer_header/1TruelayerClient.Auth.TokenStore—@behaviourfor pluggable Redis/DynamoDB backendsTruelayerClient.Auth.MemoryStore— GenServer + ETS default token storeTruelayerClient.Payments— full Payments API v3: create/get/cancel, auth flow (5 steps), refunds, payment links, provider search, return parameters,wait_for_final_status/3TruelayerClient.Payouts—create_payout/3,get_payout/2TruelayerClient.Merchant— list/get accounts, get transactions, setup/disable/get sweeping, get payment sourcesTruelayerClient.Mandates— create, list, get mandate; start auth flow; submit provider/consent; revoke; confirm funds; get constraintsTruelayerClient.Data— full Data API v1: connection meta, user info, accounts, balances, transactions (lazyStream.t()), pending, standing orders, direct debits, cards, providers, auth links, extend connectionTruelayerClient.Verification— verify account holder name; create/get AHV resourceTruelayerClient.SignupPlus— get user data by payment/mandate/connected account; generate auth URITruelayerClient.Tracking—get_tracked_events/2TruelayerClient.Webhooks— 19 typed event constants, HMAC-SHA256 constant-time verification, replay-attack protection,on/3,on_fallback/2,process/4TruelayerClient.Application— OTP supervisor startingMemoryStore- Full test suite using
Bypass(zero live API calls)