---
title: "Create Pricing Group"
method: POST
path: "/digital-banking/v1/pricing-groups"
tags: ["Pricing Groups"]
---

# Create Pricing Group

`POST /digital-banking/v1/pricing-groups`

Create a new pricing group with rate tiers. Pricing groups allow institutions to manage interest rates at scale by defining reusable rate structures that can be assigned to multiple accounts. When a pricing group's rates are updated, all assigned accounts receive the new rates automatically.

## Request body

- CreatePricingGroupRequest
  - `name` string, required — Name of the pricing group (e.g., 'Retail Checking', 'Accounts 2025')
  - `description` string, nullable — Optional description providing additional context about this pricing group
  - `interest_rate_tiers` PricingGroupRateTierRequest[], required — Rate tiers for the pricing group. At least one tier is required.
    - `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.
  - `account_ids` string[], nullable — Optional list of account IDs to assign to this pricing group upon creation. If provided, the pricing group rates will be applied to these accounts immediately.

## Response `201`

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/revisions/d9c7bd6bd2f2/schema)
