---
updatedAt: 2026-06-05T15:35:44.000Z
agentTools:
  siteIndex: https://developers.pismo.io/llms.txt
  projectIndex: https://developers.pismo.io/pismo-docs/llms.txt
---

# List recurring charge plans

Returns a list of recurring charge plans.

**NOTE:** This endpoint requires an account token — an access token encoded with an account ID. Tokens can expire quickly, which can result in a **401 Unauthorized** message.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Revolving credit - Recurring charges",
    "version": "1.0.0",
    "description": "Recurring charges API",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/support/"
    },
    "license": {
      "name": "Copyright Pismo"
    }
  },
  "servers": [
    {
      "url": "https://sandbox.pismolabs.io/recurring-charge",
      "description": "Sandbox API server for testing"
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "tags": [
    {
      "name": "Recurring charge plans",
      "description": "Endpoints to manage the recurring charge plans."
    }
  ],
  "components": {
    "parameters": {
      "CorrelationID": {
        "in": "header",
        "name": "x-cid",
        "schema": {
          "type": "string"
        },
        "description": "The Correlation IDentifier field is used to link related API requests and events. The x-cid can help the Pismo engineering team track everything related to a call. You can find the x-cid field in the response header from an API endpoint call.\n\nIf this field isn't passed, one is automatically generated.\n",
        "example": "5bb05174-4e80-11ea-b77f-2e728ce88125"
      },
      "Page": {
        "name": "page",
        "in": "query",
        "description": "Page number",
        "required": false,
        "style": "form",
        "schema": {
          "default": 1,
          "type": "integer",
          "example": 3
        }
      },
      "PerPage": {
        "name": "perPage",
        "in": "query",
        "description": "Maximum number of items per page",
        "required": false,
        "style": "form",
        "schema": {
          "default": 100,
          "type": "integer",
          "example": 10
        }
      }
    },
    "schemas": {
      "CID": {
        "type": "string",
        "description": "The Correlation IDentifier field is used to link related API requests and events. The x-cid can help the Pismo engineering team track everything related to a call.",
        "example": "3ea22692-a209-11eb-89a2-f73e179dcbc2"
      },
      "CreatedAt": {
        "type": "string",
        "description": "Date/time (GMT-3) that asset was registered on Pismo platform",
        "example": "2023-03-30T12:26:41"
      },
      "CurrentPage": {
        "type": "integer",
        "format": "int32",
        "description": "Current page",
        "example": 1
      },
      "DiscountPercentage": {
        "type": "number",
        "format": "double",
        "description": "Percentage value to be discounted if `first_cycles_to_discount` is configured. Range: 0 to 100. ",
        "example": 50
      },
      "FirstCyclesToDiscount": {
        "type": "integer",
        "format": "int32",
        "description": "The number of cycles the discount (defined by `discount_percentage`) should be applied to before reverting to the full charge.\nFor example, if `number_of_cycles` is 6 and `first_cycles_to_discount` is 2, then the discount is applied to cycles 1 and 2. The full charge is applied to cycles 3 through 6.\nIf present, `first_cycles_to_discount` must be positive and less than `number_of_cycles`.\"\n",
        "example": 3
      },
      "InstallmentAmount": {
        "type": "number",
        "format": "double",
        "description": "`installment_amount` is the full amount of a recurring charge before any discount is applied.\n",
        "example": 10.9
      },
      "IsLastPage": {
        "type": "boolean",
        "description": "Set to `true` if this is the last page.",
        "example": false
      },
      "MinimumSpendToCharge": {
        "type": "number",
        "format": "double",
        "example": 100,
        "description": "Minimum debit amount on statement to enable cycle charging. If `minimum_spend_to_charge` is not configured, the charge plan does not check the debit statement amount."
      },
      "NumberOfCycles": {
        "type": "integer",
        "format": "int32",
        "description": "Number of cycles to apply the charge plan. In other words, this is the number of recurring charges.\nMust be greater than `first_cycles_to_discount` if used. Otherwise, it must be greater than 0.\n",
        "example": 12
      },
      "Pages": {
        "type": "integer",
        "description": "Number of pages",
        "example": 10
      },
      "PerPage": {
        "type": "integer",
        "description": "Number of items per page",
        "example": 1
      },
      "ProcessingCode": {
        "type": "string",
        "description": "Processing code for the debit transaction.\n\nIf `split_transaction` is `false` (the default), each recurring payment is recorded as one debit transaction equal to the payment amount minus the discount, and `processing_code` is the processing code for that transaction.\n\nIf `split_transaction` is `true`, each recurring payment is recorded as two transactions: a debit transaction for the payment amount and a credit transaction for the discount. In this case, `processing_code` is the processsing code for the debit transaction, and `second_processing_code` is the processing code for the credit transaction.\n",
        "example": "99066"
      },
      "OrgID": {
        "type": "string",
        "description": "Organization ID",
        "example": "TN-cc8f8b89-233a-4582-9f36-63ee85278d6d"
      },
      "RecurringChargePlanID": {
        "type": "integer",
        "description": "ID of recurring charge plan",
        "format": "int64",
        "example": 115563
      },
      "RenewMethod": {
        "type": "string",
        "example": "WITH_DISCOUNT",
        "description": "NO_RENEW: The link does not renew at the end of the cycle.\nWITHOUT_DISCOUNT: The link is renewed at the end of the cycle, but the discounts registered in the plan are not applied.\nWITH_DISCOUNT: The link is renewed at the end of the cycle, and the discounts registered in the plan are applied.\"\n",
        "enum": [
          "NO_RENEW",
          "WITHOUT_DISCOUNT",
          "WITH_DISCOUNT"
        ]
      },
      "SecondaryProcessingCode": {
        "type": "string",
        "example": "99067",
        "description": "Used to create the transaction for `secondary_installment_amount`. Normally, you should use a processing code for a credit transaction."
      },
      "SplitTransaction": {
        "description": "Use separate transactions for the amount of the recurring charge and the discount?\n\nSuppose the recurring charge amount for a cycle is $20, and the discount is $2. If `split_transaction` is `false`, then one debit transaction for $18 ($20 - $2) is posted to the account for that cycle. It also appears as one debit transaction on the statement. If `split_transaction` is `true`, then two transactions are posted to the account—a debit transaction for $20 and a credit transaction for $2—and those two transactions appear on the statement. When `split_transaction` is `true`, `secondary_processing_code` is used to create the credit transaction.\n\nNote: You aren't forced to specify a debit transaction with `processing_code` and a credit transaction with `secondary_processing_code`, but it's highly recommended. It's difficult to think of a scenario where you would want to do something else.\n",
        "type": "boolean",
        "default": false
      },
      "TotalItems": {
        "type": "integer",
        "description": "Total items",
        "example": 10
      },
      "TrackingID": {
        "type": "string",
        "description": "Tracking ID",
        "example": "3ea22692-a209-11eb-89a2-f73e179dcbc2"
      },
      "PagedRecurringChargePlan": {
        "description": "Response to a request to get a recurring charge plan.",
        "type": "object",
        "properties": {
          "current_page": {
            "$ref": "#/components/schemas/CurrentPage"
          },
          "per_page": {
            "$ref": "#/components/schemas/PerPage"
          },
          "pages": {
            "$ref": "#/components/schemas/Pages"
          },
          "total_items": {
            "$ref": "#/components/schemas/TotalItems"
          },
          "is_last_page": {
            "$ref": "#/components/schemas/IsLastPage"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RecurringChargePlan"
            }
          }
        }
      },
      "RecurringChargePlan": {
        "description": "Recurring charge plan",
        "type": "object",
        "properties": {
          "recurring_charge_plan_id": {
            "$ref": "#/components/schemas/RecurringChargePlanID"
          },
          "org_id": {
            "$ref": "#/components/schemas/OrgID"
          },
          "processing_code": {
            "$ref": "#/components/schemas/ProcessingCode"
          },
          "installment_amount": {
            "$ref": "#/components/schemas/InstallmentAmount"
          },
          "description": {
            "type": "string",
            "description": "Used if the recurring charge link description is not provided. Use \"{counter}\" to indicate where the cycle count should be placed. Example: \"{counter} Annuity\" generates \"2/12 Annuity\" for the second of twelve installments. If \"{counter}\" is not present, the counter is placed at the end of the description. If no description is provided, the transaction type's description is used and the counter is not shown.\n"
          },
          "split_transaction": {
            "$ref": "#/components/schemas/SplitTransaction"
          },
          "secondary_processing_code": {
            "$ref": "#/components/schemas/SecondaryProcessingCode"
          },
          "secondary_description": {
            "type": "string",
            "description": "Used to create a description for the secondary transaction. Use \"{counter}\" to indicate where the cycle count should be placed. Example: \"{counter} Annuity\" generates \"2/12 Annuity\" for the second of twelve recurring charges. If \"{counter}\" is not present, the counter is placed at the end of the description. If no description is provided, the transaction type's description is used and the counter is not shown.\n"
          },
          "number_of_cycles": {
            "$ref": "#/components/schemas/NumberOfCycles"
          },
          "first_cycles_to_discount": {
            "$ref": "#/components/schemas/FirstCyclesToDiscount"
          },
          "discount_percentage": {
            "$ref": "#/components/schemas/DiscountPercentage"
          },
          "minimum_spend_to_charge": {
            "$ref": "#/components/schemas/MinimumSpendToCharge"
          },
          "renew_method": {
            "$ref": "#/components/schemas/RenewMethod"
          },
          "tracking_id": {
            "$ref": "#/components/schemas/TrackingID"
          },
          "cid": {
            "$ref": "#/components/schemas/CID"
          },
          "created_at": {
            "$ref": "#/components/schemas/CreatedAt"
          }
        }
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "description": "Account access token. Tokens can expire quickly, which can result in an \"Unauthorized\" error.",
        "bearerFormat": "JWT"
      }
    },
    "responses": {
      "400BadRequest": {
        "description": "Bad Request"
      },
      "500InternalServer": {
        "description": "Internal server error"
      }
    }
  },
  "paths": {
    "/v1/recurring-charge-plans": {
      "get": {
        "tags": [
          "Recurring charge plans"
        ],
        "summary": "List recurring charge plans",
        "description": "Returns a list of recurring charge plans.\n\n**NOTE:** This endpoint requires an account token — an access token encoded with an account ID. Tokens can expire quickly, which can result in a **401 Unauthorized** message.\n",
        "operationId": "list-recurring-charge-plans",
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationID"
          },
          {
            "$ref": "#/components/parameters/Page"
          },
          {
            "$ref": "#/components/parameters/PerPage"
          },
          {
            "name": "active",
            "in": "query",
            "description": "If `true`, the request returns only active plans.",
            "required": false,
            "style": "form",
            "schema": {
              "default": false,
              "type": "boolean",
              "example": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK - Indicates that the server accepted the request and returned the results. If no records are found, the request returns an empty array with `total_items` set to 0.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PagedRecurringChargePlan"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/400BadRequest"
          },
          "500": {
            "$ref": "#/components/responses/500InternalServer"
          }
        }
      }
    }
  }
}
```