---
title: "Update Pricing Group Rates"
method: PUT
path: "/digital-banking/v1/pricing-groups/{pricing_group_id}/rates"
tags: ["Pricing Groups"]
---

# Update Pricing Group Rates

`PUT /digital-banking/v1/pricing-groups/{pricing_group_id}/rates`

Update the rate tiers for a pricing group. The new rates will automatically cascade to all accounts assigned to this pricing group on the specified effective date. This creates a new rate tier version while preserving historical rate data.

## Path parameters

- `pricing_group_id` string, uuid, required

## Request body

- UpdatePricingGroupRatesRequest
  - `interest_rate_tiers` PricingGroupRateTierRequest[], required — New rate tiers for the pricing group.
    - `min_balance` union, required — Minimum balance for this tier (inclusive)
      - number
      - string
    - `max_balance` union, required — Maximum balance for this tier (inclusive)
      - number
      - string
    - `rate` union — Fixed interest rate (e.g., 0.035 for 3.5%). Mutually exclusive with floating_spread.
      - number
      - string
    - `floating_spread` union — Floating spread relative to market reference rate (e.g., 0.005 for +0.5%). Mutually exclusive with rate.
      - number
      - string
    - `rate_index_type` 'EFFR' | 'CU_RECEIVE_DEFAULT' | 'BANK_RECEIVE_DEFAULT' | 'EFFR_UPPER_BAND' | 'EFFR_LOWER_BAND' | 'SOFR_OVERNIGHT' | 'SOFR_1M' | 'SOFR_3M' | 'SOFR_6M' | 'SOFR_12M' | 'CMT_1M' | 'CMT_3M' | 'CMT_6M' | 'FIDELITY_FISXX' | 'FIDELITY_SPAXX' | 'FIDELITY_FCIXX' | 'WSJ_PRIME' | 'IORB'
    - `floating_rate_percentage` union — Multiplier applied to the index rate. Required when floating_spread is set.
      - number
      - string
    - `custom_benchmark_id` string, uuid, nullable — Custom benchmark to float against. Mutually exclusive with rate_index_type.
  - `effective_at` string, date-time — When these rates become effective. Defaults to now if not provided.

## Response `200`

Successful Response

- PricingGroupResponse
  - `id` string, required
  - `institution_id` string, required
  - `name` string, required
  - `description` string, nullable, required
  - `account_count` integer, required — Number of accounts currently assigned to this pricing group
  - `interest_rate_tiers` PricingGroupRateTierResponse[], required
    - `min_balance` string, required
    - `max_balance` string, required
    - `rate` string, nullable
    - `floating_spread` string, nullable
    - `rate_index_type` 'EFFR' | 'CU_RECEIVE_DEFAULT' | 'BANK_RECEIVE_DEFAULT' | 'EFFR_UPPER_BAND' | 'EFFR_LOWER_BAND' | 'SOFR_OVERNIGHT' | 'SOFR_1M' | 'SOFR_3M' | 'SOFR_6M' | 'SOFR_12M' | 'CMT_1M' | 'CMT_3M' | 'CMT_6M' | 'FIDELITY_FISXX' | 'FIDELITY_SPAXX' | 'FIDELITY_FCIXX' | 'WSJ_PRIME' | 'IORB'
    - `floating_rate_percentage` string, nullable
    - `custom_benchmark_id` string, nullable
  - `created_at` string, required
  - `updated_at` string, required
  - `accounts` AccountData[], required — List of accounts assigned to this pricing group
    - `id` string, required
    - `title` string, required

## Other responses

- `400` — Bad Request - Invalid input or validation error
- `401` — Unauthenticated - Invalid or missing authentication credentials
- `403` — Unauthorized - Insufficient permissions to access resource
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/modernfi/apis/endpoints.md) · [All operations](https://skmtc.net/modernfi/apis/endpoints/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/modernfi/endpoints/versions/d9c7bd6bd2f2/schema)
