Back to skills
extension
Category: Productivity & OfficeNo API key required

Kazakhstan tax assistant

Kazakhstan tax assistant — НК РК / ҚР Салық кодексі (актуальная редакция). Отвечает на вопросы о налогах на русском и казахском языках. Ищет статьи, объясняе...

personAuthor: k0zibekhubclawhub

kz-tax-code — Kazakhstan Tax Assistant

Источник истины

Все ответы строятся на тексте кодекса из data/. Никаких встроенных ставок — только то, что найдено в первоисточнике. Если статья не найдена — честно говорим об этом.

Что НЕ находится в НК РК

Следующие показатели устанавливаются отдельными законами и в тексте НК РК отсутствуют:

| Русский термин | Казахский термин | Закон | |----------------|------------------|-------| | МРП | АЕК (айлық есептік көрсеткіш) | Закон о республиканском бюджете | | МЗП | ЕАМ (еңбекақының ең төмен мөлшері) | Закон о республиканском бюджете | | ОПВ | МЖЖ (міндетті жинақтаушы зейнетақы жарналары) | Закон о пенсионном обеспечении | | ОПВР | МЖЖЖ (міндетті жұмыс беруші зейнетақы жарналары) | Закон о пенсионном обеспечении | | СО | ӘА (әлеуметтік аударымдар) | Закон об обязательном социальном страховании | | ВОСМС / ОСМС | МӘМС (міндетті әлеуметтік медициналық сақтандыру) | Закон об ОСМС |

Коды документов, URL и последние известные значения — в data/laws.json (обновлять ежегодно).

Значения меняются ежегодно — не подставлять из памяти, всегда читать из первоисточника.

Получить актуальные значения

  1. Прочитать data/laws.json — коды документов, URL и последние известные значения
  2. Скачать нужный закон (язык зависит от запроса пользователя):
# Русскоязычный запрос (МРП, МЗП)
# Запускать из корня workspace; --out пишется относительно CWD
node skills/kz-tax-code/scripts/fetch.js \
  --doc=Z2500000065 --lang=ru --out=skills/kz-tax-code/data/budget-current-ru.md --insecure

# Казахскоязычный запрос (АЕК, ЕАМ)
node skills/kz-tax-code/scripts/fetch.js \
  --doc=Z2500000065 --lang=kaz --out=skills/kz-tax-code/data/budget-current-kaz.md --insecure
  1. Найти значение через поиск:
# --file резолвится от CWD (корня workspace)
node skills/kz-tax-code/scripts/search.js \
  --file=skills/kz-tax-code/data/budget-current-ru.md --keyword="месячный расчётный показатель"

node skills/kz-tax-code/scripts/search.js \
  --file=skills/kz-tax-code/data/budget-current-kaz.md --keyword="АЕК мөлшері"

Если файл уже скачан ранее — использовать его напрямую, не скачивать повторно.

Если скачивание недоступно — сообщить пользователю, что значение нужно уточнить на egov.kz или adilet.zan.kz, и привести knownValues из laws.json как ориентир с явной пометкой "требует проверки".

Персонализированные расчёты

Если запрос касается конкретного человека ("сколько я плачу", "рассчитай мой налог", "мне начислили ИПН") — спросить возраст, если не указан:

«Уточните, пожалуйста, ваш возраст — это влияет на расчёт»

Почему возраст важен

⚠️ Ставки (ОПВ, ВОСМС и др.) и пенсионные возрасты меняются законодательно. Значения ниже — ориентировочные на момент написания. Актуальные ставки всегда брать из data/laws.jsonknownValues, возраст выхода на пенсию — из Закона о пенсионном обеспечении через fetch.js.

| Возраст | Особенности | |---------|-------------| | Мужчины до 63 лет / Женщины до 61.5 лет ⚠️ | ОПВ удерживается в стандартном порядке (ставка — в laws.json) | | Мужчины 63+ / Женщины 61.5+ (получатели пенсии) ⚠️ | ОПВ не удерживается (ст. 24 Закона о пенсионном обеспечении) | | Работники 1975 года рождения и старше | ОПВР не уплачивается (только для рождённых после 01.01.1975) | | Любой возраст | ВОСМС, ОСМС, СО — без возрастных исключений (ставки в laws.json) |

Уточнение: ОПВ платят все наёмные работники с трудовым договором, независимо от возраста, до достижения пенсионного возраста. Студенты без трудового договора ОПВ не платят — но не по возрасту, а потому что нет трудовых отношений.

Без знания возраста расчёт ОПВР может быть неверным (ОПВР только для рождённых после 1975 года).

Версии кодекса

Метаданные актуальной и устаревшей версии — в data/versions.json.

| Версия | Смысл | Когда использовать | |--------|-------|-------------------| | current (default) | Действующий НК РК | Всегда, если пользователь не уточняет период | | outdated | Предыдущая редакция | Только если явно спрашивают о прошлом периоде или «старом кодексе» |

