# sigex-qr-signing-client

> Клиент для работы с API сервиса SIGEX для подписания электронных документов ЭЦП через QR с помощью eGov mobile (aka QR подписание)

Latest version **0.3.3** (published 2026-04-10) · MIT license · 0 weekly downloads

## Install

```sh
npm install sigex-qr-signing-client
pnpm add sigex-qr-signing-client
yarn add sigex-qr-signing-client
bun add sigex-qr-signing-client
```

## Health

**Score 45/100 (D)** — status: active.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

## Facts

| | |
|---|---|
| Version | 0.3.3 |
| Published | 2026-04-10 |
| First published | 2023-01-11 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 2.1 MB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 10 |
| Author | sigex-kz |
| Maintainers | vsenko |
| Keywords | eGov mobile, QR подписание, QR |

## Links

- npm: https://www.npmjs.com/package/sigex-qr-signing-client
- Repository: https://github.com/sigex-kz/sigex-qr-signing-client
- Homepage: https://github.com/sigex-kz/sigex-qr-signing-client#readme
- Issues: https://github.com/sigex-kz/sigex-qr-signing-client/issues
- npm.io page: https://npm.io/package/sigex-qr-signing-client

## Recent versions

- 0.3.3 (latest) — 2026-04-10
- 0.3.2 — 2026-04-07
- 0.3.1 — 2024-06-05
- 0.3.0 — 2024-02-02
- 0.2.2 — 2023-04-06
- 0.2.1 — 2023-04-06
- 0.2.0 — 2023-04-06
- 0.1.1 — 2023-03-03
- 0.1.0 — 2023-01-12
- 0.0.2 — 2023-01-11

## README

# sigex-qr-signing-client

Клиент для работы с API сервиса SIGEX для подписания электронных документов ЭЦП через QR с помощью eGov mobile (aka **QR подписание**).

Разработан для веб интерфейса [https://sigex.kz](https://sigex.kz).

Документация по API: [https://sigex-kz.github.io/sigex-qr-signing-client/api/](https://sigex-kz.github.io/sigex-qr-signing-client/api/).

Пример: [https://sigex-kz.github.io/sigex-qr-signing-client/](https://sigex-kz.github.io/sigex-qr-signing-client/).

Пример подписания нескольких документов: [https://sigex-kz.github.io/sigex-qr-signing-client/multi.html](https://sigex-kz.github.io/sigex-qr-signing-client/multi.html).

Библиотека использует следующие вызовы API сервиса SIGEX:
- [`POST /api/egovQr - зарегистрировать новую процедуру подписания ЭЦП через QR`](https://sigex.kz/support/developers/#egov-qr)
- [`POST /api/egovQr/{qrId} - отправка данных на подписание`](https://sigex.kz/support/developers/#egov-qr-send-data)
- [`GET /api/egovQr/{qrId} - получение подписей`](https://sigex.kz/support/developers/#egov-qr-get-signatures)

Описание работы API подписания через QR, реализованного в SIGEX, приведено в статье https://sigex.kz/blog/2022-12-14-signing-via-qr/

**Внимание:** начиная с версии v0.3.0 метод `addDataToSign` стал асинхронным.

## Использование

Одним из следующих образов:
- скопировать себе `sigex-qr-signing-client.js` и загрузить его на странице;
- `npm install sigex-qr-signing-client`.

## Пример использования

```js
async qrSign() {
  try {
    // Данные на подпись закодированные в base64
    const dataToSignBase64 = 'MTEK';

    const qrSigner = new QRSigningClientCMS('Запрос на подписание');
    await qrSigner.addDataToSign(['Данные на подпись'], dataToSignBase64, [], false);
    const qrCode = await qrSigner.registerQRSinging();

    // Полученное изображение можно отобразить пользователю чтобы он считал его с помощью
    // приложения eGov mobile на своем мобильном телефоне. То есть участвуют два устройства:
    // - на первом устройстве (ПК или ноутбук) отображается QR код;
    // - на втором (мобильный телефон) пользователь открывает eGov mobile и сканирует QR код.
    const qrCodeDataString = `data:image/gif;base64,${qrCode}`;

    // Эти ссылки можно отобразить на мобильном устройстве в том случае, если предполагается
    // использовать только одно устройство (мобильный телефон), на котором установлен eGov mobile
    // или eGov Business (кросс подписание).
    // Когда пользователь кликнет по ссылке, откроется соответствующее приложение с запущенной
    // процедурой подписания.
    const eGovMobileLaunchLink = qrSigner.getEGovMobileLaunchLink();
    const eGovBusinessLaunchLink = qrSigner.getEGovBusinessLaunchLink();

    const signatures = await qrSigner.getSignatures();
    return signatures[0];
  } catch (err) {
    console.log(err);
    console.log(err.details);
    return;
  }
}
```

## Разработка

- `npm run lint` - проверка кода с помощью ESLint;
- `npm run ts-check` - проверка с помощью TypeScript;
- `npm run build-docs` - обновление документации из комментариев в коде;
- `npm run build` - все вышеперечисленное вместе, **рекомендуется выполнять перед коммитом**.

---
_Source: https://npm.io/package/sigex-qr-signing-client · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
