All notable changes to AdyenClient are documented in this file. Format follows Keep a Changelog. Versioning follows Semantic Versioning.
[Unreleased]
1.0.0 — 2026-05-14
Added
Core infrastructure
AdyenClient.Config— NimbleOptions-free config with defaults, validation, and URL routing for all 22 Adyen host patterns across test and live environmentsAdyenClient.Client— HTTP client with Req: JSON encode/decode,X-API-Keyauth, auto-generatedIdempotency-Keyon POST, exponential-backoff retry, telemetryAdyenClient.Error— structured error type implementingException; fields:type,status,message,error_code,psp_reference,raw,retryableAdyenClient.Telemetry—[:adyen_client, :request, :start/stop]telemetry events with PCI-field redaction (cardNumber,cvv,cvc,holderName, etc.)AdyenClient.CircuitBreaker— GenServer circuit breaker (closed → open → half-open)AdyenClient.RateLimiter— token-bucket GenServer rate limiter (100 req/s, burst 200)AdyenClient.Application(internal OTP supervisor) — starts CircuitBreaker + RateLimiter
Online Payments
AdyenClient.Checkout.Sessions— create session, get session result (Checkout v72)AdyenClient.Checkout.Payments— list payment methods, create payment, submit details, get card details (Checkout v72)AdyenClient.Checkout.Modifications— capture, cancel, cancel by reference, refund, reverse, update amount (Checkout v72)AdyenClient.Checkout.PaymentLinks— create, get, update (Checkout v72)AdyenClient.Checkout.Recurring— forward, list tokens, create token, delete token (Checkout v72)AdyenClient.Checkout.Orders— gift card balance, create order, cancel order (Checkout v72)AdyenClient.Checkout.Donations— list campaigns, create donation (Checkout v72)AdyenClient.Checkout.Utility— origin keys, Apple Pay session, PayPal order update, validate shopper ID (Checkout v72)AdyenClient.BinLookup— 3DS availability, cost estimate (BinLookup v54)AdyenClient.Disputes— accept, defend, delete defense document, get applicable defense reasons, supply defense document (Disputes v30)AdyenClient.Recurring— create permit, disable, disable permit, list details, notify shopper, schedule account updater (Recurring v68)AdyenClient.Payout— store+submit, store, submit, confirm, decline, instant payout (Payout v68, deprecated)
In-Person Payments
AdyenClient.Terminal— all 18 NEXO message types: Login, Logout, EnableService, Admin, Payment, CardAcquisition, StoredValue, Reversal, Reconciliation, GetTotals, BalanceInquiry, TransactionStatus, Abort, Diagnosis, Display, Input, Print, CardReaderAPDU (Terminal API v1)AdyenClient.CloudDevice— sync, async, connection status, list connected devices (Cloud Device v1)AdyenClient.SoftPOS— create communication session (SoftPOS v3)AdyenClient.PaymentsApp— boarding tokens (merchant + store), list apps, revoke (Payments App v1)AdyenClient.Management.PosMobile— create session (possdk v68, deprecated)AdyenClient.Management.TerminalManagement— assign, find terminal, get stores, get terminal details, list terminals (postfmapi v1, deprecated)
Management API (v3)
AdyenClient.Management.Companies— list companies, get company, list merchantsAdyenClient.Management.Merchants— list, get, create, activateAdyenClient.Management.Stores— list (merchant), list (global), create, get, update (all path variants including store-ID-only)AdyenClient.Management.Users— company + merchant level: list, create, get, updateAdyenClient.Management.ApiCredentials— my credential, company + merchant level: list, create, get, update; generate API key; generate client keyAdyenClient.Management.AllowedOrigins— my credential origin; company + merchant credential: list, create, get, deleteAdyenClient.Management.PayoutSettings— add, list, get, update, deleteAdyenClient.Management.Webhooks— company + merchant level: create, list, get, update, delete, generate HMAC key, testAdyenClient.Management.PaymentMethods— request, list, get, update, Apple Pay domainsAdyenClient.Management.Terminals— list, reassign, terminal actionsAdyenClient.Management.TerminalOrders— company + merchant: models, products, billing entities, shipping locations, orders CRUDAdyenClient.Management.TerminalSettings— 20 functions covering company, merchant, store (merchant+store_ref path), store (store_id-only path), and terminal level; both settings and logo for each levelAdyenClient.Management.AndroidFiles— list apps, list certificates, get app, upload app, upload certificate, reprocess appAdyenClient.Management.SplitConfigurations— profile CRUD, rule CRUD, split logic updateAdyenClient.BalanceControl— company + merchant balance overviews, balance transfer (Balance Control v2)
Platforms & Financial Products
AdyenClient.LegalEntity— legal entity CRUD, transfer instruments, business lines, documents, Terms of Service (get/accept/status), PCI questionnaires, tax e-delivery consent, hosted onboarding (LEM v4) — 27 endpointsAdyenClient.BalancePlatform— balance platform, account holders, balance accounts, sweeps, payment instruments (incl. reveal/PAN), network tokens, authorized card users, transaction rules, bank account validation, grant accounts/offers, card orders, card PIN (change/reveal/RSA key), transfer routes, mandates, SCA devices (registeredDevices), transfer limits (balance account) (BCL v2) — 45 endpointsAdyenClient.BalancePlatform.AccountHolders— tax form summaryAdyenClient.BalancePlatform.TransactionRules— scoped listing: platform, account holder, balance account, payment instrument, instrument groupAdyenClient.BalancePlatform.WebhookSettings— balance webhook settings CRUDAdyenClient.BalancePlatform.PaymentInstrumentGroups— create, getAdyenClient.BalancePlatform.SCADevices— begin/finish registration, create association (scaDevices endpoint set)AdyenClient.BalancePlatform.SCAAssociations— list for entity, delete, approve pendingAdyenClient.BalancePlatform.TransferLimits— approve pending (balance account), full CRUD at balance platform levelAdyenClient.SessionAuth— create session token (Session Auth v1)AdyenClient.Transfers— create, approve, cancel, return, list, get transfers; list + get transactions; capital endpoints (Transfers v4)AdyenClient.RaiseDisputes— list, raise, get, update disputes; attachment CRUD (Transfers v4 namespace)AdyenClient.Capital— dynamic offers (list/calculate/create static), grant offers, grants (request/list/get/disbursements/update repayment), grant accounts (Capital v1)AdyenClient.ForeignExchange— calculate rate (FX v1)AdyenClient.OpenBanking— create verification routes, get verification report (v1)
Classic APIs
AdyenClient.ClassicPayments— authorise, authorise3d, authorise3ds2, get auth result, get 3DS2 result, capture, cancel, refund, cancelOrRefund, technicalCancel, adjustAuthorisation, donate, voidPendingRefund (Payment v68)AdyenClient.ClassicPlatforms.Account— account holder CRUD + state, account CRUD, documents, KYC check, delete operations (Account v6)AdyenClient.ClassicPlatforms.Fund— balances, transactions, payout, transfer, refund transfer, beneficiary, refund not paid out, debit (Fund v6)AdyenClient.ClassicPlatforms.HOP— onboarding URL, PCI questionnaire URL (HOP v6)AdyenClient.ClassicPlatforms.NotificationConfiguration— subscribe, get, list, test, update, delete (Notification v6)
Webhooks
AdyenClient.Webhooks.HMAC— HMAC-SHA256 validation for standard and Balance Platform webhooks; constant-timesecure_compare/2to prevent timing attacksAdyenClient.Webhooks.Handler—@behaviourwithhandle_event/2callback; safedispatch/2that isolates handler exceptions per notification itemAdyenClient.Webhooks—process/3pipeline (parse JSON → validate all HMAC → dispatch);parse/1;validate_all/2AdyenClient.Webhooks.Plug— Phoenix/Plug drop-in: raw body passthrough, HMAC validation, dispatch,[accepted]response;read_body/2forPlug.Parsers
Documentation & tooling
- Full
@specand@typecoverage — Dialyzer-clean - Explicit
@specon all TerminalSettings functions (no metaprogramming) - Dialyzer config in
mix.exswith PLT path, flags, and ignore file .dialyzer_ignore.exsfor runtime-dep false positives- ExDoc group configuration for all 66 modules
mix lintalias:format --check-formatted+credo --strict+dialyzermix lint.cialias for CI pipelines- Guide pages: configuration, webhooks, error handling, telemetry