curl --request GET \
--url https://api.tungo.kz/v1/api-key \
--header 'x-api-key: <api-key>'import requests
url = "https://api.tungo.kz/v1/api-key"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.tungo.kz/v1/api-key', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "key_01h455vb4pex5vsknk084sn02q",
"name": "Интеграция с CRM",
"prefix": "tg_ab12cd34ef56",
"workspace_id": "ws_01h455vb4pex5vsknk084sn02q",
"created_by": "<string>",
"company_ids": [
"<string>"
],
"all_companies": true,
"allowed_ips": [
"203.0.113.10",
"198.51.100.0/24"
],
"permissions": [
"company.read"
],
"status": "active",
"expires_at": "2026-10-05T09:30:00.000Z",
"monthly_cap_tiyn": 123,
"write_max_amount_per_document_tiyn": 123,
"write_max_amount_per_day_tiyn": 123,
"write_kinds": [
"<string>"
],
"created_at": "2026-10-05T09:30:00.000Z",
"last_used_at": "2026-10-05T09:30:00.000Z",
"last_used_ip": "203.0.113.10",
"revoked_at": "2026-10-05T09:30:00.000Z",
"disabled_at": "2026-10-05T09:30:00.000Z",
"previous_secret_valid_until": "2026-10-05T09:30:00.000Z",
"blocked_reason": "key_revoked",
"workspace": {
"id": "<string>",
"name": "ТОО «Пример»",
"kind": "personal"
},
"month": {
"month": "2026-11-01",
"spent_tiyn": 123,
"cap_tiyn": 123
},
"rate_limit": {
"limit_per_minute": 123,
"remaining": 123,
"reset_in_sec": 123
}
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"retry_after_seconds": 42,
"next_request_at": "2026-11-12T09:30:42.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",
"retry_after_seconds": 42,
"next_request_at": "2026-11-12T09:30:42.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",
"retry_after_seconds": 42,
"next_request_at": "2026-11-12T09:30:42.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}Ключ, по которому пришёл запрос (кто я)
Только по ключу API: его организация, компании, права, срок, месячный потолок и расход за текущий месяц, частота запросов. Публичные id компаний и организации — те, что принимают адреса API.
Доступно по ключу API.
curl --request GET \
--url https://api.tungo.kz/v1/api-key \
--header 'x-api-key: <api-key>'import requests
url = "https://api.tungo.kz/v1/api-key"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.tungo.kz/v1/api-key', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"id": "key_01h455vb4pex5vsknk084sn02q",
"name": "Интеграция с CRM",
"prefix": "tg_ab12cd34ef56",
"workspace_id": "ws_01h455vb4pex5vsknk084sn02q",
"created_by": "<string>",
"company_ids": [
"<string>"
],
"all_companies": true,
"allowed_ips": [
"203.0.113.10",
"198.51.100.0/24"
],
"permissions": [
"company.read"
],
"status": "active",
"expires_at": "2026-10-05T09:30:00.000Z",
"monthly_cap_tiyn": 123,
"write_max_amount_per_document_tiyn": 123,
"write_max_amount_per_day_tiyn": 123,
"write_kinds": [
"<string>"
],
"created_at": "2026-10-05T09:30:00.000Z",
"last_used_at": "2026-10-05T09:30:00.000Z",
"last_used_ip": "203.0.113.10",
"revoked_at": "2026-10-05T09:30:00.000Z",
"disabled_at": "2026-10-05T09:30:00.000Z",
"previous_secret_valid_until": "2026-10-05T09:30:00.000Z",
"blocked_reason": "key_revoked",
"workspace": {
"id": "<string>",
"name": "ТОО «Пример»",
"kind": "personal"
},
"month": {
"month": "2026-11-01",
"spent_tiyn": 123,
"cap_tiyn": 123
},
"rate_limit": {
"limit_per_minute": 123,
"remaining": 123,
"reset_in_sec": 123
}
}{
"type": "error",
"error": {
"type": "payment_required_error",
"message": "Баланс доп. использования закончился — пополнить его или включить автопополнение могут владелец и админ workspace.",
"code": "balance_exhausted",
"permission": "proposals.approve",
"resets_at": "2026-11-01T19:00:00.000Z",
"retry_after_seconds": 42,
"next_request_at": "2026-11-12T09:30:42.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",
"retry_after_seconds": 42,
"next_request_at": "2026-11-12T09:30:42.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",
"retry_after_seconds": 42,
"next_request_at": "2026-11-12T09:30:42.000Z",
"allowed_methods": [
"email_otp"
],
"role": "<string>",
"permissions": [
"<string>"
],
"fields": [
{
"path": "bin",
"code": "invalid_format",
"message": "БИН/ИИН — 12 цифр"
}
]
},
"request_id": "req_4f9c2a7e1b3d4c5a8e6f7a9b0c1d2e3f"
}Авторизации
Ответ
Ключ
Ключ, по которому пришёл запрос: права, организация, расход за месяц, частота.
Права ключа: company.read — читать данные компаний (есть всегда); chat.use — работать с ИИ-бухгалтером; proposals.create — готовить документы для 1С; proposals.approve — одобрять запись в 1С; automations.read — видеть автоматизации; automations.manage — менять и запускать автоматизации; webhooks.manage — вебхуки всей организации
company.read, chat.use, proposals.create, proposals.approve, automations.manage, automations.read, webhooks.manage Предел записи в 1С по ключу: потолок суммы одного документа, который ключ одобряет (approve, approve-batch), в тиынах (1 ₸ = 100 тиын). Документ дороже или без известной суммы ключ не запишет (403, error.code key_write_limit) — его запишет человек. null — без предела
Предел записи в 1С по ключу: какие виды документов ключ может одобрять (как kinds правила автоодобрения: sale, purchase, bank_receipt, bank_payment, counterparty, contract, inventory_writeoff, cash_order_in, cash_order_out, advance_report, revert). null — любые. Без всех трёх пределов ключ с proposals.approve пишет в 1С без ограничений — тогда в ответе предупреждение write_unlimited
Почему ключ сейчас не сработает — тот же код, что вернул бы отказ; null — всё хорошо. Вызов ИИ оценивается средней ценой, настоящая цена может быть выше. Ограничение по адресу (allowed_ips) здесь не проверяется: оно своё у каждого запроса. По самому ключу код входа (выключен, срок, отзыв) приходит ошибкой 401, а не этим полем.
key_revoked, key_expired, key_disabled, key_creator_lost_access, api_keys_disabled_by_policy, workspace_blocked, key_cap_reached, platform_balance_exhausted, platform_cap_reached, platform_disabled, null