├── LICENSE ├── README.md ├── get.sh ├── kkt.sh ├── netrc.sample └── signin.sh /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 eisaev 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # fns 2 | Unofficial script to retrieve the receipts from the service of the Federal Tax Service 3 | -------------------------------------------------------------------------------- /get.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | # Внимание! Данные для авторизации перенесены в отдельный файл. Переименуйте файл netrc.sample в netrc и укажите в нём реальные телефон и код, полученный по СМС. 5 | 6 | # Random device ID 7 | DEVID=`uuidgen | tr -d '-'` 8 | # DeviceID 9 | DEVOS="Adnroid 4.4.4" 10 | # Protocol version 11 | PROTO="2" 12 | # Client version 13 | CLIENT="1.4.1.3" 14 | # User agent 15 | UAGENT="okhttp/3.0.1" 16 | # Base URL 17 | BASE="https://proverkacheka.nalog.ru:9999" 18 | 19 | 20 | if [ ! -z "${1}" ] && [ ! -z "${2}" ] && [ ! -z "${3}" ] 21 | then 22 | #./get.sh 8710000100270243 18863 2145745075 23 | # Fiscal storage (Номер фискального накопителя - ФН) 24 | FN="${1}" 25 | # Fiscal document number (Номер фискального документа - ФД) 26 | FD="${2}" 27 | # Fiscal sign (Подпись фискального документа - ФП) 28 | FS="${3}" 29 | 30 | RESULT=` curl --netrc-file ./netrc -s -G -X GET -H "Device-Id: ${DEVID}" -H "Device-OS: ${DEVOS}" -H "Version: ${PROTO}" -H "ClientVersion: ${CLIENT}" -A "${UAGENT}" "${BASE}/v1/inns/*/kkts/*/fss/${FN}/tickets/${FD}" -d "fiscalSign=${FS}" -d "sendToEmail=no"` 31 | 32 | DT=`echo "${RESULT}" | jq -r ".document.receipt.dateTime"` 33 | echo "${RESULT}" | jq "." > "${DT}_${FS}.json" 34 | else 35 | RESULT=`curl --netrc-file ./netrc -s -G -X GET -H "Device-Id: ${DEVID}" -H "Device-OS: ${DEVOS}" -H "Version: ${PROTO}" -H "ClientVersion: ${CLIENT}" -A "${UAGENT}" "${BASE}/v1/extract" -d "sendToEmail=0" -d "fileType=json"` 36 | 37 | URL=`echo "${RESULT}" | jq -r ".url"` 38 | DT=`date -Iseconds` 39 | curl --netrc-file ./netrc -s -G -X GET -H "Device-Id: ${DEVID}" -H "Device-OS: ${DEVOS}" -H "Version: ${PROTO}" -H "ClientVersion: ${CLIENT}" -A "${UAGENT}" "${BASE}${URL}" | jq "." > "all_${DT}.json" 40 | fi -------------------------------------------------------------------------------- /kkt.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | if [ -z "${1}" ] 5 | then 6 | echo "Использование: ${0} {Заводской номер ККТ}" 7 | exit 8 | fi 9 | 10 | KKTTYPES=`curl -sS 'https://www.nalog.ru/Ajax.html' -H 'Origin: https://www.nalog.ru' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4' -H 'X-Compress: null' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: https://www.nalog.ru/css/check_kiz/checkKKT.html' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' -H 'DNT: 1' --compressed --data "type=LoadKKT&kkt_type=kkt" | jq "." | grep -Pe "\"(code|name)\":" | sed 'N;s/\n/ /' | awk -F\" '{print $4 ";" $8}' | sed 's/ /_/g'` 11 | 12 | for KKTTYPE in ${KKTTYPES} 13 | do 14 | TYPEID=`echo ${KKTTYPE} | awk -F\; '{print $1}'` 15 | TYPENAME=`echo ${KKTTYPE} | awk -F\; '{print $2}'` 16 | 17 | RESULT=`curl -sS 'https://www.nalog.ru/Ajax.html' -H 'Origin: https://www.nalog.ru' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4' -H 'X-Compress: null' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.91 Safari/537.36' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Accept: application/json, text/javascript, */*; q=0.01' -H 'Referer: https://www.nalog.ru/css/check_kiz/checkKKT.html' -H 'X-Requested-With: XMLHttpRequest' -H 'Connection: keep-alive' -H 'DNT: 1' --compressed --data "type=CheckKKT&kkt_type=kkt&code=${TYPEID}&number=${1}" | jq "." | grep "\"check_result\": \"Э"` 18 | if [ -n "${RESULT}" ] 19 | then 20 | echo ${TYPENAME} "- V" 21 | exit 22 | fi 23 | echo ${TYPENAME} "- X" 24 | done 25 | 26 | echo "Вам не повезло :(" 27 | -------------------------------------------------------------------------------- /netrc.sample: -------------------------------------------------------------------------------- 1 | machine proverkacheka.nalog.ru login +79876543210 password 123123 2 | -------------------------------------------------------------------------------- /signin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | # Random device ID 5 | DEVID=`uuidgen | tr -d '-'` 6 | # DeviceID 7 | DEVOS="Adnroid 4.4.4" 8 | # Protocol version 9 | PROTO="2" 10 | # Client version 11 | CLIENT="1.4.1.3" 12 | # User agent 13 | UAGENT="okhttp/3.0.1" 14 | # Base URL 15 | BASE="http://proverkacheka.nalog.ru:9999" 16 | 17 | 18 | if [ -z "${1}" ] || [ -z "${2}" ] || [ -z "${3}" ] 19 | then 20 | echo "Использование: ${0} {номер телефона} {e-mail} {имя}" 21 | exit 22 | fi 23 | 24 | 25 | REQUEST="{\"phone\":\"${1}\",\"email\":\"${2}\",\"name\":\"${3}\"}" 26 | RESULT=` curl --netrc-file ./netrc -s -H "Content-Type:application/json" -H "Device-Id: ${DEVID}" -H "Device-OS: ${DEVOS}" -H "Version: ${PROTO}" -H "ClientVersion: ${CLIENT}" -A "${UAGENT}" "${BASE}/v1/mobile/users/signup" -d "${REQUEST}"` 27 | --------------------------------------------------------------------------------