Общая информация по настройке онлайн-касс

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (28)

просмотр истории страницы
h1. Подготовка

Заключите договор с платежной системой [АТОЛ Онлайн|http://www.online.atol.ru] онлайн-кассой и получите доступ в личный кабинет.
Получите у АТОЛ подержки сервиса все необходимые данные для интеграции с биллингом.

h1. Настройка на стороне биллинга
# Сначала нужно подготовить настройки для всех операторов меню "Настройки" \-> "Настройки фискализации". Нажмите "*Добавить*"
\\
\\ !atol_asr_billing_isp_settings_list.png|border=0,width=700!
\\ !Настройки фискализации asr_billing.png|border=0,width=700! \\
\\
# Заведите нужные настройки интеграции с кассой и сохраните. Настройки выбираются в зависимости от используемой кассы:
#* [CarbonBilling:АТОЛ Онлайн]
#* [CarbonBilling:E-COM kassa]
#* [CarbonBilling:Бизнес.ру Онлайн-Чеки]\\
#* [Другая онлайн-касса (протокол АТОЛ версии 4)]
\\
# Заведите нужные настройки интеграции с кассой и сохраните
#* Настройки выбираются в зависимости от используемой кассы свои.
\\ !atol_asr_billing_isp_settings_edit.png|border=0,width=550!
\\
\\
# Добавив все нужные наборы настроек, назначьте их операторам в разделе "Настройки биллинга" \-> "Настройки Онлайн-кассы"
\\
\\ !atol_asr_billing_isp_settings_select.png|border=0,width=700!
\\ !Настройки онлайн-кассы оператора связи.png|border=0,width=700!

h2. А что если по каким-то оператоам не нужно слать чеки?
h3. Когда настройки заданы - отправка чеков включается автоматический. Выбрав "пустой" вариант, отправка отключится.

После настройки фискализации в биллинге, подождите 10 минут чтобы они синхронизировались с модулем интеграции платёжных систем asr_fiscal.

{info}Чеки по платежам, совершенным пока настройки синхронизируются, отправлены не будут.{info}

Чтобы отключить отправку чеков - вернитесь в настройки оператора и выберите "пустой" вариант, сохраните настройки. В течение 10 минут биллинг и asr_fiscal синхроинируются, чеки перестанут создаваться.

h3. А что если по каким-то операторам не нужно слать чеки?

Если по абонентам кого-то из операторов Вы не хотите отправлять чеки - просто не выбирайте ему ни какие настройки

За одну итерацию биллинг отправляет до 25 чеков. При возникновении каких-либо технических проблем, например у биллинга не было доступа к интернету, или сменились данные доступа в кассу, или у сервиса проводятся техработы, может накопиться какое-то количество чеков. Они будут отправляться постепенно.

h2. Почему именно такая схема?

Закон ФЗ-54 описывает процесс выдачи чека только в общих чертах. Он не описывает, что услуги связи всегда учитываются как аванс или как-то ещё. Такой конкретики там нет.

Текущая реализация ФЗ-54 в системе сделана исходя из того, как работает ядро биллинга - платежи поступают не в счёт уплаты за конкретные услуги, они поступают на лицевой счёт абонента, с которого потом происходит списание за услуги согласно их настройкам (обычно 1-го числа, но может двигаться).
То есть в момент оплаты, ядро биллинга не знает, за что именно абонент платит, и поэтому все платежи являются авансом.

Например, абонент может пополнить баланс 25 января, а 26 января запланировать смену тарифа с 1 числа.
Так же абонент может и не менять тариф, просто оплатить заранее. Точно мы будем знать, за что заплатил абонент, только в момент списания.
Поэтому мы использовали схему с авансом и зачётом авансов.

В [письме Минфина от 28 апреля 2017 года № 03-01-15/26352|https://www.v2b.ru/documents/pismo-minfina-rossii-ot-28-04-2017-n-03-01-15-26352/], есть разъяснения как учитывать аванс:

{quote}... согласно информации, полученной от ФНС России, в случае если объем и список товаров, работ, услуг невозможно определить в момент оплаты (при получении предоплаты и (или) рассрочке платежа), на кассовом чеке (бланке строгой отчетности) указываются аванс и фактически полученные денежные средства.{quote}

И далее про зачёт аванса:
{quote}При конечном расчете с учетом ранее предоставленного аванса на кассовом чеке указываются обязательные реквизиты, предусмотренные статьей 4.7 Федерального закона N 54-ФЗ ...{quote}

В [ФЗ-54|http://www.consultant.ru/document/cons_doc_LAW_42359/d2fc933bc5ec367e9a8713330510af5d9e1a3fe4/] необходимость отправлять чеки по зачёту авансу отмечена в пункте 2.1 статьи 1.2. Там же указано, что чек можно формировать за период не превышающий месяца - что и делает биллинг, формируя такой чек закрывая очередной месяц.

Конкретные указания по формату обмена данных содержатся в прочих документах от налоговой и министерства финансов.
В частности, согласно [табл. 28 приложения № 2 к приказу ФНС № ММВ-7-20/229@|https://www.nalog.ru/html/sites/www.new.nalog.ru/doc/pril2_fns229_210317.docx], существует несколько вариантов предоплаты с соответствующими признаками способа расчёта: "*предоплата 100%*" и "*предоплата*" для предоплаты +за товары+, а так же "*аванс*", +без указания+ на форму товаров/услуг.

На [сайте налоговой|https://kkt-online.nalog.ru/materials/] есть методические рекомендации с разъяснением некоторых кейсов. В том числе есть пример как регистрировать аванс за товары и как направлять чек по зачёту аванса (Раздел *Материалы* -> *Методические указания для ФФД 1.05 и 1.1*, документ "*Получение предварительной оплаты за собственный товар, последующий зачет предварительной оплаты за товар и предоставление займа для оплаты товара, а также погашение займа для оплаты товара*", [прямая ссылка|https://kkt-online.nalog.ru/html/sites/www.usn-online.nalog.ru/materials/3_ed420_2929.pdf]. [Вот он|http://www.consultant.ru/document/cons_doc_LAW_321176/] на сайте Консультанта с [пояснительной запиской|http://www.consultant.ru/document/cons_doc_LAW_321176/96c60c11ee5b73882df84a7de3c4fb18f1a01961/]
Пример не 100% подходящий под ситцуацию предоплаты за услуги связи, но даёт общее представление.

h2. Отправка чеков по платежам через [платёжные системы|CarbonBilling:Платёжные системы]

* Любым платежам [выгруженным из 1С|CarbonBilling:Интеграция с 1С]
* Платежам юридических лиц
{info}Чтобы отправлялись, включите опцию "*Слать чеки по платежам юрлиц*" в настройках фискализации{info}
* Платежам [операторов связи|CarbonBilling:Разграничение объектов по операторам связи.]
* При [переводе средств между абонентами|CarbonBilling:Перевод денег другу]

h2. Чек коррекции

Чек коррекции не формируется биллингом автоматический, так как в большинстве случае достаточно сторнирования.

При необходимости, чек коррекции Вы можете провести вручную в онлайн-кассе или личном кабинете вашего ОФД.

{info}Если Вам часто требуется проводить чеки коррекции, пожалуйста напишите нам об этом. Если функция окажется востребована в массе пользователей Carbon Billing, мы обязательно автоматизируем процесс{info}

h2. Моя платёжка сама отправляет чеки в налоговую, как не слать их через онлан-кассу?

Если используемая Вами платёжная система сама формирует чеки по платежам, сообщите нам об этом технической поддержке этом, составив обращение на портале [HelpDesk|https://helpdesk.carbonsoft.ru/login.php] и приложите описание протокола обмена данными с платёжкой, мы доработаем для неё исключение.

h1. Уведомление для абонентов

Уведомления со ссылками на чеки у ОФД отправляет онлайн-касса, Carbon Billing 5 только передаёт на сторону онлайн-кассы реквизиты абонента.
Исходя из документации к онлайн кассе, если переданы оба реквизита - уведомление будет отправлено только на почту. Выдержка из [документации к описанию протокола АТОЛ|https://online.atol.ru/files/API_servisa_ATOLOnline_v4.10.pdf], АТОЛ|https://online.atol.ru/files/API_atol_online_v4.pdf], страница №17:
{quote}В запросе обязательно должно быть заполнено хотя бы одно из полей: email или phone. Если заполнены оба поля, ОФД отправит электронный чек только на email.{quote}

{info}Актуальную документацию можно найти по [ссылке|https://online.atol.ru/lib/], "API: Описание протокола АТОЛ Онлайн"{info}
h1. Можно как-то отправлять чек только 1 раз - по платежу?

chroot /app/asr_cabinet python2.6 /usr/local/bin/get_fiscal_config.py
{code}
При включении старой схемы возникнут следующие события:

1. Чек с товарной позицией "Пополнение лицевого счета %ACCOUNT_ID%"
2. Признак способа расчёта full_payment
3. При отправке чека при выставлении акта ничего не будет обрабатываться, в логе будет запись "включена старая схема, отменяю чек по %OP_ID%".



h1. Отладка

Результаты обмена данными с онлайн-кассой можно посмотреть в логе:
{code}tail /app/asr_fiscal/var/log/ATOL_Online_v4.log{code}
Схема отправки чеков:
!paysystems01.png!

Журнал обмена данными по операциям для передачи онлайн-кассе между биллингом и модулем платежных систем:
{code}tail /app/asr_billing/var/log/paysystemsd.log{code}
# Начните отладку с контейнера *asr_billing*. Журнал службы *paysystemsd*:
{code}/app/asr_billing/var/log/paysystemsd.log{code}
# Обмен данными с онлайн-кассой происходит в контейнере *asr_fiscal*. Результат можно посмотреть в логе:
{code}/app/asr_fiscal/var/log/paysystems/ATOL_Online_v4.log {code}
# Дополнительная информация, в случае проблем при взаимодействии
{code}/app/asr_fiscal/var/log/httpd/error_log{code}

h2. Биллинг внезапно отправил очень много чеков. Почему так?


h2. Ошибки при отправке чеков по платежам из [веб-кассу|CarbonBilling:Веб-интерфейс кассира]


h2. Ошибки при отправке чеков по платежам из [веб-кассы|CarbonBilling:Веб-интерфейс кассира]

При ошибках отправки чека Вы увидите подобную страницу.
На странице описано в какой части кода произошла ошибка, *суть ошибки - в красном баннере внизу*.

Укажите правильную налоговую ставку в настройках кассы на строне биллинга: 20 или 20/120

h2. Чеки не уходят: неверный логин или пароль

В логе ошибка:
{code:title=Команда}grep -i err /app/asr_fiscal/var/log/paysystems/ATOL_Online_v4.log | sed 's|\\\\|\\|g'{code}
{code:title=Вывод}...
2021-06-02 11:14:31 BUSINESS REPLY: '{"error":{"error_id":"b46b1f70-c393-11eb-807d-b308f061d33a","code":12,"text":"\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0439 \u043b\u043e\u0433\u0438\u043d \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c","type":"system"},"status":"fail","timestamp":"02.06.2021 11:14:31"}'
{code}
Перевести код ошибки в понятные символы можно [конвертором|https://www.branah.com/unicode-converter]:

!Онлайн-кассы, ошибка логина и пароля в логах, перевод на понятный язык.png|border=0,width=400!

h4. Для инженеров, проверка с CURL

Можно проверить с помощью CURL. Например:

* Интегарция с кассой: Бизнес.Ру Онлайн-чеки
* Тестовый логин интеграции: 6671234567
* Тестовый неправильный пароль: 1111111

{code:title=Запрос}
curl -ss -XPOST -H "Content-type: application/json; charset=utf-8" "https://check.business.ru/api-carbonbilling/v4/getToken" -d '{"login":"6671234567","pass":"1111111"}' | jq .
{code}
{code:title=Ответ}
{
"timestamp": "02.06.2021 12:14:27",
"status": "fail",
"error": {
"type": "system",
"text": "Неверный логин или пароль",
"code": 12,
"error_id": "13cd9720-c39c-11eb-a851-e50342198749"
}
}

{code}

h3. Решение

Укажите правильные логин и пароль в [настройках фискализации|https://docs.carbonsoft.ru/pages/viewpage.action?pageId=186287928#Общаяинформацияпонастройкеонлайн-касс-Укаждогооператорасвоинастройкиинтеграциионлайнкассы%2Cихнужнозадать]

h4. Для инженеров, проверка с CURL

Проверить так же можно проверить с помощью CURL, например:

* Тестовый логин интеграции: 6671234567
* Тестовый правильный пароль: 4444444

{code:title=Запрос}
curl -ss -XPOST -H "Content-type: application/json; charset=utf-8" "https://check.business.ru/api-carbonbilling/v4/getToken" -d '{"login":"6671234567","pass":"4444444"}' | jq .
{code}
{code:title=Ответ}
{
"timestamp": "02.06.2021 12:16:48",
"token": "1d93d732-1111-22a2-33b3-22dd6677e777",
"error":
}
}
{code}

h2. После выполнения настроек возникает ошибка "Что-то пошло не так при обработке url для онлайн-кассы"

{code:title=Пример лога /app/asr_fiscal/var/log/paysystems/ATOL_Online_v4.log}
2022-01-28 12:53:03 create_check_ex: from=169.254.14.44 json=OK data_raw={"is_cash": false, "op_id": "864501_sell_0", "payments": null, "timestamp": "1643290825", "phone": "+7918955.... "config": {"kassa_url": "https://kassa-rent.initpro.ru", ......}
2022-01-28 12:53:03 Что-то пошло не так при обработке url для онлайн-кассы
2022-01-28 12:53:03 Переданный url:
2022-01-28 12:53:03 REQUEST: POST getToken data='{"login":"xxx","pass":"uuu"}'
2022-01-28 12:53:03 REPLY: false
{code}
Проблема возникла из-за некоррктного адреса сервера онлайн-кассы, отсутствовал */* в конце адреса. Необходимо проверять в документации сторонних систем адреса их серверов и указывать в соответствии с требованиями.