---
title: "Update an existing interest rate tier for a specified purse and account."
method: PUT
path: "/programs/{programCode}/accounts/{accountIdentifier}/purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier}"
tags: ["InterestRate"]
---

# Update an existing interest rate tier for a specified purse and account.

`PUT /programs/{programCode}/accounts/{accountIdentifier}/purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier}`

This endpoint allows Partners to: 
- Add an end date to an interest rate tier
- Remove an end date from an interest rate tier 
- Update an interest rate tier end date
- End an interest rate tier on a user’s account by adding an end date. 
- Remove an end date from an interest rate tier and return it to active on a user’s account. 
- Update an interest rate tier end date to the day before the next bill cycle date. 

How to add an end date to an interest rate tier: 
- An interestRateTier can be ended or closed by adding an end date to it. Simply call PUT /purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier} with: 
	- A valid interestRateTierIdentifier 
	- A valid end date (must be in the future and the last day of a monthly cycle for the account) 
	-  Note: The interestRateTier that the end date is being applied to, cannot have an end date already and it must have the most recent start date if there are multiple tiers on the account. 
-  An interestRateTier that is scheduled to start at a future date can be updated if it has a valid interestRateTierIdentifier and a valid interestRateTier enum. 
	-  Simply call PUT /purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier} to update. 
	-  Note: Adding an end date to an interestRateTier and updating an interestRateTier that is scheduled to start at a future date can both be done in a single call. So, submitting a valid end date AND a new interestRateTier will update both fields.

How to remove an end date from an interest rate tier: 
- Partner calls PUT …/purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier} and the following is true: 
	- Current interest rate tier has an end date that is today or in the future 
	- No interest rate tier is scheduled to follow the current interest rate tier 
	- removeEndDateFlag is true 
	- Optional interestYieldEndDate is provided – Ignored if removeEndDateFlag is true 
- The end date is removed, and the interest rate tier remains active.

How to update an end date on an interest rate tier: 
- Partner calls PUT …/purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier} and the following is true: 
	- Current interest rate tier has an end date that is today or in the future 
	- Provided interest rate tier has an end date that is today or in the future 
	- No interest rate tier is scheduled to follow the current interest rate tier 
- The interest rate tier end date is updated to: 
	- The day before the next bill cycle on or after the new interestYieldEndDate 
	- If no interestYieldEndDate is provided, the day before the very next bill cycle date occurs 
- The updated end date is included in the response.

## Path parameters

- `programCode` string, required
- `accountIdentifier` string, required
- `purseIdentifier` string, required
- `interestRateTierIdentifier` string, required

## Headers

- `X-GD-RequestId` string, required

## Request body

- UpdateInterestRateTierRequest — Represents a request to update an interest rate tier for a specific account and purse. Contains identifiers and interest rate tier details, as well as options for yield date management.
  - `interestRateTier` string, nullable — Gets or sets the interest rate tier value to be applied. Serialized as "interestRateTier" in the request payload.
  - `interestYieldEndDate` string, nullable — Gets or sets the end date for the interest yield, if applicable. Serialized as "interestYieldEndDate" in the request payload.
  - `removeInterestYieldEndDate` boolean — Gets or sets a value indicating whether the interest yield end date should be removed. Serialized as "removeInterestYieldEndDate" in the request payload.
  - `interestYieldStartDate` string, nullable — Gets or sets the start date for the interest yield, if applicable. Serialized as "interestYieldStartDate" in the request payload.
  - `autoAlignStartDate` boolean, nullable — Gets or sets a value indicating whether the start date should be automatically aligned. Serialized as "autoAlignStartDate" in the request payload.

## Response `200`

OK

- UpdateInterestRateTierResponse — Represents the response returned after updating an interest rate tier. Contains details about the updated interest rate tier, including identifiers, dates, and APY. Inherits standard response metadata and details from Gd.Bos.DataTransfer.Response.ResponseBase.
  - `interestRateTierIdentifier` string, nullable — Gets or sets the unique identifier for the interest rate tier.
  - `interestRateTier` string, nullable — Gets or sets the name or code of the interest rate tier.
  - `interestYieldStartDate` string, nullable — Gets or sets the start date for the interest yield, in ISO 8601 format (yyyy-MM-dd).
  - `interestYieldEndDate` string, nullable — Gets or sets the end date for the interest yield, in ISO 8601 format (yyyy-MM-dd).
  - `apy` string, nullable — Gets or sets the annual percentage yield (APY) for the interest rate tier.
  - `responseDetails` ResponseDetail[], nullable — Required: A list of response details providing status codes, descriptions, and additional information about the result of the operation.
    - `code` integer — The primary status or error code for the response (e.g., 200 for success, 400 for validation error).
    - `subCode` integer, nullable — An optional subcode providing more granular detail about the response or error.
    - `description` string, nullable — A human-readable description of the response, error, or status.
    - `url` string, nullable — A URL linking to documentation or a web page with more information about the response code.

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal Server Error
- `503` — Service Unavailable

---

[API](https://skmtc.dev/greendot/apis/baas-apis.md) · [All operations](https://skmtc.dev/greendot/apis/baas-apis/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/greendot/baas-apis/revisions/666553766b78/schema)
