All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[1.0.0] - Unreleased
Added
- Initial release.
- OIDC authentication: Pushed Authorisation Requests (
MoneyHub.Auth),private_key_jwtclient assertions and request-object signing (MoneyHub.Auth.PrivateKeyJWT),id_tokenverification against Moneyhub's published JWKS (MoneyHub.Auth.IdToken,MoneyHub.Auth.JWKS), authorisation code exchange,client_credentialstokens for ongoing per-user access, and refresh tokens. - Claims and scopes builders (
MoneyHub.Claims,MoneyHub.Scopes) coveringsub,mh:con_id,mh:cat_type,mh:payment,mh:recurring_payment, andmh:standing_order. - Data Aggregation (AIS):
MoneyHub.Accounts,MoneyHub.Transactions,MoneyHub.Connections,MoneyHub.Users,MoneyHub.Categories,MoneyHub.Counterparties,MoneyHub.RegularTransactions,MoneyHub.RentalRecords,MoneyHub.SavingsGoals,MoneyHub.SpendingGoals,MoneyHub.SpendingAnalysis,MoneyHub.Affordability(including anawait/4polling helper),MoneyHub.AuthRequests. - Payments (PIS):
MoneyHub.Payees,MoneyHub.Payments,MoneyHub.RecurringPayments(VRP sweeps),MoneyHub.StandingOrders,MoneyHub.PayLinks. - Webhook verification for both plain-JSON and signed-JWT delivery shapes
(
MoneyHub.Webhooks,MoneyHub.Webhooks.Event). - Structured
MoneyHub.Errorresults across the public API, with:config_error,:network_error,:api_error,:rate_limited,:decode_error,:jwt_error, and:validation_errorreasons. - Automatic retry with backoff for
429(honouringRetry-After) and5xxresponses, plus transient network errors, inMoneyHub.Client. telemetryevents ([:money_hub, :request, :start | :stop | :exception]) around every data-API call.- Full API surface pass:
MoneyHub.Beneficiaries,MoneyHub.Holdings(ISIN-matched investment holdings),MoneyHub.NotificationThresholds,MoneyHub.Projects,MoneyHub.Statements,MoneyHub.Tax,MoneyHub.StandardFinancialStatements,MoneyHub.GlobalCounterparties,MoneyHub.ConsentHistory,MoneyHub.ScimUsers,MoneyHub.PayFile(bulk/batch payments),MoneyHub.ResellerCheck,MoneyHub.BankIcons,MoneyHub.Discovery(OIDC well-known configuration). - Expanded existing modules with previously-missing endpoints:
Accounts.add_balance/4,Accounts.standing_orders/3,Accounts.syncs/2;Connections.sync/3and connection-type filtered catalogs (available_api/2,available_legacy/2,available_payments/2,available_test/2);Categories.get/3,Categories.create/3,Categories.list_groups/2;Transactions.create/3,Transactions.create_many/3,Transactions.update/4,Transactions.delete/3, full splits CRUD,Transactions.list_files/3;AuthRequests.list/2,AuthRequests.update/4;RecurringPayments.list/2,RecurringPayments.confirm_funds/4;Users.list_connections/3,Users.get_connection/4,Users.delete_connection/4,Users.list_syncs/3.
Fixed
RecurringPayments.sweep/4posted to the wrong path (/recurring-payments/{id}/paymentsinstead of the correct/recurring-payments/{id}/pay).- Removed an explicit
:castoredependency override that forced itsmix certdatabuild task to compile, which fails on Erlang/OTP installations missing thepublic_keyapplication'sinclude/headers - notably common on Windows. The HTTP stack now relies on:public_key.cacerts_get/0(built into OTP 25+) for CA certificates instead, which is more portable.