---
title: "POST /api/subscriptions/plans"
method: POST
path: "/api/subscriptions/plans"
tags: ["api", "subscription-plans"]
---

# POST /api/subscriptions/plans

`POST /api/subscriptions/plans`

Create a subscription Plan

## Request body

- POSTSubscriptionPlansCreateASubscriptionPlan
  - `name` string, required — The name of the subscription plan
  - `pricingPolicy` 'fixed' | 'inherited' — The pricing policy of the subscription plan
  - `variants` object[] — An array of variants of the subscription plan
    - `_id` string, required — The ID of the plan variant
    - `name` string, required — The name of the plan variant
    - `canChangeVariant` boolean — Whether the variant is changeable or not
    - `allowedVariants` string[] — Allowed variants to change of the variant
  - `paymentSchedules` object[] — An array of payment plans of the subscription plan
    - `_id` string, required
    - `scheme` 'one-off' | 'installments' — The scheme of the payment
    - `interval` 'DAY' | 'WEEK' | 'MONTH' — The interval of the payment
    - `numberOfInstallments` number, float — The number of installments of the payment
  - `billingCycle` object — The billing plan of the subscription plan
    - `scheme` 'one-off' | 'recurring' | 'interactive_recurring', required — The scheme of the billing cycle
    - `interval` 'DAY' | 'WEEK' | 'MONTH' — The interval of the billing cycle
    - `every` number, float — The recurrence of the billing cycle
    - `minimumIntervals` number, float, nullable
    - `renewalOptions` object — Renewal options for interactive recurring billing
      - `periodStart` object, required — When the renewal window opens, relative to the current cycle end
        - `target` string, nullable — The target of the relative date
        - `unit` 'hours' | 'days' | 'weeks' | 'months' | 'years', required — The unit in which the offset is specified
        - `offset` integer, required — The offset to the date
  - `renewalPolicy` object — The renewal policy of the subscription plan
    - `changesPeriodStart` string, date-time — An ISO timestamp indicating when the changes period starts
    - `changesPeriodEnd` string, date-time — An ISO timestamp indicating when the changes period ends
    - `allowedChanges` object — Allowed Changes settings of the renewal policy
      - `ticketType` boolean — Whether changes of ticketTypes are allowed or not
      - `seat` boolean — Whether changes of seats are allowed or not
    - `confirmationPeriodStart` string, date-time — An ISO timestamp indicating when the confirmation period starts
    - `confirmationPeriodEnd` string, date-time — An ISO timestamp indicating when the confirmation period ends
  - `paymentPolicy` object — The payment policy of the subscription plan
    - `interaction` 'payNowOnly' | 'customerPaymentMethod' — The interaction type of the payment policy
    - `allowedPaymentGateways` string[] — Allowed payment gateways
    - `changePaymentMethodPolicy` 'always' | 'never' | 'onDraft' — Change payment method policy
    - `allowedChangePaymentMethodGateways` string[] — Allowed change payment method gateways
  - `requestedConsents` object[] — The subscription consent types requested during checkout
    - `type` 'autorenewal'
    - `description` string
    - `default` boolean

## Response `201`

Created

- SubscriptionPlanResource
  - `_id` string, required — The ID of the subscription plan
  - `name` string, required — The name of the subscription plan
  - `pricingPolicy` 'fixed' | 'inherited' — The pricing policy of the subscription plan
  - `variants` object[] — An array of variants of the subscription plan
    - `_id` string, required — The ID of the plan variant
    - `name` string, required — The name of the plan variant
    - `canChangeVariant` boolean — Whether the variant is changeable or not
    - `allowedVariants` string[] — Allowed variants to change of the variant
  - `billingCycle` object — The billing plan of the subscription plan
    - `scheme` 'one-off' | 'recurring' | 'interactive_recurring', required — The scheme of the billing cycle
    - `interval` 'DAY' | 'WEEK' | 'MONTH' — The interval of the billing cycle
    - `every` number, float — The recurrence of the billing cycle
    - `minimumIntervals` number, float, nullable
    - `renewalOptions` object — Renewal options for interactive recurring billing
      - `periodStart` object, required — When the renewal window opens, relative to the current cycle end
        - `target` string, nullable — The target of the relative date
        - `unit` 'hours' | 'days' | 'weeks' | 'months' | 'years', required — The unit in which the offset is specified
        - `offset` integer, required — The offset to the date
  - `paymentSchedules` object[] — An array of payment plans of the subscription plan
    - `_id` string, required
    - `scheme` 'one-off' | 'installments' — The scheme of the payment
    - `interval` 'DAY' | 'WEEK' | 'MONTH' — The interval of the payment
    - `numberOfInstallments` number, float — The number of installments of the payment
  - `renewalPolicy` object — The renewal policy of the subscription plan
    - `changesPeriodStart` string, date-time — An ISO timestamp indicating when the changes period starts
    - `changesPeriodEnd` string, date-time — An ISO timestamp indicating when the changes period ends
    - `allowedChanges` object — Allowed Changes settings of the renewal policy
      - `ticketType` boolean — Whether changes of ticketTypes are allowed or not
      - `seat` boolean — Whether changes of seats are allowed or not
    - `confirmationPeriodStart` string, date-time — An ISO timestamp indicating when the confirmation period starts
    - `confirmationPeriodEnd` string, date-time — An ISO timestamp indicating when the confirmation period ends
  - `paymentPolicy` object — The payment policy of the subscription plan
    - `interaction` 'payNowOnly' | 'customerPaymentMethod' — The interaction type of the payment policy
    - `allowedPaymentGateways` string[] — Allowed payment gateways
    - `changePaymentMethodPolicy` 'always' | 'never' | 'onDraft' — Change payment method policy
    - `allowedChangePaymentMethodGateways` string[] — Allowed change payment method gateways
  - `requestedConsents` object[] — The subscription consent types requested during checkout
    - `type` 'autorenewal'
    - `description` string
    - `default` boolean
  - `sellerId` string, required — The ID of the seller of the subscription plan

## Other responses

- `400` — Bad Request
- `401` — Unauthorized

---

[API](https://skmtc.net/vivenu/apis/vivenu-api.md) · [All operations](https://skmtc.net/vivenu/apis/vivenu-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/vivenu/vivenu-api/revisions/36be0dca14e7/schema)
