Установить интеграцию
/api/v1/developer/integrationsАтомарно применяет Billing settlement и создаёт installation только при совпадении definitionVersion, offerVersion и amountCents из свежего каталога.
Право доступаintegrations.installations.write
Authorization: Bearer YOUR_PROJECT_TOKEN
Параметры
idempotency-keyобязательно · headerstringpattern: "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$"JSON Schema
{ "type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{7,159}$" }
Тело запроса
application/jsonobject
definitionCodeобязательно- stringpattern: "^[a-z][a-z0-9_]{1,63}$"
displayNameобязательно- stringminLength: 1 · maxLength: 80
expectedQuoteобязательно- object
Вложенная схема
objectdefinitionVersionобязательно- integerexclusiveMinimum: 0
offerVersionобязательно- integerexclusiveMinimum: 0
amountCentsобязательно- integerminimum: 0
JSON Schema
{ "type": "object", "properties": { "definitionVersion": { "type": "integer", "exclusiveMinimum": 0 }, "offerVersion": { "type": "integer", "exclusiveMinimum": 0 }, "amountCents": { "type": "integer", "minimum": 0 } }, "required": [ "definitionVersion", "offerVersion", "amountCents" ], "additionalProperties": false }
JSON Schema
{
"type": "object",
"properties": {
"definitionCode": {
"type": "string",
"pattern": "^[a-z][a-z0-9_]{1,63}$"
},
"displayName": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"expectedQuote": {
"type": "object",
"properties": {
"definitionVersion": {
"type": "integer",
"exclusiveMinimum": 0
},
"offerVersion": {
"type": "integer",
"exclusiveMinimum": 0
},
"amountCents": {
"type": "integer",
"minimum": 0
}
},
"required": [
"definitionVersion",
"offerVersion",
"amountCents"
],
"additionalProperties": false
}
},
"required": [
"definitionCode",
"displayName",
"expectedQuote"
],
"additionalProperties": false
}Примеры запроса
curl --request POST 'https://YOUR_NOVA_HOST/api/v1/developer/integrations' --header 'Authorization: Bearer YOUR_PROJECT_TOKEN' --header 'Idempotency-Key: install-2026-08-14-001' --header 'Content-Type: application/json' --data '{"definitionCode":"webhook_api","displayName":"Automation","expectedQuote":{"definitionVersion":1,"offerVersion":1,"amountCents":0}}'Ответы
201 Installed project Integration
application/jsonobject
installationобязательно- object
Вложенная схема
objectidобязательно- stringminLength: 1 · maxLength: 160
definitionCodeобязательно- stringminLength: 1 · maxLength: 80
definitionVersionобязательно- integerexclusiveMinimum: 0
displayNameобязательно- stringminLength: 1 · maxLength: 80
statusобязательно- stringenum: ["active","paused","disconnected"]
healthобязательно- stringenum: ["pending","healthy","attention"]
configVersionобязательно- integerexclusiveMinimum: 0
createdAtобязательно- stringformat: "date-time"
updatedAtобязательно- stringformat: "date-time"
disconnectedAtобязательно- string | nullformat: "date-time"
JSON Schema
{ "type": "object", "properties": { "id": { "type": "string", "minLength": 1, "maxLength": 160 }, "definitionCode": { "type": "string", "minLength": 1, "maxLength": 80 }, "definitionVersion": { "type": "integer", "exclusiveMinimum": 0 }, "displayName": { "type": "string", "minLength": 1, "maxLength": 80 }, "status": { "type": "string", "enum": [ "active", "paused", "disconnected" ] }, "health": { "type": "string", "enum": [ "pending", "healthy", "attention" ] }, "configVersion": { "type": "integer", "exclusiveMinimum": 0 }, "createdAt": { "type": "string", "format": "date-time" }, "updatedAt": { "type": "string", "format": "date-time" }, "disconnectedAt": { "type": [ "string", "null" ], "format": "date-time" } }, "required": [ "id", "definitionCode", "definitionVersion", "displayName", "status", "health", "configVersion", "createdAt", "updatedAt", "disconnectedAt" ], "additionalProperties": false } replayedобязательно- boolean
JSON Schema
{
"type": "object",
"properties": {
"installation": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"definitionCode": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"definitionVersion": {
"type": "integer",
"exclusiveMinimum": 0
},
"displayName": {
"type": "string",
"minLength": 1,
"maxLength": 80
},
"status": {
"type": "string",
"enum": [
"active",
"paused",
"disconnected"
]
},
"health": {
"type": "string",
"enum": [
"pending",
"healthy",
"attention"
]
},
"configVersion": {
"type": "integer",
"exclusiveMinimum": 0
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"updatedAt": {
"type": "string",
"format": "date-time"
},
"disconnectedAt": {
"type": [
"string",
"null"
],
"format": "date-time"
}
},
"required": [
"id",
"definitionCode",
"definitionVersion",
"displayName",
"status",
"health",
"configVersion",
"createdAt",
"updatedAt",
"disconnectedAt"
],
"additionalProperties": false
},
"replayed": {
"type": "boolean"
}
},
"required": [
"installation",
"replayed"
],
"additionalProperties": false,
"$ref": "#/components/schemas/DeveloperIntegrationMutationResponse"
}400 Invalid installation discovery request
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}401 Invalid developer credential
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}402 Project wallet balance is insufficient
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}403 Integration discovery access unavailable
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}404 Integration installation or definition not found
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}409 Idempotency, quote, commercial or Integration state conflict
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}429 Developer API rate limit exceeded
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}503 Developer API rate limiter unavailable
application/problem+jsonobject
type- stringformat: "uri" · default: "about:blank"
titleобязательно- string
statusобязательно- integerminimum: 100 · maximum: 599
detail- string
instance- string
errors- object
JSON Schema
{
"type": "object",
"properties": {
"type": {
"type": "string",
"format": "uri",
"default": "about:blank"
},
"title": {
"type": "string"
},
"status": {
"type": "integer",
"minimum": 100,
"maximum": 599
},
"detail": {
"type": "string"
},
"instance": {
"type": "string"
},
"errors": {
"type": "object",
"additionalProperties": {}
}
},
"required": [
"title",
"status"
]
}