---
title: "Create Plan"
method: POST
path: "/organizations/{orgId}/plans"
tags: ["Plan"]
---

# Create Plan

`POST /organizations/{orgId}/plans`

Create a new Plan.

## Path parameters

- `orgId` string, required

## Request body

- PlanRequest
  - `version` integer — The version number of the entity: - **Create entity:** Not valid for initial insertion of new entity - *do not use for Create*. On initial Create, version is set at 1 and listed in the response. - **Update Entity:** On Update, version is required and must match the existing version because a check is performed to ensure sequential versioning is preserved. Version is incremented by 1 and listed in the response.
  - `customFields` object — User defined fields enabling you to attach custom data. The value for a custom field can be either a string or a number. If `customFields` can also be defined for this entity at the Organizational level, `customField` values defined at individual level override values of `customFields` with the same name defined at Organization level. See [Working with Custom Fields](https://www.m3ter.com/docs/guides/creating-and-managing-products/working-with-custom-fields) in the m3ter documentation for more information.
  - `planTemplateId` string, required — UUID of the PlanTemplate the Plan belongs to.
  - `name` string, required — Descriptive name for the Plan.
  - `code` string, required — Unique short code reference for the Plan.
  - `standingCharge` number, double — The standing charge applied to bills for end customers. This is prorated. *(Optional)*. Overrides PlanTemplate value.
  - `standingChargeDescription` string — Standing charge description *(displayed on the bill line item)*.
  - `ordinal` integer — Assigns a rank or position to the Plan in your order of pricing plans - lower numbers represent more basic pricing plans; higher numbers represent more premium pricing plans. *(Optional)*. Overrides PlanTemplate value. **NOTE: DEPRECATED** - do not use.
  - `bespoke` boolean — TRUE/FALSE flag indicating whether the plan is a custom/bespoke Plan for a particular Account: * When creating a Plan, use the `accountId` request parameter to specify the Account for which the Plan will be custom/bespoke. * A custom/bespoke Plan can only be attached to the specified Account.
  - `minimumSpend` number, double — The product minimum spend amount per billing cycle for end customer Accounts on a priced Plan. *(Optional)*. Overrides PlanTemplate value.
  - `minimumSpendDescription` string — Minimum spend description *(displayed on the bill line item)*.
  - `standingChargeBillInAdvance` boolean — When TRUE, standing charge is billed at the start of each billing period. When FALSE, standing charge is billed at the end of each billing period. *(Optional)*. Overrides the setting at PlanTemplate level for standing charge billing in arrears/in advance.
  - `minimumSpendBillInAdvance` boolean — When TRUE, minimum spend is billed at the start of each billing period. When FALSE, minimum spend is billed at the end of each billing period. *(Optional)*. Overrides the setting at PlanTemplate level for minimum spend billing in arrears/in advance.
  - `minimumSpendAccountingProductId` string — Optional Product ID this plan's minimum spend should be attributed to for accounting purposes
  - `standingChargeAccountingProductId` string — Optional Product ID this plan's standing charge should be attributed to for accounting purposes
  - `accountId` string — *(Optional)*. Used to specify an Account for which the Plan will be a custom/bespoke Plan: * Use when first creating a Plan. * A custom/bespoke Plan can only be attached to the specified Account. * Once created, a custom/bespoke Plan cannot be updated to be made a custom/bespoke Plan for a different Account.

## Response `200`

Returns the created Plan

- PlanResponse
  - `id` string, required — The UUID of the entity.
  - `version` integer — The version number: - **Create:** On initial Create to insert a new entity, the version is set at 1 in the response. - **Update:** On successful Update, the version is incremented by 1 in the response.
  - `customFields` object — User defined fields enabling you to attach custom data. The value for a custom field can be either a string or a number. If `customFields` can also be defined for this entity at the Organizational level,`customField` values defined at individual level override values of `customFields` with the same name defined at Organization level. See [Working with Custom Fields](https://www.m3ter.com/docs/guides/creating-and-managing-products/working-with-custom-fields) in the m3ter documentation for more information.
  - `planTemplateId` string — UUID of the PlanTemplate the Plan belongs to.
  - `productId` string — UUID of the Product the Plan belongs to.
  - `name` string — Descriptive name for the Plan.
  - `code` string — Unique short code reference for the Plan.
  - `standingCharge` number, double — The standing charge applied to bills for end customers. This is prorated. *(Optional)*. Overrides PlanTemplate value.
  - `standingChargeDescription` string — Standing charge description *(displayed on the bill line item)*.
  - `ordinal` integer — Assigns a rank or position to the Plan in your order of pricing plans - lower numbers represent more basic pricing plans; higher numbers represent more premium pricing plans. *(Optional)*. Overrides PlanTemplate value. **NOTE:** **DEPRECATED** - no longer used.
  - `bespoke` boolean — TRUE/FALSE flag indicating whether the plan is custom/bespoke for a particular Account.
  - `minimumSpend` number, double — The product minimum spend amount per billing cycle for end customer Accounts on a priced Plan. *(Optional)*. Overrides PlanTemplate value.
  - `minimumSpendDescription` string — Minimum spend description *(displayed on the bill line item)*.
  - `standingChargeBillInAdvance` boolean — When TRUE, standing charge is billed at the start of each billing period. When FALSE, standing charge is billed at the end of each billing period. *(Optional)*. Overrides the setting at PlanTemplate level for standing charge billing in arrears/in advance.
  - `minimumSpendBillInAdvance` boolean — When TRUE, minimum spend is billed at the start of each billing period. When FALSE, minimum spend is billed at the end of each billing period. *(Optional)*. Overrides the setting at PlanTemplate level for minimum spend billing in arrears/in advance.
  - `minimumSpendAccountingProductId` string — Optional Product ID this plan's minimum spend should be attributed to for accounting purposes
  - `standingChargeAccountingProductId` string — Optional Product ID this plan's standing charge should be attributed to for accounting purposes
  - `accountId` string — *(Optional)*. The Account ID for which this plan was created as custom/bespoke. A custom/bespoke Plan can only be attached to the specified Account.
  - `dtCreated` string, date-time — The DateTime *(in ISO-8601 format)* when the plan was created.
  - `dtLastModified` string, date-time — The DateTime *(in ISO-8601 format)* when the plan was last modified.
  - `createdBy` string — The id of the user who created this plan.
  - `lastModifiedBy` string — The id of the user who last modified this plan.

## Other responses

- `4XX` — Error message
- `5XX` — Error message

---

[API](https://skmtc.net/m3ter-com/apis/m3ter-api.md) · [All operations](https://skmtc.net/m3ter-com/apis/m3ter-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/m3ter-com/m3ter-api/versions/ac93d1a9e6d9/schema)
