Перейти к содержимому

Начало работы ​

ИКПУ (MXIK) — национальный каталог товаров и услуг Узбекистана. Его 17-значные коды указываются в счетах-фактурах и других электронных учётных документах, а ищут их на tasnif.soliq.uz.

mxik обращается к тому же API, что и сайт, поэтому коды можно искать прямо из своего кода: по названию, штрихкоду, бренду или номеру сертификата.

Это не официальный SDK

Библиотека не связана с Налоговым комитетом Узбекистана и tasnif.soliq.uz. Она использует публичный API сайта, у которого нет документации и который может измениться без предупреждения. Если ответ вдруг стал выглядеть иначе, создайте issue.

Хостинг за пределами Узбекистана

API может не отвечать серверам за пределами Узбекистана. Перед деплоем за рубежом проверьте, что сервер достучится до tasnif.soliq.uz. Если нет, направьте запросы через прокси с помощью опции baseURL.

Установка ​

sh
npm i mxik
sh
pnpm add mxik
sh
yarn add mxik
sh
bun add mxik

В Deno импортируйте как npm:mxik.

Первый запрос ​

ts
import { createMxik } from 'mxik'

const mxik = createMxik()

const { items, total } = await mxik.search('Maccoffee')

items — первая страница результатов, по умолчанию 20 штук, total — сколько их всего. У каждого элемента есть код, название и место в иерархии каталога:

ts
items[0].mxikCode // '00901001001048023'
items[0].name // 'Молотый (порошкообразный) кофе: Maccoffee, в пакет 3в1 20г'
items[0].groupName // 'КОФЕ, ЧАЙ И СПЕЦИИ'

Если код уже известен, получите его полную карточку:

ts
const details = await mxik.get('00901001001048023')

details?.subPositionNameRu // 'Молотый (порошкообразный) кофе'
details?.subPositionNameUz // 'Майдаланган (кукунсимон) кофе'

Если кода не существует, get() вернёт null.

Где работает ​

  • Node.js 20 и новее, Bun и Deno.
  • Браузеры: API разрешает кросс-доменные запросы.
  • Edge-окружения и всё, где есть fetch. Можно также передать свой.

В пакете есть сборки ESM и CommonJS с декларациями типов:

ts
import { createMxik } from 'mxik'
// или
const { createMxik } = require('mxik')

Что дальше ​

  • Поиск: все способы поиска, страницы и языки.
  • Каталог: дерево кодов, единицы измерения и льготы.
  • Настройки клиента: таймауты, прокси, свой fetch.
  • Кеш: как не повторять одни и те же запросы.
  • Ошибки: что может пойти не так и как отличить один случай от другого.
  • CLI и MCP-сервер: поиск кодов из терминала или из ИИ-ассистента.

Неофициальный клиент, не связан с Налоговым комитетом Узбекистана и tasnif.soliq.uz.
Распространяется под лицензией MIT.