---
title: "Changes to Create a product"
method: POST
path: "/v1/sdk/products"
---

# Changes to Create a product

`POST /v1/sdk/products`

> Every recorded change to this endpoint, newest first.

## Timeline

Changed in 14 of 27 revisions.

- **2026-08-14** `aeecbfb5cb3c` — 3 info
- **2026-08-13** `e356f6586bf2` — 1 info
- **2026-08-05** `032545ac8d13` — 2 breaking, 12 warning, 1 info
- **2026-07-30** `8578b7536a9f` — 5 info
- **2026-07-17** `bbc2ff2bc849` — 4 breaking, 5 warning, 2 info
- **2026-07-04** `a30b6aef464d` — 2 info
- **2026-04-09** `7b327a22e3cb` — 1 warning, 1 info
- **2026-04-08** `052cc028fdfa` — 2 breaking, 1 info
- **2026-04-04** `88abf6f50f11` — 5 breaking, 1 warning, 4 info
- **2026-03-25** `e0583a41987c` — 3 breaking, 28 info
- **2026-03-16** `9fd92a720973` — 13 breaking, 18 warning
- **2026-03-16** `c38fce7d1ce2` — 1 warning, 5 info
- **2026-03-14** `0e1cded2ee5d` — 4 breaking, 20 info
- **2026-02-27** `9079f361f51c` — 1 info

## Changes

- **2026-08-14** `aeecbfb5cb3c` — 3 info
  - added the new optional request property `isManagedMcp`
  - response property `isMcpPay` deprecated
  - added the required property `isManagedMcp` to the response with the `201` status
- **2026-08-13** `e356f6586bf2` — 1 info
  - added the optional property `plans/items/description` to the response with the `201` status
- **2026-08-05** `032545ac8d13` — 2 breaking, 12 warning, 1 info
  - the response property `plans/items/price` became optional for the status `201`
  - removed the required property `plans/items/hidden` from the response with the `201` status
  - removed the optional property `plans/items/billingCycle` from the response with the `201` status
  - removed the optional property `plans/items/billingModel` from the response with the `201` status
  - removed the optional property `plans/items/creditsPerUnit` from the response with the `201` status
  - removed the optional property `plans/items/description` from the response with the `201` status
  - removed the optional property `plans/items/freeUnits` from the response with the `201` status
  - removed the optional property `plans/items/limit` from the response with the `201` status
  - removed the optional property `plans/items/limits` from the response with the `201` status
  - removed the optional property `plans/items/measures` from the response with the `201` status
  - removed the optional property `plans/items/meterRef` from the response with the `201` status
  - removed the optional property `plans/items/rolloverUnusedUnits` from the response with the `201` status
  - removed the optional property `plans/items/setupFee` from the response with the `201` status
  - removed the optional property `plans/items/trialDays` from the response with the `201` status
  - added the required property `plans/items/options` to the response with the `201` status
- **2026-07-30** `8578b7536a9f` — 5 info
  - the request property `config` became optional
  - the request property `metadata` became optional
  - added the optional property `plans/items/description` to the response with the `201` status
  - added the optional property `plans/items/name` to the response with the `201` status
  - added the required property `plans/items/type` to the response with the `201` status
- **2026-07-17** `bbc2ff2bc849` — 4 breaking, 5 warning, 2 info
  - the `name` request property's minLength was increased from `1` to `2`
  - added the pattern `^[\p{L}\p{N} .,'"&\/()+:\-]*$` to the request property `name`
  - added the pattern `^[\p{L}\p{N}\s.,'"&\/()+:%;?!@#_[\]\-]*$` to the request property `description`
  - the `config/validityPeriod` request property type changed from `number` to `integer`
  - the `config/validityPeriod` request property's exclusiveMinimum was set to `true`
  - the `description` request property's maxLength was set to `1000`
  - the `name` request property's maxLength was set to `100`
  - the `productType` request property's maxLength was set to `100`
  - the `config/validityPeriod` request property's min was set to `0.00`
  - added the new optional request property `taxBehavior`
  - added the required property `plans/items/hidden` to the response with the `201` status
- **2026-07-04** `a30b6aef464d` — 2 info
  - the endpoint scheme security `SecretKey` was added to the API
  - the endpoint scheme security `bearer` was removed from the API
- **2026-04-09** `7b327a22e3cb` — 1 warning, 1 info
  - removed the optional property `plans/items/pricePerUnit` from the response with the `201` status
  - added the optional property `plans/items/creditsPerUnit` to the response with the `201` status
