---
title: "Create Membership Template"
method: POST
path: "/memberships/templates"
tags: ["Membership Template"]
---

# Create Membership Template

`POST /memberships/templates`

Create a new Membership Template.

## Headers

- `x-api-key` string, required

## Request body

- RequestMembershipTemplatePost — Data to create a Membership Template
  - `name` string, required — Membership Template Name
  - `description` string — Membership Template Description
  - `membership_type_id` integer, required — Membership Type Id. Indicates if the Membership Template is for a Class or Session Pack.
  - `revenue_category_id` integer — Revenue Category Id
  - `attendance_type_id` integer, required — Attendance Type Id. Determines if the Membership is Limited or Unlimited.
  - `attendance_limit` integer — Attendance Limit
  - `attendance_limit_frequency` integer — The frequency/number of days that the class attendance limit applies to. Only for Limited Class Plans that have an attendance limit type of daily.
  - `attendance_limit_type_id` integer — Attendance Limit Type Id. Expects a Unit of Time Id.
  - `number_of_sessions` integer — The number of sessions for the membership
  - `does_membership_expire` boolean — Determines if the membership expires. Only applicable to Class and Appointment Packs
  - `expiration_type_id` integer — Expiration Type Id
  - `expiration_length` integer — Expiration Length
  - `service_id` integer — The Service for the Membership. Only applicable to Appointment Pack Templates.
  - `service_duration_id` integer — Id of the Service Duration for the Membership. If no ServiceDuration is provided and there is only 1 available ServiceDuration, that duration will be used. Only applicable to Appointment Pack Templates.
  - `allow_rollover` boolean — When true, can use rollover sessions.
  - `max_total_sessions` integer — The maximum number of sessions that can be used in a booking period (attendance limitation + rollover). Only applies to limited plan memberships. When value is 0, no limit exists.
  - `locations` integer[] — Locations to add to the Membership Template.
  - `programs` integer[] — Programs to add to the Membership Template.
  - `membership_contract_template_id` integer — Id of the Contract that applies to the Membership Template
  - `online_sales_confirmation_message` string — HTML for the message that will be shown in OSP for this membership when confirming purchase
  - `payment_plan_templates` RequestPaymentPlanTemplatePost[] — Payment Plans to add to the Membership Template
    - `name` string, required — Name of the Payment Plan Template
    - `location_tax_rates` RequestPaymentPlanTemplateLocTaxRate[], required — Locations applicable to the Payment Plan Template and the Tax Rate to be used for each location.
      - `location_id` integer, required — Id of the Location associated to the Payment Plan Template
      - `tax_rate_id` integer — Id of the Tax Rate applicable to the location for the Payment Plan Template
      - `monthly_payment_option_available_on_OSP` string — Determines if the Monthly Initial (and Renewal if applicable) Payment Option is available on the Online Sales Portal for the given Location.
      - `pay_in_full_payment_option_available_on_OSP` string — Determines if the Pay in Full Initial (and Renewal if applicable) Payment Option is available on the Online Sales Portal for the given Location.
    - `is_auto_renew` boolean — Is Auto Renew
    - `initial_commitment_time_unit_id` integer — TIme Unit Id of the Initial Commitment. Only applicable to Class Plans.
    - `initial_commitment_length` integer — Length of the Initial Commitment. Only applicable to Class Plans.
    - `initial_payment_interval_length` integer — Length of the Initial Payment Interval. Only applicable for Class Plans whose initial commitment is weekly.
    - `monthly_initial_payment_option_template` PaymentPlanTemplateInitialPO — Initial Payment Option Data
      - `setup_fee` number — Set Up Fee for the Payment Option
      - `cost` number — Cost for the Payment Option
    - `pay_in_full_initial_payment_option_template` PaymentPlanTemplateInitialPO — Initial Payment Option Data
      - `setup_fee` number — Set Up Fee for the Payment Option
      - `cost` number — Cost for the Payment Option
    - `renewal_commitment_time_unit_id` integer — TIme Unit Id of the Renewal Commitment. Only applicable to Class Plans.
    - `renewal_commitment_length` integer — Length of the Renewal Commitment. Only applicable to Class Plans.
    - `renewal_payment_interval_length` integer — Length of the Renewal Payment Interval. Only applicable for Class Plans whose renewal commitment is weekly.
    - `monthly_renewal_payment_option_template` PaymentPlanTemplateRenewalPO — Renewal Payment Option Data
      - `cost` number — Cost for the Payment Option
    - `pay_in_full_renewal_payment_option_template` PaymentPlanTemplateRenewalPO — Renewal Payment Option Data
      - `cost` number — Cost for the Payment Option

