Skip to main content
PATCH
/
templates
/
plan
/
{plan_id}
/
products
/
{plan_product_id}
Update plan product
curl --request PATCH \
  --url https://api.zenskar.com/templates/plan/{plan_id}/products/{plan_product_id} \
  --header 'Content-Type: application/json' \
  --header 'organisation: <api-key>' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "pricing_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "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
    }
  },
  "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": true,
  "display_order": 1
}
'
{
  "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

Path Parameters

plan_id
string<uuid>
required
plan_product_id
string<uuid>
required

Body

application/json

Request schema for updating a plan product

Attributes: pricing_id: Reference to pricing model (allows changing pricing for product) quantity: Quantity configuration with plan-level constraints discounts: Product-level discounts taxes: Product-level taxes commitments: Commitment requirements for this product free_units: Free units for this product display_order: Display order

pricing_id
string<uuid> | null

Pricing model ID

quantity
Quantity · object

Quantity configuration with plan-level constraints

discounts
Discount · object[] | null

Product-level discounts

taxes
Taxes · object[] | null

Product-level taxes

commitments
Commitment · object[] | null

Commitment requirements for this product

free_units
FreeUnit · object[] | null

Free units for this product

is_optional
boolean | null

When True, customers can enable/disable this product in self-serve checkout

display_order
integer | null

Display order

Required range: x >= 0

Response

Plan product updated successfully

Response schema for plan products

Product is derived from the pricing model relationship and enriched by service.

Attributes: id: Plan-product association ID plan_id: Reference to plan pricing_id: Reference to pricing model pricing: Full pricing object (populated via joinedload) product: Product associated with this pricing (enriched by service) quantity: Quantity configuration with plan-level constraints discounts: Product-level discounts taxes: Product-level taxes commitments: Commitment requirements for this product free_units: Free units for this product display_order: Display order created_at: Creation timestamp updated_at: Last update timestamp

id
string<uuid>
required

Plan-product association ID

plan_id
string<uuid>
required

Plan ID

pricing_id
string<uuid>
required

Pricing model ID

display_order
integer
required

Display order

created_at
string<date-time>
required

Creation timestamp

updated_at
string<date-time>
required

Last update timestamp

pricing
ProductPricingResponseSchema · object

Full pricing details

product
ProductResponseSchema · object

Product associated with this pricing (enriched by service)

quantity
Quantity · object

Quantity configuration with plan-level constraints

discounts
Discount · object[] | null

Product-level discounts

taxes
Taxes · object[] | null

Product-level taxes

commitments
Commitment · object[] | null

Commitment requirements for this product

free_units
FreeUnit · object[] | null

Free units for this product

is_optional
boolean
default:false

When True, customers can enable/disable this product in self-serve checkout