проверка чека = ФН + ФД + ФП

Чек как ключ.
Проверяем — начисляем.

fnfd принимает кассовый чек любым способом — QR, фото, API или виджет — сверяет его с ФНС, прогоняет через правила акции и антифрод и возвращает вердикт с баллами. Один контракт для бота, сайта и бренда.

4способа приёма
3состояния чека
12типов отчётов
<15ссредний вердикт
POST /api/receipts/qr → REVIEWED
# приём чека по 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 QRPOST /api/receipts/qr с фискальной строкой.
  • ФотоPOST /api/receipts (multipart, до 5 фото).
  • По URLPOST /api/receipts/url для уже загруженных фото.
fnfd-widget.js
// встроить виджет приёма чека
<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 }
честная игра

Антифрод встроен в каждый вердикт

Призоловы не пройдут: проверки идут до начисления, спорные — на ручную модерацию.

FRAUD-01

Дубликаты

Один чек — одно начисление. Дубль по фискальному ключу и по байтам фото.

FRAUD-02

Лимиты

На пользователя (день/неделя/промо/дата), на кассу (ИП ≥11 / ЮЛ ≤10 в день), задержка между чеками.

FRAUD-03

Даты и период

Чек из будущего, вне периода акции, просроченная загрузка — отклоняются.

FRAUD-04

ИНН-списки

White/blacklist магазинов, интернет-чеки и неоплаченные — по флагам акции.

FRAUD-05

Copycat

Тот же чек, заигранный в другой акции, помечается и отклоняется.

FRAUD-06

Проверятор

Спорные чеки — на модерацию: очередь с приоритетом, консенсус, reject-by-question.

живой dev-стенд

Загрузите чек прямо сейчас

На полигоне собраны все способы приёма — виджет, API по QR, фото и по URL — с живым статусом из ФНС-симулятора.

Открыть полигон загрузки →