Коннектор к апи ФНС для проверки чеков от ОФД в ФНС
Проверяет данные чеков, полученных от оператора фискальных данных в Федерельной налоговой службе.
Установка и настройка
Получите master token в Федеральной налоговой службе.
Установите пакет
pip install fnsapi
Добавьте переменную окружения в своё виртуально окружение
FNS_API_MASTER_TOKEN=master_token_from_fns
Если базовый адрес апи ФНС отличается от https://openapi.nalog.ru:8090/, то укажите его через перменную окружения
FNS_API_BASE_URL=https://openapi.nalog.ru:8090/
Принцип работы
Чтобы запросить информацию о чеке в ФНС, нужно
- Получить токен сессии
- Сгенерерировать имя пользователя в вашей системе, от имени которого осуществляется запрос
- Вызвать функцию проверки чека или получения информации о чеке
Пример использования
Например, данные получены из qr-кода:
t=20201225T1016&s=1113.99&fn=9282440300829880&i=10556&fp=189504453&n=1
t — timestamp, нужно переформатировать в %Y-%m-%dT%H:%M:%S — 2020-12-25T10:16:00
s — sum, нужно умножить на 100 — 1111399
fn - fiscal_number — 9282440300829880
i - fiscal_document_id — 10556
fp - fiscal_sign — 189504453
n - operation_type — 1
from fnsapi.api import FNSApi
fns_api = FNSApi()
# получение сессионного токена
session_token = fns_api.get_session_token()
user_id = 'ofd_user' # любое текстовое значение на ваш вкус
# проверка существования чека
result = fns_api.check_ticket(
session_token,
user_id,
sum, # сумма чека в формате РРРКК, 12 рублей 23 копейки передавайте как 1223
timestamp, # дата и время в формате %Y-%m-%dT%H:%M:%S
fiscal_number, # код ККТ
operation_type, # тип операции
fiscal_document_id, # номер фискального документа
fiscal_sign # фискальный признак
)
# в результате придёт структура
status = result['status'] # success, если апи фНС отработало запрос, еrror, если нет.
code = result['code'] # код ошибки от апи ФНС.
message= result['message'] # сообщение от ФНС.
# получение информации о чеке
result = fns_api.get_ticket(
session_token,
user_id,
sum, # сумма чека в формате РРРКК, 12 рублей 23 копейки передавайте как 1223
timestamp, # дата и время в формате %Y-%m-%dT%H:%M:%S
fiscal_number, # код ККТ
operation_type, # тип операции
fiscal_document_id, # номер фискального документа
fiscal_sign # фискальный признак
)
# в результате придёт структура
status = result['status'] # success, если апи фНС отработало запрос, еrror, если нет.
code = result['code'] # код ошибки от апи ФНС.
message= result['message'] # сообщение от ФНС в случае ошибки или JSON-строка с информацией о чеке.
Release files for fnsapi 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fnsapi-0.0.3.tar.gz | 6.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fnsapi-0.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.2 kB
Release files / fnsapi-0.0.3.tar.gz
| Download URL | fnsapi-0.0.3.tar.gz |
|---|---|
| Size | 6.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
958d15357ec29a9f58a538ce022c9b015c671961fe5098d4d3d86c19f5a7a029
|
|
BLAKE2b-256 checksum How to use checksums |
6cfa8c2e1a48d1f23356e6fed497c8eeac4ba3477b66290091ed716793b3efb1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.6
|
Release files / fnsapi-0.0.3-py3-none-any.whl
| Download URL | fnsapi-0.0.3-py3-none-any.whl |
|---|---|
| Size | 8.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cde0bac98dcef7ffd9e01602b9e860c80a3dea394d4a267b9cf67de1366b0c2f
|
|
BLAKE2b-256 checksum How to use checksums |
738aa64b8cbab423f315286d8531911ac92c620d0847dcd7a2ee7df399d8e552
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.3.0 pkginfo/1.6.1 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.55.0 CPython/3.8.6
|