When creating a new plan item, provide CurrencyId, PlanTypeId, config, and either SkuId or Sku. The route persists meter references from config.meter and config.quantityMeter.
Endpoint-specific payload (object, array, or null)
⌘I
{"docsConfig":{"theme":"willow","$schema":"https://mintlify.com/docs.json","name":"Enso Docs","colors":{"primary":"#0074BA","light":"#0074BA","dark":"#0074BA"},"logo":{"light":"https://mintcdn.com/enso-73586f89/gP3zEwNaDWBW6Qg6/logo/logo-light.png?fit=max\u0026auto=format\u0026n=gP3zEwNaDWBW6Qg6\u0026q=85\u0026s=620c67b412b16de03ee6476a33ac499a","dark":"https://mintcdn.com/enso-73586f89/gP3zEwNaDWBW6Qg6/logo/logo-dark.avif?fit=max\u0026auto=format\u0026n=gP3zEwNaDWBW6Qg6\u0026q=85\u0026s=f10cb98cefe49460719e86d61981bee9"},"favicon":{"light":"https://mintcdn.com/enso-73586f89/gP3zEwNaDWBW6Qg6/favicon-light.png?fit=max\u0026auto=format\u0026n=gP3zEwNaDWBW6Qg6\u0026q=85\u0026s=d336e929ec398ab1d80e9bbff6dcb12a","dark":"https://mintcdn.com/enso-73586f89/gP3zEwNaDWBW6Qg6/favicon-dark.png?fit=max\u0026auto=format\u0026n=gP3zEwNaDWBW6Qg6\u0026q=85\u0026s=2efb5a3c137f8f35334eed16c0203d20"},"navbar":{"links":[{"href":"mailto:support@getenso.ai","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.getenso.ai"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/getenso"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Website","icon":"link","href":"https://getenso.ai"},{"anchor":"Postman collection","icon":"code","href":"/api-reference/openapi.json"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"enso-73586f89","hasAudioNarration":false,"actualSubdomain":"enso-73586f89","customDomains":["docs.getenso.ai"],"gitSource":{"type":"github","owner":"getensoai","repo":"enso-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6aa139641ecc9c143d18e0f6","clientVersion":"0.0.4111","searchFilterCounts":[{"language":"default","tag":"API Reference","count":206},{"language":"default","tag":"Invoices","count":21},{"language":"default","tag":"Guides","count":19},{"language":"default","tag":"Contracts","count":18},{"language":"default","tag":"Entities","count":16},{"language":"default","tag":"Events","count":10},{"language":"default","tag":"Metering","count":10},{"language":"default","tag":"Billing","count":9},{"language":"default","tag":"Catalog","count":9},{"language":"default","tag":"Apps","count":8}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[],"page":{"pagePath":"api-reference/endpoint/post-contracts-contractid-plans","slug":"/api-reference/endpoint/post-contracts-contractid-plans","pageMetadata":{"title":"Add plan to contract","openapi":"post /contracts/{contractId}/plans","description":"Attach a new (or existing) billing plan to a contract.","href":"/api-reference/endpoint/post-contracts-contractid-plans"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Attach a new (or existing) billing plan to a contract.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={strong:`strong`,..._provideComponents(),...props.components},{Warning}=_components;if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(Warning,{children:[_jsx(_components.strong,{children:`Not accessible by SystemUser role.`}),` Requires Admin.`]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Add plan to contract","openapi":"post /contracts/{contractId}/plans","description":"Attach a new (or existing) billing plan to a contract.","href":"/api-reference/endpoint/post-contracts-contractid-plans"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Add plan to contract","operationId":"createContractPlan","description":"Attach a new (or existing) billing plan to a contract.","tags":["Contracts"],"responses":{"200":"4e7d1dc5-fff6-4b7f-b0ec-eb893861910e","401":"e2014705-0371-44ee-a8db-a20d2f44b5c0","403":"093768b4-58ae-486f-b45d-c9a8d591abf1","default":"7bd7964a-7cf3-4ae7-8882-04d5864ae3bd"},"x-system-user-actions":["ContractService:createContractPlan"],"requestBody":"349686d3-fffe-4b94-8663-7300a11ce467","parameters":["c521eb1b-3a7d-4614-8cf8-7931b3e50eae"],"method":"post","type":"path","servers":["16bf72fe-7f4a-4ab3-836a-05a1db619d92"],"security":["b816ba34-aa72-4592-8696-c4cce03706a4"],"path":"/contracts/{contractId}/plans","baseUrlOptions":["https://api.getenso.ai"],"title":"Add plan to contract","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"c521eb1b-3a7d-4614-8cf8-7931b3e50eae":{"name":"contractId","in":"path","required":true,"description":"Contract ID","schema":{"type":"string","isRequired":true,"description":"Contract ID","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Use PlanId or planId to reuse an existing billing plan. If neither is sent, the route creates a new plan and expects name, and typically items.","required":["startDate","PlanId"],"properties":{"PlanId":{"type":"string","example":"100","isRequired":true,"uniqueKey":"oneOf.0.PlanId","typeLabel":"string"},"startDate":{"type":"string","format":"date","example":"2026-04-01","isRequired":true,"uniqueKey":"oneOf.0.startDate","typeLabel":"string\u003cdate>"},"planId":{"type":"string","example":"100","uniqueKey":"oneOf.0.planId","typeLabel":"string"},"name":{"type":"string","example":"Annual Enterprise Subscription 2026","uniqueKey":"oneOf.0.name","typeLabel":"string"},"endDate":{"type":"string","format":"date","example":"2027-03-31","uniqueKey":"oneOf.0.endDate","typeLabel":"string\u003cdate>"},"type":{"type":"string","enum":["standard","extension","renewal"],"example":"standard","uniqueKey":"oneOf.0.type","typeLabel":"enum\u003cstring>"},"orderIndex":{"type":"integer","example":0,"uniqueKey":"oneOf.0.orderIndex","typeLabel":"integer"},"renewalTerms":{"type":"object","properties":{"autoRenewYN":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.0.renewalTerms.autoRenewYN","typeLabel":"boolean"},"renewalNoticePeriodDays":{"type":"integer","minimum":0,"example":30,"uniqueKey":"oneOf.0.renewalTerms.renewalNoticePeriodDays","typeLabel":"integer"}},"required":["autoRenewYN"],"uniqueKey":"oneOf.0.renewalTerms","typeLabel":"object"},"ParentContractPlanId":{"type":"string","example":"42","uniqueKey":"oneOf.0.ParentContractPlanId","typeLabel":"string"},"parentContractPlanId":{"type":"string","example":"42","uniqueKey":"oneOf.0.parentContractPlanId","typeLabel":"string"},"items":{"type":"array","items":{"oneOf":[{"type":"object","description":"When creating a new plan item, provide CurrencyId, PlanTypeId, config, and either SkuId or Sku. The route persists meter references from config.meter and config.quantityMeter.","required":["CurrencyId","PlanTypeId","config","SkuId"],"properties":{"SkuId":{"type":"string","example":"sku_123","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.SkuId","typeLabel":"string"},"CurrencyId":{"type":"string","example":"2","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.CurrencyId","typeLabel":"string"},"PlanTypeId":{"type":"string","enum":["1","2","3","4"],"description":"1=one_time_fee, 2=recurring_fixed_fee, 3=license_fee, 4=usage_fee.","example":"3","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.PlanTypeId","typeLabel":"enum\u003cstring>"},"config":{"oneOf":[{"type":"object","required":["dayOfPeriod","amount"],"properties":{"dayOfPeriod":{"type":"integer","minimum":1,"maximum":31,"example":1,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.0.dayOfPeriod","typeLabel":"integer"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.0.amount","typeLabel":"number"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"immediate","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.0.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.0","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","proration","amount"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.anniversaryCycle","typeLabel":"boolean"},"proration":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.proration","typeLabel":"boolean"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.amount","typeLabel":"number"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.monthOfCycle","typeLabel":"integer"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.1","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.monthOfCycle","typeLabel":"integer"},"proration":{"type":"boolean","example":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.proration","typeLabel":"boolean"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.2","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.monthOfCycle","typeLabel":"integer"},"quantityMeter":{"type":"string","example":"20","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.quantityMeter","typeLabel":"string"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.config","typeLabel":"object"},"id":{"type":"string","example":"456","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.id","typeLabel":"string"},"orderIndex":{"type":"integer","example":0,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.orderIndex","typeLabel":"integer"},"Sku":{"type":"object","properties":{"name":{"type":"string","example":"Enterprise License","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.Sku.name","typeLabel":"string"},"id":{"type":"string","example":"sku_123","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.Sku.id","typeLabel":"string"},"description":{"type":"string","example":"Annual enterprise subscription","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.Sku.description","typeLabel":"string"},"code":{"type":"string","example":"ENT-LIC","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.Sku.code","typeLabel":"string"},"Unit":{"type":"object","properties":{"id":{"type":"string","example":"1","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.Sku.Unit.id","typeLabel":"string"},"name":{"type":"string","example":"User","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.Sku.Unit.name","typeLabel":"string"},"code":{"type":"string","example":"USER","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.Sku.Unit.code","typeLabel":"string"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.Sku.Unit","typeLabel":"object"}},"required":["name"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.Sku","typeLabel":"object"},"description":{"type":"string","example":"Per-user annual license","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.description","typeLabel":"string"},"milestones":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","ContractMilestoneId"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneId":{"type":"string","example":"123","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneId","typeLabel":"string"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData","typeLabel":"object"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.config","typeLabel":"object"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","ContractMilestoneData"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData","typeLabel":"object"},"ContractMilestoneId":{"type":"string","example":"123","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneId","typeLabel":"string"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.config","typeLabel":"object"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0.milestones","typeLabel":"object[]"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"When creating a new plan item, provide CurrencyId, PlanTypeId, config, and either SkuId or Sku. The route persists meter references from config.meter and config.quantityMeter.","required":["CurrencyId","PlanTypeId","config","Sku"],"properties":{"Sku":{"type":"object","properties":{"name":{"type":"string","example":"Enterprise License","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.Sku.name","typeLabel":"string"},"id":{"type":"string","example":"sku_123","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.Sku.id","typeLabel":"string"},"description":{"type":"string","example":"Annual enterprise subscription","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.Sku.description","typeLabel":"string"},"code":{"type":"string","example":"ENT-LIC","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.Sku.code","typeLabel":"string"},"Unit":{"type":"object","properties":{"id":{"type":"string","example":"1","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.Sku.Unit.id","typeLabel":"string"},"name":{"type":"string","example":"User","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.Sku.Unit.name","typeLabel":"string"},"code":{"type":"string","example":"USER","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.Sku.Unit.code","typeLabel":"string"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.Sku.Unit","typeLabel":"object"}},"required":["name"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.Sku","typeLabel":"object"},"CurrencyId":{"type":"string","example":"2","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.CurrencyId","typeLabel":"string"},"PlanTypeId":{"type":"string","enum":["1","2","3","4"],"description":"1=one_time_fee, 2=recurring_fixed_fee, 3=license_fee, 4=usage_fee.","example":"3","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.PlanTypeId","typeLabel":"enum\u003cstring>"},"config":{"oneOf":[{"type":"object","required":["dayOfPeriod","amount"],"properties":{"dayOfPeriod":{"type":"integer","minimum":1,"maximum":31,"example":1,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.0.dayOfPeriod","typeLabel":"integer"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.0.amount","typeLabel":"number"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"immediate","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.0.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.0","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","proration","amount"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.anniversaryCycle","typeLabel":"boolean"},"proration":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.proration","typeLabel":"boolean"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.amount","typeLabel":"number"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.monthOfCycle","typeLabel":"integer"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.1","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.monthOfCycle","typeLabel":"integer"},"proration":{"type":"boolean","example":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.proration","typeLabel":"boolean"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.2","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.monthOfCycle","typeLabel":"integer"},"quantityMeter":{"type":"string","example":"20","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.quantityMeter","typeLabel":"string"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.config","typeLabel":"object"},"id":{"type":"string","example":"456","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.id","typeLabel":"string"},"orderIndex":{"type":"integer","example":0,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.orderIndex","typeLabel":"integer"},"SkuId":{"type":"string","example":"sku_123","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.SkuId","typeLabel":"string"},"description":{"type":"string","example":"Per-user annual license","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.description","typeLabel":"string"},"milestones":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","ContractMilestoneId"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneId":{"type":"string","example":"123","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneId","typeLabel":"string"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData","typeLabel":"object"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.config","typeLabel":"object"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","ContractMilestoneData"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"isRequired":true,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData","typeLabel":"object"},"ContractMilestoneId":{"type":"string","example":"123","uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneId","typeLabel":"string"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.config","typeLabel":"object"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1.milestones","typeLabel":"object[]"}},"uniqueKey":"oneOf.0.\\items.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.0.\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.\\items","typeLabel":"object[]"}},"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Use PlanId or planId to reuse an existing billing plan. If neither is sent, the route creates a new plan and expects name, and typically items.","required":["startDate","planId"],"properties":{"planId":{"type":"string","example":"100","isRequired":true,"uniqueKey":"oneOf.1.planId","typeLabel":"string"},"startDate":{"type":"string","format":"date","example":"2026-04-01","isRequired":true,"uniqueKey":"oneOf.1.startDate","typeLabel":"string\u003cdate>"},"PlanId":{"type":"string","example":"100","uniqueKey":"oneOf.1.PlanId","typeLabel":"string"},"name":{"type":"string","example":"Annual Enterprise Subscription 2026","uniqueKey":"oneOf.1.name","typeLabel":"string"},"endDate":{"type":"string","format":"date","example":"2027-03-31","uniqueKey":"oneOf.1.endDate","typeLabel":"string\u003cdate>"},"type":{"type":"string","enum":["standard","extension","renewal"],"example":"standard","uniqueKey":"oneOf.1.type","typeLabel":"enum\u003cstring>"},"orderIndex":{"type":"integer","example":0,"uniqueKey":"oneOf.1.orderIndex","typeLabel":"integer"},"renewalTerms":{"type":"object","properties":{"autoRenewYN":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.1.renewalTerms.autoRenewYN","typeLabel":"boolean"},"renewalNoticePeriodDays":{"type":"integer","minimum":0,"example":30,"uniqueKey":"oneOf.1.renewalTerms.renewalNoticePeriodDays","typeLabel":"integer"}},"required":["autoRenewYN"],"uniqueKey":"oneOf.1.renewalTerms","typeLabel":"object"},"ParentContractPlanId":{"type":"string","example":"42","uniqueKey":"oneOf.1.ParentContractPlanId","typeLabel":"string"},"parentContractPlanId":{"type":"string","example":"42","uniqueKey":"oneOf.1.parentContractPlanId","typeLabel":"string"},"items":{"type":"array","items":{"oneOf":[{"type":"object","description":"When creating a new plan item, provide CurrencyId, PlanTypeId, config, and either SkuId or Sku. The route persists meter references from config.meter and config.quantityMeter.","required":["CurrencyId","PlanTypeId","config","SkuId"],"properties":{"SkuId":{"type":"string","example":"sku_123","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.SkuId","typeLabel":"string"},"CurrencyId":{"type":"string","example":"2","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.CurrencyId","typeLabel":"string"},"PlanTypeId":{"type":"string","enum":["1","2","3","4"],"description":"1=one_time_fee, 2=recurring_fixed_fee, 3=license_fee, 4=usage_fee.","example":"3","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.PlanTypeId","typeLabel":"enum\u003cstring>"},"config":{"oneOf":[{"type":"object","required":["dayOfPeriod","amount"],"properties":{"dayOfPeriod":{"type":"integer","minimum":1,"maximum":31,"example":1,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.0.dayOfPeriod","typeLabel":"integer"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.0.amount","typeLabel":"number"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"immediate","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.0.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.0","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","proration","amount"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.anniversaryCycle","typeLabel":"boolean"},"proration":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.proration","typeLabel":"boolean"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.amount","typeLabel":"number"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.monthOfCycle","typeLabel":"integer"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.1","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.monthOfCycle","typeLabel":"integer"},"proration":{"type":"boolean","example":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.proration","typeLabel":"boolean"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.2","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.monthOfCycle","typeLabel":"integer"},"quantityMeter":{"type":"string","example":"20","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.quantityMeter","typeLabel":"string"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.config","typeLabel":"object"},"id":{"type":"string","example":"456","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.id","typeLabel":"string"},"orderIndex":{"type":"integer","example":0,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.orderIndex","typeLabel":"integer"},"Sku":{"type":"object","properties":{"name":{"type":"string","example":"Enterprise License","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.Sku.name","typeLabel":"string"},"id":{"type":"string","example":"sku_123","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.Sku.id","typeLabel":"string"},"description":{"type":"string","example":"Annual enterprise subscription","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.Sku.description","typeLabel":"string"},"code":{"type":"string","example":"ENT-LIC","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.Sku.code","typeLabel":"string"},"Unit":{"type":"object","properties":{"id":{"type":"string","example":"1","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.Sku.Unit.id","typeLabel":"string"},"name":{"type":"string","example":"User","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.Sku.Unit.name","typeLabel":"string"},"code":{"type":"string","example":"USER","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.Sku.Unit.code","typeLabel":"string"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.Sku.Unit","typeLabel":"object"}},"required":["name"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.Sku","typeLabel":"object"},"description":{"type":"string","example":"Per-user annual license","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.description","typeLabel":"string"},"milestones":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","ContractMilestoneId"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneId":{"type":"string","example":"123","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneId","typeLabel":"string"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData","typeLabel":"object"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.config","typeLabel":"object"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","ContractMilestoneData"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData","typeLabel":"object"},"ContractMilestoneId":{"type":"string","example":"123","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneId","typeLabel":"string"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.config","typeLabel":"object"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0.milestones","typeLabel":"object[]"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"When creating a new plan item, provide CurrencyId, PlanTypeId, config, and either SkuId or Sku. The route persists meter references from config.meter and config.quantityMeter.","required":["CurrencyId","PlanTypeId","config","Sku"],"properties":{"Sku":{"type":"object","properties":{"name":{"type":"string","example":"Enterprise License","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.Sku.name","typeLabel":"string"},"id":{"type":"string","example":"sku_123","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.Sku.id","typeLabel":"string"},"description":{"type":"string","example":"Annual enterprise subscription","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.Sku.description","typeLabel":"string"},"code":{"type":"string","example":"ENT-LIC","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.Sku.code","typeLabel":"string"},"Unit":{"type":"object","properties":{"id":{"type":"string","example":"1","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.Sku.Unit.id","typeLabel":"string"},"name":{"type":"string","example":"User","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.Sku.Unit.name","typeLabel":"string"},"code":{"type":"string","example":"USER","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.Sku.Unit.code","typeLabel":"string"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.Sku.Unit","typeLabel":"object"}},"required":["name"],"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.Sku","typeLabel":"object"},"CurrencyId":{"type":"string","example":"2","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.CurrencyId","typeLabel":"string"},"PlanTypeId":{"type":"string","enum":["1","2","3","4"],"description":"1=one_time_fee, 2=recurring_fixed_fee, 3=license_fee, 4=usage_fee.","example":"3","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.PlanTypeId","typeLabel":"enum\u003cstring>"},"config":{"oneOf":[{"type":"object","required":["dayOfPeriod","amount"],"properties":{"dayOfPeriod":{"type":"integer","minimum":1,"maximum":31,"example":1,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.0.dayOfPeriod","typeLabel":"integer"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.0.amount","typeLabel":"number"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"immediate","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.0.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.0","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","proration","amount"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.anniversaryCycle","typeLabel":"boolean"},"proration":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.proration","typeLabel":"boolean"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.amount","typeLabel":"number"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.monthOfCycle","typeLabel":"integer"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.1","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.monthOfCycle","typeLabel":"integer"},"proration":{"type":"boolean","example":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.proration","typeLabel":"boolean"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.2","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.monthOfCycle","typeLabel":"integer"},"quantityMeter":{"type":"string","example":"20","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.quantityMeter","typeLabel":"string"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.config","typeLabel":"object"},"id":{"type":"string","example":"456","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.id","typeLabel":"string"},"orderIndex":{"type":"integer","example":0,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.orderIndex","typeLabel":"integer"},"SkuId":{"type":"string","example":"sku_123","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.SkuId","typeLabel":"string"},"description":{"type":"string","example":"Per-user annual license","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.description","typeLabel":"string"},"milestones":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","ContractMilestoneId"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneId":{"type":"string","example":"123","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneId","typeLabel":"string"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData","typeLabel":"object"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.config","typeLabel":"object"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","ContractMilestoneData"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"isRequired":true,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData","typeLabel":"object"},"ContractMilestoneId":{"type":"string","example":"123","uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneId","typeLabel":"string"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.config","typeLabel":"object"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1.milestones","typeLabel":"object[]"}},"uniqueKey":"oneOf.1.\\items.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.1.\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.1.\\items","typeLabel":"object[]"}},"uniqueKey":"oneOf.1","typeLabel":"object"},{"type":"object","description":"Use PlanId or planId to reuse an existing billing plan. If neither is sent, the route creates a new plan and expects name, and typically items.","required":["startDate","name"],"properties":{"name":{"type":"string","example":"Annual Enterprise Subscription 2026","isRequired":true,"uniqueKey":"oneOf.2.name","typeLabel":"string"},"startDate":{"type":"string","format":"date","example":"2026-04-01","isRequired":true,"uniqueKey":"oneOf.2.startDate","typeLabel":"string\u003cdate>"},"PlanId":{"type":"string","example":"100","uniqueKey":"oneOf.2.PlanId","typeLabel":"string"},"planId":{"type":"string","example":"100","uniqueKey":"oneOf.2.planId","typeLabel":"string"},"endDate":{"type":"string","format":"date","example":"2027-03-31","uniqueKey":"oneOf.2.endDate","typeLabel":"string\u003cdate>"},"type":{"type":"string","enum":["standard","extension","renewal"],"example":"standard","uniqueKey":"oneOf.2.type","typeLabel":"enum\u003cstring>"},"orderIndex":{"type":"integer","example":0,"uniqueKey":"oneOf.2.orderIndex","typeLabel":"integer"},"renewalTerms":{"type":"object","properties":{"autoRenewYN":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.2.renewalTerms.autoRenewYN","typeLabel":"boolean"},"renewalNoticePeriodDays":{"type":"integer","minimum":0,"example":30,"uniqueKey":"oneOf.2.renewalTerms.renewalNoticePeriodDays","typeLabel":"integer"}},"required":["autoRenewYN"],"uniqueKey":"oneOf.2.renewalTerms","typeLabel":"object"},"ParentContractPlanId":{"type":"string","example":"42","uniqueKey":"oneOf.2.ParentContractPlanId","typeLabel":"string"},"parentContractPlanId":{"type":"string","example":"42","uniqueKey":"oneOf.2.parentContractPlanId","typeLabel":"string"},"items":{"type":"array","items":{"oneOf":[{"type":"object","description":"When creating a new plan item, provide CurrencyId, PlanTypeId, config, and either SkuId or Sku. The route persists meter references from config.meter and config.quantityMeter.","required":["CurrencyId","PlanTypeId","config","SkuId"],"properties":{"SkuId":{"type":"string","example":"sku_123","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.SkuId","typeLabel":"string"},"CurrencyId":{"type":"string","example":"2","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.CurrencyId","typeLabel":"string"},"PlanTypeId":{"type":"string","enum":["1","2","3","4"],"description":"1=one_time_fee, 2=recurring_fixed_fee, 3=license_fee, 4=usage_fee.","example":"3","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.PlanTypeId","typeLabel":"enum\u003cstring>"},"config":{"oneOf":[{"type":"object","required":["dayOfPeriod","amount"],"properties":{"dayOfPeriod":{"type":"integer","minimum":1,"maximum":31,"example":1,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.0.dayOfPeriod","typeLabel":"integer"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.0.amount","typeLabel":"number"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"immediate","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.0.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.0","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","proration","amount"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.anniversaryCycle","typeLabel":"boolean"},"proration":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.proration","typeLabel":"boolean"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.amount","typeLabel":"number"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.monthOfCycle","typeLabel":"integer"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.1","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.monthOfCycle","typeLabel":"integer"},"proration":{"type":"boolean","example":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.proration","typeLabel":"boolean"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.2","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.monthOfCycle","typeLabel":"integer"},"quantityMeter":{"type":"string","example":"20","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.quantityMeter","typeLabel":"string"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.config","typeLabel":"object"},"id":{"type":"string","example":"456","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.id","typeLabel":"string"},"orderIndex":{"type":"integer","example":0,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.orderIndex","typeLabel":"integer"},"Sku":{"type":"object","properties":{"name":{"type":"string","example":"Enterprise License","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.Sku.name","typeLabel":"string"},"id":{"type":"string","example":"sku_123","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.Sku.id","typeLabel":"string"},"description":{"type":"string","example":"Annual enterprise subscription","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.Sku.description","typeLabel":"string"},"code":{"type":"string","example":"ENT-LIC","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.Sku.code","typeLabel":"string"},"Unit":{"type":"object","properties":{"id":{"type":"string","example":"1","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.Sku.Unit.id","typeLabel":"string"},"name":{"type":"string","example":"User","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.Sku.Unit.name","typeLabel":"string"},"code":{"type":"string","example":"USER","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.Sku.Unit.code","typeLabel":"string"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.Sku.Unit","typeLabel":"object"}},"required":["name"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.Sku","typeLabel":"object"},"description":{"type":"string","example":"Per-user annual license","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.description","typeLabel":"string"},"milestones":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","ContractMilestoneId"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneId":{"type":"string","example":"123","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneId","typeLabel":"string"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.ContractMilestoneData","typeLabel":"object"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0.config","typeLabel":"object"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","ContractMilestoneData"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneData","typeLabel":"object"},"ContractMilestoneId":{"type":"string","example":"123","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.ContractMilestoneId","typeLabel":"string"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1.config","typeLabel":"object"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0.milestones","typeLabel":"object[]"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","description":"When creating a new plan item, provide CurrencyId, PlanTypeId, config, and either SkuId or Sku. The route persists meter references from config.meter and config.quantityMeter.","required":["CurrencyId","PlanTypeId","config","Sku"],"properties":{"Sku":{"type":"object","properties":{"name":{"type":"string","example":"Enterprise License","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.Sku.name","typeLabel":"string"},"id":{"type":"string","example":"sku_123","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.Sku.id","typeLabel":"string"},"description":{"type":"string","example":"Annual enterprise subscription","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.Sku.description","typeLabel":"string"},"code":{"type":"string","example":"ENT-LIC","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.Sku.code","typeLabel":"string"},"Unit":{"type":"object","properties":{"id":{"type":"string","example":"1","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.Sku.Unit.id","typeLabel":"string"},"name":{"type":"string","example":"User","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.Sku.Unit.name","typeLabel":"string"},"code":{"type":"string","example":"USER","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.Sku.Unit.code","typeLabel":"string"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.Sku.Unit","typeLabel":"object"}},"required":["name"],"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.Sku","typeLabel":"object"},"CurrencyId":{"type":"string","example":"2","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.CurrencyId","typeLabel":"string"},"PlanTypeId":{"type":"string","enum":["1","2","3","4"],"description":"1=one_time_fee, 2=recurring_fixed_fee, 3=license_fee, 4=usage_fee.","example":"3","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.PlanTypeId","typeLabel":"enum\u003cstring>"},"config":{"oneOf":[{"type":"object","required":["dayOfPeriod","amount"],"properties":{"dayOfPeriod":{"type":"integer","minimum":1,"maximum":31,"example":1,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.0.dayOfPeriod","typeLabel":"integer"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.0.amount","typeLabel":"number"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"immediate","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.0.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.0","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","proration","amount"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.anniversaryCycle","typeLabel":"boolean"},"proration":{"type":"boolean","example":true,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.proration","typeLabel":"boolean"},"amount":{"type":"number","minimum":0,"example":999,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.amount","typeLabel":"number"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.monthOfCycle","typeLabel":"integer"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.1","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.monthOfCycle","typeLabel":"integer"},"proration":{"type":"boolean","example":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.proration","typeLabel":"boolean"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.2","typeLabel":"object"},{"type":"object","required":["billingFrequency","anniversaryCycle","pricingModel","meter","prices"],"properties":{"billingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.billingFrequency","typeLabel":"enum\u003cstring>"},"anniversaryCycle":{"type":"boolean","example":false,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.anniversaryCycle","typeLabel":"boolean"},"pricingModel":{"type":"string","enum":["standard","volume","tiers"],"example":"standard","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.pricingModel","typeLabel":"enum\u003cstring>"},"meter":{"type":"string","description":"Existing meter id. The create-contract flow persists this into MeterId via plan item config.","example":"10","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.meter","typeLabel":"string"},"prices":{"type":"array","items":{"type":"object","properties":{"amount":{"type":"number","minimum":0,"example":199,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].amount","typeLabel":"number"},"type":{"type":"string","enum":["unit","package","block","percentage"],"example":"unit","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"min":{"type":"number","example":0,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].min","typeLabel":"number"},"max":{"type":"number","example":100,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].max","typeLabel":"number"},"blockSize":{"type":"number","minimum":1,"example":100,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].blockSize","typeLabel":"number"},"pricingFrequency":{"type":"string","enum":["yearly","half-yearly","quarterly","monthly","weekly","daily"],"example":"monthly","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX].pricingFrequency","typeLabel":"enum\u003cstring>"}},"required":["amount","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices.items.[INDEX]","typeLabel":"object"},"minItems":1,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.prices","typeLabel":"object[]"},"dayOfCycle":{"oneOf":[{"type":"integer","maximum":31,"minimum":1,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.dayOfCycle.oneOf.0","typeLabel":"integer"},{"type":"string","enum":["L"],"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.dayOfCycle.oneOf.1","typeLabel":"enum\u003cstring>"}],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.dayOfCycle","typeLabel":"integer | enum\u003cstring>"},"monthOfCycle":{"type":"integer","minimum":1,"maximum":12,"example":1,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.monthOfCycle","typeLabel":"integer"},"quantityMeter":{"type":"string","example":"20","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.quantityMeter","typeLabel":"string"},"priceIncrementRules":{"type":"object","properties":{"enabled":{"type":"boolean","example":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.enabled","typeLabel":"boolean"},"incrementCycle":{"type":"integer","minimum":1,"example":12,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.incrementCycle","typeLabel":"integer"},"increment":{"type":"object","properties":{"value":{"type":"number","minimum":0,"example":5,"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.increment.value","typeLabel":"number"},"type":{"type":"string","enum":["percentage","absolute"],"example":"percentage","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.increment.type","typeLabel":"enum\u003cstring>"}},"required":["value","type"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.increment","typeLabel":"object"},"incrementKickoffCycle":{"type":"integer","minimum":1,"example":2,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules.incrementKickoffCycle","typeLabel":"integer"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.priceIncrementRules","typeLabel":"object"},"revenueRule":{"type":"string","enum":["immediate","proportionate","milestones"],"example":"proportionate","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3.revenueRule","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.config","typeLabel":"object"},"id":{"type":"string","example":"456","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.id","typeLabel":"string"},"orderIndex":{"type":"integer","example":0,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.orderIndex","typeLabel":"integer"},"SkuId":{"type":"string","example":"sku_123","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.SkuId","typeLabel":"string"},"description":{"type":"string","example":"Per-user annual license","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.description","typeLabel":"string"},"milestones":{"type":"array","items":{"oneOf":[{"type":"object","required":["type","ContractMilestoneId"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneId":{"type":"string","example":"123","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneId","typeLabel":"string"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.ContractMilestoneData","typeLabel":"object"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0.config","typeLabel":"object"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.0","typeLabel":"object"},{"type":"object","required":["type","ContractMilestoneData"],"properties":{"type":{"type":"string","enum":["invoice_trigger","revenue_trigger"],"example":"invoice_trigger","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.type","typeLabel":"enum\u003cstring>"},"ContractMilestoneData":{"type":"object","properties":{"name":{"type":"string","example":"Go-live","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.name","typeLabel":"string"},"expectedDate":{"type":"string","format":"date","example":"2026-03-31","isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.expectedDate","typeLabel":"string\u003cdate>"},"description":{"type":"string","example":"Production rollout is complete.","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.description","typeLabel":"string"},"type":{"type":"string","example":"manual","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData.type","typeLabel":"string"}},"required":["name","expectedDate"],"isRequired":true,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneData","typeLabel":"object"},"ContractMilestoneId":{"type":"string","example":"123","uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.ContractMilestoneId","typeLabel":"string"},"config":{"type":"object","properties":{"percentage_of_revenue":{"type":"number","minimum":0,"maximum":100,"example":25,"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.config.percentage_of_revenue","typeLabel":"number"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1.config","typeLabel":"object"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1.milestones","typeLabel":"object[]"}},"uniqueKey":"oneOf.2.\\items.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"oneOf.2.\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.2.\\items","typeLabel":"object[]"}},"uniqueKey":"oneOf.2","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"PlanId":"100","startDate":"2026-04-01","planId":"100","name":"Annual Enterprise Subscription 2026","endDate":"2027-03-31","type":"standard","orderIndex":0,"ParentContractPlanId":"42","parentContractPlanId":"42","items":[{"SkuId":"sku_123","CurrencyId":"2","PlanTypeId":"3","config":{"dayOfPeriod":1,"amount":999,"revenueRule":"immediate"},"id":"456","orderIndex":0,"description":"Per-user annual license","milestones":[{"type":"invoice_trigger","ContractMilestoneId":"123","config":{"percentage_of_revenue":25}}]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"4e7d1dc5-fff6-4b7f-b0ec-eb893861910e":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"success","uniqueKey":"status","typeLabel":"string"},"message":{"type":"string","example":"Success","uniqueKey":"message","typeLabel":"string"},"data":{"oneOf":[{"description":"Endpoint-specific payload (object, array, or null)","type":"object","uniqueKey":"data.oneOf.0","typeLabel":"object"},{"description":"Endpoint-specific payload (object, array, or null)","type":"null","uniqueKey":"data.oneOf.1","typeLabel":"null"}],"uniqueKey":"data","typeLabel":"object | null"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"success","message":"Success","data":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"e2014705-0371-44ee-a8db-a20d2f44b5c0":{"description":"Unauthorized — token missing or invalid","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"093768b4-58ae-486f-b45d-c9a8d591abf1":{"description":"Forbidden — insufficient policy permissions","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"7bd7964a-7cf3-4ae7-8882-04d5864ae3bd":{"description":"Client error","content":{"application/json":{"schema":{"type":"object","properties":{"status":{"type":"string","example":"error","uniqueKey":"status","typeLabel":"string"},"message":{"type":"string","example":"Forbidden","uniqueKey":"message","typeLabel":"string"},"errors":{"type":"array","items":{"type":"object","uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"error","message":"Forbidden","errors":[{}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"b816ba34-aa72-4592-8696-c4cce03706a4":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT bearer token obtained from POST /auth/system-login using your client credentials.","scopes":[]}}},"servers":{"16bf72fe-7f4a-4ab3-836a-05a1db619d92":{"url":"https://api.getenso.ai","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"JWT bearer token obtained from POST /auth/system-login using your client credentials.","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"JWT bearer token obtained from POST /auth/system-login using your client credentials.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"enso-73586f89","siteName":"Enso Docs","title":"Add plan to contract - Enso Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-04-28T06:19:47.717Z","originalFileLocation":"api-reference/endpoint/post-contracts-contractid-plans.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Attach a new (or existing) billing plan to a contract.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Enso Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Add plan to contract - Enso Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Attach a new (or existing) billing plan to a contract.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enso Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enso-73586f89.mintlify.site/_mintlify/api/og/v2?division=Contracts\u0026amp;title=Add+plan+to+contract\u0026amp;description=Attach+a+new+%28or+existing%29+billing+plan+to+a+contract.\u0026amp;theme=6ee6009ae078ee7cfd7244a3\u0026amp;signature=52f9a10a5d56d37a787da0c01da1379aaf0ad81ea2a97a4f569ea3836b49edaf\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Add plan to contract - Enso Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Attach a new (or existing) billing plan to a contract.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enso-73586f89.mintlify.site/_mintlify/api/og/v2?division=Contracts\u0026amp;title=Add+plan+to+contract\u0026amp;description=Attach+a+new+%28or+existing%29+billing+plan+to+a+contract.\u0026amp;theme=6ee6009ae078ee7cfd7244a3\u0026amp;signature=52f9a10a5d56d37a787da0c01da1379aaf0ad81ea2a97a4f569ea3836b49edaf\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/enso-73586f89/2iAuT5NQGhV8jHJT/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enso Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0074BA\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoint/post-contracts-contractid-plans.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.getenso.ai/#organization\",\"name\":\"Enso Docs\",\"url\":\"https://docs.getenso.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/enso-73586f89/gP3zEwNaDWBW6Qg6/logo/logo-light.png?fit=max\u0026auto=format\u0026n=gP3zEwNaDWBW6Qg6\u0026q=85\u0026s=620c67b412b16de03ee6476a33ac499a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.getenso.ai#website\",\"name\":\"Enso Docs\",\"url\":\"https://docs.getenso.ai\",\"publisher\":{\"@id\":\"https://docs.getenso.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans#webpage\",\"url\":\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans\",\"name\":\"Add plan to contract\",\"description\":\"Attach a new (or existing) billing plan to a contract.\",\"dateModified\":\"2026-04-28T06:19:47.717Z\",\"isPartOf\":{\"@id\":\"https://docs.getenso.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Contracts\",\"item\":\"https://docs.getenso.ai/api-reference/endpoint/get-contracts\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Add plan to contract\",\"item\":\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans#apireference\",\"headline\":\"Add plan to contract\",\"name\":\"Add plan to contract\",\"description\":\"Attach a new (or existing) billing plan to a contract.\",\"url\":\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans\",\"mainEntityOfPage\":{\"@id\":\"https://docs.getenso.ai/api-reference/endpoint/post-contracts-contractid-plans#webpage\"},\"dateModified\":\"2026-04-28T06:19:47.717Z\",\"publisher\":{\"@id\":\"https://docs.getenso.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.getenso.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enso Docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Enso Docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/endpoint/post-contracts-contractid-plans.md","siteName":"Enso Docs","nav":{"global":{"anchors":[{"anchor":"Website","icon":"link","href":"https://getenso.ai"},{"anchor":"Postman collection","icon":"code","href":"/api-reference/openapi.json"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"API Reference","groups":[{"group":"API Documentation","pages":[{"title":"Getting started","href":"/api-reference/introduction"},{"title":"API Keys","href":"/api-reference/api-keys"},{"title":"System User Permissions","href":"/api-reference/system-user-permissions"}]},{"group":"Authentication","pages":[{"title":"Login with email/password","openapi":"post /auth/login","href":"/api-reference/endpoint/post-auth-login"},{"title":"Get callback","openapi":"get /auth/callback","href":"/api-reference/endpoint/get-auth-callback"},{"title":"Get type","openapi":"get /auth/callback/{type}","href":"/api-reference/endpoint/get-auth-callback-type"},{"title":"Refresh an existing JWT access token before it expires","openapi":"post /auth/refresh","href":"/api-reference/endpoint/post-auth-refresh"},{"title":"Exchange client credentials for a JWT access token. This is the entry-point for","openapi":"post /auth/system-login","href":"/api-reference/endpoint/post-auth-system-login"}]},{"group":"Users","pages":[{"title":"API to get current user","openapi":"get /me","href":"/api-reference/endpoint/get-me"},{"title":"Get my policies","openapi":"get /policies","href":"/api-reference/endpoint/get-policies"},{"title":"List roles","openapi":"get /roles","href":"/api-reference/endpoint/get-roles"},{"title":"List users","openapi":"get /users","href":"/api-reference/endpoint/get-users"},{"title":"Create user","openapi":"post /users","href":"/api-reference/endpoint/post-users"},{"title":"Create system user","openapi":"post /users/system","href":"/api-reference/endpoint/post-users-system"},{"title":"Update user","openapi":"put /users/{id}","href":"/api-reference/endpoint/put-users-id"}]},{"group":"Entities","pages":[{"title":"List entities","openapi":"get /entities","href":"/api-reference/endpoint/get-entities"},{"title":"API to get entities by type","openapi":"get /entities/all","href":"/api-reference/endpoint/get-entities-all"},{"title":"Get entity by ID","openapi":"get /entities/{id}","href":"/api-reference/endpoint/get-entities-id"},{"title":"List entity addresses","openapi":"get /entities/{id}/addresses","href":"/api-reference/endpoint/get-entities-id-addresses"},{"title":"List entity taxes","openapi":"get /entities/{id}/taxes","href":"/api-reference/endpoint/get-entities-id-taxes"},{"title":"API to get entities by type with filters","openapi":"get /entities/list","href":"/api-reference/endpoint/get-entities-list"},{"title":"API to create an entity","openapi":"post /customers/{customerId}/entities","href":"/api-reference/endpoint/post-customers-customerid-entities"},{"title":"Create entities","openapi":"post /entities","href":"/api-reference/endpoint/post-entities"},{"title":"Create entity address","openapi":"post /entities/{id}/addresses","href":"/api-reference/endpoint/post-entities-id-addresses"},{"title":"Create entity taxes","openapi":"post /entities/{id}/taxes","href":"/api-reference/endpoint/post-entities-id-taxes"},{"title":"Update entity","openapi":"put /entities/{id}","href":"/api-reference/endpoint/put-entities-id"},{"title":"Update entity address","openapi":"put /entities/{id}/addresses/{addressId}","href":"/api-reference/endpoint/put-entities-id-addresses-addressid"},{"title":"Update entity tax","openapi":"put /entities/{id}/taxes/{taxId}","href":"/api-reference/endpoint/put-entities-id-taxes-taxid"},{"title":"API to delete an entity","openapi":"delete /entities/{id}","href":"/api-reference/endpoint/delete-entities-id"},{"title":"Delete entity address","openapi":"delete /entities/{id}/addresses/{addressId}","href":"/api-reference/endpoint/delete-entities-id-addresses-addressid"},{"title":"Delete entity tax","openapi":"delete /entities/{id}/taxes/{taxId}","href":"/api-reference/endpoint/delete-entities-id-taxes-taxid"}]},{"group":"Customers","pages":[{"title":"Get customers","openapi":"get /customers","href":"/api-reference/endpoint/get-customers"},{"title":"Create customers","openapi":"post /customers","href":"/api-reference/endpoint/post-customers"},{"title":"Update customer","openapi":"put /customers/{customerId}","href":"/api-reference/endpoint/put-customers-customerid"},{"title":"API to delete a customer","openapi":"delete /customers/{customerId}","href":"/api-reference/endpoint/delete-customers-customerid"}]},{"group":"Contact Groups","pages":[{"title":"List contact groups","openapi":"get /contact-groups","href":"/api-reference/endpoint/get-contact-groups"},{"title":"Resolve the effective contact for a target","openapi":"get /contact-groups/resolve","href":"/api-reference/endpoint/get-contact-groups-resolve"},{"title":"Create a contact group","openapi":"post /contact-groups","href":"/api-reference/endpoint/post-contact-groups"},{"title":"Update a contact group","openapi":"put /contact-groups/{id}","href":"/api-reference/endpoint/put-contact-groups-id"},{"title":"Delete a contact group","openapi":"delete /contact-groups/{id}","href":"/api-reference/endpoint/delete-contact-groups-id"},{"title":"Attach a contact group to a target","openapi":"post /contact-groups/{id}/attach","href":"/api-reference/endpoint/post-contact-groups-id-attach"},{"title":"Detach a contact group from a target","openapi":"delete /contact-groups/mappings/{mappingId}","href":"/api-reference/endpoint/delete-contact-groups-mappings-mappingid"}]},{"group":"Catalog","pages":[{"title":"List SKU groups","openapi":"get /catalog/groups","href":"/api-reference/endpoint/get-catalog-groups"},{"title":"API to get skus","openapi":"get /catalog/skus","href":"/api-reference/endpoint/get-catalog-skus"},{"title":"API to get a sku by id","openapi":"get /catalog/skus/{skuId}","href":"/api-reference/endpoint/get-catalog-skus-skuid"},{"title":"Create SKU group","openapi":"post /catalog/groups","href":"/api-reference/endpoint/post-catalog-groups"},{"title":"API to create a sku","openapi":"post /catalog/skus","href":"/api-reference/endpoint/post-catalog-skus"},{"title":"Update SKU group","openapi":"put /catalog/groups/{id}","href":"/api-reference/endpoint/put-catalog-groups-id"},{"title":"API to update a sku","openapi":"put /catalog/skus/{skuId}","href":"/api-reference/endpoint/put-catalog-skus-skuid"},{"title":"Delete SKU group","openapi":"delete /catalog/groups/{id}","href":"/api-reference/endpoint/delete-catalog-groups-id"},{"title":"Delete SKU","openapi":"delete /catalog/skus/{skuId}","href":"/api-reference/endpoint/delete-catalog-skus-skuid"}]},{"group":"Billing","pages":[{"title":"Get plan item config schema","openapi":"get /billing/items-config","href":"/api-reference/endpoint/get-billing-items-config"},{"title":"List plan types","openapi":"get /billing/plan-types","href":"/api-reference/endpoint/get-billing-plan-types"},{"title":"List billing plans","openapi":"get /billing/plans","href":"/api-reference/endpoint/get-billing-plans"},{"title":"List plan items","openapi":"get /billing/plans/{planId}/items","href":"/api-reference/endpoint/get-billing-plans-planid-items"},{"title":"Create billing plan","openapi":"post /billing/plans","href":"/api-reference/endpoint/post-billing-plans"},{"title":"API to create a billing plan item","openapi":"post /billing/plans/{planId}/items","href":"/api-reference/endpoint/post-billing-plans-planid-items"},{"title":"Update billing plan","openapi":"put /billing/plans/{id}","href":"/api-reference/endpoint/put-billing-plans-id"},{"title":"Delete billing plan","openapi":"delete /billing/plans/{id}","href":"/api-reference/endpoint/delete-billing-plans-id"},{"title":"API to delete a billing plan item","openapi":"delete /billing/plans/{planId}/items/{id}","href":"/api-reference/endpoint/delete-billing-plans-planid-items-id"}]},{"group":"Contracts","pages":[{"title":"Get contracts","openapi":"get /contracts","href":"/api-reference/endpoint/get-contracts"},{"title":"List contract milestones","openapi":"get /contracts/{contractId}/milestones","href":"/api-reference/endpoint/get-contracts-contractid-milestones"},{"title":"List contract plans","openapi":"get /contracts/{contractId}/plans","href":"/api-reference/endpoint/get-contracts-contractid-plans"},{"title":"Get id","openapi":"get /contracts/{id}","href":"/api-reference/endpoint/get-contracts-id"},{"title":"Create contract milestone","openapi":"post /contracts/{contractId}/milestones","description":"Add a milestone to a contract (e.g. go-live date, payment trigger).","href":"/api-reference/endpoint/post-contracts-contractid-milestones"},{"title":"Add plan to contract","openapi":"post /contracts/{contractId}/plans","href":"/api-reference/endpoint/post-contracts-contractid-plans"},{"title":"Generate invoices for contract plan","openapi":"post /contracts/{contractId}/plans/{contractPlanId}/invoices","description":"Trigger invoice generation for a specific contract plan period.","href":"/api-reference/endpoint/post-contracts-contractid-plans-contractplanid-invoices"},{"title":"Create milestones","openapi":"post /contracts/{contractId}/plans/{contractPlanId}/milestones","href":"/api-reference/endpoint/post-contracts-contractid-plans-contractplanid-milestones"},{"title":"Add taxes to contract","openapi":"post /contracts/{contractId}/taxes","href":"/api-reference/endpoint/post-contracts-contractid-taxes"},{"title":"Import contract (single)","openapi":"post /contracts/import","href":"/api-reference/endpoint/post-contracts-import"},{"title":"Import contracts (bulk)","openapi":"post /contracts/import/bulk","href":"/api-reference/endpoint/post-contracts-import-bulk"},{"title":"Update contract plan","openapi":"put /contracts/{contractId}/plans/{contractPlanId}","href":"/api-reference/endpoint/put-contracts-contractid-plans-contractplanid"},{"title":"Change contract plan","openapi":"put /contracts/{contractId}/plans/{contractPlanId}/change","href":"/api-reference/endpoint/put-contracts-contractid-plans-contractplanid-change"},{"title":"Update contract tax","openapi":"put /contracts/{contractId}/taxes/{contractTaxId}","href":"/api-reference/endpoint/put-contracts-contractid-taxes-contracttaxid"},{"title":"Update contract","openapi":"put /contracts/{id}","href":"/api-reference/endpoint/put-contracts-id"},{"title":"Delete contractPlanId","openapi":"delete /contracts/{contractId}/plans/{contractPlanId}","href":"/api-reference/endpoint/delete-contracts-contractid-plans-contractplanid"},{"title":"Delete contractPlanItemMilestoneId","openapi":"delete /contracts/{contractId}/plans/{contractPlanId}/milestones/{contractPlanItemMilestoneId}","href":"/api-reference/endpoint/delete-contracts-contractid-plans-contractplanid-milestones-contractplanitemmilestoneid"},{"title":"Remove contract tax","openapi":"delete /contracts/{contractId}/taxes/{contractTaxId}","href":"/api-reference/endpoint/delete-contracts-contractid-taxes-contracttaxid"}]},{"group":"Invoices","pages":[{"title":"Get invoices","openapi":"get /invoices","href":"/api-reference/endpoint/get-invoices"},{"title":"List invoice payments","openapi":"get /invoices/{id}/payments","href":"/api-reference/endpoint/get-invoices-id-payments"},{"title":"API to get invoice details by ID","openapi":"get /invoices/{invoiceId}","href":"/api-reference/endpoint/get-invoices-invoiceid"},{"title":"List invoice templates","openapi":"get /invoices/templates","href":"/api-reference/endpoint/get-invoices-templates"},{"title":"Create invoices","openapi":"post /invoices","href":"/api-reference/endpoint/post-invoices"},{"title":"API to create a batch of invoices","openapi":"post /invoices/batch","href":"/api-reference/endpoint/post-invoices-batch"},{"title":"Record payment","openapi":"post /invoices/{id}/payments","href":"/api-reference/endpoint/post-invoices-id-payments"},{"title":"Upload invoice document","openapi":"post /invoices/{invoiceId}/document","href":"/api-reference/endpoint/post-invoices-invoiceid-document"},{"title":"API to create invoice item","openapi":"post /invoices/{invoiceId}/items","href":"/api-reference/endpoint/post-invoices-invoiceid-items"},{"title":"API to update invoice status and dates","openapi":"post /invoices/{invoiceId}/pdf","href":"/api-reference/endpoint/post-invoices-invoiceid-pdf"},{"title":"Sync invoice revenue","openapi":"post /invoices/{invoiceId}/revenue/sync","href":"/api-reference/endpoint/post-invoices-invoiceid-revenue-sync"},{"title":"API to sync an invoice with usage data","openapi":"post /invoices/{invoiceId}/sync","href":"/api-reference/endpoint/post-invoices-invoiceid-sync"},{"title":"Create invoice template","openapi":"post /invoices/templates","href":"/api-reference/endpoint/post-invoices-templates"},{"title":"Update payment","openapi":"put /invoices/{id}/payments/{paymentId}","href":"/api-reference/endpoint/put-invoices-id-payments-paymentid"},{"title":"Update invoice","openapi":"put /invoices/{invoiceId}","href":"/api-reference/endpoint/put-invoices-invoiceid"},{"title":"API to update invoice item","openapi":"put /invoices/{invoiceId}/items/{itemId}","href":"/api-reference/endpoint/put-invoices-invoiceid-items-itemid"},{"title":"Update invoice template","openapi":"put /invoices/templates/{id}","href":"/api-reference/endpoint/put-invoices-templates-id"},{"title":"Delete payment","openapi":"delete /invoices/{id}/payments/{paymentId}","href":"/api-reference/endpoint/delete-invoices-id-payments-paymentid"},{"title":"Delete payment file","openapi":"delete /invoices/{id}/payments/{paymentId}/files/{fileId}","href":"/api-reference/endpoint/delete-invoices-id-payments-paymentid-files-fileid"},{"title":"Delete invoice file","openapi":"delete /invoices/{invoiceId}/files/{fileId}","href":"/api-reference/endpoint/delete-invoices-invoiceid-files-fileid"},{"title":"Delete invoice template","openapi":"delete /invoices/templates/{id}","href":"/api-reference/endpoint/delete-invoices-templates-id"}]},{"group":"Revenue","pages":[{"title":"Get revenue","openapi":"get /revenue","href":"/api-reference/endpoint/get-revenue"},{"title":"Get revenue by invoice item","openapi":"get /revenue/{invoiceItemId}","href":"/api-reference/endpoint/get-revenue-invoiceitemid"},{"title":"Create revenue","openapi":"post /revenue","href":"/api-reference/endpoint/post-revenue"},{"title":"Edit or delete revenue","href":"/api-reference/endpoint/revenue-edit-delete"}]},{"group":"Payments","pages":[{"title":"List payment sources","openapi":"get /payment-sources","href":"/api-reference/endpoint/get-payment-sources"},{"title":"List all payments","openapi":"get /payments","href":"/api-reference/endpoint/get-payments"},{"title":"Create payment source","openapi":"post /payment-sources","href":"/api-reference/endpoint/post-payment-sources"},{"title":"Update payment source","openapi":"put /payment-sources/{id}","href":"/api-reference/endpoint/put-payment-sources-id"},{"title":"Delete payment source","openapi":"delete /payment-sources/{id}","href":"/api-reference/endpoint/delete-payment-sources-id"}]},{"group":"Metering","pages":[{"title":"Get meters","openapi":"get /meters","href":"/api-reference/endpoint/get-meters"},{"title":"Get usage","openapi":"get /usage","href":"/api-reference/endpoint/get-usage"},{"title":"Create meters","openapi":"post /meters","href":"/api-reference/endpoint/post-meters"},{"title":"API to create usage by meter","openapi":"post /meters/{id}/usage","href":"/api-reference/endpoint/post-meters-id-usage"},{"title":"API to sync usage for all meters in the current organisation","openapi":"post /meters/sync-all","href":"/api-reference/endpoint/post-meters-sync-all"},{"title":"Create usage","openapi":"post /usage","href":"/api-reference/endpoint/post-usage"},{"title":"Update meter","openapi":"put /meters/{id}","href":"/api-reference/endpoint/put-meters-id"},{"title":"Update usage by id","openapi":"put /usage/{id}","href":"/api-reference/endpoint/put-usage-id"},{"title":"Delete meter","openapi":"delete /meters/{id}","href":"/api-reference/endpoint/delete-meters-id"},{"title":"Delete usage by id","openapi":"delete /usage/{id}","href":"/api-reference/endpoint/delete-usage-id"}]},{"group":"Events","pages":[{"title":"Get events","openapi":"get /events","href":"/api-reference/endpoint/get-events"},{"title":"List event configs","openapi":"get /events/config","href":"/api-reference/endpoint/get-events-config"},{"title":"Create events","openapi":"post /events","href":"/api-reference/endpoint/post-events"},{"title":"Create batch","openapi":"post /events/batch","href":"/api-reference/endpoint/post-events-batch"},{"title":"Create remove duplicates","openapi":"post /events/remove-duplicates","href":"/api-reference/endpoint/post-events-remove-duplicates"},{"title":"Create event config","openapi":"post /events/config","href":"/api-reference/endpoint/post-events-config"},{"title":"Import events (file)","openapi":"post /events/import","href":"/api-reference/endpoint/post-events-import"},{"title":"Update event config","openapi":"put /events/config/{id}","href":"/api-reference/endpoint/put-events-config-id"},{"title":"Delete events","openapi":"delete /events","href":"/api-reference/endpoint/delete-events"},{"title":"Delete event config","openapi":"delete /events/config/{id}","href":"/api-reference/endpoint/delete-events-config-id"}]},{"group":"Jobs","pages":[{"title":"Get jobs","openapi":"get /jobs","href":"/api-reference/endpoint/get-jobs"},{"title":"API to get job details","openapi":"get /jobs/{jobId}","href":"/api-reference/endpoint/get-jobs-jobid"},{"title":"Create job","openapi":"post /jobs","href":"/api-reference/endpoint/post-jobs"},{"title":"API to parse contract details for an existing job","openapi":"post /jobs/{jobId}/parse-contract-details","href":"/api-reference/endpoint/post-jobs-jobid-parse-contract-details"},{"title":"API to retry job","openapi":"post /jobs/{jobId}/retry","href":"/api-reference/endpoint/post-jobs-jobid-retry"},{"title":"Update job","openapi":"put /jobs/{jobId}","href":"/api-reference/endpoint/put-jobs-jobid"},{"title":"API to delete job","openapi":"delete /jobs/{jobId}","href":"/api-reference/endpoint/delete-jobs-jobid"},{"title":"API to delete a specific file attached to a job","openapi":"delete /jobs/{jobId}/files/{fileId}","href":"/api-reference/endpoint/delete-jobs-jobid-files-fileid"}]},{"group":"Schedules","pages":[{"title":"List schedules","openapi":"get /schedules","href":"/api-reference/endpoint/get-schedules"},{"title":"Get schedule","openapi":"get /schedules/{id}","href":"/api-reference/endpoint/get-schedules-id"},{"title":"Create schedule","openapi":"post /schedules","href":"/api-reference/endpoint/post-schedules"},{"title":"Update schedule","openapi":"put /schedules/{id}","href":"/api-reference/endpoint/put-schedules-id"},{"title":"Delete schedule","openapi":"delete /schedules/{id}","href":"/api-reference/endpoint/delete-schedules-id"}]},{"group":"State Machine","pages":[{"title":"Transition object state","openapi":"post /objects/{type}/{id}/transition","href":"/api-reference/endpoint/post-objects-type-id-transition"}]},{"group":"Objects","pages":[{"title":"Poll deferred query","openapi":"get /objects/query/deferred/{requestId}","href":"/api-reference/endpoint/get-objects-query-deferred-requestid"},{"title":"Get objectName","openapi":"get /objects/schema/{objectName}","href":"/api-reference/endpoint/get-objects-schema-objectname"},{"title":"Create query","openapi":"post /objects/query","href":"/api-reference/endpoint/post-objects-query"}]},{"group":"Workflows","pages":[{"title":"List workflows","openapi":"get /workflows","href":"/api-reference/endpoint/get-workflows"},{"title":"List workflow configs (AWS state machines)","openapi":"get /workflows/config/all","href":"/api-reference/endpoint/get-workflows-config-all"},{"title":"Get workflow","openapi":"get /workflows/{id}","href":"/api-reference/endpoint/get-workflows-id"},{"title":"List workflow executions","openapi":"get /workflows/{id}/executions","href":"/api-reference/endpoint/get-workflows-id-executions"},{"title":"Create workflow","openapi":"post /workflows","href":"/api-reference/endpoint/post-workflows"},{"title":"Retry workflow execution","openapi":"post /workflows/executions/{id}","href":"/api-reference/endpoint/post-workflows-executions-id"},{"title":"Update workflow","openapi":"put /workflows/{id}","href":"/api-reference/endpoint/put-workflows-id"},{"title":"Delete workflow","openapi":"delete /workflows/{id}","href":"/api-reference/endpoint/delete-workflows-id"}]},{"group":"FX Rates","pages":[{"title":"Get fx rates","openapi":"get /fx-rates","href":"/api-reference/endpoint/get-fx-rates"},{"title":"Get FX rate","openapi":"get /fx-rates/{id}","href":"/api-reference/endpoint/get-fx-rates-id"},{"title":"Create fx rates","openapi":"post /fx-rates","href":"/api-reference/endpoint/post-fx-rates"},{"title":"API to update an FX rate","openapi":"put /fx-rates/{id}","href":"/api-reference/endpoint/put-fx-rates-id"},{"title":"Delete FX rate","openapi":"delete /fx-rates/{id}","href":"/api-reference/endpoint/delete-fx-rates-id"}]},{"group":"Collections","pages":[{"title":"Get collections","openapi":"get /collections","href":"/api-reference/endpoint/get-collections"}]},{"group":"Apps","pages":[{"title":"Get apps","openapi":"get /apps","href":"/api-reference/endpoint/get-apps"},{"title":"Get credentials","openapi":"get /apps/credentials","href":"/api-reference/endpoint/get-apps-credentials"},{"title":"Get credentials","openapi":"get /apps/{id}/credentials","href":"/api-reference/endpoint/get-apps-id-credentials"},{"title":"Create app","openapi":"post /apps","href":"/api-reference/endpoint/post-apps"},{"title":"Connect app (get OAuth URL)","openapi":"post /apps/{id}/connect","href":"/api-reference/endpoint/post-apps-id-connect"},{"title":"Create app credential","openapi":"post /apps/{id}/credentials","href":"/api-reference/endpoint/post-apps-id-credentials"},{"title":"Update credentialId","openapi":"put /apps/{id}/credentials/{credentialId}","href":"/api-reference/endpoint/put-apps-id-credentials-credentialid"},{"title":"Delete app","openapi":"delete /apps/{id}","href":"/api-reference/endpoint/delete-apps-id"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","openapi":"get /webhooks","href":"/api-reference/endpoint/get-webhooks"},{"title":"Create webhook","openapi":"post /webhooks","href":"/api-reference/endpoint/post-webhooks"}]},{"group":"Attributes","pages":[{"title":"Get attributes","openapi":"get /attributes","href":"/api-reference/endpoint/get-attributes"},{"title":"Create attributes","openapi":"post /attributes","href":"/api-reference/endpoint/post-attributes"},{"title":"Validate required attributes","openapi":"post /attributes/validate-required-attributes","href":"/api-reference/endpoint/post-attributes-validate-required-attributes"},{"title":"API to update an attribute","openapi":"put /attributes/{id}","href":"/api-reference/endpoint/put-attributes-id"},{"title":"API to delete an attribute","openapi":"delete /attributes/{id}","href":"/api-reference/endpoint/delete-attributes-id"}]},{"group":"Filters","pages":[{"title":"List filters","openapi":"get /filters","href":"/api-reference/endpoint/get-filters"},{"title":"Create filter","openapi":"post /filters","href":"/api-reference/endpoint/post-filters"},{"title":"Delete filter","openapi":"delete /filters/{id}","href":"/api-reference/endpoint/delete-filters-id"}]},{"group":"Settings","pages":[{"title":"Get setting schema","openapi":"get /settings/schema/{key}","href":"/api-reference/endpoint/get-settings-schema-key"},{"title":"Create setting","openapi":"post /settings","href":"/api-reference/endpoint/post-settings"},{"title":"Delete setting","openapi":"delete /settings/{id}","href":"/api-reference/endpoint/delete-settings-id"}]},{"group":"Reports","pages":[{"title":"List reconciliation reports","openapi":"get /reports/reconciliation/{model}","href":"/api-reference/endpoint/get-reports-reconciliation-model"},{"title":"Run reconciliation report","openapi":"post /reports/reconciliation/{reportId}/fetch","href":"/api-reference/endpoint/post-reports-reconciliation-reportid-fetch"}]},{"group":"Chatbot","pages":[{"title":"Get chatbot capabilities","openapi":"get /chatbot/capabilities","href":"/api-reference/endpoint/get-chatbot-capabilities"},{"title":"API to chat with the AI assistant","openapi":"post /chatbot/chat","href":"/api-reference/endpoint/post-chatbot-chat"}]},{"group":"Audit","pages":[{"title":"List audit versions","openapi":"get /versions","href":"/api-reference/endpoint/get-versions"}]},{"group":"Email","pages":[{"title":"List email templates","openapi":"get /email/templates","href":"/api-reference/endpoint/get-email-templates"},{"title":"Create email template","openapi":"post /email/templates","href":"/api-reference/endpoint/post-email-templates"},{"title":"Delete email template","openapi":"delete /email/templates/{name}","href":"/api-reference/endpoint/delete-email-templates-name"}]},{"group":"Email templates","pages":[{"title":"Send a test email to verify SMTP settings","openapi":"post /email/test","href":"/api-reference/endpoint/post-email-test"}]},{"group":"FSM (object lifecycle)","pages":[{"title":"API to get state machines","openapi":"get /objects/machines","href":"/api-reference/endpoint/get-objects-machines"},{"title":"API to get all actions for a model","openapi":"get /objects/{type}/{id}/actions","href":"/api-reference/endpoint/get-objects-type-id-actions"},{"title":"API to get all states for a model","openapi":"get /objects/{type}/states","href":"/api-reference/endpoint/get-objects-type-states"},{"title":"API to create a state machine","openapi":"post /objects/machines","href":"/api-reference/endpoint/post-objects-machines"},{"title":"API to get all available actions for multiple model instances","openapi":"post /objects/{type}/actions/bulk","href":"/api-reference/endpoint/post-objects-type-actions-bulk"},{"title":"API to undo the last transition on a model","openapi":"post /objects/{type}/{id}/transition/undo","href":"/api-reference/endpoint/post-objects-type-id-transition-undo"},{"title":"API to enqueue a bulk transition job on multiple model instances","openapi":"post /objects/{type}/transition/bulk","href":"/api-reference/endpoint/post-objects-type-transition-bulk"}]},{"group":"Masters","pages":[{"title":"API to get all currencies","openapi":"get /currencies","href":"/api-reference/endpoint/get-currencies"},{"title":"API to get all countries","openapi":"get /geo/countries","href":"/api-reference/endpoint/get-geo-countries"},{"title":"API to get all states for a country","openapi":"get /geo/countries/{countryId}/states","href":"/api-reference/endpoint/get-geo-countries-countryid-states"},{"title":"List units","openapi":"get /units","href":"/api-reference/endpoint/get-units"}]},{"group":"Organisation attributes","pages":[{"title":"Get model?","openapi":"get /organisation-attributes/{model}?","href":"/api-reference/endpoint/get-organisation-attributes-model"},{"title":"Create organisation attributes","openapi":"post /organisation-attributes","href":"/api-reference/endpoint/post-organisation-attributes"},{"title":"API to update an organisation attribute","openapi":"put /organisation-attributes/{id}","href":"/api-reference/endpoint/put-organisation-attributes-id"},{"title":"API to delete an organisation attribute","openapi":"delete /organisation-attributes/{id}","href":"/api-reference/endpoint/delete-organisation-attributes-id"}]},{"group":"Organisation settings","pages":[{"title":"Get settings","openapi":"get /settings","href":"/api-reference/endpoint/get-settings"},{"title":"Update id","openapi":"put /settings/{id}","href":"/api-reference/endpoint/put-settings-id"}]}]}]},"basePath":"","title":"Add plan to contract - Enso Docs","buildId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","deploymentId":"dpl_DqYu5MPb49gWBBbUGgpHQUmCHY3P","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CybtLBIt.js","utils-BMLj2fvV.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-B6In562Y.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dr8Mfhp9.js","snippetPresets-2rmQvMVl.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-WMqJYdZj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CJ-MlPHu.js","shallow-dY3TMRCk.js","getApiPlaygroundDisplay-v-1B2bKm.js","CodeSnippet-BDhiTB7U.js","CodeSnippets-D9hnzQcS.js","Page-C4GwDT3_.js","getPastedJson-Th2V45jI.js","icon-BQXch1W9.js","MethodPill-BCqUneP3.js","DuplicateIcon-Q_-bhurZ.js","createIcon-DUjLHRqp.js","DynamicMarkdown-B-f2cqXQ.js","SectionHeading-Da5NsV4v.js","axios-vUo_bRtp.js","Markdown-D13FWkIM.js","clsx-D3Isdib3.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-C-XZBk9h.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink--qIqmmVG.js"]}