---
updatedAt: 2026-04-22T14:49:07.000Z
agentTools:
  siteIndex: https://developers.pismo.io/llms.txt
  projectIndex: https://developers.pismo.io/pismo-docs/llms.txt
---

# Update program transaction category

Update a program transaction category by ID.

# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Revolving credit - Statements",
    "version": "2.74.0",
    "description": "Endpoints to handle credit card statements operations such as retrieving information about statements, payments agreements, due dates, cancellations and so on.",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/support/"
    },
    "license": {
      "name": "Copyright Pismo"
    }
  },
  "servers": [
    {
      "url": "https://sandbox.pismolabs.io",
      "description": "Sandbox API server for testing"
    }
  ],
  "tags": [
    {
      "name": "Program transaction categories",
      "description": "Program transaction category endpoints"
    }
  ],
  "components": {
    "parameters": {
      "AuthHeader": {
        "name": "Authorization",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "required": true,
        "description": "Account token, not a regular access token. Account tokens are encoded with an account ID. Tokens can expire quickly, which can result in an **Unauthorized** message.\n"
      },
      "ProgramIdHeader": {
        "name": "program-id",
        "in": "header",
        "description": "Program ID",
        "required": true,
        "example": "1233",
        "schema": {
          "type": "string"
        }
      }
    },
    "schemas": {
      "ChargeOrder": {
        "type": "integer",
        "format": "int32",
        "description": "Indicates which transaction is discharged first. 1 is the highest in the hierarchy.",
        "example": 2
      },
      "DefaultRate": {
        "type": "number",
        "format": "float",
        "description": "Interest rate used for the accrual type `OVERDUE` when the statement is past the due date and the MAD has not been paid. (The account is overdue.)\n\nBy default, this is a monthly rate, so the Pismo platform divides it by 30 before applying it on a daily basis. For more information, refer to [Changing the interest rate period](https://developers.pismo.io/pismo-docs/docs/configuring-accrual-rates#changing-the-interest-rate-period).\n",
        "example": 1
      },
      "ErrorResponse": {
        "title": "ErrorResponse",
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string",
            "example": "Internal error",
            "description": "Error message"
          }
        },
        "description": "Standard error response"
      },
      "FineRate": {
        "type": "number",
        "format": "float",
        "description": "Fine rate. Charged once per transaction when transaction is due.",
        "example": 2
      },
      "MinimumValue": {
        "type": "number",
        "format": "float",
        "description": "Minimum value to calculate the minimum amount due (MAD). This field is a percent, so 1.0 is 100%. Allowable values are between 0 and 1.\n",
        "example": 1
      },
      "OverdueRateAfterDueDate": {
        "type": "number",
        "format": "float",
        "description": "Interest rate used for the accrual type `REFINANCING` if the statement due date has passed and the MAD was not paid. <b>Note:</b> If this value is null, `refinancing_rate_after_due_date` is used instead.\n\nBy default, this is a monthly rate, so the Pismo platform divides it by 30 before applying it on a daily basis. For more information, refer to [Changing the interest rate period](https://developers.pismo.io/pismo-docs/docs/configuring-accrual-rates#changing-the-interest-rate-period).\n",
        "example": 17.99
      },
      "ProgramID": {
        "type": "integer",
        "format": "int64",
        "description": "Program ID",
        "example": 1052
      },
      "Programs": {
        "type": "array",
        "description": "Programs that use this transaction category in one or more transaction types",
        "example": [
          1,
          2
        ],
        "items": {
          "type": "integer",
          "format": "int32",
          "description": "Program that uses this transaction category in one or more transaction types"
        }
      },
      "RefinancingRateAfterDueDate": {
        "type": "number",
        "format": "float",
        "description": "Interest rate for the accrual type `REFINANCING` if the statement due date is past, but the account is not overdue. (That is, the MAD was paid.)\n\nBy default, this is a monthly rate, so the Pismo platform divides it by 30 before applying it on a daily basis. For more information, refer to [Changing the interest rate period](https://developers.pismo.io/pismo-docs/docs/configuring-accrual-rates#changing-the-interest-rate-period).\n",
        "example": 15.99
      },
      "SecondaryChargeOrder": {
        "type": "integer",
        "format": "int32",
        "description": "An alternative form of discharge priority for debit transactions. This field is only used if the `secondary_charge_order` parameter is active at the account level. In the discharge flow, the Pismo platform checks to see if `secondary_charge_order` is set for the account and is positive. If so, then the platform ignores the `charge_order` field and uses the `secondary_charge_order` field instead.\n\nUse <a href=\"https://developers.pismo.io/pismo-docs/reference/account-parameters-update\">Update account parameter</a> to set this parameter. The endpoint requires the ID of the parameter. Use <a href=\"https://developers.pismo.io/pismo-docs/reference/account-parameters-find\">List account parameters</a> to find the ID. For example, if you want the `secondary_charge_order` field to be used for transactions on the account with account ID 1234, and the ID for the parameter is 108, then you should call the Update account parameter endpoint with `accountId` = `1234`, `parameterId` = 108, and `value` = 1.\n",
        "example": 7
      },
      "StandardErrorResponse": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "example": "1020030"
          },
          "message": {
            "type": "string",
            "example": "Error message"
          }
        }
      },
      "TransactionCategoryDescription": {
        "type": "string",
        "maxLength": 50,
        "description": "Transaction category description",
        "example": "purchase"
      },
      "TransactionCategoryID": {
        "type": "integer",
        "format": "int64",
        "description": "Transaction category ID",
        "example": 1
      },
      "TransactionCategoryResponse": {
        "type": "object",
        "properties": {
          "transaction_category_id": {
            "$ref": "#/components/schemas/TransactionCategoryID"
          },
          "transaction_category_description": {
            "$ref": "#/components/schemas/TransactionCategoryDescription"
          },
          "refinancing_rate_after_due_date": {
            "$ref": "#/components/schemas/RefinancingRateAfterDueDate"
          },
          "default_rate": {
            "$ref": "#/components/schemas/DefaultRate"
          },
          "fine_rate": {
            "$ref": "#/components/schemas/FineRate"
          },
          "overdue_rate_after_due_date": {
            "$ref": "#/components/schemas/OverdueRateAfterDueDate"
          },
          "minimum_value": {
            "$ref": "#/components/schemas/MinimumValue"
          },
          "charge_order": {
            "$ref": "#/components/schemas/ChargeOrder"
          },
          "secondary_charge_order": {
            "$ref": "#/components/schemas/SecondaryChargeOrder"
          },
          "program_id": {
            "$ref": "#/components/schemas/ProgramID"
          },
          "programs": {
            "$ref": "#/components/schemas/Programs"
          }
        }
      },
      "TransactionCategoryRequest": {
        "required": [
          "default_rate",
          "fine_rate",
          "minimum_value",
          "overdue_rate_after_due_date",
          "refinancing_rate_after_due_date"
        ],
        "type": "object",
        "properties": {
          "default_rate": {
            "$ref": "#/components/schemas/DefaultRate"
          },
          "fine_rate": {
            "$ref": "#/components/schemas/FineRate"
          },
          "minimum_value": {
            "$ref": "#/components/schemas/MinimumValue"
          },
          "overdue_rate_after_due_date": {
            "$ref": "#/components/schemas/OverdueRateAfterDueDate"
          },
          "refinancing_rate_after_due_date": {
            "$ref": "#/components/schemas/RefinancingRateAfterDueDate"
          },
          "description": {
            "$ref": "#/components/schemas/TransactionCategoryDescription"
          },
          "charge_order": {
            "$ref": "#/components/schemas/ChargeOrder"
          },
          "secondary_charge_order": {
            "$ref": "#/components/schemas/SecondaryChargeOrder"
          }
        },
        "example": {
          "refinancing_rate_after_due_date": 13.99,
          "default_rate": 1,
          "fine_rate": 2,
          "overdue_rate_after_due_date": 17.99,
          "minimum_value": 0.2,
          "charge_order": 1,
          "secondary_charge_order": 7
        }
      }
    },
    "responses": {
      "400BadRequest": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/StandardErrorResponse"
            },
            "examples": {
              "Missing request header": {
                "description": "Missing request header",
                "value": {
                  "code": "EX0002",
                  "message": "Missing request header for method parameter of type String"
                }
              }
            }
          }
        }
      },
      "500InternalServerError": {
        "description": "Internal Server Error",
        "content": {
          "application/json": {
            "schema": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              ]
            },
            "examples": {
              "Internal Server Error": {
                "description": "Service is unavailable",
                "value": {
                  "code": "GN0001",
                  "message": "Service is unavailable"
                }
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Account JWT"
      }
    }
  },
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "paths": {
    "/statements-v2/v1/transactions-categories/{transactionCategoryId}": {
      "put": {
        "tags": [
          "Program transaction categories"
        ],
        "summary": "Update program transaction category",
        "description": "Update a program transaction category by ID.",
        "operationId": "updateTransactionCategoryInterest",
        "parameters": [
          {
            "$ref": "#/components/parameters/AuthHeader"
          },
          {
            "$ref": "#/components/parameters/ProgramIdHeader"
          },
          {
            "name": "transactionCategoryId",
            "in": "path",
            "description": "Program transaction category ID",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int64",
              "example": 101
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionCategoryRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Ok",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionCategoryResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "404": {
            "description": "Not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StandardErrorResponse"
                },
                "examples": {
                  "Program not found": {
                    "description": "Program not found",
                    "value": {
                      "code": "EX0001",
                      "message": "There is no program with the informed program_id: ${program_id}"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "$ref": "#/components/responses/500InternalServerError"
          }
        }
      }
    }
  }
}
```