- **2026-04-08** `052cc028fdfa` — 2 breaking, 1 info
  - removed the required property `id` from the response with the `201` status
  - removed the required property `plans/items/id` from the response with the `201` status
  - added the optional property `plans/items/meterRef` to the response with the `201` status
- **2026-04-04** `88abf6f50f11` — 5 breaking, 1 warning, 4 info
  - the request property `config` became required
  - the request property `metadata` became required
  - the `name` request property's minLength was increased from `0` to `1`
  - the `config` request property type changed from no type to `object`
  - removed the required property `plans/items/isFreeTier` from the response with the `201` status
  - removed `#/components/schemas/ProductConfigDto` from the `config` request property `allOf` list
  - added the new optional request property `config/deliveryMethod`
  - added the new optional request property `config/fulfillmentType`
  - added the new optional request property `config/validityPeriod`
  - the `isMcpPay` request property default value `false` was removed
- **2026-03-25** `e0583a41987c` — 3 breaking, 28 info
  - the `config/allOf[#/components/schemas/ProductConfigDto]/` request property type changed from no type to `object`
  - the `config/allOf[#/components/schemas/ProductConfigDto]/` response's property type changed from no type to `object` for status `201`
  - the `plans/items/` response's property type changed from no type to `object` for status `201`
  - added the new optional request property `config/allOf[#/components/schemas/ProductConfigDto]/deliveryMethod`
  - added the new optional request property `config/allOf[#/components/schemas/ProductConfigDto]/fulfillmentType`
  - added the new optional request property `config/allOf[#/components/schemas/ProductConfigDto]/validityPeriod`
  - added the optional property `config/allOf[#/components/schemas/ProductConfigDto]/deliveryMethod` to the response with the `201` status
  - added the optional property `config/allOf[#/components/schemas/ProductConfigDto]/fulfillmentType` to the response with the `201` status
  - added the optional property `config/allOf[#/components/schemas/ProductConfigDto]/validityPeriod` to the response with the `201` status
  - added the optional property `plans/items/billingCycle` to the response with the `201` status
  - added the optional property `plans/items/billingModel` to the response with the `201` status
  - added the optional property `plans/items/currencySymbol` to the response with the `201` status
  - added the optional property `plans/items/features` to the response with the `201` status
  - added the optional property `plans/items/freeUnits` to the response with the `201` status
  - added the optional property `plans/items/limit` to the response with the `201` status
  - added the optional property `plans/items/limits` to the response with the `201` status
  - added the optional property `plans/items/measures` to the response with the `201` status
  - added the optional property `plans/items/pricePerUnit` to the response with the `201` status
  - added the optional property `plans/items/rolloverUnusedUnits` to the response with the `201` status
  - added the optional property `plans/items/setupFee` to the response with the `201` status
  - added the optional property `plans/items/trialDays` to the response with the `201` status
  - added the required property `plans/items/createdAt` to the response with the `201` status
  - added the required property `plans/items/currency` to the response with the `201` status
  - added the required property `plans/items/id` to the response with the `201` status
  - added the required property `plans/items/isActive` to the response with the `201` status
  - added the required property `plans/items/isFreeTier` to the response with the `201` status
  - added the required property `plans/items/price` to the response with the `201` status
  - added the required property `plans/items/reference` to the response with the `201` status
  - added the required property `plans/items/requiresPayment` to the response with the `201` status
  - added the required property `plans/items/status` to the response with the `201` status
  - added the required property `plans/items/updatedAt` to the response with the `201` status
