QR-код на чеке Kaspi — это не просто картинка. Это ключ к проверке подлинности транзакции. Внутри этого квадратного изображения закодирована ссылка на серверы Kaspi, которая позволяет убедиться, что платёж действительно существует и данные в чеке не были изменены.
Но многие предприниматели используют QR-код неправильно — или не используют вовсе. В этой статье разберём, как технически устроен QR-код на чеках Kaspi, какие данные он содержит, и почему его проверка — это единственный надёжный способ подтвердить оплату.
Что закодировано в QR-коде чека Kaspi
QR-код на фискальном чеке Kaspi содержит URL-адрес — ссылку на страницу верификации чека на официальном сервере Kaspi. Формат ссылки выглядит примерно так:
https://receipt.kaspi.kz/api/fiscal/receipt/{unique-transaction-id}
Ключевые моменты:
- Это не данные чека — в QR-коде не хранятся сумма, дата или имя продавца. Хранится только ссылка на сервер Kaspi.
- Данные получаются онлайн — при переходе по ссылке сервер Kaspi возвращает актуальные данные о транзакции в реальном времени.
- Уникальный идентификатор — каждая транзакция имеет свой уникальный ID, который невозможно угадать или перебрать.
Как происходит проверка QR-кода
Процесс проверки QR-кода состоит из нескольких технических этапов. Понимание этих этапов поможет вам оценить, почему автоматическая проверка надёжнее ручной.
- Декодирование QR-кода. Специализированное ПО (или камера телефона) считывает QR-код и извлекает из него URL-адрес. На этом этапе важно качество изображения — размытый или повреждённый QR-код может не считаться.
- HTTP-запрос к серверу Kaspi. По извлечённому URL отправляется запрос на серверы receipt.kaspi.kz. Сервер Kaspi ищет транзакцию в своей базе данных.
- Получение данных транзакции. Если транзакция существует, сервер возвращает полный набор данных: сумму, дату, имя продавца, ИИН/БИН, адрес и другие параметры.
- Сверка данных. Полученные от Kaspi данные сравниваются с тем, что заявляет покупатель: совпадает ли сумма, правильный ли продавец, актуальна ли дата.
Почему нельзя доверять QR-коду без проверки
Наличие QR-кода на чеке — это ещё не гарантия подлинности. Вот несколько сценариев, когда QR-код может ввести в заблуждение:
Поддельный QR-код
Мошенник может создать PDF-документ, визуально похожий на чек Kaspi, и вставить в него QR-код с произвольной ссылкой. Если ссылка ведёт не на receipt.kaspi.kz — чек поддельный. Но без сканирования QR-кода вы этого не узнаете.
QR-код от другой транзакции
Более изощрённый вариант: мошенник берёт QR-код от настоящей транзакции (например, своей оплаты за 500 тенге) и вставляет его в поддельный чек с суммой 50 000 тенге. QR-код будет вести на настоящую страницу Kaspi — но сумма не совпадёт. Поэтому критически важно не только сканировать QR-код, но и сверять все данные.
Повторное использование (дубликат)
Настоящий чек с настоящим QR-кодом — но отправленный нескольким продавцам одновременно. Каждый продавец проверяет QR-код, видит, что чек подлинный, и подтверждает заказ. Один чек — несколько «оплат». Это самая частая и самая опасная схема мошенничества, которую QR-проверка сама по себе не решает.
QR-код подтверждает только существование транзакции в базе Kaspi. Он не гарантирует, что оплата была адресована именно вам, что сумма соответствует заявленной и что этот чек не использовался ранее. Для полной верификации необходима проверка ИИН/БИН продавца и защита от дубликатов.
Технические проблемы при считывании QR-кодов
При работе с QR-кодами на чеках Kaspi встречаются несколько типичных проблем:
Низкое качество изображения
Скриншоты чеков, сделанные на старых телефонах или в плохом освещении, часто имеют слишком низкое разрешение для считывания QR-кода. PDF-формат сохраняет качество лучше, поэтому всегда рекомендуется запрашивать именно PDF, а не фото или скриншот.
Повреждённый QR-код
При сжатии изображения (WhatsApp, например, сильно сжимает фотографии) QR-код может потерять часть данных. Стандарт QR-кодов имеет встроенную коррекцию ошибок, но при значительном повреждении код становится нечитаемым.
Несколько QR-кодов на одном чеке
Некоторые чеки Kaspi содержат более одного QR-кода. Система ProverkaCheka автоматически обрабатывает этот случай, извлекая именно тот QR-код, который ведёт на receipt.kaspi.kz.
Ручное сканирование vs автоматическая обработка
| Параметр | Ручное сканирование | Автоматическая обработка |
|---|---|---|
| Скорость | 30-60 секунд | <1 секунда |
| Работает с PDF | Нужно открыть и навести камеру | Автоматически |
| Сверка суммы | Вручную, глазами | Автоматически |
| Сверка ИИН/БИН | Вручную, если вообще делается | Автоматически |
| Защита от дубликатов | Невозможно | Автоматически |
| Обработка плохого качества | Часто не читается | Продвинутые алгоритмы распознавания |
Как ProverkaCheka обрабатывает QR-коды
Система ProverkaCheka использует многоэтапный процесс обработки QR-кодов из PDF-чеков:
- Извлечение изображений из PDF. Используется библиотека pdfplumber для парсинга PDF и извлечения всех содержащихся изображений, включая QR-коды.
- Декодирование QR-кода. Библиотеки pyzbar и OpenCV обрабатывают извлечённые изображения и декодируют QR-коды, даже если они слегка повреждены или имеют низкое разрешение.
- Валидация URL. Система проверяет, что извлечённая ссылка ведёт именно на receipt.kaspi.kz, а не на фишинговый сайт или произвольный URL.
- Запрос к API Kaspi. По валидированной ссылке отправляется запрос к серверам Kaspi, и полученные данные сверяются с параметрами, указанными клиентом.
Итоги
QR-код на чеке Kaspi — это мощный инструмент верификации, но только при правильном использовании. Простое сканирование QR-кода и визуальная проверка страницы — недостаточно для полноценной защиты бизнеса.
Для надёжной проверки необходимо: считать QR-код, получить данные от Kaspi, сверить сумму и ИИН/БИН продавца, проверить на дубликаты. Автоматизация этого процесса через API или Telegram-бот — единственный способ выполнить все шаги быстро и безошибочно.