Интеграция онлайн-кассы Комтет с сайтом


Интеграция онлайн-кассы Комтет с сайтом

Доброго времени друзья, сегодня я хочу рассказать об опыте работы с API онлайн-кассы от компании Комтет, об интеграции её с сайтом совместных покупок(интернет-магазином) в рамках 54-ФЗ, где продажа подразумевает прием предоплаты от пользователей, с последующей полной оплатой заказа спустя пару недель, где также ряд товаров идет с маркировкой(487-ФЗ), в итоге как первое так и второе должно отобразиться в «пробиваемых» электронных чеках. И конечно же я расскажу о настройке таких параметров как — система налогообложения, наличие НДС и способ оплаты. Далее обо всем подробнее.

Алгоритм работы

В нашем случае, алгоритм работы и пробитие чеков подразумевает пробитие предварительных чеков о предоплате, с последующим пробитием второго чека о полном расчете или о возврате предоплаты, т.к. бизнес модель подразумевает выкуп товара у поставщика по заказу клиента, а товара может и не оказаться. Также мы работаем с клиентом(т.е. не продаем товар, а оказываем услугу) по агентскому договору, что также должно отобраться в чеках, чтобы последующее начисление налогов было корректным(только с суммы агентского вознаграждения).

По этому алгоритм работы у нас такой:

  1. Принимаем заказ и выставляем счет на сумму предоплаты в процентах от стоимости заказа, в некоторых случаях сумма предоплаты может равняться 100%. Во всех случаях это должно отразиться в чеках.
  2. Клиент производит оплату на сумму предоплаты, на что наш сайт отправляет по API Комтет запрос на печать чека предоплаты с такими параметрами: без НДС , УСН доход — расход 15%, оплата картой, сумма предоплаты, название услуги и заказанного товара, стоимость товара, количество, общая сумма, данные о кассире, данные о маркировке товара(если есть).
  3. Спустя некоторое время, когда пользователь получает свой заказ(заказанный товар), мы пробиваем основной закрывающий чек, указывая в нем те данные что и при предоплате, но сам чек уже имеет статус «полная оплата».
  4. В случае если пользователь по какой-то причине отказался от заказа или мы не можем его выполнить, то мы оформляем возврат и пробиваем соответствующий чек возврата.
  5. Также функционал должен предусматривать внесение корректировок, например если стоимость заказа изменилась или изменился список товаров.

Настройка кассы в личном кабинете Комтет

1. Регистрируемся на сайте Комтет и переходим в личный кабинет(ЛК).

2. Для тестирования вам будут выданы тестовые данные, для этого в ЛК в разделе Фискализация->Магазины нужно создать первый тестовый магазин, указав параметры: домен сайта, URL возврата в случае успеха и URL возврата в случае неудачи.

3. Затем переходим в раздел Фискализация->Кассы, создаем Очередь и Кассу, указывая ФИО и ИНН кассира, связываем их. Касса последовательно разбирает задачи из очереди на фискализацию. К одной очереди можно добавить несколько касс, чтобы увеличить скорость обработки чеков.

4. Для тестирования Кассы, вам потребуется скачать программу под Windows, далее установить её и настроить, указав при этом значения из полей ID кассы и секретный ключ кассы (их можно посмотреть в настройках кассы). Программа под Windows будет имитировать работу кассы на вашей тестовой среде. Как это выглядит вы можете посмотреть на скриншотах ниже.

Настройки Программы Комтет касса

5. После проделанной процедуры вы можете перейти к тестированию, а именно отправлять на печать чеки с помощью API Комтет, указав в его параметрах работы данные тестовой кассы. Все чеки будут печататься в тестовом режиме, на указанные вами Email адреса будут приходить чеки в электронном виде, где вы сможете посмотреть все их параметры и при необходимости внести настройки в свой скрипт работы с API.

6. После завершения тестирования вы сможете переключить работу API в боевой режим, указав параметры реальной онлайн кассы, вместо тестовой. Также по окончанию тестирования необходимо уведомить тех. поддержку Комтет, они со свой стороны, перед переключением в боевой режим, проверят корректность работы вашей интеграции.

Описание API

Для работы с API, отправки данных для печати чеков, средствами PHP, предусмотрена специальная библиотека komtet-kassa-php-sdk, которая содержит в себе все необходимы классы и методы. Документация далеко не исчерпывающая и для понимания того, как работать например с чеками предоплаты было не понятно, для этого потребовалось заглянуть в сами скрипты, а по некоторым вопросом связаться с поддержкой. Ниже я приведу несколько примеров взаимодействия с API, которых нет в документации к SDK(хоть он их, разумеется, и поддерживает).