## Response `200`

Data for the newly created Membership

- MembershipTemplateAPI — Data for a given Membership Template
  - `id` integer — Membership Template Id
  - `name` string — Membership Name
  - `description` string — Membership Description
  - `membership_type_id` integer — Membership Type Id
  - `membership_type` string — Membership Type
  - `attendance_type_id` integer — Attendance Type Id
  - `attendance_type` string — Attendance Type
  - `attendance_limit` integer — Attendance Limit
  - `attendance_limit_frequency` integer — The frequency/number of days that the class attendance limit applies to.
  - `attendance_limit_type_id` integer — Attendance Limit Type Id
  - `attendance_limit_type` string — Attendance Limit Type
  - `number_of_sessions` integer — The number of sessions for the membership
  - `does_membership_expire` boolean — Determines if the membership expires. Only applicable to Class Packs
  - `expiration_type_id` integer — Expiration Type Id
  - `expiration_type` string — Expiration Type
  - `expiration_length` integer — Expiration Length
  - `revenue_category_id` integer — Revenue Category Id
  - `revenue_category` string — Revenue Category
  - `membership_contract_template_id` integer — Membership Contract Template Id
  - `contract_name` string — Name of the Contract Template on the Membership Template
  - `service_id` integer — The Service Id of the Membership for Appointment Packs
  - `service` string — The Service of the Membership for Appointment Packs
  - `service_duration_id` integer — Id of the Duration for the Service on an Appointment Pack Membership
  - `service_duration_hours` integer — The hours of the Service duration for Appointment Pack Memberships
  - `service_duration_minutes` integer — The minutes of the Service duration for Appointment Pack Memberships
  - `allow_rollover` boolean — When true, can use rollover sessions.
  - `max_total_sessions` integer — The maximum number of sessions that can be used in a booking period (attendance limitation + rollover). Only applies to limited plan memberships. When value is 0, no limit exists.
  - `locations` MembershipLocationAPI[] — Accessible Locations for the Membership Template
    - `id` integer — Identifies the Location.
    - `location` string — Name of the Location.
  - `programs` MembershipProgamAPI[] — Accessible Programs for the Membership Template
    - `id` integer — Identifies the Program.
    - `program` string — Name of the Program.
  - `payment_plan_templates` PaymentPlanTemplateAPI[] — The Payment Plan Templates for the Membership Template
    - `id` integer — Payment Plan Template Id
    - `name` string — Payment Schedule Template Name
    - `is_auto_renew` boolean — Is Auto Renew
    - `initial_payment_interval_time_unit_id` integer — Time Unit Id of the Initial Payment Interval
    - `initial_payment_interval_time_unit` string — Time Unit of the Payment Interval
    - `initial_payment_interval_length` integer — Length of the Initial Payment Interval
    - `initial_commitment_time_unit_id` integer — TIme Unit Id of the Initial Commitment
    - `initial_commitment_time_unit` string — TIme Unit of the Initial Commitment
    - `initial_commitment_length` integer — Length of the Initial Commitment
    - `monthly_initial_payment_option_template` MonthlyInitialPaymentOptionTemplateAPI — Monthly Initial Payment Option Data
      - `monthly_initial_payment_option_template_id` integer — Payment Option Template Id
      - `monthly_initial_payment_option_template_description` string — Summary/Description of the Payment Option
      - `monthly_initial_payment_option_template_type_id` integer — Payment Option Template Type Id
      - `monthly_initial_payment_option_template_type` string — Payment Option Template Type
      - `monthly_initial_payment_option_template_setup_fee` number — Set Up Fee for the Payment Option Template
      - `monthly_initial_payment_option_template_cost` number — Cost for the Payment Option Template
      - `monthly_initial_payment_option_template_available_on_OSP` boolean — Determines if the Payment Option Tempate is availalbe on the Online Sales Portal
    - `pay_in_full_initial_payment_option_template` PayInFullInitialPaymentOptionTemplateAPI — Pay in Full Initial Payment Option Data
      - `pay_in_full_initial_payment_option_template_id` integer — Payment Option Template Id
      - `pay_in_full_initial_payment_option_template_description` string — Summary/Description of the Payment Option Template
      - `pay_in_full_initial_payment_option_template_type_id` integer — Payment Option Template Type Id
      - `pay_in_full_initial_payment_option_template_type` string — Payment Option Template Type
      - `pay_in_full_initial_payment_option_template_setup_fee` number — Setup Fee for the Pay In Full Initial Payment Option Template
      - `pay_in_full_initial_payment_option_template_cost` number — Cost for the Pay in Full Initial Payment Option Template
      - `pay_in_full_initial_payment_option_template_available_on_OSP` boolean — Determines if the Payment Option Template is availalbe on the Online Sales Portal
    - `renewal_payment_interval_time_unit_id` integer — TIme Unit Id of the Renewal Payment Interval
    - `renewal_payment_interval_time_unit` string — TIme Unit of the Renewal Payment Interval
    - `renewal_payment_interval_length` integer — Length of the Renewal Payment Interval
    - `renewal_commitment_time_unit_id` integer — TIme Unit Id of the Renewal Commitment
    - `renewal_commitment_time_unit` string — TIme Unit of the Renewal Commitment
    - `renewal_commitment_length` integer — Length of the Renewal Commitment
    - `monthly_renewal_payment_option_template` MonthlyRenewalPaymentOptionTemplateAPI — Data for the Monthly Payment Option for a Payment Schedule Template
      - `monthly_renewal_payment_option_template_id` integer — Payment Option Template Id
      - `monthly_renewal_payment_option_template_description` string — Summary/Description of the Payment Option Template
      - `monthly_renewal_payment_option_template_type_id` integer — Payment Option Template Type Id
      - `monthly_renewal_payment_option_template_type` string — Payment Option Template Type
      - `monthly_renewal_payment_option_template_cost` number — Cost for the Payment Option Template
      - `monthly_renewal_payment_option_template_available_on_OSP` boolean — Determines if the Payment Option Template is availalbe on the Online Sales Portal
    - `pay_in_full_renewal_payment_option_template` PayInFullRenewalPaymentOptionTemplateAPI — Pay In Full Renewal Payment Option Data
      - `pay_in_full_renewal_payment_option_template_id` integer — Payment Option Template Id
      - `pay_in_full_renewal_payment_option_template_description` string — Summary/Description of the Payment Option Template
      - `pay_in_full_renewal_payment_option_template_type_id` integer — Payment Option Template Type Id
      - `pay_in_full_renewal_payment_option_template_type` string — Payment Option Template Type
      - `pay_in_full_renewal_payment_option_template_cost` number — Cost for the Payment Option Template
      - `pay_in_full_renewal_payment_option_template_available_on_OSP` boolean — Determines if the Payment Option Template is availalbe on the Online Sales Portal
    - `payment_plan_template_location_tax_rates` PaymentPlanLocationsTaxRatesAPI[] — Locations and their Tax Data for a Payment Schedule Template
      - `location_id` integer — Location Id
      - `location` string — Location
      - `tax_rate_id` integer — Tax Rate Id
      - `tax_rate_name` string — Name of the Tax Rate
      - `tax_rate` number — Rate of Tax
      - `tax_rate_type_id` integer — Tax Rate Type Id
      - `tax_rate_type` string — Tax Rate Type
    - `created` Created — Record creation data.
      - `created_by_id` integer — Unique ID of the user that created the record.
      - `created_by` string — Name of the user that created the record.
      - `created_on_datetime` string, date-time — Datetime on which the record was created.
    - `updated` Updated — Update info
      - `updated_by_id` integer — Unique ID of the user that last updated the record.
      - `updated_by` string — Name of the user that most recently updated the record.
      - `updated_on_datetime` string, date-time — Datetime on which the record was last updated.
  - `created` Created — Record creation data.
    - `created_by_id` integer — Unique ID of the user that created the record.
    - `created_by` string — Name of the user that created the record.
    - `created_on_datetime` string, date-time — Datetime on which the record was created.
  - `updated` Updated — Update info
    - `updated_by_id` integer — Unique ID of the user that last updated the record.
    - `updated_by` string — Name of the user that most recently updated the record.
    - `updated_on_datetime` string, date-time — Datetime on which the record was last updated.

---

[API](https://skmtc.net/wodify/apis/leads.md) · [All operations](https://skmtc.net/wodify/apis/leads/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/wodify/leads/revisions/974500ca0714/schema)
