Skip to main content

CHANGELOG.md

# Changelog

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

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2026-05-21

### Added

- **Rapyd.Services.Collect** — 74-method coverage of Payments, Checkout, Payment Links,
  Group Payments, Refunds, Disputes, Customers, Plans, Subscriptions, Invoices,
  Coupons, Orders, SKUs, Card Tokens, Payment Devices, and Addresses.
- **Rapyd.Services.Disburse** — Payouts, Beneficiaries, Senders, Payout Method Types,
  and hosted Beneficiary Tokenization Pages.
- **Rapyd.Services.Wallet** — Wallets, Contacts, Wallet Accounts, Transactions,
  Fund Transfers, Virtual Accounts, and Identity/KYC verification.
- **Rapyd.Services.Issuing** — Card issuance, activation, blocking, PAN/CVV retrieval,
  card transactions, remote authorizations, CNLS, digital wallet tokens, and hosted
  activation pages.
- **Rapyd.Services.Partner** — Organizations, KYB Applications, Settlement Bank Accounts,
  application templates, industries, and offerings.
- **Rapyd.Services.Webhook** — HMAC-SHA256 signature verification, JSON parsing,
  typed `WebhookEvent` structs, `dispatch/2` routing helper, and webhook endpoint CRUD.
- **Rapyd.Services.Resource** — FX rates, countries, currencies, daily rates.
- **Rapyd.HTTP.Client** — Full-jitter exponential backoff with configurable `max_retries`.
- **Rapyd.Signing** — HMAC-SHA256 request signing and constant-time webhook verification.
- **Rapyd.Error** — Structured error type with 17 semantic `:type` atoms, retryability
  flag, error code, HTTP status, and operation ID.
- **Rapyd.HTTP.Behaviour** — Swappable HTTP contract for `Mox`-based test doubles.
- Full type specs (`@type`, `@spec`) across all public modules.
- Comprehensive test suite: unit (Signing, Error), integration (HTTP.Client via Bypass),
  and service-level (Mox mock injection).
- GitHub Actions CI: test matrix (Elixir 1.16/1.17 × OTP 26/27), Credo, Dialyzer,
  ExCoveralls, and auto-publish on semver tags.