Skip to main content
POST
Add plan to contract
Not accessible by SystemUser role. Requires Admin.

Authorizations

Authorization
string
header
required

JWT bearer token obtained from POST /auth/system-login using your client credentials.

Path Parameters

contractId
string
required

Contract ID

Body

application/json

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.

PlanId
string
required
Example:

"100"

startDate
string<date>
required
Example:

"2026-04-01"

planId
string
Example:

"100"

name
string
Example:

"Annual Enterprise Subscription 2026"

endDate
string<date>
Example:

"2027-03-31"

type
enum<string>
Available options:
standard,
extension,
renewal
Example:

"standard"

orderIndex
integer
Example:

0

renewalTerms
object
ParentContractPlanId
string
Example:

"42"

parentContractPlanId
string
Example:

"42"

items
object[]

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.

Response

Success

status
string
Example:

"success"

message
string
Example:

"Success"

data
object | null

Endpoint-specific payload (object, array, or null)