Программная проверка PDF-чеков Сбербанка, Т-Банка, Ozon Банка,
Альфа-Банка и ЮMoney на подлинность. Базовый адрес:
https://check-pdf.bliznec-go.ru/api/v1
Каждый запрос на проверку требует ключ. Персональный ключ выдаётся в личном кабинете после регистрации (100 бесплатных проверок). Передавайте его заголовком:
X-API-Key: checkpdf_u_xxxxxxxxxxxxxxxx
Альтернатива для пользователей кабинета — заголовок сессии
X-Session-Token: проверка спишет бесплатный лимит и попадёт в историю «Мои проверки».
/api/v1/verifyMultipart/form-data. Время ответа — 1–3 секунды (OCR-фолбэк может занимать дольше).
| Поле | Тип | Обяз. | Описание |
|---|---|---|---|
file | file (PDF) | да | PDF-чек из приложения банка, до 10 МБ. Скриншоты и фото отклоняются. |
bank | string | нет | auto (по умолчанию) | sber | tbank | ozon | alfa | yoomoney |
X-API-Key | header | да* | Персональный или интеграционный ключ. *Либо X-Session-Token кабинета. |
curl -X POST https://check-pdf.bliznec-go.ru/api/v1/verify \ -H "X-API-Key: checkpdf_u_xxxxxxxxxxxxxxxx" \ -F "file=@receipt.pdf" \ -F "bank=auto"
{
"verification_id": "34253185…",
"checked_at": "2026-09-01T19:00:00+00:00",
"requested_bank": "auto",
"bank": "sber",
"bank_name": "Сбербанк",
"method": "sbp",
"method_name": "Перевод по СБП",
"verdict": "genuine", // genuine | fake | inconclusive
"confidence": 1.0, // 0…1
"score": 1.0, // балл документа: 0 — подделка, 1 — эталон
"extracted": {
"amount": "1 000.00 ₽", "date": "2026-07-24",
"operation_id": "A6205…", "recipient": "Эдуард Владимирович К.",
"sender": "Роман Сергеевич Б.", "status": "Успешно"
},
"checks": [
{ "id": "glyph_coverage", "label": "Покрытие глифов шрифтов",
"status": "ok", "detail": "Все глифы встроенных шрифтов используются" }
],
"notice": null,
"remaining_checks": 99
}
| Поле | Описание |
|---|---|
verdict | genuine — подлинный; fake — поддельный/не принимается; inconclusive — неоднозначно, сверьте операцию в банке. |
method, method_name | Определённый тип операции (метод): например sbp / «Перевод по СБП», num_card / «Перевод по номеру карты», sbp_abroad / «СБП за рубеж». Для неопределённого банка — null. |
confidence | Уверенность сервиса в вердикте, 0…1. |
score | Балл документа: насколько файл совпадает с эталоном банка. |
extracted | Извлечённые поля: сумма, дата, ID операции, получатель, отправитель, статус. |
checks[] | Полный список выполненных проверок со статусами ok/warn/fail/info и пояснениями. |
notice | Человеку читаемое пояснение (например, «файл — скриншот»). |
remaining_checks | Остаток лимита (только для проверок от имени пользователя). |
/api/v1/banksСписок поддерживаемых банков с методами (типами операций) — используйте его, чтобы всегда работать с актуальным списком:
[
{ "id": "sber", "name": "Сбербанк", "op_types": [
{ "id": "sbp", "name": "Перевод по СБП" },
{ "id": "num_card", "name": "Перевод по номеру карты" } ] },
{ "id": "tbank", "name": "Т-Банк", "op_types": [ … ] },
{ "id": "ozon", "name": "Ozon Банк", "op_types": [ … ] },
{ "id": "alfa", "name": "Альфа-Банк", "op_types": [ "sbp_ru", "sbp_abroad", "pay" ] },
{ "id": "yoomoney", "name": "ЮMoney", "op_types": [ … ] }
]/api/v1/configПубличная конфигурация: максимальный размер файла и тот же список банков с методами.
/api/v1/healthСтатус сервиса: {"status":"ok","service":"check-pdf","version":"1.4.0"}.
Методы кабинета требуют заголовок сессии X-Session-Token (выдаётся при
POST /api/auth/login). Файлы можно получать и параметром
?token=… — удобно для прямых ссылок на скачивание.
| Метод | Путь | Описание |
|---|---|---|
| POST | /api/auth/register | Регистрация по email: 100 бесплатных проверок, письмо с кодом подтверждения. |
| POST | /api/auth/login | Вход; после неудачи — капча-подтверждение (challengeId + nonce из /api/auth/captcha). При включённой 2FA вернёт needs_2fa + билет, код подтверждается через /api/auth/login/2fa. |
| GET | /api/account/info | Профиль: email, роль, API-ключ, суточные лимиты и остатки (проверки и генерации). |
| GET | /api/account/checks | История проверок (пагинация page/per_page): банк, метод, вердикт, уверенность. |
| GET | /api/account/checks/{id}/file | Скачать PDF загруженного чека (14 дней хранения). |
| POST | /api/account/password | Смена пароля (old_password, new_password; с 2FA — ещё и код). |
| GET | /api/account/fakegen/types | Типы фейк-чеков тест-лаба с методом генерации и остатком суточного лимита. |
| POST | /api/account/fakegen/create | Собрать тестовую подделку: bank_type (например sber_sbp, sber_num_card, tbank_sbp, yoomoney_sbp), amount, recipient, phone, card. Результат сразу прогоняется через детектор. |
| GET | /api/account/fakegen/history | История созданных тестовых подделок с вердиктом самопроверки. |
| GET | /api/account/fakegen/{id}/preview | PNG-превью первой страницы фейк-чека. |
| GET | /api/account/support/messages | Чат с поддержкой (after_id — получить новые). |
| POST | /api/account/support/send | Написать в поддержку (text). |
| Код | Причина |
|---|---|
| 400 | Файл не PDF, неизвестный банк, неверная капча, пустой текст сообщения. |
| 401 | Нет или неверный ключ/сессия. |
| 403 | Аккаунт заблокирован, почта не подтверждена или тест-лаб отключён администратором. |
| 413 | Файл больше 10 МБ. |
| 422 | Не передано обязательное поле формы. |
| 429 | Исчерпан суточный лимит проверок. |
Лимиты (сутки): файл до 10 МБ · 100 проверок в день · 100 генераций фейк-чеков в день (тест-лаб, настраивается) · хранение чеков 14 дней. Лимиты проверок и генераций суточные — обнуляются сами в полночь UTC.
import requests r = requests.post( "https://check-pdf.bliznec-go.ru/api/v1/verify", headers={"X-API-Key": "checkpdf_u_xxxxxxxxxxxxxxxx"}, files={"file": open("receipt.pdf", "rb")}, data={"bank": "auto"}, ) verdict = r.json()["verdict"] print("Вердикт:", verdict)
const form = new FormData(); form.append("file", fileInput.files[0]); form.append("bank", "auto"); const resp = await fetch("/api/v1/verify", { method: "POST", headers: { "X-API-Key": API_KEY }, body: form, }); const { verdict, confidence } = await resp.json();
Нужен доступ для интеграций или увеличенный лимит — напишите в поддержку из кабинета.