hayk
@hayk

Есть ли единое API для доступа к данным чека онлайн касс?

С 01.07.2017 г. на вех чеках есть QR-код, по которому в специальном приложении ФНС можно проверить чек и скачать его. Если легальное API для доступа к данным чека для использования в своих приложениях/сервисах?
  • Вопрос задан
  • 10863 просмотра
Пригласить эксперта
Ответы на вопрос 8
  • @BorisKorobkov
    Web developer
    QR-код на чеке дублирует ту же самую информацию, что и человек может прочитать на чеке.

    Куда именно приложение ФНС отправляет данные для проверки, вы можете проверить самостоятельно, если установите их программу https://kkt-online.nalog.ru/ и воспользуетесь любым сниффером.

    Также можно проверить чек на
    https://kpkcheck.ru/System/ExpressCheck.aspx
    https://ofd.ru/checkinfo
    https://ofd-ya.ru/check
    https://consumer.1-ofd.ru/#/landing
    и пр.
    Ответ написан
  • @IvanG
    официальное приложение выполняет следующие запросы.
    для проверки чека на валидность:
    отправляет запрос
    адрес:
    https://proverkacheka.nalog.ru:9999/v1/ofds/*/inns/*/fss/8710000210547638/operations/1/tickets/29430?fiscalSign=1390549&date=2017-11-21T16:23:00&sum=102331

    заголовки:
    Device-Id: noneOrRealId
    Device-OS: Adnroid 5.1
    Version: 2
    ClientVersion: 1.4.4.1
    Host: proverkacheka.nalog.ru:9999
    Connection: Keep-Alive
    Accept-Encoding: gzip
    User-Agent: okhttp/3.0.1

    тело пустое.
    Если чек валиден - ответ пустой, код 204, иначе 406 и возможно другие.

    для получения тела чека уже нужна авторизация, зарегистрироваться ранее можно было через сайт, но теперь похоже только через приложение (или прямые HTTP запросы, их не изучал).
    Запрос на получение тела чека:
    адрес:
    https://proverkacheka.nalog.ru:9999/v1/inns/*/kkts/*/fss/8710000210547638/tickets/29430?fiscalSign=1390549&sendToEmail=no

    заголовки:
    Authorization: Basic bG9naW46cGFzc3dvcmQ=
    Device-Id: noneOrRealId
    Device-OS: Adnroid 5.1
    Version: 2
    ClientVersion: 1.4.4.1
    Host: proverkacheka.nalog.ru:9999
    Connection: Keep-Alive
    Accept-Encoding: gzip
    User-Agent: okhttp/3.0.1

    в ответ JSON
    Ответ написан
  • @sb_user
    Каждый ОФД имеет свой API. Т.е. если вы пишите софт под определенную кассу, то необходимую ссылку вы собрать сможете
    Например ссылка на чек такскома будет выглядить так:
    https://receipt.taxcom.ru/v01/show?fp=[fpd]&s=[sum...
    где fpd - фискальная подпись документа
    summ - итоговая сумма чека

    Для ofd.ru будет выглядить вот так:
    https://ofd.ru/rec/[inn]/[rn]/[fn]/[docNumb]/[fpd]
    inn - инн юр лица пробившего чек
    rn - рег. номер кассового аппарата
    fn - номер фискального накопителя
    docNumb - номер чека
    fpd - фискальная подпись

    Но согласен, ответ на вопрос интересен =) Если будет универсальный API единый для всех, то это конешно удобнее.
    Ответ написан
  • @mikecoon
    Решение на PHP

    В строчке
    curl_setopt($ch, CURLOPT_USERPWD, "8(800)555-35-35" . ":" . "554400");

    свои данные подставляй.

    $base = "https://proverkacheka.nalog.ru:9999";
    
    $derviceId = uniqid();
    $deviceOS = "Android 4.4.4";
    $protocol = "2";
    $clientVersion = "1.4.1.3";
    $userAgent = "okhttp/3.0.1";
    
    $fn = $_GET["fn"];
    $fd = $_GET["fd"];
    $fs = $_GET["fs"];
    
    $query = http_build_query([
        'fiscalSign' => $fs,
        'sendToEmail' => "no"
    ]);
    
    $ch = curl_init("$base/v1/inns/*/kkts/*/fss/$fn/tickets/$fd?".$query);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        "Device-Id: $derviceId",
        "Device-OS: $deviceOS",
        "Version: $protocol",
        "ClientVersion: $clientVersion",
        "ClientVersion: $clientVersion",
    ]);
    
    curl_setopt($ch, CURLOPT_USERPWD, "8(800)555-35-35" . ":" . "554400");
    
    $result = curl_exec($ch);
    $json = json_decode($result);
    
    var_dump($json);
    Ответ написан
  • Есть ли легальное API для доступа к данным чека для использования в своих приложениях/сервисах?

    ФНС не предоставляет такого API.
    Наши госорганы вообще не стремятся подобное делать (аналогично, например, с сервисом проверки акцизных марок - только через их приложуху (в том случае еще и только с зарегистрированного у них девайса :-) ) или их сайт).
    Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы