Описание програмного интерфейса(API) BankPdfBot
Для проверки чека, отправтье pdf файл с помощью HTTP POST запроса по этому адресу:
POST https://api.datagrab.ru/upload.php?parse={0/1}&key={api_key}
key={api_key} - полученный при регистрации ключ API
parse=1/0 - включить/выключить ИИ парсинг данных из чека (для уменьшения времени обработки запроса рекомендуется отключить)
Резервный сервер доступен по адресу:
https://api2.datagrab.ru
Пример использования для программы CURL:
curl -k -F "file=@file_for_check.pdf" 'https://api.datagrab.ru/upload.php?parse=0&key=xxxxxxxxxxxxx'
В случае ошибки при обработке запроса, возращаются ответы:
Ключ API указан не верно:
{"result":"forbidden"}
Истек оплаченный период:
{"result":"unpaid"}
При проверке произошла ошибка:
{"result":"error"}
В случае успешной проверки возращается ответ вида:
{
"result": "tbank",
"profile": "1",
"is_fake": false/true,
"is_mod": false/true,
"is_unrec": false/true,
"compliance_status": false/true,
"message": "✅ Чек Т-Банка",
"check_data": {
"sender_name": "Петр Петрович П",
"sender_acc": "4878",
"remitte_name": "Иван Иванович И.",
"remitte_acc": "2323",
"remitte_tel": "799999999",
"payment_time": 1763118352,
"status": "Успешно",
"doc_id": "1-111-180-409-952",
"sum":"1000"
}
"last_checks": 0,
"paid_until: "2099-12-31",
"checks_remaining": 1000
}
result:
1. Если чек прошел проверку поле содержит идентификатор банка согласно списка, который можно получить по этому эндпоинту:
https://api.datagrab.ru/get-banks/
2. Если чек не прошел проверку поле содержит следующие значения:
unrec - чек не распознан
fake - чек вероятно подделан
mod - чек был сформирован через виртуальный принтер, проверка не возможна
size - размер PDF файла не соответствует оригинальному
profile: профиль проверки (т.к. у каждого банка есть несколько различных видов чеков, то на каждый вид заведен свой профиль проверки '1'- основной либо единственный, '2'- второй тип чеков, 'sbp' - перевод по СБП, 'vypis' - выписка, 'obr' - чек в обработке)
is_fake: чек признан поддельным
is_mod: чек был пересохранен
is_unrec: чек не распознан
compliance_status: результат проверки целостности PDF файла, значение false сообщает об ошибках в структуре PDF
message: сообщение пользователю
check_data: данные чека
last_checks: кол-во ранее проведенных проверок чека
paid_until: дата окончания подписки
checks_remaining: остаток проверок
При проверке через почту, при поступлении письма от банка на ваш домен, при помощи обратного POST запроса (webhook) на ваш эндпоинт отправляется отчет о проверке, в этом случае к отчету добавляются следующие данные:
{
"user_name": "trader1",
"mail_check": true/false,
"mail_check_report": "pass",
"mail_check_message": "✅ Надежный отправитель, официальная почта банка: noreply@tinkoff.ru",
"dkim": true/false,
"spf": true/false,
"server_ip": "0.0.0.0",
"from": "noreply@tinkoff.ru",
"link_mail": "https://bankpdf.ru/mail/8a82e4c6f7cf5f5d00fd063eceabfe5c.eml",
"link_pdf": "https://tbot1.datagrab.ru/uploads/432983030.pdf"
}
user_name: юзер нейм из адреса, на который отправлено письмо
mail_check: статус проверки (true проверка прошла успешно)
mail_check_report: результат проверки
mail_check_message: сообщение о проверке
dkim: результат проверки DKIM
spf: результат проверки SPF
server_ip: ip адрес сервера отправителя
from: адрес отправителя
link_mail: ссылка на исходный код письма
link_pdf: ссылка на чек из письма
mail_check_report - mail_check_message:
'pass' - ✅ Надежный отправитель, официальная почта банка
'fail-dkim' - ❌ Адрес отправителя подделан (подпись dkim не соответствует содержимому письма)
'pass-spf' - ❗Не удалось проверить DKIM подпись ✅ Достоверность отправителя SPF подтверждена, официальная почта банка (Райфайзенбенк)
'pass-dkim' - ❗Не удалось проверить достоверность отправителя SPF ✅ DKIM подпись подтверждена, официальная почта банка (Почтабанк)
'fail-spf' - ❌ Адрес отправителя подделан (DKIM проверить не удалось, SPF: сервер не имел права отправлять писмо от имени этого домена)
'domen' - ❌ Чек пришел с личной почты отправителя