curl --request PATCH \
--url https://api.tungo.kz/v1/companies/{co}/automations/hooks/{id} \
--header 'Content-Type: application/json' \
--cookie tungo.session_token= \
--data '
{
"name": "Оплаты интернет-магазина",
"signature_secret": "<string>",
"signature_header": "x-signature",
"id_path": "data.payment_id",
"enabled": true
}
'import requests
url = "https://api.tungo.kz/v1/companies/{co}/automations/hooks/{id}"
payload = {
"name": "Оплаты интернет-магазина",
"signature_secret": "<string>",
"signature_header": "x-signature",
"id_path": "data.payment_id",
"enabled": True
}
headers = {
"cookie": "tungo.session_token=",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {cookie: 'tungo.session_token=', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Оплаты интернет-магазина',
signature_secret: '<string>',
signature_header: 'x-signature',
id_path: 'data.payment_id',
enabled: true
})
};
fetch('https://api.tungo.kz/v1/companies/{co}/automations/hooks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "hk_01jz8x3m4n5p6q7r8s9t0v1w2x",
"name": "Оплаты интернет-магазина",
"enabled": true,
"token_hint": "…x7Qk",
"signed": true,
"signature_header": "x-signature",
"id_path": "data.payment_id",
"scenarios_url": "/v1/companies/co_01h455vb4pex5vsknk084sn02q/automations/scenarios",
"created_at": "2026-10-05T09:30:00.000Z",
"updated_at": "2026-10-05T09:30:00.000Z"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}Изменить хук
Имя, вкл/выкл, секрет подписи, заголовок подписи, путь к id события. Секрет, путь к id события и включение хука, питающего сценарий с автоодобрением, меняет только тот, у кого есть proposals.approve (иначе 403 permission_error, code missing_permission). Включить хук, питающий сценарий с ИИ (action: agent или шаг agent), — только с chat.use (иначе 403, permission chat.use).
Доступ: automations.manage | company.manage.
Доступно по ключу API.
curl --request PATCH \
--url https://api.tungo.kz/v1/companies/{co}/automations/hooks/{id} \
--header 'Content-Type: application/json' \
--cookie tungo.session_token= \
--data '
{
"name": "Оплаты интернет-магазина",
"signature_secret": "<string>",
"signature_header": "x-signature",
"id_path": "data.payment_id",
"enabled": true
}
'import requests
url = "https://api.tungo.kz/v1/companies/{co}/automations/hooks/{id}"
payload = {
"name": "Оплаты интернет-магазина",
"signature_secret": "<string>",
"signature_header": "x-signature",
"id_path": "data.payment_id",
"enabled": True
}
headers = {
"cookie": "tungo.session_token=",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {cookie: 'tungo.session_token=', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'Оплаты интернет-магазина',
signature_secret: '<string>',
signature_header: 'x-signature',
id_path: 'data.payment_id',
enabled: true
})
};
fetch('https://api.tungo.kz/v1/companies/{co}/automations/hooks/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "hk_01jz8x3m4n5p6q7r8s9t0v1w2x",
"name": "Оплаты интернет-магазина",
"enabled": true,
"token_hint": "…x7Qk",
"signed": true,
"signature_header": "x-signature",
"id_path": "data.payment_id",
"scenarios_url": "/v1/companies/co_01h455vb4pex5vsknk084sn02q/automations/scenarios",
"created_at": "2026-10-05T09:30:00.000Z",
"updated_at": "2026-10-05T09:30:00.000Z"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}Авторизации
Сессия кабинета: cookie ставит вход через /v1/auth/* (Better Auth), браузер шлёт её сам — фронтенду кабинета ничего добавлять не нужно (fetch с credentials: 'include'). За HTTPS имя cookie — __Secure-tungo.session_token. Сессия кончилась — 401 authentication_error: отправить на вход.
Параметры пути
id компании, co_… — из GET /v1/companies
id хука (hk_…)
"hk_01jz8x3m4n5p6q7r8s9t0v1w2x"
Тело
Изменение хука: меняются только переданные поля.
Название хука для людей (1–200 знаков): откуда приходят события.
1 - 200"Оплаты интернет-магазина"
Секрет подписи (16–500 знаков), общий с отправителем. Задан — каждое событие обязано нести в заголовке signature_header HMAC-SHA256(секрет, сырое тело) в hex (можно с приставкой sha256=), иначе приём отвечает 401. Хранится зашифрованным и обратно не отдаётся — в ответах видно только signed. null или не передан — без подписи (при изменении null снимает подпись). По событиям хука без подписи автоодобрение ничего в 1С не пишет.
16 - 500Имя заголовка с подписью: латиница, цифры, дефис, до 64 знаков; приводится к нижнему регистру. Не передан при заведении — x-signature.
^[a-z0-9-]{1,64}$"x-signature"
Путь через точку к id события в JSON тела — номер платежа или чека у отправителя. Задан и поле есть — повтор с тем же id считается тем же событием, даже с новым Idempotency-Key. null или нет — id берётся из заголовка Idempotency-Key, затем X-Event-Id, иначе — хеш тела; вдобавок то же тело в окне automations.queue.hook_dedupe_minutes (по умолчанию сутки) считается повтором. Хук, питающий сценарий с автоодобрением, обязан иметь id_path: снять его нельзя (400), а сменить может только тот, у кого есть proposals.approve (иначе 403). В 1С само пишется только событие, номер которого взят из тела по id_path; нет id_path у хука или поля в теле (номер из заголовка) — предложения ждут человека.
^[A-Za-z0-9_.-]{1,200}$"data.payment_id"
false — выключить: события на адрес хука получают 404, как на неизвестный. Включить хук, питающий сценарий с автоодобрением, может только тот, у кого есть proposals.approve.
Ответ
Хук
Входящий хук: адрес, на который сторонний сервис (банк, эквайринг, CRM) шлёт события, запускающие сценарии.
id хука — для адресов …/automations/hooks/{id} и для trigger.hook_id сценария (hk_…)
"hk_01jz8x3m4n5p6q7r8s9t0v1w2x"
Название хука для людей
"Оплаты интернет-магазина"
false — хук выключен: события на его адрес получают 404, как на неизвестный
Последние 4 знака токена после многоточия — узнать, какой адрес настроен у отправителя. Сам токен не хранится: потерян — POST …/hooks/{id}/rotate
"…x7Qk"
Задан ли секрет подписи: true — события без верной подписи отвергаются (401). Сам секрет не показывается никогда. По событиям хука без подписи автоодобрение ничего в 1С не пишет
Заголовок, в котором отправитель присылает подпись (нижним регистром)
"x-signature"
Путь через точку к id события в JSON тела (номер платежа у отправителя) — по нему отсеиваются повторы. null — id из заголовков Idempotency-Key / X-Event-Id или хеш тела
"data.payment_id"
Путь API к сценариям компании: сценарии этого хука — те, у которых trigger.hook_id равен id хука
"/v1/companies/co_01h455vb4pex5vsknk084sn02q/automations/scenarios"
Когда заведён, ISO 8601 UTC
"2026-10-05T09:30:00.000Z"
Когда менялся последний раз, ISO 8601 UTC
"2026-10-05T09:30:00.000Z"