Python SDK for KOMTET Kassa
Project description
komtet-kassa-python-sdk
Библиотека для интеграции вашего сайта с с облачным сервисом распределенной печати чеков КОМТЕТ Касса
Установка
С помощью pip:
# pip install komtet_kassa_sdk
Вручную:
$ git clone https://github.com/Komtet/komtet-kassa-python-sdk
$ cd komtet-kassa-python-sdk
# python setup.py install
Использование v2
from requests.exceptions import HTTPError
from komtet_kassa_sdk.v2 import (
Check, CorrectionCheck, Client, Intent, TaxSystem, VatRate, CorrectionType, PaymentMethod,
Agent, AgentType, PaymentType, PaymentObject, MarkTypes,
)
shop_id = 'идентификатор магазина'
secret_key = 'секретный ключ'
client = Client(shop_id, secret_key)
oid = 'номер операции в вашем магазине'
intent = Intent.SELL # Направление платежа
# Используйте Intent.RETURN для оформления возврата
check = Check(oid, intent)
email = 'client@client.ru' # E-Mail пользователя для отправки электронного чека
phone = '+79992400041' # Телефон пользователя
name = 'Иванов Иван' # Имя пользователя
inn = '5834041042' # Инн пользователя
check.set_client(email=email, phone=phone, name=name, inn=inn)
payment_address = 'www.shop.com' # Платёжный адрес организации
# Система налогооблажения
tax_system = TaxSystem.COMMON # ОСН
# tax_system = TaxSystem.SIMPLIFIED_IN # УСН доход
# tax_system = TaxSystem.SIMPLIFIED_IN_OUT # УСН доход - расход
# tax_system = TaxSystem.UTOII # ЕНВД
# tax_system = TaxSystem.UST # ЕСН
# tax_system = TaxSystem.PATENT # Патент
check.set_company(payment_address=payment_address, tax_system=tax_system)
position_name = 'Наименование позиции'
position_price = 100 # Цена позиции
# Единицы измерений
measure = MeasureTypes.PIECE
# measure = MeasureTypes.PIECE
# measure = MeasureTypes.GRAMM
# measure = MeasureTypes.KILOGRAMM
# measure = MeasureTypes.TON
# measure = MeasureTypes.CENTIMETER
# measure = MeasureTypes.DECIMETER
# measure = MeasureTypes.METER
# measure = MeasureTypes.SQUARE_CENTIMETER
# measure = MeasureTypes.SQUARE_DECIMETER
# measure = MeasureTypes.SQUARE_METER
# measure = MeasureTypes.MILLILITER
# measure = MeasureTypes.LITER
# measure = MeasureTypes.CUBIC_METER
# measure = MeasureTypes.KILOWATT_HOUR
# measure = MeasureTypes.GIGA_CALORIE
# measure = MeasureTypes.DAY
# measure = MeasureTypes.HOUR
# measure = MeasureTypes.MINUTE
# measure = MeasureTypes.SECOND
# measure = MeasureTypes.KILOBYTE
# measure = MeasureTypes.MEGABYTE
# measure = MeasureTypes.GIGABYTE
# measure = MeasureTypes.TERABYTE
# measure = MeasureTypes.OTHER_MEASURMENTS
# Налоговая ставка
vat_rate = VatRate.RATE_NO # Без НДС
# vat_rate = VatRate.RATE_0 # НДС 0%
# vat_rate = VatRate.RATE_5 # НДС 5%
# vat_rate = VatRate.RATE_7 # НДС 7%
# vat_rate = VatRate.RATE_10 # НДС 10%
# vat_rate = VatRate.RATE_20 # НДС 20%
# vat_rate = VatRate.RATE_105 # НДС 5/105
# vat_rate = VatRate.RATE_107 # НДС 7/107
# vat_rate = VatRate.RATE_110 # НДС 10/110
# vat_rate = VatRate.RATE_120 # НДС 20/120
#Способ расчёта
payment_method = PaymentMethod.PRE_PAYMENT_FULL
# payment_method = PaymentMethod.PRE_PAYMENT_PART
# payment_method = PaymentMethod.FULL_PAYMENT
# payment_method = PaymentMethod.ADVANCE
# payment_method = PaymentMethod.CREDIT_PART
# payment_method = PaymentMethod.CREDIT_PAY
# payment_method = PaymentMethod.CREDIT
# Признак рассчета
payment_object = PaymentObject.PRODUCT
# payment_object = PaymentObject.PRODUCT_PRACTICAL
# payment_object = PaymentObject.WORK
# payment_object = PaymentObject.SERVICE
# payment_object = PaymentObject.GAMBLING_BET
# payment_object = PaymentObject.GAMBLING_WIN
# payment_object = PaymentObject.LOTTERY_BET
# payment_object = PaymentObject.LOTTERY_WIN
# payment_object = PaymentObject.RID
# payment_object = PaymentObject.PAYMENT
# payment_object = PaymentObject.COMMISSION
# payment_object = PaymentObject.COMPOSITE
# payment_object = PaymentObject.PAY
# payment_object = PaymentObject.OTHER
# payment_object = PaymentObject.PROPERTY_RIGHT
# payment_object = PaymentObject.NON_OPERATING
# payment_object = PaymentObject.INSURANCE
# payment_object = PaymentObject.SALES_TAX
# payment_object = PaymentObject.RESORT_FEE
# payment_object = PaymentObject.DEPOSIT
# payment_object = PaymentObject.CONSUMPTION
# payment_object = PaymentObject.SOLE_PROPRIETOR_CPI_CONTRIBUTINS
# payment_object = PaymentObject.CPI_CONTRIBUTINS
# payment_object = PaymentObject.SOLE_PROPRIETOR_CMI_CONTRIBUTINS
# payment_object = PaymentObject.CMI_CONTRIBUTINS
# payment_object = PaymentObject.CSI_CONTRIBUTINS
# payment_object = PaymentObject.CASINO_PAYMENT
# payment_object = PaymentObject.PAYMENT_OF_THE_MONEY
# payment_object = PaymentObject.ATHM
# payment_object = PaymentObject.ATM
# payment_object = PaymentObject.THM
# payment_object = PaymentObject.TM
# Часовая зона
timezone = TimeZone.TIME_ZONE_1 # UTC+2
# timezone = TimeZone.TIME_ZONE_2 # UTC+3
# timezone = TimeZone.TIME_ZONE_3 # UTC+4
# timezone = TimeZone.TIME_ZONE_4 # UTC+5
# timezone = TimeZone.TIME_ZONE_5 # UTC+6
# timezone = TimeZone.TIME_ZONE_6 # UTC+7
# timezone = TimeZone.TIME_ZONE_7 # UTC+8
# timezone = TimeZone.TIME_ZONE_8 # UTC+9
# timezone = TimeZone.TIME_ZONE_9 # UTC+10
# timezone = TimeZone.TIME_ZONE_10 # UTC+11
# timezone = TimeZone.TIME_ZONE_11 # UTC+12
# Планируемый статус товара
planned_status=PlannedStatus.PLANNED_STATUS_1
# planned_status=PlannedStatus.PLANNED_STATUS_2
# planned_status=PlannedStatus.PLANNED_STATUS_3
# planned_status=PlannedStatus.PLANNED_STATUS_4
# planned_status=PlannedStatus.PLANNED_STATUS_5
# planned_status=PlannedStatus.PLANNED_STATUS_6
# Создание позиции
position = Position(id=1, # Идентификатор позиции в магазине
name='Наименование позиции',
price=10, # Цена за единицу
quantity=1, # Количество единиц
total=10, # Общая стоимость позиции
excise=10, # Акциз
measure=measure, # Единица измерения
user_data='Дополнительный реквизит предмета расчета',
payment_method=payment_method, # Метод расчёта
vat=vat_rate, # Тип налога
payment_object=payment_object # Объект расчёта
)
# Типы маркировок
mark_type = MarkTypes.EAN13
# mark_type = MarkTypes.UNKNOWN
# mark_type = MarkTypes.EAN8
# mark_type = MarkTypes.ITF14
# mark_type = MarkTypes.GS10
# mark_type = MarkTypes.GS1M
# mark_type = MarkTypes.GS10
# mark_type = MarkTypes.SHORT
# mark_type = MarkTypes.FUR
# mark_type = MarkTypes.EGAIS20
# mark_type = MarkTypes.EGAIS30
# Добавление кода маркировки в позицию
position.set_mark_code(type=mark_type, code='1234567890123')
# Установка дробности маркированного товара
position.set_mark_quantity(numerator=1, denominator=2)
# Если нужна информация о агенте
# Создание агента
agent_info = Agent(agent_type=AgentType.AGENT, phone='+79998887766',
name='Названиепоставщика', inn='287381373424')
# Если нужно установить платёжного агента
agent_info.set_paying_agent(operation='Операция1', phones=['+79998887766'])
# Если нужно установить оператора приёма платежей
agent_info.set_receive_payments_operator(phones=['+79998887766'])
# Если нужно, установка оператора перевода средств
agent_info.set_money_transfer_operator(phones=['+79998887766'], name='Операторперевода',
address='г. Москва, ул. Складочная д.3',
inn='8634330204')
# Добавление агента в позицию
position.set_agent(agent_info)
# Если нужно установить планируемый статус товара
position.set_planned_status(planned_status=PlannedStatus.PLANNED_STATUS_1)
# Добавление позиции
check.add_position(position)
# Добавление суммы расчёта
check.add_payment(300)
# Если нужно распечатать чек (по умолчанию False)
check.set_print(True)
# Если нужно задать данные по кассиру, по умолчанию возьмутся с ФН
check.set_cashier('Иваров И.П.', '1234567890123')
# Если нужно установить дополнительные параметры чека
check.set_additional_check_props('445334544')
# Если нужно установить признак расчета в Интернет
check.check.set_internet(True)
# Если нужно установить сведения об оплате в безналичном порядке
check.add_cashless_payment(sum=2000, method=2, id='transaction_1',
additional_info='Дополнительные сведения')
# Если нужно установить часовую зону
check.set_timezone(timezone=TimeZone.TIME_ZONE_2)
# Если нужно получитиь отчёт об успешной фискализации
check.set_callback_url('http://shop.pro/fiscal_check/callback')
# Отправка запроса
try:
task = client.create_task(check, 'идентификатор очереди')
except HTTPError as exc:
print(exc.response.text)
else:
print(task)
# Task(id=1, external_id=2, print_queue_id=3, state='new')
# id - идентификатор задачи
# external_id - идентификатор операции в магазине
# print_queue_id - идентификатор очереди
# state - состояние задачи
# Создание чека коррекции
intent = Intent.SELL_CORRECTION # Коррекция прихода
# intent = Intent.BUY_CORRECTION # Коррекция расхода
# intent = Intent.SELL_RETURN_CORRECTION # Коррекция возврата прихода
# intent = Intent.BUY_RETURN_CORRECTION # Коррекция возврата расхода
check = CorrectionCheck(oid, intent)
# Установка данных компании
check.set_company(payment_address=payment_address, tax_system=tax_system)
payment_type = PaymentType.CARD # Тип оплаты, корректирующей суммы
# payment_method = PaymentType.CARD # электронные
# payment_method = PaymentType.CASH # наличные
# Установка суммы коррекции
check.add_payment(12, payment_type)
correction_type = CorrectionType.SELF # Тип коррекции
# correction_type = CorrectionType.SELF # Самостоятельно
# correction_type = CorrectionType.FORCED # По предписанию
# Установка данных коррекции
check.set_correction_info(correction_type,
'31.03.2022', # Дата документа коррекции в формате 'dd.mm.yyyy'
'K11', # Номер документа коррекции
)
# Создаём позицию коррекции
position = Position(name='Товар', price=10, quantity=5, total=50,
measure=measure, payment_method=payment_method,
payment_object=payment_object, vat=vat_rate)
# Добавляем позицию коррекции
check.add_position(position)
# Указание уполномоченного лица
check.set_authorised_person(
name='Иванов И.И',
inn='123456789012'
)
# Если нужно получитиь отчёт об успешной фискализации
check.set_callback_url('http://shop.pro/fiscal_check/callback')
# Отправка запроса
try:
task = client.create_task(check, 'идентификатор очереди')
except HTTPError as exc:
print(exc.response.text)
else:
print(task)
# Task(id=1, external_id=2, print_queue_id=3, state='new')
# id - идентификатор задачи
# external_id - идентификатор операции в магазине
# print_queue_id - идентификатор очереди
# state - состояние задачи
# Получение информации о поставленной на фискализацию задаче:
try:
task_info = client.get_task_info('идентификатор задачи')
except HTTPError as exc:
print(exc.response.text)
else:
print(task_info)
# TaskInfo(id=234, external_id='4321', state='done', error_description=None,
# fiscal_data={'i': '111',
# 'fn': '2222222222222222',
# 't': '3333333333333',
# 'n': 4,
# 'fp': '555555555',
# 's': '6666.77'})
# id - идентификатор задачи
# external_id - идентификатор операции в магазине
# state - состояние задачи
# error_description - описание возникшей ошибки, когда state=='error'
# fiscal_data - фискальные данные
# Чтобы проверить, является ли очередь активной, выполните:
client.is_queue_active('идентификатор очереди')
# Вы можете указать идентификатор очереди по умолчанию с помощью:
client.set_default_queue('идентификатор очереди по умолчанию')
# В этом случае можно не указывать идентификатор очереди всякий раз,
# когда нужно распечатать чек или проверить состояние очереди:
assert client.is_queue_active() is True
try:
task = client.create_task(check)
except HTTPError as exc:
print(exc.response.text)
else:
print(task)
Использование v1
from requests.exceptions import HTTPError
from komtet_kassa_sdk.v1 import (
Check, CorrectionCheck, Client, Intent, TaxSystem, VatRate, CorrectionType, PaymentMethod,
Agent, AgentType, CalculationSubject, CalculationMethod
)
shop_id = 'идентификатор магазина'
secret_key = 'секретный ключ'
client = Client(shop_id, secret_key)
oid = 'номер операции в вашем магазине'
email = 'E-Mail пользователя для отправки электронного чека'
intent = Intent.SELL # Направление платежа
# Используйте Intent.RETURN для оформления возврата
# Система налогооблажения
tax_system = TaxSystem.COMMON # ОСН
# tax_system = TaxSystem.SIMPLIFIED_IN # УСН доход
# tax_system = TaxSystem.SIMPLIFIED_IN_OUT # УСН доход - расход
# tax_system = TaxSystem.UTOII # ЕНВД
# tax_system = TaxSystem.UST # ЕСН
# tax_system = TaxSystem.PATENT # Патент
check = Check(oid, email, intent, tax_system)
position_name = 'Наименование позиции'
position_price = 100 # Цена позиции
check.add_position(position_name, position_price)
# Налоговая ставка
vat_rate = VatRate.RATE_20 # НДС 20%
# vat_rate = VatRate.RATE_NO # Без НДС
# vat_rate = VatRate.RATE_0 # НДС 0%
# vat_rate = VatRate.RATE_5 # НДС 5%
# vat_rate = VatRate.RATE_7 # НДС 7%
# vat_rate = VatRate.RATE_10 # НДС 10%
# vat_rate = VatRate.RATE_105 # НДС 5/105
# vat_rate = VatRate.RATE_107 # НДС 7/107
# vat_rate = VatRate.RATE_110 # НДС 10/110
# vat_rate = VatRate.RATE_120 # НДС 20/120
# Можно указать просто число:
# vat_rate = 20
# или строку:
# vat_rate = '10'
# или даже так:
# vat_rate = '20%'
# а ещё вот так:
# vat_rate = 0.20
# Добавление позиции
check.add_position(
'Наименование позиции',
oid=123, # Идентификатор позиции в магазине
price=100, # Цена за единицу
quantity=2, # Количество единиц (по умолчанию 1)
total=200, # Общая стоимость позиции (по умолчанию price * quantity)
vat=vat_rate # По умолчанию Без НДС (VatRate.RATE_NO),
calculation_method=CalculationMethod.FULL_PAYMENT, # По умолчанию FULL_PAYMENT
calculation_subject=CalculationSubject.PRODUCT, # По умолчанию PRODUCT
# Необязательный атрибут, указывается только при продаже комиссионером собственных и
# комиссионных товаров
agent = Agent(AgentType.COMMISSIONAIRE, '+77777777777', 'ООО "Лютик"', '12345678901')
)
# Добавление суммы расчёта
check.add_payment(300)
# Если нужно распечатать чек (по умолчанию False)
check.set_print(True)
# Если нужно задать данные по кассиру, по умолчанию возьмутся с ФН
check.set_cashier('Иваров И.П.', '1234567890123')
# Если нужно нужно передать данные клиента для фискализации
check.set_client('Пупкин П.П.', '123412341234')
# Если нужно установить признак расчета в Интернет
check.check.set_internet(True)
# Если нужно установить сведения об оплате в безналичном порядке
check.add_cashless_payment(sum=2000, method=2, id='transaction_1',
additional_info='Дополнительные сведения')
# Отправка запроса
try:
task = client.create_task(check, 'идентификатор очереди')
except HTTPError as exc:
print(exc.response.text)
else:
print(task)
# Task(id=1, external_id=2, print_queue_id=3, state='new')
# id - идентификатор задачи
# external_id - идентификатор операции в магазине
# print_queue_id - идентификатор очереди
# state - состояние задачи
# Создание чека коррекции
intent = Intent.SELL_CORRECTION # Коррекция прихода
# intent = Intent.BUY_CORRECTION # Коррекция расхода
# intent = Intent.SELL_RETURN_CORRECTION # Коррекция возврата прихода
# intent = Intent.BUY_RETURN_CORRECTION # Коррекция возврата расхода
check = CorrectionCheck(oid, intent, sno)
payment_method = PaymentMethod.CARD # Метод оплаты, корректирующей суммы
# payment_method = PaymentMethod.CARD # электронные
# payment_method = PaymentMethod.CASH # наличные
# Установка суммы коррекции
check.add_payment(
correction_sum=12, # Сумма
payment_method=payment_method
)
correction_type = CorrectionType.SELF # Тип коррекции
# correction_type = CorrectionType.SELF # Самостоятельно
# correction_type = CorrectionType.FORCED # По предписанию
# Установка данных коррекции
check.set_correction_data(
type=correction_type,
data='2017-09-28', # Дата документа коррекции в формате 'yyyy-mm-dd'
document='К111', # Номер документа коррекции
description='Отключение электричества' # Описание коррекции
)
# Указание уполномоченного лица
check.set_authorised_person(
name='Иванов И.И',
inn='123456789012'
)
# Указание данных клиента
check.set_client(
name='Иванов И.П.',
inn='1231231231'
)
# Отправка запроса
try:
task = client.create_task(check, 'идентификатор очереди')
except HTTPError as exc:
print(exc.response.text)
else:
print(task)
# Task(id=1, external_id=2, print_queue_id=3, state='new')
# id - идентификатор задачи
# external_id - идентификатор операции в магазине
# print_queue_id - идентификатор очереди
# state - состояние задачи
# Получение информации о поставленной на фискализацию задаче:
try:
task_info = client.get_task_info('идентификатор задачи')
except HTTPError as exc:
print(exc.response.text)
else:
print(task_info)
# TaskInfo(id=234, external_id='4321', state='done', error_description=None,
# fiscal_data={'i': '111',
# 'fn': '2222222222222222',
# 't': '3333333333333',
# 'n': 4,
# 'fp': '555555555',
# 's': '6666.77'})
# id - идентификатор задачи
# external_id - идентификатор операции в магазине
# state - состояние задачи
# error_description - описание возникшей ошибки, когда state=='error'
# fiscal_data - фискальные данные
# Чтобы проверить, является ли очередь активной, выполните:
client.is_queue_active('идентификатор очереди')
# Вы можете указать идентификатор очереди по умолчанию с помощью:
client.set_default_queue('идентификатор очереди по умолчанию')
# В этом случае можно не указывать идентификатор очереди всякий раз,
# когда нужно распечатать чек или проверить состояние очереди:
assert client.is_queue_active() is True
try:
task = client.create_task(check)
except HTTPError as exc:
print(exc.response.text)
else:
print(task)
Changelog
Unreleased
8.1.0 (14.04.2026)
- В методе
set_correction_dataпараметрdescriptionпомечен как устаревший (deprecated) и будет полностью удален в следующей мажорной версии - Добавлен метод
set_paying_agent_info - Метод
set_paying_agentпомечен как устаревший (deprecated) и будет полностью удален в следующей мажорной версии. Вместо него рекомендуется использоватьset_paying_agent_info
8.0.0 (20.11.2025)
- Прекращена поддержка НДС 18% и НДС 18/118
- Добавлена поддержка НДС 22% и НДС 22/122
7.5.0 (06.11.2025)
- Изменения по v1:
- В классе
TaxSystemудалена система налогообложения ЕНВД
- В классе
- Изменения по v2:
- В классе
TaxSystemудалена система налогообложения ЕНВД
- В классе
7.4.4 (08.09.2025)
- Изменения по v1:
- В методе
set_correction_dataпараметрdocument_numberстал необязательным
- В методе
7.4.3 (08.09.2025)
- Изменения по v1:
- В методе
set_correction_dataпараметрdocument_numberстал необязательным
- В методе
7.4.2 (15.08.2025)
- Изменения по v1:
- В класс
CorrectionCheckдобавлен методset_user- email или телефон пользователя для отправки электронного чека - В методе
set_correction_dataпараметрdescriptionстал необязательным (устарел и будет удален в будущих версиях)
- В класс
7.4.1 (12.08.2025)
- Изменения по v2:
- В класс
PlannedStatusдобавленPLANNED_STATUS_255- cтатус товара, подлежащего обязательной маркировке, не изменился
- В класс
7.4.0 (05.08.2025)
-
Изменения по v1:
- В классы
CheckиCorrectionCheckдобавлен методset_internet- признак расчета в "Интернет" - В класс
Checkдобавлен методadd_cashless_payment- сведения об оплате безналичными
- В классы
-
Изменения по v2:
- В классы
CheckиCorrectionCheckдобавлен методset_internet- признак расчета в "Интернет" - В классы
CheckиCorrectionCheckдобавлен методset_timezone- часовая зона - В класс
Checkдобавлен методadd_cashless_payment- сведения об оплате безналичными - В класс
Positionдобавлен методset_planned_status- планируемый статус товара
- В классы
7.3.1 (27.05.2025)
- Возможность установки флага признака использования ОСУ для позиции чека v2
7.3.0 (10.04.2025)
- Возможность не передавать операцию и телефоны в set_paying_agent_info()
7.2.0 (06.11.2024)
- Поддержка НДС 5%, НДС 7%, НДС 5/105 и НДС 7/107
7.1.4 (16.11.2023)
- Поддержка place_address. Правки названия
7.1.3 (25.07.2023)
- Тесты для подакцизного товара в позиции заказа
7.1.2 (30.12.2022)
- Поддержка типа маркировки
gs10на v2
7.1.1 (09.12.2022)
- Добавление в чек коррекции v2 метода set_print
7.1.0 (03.11.2022)
- У чека коррекции v2 убран параметр base_name
- Параметр base_number теперь является необязательным для чека коррекции v2
7.0.5 (19.10.2022)
- Добавлена потерянная запятая в init в v2
7.0.4 (21.06.2022)
- Реквизиты покупателя вынесены в объект requisites
7.0.3 (06.05.2022)
- Добавил метод set_client для чека коррекции в v1
7.0.2 (06.04.2022)
- Параметр
emailдля методаset_clientв классахCheck,CorrectionCheckявляется необязательным
7.0.1 (21.12.2021)
- Поднята версия для pypi
- Исправлен механизм публикации
7.0.0 (21.12.2021)
- Тесты перенесены в докер
- Плагин разбит на подмодули (v1, v2)
- В версии v2 реализована новая схема постановки чеков
- Вся кодовая база была покрыта тестами
- Изменена схема чека коррекции для v1 структуры(Создан BaseCheck класс от которого наследуются Check/CorrectionCheck)
- Исправлены направления платежей для чека коррекции
6.0.0 (02.03.2021)
- Параметр
snoдля классаOrderявляется обязательным - Изменен порядок передачи параметра
snoв классеOrder
5.3.2 (03.02.2021)
- Указана кодировка для файла helpers.py
5.3.1 (03.02.2021)
- Правка версии для pypi
5.3.0 (03.02.2021)
- Правка типа ИНН в описании методов классов
CheckиCorrectionCheck - В класс
Orderв методset_clientдобавлен параметрclient_coordinate - Добавлен признак расчёта
pay
5.2.0 (08.10.2020)
- В классы
CheckиClientдобавлен методapply_correction_positionsдля устранения возможных несхождений в ценах позиций
5.1.0 (21.09.2020)
- Для заказов добавлена поддержка
nomenclature_code,is_need_nomenclature_code
5.0.0 (08.09.2020)
- Добавлен класс
Employeeдля создания, просмотра, редактирования сотрудников - В классе
Clientметодget_couriersзаменен наget_employees - В класс
Clientдобавлены методыcreate_employee,update_employee,get_employee_info,delete_employee
4.2.0 (10.07.2020)
- Добавлена возможность передать дополнительный реквизит пользователя
additional_user_propsтег 1084
4.1.0 (25.06.2020)
- Добавлена возможность передать код товарной номенклатуры в HEX виде
4.0.0 (19.06.2020)
- Параметр
task_idзаменен на параметрexternal_id
3.1.1 (21.05.2020)
- В класс
Checkдобавлен методapply_discountдля применения скидок ко всему чеку - В класс
Orderдобавлен методapply_discountдля применения скидок ко всему заказу
3.0.1 (19.05.2020)
- Удален
NomenclatureType
3.0.0 (19.05.2020)
- Замена интерфейса класса
Nomenclature: удален параметрnomenclature_type
2.4.0 (26.03.2020)
- В класс
Checkдобавлен методset_additional_check_propsдля поддержки дополнительного реквизита чека
2.3.1 (19.03.2020)
- Загрузка одного чека без мультизагрузки
2.3.0 (13.03.2020)
- В класс
Clientдобавлен методcreate_tasksдля множественной загрузки чеков
2.2.0 (02.03.2020)
- Для заказов добавлена поддержка
excise,country_code,declaration_number
2.1.0 (27.01.2020)
- Добавлена поддержка кода номеклатуры в HEX представлении
2.0.0 (20.01.2020)
- Заменены параметры
gtinиserialклассаNomenclatureнаcode
1.10.0 (16.12.2019)
- В метод
Order.add_positionдобавлен необязательный параметрagent.
1.9.0 (20.11.2019)
- Добавлен метод
set_agentв классCheck
1.8.0 (18.11.2019)
- Параметр
innметодовCheck.set_clientиCorrectionCheck.set_authorised_personнеобязателен для ввода
1.7.0 (13.09.2019)
- Заменен базовый класс для
OrderInfo,CouriersInfoна собственную реализацию
1.6.0 (12.08.2019)
- Параметры функции
Check.set_clientнеобязательны для ввода
1.5.5 (18.07.2019)
- Добавлены празнаки рассчета
PROPERTY_RIGHT,NON_OPERATING,INSURANCE,SALES_TAX,RESORT_FEEв классCalculationSubject - Добавлен классы
NomenclatureиNomenclatureTypeдля создания маркировок - В позицию на чек фискализации добавлены необязательные поля суммы акциза, цифровой код страны и номер таможенной декларации
1.5.4 (08.07.2019)
- Параметры функции
Check.set_clientнеобязательны для ввода, но в случае использования функции inn обязательный параметр для передачи
1.5.3 (26.06.2019)
- Исправлено преобразование
RATE_118вRATE_120у классаVatRate
1.5.2 (26.06.2019)
- Добавленно преобразование
RATE_18иRATE_118вRATE_20иRATE_120у классаVatRate
1.5.1 (24.06.2019)
- Расширен класс
Responseметодом_asdict
1.5.0 (24.06.2019)
- Заменен базовый класс для
Task,TaskInfoна собственную реализацию
1.4.0 (13.06.2019)
- В класс
Orderдобавлена возможность передать предоплату и тип платежа
1.3.0 (04.06.2019)
- Класс
Checkрасширен методамиset_clientиset_cashierдля передачи дополнительных данных по чеку
1.2.0 (16.05.2019)
- Класс
Orderрасширен методомadd_callback_urlдля оповещения магазина
1.1.1 (16.04.2019)
- Изменен идентификатор позиции заказа
1.1.0 (15.04.2019)
- Добавлен класс
Orderдля создания и обновления заявок. - Класс
Clientрасширен методамиget_orders,get_couriers,create_order,update_order,get_order_info,delete_orderдля работы с заявками.
1.0.0 (18.01.2019)
- Убраны атрибуты
RATE_18иRATE_118у классаVatRate.
0.7.0 (10.12.2018)
- Класс
VatRateрасширен атрибутамиRATE_20иRATE_120.
0.6.0 (20.11.2018)
- Класс
Agentрасширен методамиset_paying_agent_info,set_receive_payments_operator_infoиset_money_transfer_operator_infoдля передачи дополнительных атрибутов платежного агента, оператора по приему платежей и оператора перевода, соответственно. - В класс
Checkдобавлен необязательный параметрpayment_addressи методset_callback_url.
0.5.0 (14.08.2018)
- Добавлены направления платежа
BUYиBUY_RETURNв классIntent
0.4.0 (09.04.2018)
- Добавлен метод
set_authorised_personв классCorrectionCheck
0.3.0 (20.03.2018)
- Добавлена поддержка ФФД 1.0.5 (Признак рассчета, способ рассчета, данные по кассиру, данные по агенту)
0.2.2 (10.11.2017)
- Добавлен метод
Client.get_task_info - Добавлен необязательный параметр
oidвCheck.add_position
0.2.1 (28.09.2017)
- Добавлен чек коррекции.
- Добавлена возможность указать вид оплаты.
- В позицию на чек фискализации добавлено необязательное поле единицы измерения.
0.2.0 (11.08.2017)
- Для отправки запросов теперь используется класс
Client. - При отправке запроса на добавление задачи в очередь теперь возвращается namedtuple вместо словаря.
- Удалены исключения. Вместо них используются исключения из requests.
- Константы сгруппированы в классы.
- Убрана валидация параметров при создании экземпляра чека и его элементов. Валидация уже осуществляется на сервере.
- В налогах теперь указывается только ставка (высчитывается на сервере).
- В позиции убран параметр
discount(высчитывается на сервере). - 99.9% покрытие кода тестами.
- Прочие небольшие изменения.
0.1.6 (31.07.2016)
print_out()теперь возвращает ответ от сервера.
0.1.5 (10.07.2017)
- Исправлена возможность установки
snoчека в ОСН.
0.1.4 (06.07.2017)
- Добавлен новый параметр чека
sno(система налогооблажения).
0.1.1 (26.06.2017)
- Переезд на https.
0.1.0 (19.06.2017)
- Первый релиз.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
komtet_kassa_sdk-8.1.0.tar.gz
(48.1 kB
view details)
File details
Details for the file komtet_kassa_sdk-8.1.0.tar.gz.
File metadata
- Download URL: komtet_kassa_sdk-8.1.0.tar.gz
- Upload date:
- Size: 48.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c222a70e807500518d1df87cdc8d25cf1af789b42e01c685ca315f03a06e7250
|
|
| MD5 |
df7627f49dfd7e81ccf92d4a91e7c05a
|
|
| BLAKE2b-256 |
bca90c25bf1b925ba7626dae135c28e673845df9b76684e35117a6bdae1b9a41
|