curl --request PUT \
--url https://api.getprimo.com/saas/{saasId}/contract \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pricingMode": "per_licence",
"currency": "EUR",
"billingFrequency": "monthly",
"flatRatePrice": 123,
"unlicensedPricePerSeat": 123,
"unlicensedMinimumSeatsBilled": 4503599627370495,
"licenses": [
{
"remoteId": "<string>",
"name": "<string>",
"pricePerSeat": 123,
"minimumSeatsBilled": 4503599627370495
}
]
}
'{
"contract": {
"pricingMode": "per_licence",
"currency": "EUR",
"billingFrequency": "monthly",
"flatRatePrice": 123,
"unlicensedPricePerSeat": 123,
"unlicensedMinimumSeatsBilled": 4503599627370495,
"licenses": [
{
"remoteId": "<string>",
"name": "<string>",
"pricePerSeat": 123,
"minimumSeatsBilled": 4503599627370495
}
]
},
"finance": {
"yearlyCost": 123,
"unusedYearlyCost": 123,
"unusedSeatsCount": 4503599627370495
},
"licenses": [
{
"remoteId": "<string>",
"name": "<string>"
}
]
}Replace the contract configuration for the given SaaS. All prices must be expressed for one billing period defined by billingFrequency (not annualized).
flat_rate mode — a single recurring amount covers the whole subscription:
flatRatePrice must be set.unlicensedPricePerSeat, unlicensedMinimumSeatsBilled, licenses[].pricePerSeat and licenses[].minimumSeatsBilled must all be null.per_licence mode — pricing is broken down per license type:
flatRatePrice must be null.unlicensedPricePerSeat, unlicensedMinimumSeatsBilled, licenses[].pricePerSeat and licenses[].minimumSeatsBilled must all be set.The licenses array must exactly match the licenses defined in the SaaS: every entry must have the same remoteId and name as the corresponding SaaS license (retrieve them via getSaasById).
curl --request PUT \
--url https://api.getprimo.com/saas/{saasId}/contract \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"pricingMode": "per_licence",
"currency": "EUR",
"billingFrequency": "monthly",
"flatRatePrice": 123,
"unlicensedPricePerSeat": 123,
"unlicensedMinimumSeatsBilled": 4503599627370495,
"licenses": [
{
"remoteId": "<string>",
"name": "<string>",
"pricePerSeat": 123,
"minimumSeatsBilled": 4503599627370495
}
]
}
'{
"contract": {
"pricingMode": "per_licence",
"currency": "EUR",
"billingFrequency": "monthly",
"flatRatePrice": 123,
"unlicensedPricePerSeat": 123,
"unlicensedMinimumSeatsBilled": 4503599627370495,
"licenses": [
{
"remoteId": "<string>",
"name": "<string>",
"pricePerSeat": 123,
"minimumSeatsBilled": 4503599627370495
}
]
},
"finance": {
"yearlyCost": 123,
"unusedYearlyCost": 123,
"unusedSeatsCount": 4503599627370495
},
"licenses": [
{
"remoteId": "<string>",
"name": "<string>"
}
]
}Use your Primo API key in the Authorization header as Bearer <API_KEY>.
Contract pricing mode. Use flat_rate for one recurring amount or per_licence for license-based pricing.
per_licence, flat_rate ISO currency code used for all contract prices.
EUR, GBP, USD, CHF, CAD Billing period used by every price in this contract: monthly, quarterly, or annual.
monthly, quarterly, annual Recurring flat-rate amount billed for one billing period defined by billingFrequency. Not annualized. Required when pricingMode is flat_rate; must be null when pricingMode is per_licence.
Price billed per unlicensed seat for one billing period defined by billingFrequency. Not annualized. Required when pricingMode is per_licence; must be null when pricingMode is flat_rate.
Minimum number of unlicensed seats billed during one billing period. Required when pricingMode is per_licence; must be null when pricingMode is flat_rate.
0 <= x <= 9007199254740991Priced contract lines, one entry per SaaS license. Required when pricingMode is per_licence; all pricePerSeat and minimumSeatsBilled values must be null when pricingMode is flat_rate. The list must exactly match the licenses defined in the SaaS (same remoteId and name for every entry).
Show child attributes
Billing contract currently configured for this SaaS.
Show child attributes
Derived financial metrics computed from the configured contract.
Show child attributes
SaaS license catalog used to map contract pricing lines with the SaaS licenses.
Show child attributes
Was this page helpful?