Разумеется можно реализовать и свои классы и методы работы с API, документация по ссылке.

Первым делом необходимо создать менеджер очередей(из документации к SDK):

После чего зарегистрировать очереди:

Отправка чека на печать:

Отправка чека коррекции:

Отправка чека на предоплату сумма равная 100%:

Отправка чека на предоплату сумма НЕ равная 100%, например 30%:

Чек для оформления возврата:

Список констант для НДС

Vat::RATE_NO Без НДС
Vat::RATE_0 НДС 0%
Vat::RATE_10 НДС 10%
Vat::RATE_20 НДС 20%
Vat::RATE_110 Расчетная ставка 10/110
Vat::RATE_120 Расчетная ставка 20/120

Список констант методов оплаты

Список констант признаков расчета

CalculationSubject::PRODUCT Товар, за исключением подакцизного товара
CalculationSubject::PRODUCT_PRACTICAL Подакцизный товар
CalculationSubject::WORK Работа
CalculationSubject::SERVICE Услуга
CalculationSubject::GAMBLING_BET Прием ставок при осуществлении деятельности по проведению азартных игр
CalculationSubject::GAMBLING_WIN Выплата денежных средств в виде выигрыша при осуществлении деятельности по проведению азартных игр
CalculationSubject::LOTTERY_BET Прием денежных средств при реализации лотерейных билетов, электронных лотерейных билетов, приеме лотерейных ставок при осуществлении деятельности по проведению лотерей
CalculationSubject::LOTTERY_WIN Выплата денежных средств в виде выигрыша при осуществлении деятельности по проведению лотерей
CalculationSubject::RID Предоставление прав на использование результатов интеллектуальной деятельности или средств индивидуализации «ПРЕДОСТАВЛЕНИЕ РИД» или «РИД»
CalculationSubject::PAYMENT Об авансе, задатке, предоплате, кредите, взносе в счет оплаты, пени, штрафе, вознаграждении, бонусе и ином аналогичном предмете расчета
CalculationSubject::COMMISSION Вознаграждении пользователя, являющегося платежным агентом (субагентом), банковским платежным агентом (субагентом), комиссионером, поверенным или иным агентом
CalculationSubject::COMPOSITE О предмете расчета, состоящем из предметов, каждому из которых может быть присвоено значение от «0» до «11» (0-11 — это вышеперечисленные)
CalculationSubject::PAY Взнос в счет оплаты пени, штрафа, вознаграждения, бонуса или иного аналогичного предмета расчета
CalculationSubject::OTHER О предмете расчета, не относящемуся к предметам расчета, которым может быть присвоено значение от «0» до «12» (0-12 — это вышеперечисленные)
CalculationSubject::PROPERTY_RIGHT Передача имущественного права
CalculationSubject::NON_OPERATING Внереализационный доход
CalculationSubject::INSURANCE Страховые взносы
CalculationSubject::SALES_TAX Торговый сбор
CalculationSubject::RESORT_FEE Курортный сбор

Список констант типа оплаты

Payment::TYPE_CARD Электронными
Payment::TYPE_CASH Наличными
Payment::TYPE_PREPAYMENT Cумма предоплатой (зачет аванса и/или предыдущих платежей)
Payment::TYPE_CREDIT Cумма постоплатой (кредит)
Payment::TYPE_COUNTER_PROVISIONING Cумма встречным предлжением

Список констант типа системы налогообложения

TaxSystem::COMMON Единый налог
TaxSystem::SIMPLIFIED_IN Доход
TaxSystem::SIMPLIFIED_IN_OUT Доход/Расход
TaxSystem::UTOII Единый налог на вмененный доход
TaxSystem::UST Единый социальный налог
TaxSystem::PATENT Патент

Заключение

При интеграции, на сайте был реализован функционал с учетом множества различных ситуаций, отмена или изменение параметров сделки, внесение корректировок и т.д., все эти действия сопряжены с автоматической печатью чеков, что существенно снижает нагрузку на кассира или бухгалтерию(что чаще всего), в тех случаях когда приходится вносить корректировки вручную.

Если вам нужна помощь в интеграции онлайн кассы, обращайтесь, буду раз сотрудничеству!


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *