Skip to main content
POST
/
templates
/
plan
curl --request POST \
  --url https://api.zenskar.com/templates/plan \
  --header 'Content-Type: application/json' \
  --header 'organisation: <api-key>' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "name": "basic-plan",
  "display": {
    "title": "Basic Plan",
    "description": "Starter tier for small teams"
  },
  "duration": "P1M",
  "status": "draft"
}
'
{
  "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "name": "<string>",
  "version": 123,
  "is_latest_version": true,
  "status": "<string>",
  "currency": "<string>",
  "organization_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "display_config": {
    "name": "<string>",
    "description": "<string>",
    "features": [
      "<string>"
    ],
    "custom_fields": {}
  },
  "parent_plan_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "duration": "<string>",
  "renewal_config": {},
  "custom_attributes": {},
  "trial_config": {},
  "discounts": [
    {
      "type": "fixed",
      "unit_amount": 123,
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "identifier": "<string>",
      "priority": 123,
      "pricing_period": {
        "cadence": "<string>"
      },
      "label": "<string>"
    }
  ],
  "taxes": [
    {
      "type": "manual",
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "identifier": "<string>",
      "priority": 123,
      "label": "<string>",
      "code": "<string>",
      "unit_amount": 123
    }
  ],
  "commitments": [
    {
      "type": "minimum_spend",
      "unit_amount": 123,
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "identifier": "<string>",
      "priority": 123,
      "currency": "<string>",
      "label": "<string>",
      "period": {
        "cadence": "<string>"
      },
      "charge_full_amount": false,
      "skip_zero_amount": false
    }
  ],
  "payment_config": {},
  "billing_config": {
    "anchor_date": "2023-12-25",
    "is_last_day_of_month": false
  },
  "provisioning_mode": "immediate",
  "business_entity_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "products": [
    {
      "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "plan_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "pricing_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
      "display_order": 123,
      "created_at": "2023-11-07T05:31:56Z",
      "updated_at": "2023-11-07T05:31:56Z",
      "pricing": {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "pricing_data": {
          "unit_amount": 123,
          "dimensions": [
            {
              "name": "<string>",
              "column_name": "<string>"
            }
          ],
          "prices": [
            1
          ],
          "display_alias": [
            "<string>"
          ],
          "pricing_type": "<string>",
          "currency": "<string>",
          "label": "<string>",
          "unit": "<string>",
          "pricing_period": {
            "cadence": "<string>"
          }
        },
        "name": "<string>",
        "description": "<string>",
        "quantity": {
          "type": "metered",
          "label": "<string>",
          "quantity": 123,
          "unit": "<string>",
          "aggregate_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "quantity_entries": [
            {
              "value": 123,
              "effective_from": "2023-12-25",
              "created_at": "2023-11-07T05:31:56Z",
              "description": "<string>"
            }
          ],
          "trigger_event": "invoice_approval",
          "expires_at": "end_of_product_billing_period",
          "expiry_period": "<string>",
          "grant_frequency_same_as_product": true,
          "grant_frequency": "<string>",
          "feature_option_value": "<string>",
          "numeric_value": 123,
          "allow_mid_cycle_cancellation": false,
          "constraints": {
            "min": 1,
            "max": 1
          },
          "aggregate": {
            "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "name": "<string>",
            "dataschema": "<string>",
            "aggregation_query": "<string>",
            "cust_agg_query": "<string>",
            "visual_query_builder": {},
            "datasource": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "created_at": "2023-11-07T05:31:56Z"
          }
        },
        "grants": [],
        "consumptions": [],
        "link_id": "<string>",
        "free_units": [],
        "discounts": [],
        "commitments": [],
        "taxes": [],
        "payment_terms": [],
        "service_fees": [],
        "execution_logic": {
          "additional_steps": [
            {
              "node_type": "<string>",
              "inputs": {},
              "step_name": "<string>",
              "id": "<string>"
            }
          ]
        },
        "is_recurring": true,
        "billing_period": {
          "offset": "prepaid",
          "cadence": "<string>"
        },
        "add_to_catalog": true,
        "overage_pricing": {
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "pricing_data": {
            "unit_amount": 123,
            "dimensions": [
              {
                "name": "<string>",
                "column_name": "<string>"
              }
            ],
            "prices": [
              1
            ],
            "display_alias": [
              "<string>"
            ],
            "pricing_type": "<string>",
            "currency": "<string>",
            "label": "<string>",
            "unit": "<string>",
            "pricing_period": {
              "cadence": "<string>"
            }
          },
          "name": "<string>",
          "description": "<string>",
          "quantity": {
            "type": "metered",
            "label": "<string>",
            "quantity": 123,
            "unit": "<string>",
            "aggregate_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "quantity_entries": [
              {
                "value": 123,
                "effective_from": "2023-12-25",
                "created_at": "2023-11-07T05:31:56Z",
                "description": "<string>"
              }
            ],
            "trigger_event": "invoice_approval",
            "expires_at": "end_of_product_billing_period",
            "expiry_period": "<string>",
            "grant_frequency_same_as_product": true,
            "grant_frequency": "<string>",
            "feature_option_value": "<string>",
            "numeric_value": 123,
            "allow_mid_cycle_cancellation": false,
            "constraints": {
              "min": 1,
              "max": 1
            },
            "aggregate": {
              "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
              "name": "<string>",
              "dataschema": "<string>",
              "aggregation_query": "<string>",
              "cust_agg_query": "<string>",
              "visual_query_builder": {},
              "datasource": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
              "created_at": "2023-11-07T05:31:56Z"
            }
          },
          "grants": [],
          "consumptions": [],
          "link_id": "<string>",
          "free_units": [],
          "discounts": [],
          "commitments": [],
          "taxes": [],
          "payment_terms": [],
          "service_fees": [],
          "execution_logic": {
            "additional_steps": [
              {
                "node_type": "<string>",
                "inputs": {},
                "step_name": "<string>",
                "id": "<string>"
              }
            ]
          },
          "is_recurring": true,
          "billing_period": {
            "offset": "prepaid",
            "cadence": "<string>"
          },
          "add_to_catalog": true,
          "usage_report_configs": []
        },
        "usage_report_configs": []
      },
      "product": {
        "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "name": "<string>",
        "type": "product",
        "description": "<string>",
        "tags": [
          "<unknown>"
        ],
        "sku": "<string>",
        "parent_link_id": "<string>",
        "tax_codes": {},
        "is_active": true,
        "created_at": "2023-11-07T05:31:56Z",
        "updated_at": "2023-11-07T05:31:56Z",
        "default_pricing_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
        "custom_attributes": {},
        "product_category": "group",
        "product_type": "time_dependent",
        "product_sub_type": "quantity",
        "track_usage": true,
        "enum_values": [
          "<string>"
        ],
        "unit": "<string>",
        "entitlements": [
          {
            "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "name": "<string>",
            "description": "<string>",
            "entitlement_type": "Feature",
            "units": "<string>",
            "is_active": true,
            "product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
            "created_at": "2023-11-07T05:31:56Z"
          }
        ]
      },
      "quantity": {},
      "discounts": [
        {
          "type": "fixed",
          "unit_amount": 123,
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "identifier": "<string>",
          "priority": 123,
          "pricing_period": {
            "cadence": "<string>"
          },
          "label": "<string>"
        }
      ],
      "taxes": [
        {
          "type": "manual",
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "identifier": "<string>",
          "priority": 123,
          "label": "<string>",
          "code": "<string>",
          "unit_amount": 123
        }
      ],
      "commitments": [
        {
          "type": "minimum_spend",
          "unit_amount": 123,
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "identifier": "<string>",
          "priority": 123,
          "currency": "<string>",
          "label": "<string>",
          "period": {
            "cadence": "<string>"
          },
          "charge_full_amount": false,
          "skip_zero_amount": false
        }
      ],
      "free_units": [
        {
          "unit_amount": 123,
          "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
          "identifier": "<string>",
          "priority": 123,
          "label": "<string>",
          "unit": "<string>",
          "period": {
            "cadence": "<string>"
          }
        }
      ],
      "is_optional": false
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://docs2.zenskar.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

x-api-key
string
header
default:<your-api-key>
required
organisation
string
header
default:<your-organisation-id>
required

Body

application/json

Request schema for creating a plan

Attributes: id: Optional custom ID (auto-generated if not provided) name: Internal plan identifier display_config: Customer-facing display content duration: Billing period in ISO 8601 format (P1M, P1Y, etc.) renewal_config: Auto-renewal configuration custom_attributes: Custom metadata trial_config: Trial period configuration discounts: Plan-wide discounts (matches product pricing schema) taxes: Tax configuration (matches product pricing schema) commitments: Commitment requirements (matches product pricing schema) payment_config: Payment method requirements billing_config: Billing cycle anchor configuration provisioning_config: Provisioning configuration for contract creation status: Plan status (default: DRAFT) business_entity_id: Business entity for invoicing products: List of products to add to plan

name
string
required

Plan name

Required string length: 1 - 255
currency
string
required

Three-letter ISO 4217 currency code (e.g., 'USD', 'EUR', 'GBP')

id
string<uuid> | null

Custom plan ID (optional)

display_config
DisplaySchema · object

Display configuration

duration
string | null

ISO 8601 duration (P1M, P1Y)

renewal_config
Renewal Config · object

Renewal configuration (open JSON for now)

custom_attributes
Custom Attributes · object