Агент не называет год в команде — только --version=current или --version=outdated. Какой именно кодекс сейчас актуален — читать из versions.json и сообщать пользователю (versionName в ответе скрипта).

Определение языка

Язык определяется автоматически по содержимому запроса — явно указывать --lang не нужно.

| Запрос | Язык поиска | Логика | |--------|-------------|--------| | Содержит казахские буквы (ә, ғ, қ, ң, ө, ү, ұ, і, һ) | --lang=kaz | Авто-определение | | Только кириллица без казахских букв | --lang=ru | Авто-определение | | Явно указан --lang=ru\|kaz | По флагу | Приоритет над авто |

Казахские термины: ЖТС (ИПН), КТС (КПН), ҚҚС (НДС), ӘС (СН), АЕК (МРП), ЕАМ (МЗП), МЖЖ (ОПВ), МЖЖЖ (ОПВР), ӘА (СО), МӘМС (ВОСМС/ОСМС)

Workflow

1. Определи версию

  • По умолчанию: --version=current
  • Переключиться на --version=outdated только если пользователь явно говорит о прошлом периоде или «старом» кодексе

2. Выбери режим поиска (от точного к общему)

# Знаешь номер статьи → article (самый точный)
node skills/kz-tax-code/scripts/search.js --article=363
node skills/kz-tax-code/scripts/search.js --article=363 --version=outdated

# Keyword — язык определяется автоматически по тексту запроса
node skills/kz-tax-code/scripts/search.js --keyword="дивиденды нерезидент"
node skills/kz-tax-code/scripts/search.js --keyword="ҚҚС мөлшерлемесі"

# Topic — язык тоже авто
node skills/kz-tax-code/scripts/search.js --topic="НДС экспорт освобождение"
node skills/kz-tax-code/scripts/search.js --topic="жалақыдан ЖТС есептеу"

# Поиск по другому закону (АЕК/МРП, МЖЖ/ОПВ, МӘМС/ВОСМС и т.д.)
# --file резолвится от CWD (корня workspace)
node skills/kz-tax-code/scripts/search.js --file=skills/kz-tax-code/data/budget-current-ru.md --keyword="месячный расчётный"
node skills/kz-tax-code/scripts/search.js --file=skills/kz-tax-code/data/budget-current-kaz.md --keyword="АЕК мөлшері"

Приоритет: --article > --keyword > --topic

3. Прочитай результат и ответь

Из JSON-ответа использовать:

  • versionName — для указания версии кодекса в ответе
  • results[].article + results[].title — для цитирования статьи
  • results[].text — полный текст статьи (только в режимах article и title_match)
  • results[].context — подсвеченный фрагмент вокруг совпадения (только в keyword_exact, keyword_fallback, topic)
  • Правило: если есть text — читай его; если только context — достаточно контекста

Всегда указывать: какой кодекс (versionName), какая статья, какой пункт. Для расчётов: найти нужные статьи (ставки, вычеты, порядок исчисления) и применить формулу по тексту кодекса — не придумывать из головы.

Формат ответа

Всегда указывать versionName из ответа скрипта — не хардкодить год.

На русском:

Согласно статье 363 {{versionName}}, ставка ИПН для резидентов по доходам до 8 500 МРП — 10%, свыше — 15% с суммы превышения. (Статья 363, пункт 1)

На казахском:

ҚР Салық кодексінің 363-бабына сәйкес ({{versionName}}) резиденттер үшін 8 500 АЕК-ке дейінгі кірістер бойынша ЖТС мөлшерлемесі — 10%, одан жоғары — 15%. (363-бап, 1-тармақ)

Если в ответе есть externalHints — термин не в НК, объяснить пользователю и предложить получить данные через fetch.js.

Если статья не найдена:

Статья по данному запросу не найдена в {{versionName}}. Попробуйте уточнить номер статьи или ключевые слова.

Обновление кодекса

Когда выходит новый НК РК:

Рекомендуемый способ (безопасный):

  1. Открыть adilet.zan.kz в браузере, найти новый кодекс
  2. Сохранить страницу как HTML (ru и kaz версии)
  3. Запустить:
node skills/kz-tax-code/scripts/update.js \
  --doc=K2600000XXX --name="НК РК 2027" --effective=2027-01-01 \
  --html-ru=./nk-ru.html --html-kaz=./nk-kaz.html

Автоматическое скачивание (только в доверенной сети, требует --insecure):

node skills/kz-tax-code/scripts/update.js \
  --doc=K2600000XXX --name="НК РК 2027" --effective=2027-01-01 --insecure

⚠️ --insecure отключает проверку TLS-сертификата (adilet.zan.kz использует НУЦ РК CA, не входящий в trust store Node.js). Не использовать в ненадёжных сетях.

Скрипт:

  1. Парсит HTML → Markdown
  2. Переместит текущий currentoutdated
  3. Сохранит новый как current
  4. Обновит data/versions.json

Номер документа (--doc) берётся из URL страницы на adilet.zan.kz.