- **2026-03-16** `9fd92a720973` — 13 breaking, 18 warning
  - the `config/allOf[#/components/schemas/ProductConfigDto]/` request property type changed from `object` to no type
  - the `config/allOf[#/components/schemas/ProductConfigDto]/` response's property type changed from `object` to no type for status `201`
  - the `plans/items/` response's property type changed from `object` to no type for status `201`
  - removed the required property `plans/items/createdAt` from the response with the `201` status
  - removed the required property `plans/items/currency` from the response with the `201` status
  - removed the required property `plans/items/id` from the response with the `201` status
  - removed the required property `plans/items/isActive` from the response with the `201` status
  - removed the required property `plans/items/isFreeTier` from the response with the `201` status
  - removed the required property `plans/items/price` from the response with the `201` status
  - removed the required property `plans/items/reference` from the response with the `201` status
  - removed the required property `plans/items/requiresPayment` from the response with the `201` status
  - removed the required property `plans/items/status` from the response with the `201` status
  - removed the required property `plans/items/updatedAt` from the response with the `201` status
  - removed the request property `config/allOf[#/components/schemas/ProductConfigDto]/deliveryMethod`
  - removed the request property `config/allOf[#/components/schemas/ProductConfigDto]/fulfillmentType`
  - removed the request property `config/allOf[#/components/schemas/ProductConfigDto]/validityPeriod`
  - removed the optional property `config/allOf[#/components/schemas/ProductConfigDto]/deliveryMethod` from the response with the `201` status
  - removed the optional property `config/allOf[#/components/schemas/ProductConfigDto]/fulfillmentType` from the response with the `201` status
  - removed the optional property `config/allOf[#/components/schemas/ProductConfigDto]/validityPeriod` from the response with the `201` status
  - removed the optional property `plans/items/billingCycle` from the response with the `201` status
  - removed the optional property `plans/items/billingModel` from the response with the `201` status
  - removed the optional property `plans/items/currencySymbol` from the response with the `201` status
  - removed the optional property `plans/items/features` from the response with the `201` status
  - removed the optional property `plans/items/freeUnits` from the response with the `201` status
  - removed the optional property `plans/items/limit` from the response with the `201` status
  - removed the optional property `plans/items/limits` from the response with the `201` status
  - removed the optional property `plans/items/measures` from the response with the `201` status
  - removed the optional property `plans/items/pricePerUnit` from the response with the `201` status
  - removed the optional property `plans/items/rolloverUnusedUnits` from the response with the `201` status
  - removed the optional property `plans/items/setupFee` from the response with the `201` status
  - removed the optional property `plans/items/trialDays` from the response with the `201` status
- **2026-03-16** `c38fce7d1ce2` — 1 warning, 5 info
  - removed the optional property `plans/items/meterId` from the response with the `201` status
  - added the optional property `mcp` to the response with the `201` status
  - added the optional property `plans/items/measures` to the response with the `201` status
  - added the optional property `plans/items/rolloverUnusedUnits` to the response with the `201` status
  - added the optional property `plans/items/setupFee` to the response with the `201` status
  - added the optional property `plans/items/trialDays` to the response with the `201` status
- **2026-03-14** `0e1cded2ee5d` — 4 breaking, 20 info
  - added `#/components/schemas/ProductConfigDto` to the `config` request property `allOf` list
  - the `config` request property type changed from `object` to no type
  - the `config` response's property type changed from `object` to no type for status `201`
  - the `plans/items/` response's property type changed from `string` to `object` for status `201`
  - added the optional property `plans/items/billingCycle` to the response with the `201` status
  - added the optional property `plans/items/billingModel` to the response with the `201` status
  - added the optional property `plans/items/currencySymbol` to the response with the `201` status
  - added the optional property `plans/items/features` to the response with the `201` status
  - added the optional property `plans/items/freeUnits` to the response with the `201` status
  - added the optional property `plans/items/limit` to the response with the `201` status
  - added the optional property `plans/items/limits` to the response with the `201` status
  - added the optional property `plans/items/meterId` to the response with the `201` status
  - added the optional property `plans/items/pricePerUnit` to the response with the `201` status
  - added `#/components/schemas/ProductConfigDto` to the `config` response property `allOf` list for the response status `201`
  - added the required property `plans/items/createdAt` to the response with the `201` status
  - added the required property `plans/items/currency` to the response with the `201` status
  - added the required property `plans/items/id` to the response with the `201` status
  - added the required property `plans/items/isActive` to the response with the `201` status
  - added the required property `plans/items/isFreeTier` to the response with the `201` status
  - added the required property `plans/items/price` to the response with the `201` status
  - added the required property `plans/items/reference` to the response with the `201` status
  - added the required property `plans/items/requiresPayment` to the response with the `201` status
  - added the required property `plans/items/status` to the response with the `201` status
  - added the required property `plans/items/updatedAt` to the response with the `201` status
- **2026-02-27** `9079f361f51c` — 1 info
  - endpoint added

---

[Operation](https://skmtc.dev/solvapay/apis/solvapay-rest-api/docs/v1/sdk/products/post.md) · [API](https://skmtc.dev/solvapay/apis/solvapay-rest-api.md) · [Page](https://skmtc.dev/solvapay/apis/solvapay-rest-api/changes/v1/sdk/products/post)