Custom metadata

trial_config
TrialConfigSchema · object

Trial configuration

discounts
Discount · object[] | null

Plan-wide discounts

taxes
Taxes · object[] | null

Tax configuration

commitments
Commitment · object[] | null

Commitment requirements

payment_config
ContractPaymentConfig · object

Payment configuration

billing_config
BillingConfigSchema · object

Billing configuration

provisioning_mode
enum<string>

Provisioning mode determining when/how contract is created (immediate, payment_method_validation, charge_on_acceptance, charge_when_due)

Available options:
immediate,
payment_method_validation,
charge_on_acceptance,
charge_when_due
status
enum<string> | null

Plan status

Available options:
draft,
active,
archived
business_entity_id
string<uuid> | null

Business entity ID

products
CreatePlanProductV3RequestSchema · object[] | null

Products to add to plan

Response

Plan created successfully

Response schema for plan

Attributes: id: Plan ID name: Plan name display_config: Display configuration version: Version number parent_plan_id: Parent plan ID (for versioned plans) is_latest_version: Is this the latest version duration: Billing period renewal_config: Renewal configuration custom_attributes: Custom metadata trial_config: Trial configuration discounts: Plan-wide discounts taxes: Tax configuration commitments: Commitment requirements payment_config: Payment configuration billing_config: Billing configuration provisioning_mode: Provisioning mode status: Plan status business_entity_id: Business entity ID organization_id: Organization ID products: List of plan products created_at: Creation timestamp updated_at: Last update timestamp

id
string<uuid>
required

Plan ID

name
string
required

Plan name

version
integer
required

Version number

is_latest_version
boolean
required

Is latest version

status
string
required

Plan status

currency
string
required

Three-letter ISO 4217 currency code (e.g., 'USD', 'EUR', 'GBP')

organization_id
string<uuid>
required

Organization ID

created_at
string<date-time>
required

Creation timestamp

updated_at
string<date-time>
required

Last update timestamp

display_config
DisplaySchema · object

Display configuration

parent_plan_id
string<uuid> | null

Parent plan ID (for versions)

duration
string | null

Billing period (ISO 8601)

renewal_config
Renewal Config · object

Renewal configuration

custom_attributes
Custom Attributes · object

Custom metadata

trial_config
Trial Config · object

Trial configuration

discounts
Discount · object[] | null

Plan-wide discounts

taxes
Taxes · object[] | null

Tax configuration

commitments
Commitment · object[] | null

Commitment requirements

payment_config
Payment Config · object

Payment configuration

billing_config
BillingConfigSchema · object

Billing configuration

provisioning_mode
enum<string> | null

Provisioning mode (immediate, payment_method_validation, charge_on_acceptance, charge_when_due)

Available options:
immediate,
payment_method_validation,
charge_on_acceptance,
charge_when_due
business_entity_id
string<uuid> | null

Business entity ID

products
PlanProductV3ResponseSchema · object[] | null

List of plan products