API. Проверка чека
Использование API для проверки банковского чека
Отправка чека
POST
/api/proofs
Headers
Content-Type
multipart/form-data (либо application/json)
Authorization
Bearer <token>
Body
attachments * для multipart/form-data используйте attachments[] для указания имени поля формы для каждого элемента массива
array[file|string]
Массив из файлов или ссылок на чеки одной транзакции. Массив удобно использовать для проверки одной выплаты осуществленной разными чеками. Форматы: pdf, png, jpg/jpeg, webp
Макс размер: 3МБ + Поддерживаются ссылки на Cash-In Т-Банка.
transaction_id *
string
Уникальный id транзакции
requisite *
string
Номер карты/счета/телефона
payment_method *
string
Метод оплаты: card sbp – присутствует проверка по названию банка-получателя account_number
bank_full_name (* при СБП, либо validation_scope)
string
Название банка, который должен быть в качестве банка-получателя (для sbp). Например: Альфа-Банк, Т-Банк (не Тинькофф), Сбербанк и тд.
sender_bank_full_name
string
Если вы хотите провалидировать банк отправителя, передайте это поле
fiat_amount (* если указан в validation_scope)
float
Сумма в чеке
ignore_exist
boolean
Игнорировать ошибку PROOF_EXISTS. Данная ошибка определяет существует ли документ с такой чексуммой, но другим ID транзакции.
callback_url
string
Если вы планируете работать через callbacks, то можете передавать URL для ответного POST-запроса. В Headers будет Authorization с
"Bearer ваш-токен". Сообщите данный токен администратору.
validation_scope
array
По умолчанию мы проводим только валидацию реквизитов получателя и банк получателя/отправителя, если указано (получателя – только СБП). Однако, для выплат может быть полезно валидировать сумму в чеке и статус операции.
Перечислите здесь всё, что хотите валидировать в чеке. - fiat_amount (сумма, требуется передавать также поле fiat_amount с суммой в основном теле запроса) - status (будет ошибка, если операция в процессе, либо отклонена)
transaction_timestamp
Integer (время в UNIX виде)
Для валидации чека по времени, передайте дату/время в UNIX виде, когда была создана транзакция. Мы проверим, что чек подходит по дате.
Response
В verdict находится итоговое решение нейросети по данному чеку. Если это пустой массив – то все проверки были пройдены.
Возможные значения type в элементах массива verdict:
PROOF_EXISTS – данный чек уже предоставлялся ранее по другой транзакции
INCORRECT – не является банковским чеком
WRONG_REQUISITES – неверные реквизиты для перевода
WRONG_BANK – неверный банк-получатель для перевода (для sbp)
WRONG_SENDER_BANK – неверный банк-отправитель
WRONG_STATUS – неуспешный перевод, либо в процессе
FAKE_PROOF – фейковый PDF-документ
WRONG_BYTES – несоответствие байтовой последовательности
UNKNOWN_FILE – неизвестный тип файла, либо данный тип не был включен в датасет (слишком минорный банк), либо является подделкой.
UNKNOWN_PRODUCER – продьюсер генератора не соответствует продьюсерам из белого списка банков.
WRONG_AMOUNT – неверная сумма
DATE_NOT_MATCH – неверная дата/время перевода
BANNED_PAYER – плательщик внесен в черный список, возможные пересечения по ФИО
{
"id": 5,
"available_requests_count": 140,
"balance": 9.86,
"transaction_id": "2",
"json_data": {
"type": "bank_receipt",
"date": "11.08.2024 23:42:04",
"sum": 100000,
"comission": 0,
"from_bank": "Сбербанк",
"from_user": "Данил Алексеевич К.",
"from_card": "2435",
"currency": "RUB",
"to_bank": "Сбербанк",
"to_user": "Файзиддин Мирзохамадович З.",
"to_requisite": "0627"
},
"attachment": {
"url": "http://<api-domain>/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsiZGF0YSI6MTEsInB1ciI6ImJsb2JfaWQifX0=--893477896ef0bc0632b31d638f1517c2f4df9353/4_5940438304401921794.pdf"
},
"verdict": [
{
"type": "WRONG_REQUISITES",
"expected": [
"4211"
],
"got": [
"0627"
]
},
{
"type": "FAKE_PROOF",
"expected": [],
"got": [
"WRONG_METADATA",
"MODIFIED",
"FONTS_NOT_MATCH",
"WRONG_LOGO_POSITION"
]
}
]
}
Last updated