- Подготовка
- Настройка на стороне биллинга
- У каждого оператора свои настройки интеграции онлайн-кассы, их нужно задать
- Еще важные настройки: чеки из Веб-кассы и адрес callback
- Товар, услуга и тд: настройте как услуги будут отражены в чеке
- Как, когда и какие чеки отправляются
- Отправка чеков по платежам через платёжные системы
- Отправка чеков по платежам в веб-кассе
- Отправка чеков по платежам в администраторской панели
- Отправка чеков по выставленной реализации
- Какие чеки не отправляются
- Уведомление для абонентов
- Можно как-то отправлять чек только 1 раз - по платежу?
- Отладка
- Биллинг внезапно отправил очень много чеков. Почему так?
- Ошибки при отправке чеков по платежам из веб-кассы
- Передана некорректная ставка налога. С 01.04.2019 ставки НДС 18 и 18/118 не могут использоваться в чеках
- Чеки не уходят: неверный логин или пароль
- После выполнения настроек возникает ошибка "Что-то пошло не так при обработке url для онлайн-кассы"
Подготовка
Заключите договор с онлайн-кассой и получите доступ в личный кабинет.
Получите у подержки сервиса все необходимые данные для интеграции с биллингом.
Настройка на стороне биллинга
У каждого оператора свои настройки интеграции онлайн-кассы, их нужно задать
В биллинге может быть заведено несколько операторов связи, если это разные юридические лица, то данные в налоговую тоже должны идти по разным юридическим лицам.
- Сначала нужно подготовить настройки для всех операторов меню "Настройки" -> "Настройки фискализации". Нажмите "Добавить"
- Заведите нужные настройки интеграции с кассой и сохраните. Настройки выбираются в зависимости от используемой кассы:
- Добавив все нужные наборы настроек, назначьте их операторам в разделе "Настройки биллинга" -> "Настройки Онлайн-кассы"
Когда настройки заданы - отправка чеков включается автоматический. Выбрав "пустой" вариант, отправка отключится.
После настройки фискализации в биллинге, подождите 10 минут чтобы они синхронизировались с модулем интеграции платёжных систем asr_fiscal.
Чеки по платежам, совершенным пока настройки синхронизируются, отправлены не будут. |
Чтобы отключить отправку чеков - вернитесь в настройки оператора и выберите "пустой" вариант, сохраните настройки. В течение 10 минут биллинг и asr_fiscal синхроинируются, чеки перестанут создаваться.
А что если по каким-то операторам не нужно слать чеки?
Если по абонентам кого-то из операторов Вы не хотите отправлять чеки - просто не выбирайте ему ни какие настройки
Еще важные настройки: чеки из Веб-кассы и адрес callback
В интерфейсе настройки интеграции с платёжными системами есть еще две важные настройки. Рассмотрим каждую подробно.
При включении отправки чеков, настройки модуля платежных систем и биллинга синхронизируются не сразу, а в течение 10 минут. Чеки по платежам совершенным в этот промежуток времени не будут отправлены.
В веб-кассе создавать чек по умолчанию
При включении, опция "Создать чек в АТОЛ-Онлайн" будет включена по-умолчанию при добавлении платежа в веб-кассе
Внешний адрес для callback
Внешний адрес для callback - укажите здесь IP-адрес или доменное имя биллинга, по которому он доступен из интернета, онлайн-касса будет отправлять биллингу информацию о регистрации чеков именно по этому адресу.
Дайте онлайн-кассе доступ к адресу callback
По статье "Настройка сети для платежных систем" укажите адреса онлайн-кассы (их необходимо запросить у поддержки сервиса) в списке разрешенных для доступа к платежным системам.
По-умолчанию мы ожидаем ответа онлайн кассы на порт 1444, но защищенные порты (1443 и 2443) так же будут для неё доступны.
Товар, услуга и тд: настройте как услуги будут отражены в чеке
Настройте соответствующие типы в услугах в поле "Признак предмета расчета" на вкладке "Дополнительно", чтобы они правильно фискализировались. Например, в услуге продажи роутера лучше указать тип "товар", а в услуге доступа к сети интернет лучше указать "услуга".
По-умолчанию используется признак "услуга" |
Как, когда и какие чеки отправляются
Carbon Billing 5 отправляет чеки по следующим операциям:
- Пополнение счета - при регистрации прихода денежных средств
- Если бух.баланс больше или равен 0 с единственной позицией "Пополнение лицевого счета {номер лицевого счета}"
- Погашение кредита если бух.баланс меньше 0 с единственной позицией "Платеж в счет погашения постоплаты по акту {номер акта}"
- Если баланс меньше 0, а сумма прихода больше кредита, формируется два чека на соответствующие суммы, например баланс -100, пополнение счета на 500р, будет отправлено два чека: на 100 в счет погашения кредита и 400 в счета аванса
- Сторнирование прихода
- В случае если приход был на погашение кредита и пополнение баланса - сторнируются оба чека
- Продажа - при выставлении актов
- Если все позиции в чеке были оплачены (баланс в конце месяца более или равен 0) - позиции товаров и услуг будут иметь признак способа расчета "Полная оплата", все платежи с типом "Предварительная оплата (зачет аванса и
(или) предыдущих платежей)" - Если не все позиции в чеке были оплачены (баланс в конце месяца менее 0) - позиции товаров и услуг будут иметь признак способа расчета "Частичный расчет", на сумму отрицательного баланса будет будет добавлен пункт платежа с типом "постоплата (кредит)"
- Если все позиции в чеке были оплачены (баланс в конце месяца более или равен 0) - позиции товаров и услуг будут иметь признак способа расчета "Полная оплата", все платежи с типом "Предварительная оплата (зачет аванса и
- Сторнирование продажи - при сторнировании актов
Чеки можно отправлять при проведении любых видов платежей, а именно:
- Через веб-кассу (опционально)
- Платежи через платежные системы (во всех случаях для всех платежных систем, автоматический)
- Платежи через выгрузку банка (аналогично платежным системам, всегда)
- Заведение вручную в администраторской панели (опционально)
- API (аналогично платежам в администраторской панели, опционально)
Чеки по выставленной реализации (по актам) отправляются всегда.
Чеки отправляются только для операторов, у которых настроены параметры фискализации.
При отправке чека, в метаданных передаётся информация об адресе callback - адрес, на который биллинг ожидает ответа сервера онлайн кассы о результате проведения операции.
Если ответ не поступает в течение 5 минут, биллинг самостоятельно опрашивает онлайн-кассу о статусе чека.
Биллинг будет пытаться отправить чек пока не зарегистрирует егов онлайн-кассе.
Если в отчете от кассы получена ошибка таймаута (чек не успел обработаться вовремя, например если несколько чеков было отправлено слишком быстро и касса не успела их напечатать), через некоторое время чек отправляется заново.
За одну итерацию биллинг отправляет до 25 чеков. При возникновении каких-либо технических проблем, например у биллинга не было доступа к интернету, или сменились данные доступа в кассу, или у сервиса проводятся техработы, может накопиться какое-то количество чеков. Они будут отправляться постепенно.
Отправка чеков по платежам через платёжные системы
При указании оператору связи настроек фискализации, чеки будут автоматический отправляться по всем платежным системам, включая экваиринг и ОСМП (OSMP) и выгрузки банка.
Отправка чеков по платежам в веб-кассе
При заведении платежей в веб-кассе автоматический будет установлен флаг "Создать чек в АТОЛ-онлайн", таким образом чек будет отправлен.
Если опцию отключить, чек по операции не будет отправлен, отправить его в последствии будет не возможно, в таком случае потребуется отменить операцию прихода в биллинге и завести платеж заново в веб-кассе с отправкой чека.
Отправка чеков по платежам в администраторской панели
При заведении операции прихода денежных средств Вы можете отправлять или не отправлять чек, за это отвечает опция "Не создавать онлайн-чек".
По-умолчанию она включена и чек не отправляется.
Если опцию отключить при заведении операции - чек будет отправлен.
Если создать операцию прихода и потом её отредактировав, сняв опцию - чек отправлен не будет.
Чек отправляется только при создании операции. |
Отправка чеков по выставленной реализации
Чеки по выставленной реализации (по актам) отправляются всегда в автоматическом режиме.
При сторнировании актов так же всегда и автоматический отправляются чеки сторнирования продажи.
Позиции товаров/услуг в чеках.
По всем позициям (товары, услуги) в чеке передаются:
- Наименование
- Стоимость
- Количество
Количество - всегда 1. Стоимость - сумму по услуге с точностью до 1 копейки. |
Какие чеки не отправляются
- По платежам с карт оплаты
- Любым платежам выгруженным из 1С
- Платежам юридических лиц
Чтобы отправлялись, включите опцию "Слать чеки по платежам юрлиц" в настройках фискализации - Платежам [операторов связи]
- При переводе средств между абонентами
Чек коррекции
Чек коррекции не формируется биллингом автоматический, так как в большинстве случае достаточно сторнирования.
При необходимости, чек коррекции Вы можете провести вручную в онлайн-кассе или личном кабинете вашего ОФД.
Если Вам часто требуется проводить чеки коррекции, пожалуйста напишите нам об этом. Если функция окажется востребована в массе пользователей Carbon Billing, мы обязательно автоматизируем процесс |
Моя платёжка сама отправляет чеки в налоговую, как не слать их через онлан-кассу?
Если используемая Вами платёжная система сама формирует чеки по платежам, сообщите об этом технической поддержке и приложите описание протокола обмена данными с платёжкой, мы доработаем для неё исключение.
Уведомление для абонентов
Уведомления со ссылками на чеки у ОФД отправляет онлайн-касса, Carbon Billing 5 только передаёт на сторону онлайн-кассы реквизиты абонента.
Исходя из документации к онлайн кассе, если переданы оба реквизита - уведомление будет отправлено только на почту. Выдержка из документации к описанию протокола АТОЛ, страница №17:
В запросе обязательно должно быть заполнено хотя бы одно из полей: email или phone. Если заполнены оба поля, ОФД отправит электронный чек только на email.
Актуальную документацию можно найти по ссылке, "API: Описание протокола АТОЛ Онлайн" |
Можно как-то отправлять чек только 1 раз - по платежу?
Да, но учтите что эта настройка общая для всех операторов заведённых в биллинг.
Включатеся так:
- Откройте конфигурационный файл asr_fiscal /app/asr_fiscal/cfg/config
- Добавьте туда параметр atol_online['use_old_scheme'] равный "1":
atol_online['use_old_scheme']='1'
- Исправьте парамтер atol_online['cabinet'] - добавьте туда опцию "use_old_scheme". Должно получиться примерно так:
atol_online['cabinet']='enable default_email use_old_scheme'
- Выполните скрипты синхронизации параметров между контейнерами:
chroot /app/asr_billing python2.7 /usr/local/bin/get_fiscal_config.py chroot /app/asr_cabinet python2.6 /usr/local/bin/get_fiscal_config.py
Отладка
Схема отправки чеков:
- Начните отладку с контейнера asr_billing. Журнал службы paysystemsd:
/app/asr_billing/var/log/paysystemsd.log
- Обмен данными с онлайн-кассой происходит в контейнере asr_fiscal. Результат можно посмотреть в логе:
/app/asr_fiscal/var/log/paysystems/ATOL_Online_v4.log
- Дополнительная информация, в случае проблем при взаимодействии
/app/asr_fiscal/var/log/httpd/error_log
Биллинг внезапно отправил очень много чеков. Почему так?
Вероятней всего у Вас произошло выставление актов - автоматическое или Вы воспользовались функцией массового формирования.
Информацию о том какие чеки, когда и почему отправляются Вы можете найти под заголовком Как, когда и какие чеки отправляются
Ошибки при отправке чеков по платежам из веб-кассы
При ошибках отправки чека Вы увидите подобную страницу.
На странице описано в какой части кода произошла ошибка, суть ошибки - в красном баннере внизу.
Ошибочные поля : PropertyRequired: #/login; PropertyRequired: #/pass
Ошибка АТОЛ-Онлайн: [32] Ошибка валидации входящего чека. Ошибочные поля : PropertyRequired: #/login; PropertyRequired: #/pass
Убедитесь, что "Логин", "Пароль" и "Место расчетов" указаны верные.
Email and Phone empty
Email and Phone empty
Для передачи чека в онлайн-кассу, в карточке абонента должны быть заведены "Email для оповещений" или "Номер SMS для оповещений"
Согласно законодательству такие чеки все равно требуется передавать, абонент при необходимости может запросить информацию о них в налоговой, однако онлайн-кассы требуют передачи хотя бы одного из этих реквизитов и не регистрирует чек если ни какие контактные данные абонента не переданы.
Для решения проблемы, запросите контактные данные у абонента или укажите E-Mail чека по умолчанию в настройках фискализации оператора связи.
Передана некорректная ставка налога. С 01.04.2019 ставки НДС 18 и 18/118 не могут использоваться в чеках
Ошибка в логе /app/asr_fiscal/var/log/ATOL_Online_v4.log
2020-11-26 10:20:27 ATOL REPLY: '{"status":"fail","error":{"code":32,"error_id":"111a1111-1111-1111-aaa1-1a111a111a11","text":"Ошибка валидации входящего чека. Ошибочные поля : AdditionalPropertiesNotValid:#/receipt.items[0].vat.type - Передана некорректная ставка налога. С 01.04.2019 ставки НДС 18 и 18/118 не могут использоваться в чеках sell (приход) и buy (расход)","type":"system"},"timestamp":"26.11.2020 10:20:26"}'
Ошибка в логе /app/asr_billing/var/log/paysystemsd.log
2020-11-26 10:20:26,003 - worker - common - CRITICAL - unhandled exception Exception ERROR: Ошибка АТОЛ-Онлайн: [32] Ошибка валидации входящего чека. Ошибочные поля : AdditionalPropertiesNotValid:#/receipt.items[0].vat.type - Передана некорректная ставка налога. С 01.04.2019 ставки НДС 18 и 18/118 не могут использоваться в чеках sell (приход) и buy (расход) (id bb22b22b-2bbb-2b22-bb22-2222b22b22bb)) Traceback (most recent call last): File "//usr/lib/python2.7/site-packages/carbon_paysystems/paysystems_lib.py", line 275, in _create_atol_online_payment_checks File "//usr/lib/python2.7/site-packages/carbon_paysystems/paysystems_lib.py", line 182, in _communicate_with_atol_fiscal Exception: ERROR: Ошибка АТОЛ-Онлайн: [32] Ошибка валидации входящего чека. Ошибочные поля : AdditionalPropertiesNotValid:#/receipt.items[0].vat.type - Передана некорректная ставка налога. С 01.04.2019 ставки НДС 18 и 18/118 не могут использоваться в чеках sell (приход) и buy (расход) (id bb22b22b-2bbb-2b22-bb22-2222b22b22bb))
Решение
Укажите правильную налоговую ставку в настройках кассы на строне биллинга: 20 или 20/120
Чеки не уходят: неверный логин или пароль
В логе ошибка:
grep -i err /app/asr_fiscal/var/log/paysystems/ATOL_Online_v4.log | sed 's|\\\\|\\|g'
... 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"}'
Перевести код ошибки в понятные символы можно конвертором:
Для инженеров, проверка с CURL
Можно проверить с помощью CURL. Например:
- Интегарция с кассой: Бизнес.Ру Онлайн-чеки
- Тестовый логин интеграции: 6671234567
- Тестовый неправильный пароль: 1111111
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 .
{ "timestamp": "02.06.2021 12:14:27", "status": "fail", "error": { "type": "system", "text": "Неверный логин или пароль", "code": 12, "error_id": "13cd9720-c39c-11eb-a851-e50342198749" } }
Решение
Укажите правильные логин и пароль в настройках фискализации
Для инженеров, проверка с CURL
Проверить так же можно проверить с помощью CURL, например:
- Тестовый логин интеграции: 6671234567
- Тестовый правильный пароль: 4444444
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 .
{ "timestamp": "02.06.2021 12:16:48", "token": "1d93d732-1111-22a2-33b3-22dd6677e777", "error": } }
После выполнения настроек возникает ошибка "Что-то пошло не так при обработке url для онлайн-кассы"
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
Проблема возникла из-за некоррктного адреса сервера онлайн-кассы, отсутствовал / в конце адреса. Необходимо проверять в документации сторонних систем адреса их серверов и указывать в соответствии с требованиями.