Packages

Production-grade Elixir client for the SaltEdge API v6 (AIS · PIS · Data Enrichment)

Current section

Files

Jump to
salt_edge_client CHANGELOG.md
Raw

CHANGELOG.md

# Changelog
All notable changes are documented here.
This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html)
and [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
---
## [1.0.0] - 2026-03-27
### Breaking Changes
- **Renamed** package from `:saltedge``:salt_edge_client`
- **Renamed** all modules from `Saltedge.*``SaltEdgeClient.*`
- **Renamed** app config key from `:saltedge``:salt_edge_client`
Migration: update `config/config.exs` and all call sites:
```diff
- config :saltedge, app_id: ...
+ config :salt_edge_client, app_id: ...
- alias Saltedge.AIS.Customers
+ alias SaltEdgeClient.AIS.Customers
```
### Changed
- `SaltEdgeClient.Config.new/1` refactored to extract `fetch_required!/4`,
`fetch_optional/3`, and `fetch_with_default/4` helpers — reduces cyclomatic
complexity from 19 to ≤5 per function (fixes Credo `[F]` warning)
- `SaltEdgeClient.Webhook.Handler.detect_event_type/1` refactored into eight
single-purpose predicate functions — reduces cyclomatic complexity from 17 to
≤3 per function (fixes Credo `[F]` warning)
### Fixed
- All 52 Credo `[D]` "Nested modules could be aliased" suggestions resolved:
every test module now has a proper `alias` block at the top
- `lib/salt_edge_client/webhook/handler.ex``@ais_success_stages` module
attribute extracted to eliminate magic strings in predicates
- Full SaltEdge API v6 coverage across three product areas: AIS, PIS, and
Data Enrichment Platform
#### AIS (Account Information Service)
- `SaltEdgeClient.AIS.Countries` — list countries
- `SaltEdgeClient.AIS.Providers` — list / show providers
- `SaltEdgeClient.AIS.Customers` — create / show / list / remove
- `SaltEdgeClient.AIS.Connections` — connect, reconnect, refresh,
background refresh, update, remove
- `SaltEdgeClient.AIS.Consents` — list / show / revoke
- `SaltEdgeClient.AIS.Accounts` — list with stream support
- `SaltEdgeClient.AIS.Transactions` — list and update
- `SaltEdgeClient.AIS.Rates` — exchange rates
#### PIS (Payment Initiation Service)
- `SaltEdgeClient.PIS.Customers`
- `SaltEdgeClient.PIS.Providers`
- `SaltEdgeClient.PIS.Payments` — create / show / list / refresh
- `SaltEdgeClient.PIS.PaymentTemplates` — show / list
- `SaltEdgeClient.PIS.BulkPayments` — create / show / list / refresh
#### Data Enrichment Platform
- `SaltEdgeClient.Enrichment.Buckets`
- `SaltEdgeClient.Enrichment.Accounts`
- `SaltEdgeClient.Enrichment.Transactions` — import / categorize / list categorized
- `SaltEdgeClient.Enrichment.Merchants`
- `SaltEdgeClient.Enrichment.Categories` — list / list by type / learn
- `SaltEdgeClient.Enrichment.CustomerRules`
- `SaltEdgeClient.Enrichment.FinancialInsights`
#### Utilities
- `SaltEdgeClient.Paginator``stream/2`, `collect/2`, `each_page/3`
- `SaltEdgeClient.Error` — structured error type with predicates
- `SaltEdgeClient.Webhook.Handler` — Plug-based webhook handler
- `SaltEdgeClient.Webhook.Validator` — HMAC-SHA256 signature validation
- `SaltEdgeClient.Signer` — request signing and webhook verification
- `SaltEdgeClient.Config` — runtime configuration
- `SaltEdgeClient.Telemetry` — telemetry events + default logger helper
- Exponential-backoff retries on 429 / 5xx
- Per-request config overrides via opts keyword list
- Telemetry `[:salt_edge_client, :request, :start/stop]` events