# Retrieve a plan Retrieves a plan with a specified ID. Endpoint: GET /storefront/plans/{id} Version: latest Security: CustomerJWT ## Path parameters: - `id` (string, required) ID of the resource. ## Query parameters: - `expand` (string) Expands a request to include embedded objects within the property of the response. This field accepts a comma-separated list of objects. For more information, see Expand to include embedded objects. ## Response 200 fields (application/json): - `id` (string) ID of the plan. Example: "plan_0YV7DENSVGDBW9S71XZNNYYQ0X" - `name` (string, required) Name of the plan. This name is displayed on invoices and receipts. - `description` (string) Plain-text description of the plan. This field accepts plain-text only. - `richDescription` (string) Rich-text description of the plan. This field accepts rich text formatting, such as: bold, underline, italic, and hyperlinks. - `productId` (string, required) ID of the related product. Example: "prod_0YV7DES3WPC5J8JD8QTVNZBZNZ" - `productOptions` (object,null) Name-value pairs that specify the product options. Example: {"color":"red","size":"xxl"} - `currency` (string, required) Currency code in ISO 4217 format. Example: "USD" - `currencySign` (string) Currency sign. - `pricing` (object, required) Pricing details. - `setup` (object,null) Setup fee information for the plan. - `setup.price` (number, required) One-time setup fee charged when the plan starts. Set to if none applies. - `customFields` (object) Use custom fields to extend a resource scheme to include custom data that is not provided as a common field. For more information, see [Custom fields](https://www.rebilly.com/catalog/all/custom-fields). Example: {"foo":"bar"} - `isActive` (boolean) Specifies if the plan is active. - `revision` (integer) Number of times the plan is modified. Compare this value with materialized subscription item revision values. - `trial` (object,null) Trial configuration setting. If you do not want to offer a trial, set this value to . - `trial.price` (number, required) Price of the trial. For a free trial, set this value to . - `trial.period` (object, required) Period information. - `trial.period.unit` (string, required) Unit of time. Enum: "day", "week", "month", "year" - `trial.period.length` (integer, required) Length of time. - `meteredBilling` (object,null) Use metered billing when an exact quantity is unknown. Report usage during a service period and charge customers afterwards. Metered billing plans must be postpaid. - `meteredBilling.strategy` (string, required) Enum: "sum", "last" - `meteredBilling.min` (number,null) Minimum quantity that is charged at the end of a service period regardless of reported usage. - `meteredBilling.max` (number,null) Maximum quantity that is charged at the end of a service period regardless of reported usage. - `createdTime` (string) Date and time which is set automatically when the resource is created. - `updatedTime` (string) Date and time which updates automatically when the resource is updated. - `_embedded` (object) Embedded objects that are requested by the query parameter. - `_embedded.product` (object) - `_links` (array) Related links. - `_links.href` (string) Link URL. - `_links.rel` (string) Type of link. Enum: "self", "attachments" ## Response 401 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ## Response 403 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. ## Response 404 fields (application/json): - `status` (integer) HTTP status code. - `type` (string) Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank". - `title` (string) Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem. - `detail` (string) Human-readable explanation that is specific to this occurrence of the problem. - `instance` (string) URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.