Чек как ключ.
Проверяем — начисляем.
fnfd принимает кассовый чек любым способом — QR, фото, API или виджет — сверяет его с ФНС, прогоняет через правила акции и антифрод и возвращает вердикт с баллами. Один контракт для бота, сайта и бренда.
# приём чека по QR-строке $ curl -X POST https://api.fnfd.ru/api/receipts/qr \ -H "api-key: pk_demo" -d '{"qrStr":"t=...&fn=8710...&fp=39362...","userUuid":"u-42","promoId":101}' → состояние: ARRIVED ⟶ INSPECTED ⟶ REVIEWED { "approved": true, "checkingStatus": 2, "retailer": { "name": "ИП Петрова Е.Н.", "inn": "771012345678" }, "rules": ["Кофе (любой бренд)"], "promoPoints": 100, "reviewers": ["auto"] }
От чека до начисления — за один проход
Каждый чек проходит детерминированный пайплайн. Состояние всегда видно участнику и бренду через callback.
Приём ARRIVED
QR / фото / API / виджет. Идемпотентно по пользователю, дубли — в антифрод.
Сверка с ФНС INSPECTED
Изолированный ФНС-шлюз на whitelisted-IP достаёт фискальные реквизиты и позиции. Кеш — навсегда.
Правила + антифрод match
Сопоставление товаров, цены, гео, лимиты по пользователю и кассе, copycat, чёрные списки ИНН.
Вердикт REVIEWED
Авто-решение или Проверятор (модерация консенсусом). Баллы, причина отказа, callback бренду.
Под любую чековую акцию
Правила задаются на уровне промо — без переката кода. Один движок матчинга и начисления.
Гарантированный приз
Каждый валидный чек = баллы. Множитель и points-rate настраиваются.
Моментальный выигрыш
Мгновенный вердикт по QR, выплата по факту одобрения.
Розыгрыш
Накопление чеков, лимиты на пользователя/кассу/день, период акции.
Кешбэк за чек
Доля от суммы товаров акции с потолком, выплата через шлюз.
Четыре способа принять чек — один ответ
Контракт совместим: бот, сайт и бренд используют один и тот же набор эндпоинтов и формат вердикта.
- Виджет —
<script src="https://widget.fnfd.ru/fnfd-widget.js">, вставляется на любой сайт. - API QR —
POST /api/receipts/qrс фискальной строкой. - Фото —
POST /api/receipts(multipart, до 5 фото). - По URL —
POST /api/receipts/urlдля уже загруженных фото.
// встроить виджет приёма чека <div id="fnfd"></div> <script src="https://widget.fnfd.ru/fnfd-widget.js"></script> <script> FnfdWidget.init({ el: "#fnfd", apiKey: "pk_site_demo", promoId: 101 }); </script> // статус чека — без авторизации GET /r/{uuid}.json → { state, approved, points }
Антифрод встроен в каждый вердикт
Призоловы не пройдут: проверки идут до начисления, спорные — на ручную модерацию.
Дубликаты
Один чек — одно начисление. Дубль по фискальному ключу и по байтам фото.
Лимиты
На пользователя (день/неделя/промо/дата), на кассу (ИП ≥11 / ЮЛ ≤10 в день), задержка между чеками.
Даты и период
Чек из будущего, вне периода акции, просроченная загрузка — отклоняются.
ИНН-списки
White/blacklist магазинов, интернет-чеки и неоплаченные — по флагам акции.
Copycat
Тот же чек, заигранный в другой акции, помечается и отклоняется.
Проверятор
Спорные чеки — на модерацию: очередь с приоритетом, консенсус, reject-by-question.
Загрузите чек прямо сейчас
На полигоне собраны все способы приёма — виджет, API по QR, фото и по URL — с живым статусом из ФНС-симулятора.
Открыть полигон загрузки →