---
updatedAt: 2026-02-06T00:24:43.000Z
agentTools:
  projectIndex: https://developer.greendot.com/embedded-finance/llms.txt
---

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



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.

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "BaaS APIs",
    "description": "Green Dot BaaS Partner API",
    "version": "v1",
    "x-generated-timestamp-utc": "2026-02-05T01:14:54.4774970Z"
  },
  "paths": {
    "/programs/{programCode}/accounts/{accountIdentifier}/purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier}": {
      "put": {
        "tags": [
          "InterestRate"
        ],
        "summary": "Update an existing interest rate tier for a specified purse and account.",
        "description": "\r\n\r\nThis endpoint allows Partners to: \r\n- Add an end date to an interest rate tier\r\n- Remove an end date from an interest rate tier \r\n- Update an interest rate tier end date\r\n- End an interest rate tier on a user’s account by adding an end date. \r\n- Remove an end date from an interest rate tier and return it to active on a user’s account. \r\n- Update an interest rate tier end date to the day before the next bill cycle date. \r\n\r\nHow to add an end date to an interest rate tier: \r\n- An interestRateTier can be ended or closed by adding an end date to it. Simply call PUT /purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier} with: \r\n\t- A valid interestRateTierIdentifier \r\n\t- A valid end date (must be in the future and the last day of a monthly cycle for the account) \r\n\t-  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. \r\n-  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. \r\n\t-  Simply call PUT /purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier} to update. \r\n\t-  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.\r\n\r\nHow to remove an end date from an interest rate tier: \r\n- Partner calls PUT …/purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier} and the following is true: \r\n\t- Current interest rate tier has an end date that is today or in the future \r\n\t- No interest rate tier is scheduled to follow the current interest rate tier \r\n\t- removeEndDateFlag is true \r\n\t- Optional interestYieldEndDate is provided – Ignored if removeEndDateFlag is true \r\n- The end date is removed, and the interest rate tier remains active.\r\n\r\nHow to update an end date on an interest rate tier: \r\n- Partner calls PUT …/purses/{purseIdentifier}/interestRateTier/{interestRateTierIdentifier} and the following is true: \r\n\t- Current interest rate tier has an end date that is today or in the future \r\n\t- Provided interest rate tier has an end date that is today or in the future \r\n\t- No interest rate tier is scheduled to follow the current interest rate tier \r\n- The interest rate tier end date is updated to: \r\n\t- The day before the next bill cycle on or after the new interestYieldEndDate \r\n\t- If no interestYieldEndDate is provided, the day before the very next bill cycle date occurs \r\n- The updated end date is included in the response.",
        "operationId": "InterestRate_PUT_UpdateInterestRateTier",
        "parameters": [
          {
            "name": "X-GD-RequestId",
            "in": "header",
            "description": "The unique request identifier from the X-GD-RequestId header.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "programCode",
            "in": "path",
            "description": "The program code associated with the request.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountIdentifier",
            "in": "path",
            "description": "The account identifier (GUID format) for which to update the interest rate tier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "purseIdentifier",
            "in": "path",
            "description": "The purse identifier (GUID format) for which to update the interest rate tier.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "interestRateTierIdentifier",
            "in": "path",
            "description": "The interest rate tier identifier (GUID format) to update.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "The request object containing details of the interest rate tier update.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInterestRateTierRequest"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInterestRateTierRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInterestRateTierRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateInterestRateTierRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateInterestRateTierResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateInterestRateTierResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateInterestRateTierResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateInterestRateTierResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateInterestRateTierResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateInterestRateTierResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateInterestRateTierResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateInterestRateTierResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "ResponseDetail": {
        "type": "object",
        "properties": {
          "code": {
            "type": "integer",
            "description": "The primary status or error code for the response (e.g., 200 for success, 400 for validation error).",
            "format": "int32"
          },
          "subCode": {
            "type": "integer",
            "description": "An optional subcode providing more granular detail about the response or error.",
            "format": "int32",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "A human-readable description of the response, error, or status.",
            "nullable": true
          },
          "url": {
            "type": "string",
            "description": "A URL linking to documentation or a web page with more information about the response code.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a detailed status or error message for an API response.\r\nContains a code, optional subcode, human-readable description, and a URL for more information.\r\nUsed to provide granular feedback about the outcome of an operation, including success, warnings, or errors."
      },
      "UpdateInterestRateTierRequest": {
        "type": "object",
        "properties": {
          "interestRateTier": {
            "type": "string",
            "description": "Gets or sets the interest rate tier value to be applied.\r\nSerialized as \"interestRateTier\" in the request payload.",
            "nullable": true
          },
          "interestYieldEndDate": {
            "type": "string",
            "description": "Gets or sets the end date for the interest yield, if applicable.\r\nSerialized as \"interestYieldEndDate\" in the request payload.",
            "nullable": true
          },
          "removeInterestYieldEndDate": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the interest yield end date should be removed.\r\nSerialized as \"removeInterestYieldEndDate\" in the request payload."
          },
          "interestYieldStartDate": {
            "type": "string",
            "description": "Gets or sets the start date for the interest yield, if applicable.\r\nSerialized as \"interestYieldStartDate\" in the request payload.",
            "nullable": true
          },
          "autoAlignStartDate": {
            "type": "boolean",
            "description": "Gets or sets a value indicating whether the start date should be automatically aligned.\r\nSerialized as \"autoAlignStartDate\" in the request payload.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to update an interest rate tier for a specific account and purse.\r\nContains identifiers and interest rate tier details, as well as options for yield date management."
      },
      "UpdateInterestRateTierResponse": {
        "type": "object",
        "properties": {
          "interestRateTierIdentifier": {
            "type": "string",
            "description": "Gets or sets the unique identifier for the interest rate tier.",
            "nullable": true
          },
          "interestRateTier": {
            "type": "string",
            "description": "Gets or sets the name or code of the interest rate tier.",
            "nullable": true
          },
          "interestYieldStartDate": {
            "type": "string",
            "description": "Gets or sets the start date for the interest yield, in ISO 8601 format (yyyy-MM-dd).",
            "nullable": true
          },
          "interestYieldEndDate": {
            "type": "string",
            "description": "Gets or sets the end date for the interest yield, in ISO 8601 format (yyyy-MM-dd).",
            "nullable": true
          },
          "apy": {
            "type": "string",
            "description": "Gets or sets the annual percentage yield (APY) for the interest rate tier.",
            "nullable": true
          },
          "responseDetails": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResponseDetail"
            },
            "description": "Required: A list of response details providing status codes, descriptions, and additional information about the result of the operation.",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents the response returned after updating an interest rate tier.\r\nContains details about the updated interest rate tier, including identifiers, dates, and APY.\r\nInherits standard response metadata and details from Gd.Bos.DataTransfer.Response.ResponseBase."
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "bearer token",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": []
    }
  ],
  "x-readme": {
    "explorer-enabled": false,
    "proxy-enabled": false,
    "samples-languages": [
      "csharp",
      "java",
      "python",
      "node",
      "objectivec"
    ]
  }
}
```