Skip to content

Save IP deal terms

PUT
/api/canvas/{deal_id}/ip/terms
curl --request PUT \
--url https://example.com/api/canvas/example/ip/terms \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{}'

Save or update IP deal terms.

Accepts a JSON body with IPDealTerms fields.

Phase 4: RequireEditor — editors and owners can save IP terms.

deal_id
required
Deal Id
string
Media type application/json
IPTermsSaveBody

Request body for PUT /ip/terms.

Per-field validation (allowed keys, stripping unknowns, type coercion) runs downstream in validate_ip_terms_payload. The RootModel wrapper enforces that the body parses as a JSON object — FastAPI emits the standard 422 envelope for non-objects, replacing a previous defensive isinstance(body, dict) branch.

object
key
additional properties
any
Example generated
{}

Successful Response

Media type application/json
IPTermsSaveResponse

Response for IP deal terms save.

object
success
required
Success
boolean
error
Any of:
string
stripped_fields
Any of:
Array
Example generated
{
"success": true,
"error": "example",
"stripped_fields": [
"example"
]
}

Validation Error

Media type application/json
HTTPValidationError
object
detail
Detail
Array<object>
ValidationError
object
loc
required
Location
Array
msg
required
Message
string
type
required
Error Type
string
input
Input
ctx
Context
object
Example generated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}