v1.5.2

Happy New Year from the ModernFi team! See below for our latest API changes.

This release introduces Pricing Groups — a new resource for managing interest rates at scale across your accounts. Instead of updating rates on individual accounts one at a time, you can now define reusable rate tier structures and assign them to multiple accounts. When a group’s rates change, all assigned accounts are updated automatically.

New Endpoints

  • GET /v1/pricing-groups — List all pricing groups for your institution, including account counts and current rate tiers.
  • POST /v1/pricing-groups — Create a new pricing group with rate tiers. Optionally assign accounts at creation time.
  • GET /v1/pricing-groups/{pricing_group_id} — Retrieve details for a specific pricing group.
  • PATCH /v1/pricing-groups/{pricing_group_id} — Update pricing group name and description. Does not affect rates or account assignments.
  • DELETE /v1/pricing-groups/{pricing_group_id} — Delete a pricing group. Fails if accounts are still assigned — unassign them first.
  • PUT /v1/pricing-groups/{pricing_group_id}/rates — Replace rate tiers for a pricing group. New rates cascade to all assigned accounts on the specified effective date, while preserving historical rate data.
  • POST /v1/pricing-groups/{pricing_group_id}/accounts — Assign accounts to a pricing group. Accounts already in another group will be reassigned.
  • DELETE /v1/pricing-groups/{pricing_group_id}/accounts — Unassign accounts from a pricing group. They retain their current rates but no longer receive automatic updates when the group’s rates change.

Updated Endpoints

  • POST /v1/accounts (Create Account)
    • Added pricing_group_id (uuid, optional) — assign the account to a pricing group at creation. The group’s rate structure will be applied automatically.

Schema Changes

  • AccountResponse

    • Added pricing_group_id (string, nullable) — the pricing group this account belongs to, if any
  • New schemas: PricingGroupResponse, PricingGroupRateTierRequest, PricingGroupRateTierResponse, CreatePricingGroupRequest, UpdatePricingGroupMetadataRequest, UpdatePricingGroupRatesRequest, AssignAccountsToPricingGroupRequest, UnassignAccountsRequest, AccountData